@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  src: url('../fonts/archivo-latin-ext-wdth-normal.woff2') format('woff2-variations');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  src: url('../fonts/archivo-latin-wdth-normal.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

html { scroll-behavior: smooth; }
html, body { margin: 0; background: #0A0A0A; }
*, *::before, *::after { box-sizing: border-box; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--acc, #970000); }
.k-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Hover-/Focus-Zustände (im Design als style-hover definiert) */
.k-hv-invert:hover { background: #ECEAE4 !important; color: #0A0A0A !important; }
.k-hv-ticketbtn:hover { background: #ECEAE4 !important; color: #0A0A0A !important; transform: scale(1.06); letter-spacing: .12em !important; }
.k-hv-ticketcard:hover { background: #ECEAE4 !important; color: #0A0A0A !important; transform: translateY(-4px) scale(1.03); box-shadow: 0 18px 40px rgba(151,0,0,.45); }
.k-hv-acc:hover { color: var(--acc, #970000) !important; }
.k-hv-accbg:hover { background: var(--acc, #970000) !important; }
.k-hv-accscale:hover { background: var(--acc, #970000) !important; color: #ECEAE4 !important; transform: scale(1.05); }
.k-hv-invscale:hover { background: #ECEAE4 !important; color: #0A0A0A !important; transform: scale(1.05); }
.k-hv-scale:hover { transform: scale(1.05); }
.k-hv-dim:hover { background: #1A1A1A !important; }
.k-focus-acc:focus { border-color: var(--acc, #970000) !important; }

/* Mobile-Navigation */
[data-burger] { display: none; }
@media (max-width: 700px) {
  [data-nav] { display: none !important; }
  [data-burger] { display: flex !important; }
}
.k-menu[hidden] { display: none !important; }

/* Newsletter-Formular */
.k-nl-note { margin: 0; font-size: 11px; line-height: 1.45; color: #55534E; max-width: 460px; }
.k-nl-note a { text-decoration: underline; }
.k-nl-msg { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; font-stretch: 110%; min-height: 1em; }
.k-nl-msg[data-state="error"] { color: var(--acc, #970000); }
.k-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  [data-fly] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Admin-Leiste nicht über den Sticky-Header legen */
body.admin-bar header[data-sticky] { top: calc(32px + clamp(8px,1.2vw,16px)) !important; }
@media (max-width: 782px) { body.admin-bar header[data-sticky] { top: calc(46px + 8px) !important; } }

/* Partner-Detailansicht */
#partner-detail:not([hidden]) { display: flex; }

/* Partner-Detail: Medienebene (Desktop: liegt hinter dem Overlay) */
.k-pd-media { position: absolute; inset: 0; }
.k-fade { opacity: 0; transition: opacity .45s ease; }
.k-fade.is-loaded { opacity: 1; }

/* ---------- Mobil ---------- */
@media (max-width: 700px) {
  .k-meta { font-size: 10px; letter-spacing: .06em; }

  /* Hero: Video oben, Text + Tickets darunter statt übereinander */
  .k-hero { aspect-ratio: auto !important; min-height: 0 !important; display: flex; flex-direction: column; background: #0A0A0A !important; }
  .k-hero-video { position: relative !important; inset: auto !important; display: block; width: 100% !important; height: auto !important; aspect-ratio: 4 / 3; }
  .k-hero-shade { display: none; }
  .k-hero-content { position: relative !important; left: auto !important; right: auto !important; bottom: auto !important; padding: 18px 16px 16px; flex-direction: column; align-items: stretch !important; gap: 18px !important; }
  .k-hero-tickets { width: 100% !important; }

  /* Partner-Kacheln: gemeinsames 2-Spalten-Raster */
  .k-pmain { padding: 20px !important; gap: 16px !important; }
  .k-pgrids { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px !important; }
  .k-pgrid { display: contents !important; }
  .k-ptile { position: relative; padding: 14px !important; gap: 8px !important; border-radius: 16px !important; }
  .k-ptile > span:first-child { font-size: 10px !important; letter-spacing: .05em !important; padding-right: 32px; }
  .k-ptile-media { height: 104px !important; }
  .k-ptile-schatten { grid-column: span 2; }
  .k-ptile-schatten .k-ptile-media { height: 150px !important; }
  .k-ptile-name { font-size: 11px !important; letter-spacing: .01em !important; font-stretch: 110% !important; white-space: nowrap; }
  .k-ptile [data-arrow] { position: absolute; top: 8px; right: 8px; width: 28px !important; height: 28px !important; font-size: 12px !important; }

  /* Partner-Detail: Foto oben, Badge + Logo darunter */
  .k-pd-head { aspect-ratio: auto !important; min-height: 0 !important; display: flex; flex-direction: column; }
  .k-pd-media { position: relative; inset: auto; aspect-ratio: 4 / 3; }
  .k-pd-head[data-fit="contain"] .k-pd-photo { padding: 8% !important; object-position: center !important; }
  .k-pd-shade { display: none; }
  .k-pd-overlay { position: relative !important; left: auto !important; right: auto !important; bottom: auto !important; padding: 18px 20px 20px; gap: 14px !important; }
  .k-pd-badge { font-size: 10px !important; padding: 6px 12px !important; }
  .k-pd-logo { width: auto !important; max-width: min(220px, 62%) !important; max-height: 76px !important; object-position: left center !important; }
}

/* Sehr schmale Geräte (z. B. iPhone SE 1. Gen.): Partner-Kacheln einspaltig */
@media (max-width: 359px) {
  .k-pgrids { grid-template-columns: minmax(0, 1fr) !important; }
  .k-ptile-schatten { grid-column: auto; }
}

/* ---------- Cookie-Banner ---------- */
.k-consent { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000; padding: clamp(8px, 1.6vw, 24px); pointer-events: none; font-family: 'Archivo', sans-serif; }
.k-consent[hidden] { display: none; }
.k-consent-card { pointer-events: auto; max-width: 560px; margin-left: auto; background: #0A0A0A; color: #ECEAE4; border: 1px solid #2A2A2A; border-radius: 24px; padding: clamp(20px, 2.4vw, 28px); display: flex; flex-direction: column; gap: 14px; box-shadow: 0 24px 60px rgba(0,0,0,.45); max-height: calc(100vh - 32px); overflow-y: auto; transform: translateY(24px); opacity: 0; transition: transform .45s cubic-bezier(.16,1,.3,1), opacity .3s ease; }
.k-consent.is-open .k-consent-card { transform: none; opacity: 1; }
.k-consent-title { margin: 0; font-weight: 900; font-stretch: 125%; font-size: clamp(26px, 3vw, 36px); line-height: .9; letter-spacing: -.04em; text-transform: uppercase; }
.k-consent-text { margin: 0; font-size: 14px; line-height: 1.55; color: #A8A6A0; }
.k-consent-text a { color: #ECEAE4; text-decoration: underline; }
.k-consent-prefs { display: flex; flex-direction: column; }
.k-consent-prefs[hidden] { display: none; }
.k-consent-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; border-top: 1px solid #2A2A2A; padding: 12px 0; cursor: pointer; }
.k-consent-row strong { display: block; font-size: 12px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; font-stretch: 125%; margin-bottom: 4px; }
.k-consent-row small { display: block; font-size: 12px; line-height: 1.5; color: #A8A6A0; }
.k-consent-row input { flex: none; width: 22px; height: 22px; margin-top: 2px; accent-color: var(--acc, #970000); cursor: pointer; }
.k-consent-row input:disabled { cursor: not-allowed; opacity: .6; }
.k-consent-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; align-items: center; }
.k-consent-btn { border: 1.5px solid #ECEAE4; transition: background .25s, color .25s, border-color .25s; }
.k-consent-btn--ghost { background: transparent; color: #ECEAE4; }
.k-consent-btn--ghost:hover { background: #ECEAE4; color: #0A0A0A; }
.k-consent-btn--acc { background: var(--acc, #970000); border-color: var(--acc, #970000); color: #ECEAE4; }
.k-consent-btn--acc:hover { background: #ECEAE4; border-color: #ECEAE4; color: #0A0A0A; }
.k-consent-btn[hidden] { display: none; }
.k-consent-link { grid-column: 1 / -1; justify-self: start; background: none; border: 0; padding: 4px 0; color: #A8A6A0; font-family: inherit; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; font-stretch: 125%; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.k-consent-link:hover { color: #ECEAE4; }
.k-consent-actions [data-consent="save"] { grid-column: 1 / -1; }
.k-consent :focus-visible, [data-consent-open]:focus-visible, [data-consent-grant]:focus-visible { outline: 2px solid var(--acc, #970000); outline-offset: 3px; }
@media (max-width: 480px) {
  .k-consent-actions { grid-template-columns: 1fr; }
  .k-consent-card { border-radius: 20px; }
}

/* Platzhalter für externe Einbettungen (Ticketshop) */
.k-embed-ph { min-height: 320px; padding: clamp(16px, 3vw, 40px); display: flex; flex-direction: column; justify-content: center; gap: 16px; color: #0A0A0A; }
.k-embed-ph-title { margin: 0; font-weight: 900; font-stretch: 125%; font-size: clamp(32px, 5vw, 64px); line-height: .9; letter-spacing: -.045em; text-transform: uppercase; }
.k-embed-ph-text { margin: 0; max-width: 520px; font-size: 14px; line-height: 1.55; color: #55534E; }
.k-embed-ph-text a { text-decoration: underline; }
