/* ============================================================
   FONTS — ES Peak, lokal unter assets/font/
   Skala: Utopia, Viewport 320px–1400px
   ============================================================ */
@font-face{
  font-family:"ES Peak";
  src:url("../font/ESPeak-Regular.woff2") format("woff2");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"ES Peak";
  src:url("../font/ESPeak-Extrabold.woff2") format("woff2");
  font-weight:800;
  font-style:normal;
  font-display:swap;
}

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root{
  --bordeaux: #840046;
  --bordeaux-hover: #6b0039;
  --hellblau: #a9dae7;
  --white: #ffffff;
  --black: #1a1216;
  --text-grey: #52494E;
  --line: #e6dee1;
  --grey-light: #f6f2f3;
  --grey-dark: #2c2428;
  --blue-light: #e8f4f8;
  --line-footer: rgba(92,0,49,.31);
  --line-zeile: rgba(0,0,0,.1);
  --placeholder: #c4c4c4;

  --text-s: 0.75rem;
  --text-m: 1rem;
  --text-l: 1.125rem;
  --h6: clamp(1rem, 0.963rem + 0.1852vw, 1.125rem);
  --h5: clamp(1.125rem, 1.0694rem + 0.2778vw, 1.3125rem);
  --h4: clamp(1.25rem, 1.1759rem + 0.3704vw, 1.5rem);
  --h3: clamp(1.5rem, 1.3519rem + 0.7407vw, 2rem);
  --h2: clamp(1.625rem, 1.4028rem + 1.1111vw, 2.375rem);
  --h1: clamp(2rem, 1.7778rem + 1.1111vw, 2.75rem);
  --display: clamp(2.5rem, 2.0556rem + 2.2222vw, 4rem);
  --line-l: 1.5;
  --line-s: 1.2;

  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs: clamp(0.5rem, 0.4167rem + 0.3704vw, 0.75rem);
  --space-s: clamp(0.75rem, 0.6667rem + 0.3704vw, 1rem);
  --space-m: clamp(1rem, 0.8333rem + 0.7407vw, 1.5rem);
  --space-l: clamp(1.5rem, 1.3333rem + 0.7407vw, 2rem);
  --space-xl: clamp(2rem, 1.6667rem + 1.4815vw, 3rem);
  --space-2xl: clamp(3rem, 2.6667rem + 1.4815vw, 4rem);
  --space-3xl: clamp(4rem, 3.3333rem + 2.963vw, 6rem);

  --container-large: 90rem;
  --radius: 0.25rem;
  --gutter: clamp(1.25rem, 0.6667rem + 2.9167vw, 3rem);
  --section-padding-l: clamp(3.5rem, 2.6667rem + 4.1667vw, 6rem);
  --section-padding-m: clamp(3rem, 2.5rem + 2.5vw, 4.5rem);
  --aside: 26.25rem;
  --media-h: clamp(12.5rem, 10rem + 12vw, 25rem);
  --media-h-sm: clamp(11.25rem, 10rem + 7vw, 18.75rem);
  --header-h: clamp(4.5rem, 4.2rem + 0.9vw, 5.5rem);
  --hero-media-overlap: clamp(2rem, 1.2593rem + 3.7037vw, 4.5rem);

  --shadow: 0 var(--space-s) var(--space-l) rgba(26,18,22,.10);
  --shadow-soft: 0 var(--space-s) var(--space-l) rgba(26,18,22,.04);
  --shadow-lift: 0 var(--space-m) var(--space-xl) rgba(26,18,22,.12);

  --ease: .18s ease;
  --font-display:"ES Peak",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --select-arrow:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23840046' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

/* ============================================================
   RESET
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
section[id]{scroll-margin-top:var(--header-h)}
body{
  margin:0;
  background:var(--white);
  color:var(--text-grey);
  font-family:var(--font-display);
  font-size:var(--text-m);
  line-height:var(--line-l);
  font-weight:400;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
p{margin:0}
h1,h2,h3,h4,h5,h6{margin:0;color:var(--black)}
strong,b{color:var(--black)}
ul{list-style:none;margin:0;padding:0}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

:where(a,button,input,select,textarea,summary):focus-visible{
  outline:0.1875rem solid var(--black);
  outline-offset:0.125rem;
  border-radius:0.125rem;
}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--white);color:var(--bordeaux);
  padding:var(--space-xs) var(--space-m);font-weight:800;border-radius:0 0 var(--radius) 0;
}
.skip-link:focus{left:0}

.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;
}

.overflow-hidden{
  overflow: hidden;
}

/* ============================================================
   UTILITIES — LAYOUT
   ============================================================ */
.container{
  max-width:var(--container-large);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}
.section{padding-top:var(--section-padding-l);padding-bottom:var(--section-padding-l)}
.section-m{padding-top:var(--section-padding-m);padding-bottom:var(--section-padding-m)}
.section-line{border-top:1px solid var(--line)}

.flex{display:flex}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}
.items-start{align-items:flex-start}
.items-end{align-items:flex-end}
.items-stretch{align-items:stretch}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.justify-end{justify-content:flex-end}
.flex-1{flex:1;min-width:0}
.flex-none{flex:none}
.min-w-0{min-width:0}
.w-full{width:100%}
.split{display:flex}

.grid-2,.grid-3,.grid-4{display:grid;gap:var(--space-m)}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* ============================================================
   UTILITIES — SPACING
   ============================================================ */
.gap-3xs{gap:var(--space-3xs)}.gap-2xs{gap:var(--space-2xs)}.gap-xs{gap:var(--space-xs)}
.gap-s{gap:var(--space-s)}.gap-m{gap:var(--space-m)}.gap-l{gap:var(--space-l)}
.gap-xl{gap:var(--space-xl)}.gap-2xl{gap:var(--space-2xl)}.gap-3xl{gap:var(--space-3xl)}

.p-3xs{padding:var(--space-3xs)}.p-2xs{padding:var(--space-2xs)}.p-xs{padding:var(--space-xs)}
.p-s{padding:var(--space-s)}.p-m{padding:var(--space-m)}.p-l{padding:var(--space-l)}
.p-xl{padding:var(--space-xl)}.p-2xl{padding:var(--space-2xl)}.p-3xl{padding:var(--space-3xl)}

.px-3xs{padding-left:var(--space-3xs);padding-right:var(--space-3xs)}
.px-2xs{padding-left:var(--space-2xs);padding-right:var(--space-2xs)}
.px-xs{padding-left:var(--space-xs);padding-right:var(--space-xs)}
.px-s{padding-left:var(--space-s);padding-right:var(--space-s)}
.px-m{padding-left:var(--space-m);padding-right:var(--space-m)}
.px-l{padding-left:var(--space-l);padding-right:var(--space-l)}
.px-xl{padding-left:var(--space-xl);padding-right:var(--space-xl)}
.px-2xl{padding-left:var(--space-2xl);padding-right:var(--space-2xl)}
.px-3xl{padding-left:var(--space-3xl);padding-right:var(--space-3xl)}

.py-3xs{padding-top:var(--space-3xs);padding-bottom:var(--space-3xs)}
.py-2xs{padding-top:var(--space-2xs);padding-bottom:var(--space-2xs)}
.py-xs{padding-top:var(--space-xs);padding-bottom:var(--space-xs)}
.py-s{padding-top:var(--space-s);padding-bottom:var(--space-s)}
.py-m{padding-top:var(--space-m);padding-bottom:var(--space-m)}
.py-l{padding-top:var(--space-l);padding-bottom:var(--space-l)}
.py-xl{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}
.py-2xl{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl)}
.py-3xl{padding-top:var(--space-3xl);padding-bottom:var(--space-3xl)}

.pt-3xs{padding-top:var(--space-3xs)}.pt-2xs{padding-top:var(--space-2xs)}.pt-xs{padding-top:var(--space-xs)}
.pt-s{padding-top:var(--space-s)}.pt-m{padding-top:var(--space-m)}.pt-l{padding-top:var(--space-l)}
.pt-xl{padding-top:var(--space-xl)}.pt-2xl{padding-top:var(--space-2xl)}.pt-3xl{padding-top:var(--space-3xl)}

.pb-3xs{padding-bottom:var(--space-3xs)}.pb-2xs{padding-bottom:var(--space-2xs)}.pb-xs{padding-bottom:var(--space-xs)}
.pb-s{padding-bottom:var(--space-s)}.pb-m{padding-bottom:var(--space-m)}.pb-l{padding-bottom:var(--space-l)}
.pb-xl{padding-bottom:var(--space-xl)}.pb-2xl{padding-bottom:var(--space-2xl)}.pb-3xl{padding-bottom:var(--space-3xl)}

.mt-3xs{margin-top:var(--space-3xs)}.mt-2xs{margin-top:var(--space-2xs)}.mt-xs{margin-top:var(--space-xs)}
.mt-s{margin-top:var(--space-s)}.mt-m{margin-top:var(--space-m)}.mt-l{margin-top:var(--space-l)}
.mt-xl{margin-top:var(--space-xl)}.mt-2xl{margin-top:var(--space-2xl)}.mt-3xl{margin-top:var(--space-3xl)}

.mb-3xs{margin-bottom:var(--space-3xs)}.mb-2xs{margin-bottom:var(--space-2xs)}.mb-xs{margin-bottom:var(--space-xs)}
.mb-s{margin-bottom:var(--space-s)}.mb-m{margin-bottom:var(--space-m)}.mb-l{margin-bottom:var(--space-l)}
.mb-xl{margin-bottom:var(--space-xl)}.mb-2xl{margin-bottom:var(--space-2xl)}.mb-3xl{margin-bottom:var(--space-3xl)}

/* ============================================================
   UTILITIES — TYPE & COLOR
   ============================================================ */
.eyebrow{
  font-size:var(--text-s);font-weight:800;letter-spacing:0.075rem;
  text-transform:uppercase;line-height:var(--line-s);
}
.h1,.h2,.h3,.h4,.h5,.h6{font-weight:800;line-height:var(--line-s);color:var(--black)}
.h1{font-size:var(--h1)}
.h2{font-size:var(--h2)}
#foerdern-titel{max-width:30ch}
.h3{font-size:var(--h3)}
.h4{font-size:var(--h4)}
.h5{font-size:var(--h5)}
.h6{font-size:var(--h6)}
.text-s{font-size:var(--text-s)}
.text-m{font-size:var(--text-m)}
.text-l{font-size:var(--text-l)}
.text-display{font-size:var(--display)}
.font-bold{font-weight:800;color:var(--black)}
.leading-s{line-height:var(--line-s)}
.leading-l{line-height:var(--line-l)}
.lead{font-size:var(--h6);line-height:var(--line-l)}
.prose{font-size:var(--text-l);color:var(--text-grey);line-height:var(--line-l);max-width:62ch}
.prose + .prose{margin-top:var(--space-s)}
.prose a,.prose-lg a,.blocks a{color:var(--bordeaux);font-weight:800}
.prose a:hover,.prose-lg a:hover,.blocks a:hover{text-decoration:underline}
.prose-lg{font-size:var(--h6);line-height:var(--line-l);max-width:66ch;color:var(--text-grey)}
.prose > * + *,.prose-lg > * + *{margin-top:var(--space-s)}
.prose > * + h2,.prose-lg > * + h2{margin-top:var(--space-xl)}
.prose > * + h3,.prose > * + h4,.prose-lg > * + h3,.prose-lg > * + h4{margin-top:var(--space-l)}
.prose :is(h2,h3,h4),.prose-lg :is(h2,h3,h4){font-weight:800;line-height:var(--line-s);color:var(--black)}
.prose h2,.prose-lg h2{font-size:var(--h4)}
.prose h3,.prose-lg h3{font-size:var(--h5)}
.prose h4,.prose-lg h4{font-size:var(--h6)}
.prose ul,.prose-lg ul{
  list-style:none;
  display:flex;flex-direction:column;gap:var(--space-2xs);
}
.prose ul li,.prose-lg ul li{position:relative;padding-left:var(--space-s)}
.prose ul li::before,.prose-lg ul li::before{
  content:"";position:absolute;left:0;top:.6em;
  width:0.3125rem;height:0.3125rem;border-radius:99rem;background:var(--bordeaux);
}
.prose ol,.prose-lg ol{list-style:decimal;padding-left:1.25em}
.prose ol li + li,.prose-lg ol li + li{margin-top:var(--space-2xs)}

.blocks{font-size:var(--text-l);color:var(--text-grey);line-height:var(--line-l);max-width:66ch}
.blocks > * + *{margin-top:var(--space-s)}
.blocks > * + h2{margin-top:var(--space-xl)}
.blocks > * + h3,.blocks > * + h4{margin-top:var(--space-l)}
.blocks :is(h2,h3,h4){font-weight:800;line-height:var(--line-s);color:var(--black)}
.blocks h2{font-size:var(--h4)}
.blocks h3{font-size:var(--h5)}
.blocks h4{font-size:var(--h6)}
.blocks ul{
  list-style:none;
  display:flex;flex-direction:column;gap:var(--space-2xs);
}
.blocks ul li{position:relative;padding-left:var(--space-s)}
.blocks ul li::before{
  content:"";position:absolute;left:0;top:.6em;
  width:0.3125rem;height:0.3125rem;border-radius:99rem;background:var(--bordeaux);
}
.blocks ol{list-style:decimal;padding-left:1.25em}
.blocks ol li + li{margin-top:var(--space-2xs)}
.blocks hr{border:0;border-top:1px solid var(--line);margin-top:var(--space-xl)}
.text-muted{color:var(--text-grey);line-height:var(--line-l)}

.text-bordeaux{color:var(--bordeaux)}
.text-white{color:var(--white)}
.text-black{color:var(--black)}
.text-grey{color:var(--text-grey)}
.text-hellblau{color:var(--hellblau)}
.text-blue-light{color:var(--blue-light)}
.text-grey-dark{color:var(--grey-dark)}
.hero-copy :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,strong,b,.font-bold),
.site-footer :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,strong,b,.font-bold),
.card-dark :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,strong,b,.font-bold),
.topic-card :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,strong,b,.font-bold),
.inquiry-box :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,strong,b,.font-bold),
.service-bar :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,strong,b,.font-bold),
.text-white :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,strong,b,.font-bold){
  color:inherit;
}
.bg-bordeaux{background:var(--bordeaux)}
.bg-white{background:var(--white)}
.bg-grey-light{background:var(--grey-light)}
.bg-black{background:var(--black)}
.bg-grey-dark{background:var(--grey-dark)}
.border-line{border:1px solid var(--line)}

/* ============================================================
   UTILITIES — CARD & MEDIA
   ============================================================ */
.card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.card-hover{transition:box-shadow .2s ease}
.card-hover:hover{box-shadow:var(--shadow)}
.card-dark{background:var(--grey-dark);color:var(--white);border-color:transparent}

.cover{width:100%;height:100%;object-fit:cover}
.rounded{border-radius:var(--radius)}
.overflow-hidden{overflow:hidden}

:where(.card, .info-box, .ticket-body, .offer, .route, .visit-card, .info-tile, .person-card) h3{
  margin:0;font-size:var(--h6);font-weight:800;line-height:var(--line-s);
}
:where(.teaser-card, .preview-card, .support-card, .area-card, .event-info, .news-item, .news-row, .tour-offer, .archive-row) h3,
.news-row h2,.tour-nav-card h2{
  margin:0;font-size:var(--h5);font-weight:800;line-height:var(--line-s);
}
:where(.teaser-card, .preview-card, .area-card, .event-info, .news-item, .news-row, .archive-row, .tour-nav-card, .place-card, .place-card-sm) :is(h2,h3) a:hover{
  color:var(--bordeaux);
}
.card-dark :is(h2,h3) a:hover{color:var(--hellblau)}

/* ============================================================
   COMPONENTS — BUTTONS & LINKS
   ============================================================ */
.icon{display:block;flex:none;stroke:currentColor;fill:none;
      stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);
  padding:var(--space-xs) var(--space-m);border-radius:var(--radius);
  font-size:var(--text-m);line-height:var(--line-l);
  transition:background-color var(--ease),color var(--ease),border-color var(--ease);
}
.btn-primary{background:var(--bordeaux);color:var(--white)}
.btn-primary:hover{background:var(--bordeaux-hover)}
.btn-white{background:var(--white);color:var(--black)}
.btn-white:hover{background:var(--blue-light)}
.btn-outline{
  border:1.5px solid var(--bordeaux);color:var(--bordeaux);
  font-weight:800;line-height:var(--line-s);padding:var(--space-xs) var(--space-s);
}
.btn-outline:hover{background:var(--bordeaux);color:var(--white)}
.btn-ghost{
  border:1px solid var(--white);color:var(--white);
  padding:var(--space-2xs) var(--space-s) var(--space-2xs) var(--space-xs);
}
.btn-ghost:hover{background:rgba(255,255,255,.14)}
.btn-outline-grey{
  border:1px solid var(--line);color:var(--black);
  padding:var(--space-2xs) var(--space-s);
}
.btn-outline-grey:hover{border-color:var(--bordeaux);color:var(--bordeaux)}

.arrow-link{
  display:inline-flex;align-items:center;gap:var(--space-2xs);
  font-weight:800;line-height:var(--line-s);color:var(--hellblau);
}
.arrow-link-dark{color:var(--bordeaux)}
.arrow-link .icon{margin-top:3px;transition:transform var(--ease)}
.arrow-link:hover .icon{transform:translateX(0.1875rem)}

.has-stretched-link{position:relative}
.has-stretched-link .stretched-link::after{content:"";position:absolute;inset:0;z-index:1}
.has-stretched-link:has(.stretched-link:focus-visible){
  outline:0.1875rem solid var(--black);
  outline-offset:0.125rem;
}
.card-dark.has-stretched-link:has(.stretched-link:focus-visible){outline-color:var(--white)}
.has-stretched-link .stretched-link:focus-visible{outline:none}
.has-stretched-link:hover .arrow-link .icon,
.has-stretched-link:focus-within .arrow-link .icon{transform:translateX(0.1875rem)}

.icon-badge{
  width:2.5rem;height:2.5rem;flex:none;border-radius:99rem;
  background:var(--bordeaux);color:var(--white);
  display:flex;align-items:center;justify-content:center;
}

.link{color:var(--bordeaux);font-weight:800}
.link:hover{text-decoration:underline}

/* ============================================================
   COMPONENTS — CHROME
   ============================================================ */
.service-bar{background:var(--bordeaux);color:var(--white);font-size:0.875rem}
.service-bar .container{
  min-height:2.75rem;display:flex;align-items:center;
  justify-content:space-between;gap:var(--space-m);flex-wrap:wrap;
}
.service-bar-status{display:flex;align-items:center;gap:var(--space-3xs)}
.service-bar nav{display:flex;align-items:center;gap:var(--space-m)}
.service-bar a:hover{text-decoration:underline}
.service-bar a[aria-current="page"]{text-decoration:underline}
.lang{display:flex;align-items:center;gap:var(--space-3xs)}
.lang .is-active{font-weight:800;text-decoration:underline}

.site-header{background:var(--white);border-bottom:1px solid var(--line)}
.site-header .container{
  min-height:var(--header-h);display:flex;align-items:center;
  justify-content:space-between;gap:var(--space-l);
}
.brand{display:flex;flex-direction:column;gap:0.125rem}
.brand-name{font-size:var(--h5);font-weight:800;color:var(--bordeaux);line-height:var(--line-s)}
.brand-place{
  font-size:var(--text-s);font-weight:400;
  text-transform:uppercase;color:var(--text-grey);line-height:var(--line-s);letter-spacing:.02em;
}

.main-nav > ul{display:flex;align-items:center;gap:var(--space-m)}
.main-nav a,
.main-nav > ul > li > button{
  display:inline-flex;align-items:center;gap:var(--space-3xs);
  font-size:var(--text-m);line-height:var(--line-l);color:var(--black);
  padding:var(--space-3xs) 0;border-bottom:0.125rem solid transparent;
}
.main-nav a:hover,
.main-nav > ul > li > button:hover,
.main-nav li.is-open > button{
  border-bottom-color:var(--bordeaux);
}
.main-nav > ul > li > a[aria-current="page"],
.main-nav > ul > li:has([aria-current="page"]) > button{
  border-bottom-color:var(--bordeaux);
  color:var(--bordeaux);
}
.main-nav li{position:relative}
.main-nav .caret{transition:transform .16s ease}
.main-nav li.is-open .caret{transform:rotate(180deg)}
.dropdown{
  position:absolute;left:calc(-1 * var(--space-s));top:calc(100% + var(--space-xs));min-width:14rem;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-lift);
  padding:var(--space-2xs) 0;z-index:30;
}
/* Notwendig, weil position:absolute das native hidden aushebelt */
.dropdown[hidden]{display:none}
.dropdown::before{content:"";position:absolute;left:0;right:0;top:calc(-1 * var(--space-xs));height:var(--space-xs)}
.dropdown a{display:block;padding:var(--space-2xs) var(--space-s);border-bottom:0}
.dropdown a:hover{background:var(--grey-light)}
.dropdown a[aria-current="page"]{color:var(--bordeaux);text-decoration:underline}
.nav-toggle{display:none}

.site-footer{background:var(--bordeaux);color:var(--white);padding-top:clamp(3rem, 2.2rem + 2.5vw, 5rem);padding-bottom:clamp(1.5rem, 1.2rem + 1vw, 2.5rem)}
.footer-nav{display:flex;gap:var(--space-m)}
.footer-nav > div{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-s)}
.footer-nav .eyebrow{color:var(--hellblau)}
.footer-nav ul{display:flex;flex-direction:column;gap:var(--space-xs)}
.footer-nav a{font-size:var(--text-m);line-height:var(--line-l)}
.footer-nav a:hover{text-decoration:underline}

.footer-info{
  display:flex;gap:var(--space-xl);align-items:flex-start;
  margin-top:var(--space-2xl);padding:var(--space-l) 0;
  border-top:1px solid var(--line-footer);
  border-bottom:1px solid var(--line-footer);
}
.footer-info > div{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-xs)}
.footer-brand{font-size:var(--h6);font-weight:800;line-height:var(--line-s)}
.footer-info .lead{margin-top:var(--space-3xs)}
.footer-info .eyebrow{color:var(--hellblau)}
.footer-hours,.footer-contact{font-size:var(--text-m);line-height:var(--line-l)}
.footer-contact{font-style:normal}
.footer-hours strong{font-weight:800}
.footer-hours p + p{margin-top:var(--space-xs)}
.footer-affiliation{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:var(--space-2xs);
  margin-top:var(--space-s);
}
.footer-affiliation-logo{
  width:7.5rem;
  height:auto;
  margin-bottom:var(--space-xs);
}
.footer-affiliation p{
  font-size:var(--text-s);
  line-height:var(--line-l);
}

.footer-legal{
  margin-top:var(--space-2xl);display:flex;flex-wrap:wrap;
  align-items:center;justify-content:space-between;gap:var(--space-m);
}
.footer-legal ul{display:flex;flex-wrap:wrap;gap:var(--space-m);font-size:var(--text-m)}
.footer-legal a:hover{text-decoration:underline}

/* ============================================================
   COMPONENTS — PAGE PATTERNS
   ============================================================ */
.section-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:var(--space-l);margin-bottom:clamp(1.25rem, 0.8rem + 1.5vw, 2.5rem);
}
.section-head > :first-child{max-width:52rem}
.section-head .btn{white-space:nowrap;flex:none}

.hero{
  position:relative;min-height:clamp(32.5rem, 28rem + 16vw, 43.75rem);
  display:flex;align-items:flex-end;overflow:hidden;
  background:var(--black);
}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,
    rgba(26,18,22,.85) 0%,
    rgba(26,18,22,.5) 35%,
    rgba(26,18,22,0) 100%);
}
.hero-content{
  position:relative;width:100%;
  max-width:var(--container-large);margin:0 auto;
  padding:0 var(--gutter) clamp(4.5rem, 3rem + 5vw, 8rem);
}
.hero-copy{
  display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs);
  color:var(--white);max-width:48rem;
}
.hero-copy .h1{font-size:var(--display);max-width:14ch; line-height: 1.1;}
.hero-copy .lead{max-width:52ch}

.visit-card{position:relative;z-index:5;margin-top:calc(-1 * var(--hero-media-overlap))}
.visit-card-inner{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-lift);overflow:hidden;
}
.visit-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.visit-card-item{
  padding:var(--space-l);border-left:1px solid var(--line);
  display:flex;flex-direction:column;gap:var(--space-xs);
}
.visit-card-item:first-child{border-left:0}
.visit-card-head{display:flex;align-items:center;gap:var(--space-xs)}
.visit-card p{color:var(--text-grey);line-height:var(--line-l)}
.visit-card-foot{
  border-top:1px solid var(--line);background:var(--grey-light);
  padding:var(--space-s) var(--space-l);display:flex;align-items:center;justify-content:space-between;
  gap:var(--space-m);flex-wrap:wrap;
}
.visit-card-foot p{color:var(--text-grey)}

.round-btn{
  width:4.5rem;height:2.5rem;border-radius:99rem;
  border:1.5px solid var(--line);color:var(--black);background:transparent;
  display:inline-flex;align-items:center;justify-content:center;
  transition:background-color var(--ease),color var(--ease),border-color var(--ease),transform var(--ease);
}
.round-btn:hover{background:var(--bordeaux);border-color:var(--bordeaux);color:var(--white)}
.round-btn:active{transform:scale(.98)}
.round-btn-group{display:flex;gap:var(--space-2xs)}

.swiper.topic-swiper{
  width:100%;
  height:30rem;
  overflow:visible;
}
.topic-swiper .swiper-wrapper{
  align-items:flex-start;height:100%;overflow:visible;
}
.topic-swiper .swiper-slide{
  height:100%;max-height:30rem;display:flex;align-items:flex-start;width:100%;
}
@media (min-width:641px){
  .topic-swiper:not(.swiper-initialized) .swiper-slide{
    width:calc((100% - 16px) / 2);
  }
}
@media (min-width:1001px){
  .topic-swiper:not(.swiper-initialized) .swiper-slide{
    width:calc((100% - 48px) / 3);
  }
}
.topic-card{
  position:relative;border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:var(--space-l);height:27rem;color:var(--white);
  width:100%;min-width:0;align-self:flex-start;
  transition:height .45s ease;
}
.topic-swiper:not(.swiper-initialized) .swiper-slide:first-child .topic-card,
.topic-swiper .swiper-slide-active .topic-card{
  height:100%;
}
.topic-card-lg{height:100%}
.topic-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.topic-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(0,0,0,0) 0%,rgba(0,0,0,2) 100%);
}
.topic-card-body{position:relative;z-index:2;display:flex;flex-direction:column;gap:var(--space-xs)}
.topic-card .eyebrow{color:var(--hellblau)}
.topic-card-body > :last-child{line-height:var(--line-l)}
.round-btn.swiper-button-disabled{opacity:.4;cursor:default;pointer-events:none}

.featured-card{
  width:calc(var(--container-large) - 2 * var(--gutter));max-width:100%;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-soft);overflow:hidden;
}
.featured-card > img,
.featured-card > .featured-media{
  width:100%;height:var(--media-h);object-fit:cover;background:var(--placeholder);
}
.featured-card > .featured-media img{width:100%;height:100%;object-fit:cover}
.featured-body{padding:clamp(2rem, 1.5rem + 1.8vw, 3.5rem);display:flex;gap:var(--space-xl);align-items:flex-start}
.featured-body > div{flex:1;min-width:0}
.featured-title{display:flex;flex-direction:column;gap:var(--space-s);align-items:flex-start}
.featured-title .h2{margin-top:var(--space-2xs);max-width:22ch}
.badge{
  background:var(--grey-light);color:var(--bordeaux);
  padding:var(--space-3xs) var(--space-xs);border-radius:var(--radius);
  font-weight:800;line-height:var(--line-s);
}
.featured-text{display:flex;flex-direction:column;gap:var(--space-l);align-items:flex-start}
.featured-text p{font-size:var(--h6);line-height:var(--line-l);color:var(--text-grey)}

.chip-filter{display:flex;flex-wrap:wrap;gap:var(--space-2xs);margin:0 0 var(--space-l)}
.chip-filter button,
.chip-filter a[role="tab"]{
  padding:var(--space-2xs) var(--space-s);border-radius:99rem;border:1px solid var(--line);
  font-size:var(--text-m);line-height:var(--line-s);color:var(--black);background:var(--white);
  transition:background-color var(--ease),color var(--ease),border-color var(--ease);
}
.chip-filter a[role="tab"]{display:inline-block}
.chip-filter button:hover,
.chip-filter a[role="tab"]:hover{border-color:var(--bordeaux);color:var(--bordeaux)}
.chip-filter button[aria-pressed="true"],
.chip-filter button[aria-selected="true"],
.chip-filter a[aria-selected="true"],
.chip-filter a[role="tab"][aria-selected="true"]:hover{
  background:var(--bordeaux);border-color:var(--bordeaux);color:var(--white);
}
.chip-filter button.is-placeholder{border-style:dashed;color:var(--text-grey)}
.chip-filter .count{margin-left:auto;color:var(--text-grey);line-height:var(--line-s)}

.event-item{
  display:flex;align-items:center;gap:var(--space-m);
  padding:var(--space-s) 0;border-bottom:1px solid var(--line-zeile);
}
.event-date{
  width:5rem;height:5rem;flex:none;border-radius:var(--radius);
  background:var(--grey-light);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.event-date time{display:flex;flex-direction:column;align-items:center}
.event-day{font-size:var(--h3);font-weight:800;color:var(--bordeaux);line-height:var(--line-s)}
.event-month{font-size:var(--text-s);color:var(--text-grey);text-transform:uppercase;line-height:var(--line-s)}
.event-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-3xs)}
.event-list{border-top:1px solid var(--line-zeile)}
.event-info .eyebrow{color:var(--bordeaux)}
.event-time{color:var(--text-grey);line-height:var(--line-l)}
.event-action{flex:none}

.place-card,.place-card-sm{
  background:var(--grey-dark);border-radius:var(--radius);
  overflow:hidden;
}
.place-card{flex:1.2;min-width:0;display:flex;flex-direction:column}
.place-card-media{height:var(--media-h-sm);background:var(--placeholder);position:relative;overflow:hidden}
.place-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.place-card-body{
  padding:var(--space-l);display:flex;flex-direction:column;gap:var(--space-m);
  align-items:flex-start;flex:1;justify-content:space-between;
}
.place-list{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-m);align-self:stretch}
.place-card-sm{display:flex;flex:1 1 auto}
.place-card-sm .place-card-media{width:14rem;height:auto;flex:none;align-self:stretch}
.place-card-sm .place-card-body{
  flex:1;min-width:0;
  justify-content:space-between;gap:var(--space-s);
}

.news-media{flex:1 1 18rem;max-width:24rem}
.news-media img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius)}
.news-item{padding:var(--space-m) 0;display:flex;flex-direction:column;gap:var(--space-xs)}
.news-item + .news-item{border-top:1px solid var(--line)}
.news-item .date{font-size:var(--text-s);color:var(--text-grey);line-height:var(--line-s)}
.news-item p{color:var(--text-grey);line-height:var(--line-l)}
.news-item h3 a:hover{text-decoration:underline}

.involve-copy{flex:1 1 18rem;max-width:36rem}
.copy-stack{display:flex;flex-direction:column;gap:var(--space-s)}
.involve-media{
  flex:1;min-width:0;height:clamp(13.75rem, 10rem + 20vw, 28.75rem);
  border-radius:var(--radius);background:var(--placeholder);overflow:hidden;
}
.involve-media img{width:100%;height:100%;object-fit:cover}
.involve-aside{
  flex:none;
  display:flex;flex-direction:column;align-items:flex-end;
  gap:var(--space-xl);margin-left:auto;
}

.page-hero{padding-top:var(--space-m);padding-bottom:var(--section-padding-m)}
.page-hero-min{
  min-height:60vh;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  text-align:center;
}
.page-hero-min .container{display:flex;justify-content:center;width:100%}
.page-hero-min .page-hero-copy{align-items:center;padding-top:0}
.breadcrumb{
  font-size:0.875rem;color:var(--text-grey);
  display:flex;align-items:center;gap:var(--space-2xs);margin-bottom:var(--space-xl);flex-wrap:wrap;
}
.breadcrumb a:hover{color:var(--bordeaux);text-decoration:underline}
.breadcrumb-sep{opacity:.5}
.page-hero-grid{display:flex;gap:var(--space-2xl);align-items:flex-start}
.page-hero-copy{
  flex:1;min-width:0;display:flex;flex-direction:column;
  gap:var(--space-s);align-items:flex-start;padding-top:var(--space-2xs);
}
.page-hero-copy .lead{color:var(--text-grey);max-width:50ch}
.place-hero-title{max-width:25ch}
.article-hero-title{max-width:30ch}
.page-hero-bleed > .container > .page-hero-copy,
.page-hero-featured > .container > .page-hero-copy{margin-bottom:var(--space-xl)}

.page-hero-bleed{
  --hero-media-pad:var(--space-l);
  padding-bottom:var(--hero-media-pad);
}
.page-hero-media{
  position:relative;z-index:5;
  margin-bottom:calc(-1 * (var(--hero-media-pad) + var(--hero-media-overlap)));
  width:100%;height:clamp(12.5rem, 8rem + 22vw, 27.5rem);border-radius:var(--radius);overflow:hidden;
  background:var(--placeholder);
  box-shadow:var(--shadow-lift);
}
.page-hero-media img{width:100%;height:100%;object-fit:cover}
.page-hero-media-tall{height:clamp(13.75rem, 9rem + 22vw, 28.75rem)}
.section-after-hero{padding-top:calc(var(--section-padding-m) + var(--hero-media-overlap))}

.media-placeholder{
  background:var(--grey-light);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2xs);
  color:var(--bordeaux);
}
.media-placeholder .label{
  font-size:var(--text-s);font-weight:800;letter-spacing:0.075rem;text-transform:uppercase;
}
.media-placeholder .hint{font-size:0.875rem;color:var(--text-grey);max-width:32ch;line-height:var(--line-l)}

.fact-card{
  width:min(27.5rem,100%);flex:none;background:var(--white);
  border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:var(--space-m) var(--space-l) var(--space-l);
}
.fact-card .eyebrow{display:block;margin-bottom:var(--space-s)}
.fact-row{
  display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-m);
  padding:var(--space-xs) 0;border-top:1px solid var(--line);
}
.fact-row:first-of-type{border-top:0;padding-top:0}
.fact-row .label{color:var(--text-grey)}
.fact-row b{font-weight:800;text-align:right}
.fact-open{display:inline-flex;align-items:center;gap:var(--space-2xs);color:var(--bordeaux)}
.dot-open{width:0.5625rem;height:0.5625rem;border-radius:99rem;background:var(--bordeaux);flex:none}
.content-aside .fact-card{width:100%}
.fact-note{
  margin-top:var(--space-s);padding-top:var(--space-s);
  display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-s);
}
.fact-note p{color:var(--text-grey);line-height:var(--line-l)}

.page-nav{
  position:sticky;top:0;z-index:25;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(0.5rem);
  border-bottom:1px solid var(--line);
}
.page-nav .container{display:flex;align-items:center;gap:var(--space-l);min-height:var(--space-2xl)}
.page-nav-label{
  font-size:var(--text-s);font-weight:800;letter-spacing:0.075rem;text-transform:uppercase;
  color:var(--black);flex:none;
}
.page-nav ul{display:flex;align-items:center;gap:var(--space-m);overflow-x:auto}
.page-nav a{
  display:inline-block;white-space:nowrap;padding:var(--space-3xs) 0;
  border-bottom:0.125rem solid transparent;color:var(--black);
  transition:color var(--ease),border-color var(--ease);
}
.page-nav a:hover,.page-nav a[aria-current="true"]{
  border-bottom-color:var(--bordeaux);color:var(--bordeaux)
}

.content-main{flex:1;min-width:0}
.content-aside{
  width:min(var(--aside),100%);flex:none;
  display:flex;flex-direction:column;gap:var(--space-m);
}

.hours-table{width:100%;border-collapse:collapse}
.hours-table th,.hours-table td{
  padding:var(--space-s);border-bottom:1px solid var(--line);
  font-size:var(--h6);
}
.hours-table th{text-align:left;font-weight:400;color:var(--text-grey)}
.hours-table td{text-align:right;font-weight:800;white-space:nowrap;color:var(--black)}
.hours-table tr:first-child th,.hours-table tr:first-child td{border-top:1px solid var(--line)}

.info-box-head{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs)}
.info-box p + p{margin-top:var(--space-xs)}
.info-box-accent{background:var(--blue-light);border-color:#cfe6ee}
.info-box-accent p{color:var(--text-grey)}

.bullet-list{display:flex;flex-direction:column;gap:var(--space-2xs)}
.bullet-list li{
  position:relative;padding-left:var(--space-s);line-height:var(--line-l);color:var(--text-grey);
}
.bullet-list li::before{
  content:"";position:absolute;left:0;top:.6em;
  width:0.3125rem;height:0.3125rem;border-radius:99rem;background:var(--bordeaux);
}
.bullet-list-cols{columns:2;column-gap:var(--space-l)}
.bullet-list-cols li{break-inside:avoid}

.ticket{
  display:flex;align-items:stretch;overflow:hidden;
  border-radius:var(--radius);background:var(--white);
  box-shadow:0 0.125rem 0.625rem rgba(26,18,22,.06);
}
.ticket-stub{
  width:3.5rem;flex:none;background:var(--bordeaux);color:var(--white);
  display:flex;align-items:center;justify-content:center;
}
.ticket-stub .icon{transform:rotate(-90deg)}
.ticket-perf{position:relative;flex:none;width:0}
.ticket-perf::before,.ticket-perf::after{
  content:"";position:absolute;left:-0.625rem;
  width:1.25rem;height:1.25rem;border-radius:99rem;
  background:var(--grey-light);
}
.ticket-perf::before{top:-0.625rem}
.ticket-perf::after{bottom:-0.625rem}
.ticket-body{
  flex:1;min-width:0;padding:var(--space-l);
  display:flex;flex-direction:column;gap:var(--space-2xs);
}
.ticket-price{font-size:var(--h2);font-weight:800;line-height:var(--line-s);color:var(--bordeaux)}
.ticket p{color:var(--black);line-height:var(--line-l)}

.price-footer{
  display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);
  align-items:start;margin-top:var(--space-l);
}
.free-list{border-top:1px solid var(--line)}
.free-list li{
  display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-m);
  padding:var(--space-s) 0;border-bottom:1px solid var(--line);line-height:var(--line-l);
}
.free-list b{font-weight:800;color:var(--bordeaux);white-space:nowrap}

.band-image img{
  width:100%;height:var(--media-h);object-fit:cover;
  border-radius:var(--radius);background:var(--grey-light);
}

.directions-map{flex:1;min-width:0;display:flex;flex-direction:column}
.map-frame{
  display:block;flex:1;min-height:0;border-radius:var(--radius);border:1px solid var(--line);
  overflow:hidden;background:var(--grey-light);
}
.map-frame:hover{border-color:var(--bordeaux)}
.map-frame img{display:block;width:100%;height:auto}
.address-row{
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-m);
  margin-top:var(--space-s);flex-wrap:wrap;
}
.address-row address{font-style:normal;line-height:var(--line-l);font-size:var(--h6);font-weight:800;color:var(--black)}

.route-list{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-s)}
.route{
  padding:var(--space-s) var(--space-m);display:grid;grid-template-columns:2.5rem 1fr;
  column-gap:var(--space-s);row-gap:var(--space-3xs);align-items:center;
}
.route h3,.route p{grid-column:2}
.route .icon-badge{grid-row:span 2;align-self:center}
.route p{color:var(--text-grey);line-height:var(--line-l)}

.groups-copy{flex:1;min-width:0}
.groups-copy > p{color:var(--text-grey);line-height:var(--line-l);max-width:62ch}
.groups-copy > p + p{margin-top:var(--space-s)}
.offer{
  padding:var(--space-m);display:flex;flex-direction:column;gap:var(--space-2xs);
}
.offer p{color:var(--text-grey);line-height:var(--line-l)}

.inquiry-box{
  width:min(25rem,100%);flex:none;background:var(--bordeaux);color:var(--white);
  border-radius:var(--radius);padding:var(--space-l);
  display:flex;flex-direction:column;gap:var(--space-s);align-items:flex-start;
}
.inquiry-box h3{margin:0;font-size:var(--h4);font-weight:800;line-height:var(--line-s)}
.inquiry-box p{line-height:var(--line-l)}
.inquiry-box .btn{width:100%;margin-top:var(--space-3xs)}
.inquiry-contact{
  width:100%;margin-top:var(--space-2xs);padding-top:var(--space-s);
  border-top:1px solid rgba(255,255,255,.32);
  display:flex;flex-direction:column;gap:var(--space-2xs);
}
.inquiry-contact a{display:inline-flex;align-items:center;gap:var(--space-2xs)}
.inquiry-contact a:hover{text-decoration:underline}

.access-copy{
  flex:1;min-width:0;display:flex;flex-direction:column;
  gap:var(--space-l);align-items:flex-start;
}
.access-copy p{max-width:52ch}
.access-list{flex:1;min-width:12rem;max-width:35rem;display:grid;gap:var(--space-s)}
.access-item{
  padding:var(--space-m);display:flex;align-items:center;gap:var(--space-s);
}
.access-item-body{display:flex;flex-direction:column;gap:var(--space-3xs);min-width:0}
.access-item b{font-weight:800;line-height:var(--line-s)}
.access-item p{color:var(--text-grey);line-height:var(--line-l)}

.faq{max-width:56rem}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-m);
  padding:var(--space-m) 0;font-size:var(--h6);font-weight:800;line-height:var(--line-s);color:var(--black);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--bordeaux)}
.faq-mark{
  width:2.125rem;height:2.125rem;flex:none;border-radius:99rem;
  border:1px solid var(--line);color:var(--black);
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease;
}
.faq details[open] .faq-mark{
  transform:rotate(180deg);background:var(--bordeaux);
  border-color:var(--bordeaux);color:var(--white);
}
.faq-answer{padding:0 3.5rem var(--space-m) 0;color:var(--text-grey);line-height:var(--line-l)}

.teaser-card{overflow:hidden;display:flex;flex-direction:column}
.teaser-media{height:clamp(11rem, 8rem + 10vw, 13.75rem);overflow:hidden}
.teaser-media img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.teaser-card:hover .teaser-media img{transform:scale(1.04)}
.teaser-body{
  padding:var(--space-m);display:flex;flex-direction:column;gap:var(--space-xs);
  align-items:flex-start;flex:1;
}
.teaser-card p{color:var(--text-grey);line-height:var(--line-l);flex:1}
.teaser-card .arrow-link{margin-top:auto;padding-top:var(--space-xs)}

.area-card{
  overflow:hidden;
  display:grid;grid-template-columns:minmax(10rem,15rem) minmax(0,1fr);
}
.area-card-media{min-height:14rem;height:100%;overflow:hidden;background:var(--placeholder)}
.area-card-media img{width:100%;height:100%;object-fit:cover;display:block}
.area-card-body{
  padding:var(--space-m);display:flex;flex-direction:column;
  align-items:flex-start;gap:var(--space-2xs);
}
.area-card p{color:var(--text-grey);line-height:var(--line-l)}
.area-card .arrow-link{margin-top:auto;padding-top:var(--space-xs)}

.draft-badge{
  display:inline-block;border:1px dashed var(--bordeaux);border-radius:99rem;
  padding:0.125rem var(--space-xs);font-size:var(--text-s);font-weight:800;letter-spacing:0.0375rem;
  text-transform:uppercase;color:var(--bordeaux);white-space:nowrap;
}

.figure{margin:0}
.figure-frame{
  width:100%;border-radius:var(--radius);overflow:hidden;
  background:var(--placeholder);
}
.figure-frame img{width:100%;height:100%;object-fit:cover}
.figure figcaption{margin-top:var(--space-xs);font-size:0.875rem;line-height:var(--line-l);color:var(--text-grey)}
.article-figure{margin:var(--space-xl) 0 0;max-width:66ch}

.news-list{border-top:1px solid var(--line-zeile)}
.news-row{
  display:grid;grid-template-columns:10rem minmax(0,1fr) 10rem;
  gap:var(--space-l);align-items:start;
  padding:var(--space-m) 0;border-bottom:1px solid var(--line-zeile);
}
.news-row-date{
  font-size:var(--text-s);font-weight:800;letter-spacing:0.075rem;
  text-transform:uppercase;color:var(--bordeaux);padding-top:var(--space-3xs);
}
.news-row-body{min-width:0}
.news-row p{color:var(--text-grey);line-height:var(--line-l);max-width:62ch}
.news-row-action{display:flex;justify-content:flex-end;padding-top:var(--space-3xs)}
.news-block{padding:var(--space-l) 0;border-bottom:1px solid var(--line-zeile)}
.news-block .eyebrow{color:var(--bordeaux);margin-bottom:var(--space-2xs)}
.news-block p{color:var(--text-grey);line-height:var(--line-l);max-width:66ch}
.news-block p + p{margin-top:var(--space-xs)}

.pager{display:flex;gap:var(--space-2xs);align-items:center;justify-content:center;margin-top:var(--space-xl)}
.pager a,.pager span{
  min-width:2.75rem;height:2.75rem;padding:0 var(--space-xs);
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:var(--radius);
  font-size:var(--text-m);line-height:var(--line-s);
  transition:background-color var(--ease),color var(--ease),border-color var(--ease);
}
.pager a:hover{border-color:var(--bordeaux);color:var(--bordeaux)}
.pager .is-current{background:var(--bordeaux);border-color:var(--bordeaux);color:var(--white);font-weight:800}
.pager .is-disabled{opacity:.4}

.press-note{
  margin-top:var(--space-l);padding-top:var(--space-m);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-m);
}
.press-note p{color:var(--text-grey);line-height:var(--line-l);max-width:62ch}
.press-note strong{display:block;font-weight:800;color:var(--black);margin-bottom:var(--space-3xs)}

.tour-nav-next{align-items:flex-end;text-align:right}
.tour-nav-card p{color:var(--text-grey);line-height:var(--line-l)}

.contact-block{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-l)}
.contact-block .eyebrow{display:block;margin-bottom:var(--space-xs)}
.contact-block p,.contact-block address{font-style:normal;line-height:var(--line-l);color:var(--text-grey)}
.contact-block a{color:var(--bordeaux)}
.contact-block a:hover{text-decoration:underline}
.contact-links{display:flex;flex-direction:column;gap:var(--space-2xs)}
.contact-links a{display:inline-flex;align-items:center;gap:var(--space-2xs);font-weight:800}
.contact-map{flex:1 1 18rem;max-width:40rem;display:flex;flex-direction:column;gap:var(--space-s);align-items:flex-start}
.contact-map .map-frame{width:100%}

.person-card .role,.person-card p{color:var(--text-grey);line-height:var(--line-l);margin:0}
.person-card .meta{
  margin-top:var(--space-s);padding-top:var(--space-s);border-top:1px solid var(--line);
  line-height:var(--line-l);color:var(--text-grey);
}
.person-card .meta a{color:var(--bordeaux);font-weight:800}
.person-card .meta a:hover{text-decoration:underline}

.form{flex:1;min-width:0}
.field{margin-bottom:var(--space-m);display:flex;flex-direction:column;gap:var(--space-2xs)}
.field label{font-weight:800;line-height:var(--line-s);color:var(--black)}
.field .optional{font-weight:400;color:var(--text-grey)}
.field input,.field select,.field textarea,
.filter-bar select{
  padding:var(--space-xs) var(--space-s);
  border:1px solid var(--line);border-radius:var(--radius);
  background:var(--white);color:var(--black);
  font-family:inherit;font-size:var(--text-m);line-height:var(--line-l);
}
.field input,.field select,.filter-bar select{height:3.25rem;padding-top:0;padding-bottom:0}
.field select,.filter-bar select{
  appearance:none;
  background-image:var(--select-arrow);
  background-repeat:no-repeat;background-position:right var(--space-s) center;
  padding-right:var(--space-xl);
}
.field textarea{min-height:11rem;resize:vertical}
.field input:hover,.field select:hover,.field textarea:hover,
.filter-bar select:hover{border-color:var(--bordeaux)}
.field .help,.field-note{font-size:0.875rem;color:var(--text-grey);line-height:var(--line-s)}
.field-note{margin:0 0 var(--space-m)}
.consent{display:flex;gap:var(--space-xs);align-items:flex-start;margin:var(--space-2xs) 0 0}
.consent input{width:1.375rem;height:1.375rem;flex:none;margin:0.125rem 0 0;accent-color:var(--bordeaux)}
.consent label{line-height:var(--line-l);color:var(--text-grey)}
.consent a{font-weight:800;color:var(--bordeaux);text-decoration:underline}
.form-status{
  margin:0 0 var(--space-m);
  padding:var(--space-s) var(--space-m);
  border-radius:var(--radius);
  line-height:var(--line-l);
}
.form-status.is-error{
  background:var(--grey-light);
  border:1px solid var(--bordeaux);
  color:var(--bordeaux);
}
.form-status.is-success{
  background:var(--grey-light);
  border:1px solid var(--line);
  color:var(--black);
}
.field.is-invalid input,
.field.is-invalid select,
.field.is-invalid textarea{border-color:var(--bordeaux)}
.consent.is-invalid label{color:var(--black)}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-s);margin-top:var(--space-m)}
.form-actions .hint{font-size:0.875rem;color:var(--text-grey)}
.form-aside{
  width:min(25rem,100%);flex:none;
  display:flex;flex-direction:column;align-items:flex-start;
}
.form-aside .info-box-head{margin-bottom:var(--space-s)}
.form-aside h3{margin:0;font-size:var(--h4);font-weight:800;line-height:var(--line-s)}
.form-aside p{color:var(--text-grey);line-height:var(--line-l)}
.form-aside p + p{margin-top:var(--space-xs)}
.form-aside .btn{margin-top:var(--space-s)}
.form-aside-links{display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-s)}
.form-aside-links a{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:800;color:var(--bordeaux)}
.form-aside-links a:hover{text-decoration:underline}
.form-aside-hours{
  margin-top:var(--space-m);padding-top:var(--space-s);border-top:1px solid var(--line);
  line-height:var(--line-l);color:var(--text-grey);
}
.form-aside-hours .eyebrow{display:block;margin-bottom:var(--space-2xs)}

.note-list{display:flex;flex-direction:column;gap:var(--space-2xs)}
.note-list > * + *{margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--line)}
.note-list p{margin-bottom:var(--space-2xs)}

.topic-blocks{border-bottom:1px solid var(--line)}
.topic-block{
  display:grid;grid-template-columns:minmax(10rem,18rem) minmax(0,1fr);gap:var(--space-l);
  padding:var(--space-m) 0;border-top:1px solid var(--line);
}
.topic-block h3{margin:0;font-size:var(--h6);font-weight:800;line-height:var(--line-s)}
.topic-block-body{display:flex;flex-direction:column;gap:var(--space-xs);align-items:flex-start}
.topic-block-body p{color:var(--text-grey);line-height:var(--line-l);max-width:62ch}

.feedback-box{padding:var(--space-l) 0}
.feedback-box h2{margin:0 0 var(--space-2xs)}
.feedback-box p{color:var(--text-grey);line-height:var(--line-l);max-width:70ch}
.feedback-box .btn{flex:none}

.featured-stack{
  --motiv-height:var(--media-h);
  position:relative;z-index:5;
  display:flex;flex-direction:column;gap:var(--space-l);
  margin-top:calc((var(--motiv-height) / 2 + var(--section-padding-m)) * -1);
}
.page-hero-featured{padding-bottom:calc(var(--media-h) / 2)}
.featured-card-flush{width:100%}
.featured-stack .featured-card:first-child{box-shadow:var(--shadow-lift)}

.preview-card p{line-height:var(--line-l)}
.preview-card .arrow-link{margin-top:auto;padding-top:var(--space-2xs)}

.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-s);margin-bottom:var(--space-l)}
.filter-bar select{height:3rem}
.filter-bar .count{margin-left:auto;color:var(--text-grey)}
.archive-list{border-top:1px solid var(--line-zeile)}
.archive-row{
  display:flex;align-items:center;gap:var(--space-l);
  padding:var(--space-s) 0;border-bottom:1px solid var(--line-zeile);
  transition:background-color .15s ease;
}
a.archive-row{color:inherit;text-decoration:none}
.archive-row:hover{background:var(--grey-light)}
.archive-year{
  width:7.5rem;flex:none;
  font-size:var(--text-s);font-weight:800;letter-spacing:0.075rem;
  text-transform:uppercase;color:var(--text-grey);
}
.archive-row h3{flex:1;min-width:0}
.archive-row .arrow{flex:none;color:var(--bordeaux)}
.archive-row .arrow .icon{margin-top:3px;transition:transform var(--ease)}
.archive-row:hover .arrow .icon{transform:translateX(0.1875rem)}

.info-tile{display:flex;flex-direction:column;align-items:flex-start}
.info-tile-head{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-s)}
.info-tile p{color:var(--text-grey);line-height:var(--line-l)}
.info-tile .muted{color:var(--text-grey);line-height:var(--line-l);margin-top:var(--space-xs);font-size:0.875rem}
.info-tile .btn{margin-top:var(--space-s)}
.info-tile a.link{color:var(--bordeaux);font-weight:800}
.info-tile a.link:hover{text-decoration:underline}

.tour-offer + .tour-offer{margin-top:var(--space-l)}
.tour-offer h3{margin:var(--space-2xs) 0 var(--space-s);font-size:var(--h3);max-width:26ch}
.tour-offer-body{display:flex;gap:var(--space-xl);align-items:flex-start}
.tour-offer-copy{flex:1;min-width:0;max-width:62ch}
.tour-offer-copy p{color:var(--text-grey);line-height:var(--line-l)}
.tour-offer-copy p + p{margin-top:var(--space-s)}
.tour-offer-facts{width:min(18.75rem,100%);flex:none;margin-left:auto}
.date-chips{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}
.tour-offer .date-chips{margin-top:var(--space-l);padding-top:var(--space-m);border-top:1px solid var(--line)}
.date-chips a{
  display:inline-flex;align-items:baseline;gap:var(--space-2xs);
  padding:var(--space-2xs) var(--space-s);border-radius:99rem;border:1px solid var(--line);
  line-height:var(--line-s);background:var(--white);
  transition:background-color var(--ease),color var(--ease),border-color var(--ease);
}
.date-chips a:hover{border-color:var(--bordeaux);color:var(--bordeaux)}
.date-chips .time{font-size:0.875rem;color:var(--text-grey)}
.date-chips a:hover .time{color:var(--bordeaux)}

.support-card p{color:var(--text-grey);line-height:var(--line-l)}
.support-card .btn{margin-top:var(--space-s)}
.account-box{
  margin-top:var(--space-s);padding-top:var(--space-s);border-top:1px solid var(--line);
  line-height:var(--line-l);color:var(--text-grey);
}
.contact-pair{width:100%;max-width:20rem}
.contact-pair .eyebrow{display:block;margin-bottom:var(--space-xs)}
.contact-pair p{color:var(--text-grey);line-height:var(--line-l)}
.contact-pair a{color:var(--bordeaux)}
.contact-pair a:hover{text-decoration:underline}
.download-list{display:flex;flex-direction:column;gap:var(--space-2xs);margin-top:var(--space-xs);align-items:flex-start}
.download-list a{display:inline-flex;align-items:center;gap:var(--space-2xs);color:var(--bordeaux);font-weight:800}
.download-list a:hover{text-decoration:underline}

.timeline-copy{flex:1.1;min-width:0}
.timeline-list{flex:.9;min-width:0;border-top:1px solid var(--line)}
.timeline-row{
  display:grid;grid-template-columns:6.875rem minmax(0,1fr);gap:var(--space-m);
  padding:var(--space-s) 0;border-bottom:1px solid var(--line);
}
.timeline-year{font-weight:800;color:var(--bordeaux)}
.timeline-text{line-height:var(--line-l);color:var(--text-grey)}

.phone-link{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:800;color:var(--bordeaux)}
.phone-link:hover{text-decoration:underline}

/* ============================================================
   RESPONSIVE
   Tokens skalieren fluid. Hier nur Layout-Umbrüche
   und die ursprünglichen Desktop-Werte ab 1280px.
   ============================================================ */
@media (min-width:1280px){
  :root{
    --gutter:5rem;
    --section-padding-l:7.5rem;
    --section-padding-m:5.5rem;
    --hero-media-overlap:4.5rem;
  }
}

@media (max-width:1000px){
  .split{flex-direction:column;align-items:stretch}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}

  .nav-toggle{
    display:inline-flex;align-items:center;gap:var(--space-2xs);
    border:1px solid var(--line);border-radius:var(--radius);
    padding:var(--space-2xs) var(--space-s);font-size:var(--text-m);
  }
  .main-nav{display:none;position:absolute;left:0;right:0;top:100%;z-index:40;
            background:var(--white);border-bottom:1px solid var(--line);
            box-shadow:var(--shadow)}
  .main-nav.is-open{display:block}
  .site-header{position:relative}
  .main-nav > ul{flex-direction:column;align-items:stretch;gap:0;
                 padding:var(--space-2xs) var(--gutter) var(--space-s)}
  .main-nav > ul > li > a{
    display:flex;width:100%;padding:var(--space-s) 0;
    border-bottom:0;
  }
  .main-nav > ul > li > button{
    display:flex;width:100%;justify-content:space-between;
    padding:var(--space-xs) 0;border-bottom:0;
  }
  .main-nav a:hover,
  .main-nav > ul > li > button:hover,
  .main-nav li.is-open > button,
  .main-nav > ul > li > a[aria-current="page"],
  .main-nav > ul > li:has([aria-current="page"]) > button{
    border-bottom:0;
  }
  .dropdown{position:static;border:0;box-shadow:none;
            padding:0 0 var(--space-2xs) var(--space-m);min-width:0}
  .dropdown::before{display:none}
  .dropdown a{display:flex;width:100%;border-bottom:0}
  .dropdown a[aria-current="page"]{text-decoration:none}

  .hero-content{padding:var(--space-3xl) var(--gutter) var(--space-2xl)}
  .hero-copy .h1{max-width:none}

  .visit-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .visit-card-item:nth-child(3){border-left:0}
  .visit-card-item:nth-child(n+3){border-top:1px solid var(--line)}
  .featured-body{flex-direction:column;gap:var(--space-l);padding:var(--space-l)}
  .news-media{max-width:none;height: 20rem;}
  .involve-copy{max-width:none;flex:none}
  .involve-aside{align-items:flex-start;margin-left:0}
  .page-hero-grid{flex-direction:column;gap:var(--space-l)}
  .fact-card{width:100%}
  .content-aside,.form-aside,.inquiry-box,.contact-map,.directions-map,.access-list{
    width:100%;max-width:none;
  }
  .content-aside{flex-direction:row}
  .content-aside > *{flex:1}
  .price-footer{grid-template-columns:1fr;gap:var(--space-l)}
  .tour-nav-next{align-items:flex-start;text-align:left}
  .news-row{grid-template-columns:1fr;gap:var(--space-xs)}
  .news-row-date,.news-row-action{padding-top:0}
  .news-row-action{justify-content:flex-start}
  .topic-block{grid-template-columns:1fr;gap:var(--space-s)}
  .feedback-box-inner{flex-direction:column;align-items:flex-start}
  .tour-offer-body{flex-direction:column;gap:var(--space-l)}
  .tour-offer-facts{margin-left:0}
  .footer-nav{flex-wrap:wrap;gap:var(--space-l)}
  .footer-nav > div{flex:1 1 40%}
  .footer-info{flex-direction:column;gap:var(--space-l)}
}

@media (max-width:640px){
  .service-bar .container{padding-top:var(--space-2xs);padding-bottom:var(--space-2xs);gap:var(--space-2xs)}
  .service-bar nav{gap:var(--space-s)}
  .visit-card-grid{grid-template-columns:1fr}
  .visit-card-item{border-left:0;border-top:1px solid var(--line);}
  .visit-card-item:first-child{border-top:0}
  .visit-card-foot{padding:var(--space-m)}
  .section-head{flex-direction:column;align-items:flex-start;gap:var(--space-s)}
  .event-item{
    display:grid;
    grid-template-columns:auto 1fr;
    align-items:start;
    gap:var(--space-m);
    padding-block:var(--space-m);
  }
  .event-date{width:var(--space-2xl);height:var(--space-2xl)}
  .event-info,.event-action{grid-column:2;min-width:0}
  .event-action .btn{width:100%}
  .place-card-sm{flex-direction:column}
  .place-card-sm .place-card-media{width:100%;height: var(--media-h-sm)}
  .footer-nav > div{flex:1 1 100%}
  .content-aside{flex-direction:column}
  .bullet-list-cols{columns:1}
  .faq-answer{padding-right:0}
  .page-nav-label{display:none}
  .page-nav .container{gap:var(--space-s)}
  .archive-row{flex-wrap:wrap;gap:var(--space-2xs) var(--space-s)}
  .archive-year{width:auto}
  .timeline-row{grid-template-columns:1fr;gap:var(--space-3xs)}
  .area-card{grid-template-columns:1fr}
  .area-card-media{height:11rem}
  .fact-row{flex-direction:column;gap:var(--space-3xs)}
  .fact-row b{text-align:left}
  .chip-filter .count,.filter-bar .count{margin-left:0;flex:1 1 100%}
  .swiper.topic-swiper{height:auto}
  .topic-swiper .swiper-wrapper{height:auto}
  .topic-swiper .swiper-slide{height:auto;max-height:none}
  .topic-card,
  .topic-card-lg,
  .topic-swiper:not(.swiper-initialized) .swiper-slide:first-child .topic-card,
  .topic-swiper .swiper-slide-active .topic-card{height:24rem}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition-duration:.01ms !important;animation-duration:.01ms !important}
}
