/* ===========================
   ARTLAB zwischenwelten
   Subpage Styles — extends grw+ styles.css
   =========================== */

:root {
  /* Editorial, gedämpfte Akzente — angelehnt an grw+ & thebaseclub.co */
  --artlab-red: #7A2837;        /* deep bordeaux — "rote Pille" */
  --artlab-blue: #1D2D44;       /* deep ink/navy — "blaue Pille" */
  --artlab-red-soft: rgba(122, 40, 55, 0.08);
  --artlab-blue-soft: rgba(29, 45, 68, 0.08);

  /* Warm paper / editorial surfaces (Base-Club-inspired) */
  --paper: #f7f4ec;
  --paper-warm: #eeeae1;
  --ink: #141615;
  --ink-muted: #6f7069;
  --line-warm: #c5c3b8;
}

/* --- PILL ICON (Matrix-inspired, abstract) --- */
.pill {
  display: inline-block;
  width: 28px;
  height: 12px;
  border-radius: 999px;
  vertical-align: middle;
  flex-shrink: 0;
}
.pill--red  { background: var(--artlab-red); }
.pill--blue { background: var(--artlab-blue); }

.pill--sm { width: 20px; height: 9px; }
.pill--lg { width: 48px; height: 20px; }

.pill-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  vertical-align: middle;
}
.pill-dot--red  { background: var(--artlab-red); }
.pill-dot--blue { background: var(--artlab-blue); }

/* ===========================
   HERO — ARTLAB
   =========================== */

.artlab-hero {
  position: relative;
  min-height: 100vh;
  padding: calc(var(--nav-height) + 8vh) var(--page-padding) 6vh;
  color: var(--white);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: var(--black);
}

.artlab-hero__bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(10,10,10,0.55) 0%, rgba(10,10,10,0.85) 100%),
    var(--grey-dark);
  z-index: 0;
}

.artlab-hero__bg-placeholder {
  display: none;
}

/* Hero key visual — Hände mit roter + blauer Pille */
.artlab-hero__visual {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 48%;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}

.artlab-hero__visual-img {
  position: absolute;
  right: -4%;
  top: 50%;
  transform: translateY(-50%);
  width: auto;
  height: 85%;
  max-height: 85vh;
  object-fit: contain;
  object-position: right center;
  filter: brightness(0.95) contrast(1.05);
  mask-image: radial-gradient(ellipse 70% 65% at 65% 50%, black 40%, transparent 90%);
  -webkit-mask-image: radial-gradient(ellipse 70% 65% at 65% 50%, black 40%, transparent 90%);
}

.artlab-hero__visual-glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 30% 40%, rgba(122,40,55,0.2) 0%, transparent 40%),
    radial-gradient(circle at 60% 60%, rgba(29,45,68,0.2) 0%, transparent 40%);
  mix-blend-mode: screen;
}

.artlab-hero__pills {
  position: absolute;
  right: var(--page-padding);
  top: 40%;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  z-index: 1;
  opacity: 0.85;
}

.artlab-hero__pills .pill--lg {
  width: 140px;
  height: 48px;
  border-radius: 999px;
  box-shadow: 0 0 50px rgba(122,40,55,0.3);
}

.artlab-hero__pills .pill--lg.pill--blue {
  box-shadow: 0 0 50px rgba(29,45,68,0.35);
}

.artlab-hero__content {
  position: relative;
  z-index: 2;
  max-width: 1100px;
}

.artlab-hero__eyebrow {
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--grey-mid);
  margin-bottom: 2rem;
}

.artlab-hero__headline {
  font-size: clamp(1.9rem, 7.2vw, 8rem);
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: 2rem;
  color: var(--white);
  hyphens: none;
  word-break: normal;
  overflow-wrap: break-word;
}

.artlab-hero__slogan {
  font-size: clamp(1.4rem, 3vw, 2.6rem);
  font-weight: 300;
  letter-spacing: -0.01em;
  color: var(--white);
  margin-bottom: 1.5rem;
  font-style: italic;
  opacity: 0.9;
}

.artlab-hero__sub {
  font-size: clamp(0.95rem, 1.2vw, 1.15rem);
  color: var(--grey-mid);
  letter-spacing: 0.04em;
  margin-bottom: 3rem;
}

.artlab-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2rem;
}

.artlab-hero__bottom {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* ===========================
   PILL BUTTONS
   =========================== */

.btn-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.75rem;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border: 1px solid var(--white);
  background: transparent;
  color: var(--white);
  cursor: pointer;
  transition: all var(--transition);
  border-radius: 999px;
}

.btn-pill--red:hover {
  background: var(--artlab-red);
  border-color: var(--artlab-red);
  color: var(--white);
  box-shadow: 0 0 20px rgba(122,40,55,0.3);
}

.btn-pill--blue:hover {
  background: var(--artlab-blue);
  border-color: var(--artlab-blue);
  color: var(--white);
  box-shadow: 0 0 20px rgba(29,45,68,0.3);
}

.btn-pill--dark {
  border-color: var(--black);
  color: var(--black);
}
.btn-pill--dark.btn-pill--red:hover { color: var(--white); }
.btn-pill--dark.btn-pill--blue:hover { color: var(--white); }

.btn-pill--filled-red {
  background: var(--artlab-red);
  border-color: var(--artlab-red);
  color: var(--white);
}
.btn-pill--filled-red:hover {
  background: transparent;
  color: var(--artlab-red);
}

.btn-pill--filled-blue {
  background: var(--artlab-blue);
  border-color: var(--artlab-blue);
  color: var(--white);
}
.btn-pill--filled-blue:hover {
  background: transparent;
  color: var(--artlab-blue);
}

/* ===========================
   MANIFESTO
   =========================== */

.manifesto {
  padding: 10rem var(--page-padding);
  display: flex;
  justify-content: center;
  text-align: center;
  background: var(--paper);
}

.manifesto__inner {
  max-width: 62ch;
}

.manifesto__eyebrow {
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--grey-mid);
  margin-bottom: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
}

.manifesto__text {
  font-size: clamp(1.25rem, 2vw, 1.9rem);
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: -0.01em;
  color: var(--black);
}

.manifesto__text p + p {
  margin-top: 1.75rem;
}

.manifesto__text em {
  font-style: italic;
  color: var(--grey-dark);
}

.manifesto__signature {
  margin-top: 4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--grey-dark);
}

/* ===========================
   PROGRAMM
   =========================== */

.programm {
  padding: 8rem var(--page-padding);
  background: var(--white);
}

.programm__header {
  margin-bottom: 5rem;
  text-align: center;
}

.programm__title {
  font-size: clamp(2.2rem, 5vw, 5rem);
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 1.25rem;
}

.programm__lead {
  font-size: 1rem;
  color: var(--grey-dark);
  letter-spacing: 0.02em;
  max-width: 52ch;
  margin: 0 auto;
  line-height: 1.7;
}

.programm__legend {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-top: 2rem;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--grey-dark);
}
.programm__legend span {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

/* Tabs / day selector */
.programm__tabs {
  display: flex;
  justify-content: center;
  gap: 0;
  margin-bottom: 4rem;
  border-bottom: 1px solid var(--grey-light);
}

.programm__tab {
  background: none;
  border: none;
  padding: 1.25rem 2.5rem;
  font-size: 0.9rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--grey-mid);
  cursor: pointer;
  position: relative;
  transition: color var(--transition);
  font-family: inherit;
}

.programm__tab:hover { color: var(--black); }

.programm__tab.active {
  color: var(--black);
}

.programm__tab.active::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--black);
}

.programm__tab-day {
  display: block;
  font-size: 0.7rem;
  color: var(--grey-mid);
  letter-spacing: 0.1em;
  margin-bottom: 0.25rem;
  font-weight: 400;
}

.programm__tab-label {
  font-size: 1.05rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  text-transform: none;
}

/* Panel + items */
.programm__panels {
  max-width: 1000px;
  margin: 0 auto;
}
.programm__panel { display: none; }
.programm__panel.active { display: block; }

.programm-item {
  display: grid;
  grid-template-columns: 60px 1fr 180px 160px;
  gap: 2rem;
  padding: 2.5rem 0;
  border-bottom: 1px solid var(--grey-light);
  align-items: start;
  transition: all var(--transition);
}

.programm-item:first-child {
  border-top: 1px solid var(--grey-light);
}

.programm-item:hover {
  background: var(--grey-light);
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 -1.5rem;
}

.programm-item__pill {
  padding-top: 0.3rem;
}

.programm-item__content {}

.programm-item__title {
  font-size: clamp(1.1rem, 1.6vw, 1.6rem);
  font-weight: 400;
  letter-spacing: -0.01em;
  margin-bottom: 0.65rem;
  line-height: 1.2;
}

.programm-item__desc {
  font-size: 0.9rem;
  color: var(--grey-dark);
  line-height: 1.65;
  max-width: 50ch;
}

.programm-item__price {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--black);
  padding-top: 0.3rem;
  text-align: right;
}

.programm-item__price small {
  display: block;
  font-size: 0.7rem;
  font-weight: 400;
  color: var(--grey-mid);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-top: 0.3rem;
}

.programm-item__cta {
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding-top: 0.4rem;
  text-align: right;
}

.programm-item__cta a {
  border-bottom: 1px solid var(--black);
  padding-bottom: 2px;
  transition: all var(--transition);
}
.programm-item__cta a:hover {
  color: var(--artlab-red);
  border-color: var(--artlab-red);
}

.programm-item[data-intensity="blue"] .programm-item__cta a:hover {
  color: var(--artlab-blue);
  border-color: var(--artlab-blue);
}

/* Inclusive leistungen callout */
.programm__callout {
  margin-top: 4rem;
  padding: 3rem;
  background: var(--grey-light);
  border-radius: 2px;
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 2rem;
  align-items: start;
}

.programm__callout-title {
  font-size: 1.3rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

.programm__callout-title strong {
  font-weight: 500;
}

.programm__callout-price {
  display: block;
  font-size: 0.8rem;
  color: var(--grey-dark);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-top: 0.75rem;
}

.programm__callout-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  font-size: 0.92rem;
  color: var(--grey-dark);
  line-height: 1.5;
}

.programm__callout-list li {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}

.programm__callout-list li::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--black);
  margin-top: 0.55rem;
  flex-shrink: 0;
}

/* ===========================
   KÜNSTLER GRID
   =========================== */

.kuenstler {
  padding: 8rem var(--page-padding);
  background: var(--paper-warm);
}

.kuenstler__header {
  text-align: center;
  margin-bottom: 5rem;
}

.kuenstler__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 3px;
  max-width: 1400px;
  margin: 0 auto;
}

.kuenstler__grid--teaser {
  grid-template-columns: repeat(4, 1fr);
  max-width: 1200px;
}

.kuenstler-card--teaser-end {
  background: var(--paper);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.kuenstler-card--teaser-end .kuenstler-card__teaser {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1.5rem;
}

.kuenstler-card__teaser-num {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--artlab-red);
}

.kuenstler-card__teaser-label {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--grey-dark);
  max-width: 16ch;
  line-height: 1.4;
}

.kuenstler__call {
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  font-weight: 300;
  color: var(--black);
  text-align: center;
  max-width: 44ch;
  line-height: 1.5;
  letter-spacing: -0.005em;
}

.kuenstler-card {
  position: relative;
  aspect-ratio: 3/4;
  background: var(--white);
  overflow: hidden;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.kuenstler-card__img {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--grey-mid) 0%, var(--grey-dark) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  color: rgba(245,245,242,0.5);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: transform 0.6s ease;
}

.kuenstler-card__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.4s ease;
  filter: saturate(0.95);
}

.kuenstler-card:hover .kuenstler-card__img,
.kuenstler-card:hover .kuenstler-card__photo {
  transform: scale(1.04);
  filter: saturate(1.05);
}

.kuenstler-card__overlay {
  position: relative;
  z-index: 2;
  padding: 1.25rem;
  background: linear-gradient(to top, rgba(10,10,10,0.85) 0%, transparent 100%);
  color: var(--white);
}

.kuenstler-card__name {
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  margin-bottom: 0.2rem;
}

.kuenstler-card__meta {
  font-size: 0.72rem;
  color: var(--grey-mid);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.kuenstler__cta-row {
  margin-top: 5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 1.5rem;
}

.kuenstler__ig-link {
  font-size: 0.9rem;
  color: var(--grey-dark);
  letter-spacing: 0.04em;
  border-bottom: 1px solid var(--grey-dark);
  padding-bottom: 2px;
  transition: all var(--transition);
}
.kuenstler__ig-link:hover {
  color: var(--artlab-red);
  border-color: var(--artlab-red);
}

/* ===========================
   INTRO — Was ist ARTLAB
   =========================== */

.intro {
  padding: 6rem var(--page-padding) 4rem;
  background: var(--white);
  border-bottom: 1px solid var(--grey-light);
}

.intro__inner {
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
}

.intro__label {
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--artlab-red);
  font-weight: 500;
  margin-bottom: 2rem;
}

.intro__text {
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  line-height: 1.55;
  color: var(--black);
  letter-spacing: -0.005em;
  margin-bottom: 1.5rem;
}

.intro__text strong {
  color: var(--black);
  font-weight: 500;
}

.intro__text--muted {
  color: var(--grey-dark);
  font-size: clamp(0.95rem, 1.2vw, 1.1rem);
  line-height: 1.65;
}

@media (max-width: 600px) {
  .intro { padding: 4rem var(--page-padding) 3rem; }
}

/* ===========================
   TICKETS SIMPLE — Listen-Stil
   =========================== */

.tickets-simple {
  padding: 6rem var(--page-padding);
  background: var(--paper);
}

.tickets-simple__inner {
  max-width: 800px;
  margin: 0 auto;
}

.tickets-simple__title {
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin-bottom: 3rem;
}

.tickets-simple__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0 0 2.5rem;
  border-top: 1px solid var(--line-warm);
}

.tickets-simple__item {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 1.5rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--line-warm);
  align-items: baseline;
  transition: background var(--transition);
}

.tickets-simple__item:hover {
  background: rgba(255,255,255,0.4);
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  margin: 0 -0.75rem;
}

.tickets-simple__price {
  font-size: clamp(1.4rem, 2.4vw, 1.9rem);
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--black);
  line-height: 1;
}

.tickets-simple__content {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.tickets-simple__content strong {
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--black);
  letter-spacing: -0.005em;
}

.tickets-simple__content span {
  font-size: 0.92rem;
  color: var(--grey-dark);
  line-height: 1.5;
}

.tickets-simple__item--free .tickets-simple__price {
  color: var(--artlab-red);
}

.tickets-simple__item--workshop {
  background: rgba(122,40,55,0.04);
  border-left: 3px solid var(--artlab-red);
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  margin: 0 -1.25rem;
}

.tickets-simple__item--featured .tickets-simple__price {
  color: var(--artlab-red);
}

.tickets-simple__item--featured .tickets-simple__content strong {
  color: var(--artlab-red);
}

.tickets-simple__separat {
  font-size: 0.92rem;
  color: var(--grey-dark);
  line-height: 1.6;
  padding-top: 1.5rem;
  margin-bottom: 2.5rem;
}

.tickets-simple__separat strong {
  color: var(--black);
}

.tickets-simple__cta-row {
  text-align: center;
  margin-top: 2rem;
}

.tickets-simple__cta {
  padding: 1rem 2.5rem;
  font-size: 0.9rem;
}

@media (max-width: 600px) {
  .tickets-simple__item {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
  .tickets-simple__item--workshop {
    margin: 0 -1.25rem;
  }
  .tickets-simple__cta { width: 100%; text-align: center; }
}

/* ===========================
   WORKSHOPS HIGHLIGHT — direkt nach Hero
   =========================== */

.ws-highlight {
  padding: 6rem var(--page-padding);
  background: var(--paper);
  border-bottom: 1px solid var(--line-warm);
}

.ws-highlight__inner {
  max-width: 1100px;
  margin: 0 auto;
}

.ws-highlight__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--artlab-red);
  font-weight: 500;
  margin-bottom: 2rem;
}

.ws-highlight__title {
  font-size: clamp(2.2rem, 5.5vw, 4.5rem);
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1;
  margin-bottom: 1.5rem;
}

.ws-highlight__title em {
  color: var(--artlab-red);
  font-style: italic;
}

.ws-highlight__lead {
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  color: var(--grey-dark);
  line-height: 1.6;
  max-width: 60ch;
  margin-bottom: 3rem;
}

.ws-highlight__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.ws-highlight__card {
  display: block;
  padding: 2.5rem 2rem;
  background: var(--white);
  border: 1px solid var(--line-warm);
  text-decoration: none;
  color: var(--black);
  transition: all var(--transition);
}

.ws-highlight__card:hover {
  background: var(--black);
  color: var(--white);
  transform: translateY(-2px);
}

.ws-highlight__card-time {
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--artlab-red);
  font-weight: 500;
  margin-bottom: 1rem;
}

.ws-highlight__card:hover .ws-highlight__card-time {
  color: var(--artlab-red);
}

.ws-highlight__card-title {
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.15;
  margin-bottom: 0.5rem;
}

.ws-highlight__card-sub {
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  color: var(--grey-dark);
  margin-bottom: 1.25rem;
}

.ws-highlight__card:hover .ws-highlight__card-sub {
  color: var(--grey-mid);
}

.ws-highlight__card-desc {
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--grey-dark);
  margin-bottom: 1.5rem;
  font-style: italic;
}

.ws-highlight__card:hover .ws-highlight__card-desc {
  color: var(--grey-mid);
}

.ws-highlight__card-cta {
  display: inline-block;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
}

.ws-highlight__hint {
  font-size: 0.85rem;
  color: var(--grey-mid);
  letter-spacing: 0.04em;
  text-align: center;
  padding-top: 2rem;
  border-top: 1px solid var(--line-warm);
}

@media (max-width: 768px) {
  .ws-highlight__grid { grid-template-columns: 1fr; }
  .ws-highlight { padding: 4rem var(--page-padding); }
}

.programm-item__onsite {
  font-size: 0.78rem;
  color: var(--grey-mid);
  letter-spacing: 0.04em;
  font-style: italic;
}

/* ===========================
   THE EXCHANGE — Brücke
   =========================== */

.exchange {
  padding: 8rem var(--page-padding);
  background: var(--paper);
}

.exchange__inner {
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}

.exchange__title {
  font-size: clamp(2.2rem, 5vw, 5rem);
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 2rem;
}

.exchange__title em {
  font-style: italic;
  color: var(--artlab-red);
}

.exchange__lead {
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  line-height: 1.7;
  color: var(--grey-dark);
  max-width: 66ch;
  margin: 0 auto 5rem;
}

.exchange__columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  text-align: left;
  border-top: 1px solid var(--line-warm);
  padding-top: 4rem;
}

.exchange__col-label {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--black);
  font-weight: 500;
  margin-bottom: 1.75rem;
}

.exchange__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.exchange__list li {
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--grey-dark);
  padding-left: 1.75rem;
  position: relative;
}

.exchange__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.65rem;
  width: 10px;
  height: 1px;
  background: var(--black);
}

/* ===========================
   PARTNER / BRANDS
   =========================== */

.partner {
  padding: 10rem var(--page-padding);
  background: var(--black);
  color: var(--white);
}

.partner__intro {
  max-width: 1100px;
  margin: 0 auto 5rem;
  text-align: center;
}

.partner__title {
  font-size: clamp(2.2rem, 5vw, 5rem);
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 2rem;
  color: var(--white);
}

.partner__title em {
  font-style: italic;
  color: var(--artlab-red);
}

.partner__text {
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  line-height: 1.7;
  color: var(--grey-mid);
  max-width: 58ch;
  margin: 0 auto;
}

/* Benefit grid */
.partner__benefits {
  max-width: 1200px;
  margin: 0 auto 5rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid #1f1f1f;
  border-left: 1px solid #1f1f1f;
}

.partner-benefit {
  padding: 2.5rem 2rem;
  border-right: 1px solid #1f1f1f;
  border-bottom: 1px solid #1f1f1f;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: background var(--transition);
  min-height: 260px;
}

.partner-benefit:hover { background: #121212; }

.partner-benefit__num {
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  color: var(--artlab-red);
  font-weight: 500;
}

.partner-benefit__title {
  font-size: clamp(1.1rem, 1.6vw, 1.5rem);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.2;
  color: var(--white);
}

.partner-benefit__desc {
  font-size: 0.92rem;
  line-height: 1.65;
  color: var(--grey-mid);
}

.partner__cta-row {
  max-width: 1100px;
  margin: 0 auto 6rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
  padding-top: 3rem;
  border-top: 1px solid #1f1f1f;
}

.partner__price-hint {
  font-size: 0.85rem;
  color: var(--grey-mid);
  letter-spacing: 0.04em;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.partner__price-hint strong {
  color: var(--white);
  font-weight: 500;
  font-size: 1.1rem;
  letter-spacing: -0.01em;
  text-transform: none;
}

.partner__logos-row {
  max-width: 1100px;
  margin: 0 auto;
}

.partner__logos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  border: 1px solid #1f1f1f;
}

.partner__logo {
  aspect-ratio: 3/2;
  background: #111;
  border: 1px solid #1f1f1f;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  color: var(--grey-mid);
  transition: all var(--transition);
}
.partner__logo:hover {
  background: #1a1a1a;
  color: var(--white);
}

.partner__logo--tba {
  color: #444;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* ===========================
   TICKETS
   =========================== */

.tickets {
  padding: 8rem var(--page-padding);
  background: var(--white);
}

.tickets__header {
  text-align: center;
  margin-bottom: 3rem;
}

.tickets__free-banner {
  max-width: 1100px;
  margin: 0 auto 5rem;
  padding: 2rem 2.5rem;
  background: var(--paper);
  border: 1px solid var(--line-warm);
  display: flex;
  align-items: center;
  gap: 2rem;
  border-radius: 2px;
}

.tickets__free-pill {
  flex-shrink: 0;
  padding: 0.6rem 1.25rem;
  background: var(--black);
  color: var(--white);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 500;
  border-radius: 999px;
  white-space: nowrap;
}

.tickets__free-content { flex: 1; }

.tickets__free-title {
  font-size: clamp(1.1rem, 1.6vw, 1.6rem);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.2;
  margin-bottom: 0.4rem;
}

.tickets__free-desc {
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--grey-dark);
}

.tickets__title {
  font-size: clamp(2.2rem, 5vw, 5rem);
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 1rem;
}

.tickets__sub {
  font-size: 1rem;
  color: var(--grey-dark);
  letter-spacing: 0.02em;
}

.tickets__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3px;
  max-width: 1300px;
  margin: 0 auto;
}

.tickets__grid--4 { grid-template-columns: repeat(4, 1fr); }
.tickets__grid--3 { grid-template-columns: repeat(3, 1fr); max-width: 1200px; }
.tickets__grid--2 { grid-template-columns: repeat(2, 1fr); max-width: 1100px; }

.tickets__combo-hint {
  max-width: 900px;
  margin: 2rem auto 0;
  padding: 1.25rem 2rem;
  background: var(--paper);
  border-left: 3px solid var(--artlab-red);
  font-size: 0.92rem;
  color: var(--grey-dark);
  line-height: 1.5;
}

.tickets__separat {
  max-width: 1100px;
  margin: 4rem auto 0;
  padding: 2rem 2.5rem;
  background: var(--paper);
  border: 1px solid var(--line-warm);
}

.tickets__separat-title {
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--grey-dark);
  margin-bottom: 1rem;
  font-weight: 500;
}

.tickets__separat-desc {
  font-size: 0.92rem;
  color: var(--grey-dark);
  line-height: 1.6;
  margin-bottom: 1.25rem;
  max-width: 60ch;
}

.tickets__separat-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  border-top: 1px solid var(--line-warm);
  padding-top: 1.25rem;
}

.tickets__separat-list li {
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--grey-dark);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.4rem 0;
}

.tickets__separat-list li strong { color: var(--black); font-weight: 500; }

.tickets__separat-list li span {
  color: var(--black);
  font-weight: 500;
  white-space: nowrap;
}

.tickets__separat-cta {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: var(--artlab-red);
  border-bottom: 1px solid var(--artlab-red);
  padding-bottom: 1px;
  white-space: nowrap;
  margin-left: auto;
  margin-right: 0.75rem;
  font-weight: 500;
}

.tickets__separat-cta:hover { opacity: 0.7; }

/* Direct Booking section with embedded Stripe Pricing Table */
.buchen {
  padding: 8rem var(--page-padding);
  background: var(--paper);
  border-top: 1px solid var(--line-warm);
}

.buchen__inner {
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
}

.buchen__label {
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--artlab-red);
  font-weight: 500;
  margin-bottom: 1.5rem;
}

.buchen__title {
  font-size: clamp(2rem, 5vw, 4.5rem);
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 1.5rem;
}

.buchen__lead {
  font-size: 1.05rem;
  color: var(--grey-dark);
  line-height: 1.65;
  max-width: 60ch;
  margin: 0 auto 4rem;
}

.buchen__group {
  max-width: 1100px;
  margin: 0 auto 4rem;
}

.buchen__group:last-of-type { margin-bottom: 0; }

.buchen__subtitle {
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--grey-dark);
  font-weight: 500;
  text-align: left;
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--line-warm);
}

.buchen__table {
  max-width: 1100px;
  margin: 0 auto;
  background: var(--white);
  padding: 1rem;
  border: 1px solid var(--line-warm);
}

.buchen__note {
  margin-top: 3rem;
  font-size: 0.85rem;
  color: var(--grey-mid);
  letter-spacing: 0.04em;
}

.buchen__note a {
  color: var(--black);
  border-bottom: 1px solid var(--grey-mid);
  padding-bottom: 1px;
}

.tickets__combo-hint strong {
  color: var(--black);
  font-weight: 500;
}

.tickets__group-label {
  max-width: 1300px;
  margin: 0 auto 1.5rem;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--grey-dark);
  display: flex;
  align-items: center;
  gap: 1rem;
}

.tickets__group-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--grey-light);
}

.tickets__group-label--spaced {
  margin-top: 4rem;
}

.ticket-card__sub {
  font-size: 0.92rem;
  font-style: italic;
  color: var(--grey-dark);
  line-height: 1.4;
  margin-top: -0.5rem;
}
.ticket-card:hover .ticket-card__sub { color: var(--grey-mid); }
.ticket-card--featured .ticket-card__sub { color: var(--grey-mid); }

.ticket-card__bullets {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin: 0.5rem 0;
  flex-grow: 1;
}

.ticket-card__bullets li {
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--grey-dark);
  padding-left: 1rem;
  position: relative;
}

.ticket-card__bullets li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6rem;
  width: 6px;
  height: 1px;
  background: var(--black);
}

.ticket-card__bullets li strong {
  color: var(--black);
  font-weight: 500;
}

.ticket-card:hover .ticket-card__bullets li { color: var(--grey-mid); }
.ticket-card:hover .ticket-card__bullets li::before { background: var(--grey-mid); }
.ticket-card:hover .ticket-card__bullets li strong { color: var(--white); }

.ticket-card--featured .ticket-card__bullets li { color: var(--grey-mid); }
.ticket-card--featured .ticket-card__bullets li::before { background: var(--grey-mid); }
.ticket-card--featured .ticket-card__bullets li strong { color: var(--white); }

.ticket-card--workshop {
  border: 1px solid var(--artlab-red);
  background: var(--paper);
  position: relative;
}

.ticket-card--workshop::before {
  content: 'Für Künstler:innen';
  position: absolute;
  top: -1px;
  left: -1px;
  background: var(--artlab-red);
  color: var(--white);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.35rem 0.75rem;
  font-weight: 500;
}

.ticket-card--workshop:hover {
  background: var(--artlab-red);
  color: var(--white);
}
.ticket-card--workshop:hover::before { background: var(--black); }
.ticket-card--workshop:hover .ticket-card__bullets li { color: var(--grey-mid); }
.ticket-card--workshop:hover .ticket-card__bullets li::before { background: var(--grey-mid); }
.ticket-card--workshop:hover .ticket-card__bullets li strong { color: var(--white); }

.ticket-card {
  padding: 2.5rem 2rem;
  background: var(--grey-light);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-height: 420px;
  transition: all var(--transition);
  position: relative;
  overflow: hidden;
}

.ticket-card:hover {
  background: var(--black);
  color: var(--white);
}

.ticket-card__pills {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.ticket-card__label {
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--grey-dark);
  transition: color var(--transition);
}

.ticket-card:hover .ticket-card__label {
  color: var(--grey-mid);
}

.ticket-card__title {
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

.ticket-card__price {
  font-size: 2.5rem;
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1;
}

.ticket-card__price small {
  font-size: 0.9rem;
  color: var(--grey-dark);
  margin-left: 0.25rem;
  letter-spacing: 0.02em;
}

.ticket-card:hover .ticket-card__price small {
  color: var(--grey-mid);
}

.ticket-card__desc {
  font-size: 0.88rem;
  line-height: 1.6;
  color: var(--grey-dark);
  flex-grow: 1;
}

.ticket-card:hover .ticket-card__desc {
  color: var(--grey-mid);
}

.ticket-card__cta {
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
}

.ticket-card__actions {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: flex-start;
}

.ticket-card__more {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  color: var(--artlab-red);
  border-bottom: 1px solid var(--artlab-red);
  padding-bottom: 1px;
  width: max-content;
  font-weight: 500;
  transition: opacity var(--transition);
}

.ticket-card__more:hover { opacity: 0.7; }

.ticket-card--workshop:hover .ticket-card__more {
  color: var(--white);
  border-color: var(--white);
}

.ticket-card--featured .ticket-card__more {
  color: var(--white);
  border-color: var(--white);
}

.programm-item__more {
  display: inline-block;
  margin-top: 0.5rem;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: var(--artlab-red);
  border-bottom: 1px solid var(--artlab-red);
  padding-bottom: 1px;
  width: max-content;
  font-weight: 500;
}

.programm-item__more:hover { opacity: 0.7; }

.ticket-card__handouts {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.ticket-card__handouts-label {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--grey-mid);
}

.ticket-card__handout {
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  color: var(--grey-dark);
  border-bottom: 1px solid var(--grey-mid);
  padding-bottom: 1px;
  transition: color var(--transition), border-color var(--transition);
}

.ticket-card__handout:hover {
  color: var(--artlab-red);
  border-color: var(--artlab-red);
}

.ticket-card--workshop:hover .ticket-card__handout {
  color: var(--white);
  border-color: var(--white);
}

.ticket-card--featured .ticket-card__handout {
  color: var(--grey-mid);
  border-color: var(--grey-mid);
}

.programm-item__handouts {
  margin-top: 0.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.4rem;
}

.programm-item__handout {
  display: inline-block;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  color: var(--grey-dark);
  border-bottom: 1px solid var(--grey-mid);
  padding-bottom: 1px;
  width: max-content;
}

.programm-item__handout:hover {
  color: var(--artlab-red);
  border-color: var(--artlab-red);
}

.ticket-card__cta::after {
  content: '→';
  transition: transform var(--transition);
}
.ticket-card:hover .ticket-card__cta::after {
  transform: translateX(6px);
}

.ticket-card__earlybird {
  position: absolute;
  top: 0;
  right: 0;
  background: var(--artlab-red);
  color: var(--white);
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 500;
  padding: 0.35rem 0.8rem;
  z-index: 2;
}

.ticket-card--featured {
  background: var(--black);
  color: var(--white);
}
.ticket-card--featured .ticket-card__label { color: var(--grey-mid); }
.ticket-card--featured .ticket-card__desc { color: var(--grey-mid); }
.ticket-card--featured .ticket-card__price small { color: var(--grey-mid); }
.ticket-card--featured:hover {
  background: var(--artlab-red);
  color: var(--white);
}

.tickets__note {
  text-align: center;
  margin-top: 2.5rem;
  font-size: 0.82rem;
  color: var(--grey-mid);
  letter-spacing: 0.06em;
}

/* ===========================
   KONTAKT
   =========================== */

.kontakt {
  padding: 8rem var(--page-padding);
  background: var(--paper);
}

.kontakt__inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 5rem;
}

.kontakt__left {}

.kontakt__portrait {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  overflow: hidden;
  margin-bottom: 2rem;
  background: var(--paper-warm);
}

.kontakt__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.kontakt__title {
  font-size: clamp(2rem, 4vw, 4rem);
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 2rem;
}

.kontakt__info {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  font-size: 0.95rem;
  color: var(--grey-dark);
  line-height: 1.6;
}

.kontakt__info-label {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--grey-mid);
  display: block;
  margin-bottom: 0.35rem;
}

.kontakt__info a {
  color: var(--black);
  border-bottom: 1px solid var(--grey-mid);
  transition: border var(--transition);
}
.kontakt__info a:hover { border-color: var(--black); }

/* Form */
.form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}

.form__field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.form__label {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--grey-mid);
}

.form__input,
.form__select,
.form__textarea {
  width: 100%;
  padding: 0.9rem 0;
  font-family: inherit;
  font-size: 1rem;
  color: var(--black);
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--grey-mid);
  outline: none;
  transition: border var(--transition);
  font-weight: 400;
  letter-spacing: -0.005em;
}

.form__input:focus,
.form__select:focus,
.form__textarea:focus {
  border-color: var(--black);
}

.form__textarea {
  min-height: 120px;
  resize: vertical;
  padding: 0.9rem 0;
  line-height: 1.5;
}

.form__select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23555' fill='none' stroke-width='1.2'/></svg>");
  background-repeat: no-repeat;
  background-position: right 0.25rem center;
  padding-right: 2rem;
  cursor: pointer;
}

.form__submit {
  margin-top: 1rem;
  align-self: flex-start;
}

/* ===========================
   APPLICATION PAGES
   =========================== */

.apply-page {
  padding: calc(var(--nav-height) + 8vh) var(--page-padding) 8rem;
  min-height: 100vh;
  background: var(--white);
}

.apply-page__inner {
  max-width: 780px;
  margin: 0 auto;
}

.apply-page__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--grey-dark);
  margin-bottom: 2rem;
}

.apply-page__title {
  font-size: clamp(2.5rem, 6vw, 6rem);
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: 2rem;
}

.apply-page__lead {
  font-size: clamp(1rem, 1.4vw, 1.25rem);
  color: var(--grey-dark);
  line-height: 1.65;
  max-width: 55ch;
  margin-bottom: 4rem;
}

.apply-page__form {
  border-top: 1px solid var(--grey-light);
  padding-top: 3rem;
}

.apply-page__deadline {
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid var(--grey-light);
  font-size: 0.85rem;
  color: var(--grey-mid);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.apply-page__bullets {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  margin-top: 2rem;
  padding-left: 0;
  max-width: 58ch;
}

.apply-page__bullets li {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--grey-dark);
  padding-left: 2rem;
  position: relative;
}

.apply-page__bullets li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.7rem;
  width: 14px;
  height: 2px;
  background: var(--artlab-red);
}

.apply-page__bullets li strong {
  color: var(--black);
  font-weight: 500;
}

.apply-page__back {
  margin-bottom: 2rem;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--grey-dark);
}

.apply-page__back::before {
  content: '← ';
}

/* ===========================
   RESPONSIVE
   =========================== */

@media (max-width: 1024px) {
  .kuenstler__grid { grid-template-columns: repeat(3, 1fr); }
  .tickets__grid,
  .tickets__grid--4,
  .tickets__grid--3 { grid-template-columns: repeat(2, 1fr); }
  .tickets__grid--2 { grid-template-columns: 1fr; }
  .partner__benefits { grid-template-columns: repeat(2, 1fr); }
  .partner__logos { grid-template-columns: repeat(2, 1fr); }
  .exchange__columns { grid-template-columns: 1fr; gap: 3rem; }
  .artlab-hero__visual { width: 55%; opacity: 0.4; }
  .programm-item {
    grid-template-columns: 40px 1fr;
    row-gap: 1rem;
  }
  .programm-item__price { grid-column: 2; text-align: left; }
  .programm-item__cta { grid-column: 2; text-align: left; }
  .kontakt__inner { grid-template-columns: 1fr; gap: 3rem; }
  .programm__callout { grid-template-columns: 1fr; }
  .artlab-hero__pills { display: none; }
}

@media (max-width: 768px) {
  .kuenstler__grid { grid-template-columns: repeat(2, 1fr); }
  .tickets__grid,
  .tickets__grid--4,
  .tickets__grid--3,
  .tickets__grid--2 { grid-template-columns: 1fr; }
  .partner__benefits { grid-template-columns: 1fr; }
  .partner__cta-row { flex-direction: column; align-items: flex-start; }
  .form__row { grid-template-columns: 1fr; }
  .manifesto { padding: 6rem var(--page-padding); }
  .partner { padding: 6rem var(--page-padding); }
  .programm__tabs { flex-direction: column; border-bottom: none; }
  .programm__tab {
    border-bottom: 1px solid var(--grey-light);
    padding: 1rem 0;
    text-align: left;
  }
  .programm__tab.active::after { display: none; }
  .programm__tab.active {
    border-bottom-color: var(--black);
    border-bottom-width: 2px;
  }
  .programm__legend { flex-direction: column; gap: 0.75rem; align-items: center; }
  .artlab-hero__ctas { flex-direction: column; align-items: stretch; }
  .btn-pill { width: 100%; justify-content: center; }
  .artlab-hero__headline { font-size: clamp(2.5rem, 12vw, 4rem); }
  .artlab-hero__bottom { flex-direction: column; gap: 1rem; align-items: flex-start; }
  .artlab-hero__visual {
    position: relative;
    width: 100%;
    height: 320px;
    margin: 0 auto 2rem;
    opacity: 0.7;
  }
  .artlab-hero__visual-img {
    position: relative;
    right: auto;
    top: auto;
    transform: none;
    width: 100%;
    height: 100%;
    object-position: center;
  }
  .partner__inner { gap: 3rem; }
  .kontakt__inner { gap: 3rem; }
  .apply-page__title { font-size: clamp(2rem, 10vw, 3.5rem); }
}

/* --- Nav on ARTLAB sub-pages: compress for narrow viewports --- */
@media (max-width: 900px) {
  body .nav { height: 56px; padding: 0 4vw; }
  body .nav__logo { font-size: 0.95rem; white-space: nowrap; }
  body .nav__links {
    gap: 1rem;
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    max-width: 60%;
  }
  body .nav__links::-webkit-scrollbar { display: none; }
  body .nav__links a {
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
  body .nav__links li:last-child a {
    padding: 0.4rem 0.8rem !important;
    font-size: 0.65rem !important;
  }
}

@media (max-width: 520px) {
  body .nav__logo { font-size: 0.85rem; }
  body .nav__logo span:first-of-type { display: none; }
  .artlab-hero {
    padding-top: calc(var(--nav-height) + 4vh);
    padding-bottom: 3vh;
  }
  .artlab-hero__slogan { font-size: 1.3rem; }
  .artlab-hero__eyebrow { font-size: 0.68rem; margin-bottom: 1.25rem; }
  .artlab-hero__headline {
    font-size: clamp(1.8rem, 10.5vw, 3rem);
    line-height: 1.02;
    margin-bottom: 1.25rem;
  }
  .artlab-hero__sub { margin-bottom: 2rem; font-size: 0.9rem; }
  .manifesto__text { font-size: 1.1rem; }
  .programm__callout { padding: 2rem; }
  .programm-item { grid-template-columns: 32px 1fr; gap: 1rem; padding: 1.75rem 0; }
  .programm-item__title { font-size: 1.05rem; }
  .programm-item__desc { font-size: 0.85rem; }
  .ticket-card { min-height: auto; padding: 2rem 1.5rem; }
  .ticket-card__price { font-size: 2rem; }
  .partner__logos { grid-template-columns: 1fr 1fr; }
  .kuenstler__grid { gap: 2px; }
  .kuenstler-card__name { font-size: 0.85rem; }
  .kuenstler-card__meta { font-size: 0.65rem; }
}
