:root{
  --bg:#ffffff; --bg2:#f7f8fa; --panel:#ffffff; --line:#e6e9ee;
  --ink:#1b2330; --muted:#5c6675;
  --red:#e82020; --red-d:#c41818; --red-l:#c41818;
  --maxw:1140px; --radius:16px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:var(--red-l);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}

.btn{display:inline-block;padding:.85em 1.6em;border-radius:999px;font-weight:700;font-size:.98rem;
  border:1.5px solid transparent;cursor:pointer;transition:.15s}
.btn-red{background:var(--red);color:#fff;border-color:var(--red);box-shadow:0 8px 24px rgba(232,32,32,.22)}
.btn-red:hover{background:var(--red-d);border-color:var(--red-d);text-decoration:none;transform:translateY(-1px)}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-outline:hover{border-color:var(--ink);text-decoration:none}
.btn-lg{padding:1.05em 2.2em;font-size:1.06rem}

.hdr{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.9);backdrop-filter:saturate(1.4) blur(8px);
  border-bottom:1px solid var(--line)}
.hdr-inner{max-width:var(--maxw);margin:0 auto;padding:16px 22px;display:flex;flex-direction:column;align-items:center;gap:12px;position:relative}
.brand img{height:54px;width:auto;display:block}
.nav{display:flex;gap:22px;flex-wrap:wrap;justify-content:center}
.nav a{color:var(--ink);font-weight:600;font-size:.96rem}
.nav a:hover{color:var(--red-d);text-decoration:none}
.nav a[aria-current=page]{color:var(--red-d)}
.navtoggle{display:none}
.burger{display:none;position:absolute;right:22px;top:18px;width:46px;height:42px;border:1.5px solid var(--line);border-radius:10px;
  cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;background:#fff}
.burger span{width:20px;height:2px;background:var(--ink);border-radius:2px}

.hero{max-width:var(--maxw);margin:0 auto;padding:72px 22px 26px;text-align:center}
.hero-event{padding-top:88px;
  background-image:radial-gradient(760px 420px at 80% -10%, rgba(232,32,32,.10), transparent 62%);background-repeat:no-repeat}
.kicker{text-transform:uppercase;letter-spacing:.2em;font-size:.78rem;color:var(--red-d);font-weight:700;margin:0 0 14px}
.logo-type{font-size:clamp(2.8rem,9vw,6rem);line-height:.95;margin:0;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.logo-type::after{content:"";display:block;width:84px;height:5px;background:var(--red);border-radius:3px;margin:22px auto 0}
.hero-sub{font-size:clamp(1.1rem,2.4vw,1.45rem);max-width:38ch;margin:24px auto 8px;font-weight:600;color:var(--ink)}
.hero-meta{color:var(--muted);letter-spacing:.04em;margin:0 0 26px}
.cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

.facts{max-width:var(--maxw);margin:30px auto;padding:0 22px;display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
.fact{flex:1 1 180px;max-width:260px;background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius);padding:26px 18px;text-align:center}
.fact-k{display:block;font-size:2.6rem;font-weight:800;color:var(--red-d);line-height:1.05}
.fact-v{display:block;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;margin-top:8px}

.intro{max-width:760px;margin:42px auto;padding:0 22px;text-align:center;font-size:1.18rem;color:var(--ink)}

.page-hero{padding:64px 22px 8px;max-width:820px}
.page-hero h1{font-size:clamp(2rem,5vw,3rem);margin:.1em 0 0;line-height:1.1;color:var(--ink)}
.page-hero .lead{font-size:1.2rem;color:var(--muted);margin-top:16px}

.grid{margin:34px auto;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;color:var(--ink)}
.card h2{margin:0 0 10px;font-size:1.22rem;color:var(--ink)}
.card p{margin:0;color:var(--muted)}
.card-accent{border-left:3px solid var(--red)}
.card-link{transition:.15s;display:block}
.card-link:hover{border-color:var(--red);box-shadow:0 12px 30px rgba(27,35,48,.08);transform:translateY(-2px);text-decoration:none}
.card-link .more{display:inline-block;margin-top:14px;color:var(--red-d);font-weight:700}

.quotes{margin:50px auto}
.quotes-h{text-align:center;font-size:1.5rem;margin:0 0 24px;color:var(--ink)}
.quote-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.quote{margin:0;background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px 26px 40px;
  color:var(--ink);font-style:italic;position:relative}
.quote::before{content:"\201C";color:var(--red);font-size:2.6rem;line-height:1;position:absolute;top:18px;left:14px;opacity:.55}

.cta-band{text-align:center;margin:50px auto}

.closing{max-width:860px;margin:64px auto;padding:54px 26px;text-align:center;
  background:linear-gradient(135deg, rgba(232,32,32,.10), rgba(232,32,32,.03));
  border:1px solid rgba(232,32,32,.28);border-radius:24px}
.closing h2{font-size:clamp(1.6rem,4vw,2.4rem);margin:0 0 12px;color:var(--ink)}
.closing p{color:var(--muted);max-width:44ch;margin:0 auto 28px;font-size:1.1rem}

.contact{display:grid;grid-template-columns:1fr 1.3fr;gap:30px;margin:34px auto 60px;align-items:start}
.contact-info,.contact-form{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px}
.contact-info h2{margin-top:0;color:var(--ink)}
.contact-info p{color:var(--muted)}
.contact-info a{color:var(--red-d)}
.contact-form label{display:block;margin:0 0 14px;font-size:.9rem;color:var(--muted)}
.contact-form input,.contact-form textarea{width:100%;margin-top:5px;padding:11px 13px;background:#fff;
  border:1px solid var(--line);border-radius:9px;color:var(--ink);font:inherit}
.hp{position:absolute;left:-9999px}
.flash-ok{background:#e7f6ec;border:1px solid #7bbf95;padding:12px 16px;border-radius:10px;color:#15532f}
.flash-err{background:#fdecec;border:1px solid #e2a3a3;padding:12px 16px;border-radius:10px;color:#7a2020}
@media(max-width:760px){.contact{grid-template-columns:1fr}}

.foot{margin-top:48px;border-top:1px solid var(--line);background:var(--bg2)}
.foot-inner{max-width:var(--maxw);margin:0 auto;padding:42px 22px 56px;text-align:center}
.foot-logo{height:34px;width:auto;margin:0 auto 16px}
.foot-meta p{margin:4px 0;color:var(--muted)}
.foot-meta a{color:var(--muted)}
.foot-legal{color:var(--muted);font-size:.88rem;margin-top:16px}
.foot-legal a{color:var(--muted)}

@media(max-width:680px){
  .burger{display:flex}
  .nav{flex-direction:column;gap:0;width:100%;display:none;text-align:center}
  .navtoggle:checked ~ .nav{display:flex}
  .nav a{padding:12px 2px;border-top:1px solid var(--line);width:100%}
}

/* Hinweis-Banner */
.notice-bar{background:#fff4f4;border-bottom:1px solid #f3cccc;color:#a01818;text-align:center;
  padding:10px 22px;font-weight:600;font-size:.92rem}
/* Shops-Untertitel */
.shops-sub{text-align:center;color:var(--muted);margin:-12px auto 22px;max-width:50ch}

/* Artikel-Typografie (Blöcke) */
.prose{max-width:760px;margin:24px auto 10px}
.prose h2{font-size:1.5rem;margin:1.8em 0 .4em;color:var(--ink)}
.prose h3{font-size:1.2rem;margin:1.4em 0 .3em;color:var(--ink)}
.prose h4{font-size:1.05rem;margin:1.2em 0 .3em;color:var(--ink)}
.prose p{margin:.7em 0;color:#33404f}
.prose ul{margin:.6em 0 1em;padding-left:1.2em}
.prose li{margin:.35em 0;color:#33404f}
.prose a{color:var(--red-d)}

/* Leistungsbereiche (Start) */
.svc-list{list-style:none;margin:8px 0 0;padding:0}
.svc-list li{display:flex;flex-direction:column;padding:8px 0;border-top:1px solid var(--line)}
.svc-list li strong{color:var(--ink)}
.svc-list li span{color:var(--muted);font-size:.9rem}

/* Skip-Link & Fokus (A11y) */
.skip{position:absolute;left:-9999px;top:0;z-index:300;background:var(--red);color:#fff;padding:10px 16px;border-radius:0 0 10px 0}
.skip:focus{left:0}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,label:focus-within{outline:2px solid var(--red);outline-offset:2px}

/* Footer-Navigation */
.foot-nav{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin:0 0 16px}
.foot-nav a{color:var(--muted);font-size:.9rem}

/* Datenschutz-Checkbox im Formular */
.contact-form .check{display:flex;gap:9px;align-items:flex-start;font-size:.84rem;color:var(--muted);margin-bottom:4px}
.contact-form .check input{width:auto;margin:3px 0 0}

/* Consent-Banner */
.consent{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:20px;
  background:radial-gradient(125% 125% at 50% 45%, rgba(8,10,14,.55), rgba(8,10,14,.86));
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.consent.is-visible{display:flex;animation:cfade .2s ease}
@keyframes cfade{from{opacity:0}to{opacity:1}}
.consent-card{background:#fff;width:100%;max-width:460px;border-radius:18px;padding:30px 28px;
  box-shadow:0 30px 90px rgba(0,0,0,.45);text-align:left}
.consent-card h2{margin:0 0 10px;font-size:1.35rem;color:var(--ink)}
.consent-card p{margin:0 0 22px;color:var(--muted);font-size:.96rem;line-height:1.55}
.consent-btns{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}
@media(max-width:470px){.consent-card{padding:24px 20px}.consent-btns{gap:10px}.consent-btns .btn{flex:1 1 auto;text-align:center}}

/* Event-Countdown */
.countdown{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:4px 0 26px}
.cd-box{min-width:78px;background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:12px 14px;text-align:center}
.cd-num{display:block;font-size:2.2rem;font-weight:800;color:var(--red-d);line-height:1;font-variant-numeric:tabular-nums}
.cd-lbl{display:block;margin-top:6px;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}


/* Rechtsseiten (Impressum/Datenschutz – eingebundene Datei) */
.legal h1{font-size:1.8rem;margin:.1em 0 .5em;color:var(--ink);line-height:1.2}
.legal h2{font-size:1.35rem;margin:1.5em 0 .4em;color:var(--ink)}
.legal h3{font-size:1.1rem;margin:1.2em 0 .3em;color:var(--ink)}
.legal h4{font-size:1rem;margin:1em 0 .3em;color:var(--ink)}
.legal p,.legal li{color:#33404f}
.legal a{color:var(--red-d);word-break:break-word}
.legal ul,.legal ol{padding-left:1.2em;margin:.6em 0 1em}
.legal strong,.legal b{color:var(--ink)}
.legal table{border-collapse:collapse;width:100%;margin:1em 0;font-size:.95rem}
.legal td,.legal th{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.legal img{max-width:100%;height:auto}

/* Bilder im Inhalt – Größe (s/m/l/full) & Ausrichtung (left/right/center) */
.prose .img{margin:1.4em 0}
.prose .img img{display:block;width:100%;height:auto;border-radius:12px}
.img-s{max-width:240px}
.img-m{max-width:430px}
.img-l{max-width:680px}
.img-full{max-width:100%}
.img-center{margin-left:auto;margin-right:auto}
.img-left{float:left;margin:.3em 1.6em 1em 0}
.img-right{float:right;margin:.3em 0 1em 1.6em}
.prose::after{content:"";display:block;clear:both}
@media(max-width:560px){
  .img-left,.img-right{float:none;margin:1.4em auto}
}
