/* =========================================================================
   ARENA OF STYLEZ — Design System
   Angelehnt an House of Urban Culture (houc.de):
   Schwarz-Weiss-Fotografie, duenne weisse Rahmen, Petrol/Blau + Signalrot,
   Franklin-Gothic-Typografie (Web: Libre Franklin), Open Sans als Fliesstext.
   ========================================================================= */

/* ---------- Tokens ---------- */
:root{
  --black:#08080a;
  --black-2:#101013;
  --black-3:#17171b;
  --white:#ffffff;
  --grey:#a9abb0;
  --grey-dim:#75787e;

  --blue:#1a7496;          /* Logo-Blau / HOUC-Petrol */
  --blue-bright:#31a8d2;   /* Akzent auf Schwarz */
  --red:#e01e1f;           /* Logo-Rot */
  --red-bright:#ff3b2f;
  --gold:#c9a34a;          /* Weihnachts-Circus */

  --line:rgba(255,255,255,.16);
  --line-strong:rgba(255,255,255,.34);

  --font-display:"Libre Franklin","Franklin Gothic Demi","Helvetica Neue",Arial,sans-serif;
  --font-body:"Open Sans","Segoe UI",Helvetica,Arial,sans-serif;
  --font-serif:"Playfair Display",Georgia,serif;

  --wrap:1220px;
  --gut:clamp(20px,5vw,64px);
  --sec:clamp(72px,10vw,140px);

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

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--black);color:var(--white);
  font-family:var(--font-body);font-size:clamp(15px,1.05vw,17px);line-height:1.7;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;height:auto}
picture{display:contents} /* <picture> erzeugt keine eigene Box – Layout gilt für das <img> */
picture>source{display:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:800;line-height:.95;letter-spacing:-.02em;text-transform:uppercase}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
::selection{background:var(--red);color:#fff}
:focus-visible{outline:2px solid var(--blue-bright);outline-offset:3px}

/* ---------- Layout ---------- */
.wrap{width:min(100% - var(--gut)*2,var(--wrap));margin-inline:auto}
.wrap-wide{width:min(100% - var(--gut)*2,1500px);margin-inline:auto}
.section{padding-block:var(--sec)}
.section--tight{padding-block:clamp(48px,7vw,90px)}
.section--alt{background:var(--black-2)}
.stack>*+*{margin-top:clamp(18px,2.4vw,30px)}
.skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--red);color:#fff;padding:12px 20px}
.skip:focus{left:12px;top:12px}

/* ---------- Typo ---------- */
.h-xxl{font-size:clamp(2.6rem,9.5vw,7.5rem)}
.h-xl {font-size:clamp(2.2rem,6.4vw,5rem)}
.h-l  {font-size:clamp(1.7rem,3.9vw,3.1rem)}
.h-m  {font-size:clamp(1.25rem,2.1vw,1.75rem)}
.h-s  {font-size:clamp(1.05rem,1.5vw,1.25rem);letter-spacing:.01em}

.eyebrow{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  letter-spacing:.24em;font-size:.72rem;color:var(--blue-bright);
  display:flex;align-items:center;gap:14px;margin:0 0 18px;
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--blue-bright);flex:none}
.eyebrow--red{color:var(--red-bright)}
.eyebrow--red::before{background:var(--red-bright)}

.lead{font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.65;color:#e6e7e9;max-width:62ch}
.muted{color:var(--grey)}
.serif-quote{
  font-family:var(--font-serif);font-weight:700;font-style:italic;
  font-size:clamp(1.4rem,3vw,2.4rem);line-height:1.28;letter-spacing:-.01em;text-transform:none;
}
.hl-red{color:var(--red-bright)}
.hl-blue{color:var(--blue-bright)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  letter-spacing:.1em;font-size:.8rem;line-height:1;
  padding:1.15em 1.9em;border:1px solid transparent;
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease);
}
.btn:hover{transform:translateY(-2px)}
.btn--primary{background:var(--red);color:#fff}
.btn--primary:hover{background:var(--red-bright)}
.btn--ghost{border-color:var(--line-strong);color:#fff}
.btn--ghost:hover{border-color:#fff;background:#fff;color:var(--black)}
.btn--blue{background:var(--blue);color:#fff}
.btn--blue:hover{background:var(--blue-bright)}
.btn--sm{padding:.9em 1.4em;font-size:.72rem}
.btn-row{display:flex;flex-wrap:wrap;gap:14px}

.arrow-link{
  display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  letter-spacing:.12em;font-size:.78rem;
  border-bottom:1px solid var(--line-strong);padding-bottom:.5em;
  transition:border-color .25s var(--ease),color .25s var(--ease),gap .25s var(--ease);
}
.arrow-link:hover{border-color:var(--red);color:var(--red-bright);gap:1.1em}

/* ---------- Header ---------- */
.header{
  position:fixed;inset:0 0 auto;z-index:100;
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease);
}
/* Hintergrund und Weichzeichner liegen auf einer eigenen Ebene.
   Wichtig: backdrop-filter darf NICHT auf .header selbst stehen — sonst wird der
   Header zum Bezugsrahmen für position:fixed und die mobile Menü-Ebene
   schrumpft beim Scrollen auf Kopfzeilenhöhe zusammen. */
.header::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:rgba(8,8,10,.9);backdrop-filter:blur(14px);
  opacity:0;transition:opacity .3s var(--ease);pointer-events:none;
}
.header.is-stuck::before{opacity:1}
.header.is-stuck{border-bottom-color:var(--line)}
.header__inner{position:relative;z-index:1;display:flex;align-items:center;gap:clamp(18px,3vw,44px);height:78px}
.header__logo img{height:38px;width:auto}
.nav{display:flex;align-items:center;gap:clamp(14px,1.9vw,28px);margin-left:auto}
.nav a{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  letter-spacing:.11em;font-size:.75rem;padding:.4em 0;position:relative;color:#dcdde0;
  transition:color .2s var(--ease);
}
.nav a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--red);transition:width .28s var(--ease)}
.nav a:hover,.nav a[aria-current="page"]{color:#fff}
.nav a:hover::after,.nav a[aria-current="page"]::after{width:100%}
.nav .btn{margin-left:6px}
.nav .btn::after{display:none}
.burger{display:none;width:46px;height:46px;margin-left:auto;position:relative;z-index:110}
.burger span{position:absolute;left:11px;right:11px;height:2px;background:#fff;transition:transform .3s var(--ease),opacity .2s}
.burger span:nth-child(1){top:16px}
.burger span:nth-child(2){top:23px}
.burger span:nth-child(3){top:30px}
body.nav-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.nav-open .burger span:nth-child(2){opacity:0}
body.nav-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media (max-width:960px){
  .burger{display:block}
  .nav{
    position:fixed;inset:0;margin:0;background:rgba(8,8,10,.98);backdrop-filter:blur(8px);
    flex-direction:column;justify-content:center;gap:6px;
    opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s;
  }
  body.nav-open .nav{opacity:1;visibility:visible}
  body.nav-open{overflow:hidden}
  /* Beim geöffneten Menü bleibt die Kopfzeile durchsichtig – der Menü-Hintergrund reicht */
  body.nav-open .header::before{opacity:0}
  .nav a{font-size:1.5rem;padding:.45em 0}
  .nav .btn{margin-top:20px;font-size:.9rem}
}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding-block:120px 90px;overflow:hidden}
.hero__bg{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);z-index:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.12) brightness(.62)}
.hero__bg::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(120% 90% at 50% 40%,rgba(8,8,10,.32) 0%,rgba(8,8,10,.82) 62%,var(--black) 100%),
    linear-gradient(180deg,rgba(8,8,10,.9) 0%,rgba(8,8,10,0) 26%,rgba(8,8,10,.28) 58%,var(--black) 100%);
}
.hero__inner{position:relative;z-index:2;text-align:center}
.hero__logo{width:min(88%,620px);margin:0 auto clamp(22px,3.5vw,38px);filter:drop-shadow(0 12px 40px rgba(0,0,0,.7))}
.hero__frame{
  border:1px solid var(--line-strong);padding:clamp(22px,3.4vw,42px) clamp(18px,4vw,56px);
  display:inline-block;max-width:100%;background:rgba(8,8,10,.22);backdrop-filter:blur(2px);
}
.hero__date{
  font-family:var(--font-display);font-weight:900;text-transform:uppercase;
  font-size:clamp(1.6rem,4.6vw,3.4rem);line-height:1;letter-spacing:-.02em;margin:0;
}
.hero__venue{
  margin:.9em 0 0;font-family:var(--font-display);font-weight:600;text-transform:uppercase;
  letter-spacing:.2em;font-size:clamp(.68rem,1.35vw,.86rem);color:#d3d5d8;
}
.hero__claim{
  margin:clamp(20px,3vw,30px) auto 0;max-width:52ch;color:#e4e5e7;
  font-size:clamp(.95rem,1.35vw,1.12rem);
}
.hero__cta{justify-content:center;margin-top:clamp(24px,3.4vw,38px)}
.hero__scroll{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:2;
  font-family:var(--font-display);font-weight:700;letter-spacing:.22em;font-size:.6rem;
  text-transform:uppercase;color:var(--grey);display:flex;flex-direction:column;align-items:center;gap:10px;
}
.hero__scroll::after{content:"";width:1px;height:38px;background:linear-gradient(var(--grey),transparent);animation:sc 2.2s var(--ease) infinite}
@keyframes sc{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (max-width:760px){
  .hero__bg{grid-template-columns:1fr}
  .hero__bg img:nth-child(2),.hero__bg img:nth-child(3){display:none}
  .hero__scroll{display:none}
}

/* ---------- Countdown ---------- */
.count{display:flex;justify-content:center;gap:clamp(10px,2.4vw,30px);margin-top:clamp(26px,3.6vw,40px);flex-wrap:wrap}
.count__i{min-width:clamp(64px,9vw,104px);border:1px solid var(--line);padding:.75em .4em .6em;background:rgba(8,8,10,.4)}
.count__n{display:block;font-family:var(--font-display);font-weight:900;font-size:clamp(1.5rem,3.4vw,2.5rem);line-height:1;font-variant-numeric:tabular-nums}
.count__l{display:block;font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.18em;font-size:.56rem;color:var(--grey);margin-top:.7em}

/* ---------- Ticker ---------- */
.ticker{border-block:1px solid var(--line);overflow:hidden;background:var(--black-2);padding-block:18px}
.ticker__track{display:flex;width:max-content;animation:tick 34s linear infinite}
.ticker:hover .ticker__track{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.ticker__track{animation:none}}
.ticker__track span{
  font-family:var(--font-display);font-weight:900;text-transform:uppercase;
  font-size:clamp(1rem,2.1vw,1.6rem);letter-spacing:.04em;padding-inline:.5em;white-space:nowrap;
  display:flex;align-items:center;gap:1em;color:#fff;
}
.ticker__track span::after{content:"";width:7px;height:7px;background:var(--red);border-radius:50%;flex:none}
.ticker--blue .ticker__track span::after{background:var(--blue-bright)}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- Split / Intro ---------- */
.split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,80px);align-items:center}
.split--rev .split__media{order:-1}
@media (max-width:900px){.split{grid-template-columns:1fr}.split--rev .split__media{order:0}}
.framed{position:relative;padding:14px}
.framed::before{content:"";position:absolute;inset:0;border:1px solid var(--line-strong);pointer-events:none}
.framed img{width:100%;filter:grayscale(1) contrast(1.08);transition:filter .6s var(--ease)}
.framed:hover img{filter:grayscale(0) contrast(1)}

/* ---------- Facts ---------- */
.facts{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}
.facts__i{padding:clamp(24px,3.4vw,40px) clamp(16px,2.2vw,28px);border-right:1px solid var(--line)}
.facts__i:last-child{border-right:0}
.facts__n{font-family:var(--font-display);font-weight:900;font-size:clamp(2rem,4.6vw,3.4rem);line-height:1;color:var(--blue-bright)}
.facts__l{margin-top:.6em;font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;color:var(--grey)}
@media (max-width:860px){
  .facts{grid-template-columns:repeat(2,1fr)}
  .facts__i:nth-child(2n){border-right:0}
  .facts__i:nth-child(-n+2){border-bottom:1px solid var(--line)}
}

/* ---------- Tage / Days ---------- */
.days{display:grid;gap:clamp(18px,2.4vw,28px)}
.day{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  border:1px solid var(--line);overflow:hidden;background:var(--black-2);
  transition:border-color .4s var(--ease),transform .4s var(--ease);
}
.day:hover{border-color:var(--line-strong);transform:translateY(-3px)}
.day__media{position:relative;overflow:hidden;min-height:clamp(240px,32vw,400px)}
.day__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1) brightness(.8);transition:filter .7s var(--ease),transform .9s var(--ease)}
.day:hover .day__media img{filter:grayscale(0) contrast(1) brightness(.92);transform:scale(1.045)}
.day__badge{
  position:absolute;top:0;left:0;z-index:2;
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:.16em;
  font-size:.68rem;padding:.85em 1.3em;background:var(--red);color:#fff;
}
.day--show .day__badge{background:var(--blue)}
.day--fire .day__badge{background:#b4441f}
.day__body{padding:clamp(26px,3.6vw,54px);display:flex;flex-direction:column;justify-content:center}
.day__kicker{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;color:var(--grey);margin-bottom:1em}
.day__title{font-size:clamp(1.9rem,4vw,3.2rem)}
.day__title em{font-style:normal;display:block;color:var(--blue-bright)}
.day--power .day__title em{color:var(--red-bright)}
.day--fire .day__title em{color:#ff8a3d}
.day__sub{margin-top:.8em;font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:clamp(.9rem,1.5vw,1.1rem);color:#fff}
.day__text{margin-top:1.2em;color:var(--grey);max-width:52ch}
.day__foot{margin-top:clamp(20px,2.6vw,32px)}
@media (max-width:900px){.day{grid-template-columns:1fr}.day__media{min-height:230px}}

/* ---------- Page-Hero (Unterseiten) ---------- */
.phero{position:relative;min-height:clamp(440px,62vh,640px);display:flex;align-items:flex-end;padding-block:150px clamp(44px,6vw,80px);overflow:hidden}
.phero__bg{position:absolute;inset:0;z-index:0}
.phero__bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1) brightness(.55)}
.phero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,10,.86) 0%,rgba(8,8,10,.34) 40%,rgba(8,8,10,.9) 88%,var(--black) 100%)}
.phero__inner{position:relative;z-index:2}
.phero__meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(18px,2.4vw,26px)}
.chip{
  border:1px solid var(--line-strong);padding:.62em 1.05em;
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  letter-spacing:.14em;font-size:.68rem;background:rgba(8,8,10,.5);
}
.chip--red{background:var(--red);border-color:var(--red)}
.chip--blue{background:var(--blue);border-color:var(--blue)}
.chip--fire{background:#b4441f;border-color:#b4441f}

/* ---------- Breadcrumb ---------- */
.crumb{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:.66rem;color:var(--grey);margin-bottom:1.4em}
.crumb a:hover{color:#fff}

/* ---------- Galerie ---------- */
.gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(12px,1.8vw,22px)}
.gal figure{margin:0;position:relative;overflow:hidden}
.gal img{width:100%;aspect-ratio:3/2;object-fit:cover;filter:grayscale(1) contrast(1.08);transition:filter .6s var(--ease),transform .8s var(--ease)}
.gal figure:hover img{filter:grayscale(0);transform:scale(1.04)}
.gal figcaption{margin-top:.8em;font-size:.78rem;color:var(--grey-dim)}

/* ---------- Cards ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:clamp(14px,2vw,22px)}
.card{border:1px solid var(--line);padding:clamp(24px,3vw,38px);background:var(--black-2);transition:border-color .3s var(--ease),transform .3s var(--ease)}
.card:hover{border-color:var(--line-strong);transform:translateY(-3px)}
.card__num{font-family:var(--font-display);font-weight:900;font-size:1rem;color:var(--red-bright);letter-spacing:.1em;margin-bottom:1.2em}
.card h3{font-size:clamp(1.1rem,1.7vw,1.4rem);margin-bottom:.7em}
.card p{color:var(--grey);font-size:.94rem}

/* ---------- Ticket-Karten ---------- */
.tick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:clamp(14px,2vw,22px)}
.tcard{border:1px solid var(--line);background:var(--black-2);display:flex;flex-direction:column;transition:border-color .3s var(--ease),transform .3s var(--ease)}
.tcard:hover{transform:translateY(-4px);border-color:var(--line-strong)}
.tcard--hl{border-color:var(--red)}
.tcard__top{padding:clamp(20px,2.4vw,28px);border-bottom:1px solid var(--line)}
.tcard__day{font-family:var(--font-display);font-weight:900;text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;color:var(--blue-bright)}
.tcard--power .tcard__day{color:var(--red-bright)}
.tcard--fire .tcard__day{color:#ff8a3d}
.tcard--kombi .tcard__day{color:var(--gold)}
.tcard h3{font-size:clamp(1.3rem,2.2vw,1.75rem);margin-top:.55em;min-height:1.9em;display:flex;align-items:flex-start}
.tcard__time{margin-top:.7em;font-size:.86rem;color:var(--grey)}
.tcard__body{padding:clamp(20px,2.4vw,28px);flex:1;display:flex;flex-direction:column;gap:16px}
.tcard__body p{color:var(--grey);font-size:.92rem}
.tcard__price{
  font-family:var(--font-display);font-weight:900;font-size:1.5rem;line-height:1;margin-top:auto;
}
.tcard__price small{display:block;font-family:var(--font-body);font-weight:400;font-size:.72rem;letter-spacing:.06em;color:var(--grey-dim);margin-top:.7em;text-transform:uppercase}
.tag-soon{
  display:inline-block;border:1px dashed var(--line-strong);color:var(--grey);
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.14em;
  font-size:.62rem;padding:.6em 1em;
}

/* ---------- Ticket-Shop-Embed ---------- */
.shop{border:1px solid var(--line);background:var(--black-2)}
.shop__head{padding:clamp(20px,2.6vw,30px);border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.shop__head h2{font-size:clamp(1.1rem,1.8vw,1.4rem)}
.shop__slot{min-height:420px;display:grid;place-items:center;padding:clamp(28px,5vw,60px);text-align:center}
.shop__slot .placeholder{max-width:52ch}
.shop__slot .placeholder p{color:var(--grey)}
.shop__slot iframe{width:100%;min-height:700px;border:0;display:block}

/* ---------- Accordion / FAQ ---------- */
.acc{border-top:1px solid var(--line)}
.acc__item{border-bottom:1px solid var(--line)}
.acc__btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:1.35em 0;text-align:left;
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  letter-spacing:.03em;font-size:clamp(.9rem,1.5vw,1.08rem);
  transition:color .25s var(--ease);
}
.acc__btn:hover{color:var(--blue-bright)}
.acc__btn::after{content:"+";font-size:1.5em;line-height:1;color:var(--red-bright);transition:transform .3s var(--ease);flex:none}
.acc__btn[aria-expanded="true"]::after{transform:rotate(45deg)}
.acc__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease)}
.acc__panel[data-open="true"]{grid-template-rows:1fr}
.acc__panel>div{overflow:hidden}
.acc__panel p{color:var(--grey);padding-bottom:1.5em;max-width:70ch}

/* ---------- Info-Liste ---------- */
.deflist{border-top:1px solid var(--line)}
.deflist__row{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:20px;padding:1.15em 0;border-bottom:1px solid var(--line)}
.deflist__k{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;color:var(--grey)}
.deflist__v{color:#e9eaec}
@media (max-width:640px){.deflist__row{grid-template-columns:1fr;gap:6px}}

/* ---------- Map (2-Klick-Loesung, DSGVO) ---------- */
.map{position:relative;border:1px solid var(--line);background:var(--black-2);aspect-ratio:16/9;min-height:320px;display:grid;place-items:center;text-align:center;padding:30px;overflow:hidden}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.4) invert(.92) hue-rotate(180deg)}
.map__note{max-width:44ch;color:var(--grey);font-size:.9rem}

/* ---------- Newsletter / CTA-Band ---------- */
.band{position:relative;overflow:hidden;border-block:1px solid var(--line)}
.band__bg{position:absolute;inset:0;z-index:0}
.band__bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.32)}
.band__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,10,.95),rgba(8,8,10,.62))}
.band__inner{position:relative;z-index:2;padding-block:clamp(60px,8vw,110px)}
.form-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;max-width:560px}
.input{
  flex:1 1 240px;width:100%;background:transparent;border:1px solid var(--line-strong);color:#fff;
  padding:1.05em 1.1em;font-family:var(--font-body);font-size:.95rem;
}
.input::placeholder{color:var(--grey-dim)}
.input:focus{outline:none;border-color:var(--blue-bright)}
textarea.input{min-height:170px;resize:vertical;flex-basis:100%}
.form-note{font-size:.78rem;color:var(--grey-dim);margin-top:14px;max-width:60ch}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}

/* ---------- Partner ---------- */
.partners{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(28px,5vw,72px)}
.partners img{height:clamp(38px,4.6vw,62px);width:auto;opacity:.62;filter:grayscale(1);transition:opacity .3s var(--ease),filter .3s var(--ease)}
.partners a:hover img{opacity:1;filter:grayscale(0)}
.partners__houc img{height:clamp(54px,6.2vw,86px)}

/* ---------- Day-Nav (prev/next) ---------- */
.daynav{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.daynav a{padding:clamp(24px,3.4vw,44px) 0;transition:background .3s var(--ease)}
.daynav a:hover{background:var(--black-2)}
.daynav a+a{border-left:1px solid var(--line);padding-left:clamp(20px,3vw,40px)}
.daynav a:first-child{padding-right:clamp(20px,3vw,40px)}
.daynav__l{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:.64rem;color:var(--grey);display:block;margin-bottom:.9em}
.daynav__t{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:clamp(1rem,2vw,1.5rem);line-height:1.05}
.daynav a:last-child{text-align:right}
@media (max-width:640px){.daynav{grid-template-columns:1fr}.daynav a+a{border-left:0;border-top:1px solid var(--line);padding-left:0}.daynav a:last-child{text-align:left}}

/* ---------- Footer ---------- */
.footer{border-top:1px solid var(--line);background:var(--black-2);padding-block:clamp(52px,6vw,80px) 34px}
.footer__grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:clamp(28px,4vw,56px)}
@media (max-width:900px){.footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer__grid{grid-template-columns:1fr}}
.footer__logo img{width:210px;margin-bottom:20px}
.footer h4{font-size:.74rem;letter-spacing:.2em;color:var(--grey);margin-bottom:1.4em;font-weight:700}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.75em}
.footer a{color:#d5d6d9;font-size:.9rem;transition:color .2s var(--ease)}
.footer a:hover{color:var(--red-bright)}
.footer__bar{margin-top:clamp(40px,5vw,64px);padding-top:26px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;font-size:.78rem;color:var(--grey-dim)}
.social{display:flex;gap:14px;margin-top:20px}
.social a{width:40px;height:40px;border:1px solid var(--line);display:grid;place-items:center;transition:border-color .25s var(--ease),background .25s var(--ease)}
.social a:hover{border-color:var(--red);background:var(--red)}
.social svg{width:17px;height:17px;fill:currentColor}

/* ---------- Reveal ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* ---------- Rechtstexte ---------- */
.legal{max-width:80ch}
.legal h2{font-size:clamp(1.2rem,2vw,1.6rem);margin:2.2em 0 .8em}
.legal h3{font-size:1rem;margin:1.8em 0 .6em;letter-spacing:0}
.legal p,.legal li{color:#d3d5d8;font-size:.95rem}
.legal ul{padding-left:1.1em;display:grid;gap:.5em;margin:0 0 1.2em}
.legal a{color:var(--blue-bright);text-decoration:underline;text-underline-offset:3px}
.todo{border-left:3px solid var(--gold);background:rgba(201,163,74,.09);padding:14px 18px;font-size:.86rem;color:#e7d9b6;margin:1.2em 0}

/* ---------- Feinschliff Mobile ---------- */
@media (max-width:560px){
  .header__logo img{height:30px}
  .header__inner{height:66px}
  .hero__cta .btn,.btn-row .btn{flex:1 1 100%}
  .hero{padding-block:104px 76px}
  .count__i{min-width:70px}
}

/* Logo als Seitenüberschrift der Startseite */
.hero__brand{margin:0}

/* Nur für Screenreader */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* SACHSEN media (SVG, breites Querformat) */
.partners img.partners__sm{height:clamp(28px,3.2vw,42px)}

/* ---------- Formular-Rückmeldung & Spamschutz ---------- */
.form-msg{border-left:3px solid var(--blue-bright);background:rgba(49,168,210,.1);padding:14px 18px;font-size:.92rem;margin-bottom:20px}
.form-msg.is-ok{border-left-color:#3fb56b;background:rgba(63,181,107,.1);color:#cdead9}
.form-msg.is-error{border-left-color:var(--red-bright);background:rgba(255,59,47,.1);color:#f6cfcc}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
