/*
Theme Name: Quelle der kleinen Wunder
Theme URI: https://quellederkleinenwunder.ch
Description: Massgeschneidertes Theme für die Kita "Quelle der kleinen Wunder" in Chur. Reggio-inspiriertes Design mit warmen, natürlichen Farben.
Version: 2.13.3
Author: Simon Meier
Author URI: https://quellederkleinenwunder.ch
Text Domain: qdkw
License: Proprietary
*/

/* ============================================
   DESIGN TOKENS
   ============================================ */
:root {
  /* ============================================
     BRANDGUIDE v1.5 - Quelle der kleinen Wunder AG
     Primärfarben (Kernfarben mit Rollen)
     ============================================ */
  --qkw-coral: #ED6C50;   /* Akzent, Wärme (Primary CTA) */
  --qkw-cream: #FAF6E4;   /* Hintergrund */
  --qkw-leaf:  #A1B443;   /* Natur */
  --qkw-sky:   #598AAE;   /* Vertrauen */
  --qkw-soil:  #675039;   /* Erde */
  --qkw-sun:   #F6DC50;   /* Freude */

  /* Sekundärfarben (Ergänzungen) */
  --qkw-sage:    #6AA396;  /* Ausgleich */
  --qkw-mist:    #8898B2;  /* Struktur */
  --qkw-apricot: #F6A847;  /* Akzent */
  --qkw-moss:    #A7B84F;  /* Natur */
  --qkw-lake:    #78A0B9;  /* Ruhe */

  /* Helfer-Töne (Brandguide-konform abgeleitet) */
  --qkw-white:        #FFFFFF;
  --qkw-cream-light:  #FDFAF1;  /* hellere Hintergrundebene, gleicher Farbton */
  --qkw-cream-warm:   var(--qkw-cream-warm);  /* sanft warm */
  --qkw-soil-soft:    #8B7355;  /* abgesoftet für Sekundärtext */
  --qkw-border:       #E8DEC5;  /* dezente Borders im Cream-Ton */

  /* ============================================
     SEMANTISCHE ALIASE
     (alte Klassen verwenden diese — bleiben rückwärtskompatibel)
     ============================================ */
  --c-cta:         var(--qkw-coral);
  --c-cta-hover:   #D85A42;       /* Coral leicht abgedunkelt */
  --c-terracotta:  var(--qkw-coral);
  --c-olive:       var(--qkw-leaf);
  --c-teal:        var(--qkw-sage);
  --c-beige:       var(--qkw-cream);
  --c-warm-white:  var(--qkw-cream-light);
  --c-dark:        var(--qkw-soil);
  --c-mid:         var(--qkw-soil-soft);
  --c-light-border: var(--qkw-border);

  /* Typography */
  --font-heading: 'Playfair Display', Georgia, serif;
  --font-body: 'Nunito', -apple-system, sans-serif;
  --font-accent: 'Lora', Georgia, serif;

  /* Layout */
  --max-width: 1200px;
  --max-width-wide: 1400px;
  --section-padding: 80px;
  --gap: 40px;
}

/* ============================================
   RESET & BASE
   ============================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  font-family: var(--font-body);
  color: var(--c-dark);
  background: var(--c-beige);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--c-terracotta);
  text-decoration: none;
  transition: color 0.3s ease;
}
a:hover { color: var(--c-cta); }

h1, h2, h3, h4 {
  font-family: var(--font-heading);
  color: var(--c-dark);
  line-height: 1.25;
  font-weight: 400;
}

h1 { font-size: clamp(2.2rem, 5vw, 3.2rem); }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.4rem); }
h3 { font-size: clamp(1.2rem, 2.5vw, 1.6rem); }

p { margin-bottom: 1rem; }

.container {
  width: 90%;
  max-width: var(--max-width);
  margin: 0 auto;
}
.container--wide {
  max-width: var(--max-width-wide);
}

/* ============================================
   HEADER
   ============================================ */
.site-header {
  background: var(--c-warm-white);
  position: relative;
  z-index: 1000;
  box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  max-width: var(--max-width-wide);
}

.site-logo img {
  height: 55px;
  width: auto;
}

.main-nav { flex: 1; text-align: center; }

.main-nav ul {
  list-style: none;
  display: flex;
  justify-content: center;
  gap: 28px;
}

.main-nav a {
  font-family: var(--font-body);
  font-size: 0.938rem;
  font-weight: 600;
  color: var(--c-dark);
  text-decoration: none;
  padding: 4px 0;
  border-bottom: 2px solid transparent;
  transition: all 0.3s ease;
}

.main-nav a:hover,
.main-nav .current-menu-item a,
.main-nav .current_page_item a {
  color: var(--c-terracotta);
  border-bottom-color: var(--c-terracotta);
}

.header-cta {
  display: flex;
  align-items: center;
  gap: 10px;
}
.header-cta .btn {
  font-size: 0.875rem;
  padding: 10px 22px;
  white-space: nowrap;
}
.header-cta__btn {
  flex-shrink: 0;
}
@media (max-width: 1100px) {
  .header-cta__btn { padding: 9px 16px; font-size: 0.82rem; }
}

/* Mobile menu */
.menu-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  z-index: 1001;
}
.menu-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--c-dark);
  margin: 5px 0;
  transition: all 0.3s ease;
}
.menu-toggle.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.menu-toggle.active span:nth-child(2) { opacity: 0; }
.menu-toggle.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

@media (max-width: 768px) {
  .menu-toggle { display: block; }
  .main-nav {
    display: none !important;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--c-warm-white);
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    padding: 20px;
    z-index: 1000;
  }
  .main-nav.active {
    display: block !important;
  }
  .main-nav ul {
    flex-direction: column;
    gap: 0;
  }
  .main-nav li {
    border-bottom: 1px solid var(--c-light-border);
  }
  .main-nav a {
    display: block;
    padding: 12px 0;
  }
  .header-cta { display: none; }
}

/* ============================================
   BUTTONS
   ============================================ */
.btn {
  display: inline-block;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1rem;
  padding: 14px 32px;
  border-radius: 25px;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
}

.btn--primary {
  background: var(--c-cta);
  color: #fff;
}
.btn--primary:hover {
  background: var(--c-cta-hover);
  color: #fff;
  transform: translateY(-2px);
}

.btn--outline {
  background: transparent;
  color: var(--c-dark);
  border: 2px solid var(--c-dark);
}
.btn--outline:hover {
  background: var(--c-dark);
  color: #fff;
}

/* ============================================
   HERO SECTION (shared by all pages)
   ============================================ */
.hero {
  padding: var(--section-padding) 0;
}

.hero .container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  max-width: var(--max-width-wide);
}

.hero__content { padding-right: 20px; }

.hero__title span.accent {
  color: var(--c-terracotta);
}
.hero__title span.small {
  font-size: 0.72em;
}

.hero__divider {
  width: 60px;
  height: 3px;
  background: var(--c-terracotta);
  margin: 20px 0;
}

.hero__subtitle {
  font-family: var(--font-accent);
  font-size: 1.25rem;
  color: var(--c-mid);
  margin-bottom: 10px;
}

.hero__text {
  font-size: 1.063rem;
  line-height: 1.8;
  color: var(--c-dark);
}
.hero__text strong {
  font-size: 1.1rem;
}

.hero__image img {
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  width: 100%;
  object-fit: cover;
  aspect-ratio: 4/3;
}

/* ============================================
   VALUES BAR (Startseite)
   ============================================ */
.values-bar {
  background: var(--c-warm-white);
  padding: 60px 0;
}

.values-bar__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  text-align: center;
}

.value-item__icon {
  width: 65px;
  height: 65px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 15px;
  font-size: 1.5rem;
  color: #fff;
}
.value-item__icon--olive { background: var(--c-olive); }
.value-item__icon--terra { background: var(--c-cta); }
.value-item__icon--teal { background: var(--c-teal); }

.value-item h3 {
  font-size: 1.063rem;
  font-weight: 600;
  margin-bottom: 6px;
}

.value-item p {
  font-size: 0.875rem;
  color: var(--c-mid);
}

/* ============================================
   IMAGE CARDS (Startseite)
   ============================================ */
.image-cards {
  padding: var(--section-padding) 0;
}

.image-cards__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.image-card img {
  border-radius: 12px;
  box-shadow: 0 5px 20px rgba(0,0,0,0.08);
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.image-card:hover img { transform: scale(1.02); }

.image-card h3 {
  text-align: center;
  margin-top: 15px;
  font-size: 1.375rem;
}

.image-card p {
  text-align: center;
  color: var(--c-mid);
  font-size: 0.938rem;
}

/* ============================================
   CONTENT BLOCKS (alternating image/text)
   ============================================ */
.content-block {
  padding: 60px 0;
}
.content-block--light { background: var(--c-warm-white); }
.content-block--beige { background: var(--c-beige); }

.content-block .container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
}

/* Modifier: Single-Column-Layout (z.B. Kontaktformular) */
.content-block--single .container {
  display: block;
}

.content-block--reverse .content-block__text { order: -1; }

.content-block__image img {
  border-radius: 12px;
  box-shadow: 0 5px 20px rgba(0,0,0,0.08);
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}

.content-block__number {
  font-family: var(--font-body);
  font-size: 0.938rem;
  font-weight: 700;
  color: var(--c-terracotta);
  margin-bottom: 5px;
}

.content-block__icon {
  font-size: 1.8rem;
  margin-bottom: 10px;
  display: block;
}
.content-block__icon--olive { color: var(--c-olive); }
.content-block__icon--terra { color: var(--c-cta); }
.content-block__icon--teal { color: var(--c-teal); }

.content-block__divider {
  width: 40px;
  height: 2px;
  background: var(--c-terracotta);
  margin: 15px 0;
}

.content-block__body {
  font-size: 1rem;
  color: var(--c-mid);
  line-height: 1.8;
}

/* ============================================
   INFO CARDS (Kontaktseite)
   ============================================ */
.info-cards {
  background: var(--c-warm-white);
  padding: 60px 0;
}

.info-cards__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
}

.info-card {
  text-align: left;
}

.info-card__icon {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border: 2px solid var(--c-light-border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  color: var(--c-terracotta);
  margin-bottom: 15px;
}

.info-card h3 {
  font-size: 1.125rem;
  margin-bottom: 10px;
  text-decoration: underline;
  text-decoration-color: var(--c-terracotta);
  text-underline-offset: 4px;
}

.info-card p {
  font-size: 0.938rem;
  color: var(--c-mid);
  line-height: 1.7;
}

/* ============================================
   MAP SECTION (Kontakt)
   ============================================ */
.map-section {
  padding: 60px 0;
}

.map-section .container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 30px;
  align-items: center;
}

.map-section__map img,
.map-section__welcome img {
  border-radius: 12px;
  width: 100%;
}

.map-section__map iframe {
  border-radius: 12px;
  width: 100%;
  min-height: 300px;
}

.map-section__info h3 {
  font-size: 1.5rem;
  margin-bottom: 20px;
}

.map-section__item {
  display: flex;
  gap: 12px;
  margin-bottom: 18px;
  align-items: flex-start;
}

.map-section__item-icon {
  color: var(--c-olive);
  font-size: 1.2rem;
  flex-shrink: 0;
  margin-top: 2px;
}

.map-section__item h4 {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.938rem;
  margin-bottom: 2px;
}

.map-section__item p {
  font-size: 0.875rem;
  color: var(--c-mid);
  margin-bottom: 0;
}

/* ============================================
   TEAM SECTION (Kontakt)
   ============================================ */
.team-section {
  background: var(--c-warm-white);
  padding: 70px 0;
}

.team-section .container {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 50px;
  align-items: center;
}

.team-section__intro h3 {
  font-size: 1.7rem;
  font-family: var(--font-head);
  font-weight: normal;
  color: var(--c-dark);
  margin: 0 0 18px 0;
  line-height: 1.2;
}
.team-section__intro p {
  color: var(--c-mid);
  margin: 0;
  line-height: 1.7;
}

.team-section__photos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

/* === EIN TEAMMITGLIED (Paper-Polaroid) === */
.team-member {
  --team-accent: var(--qkw-leaf);
  --team-tint: rgba(161, 180, 67, 0.10);
  text-align: center;
}

.team-member__photo {
  position: relative;
  aspect-ratio: 3/4;
  border-radius: 10px;
  overflow: hidden;
  background: linear-gradient(180deg, var(--qkw-cream-light) 0%, var(--qkw-cream-warm) 100%);
  box-shadow:
    0 1px 2px rgba(103, 80, 57, 0.06),
    0 4px 14px rgba(103, 80, 57, 0.06);
  transition:
    transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1),
    box-shadow 0.4s ease;
}

.team-member__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: filter 0.4s ease, transform 0.6s ease;
}

/* Akzent-Streifen am unteren Rand des Fotos */
.team-member__photo::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: var(--team-accent);
  opacity: 0;
  transition: opacity 0.35s ease, height 0.35s ease;
}

/* Empty-State (kein Foto hochgeladen) */
.team-member--empty .team-member__photo {
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.4) 0%, transparent 100%),
    var(--team-tint);
}
.team-member__silhouette {
  width: 58%;
  height: auto;
  color: var(--team-accent);
  opacity: 0.42;
  transition: opacity 0.35s ease, transform 0.5s cubic-bezier(0.34, 1.4, 0.64, 1);
}

/* === HOVER: Foto wird "angehoben" wie eine Polaroid === */
.team-member:hover .team-member__photo {
  transform: translateY(-6px) rotate(-1deg);
  box-shadow:
    0 2px 6px rgba(103, 80, 57, 0.08),
    0 16px 32px rgba(103, 80, 57, 0.14);
}
.team-member:hover .team-member__photo::after {
  opacity: 1;
  height: 4px;
}
.team-member:hover .team-member__photo img {
  filter: brightness(1.04) saturate(1.06);
  transform: scale(1.03);
}
.team-member:hover .team-member__silhouette {
  opacity: 0.6;
  transform: translateY(-2px) scale(1.04);
}

/* Jedes zweite Mitglied entgegengesetzt rotieren — organisch */
.team-member:nth-child(2n):hover .team-member__photo {
  transform: translateY(-6px) rotate(1deg);
}

/* Name + Rolle */
.team-member__name {
  margin: 16px 0 2px 0;
  font-weight: 600;
  font-size: 0.97rem;
  color: var(--c-dark);
  line-height: 1.3;
}
.team-member__role {
  margin: 0;
  color: var(--c-mid);
  font-size: 0.83rem;
  font-style: italic;
  line-height: 1.3;
}

/* === OFFENE STELLE (Team-Slot als klickbare Stellen-Karte) === */
/* Gleiche Polaroid-Optik wie ein normales Teammitglied — nur Badge + Button kommen dazu. */
.team-member--open {
  display: block;
  text-decoration: none;
  color: inherit;
}
.team-member--open:hover { color: inherit; }

/* Foto-Rahmen wie der Empty-State (Silhouette auf Tint-Hintergrund) */
.team-member--open .team-member__photo {
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.4) 0%, transparent 100%),
    var(--team-tint);
}

/* «Offene Stelle»-Badge oben auf dem Foto-Rahmen */
.team-member__badge {
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  padding: 4px 12px;
  border-radius: 20px;
  background: var(--team-accent);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
  box-shadow: 0 2px 6px rgba(103, 80, 57, 0.18);
}

/* «Jetzt bewerben» — kompakter Pill-Button im Karten-Stil */
.team-member__apply {
  display: inline-block;
  margin-top: 12px;
  padding: 8px 20px;
  border-radius: 22px;
  background: var(--team-accent);
  color: #fff;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 700;
  transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease;
}
.team-member--open:hover .team-member__apply {
  filter: brightness(1.06);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(103, 80, 57, 0.18);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .team-member__photo,
  .team-member__photo img,
  .team-member__silhouette {
    transition: opacity 0.2s ease !important;
  }
  .team-member:hover .team-member__photo {
    transform: translateY(-3px) !important;
  }
}

/* ============================================
   DOWNLOADS SECTION
   ============================================ */
.downloads-section {
  padding: 60px 0;
}

.downloads-section h2 {
  text-align: center;
  margin-bottom: 36px;
}

.downloads__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
  max-width: 1000px;
  margin: 0 auto 24px;
}

/* === DOWNLOAD-KARTE ("Papier-Pinnung") === */
.download-card {
  --card-accent: var(--qkw-leaf);
  --card-tint: rgba(161, 180, 67, 0.08);

  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  min-height: 168px;
  padding: 20px 18px 16px;
  background: linear-gradient(180deg, var(--qkw-cream-light) 0%, var(--c-warm-white, var(--qkw-cream-warm)) 100%);
  background-color: var(--c-warm-white, var(--qkw-cream-warm));
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  isolation: isolate;
  box-shadow:
    0 1px 2px rgba(103, 80, 57, 0.06),
    0 4px 12px rgba(103, 80, 57, 0.04);
  transition:
    transform 0.35s cubic-bezier(0.34, 1.4, 0.64, 1),
    box-shadow 0.35s ease,
    background-color 0.35s ease;
}

/* Subtle farbiger Hintergrund-Tint */
.download-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--card-tint);
  opacity: 0;
  transition: opacity 0.35s ease;
  z-index: -1;
  pointer-events: none;
}

/* Top-Stripe als Akzent */
.download-card__stripe {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--card-accent);
  border-radius: 10px 10px 0 0;
  transition: height 0.35s cubic-bezier(0.34, 1.4, 0.64, 1);
}

/* Eselsohr (abgeklapptes Eckchen) */
.download-card__corner {
  position: absolute;
  top: 0;
  right: 0;
  width: 22px;
  height: 22px;
  background: linear-gradient(225deg,
    transparent 50%,
    rgba(103, 80, 57, 0.08) 50%,
    rgba(103, 80, 57, 0.14) 100%);
  border-bottom-left-radius: 4px;
  transition: width 0.3s ease, height 0.3s ease;
}

/* Icon */
.download-card__icon {
  display: block;
  width: 40px;
  height: 48px;
  color: var(--card-accent);
  margin-bottom: 14px;
  flex-shrink: 0;
  transition: transform 0.35s cubic-bezier(0.34, 1.4, 0.64, 1);
}
.download-card__icon svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

/* Titel */
.download-card__title {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.3;
  color: var(--c-dark);
  margin: 0 0 auto 0;
  letter-spacing: -0.005em;
}

/* Meta-Zeile (PDF-Tag + Pfeil) */
.download-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-top: 14px;
}

.download-card__format {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--card-accent);
  padding: 3px 8px;
  border-radius: 3px;
  background: var(--card-tint);
  border: 1px solid currentColor;
  text-transform: uppercase;
  line-height: 1;
}

.download-card__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  color: var(--card-accent);
  opacity: 0.45;
  transform: translateX(-4px);
  transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.34, 1.4, 0.64, 1);
}
.download-card__arrow svg {
  width: 14px;
  height: 14px;
}

/* === HOVER: Papier wird "angehoben" === */
.download-card:hover {
  transform: translateY(-5px) rotate(-0.7deg);
  box-shadow:
    0 2px 4px rgba(103, 80, 57, 0.08),
    0 12px 28px rgba(103, 80, 57, 0.12);
}
.download-card:hover::before {
  opacity: 1;
}
.download-card:hover .download-card__stripe {
  height: 6px;
}
.download-card:hover .download-card__corner {
  width: 28px;
  height: 28px;
}
.download-card:hover .download-card__icon {
  transform: translateY(-2px) scale(1.06);
}
.download-card:hover .download-card__arrow {
  opacity: 1;
  transform: translateX(2px);
}

/* Jede zweite Karte leicht entgegengesetzt rotieren — organischer */
.download-card:nth-child(2n):hover {
  transform: translateY(-5px) rotate(0.7deg);
}

/* Fokus-Ring (a11y) */
.download-card:focus-visible {
  outline: 3px solid var(--card-accent);
  outline-offset: 3px;
}

/* Datei noch nicht hochgeladen */
.download-card--unavailable {
  cursor: not-allowed;
  opacity: 0.55;
}
.download-card--unavailable:hover {
  transform: none;
}

.downloads__note {
  text-align: center;
  font-size: 0.875rem;
  color: var(--c-mid);
  font-style: italic;
  margin-top: 8px;
}

/* Reduced motion: keine Rotationen */
@media (prefers-reduced-motion: reduce) {
  .download-card,
  .download-card * {
    transition: opacity 0.2s ease !important;
  }
  .download-card:hover {
    transform: translateY(-3px) !important;
  }
}

/* ============================================
   DOWNLOAD BAR (Datenschutz auf Kontakt-Seite)
   - Single-Karte im selben Paper-Style wie Form-Card und Downloads-Grid
   ============================================ */
.download-bar {
  background: var(--c-warm-white);
  padding: 50px 0 70px;
}

.download-bar .container {
  max-width: 920px;
}

.download-bar__card {
  --bar-accent: var(--qkw-sky);
  --bar-tint: rgba(89, 138, 174, 0.10);

  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 22px 28px;
  background: linear-gradient(180deg, var(--qkw-cream-light) 0%, var(--qkw-cream-warm) 100%);
  border-radius: 12px;
  border: 1.5px solid rgba(89, 138, 174, 0.18);
  box-shadow:
    0 1px 2px rgba(103, 80, 57, 0.05),
    0 6px 18px rgba(103, 80, 57, 0.06);
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  transition:
    transform 0.35s cubic-bezier(0.34, 1.4, 0.64, 1),
    box-shadow 0.35s ease,
    background 0.35s ease,
    border-color 0.35s ease;
}

/* Akzent-Stripe links */
.download-bar__card::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 4px;
  background: var(--bar-accent);
  transition: width 0.3s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.download-bar__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  flex-shrink: 0;
  color: var(--bar-accent);
  background: var(--bar-tint);
  border-radius: 12px;
  transition: transform 0.35s cubic-bezier(0.34, 1.4, 0.64, 1);
}
.download-bar__icon svg {
  width: 32px;
  height: 38px;
  display: block;
}

.download-bar__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.download-bar__label {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bar-accent);
}
.download-bar__title {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--c-dark);
  line-height: 1.3;
  margin: 1px 0;
}
.download-bar__subtitle {
  font-family: var(--font-body);
  font-size: 0.88rem;
  color: var(--c-mid);
  line-height: 1.5;
}

.download-bar__cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 22px;
  background: var(--bar-accent);
  color: #ffffff;
  border-radius: 10px;
  font-weight: 600;
  font-size: 0.93rem;
  flex-shrink: 0;
  transition:
    background 0.3s ease,
    box-shadow 0.3s ease,
    transform 0.3s cubic-bezier(0.34, 1.4, 0.64, 1);
  white-space: nowrap;
}
.download-bar__cta-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
}
.download-bar__cta-icon svg {
  width: 100%;
  height: 100%;
  transition: transform 0.3s cubic-bezier(0.34, 1.4, 0.64, 1);
}

/* Hover */
.download-bar__card:hover {
  transform: translateY(-3px);
  background: linear-gradient(180deg, #ffffff 0%, var(--bar-tint) 100%);
  border-color: var(--bar-accent);
  box-shadow:
    0 2px 4px rgba(103, 80, 57, 0.08),
    0 14px 32px rgba(89, 138, 174, 0.15);
}
.download-bar__card:hover::before {
  width: 6px;
}
.download-bar__card:hover .download-bar__icon {
  transform: scale(1.08) rotate(-2deg);
}
.download-bar__card:hover .download-bar__cta {
  box-shadow: 0 6px 16px rgba(89, 138, 174, 0.32);
}
.download-bar__card:hover .download-bar__cta-icon svg {
  transform: translateY(2px);
}

/* Fokus für Keyboard-Nutzer */
.download-bar__card:focus-visible {
  outline: 3px solid var(--bar-accent);
  outline-offset: 3px;
}

/* Datei noch nicht hochgeladen */
.download-bar__card--unavailable {
  opacity: 0.6;
  cursor: not-allowed;
}
.download-bar__card--unavailable:hover {
  transform: none;
  box-shadow:
    0 1px 2px rgba(103, 80, 57, 0.05),
    0 6px 18px rgba(103, 80, 57, 0.06);
}

/* Mobile-Layout: Icon oben, Text mittig, Button unten */
@media (max-width: 640px) {
  .download-bar__card {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 22px 20px 24px;
    gap: 14px;
  }
  .download-bar__icon {
    margin: 0 auto;
  }
  .download-bar__cta {
    width: 100%;
    justify-content: center;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .download-bar__card,
  .download-bar__icon,
  .download-bar__cta-icon svg {
    transition: opacity 0.2s ease !important;
  }
  .download-bar__card:hover {
    transform: none !important;
  }
  .download-bar__card:hover .download-bar__icon {
    transform: none !important;
  }
}

/* ============================================
   CTA SECTION
   ============================================ */
.cta-section {
  background: var(--c-warm-white);
  padding: 60px 0;
  text-align: center;
}

.cta-section h2 {
  color: var(--c-terracotta);
  margin-bottom: 25px;
}

/* ============================================
   QUOTE FOOTER
   ============================================ */
.quote-footer {
  background: var(--c-warm-white);
  padding: 50px 0;
  text-align: center;
}

.quote-footer h2 {
  color: var(--c-terracotta);
  font-size: clamp(1.4rem, 3vw, 1.75rem);
}

/* ============================================
   SITE FOOTER
   ============================================ */
.site-footer {
  background: var(--c-warm-white);
  border-top: 1px solid var(--c-light-border);
  padding: 60px 0 0;
}

.footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1.2fr 1fr;
  gap: 40px;
}

.footer__col h4 {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.938rem;
  color: var(--c-dark);
  margin-bottom: 18px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.footer__logo { text-align: left; }
.footer__logo img { height: 100px !important; width: auto !important; margin-bottom: 12px; }

.footer__tagline {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  color: var(--c-terracotta);
  margin-bottom: 10px;
}

.footer__desc {
  font-size: 0.875rem;
  color: var(--c-mid);
  line-height: 1.6;
}

.footer__col nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer__col nav li {
  margin-bottom: 8px;
}

.footer__col nav a {
  font-size: 0.875rem;
  color: var(--c-mid);
  text-decoration: none;
  transition: color 0.3s ease;
}
.footer__col nav a:hover { color: var(--c-terracotta); }

.footer__col p {
  font-size: 0.875rem;
  color: var(--c-mid);
  line-height: 1.6;
}

.footer__col p a { color: var(--c-mid); }
.footer__col p a:hover { color: var(--c-terracotta); }

.footer__hours { margin-top: 12px; }
.footer__hours strong { color: var(--c-dark); font-size: 0.813rem; }

.footer__cta {
  margin-top: 18px;
  font-size: 0.813rem !important;
  padding: 10px 20px !important;
  display: inline-block;
}

.footer__bottom {
  margin-top: 40px;
  padding: 20px 0;
  border-top: 1px solid var(--c-light-border);
  text-align: center;
}

.footer__bottom p {
  font-size: 0.75rem;
  color: var(--c-mid);
  margin: 0;
}

/* ============================================
   CONTACT FORM (Paper-Card Style)
   ============================================ */

/* Form-Card: weicher Paper-Container */
.form-card {
  max-width: 1100px;
  margin: 0 auto;
  background: linear-gradient(180deg, #ffffff 0%, var(--qkw-cream-warm) 100%);
  border-radius: 16px;
  padding: 40px 52px;
  box-shadow:
    0 1px 3px rgba(103, 80, 57, 0.06),
    0 14px 40px rgba(103, 80, 57, 0.10);
  border: 1px solid rgba(232, 222, 197, 0.6);
}
@media (max-width: 600px) {
  .form-card { padding: 28px 22px; }
}

.form-card__header {
  text-align: center;
  margin-bottom: 32px;
}
.form-card__header h2 {
  margin: 0 0 8px 0;
}
.form-card__header p {
  margin: 0;
  color: var(--c-mid);
  font-size: 0.95rem;
  line-height: 1.6;
}

/* === INPUTS, TEXTAREA, SELECT === */
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form input[type="date"],
.contact-form textarea,
.contact-form select {
  width: 100%;
  font-family: var(--font-body);
  font-size: 1rem;
  padding: 13px 16px;
  border: 1.5px solid var(--qkw-border);
  border-radius: 10px;
  background: var(--qkw-cream-light);
  color: var(--c-dark);
  margin-bottom: 16px;
  transition:
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    background-color 0.25s ease;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: rgba(138, 116, 86, 0.55);
}

.contact-form input:hover,
.contact-form textarea:hover,
.contact-form select:hover {
  border-color: var(--qkw-soil-soft);
  background: #ffffff;
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus {
  outline: none;
  border-color: var(--c-terracotta);
  background: #ffffff;
  box-shadow: 0 0 0 4px rgba(239, 108, 80, 0.14);
}

.contact-form textarea {
  min-height: 140px;
  resize: vertical;
  line-height: 1.6;
}

.contact-form select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M7 9.5L2 4.5h10z' fill='%238B7355'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 42px;
  cursor: pointer;
}

/* === LABELS === */
.form-label {
  display: block;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--c-dark);
  margin-bottom: 8px;
  margin-top: 18px;
  letter-spacing: 0.01em;
}
.form-label__required {
  color: var(--c-terracotta);
  margin-left: 1px;
  font-weight: 700;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 600px) {
  .form-row { grid-template-columns: 1fr; }
}
.form-col { display: flex; flex-direction: column; }

/* === RADIO CARDS (Anliegen) === */
.form-radio-group {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 10px;
}
@media (max-width: 720px) {
  .form-radio-group { grid-template-columns: 1fr; }
}

.form-radio {
  --radio-accent: var(--qkw-leaf);
  --radio-tint: rgba(161, 180, 67, 0.10);
  position: relative;
  cursor: pointer;
  user-select: none;
  text-decoration: none;
  color: inherit;
  display: block;
  width: 100%;
}

/* Link-Variante: External-Indicator oben rechts */
.form-radio--link .form-radio__external {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 18px;
  height: 18px;
  color: var(--radio-accent);
  opacity: 0.5;
  z-index: 2;
  transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.34, 1.4, 0.64, 1);
}
.form-radio--link .form-radio__external svg {
  width: 100%;
  height: 100%;
  display: block;
}
.form-radio--link:hover .form-radio__external {
  opacity: 1;
  transform: translate(2px, -2px);
}
/* Link-Variante zeigt Akzent-Stripe permanent (kein Toggle-Verhalten) */
.form-radio--link .form-radio__stripe {
  height: 4px;
}

.form-radio input[type="radio"] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.form-radio__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  box-sizing: border-box;
  padding: 24px 14px 18px;
  min-height: 135px;
  border-radius: 10px;
  background: linear-gradient(180deg, var(--qkw-cream-light) 0%, var(--qkw-cream-warm) 100%);
  box-shadow:
    0 1px 2px rgba(103, 80, 57, 0.06),
    0 4px 12px rgba(103, 80, 57, 0.04);
  border: 2px solid transparent;
  overflow: hidden;
  isolation: isolate;
  transition:
    transform 0.35s cubic-bezier(0.34, 1.4, 0.64, 1),
    box-shadow 0.35s ease,
    background 0.35s ease,
    border-color 0.25s ease;
}

.form-radio__stripe {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 0;
  background: var(--radio-accent);
  border-radius: 10px 10px 0 0;
  transition: height 0.3s cubic-bezier(0.34, 1.4, 0.64, 1);
  z-index: 1;
}

.form-radio__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  color: var(--radio-accent);
  margin-bottom: 12px;
  opacity: 0.72;
  transition:
    opacity 0.3s ease,
    transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1);
}
.form-radio__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.form-radio__title {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.94rem;
  color: var(--c-dark);
  line-height: 1.3;
  transition: font-weight 0.2s ease, color 0.25s ease;
}

/* Hover */
.form-radio:hover .form-radio__inner {
  transform: translateY(-3px) rotate(-0.5deg);
  box-shadow:
    0 2px 4px rgba(103, 80, 57, 0.08),
    0 10px 22px rgba(103, 80, 57, 0.10);
}
.form-radio:nth-child(2n):hover .form-radio__inner {
  transform: translateY(-3px) rotate(0.5deg);
}
.form-radio:hover .form-radio__icon {
  opacity: 1;
}

/* Checked */
.form-radio input:checked ~ .form-radio__inner {
  background: linear-gradient(180deg, var(--qkw-cream-light) 0%, var(--radio-tint) 100%);
  border-color: var(--radio-accent);
  box-shadow:
    0 2px 6px rgba(103, 80, 57, 0.08),
    0 10px 24px rgba(103, 80, 57, 0.12);
}
.form-radio input:checked ~ .form-radio__inner .form-radio__stripe {
  height: 5px;
}
.form-radio input:checked ~ .form-radio__inner .form-radio__icon {
  opacity: 1;
  transform: scale(1.08);
}
.form-radio input:checked ~ .form-radio__inner .form-radio__title {
  font-weight: 700;
  color: var(--radio-accent);
}

/* Keyboard-Fokus */
.form-radio input:focus-visible ~ .form-radio__inner {
  outline: 3px solid var(--radio-accent);
  outline-offset: 3px;
}

/* === DAY-PICKER (Mo-Fr Pills) === */
.form-day-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
.form-day {
  cursor: pointer;
  user-select: none;
}
.form-day input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.form-day span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 50px;
  padding: 9px 14px;
  border-radius: 8px;
  background: var(--qkw-cream-light);
  border: 1.5px solid var(--qkw-border);
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--c-mid);
  transition: all 0.2s ease;
}
.form-day:hover span {
  border-color: var(--c-terracotta);
  background: #ffffff;
  color: var(--c-terracotta);
}
.form-day input:checked + span {
  background: var(--c-terracotta);
  border-color: var(--c-terracotta);
  color: #ffffff;
  box-shadow: 0 2px 6px rgba(239, 108, 80, 0.25);
}
.form-day input:focus-visible + span {
  outline: 3px solid var(--c-terracotta);
  outline-offset: 2px;
}

/* === CONSENT CHECKBOX (Datenschutz) === */
.form-consent {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 22px 0 10px;
  cursor: pointer;
  font-size: 0.93rem;
  line-height: 1.55;
  color: var(--c-dark);
}
.form-consent input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.form-consent__box {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  margin-top: 2px;
  border: 1.8px solid var(--qkw-soil-soft);
  border-radius: 6px;
  background: var(--qkw-cream-light);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  transition: all 0.2s ease;
}
.form-consent__box svg {
  width: 16px;
  height: 16px;
  opacity: 0;
  transform: scale(0.5);
  transition: opacity 0.2s ease, transform 0.25s cubic-bezier(0.34, 1.5, 0.64, 1);
}
.form-consent:hover .form-consent__box {
  border-color: var(--c-terracotta);
  background: #ffffff;
}
.form-consent input:checked + .form-consent__box {
  background: var(--c-terracotta);
  border-color: var(--c-terracotta);
}
.form-consent input:checked + .form-consent__box svg {
  opacity: 1;
  transform: scale(1);
}
.form-consent input:focus-visible + .form-consent__box {
  outline: 3px solid var(--c-terracotta);
  outline-offset: 2px;
}
.form-consent a {
  color: var(--c-terracotta);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

/* === CONDITIONAL FIELDS === */
.form-conditional {
  animation: slideDown 0.3s ease-out;
  background: rgba(232, 222, 197, 0.35);
  padding: 22px 22px 8px;
  border-radius: 10px;
  margin: 18px 0 8px;
  border-left: 3px solid var(--c-terracotta);
}
@keyframes slideDown {
  0% { opacity: 0; transform: translateY(-10px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* === SUBMIT BUTTON === */
.form-submit-wrap {
  text-align: center;
  margin-top: 28px;
}
.form-submit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 240px;
  padding: 14px 28px;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  transition:
    transform 0.3s cubic-bezier(0.34, 1.4, 0.64, 1),
    box-shadow 0.3s ease,
    background 0.3s ease;
}
.form-submit__arrow {
  width: 16px;
  height: 16px;
  transition: transform 0.3s cubic-bezier(0.34, 1.4, 0.64, 1);
}
.form-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(239, 108, 80, 0.28);
}
.form-submit:hover .form-submit__arrow {
  transform: translateX(4px);
}

/* === FLASH MESSAGES (success/error) === */
.form-flash {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 22px;
  border-radius: 12px;
  margin-bottom: 24px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}
.form-flash__icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  display: block;
}
.form-flash__icon svg {
  width: 100%;
  height: 100%;
}
.form-flash p {
  margin: 0;
  font-weight: 600;
  line-height: 1.5;
}
.form-flash--success {
  background: linear-gradient(180deg, rgba(161, 180, 67, 0.18) 0%, rgba(161, 180, 67, 0.32) 100%);
  color: #4a6f2a;
}
.form-flash--success .form-flash__icon { color: var(--qkw-leaf); }
.form-flash--error {
  background: linear-gradient(180deg, rgba(237, 108, 80, 0.15) 0%, rgba(237, 108, 80, 0.28) 100%);
  color: #8a3a1e;
}
.form-flash--error .form-flash__icon { color: var(--qkw-coral); }

/* === REDUCED MOTION === */
@media (prefers-reduced-motion: reduce) {
  .form-radio__inner,
  .form-radio__icon,
  .form-submit,
  .form-submit__arrow {
    transition: opacity 0.2s ease !important;
  }
  .form-radio:hover .form-radio__inner,
  .form-submit:hover {
    transform: none !important;
  }
}

/* ============================================
   DATENSCHUTZ PAGES (text heavy)
   ============================================ */
.text-page {
  background: var(--c-warm-white);
  padding: var(--section-padding) 0;
}

.text-page .container { max-width: 800px; }

.text-page h1 { margin-bottom: 10px; }
.text-page h2 {
  color: var(--c-terracotta);
  margin-top: 40px;
  margin-bottom: 15px;
}
.text-page h3 { margin-top: 25px; margin-bottom: 10px; }

.text-page table {
  width: 100%;
  border-collapse: collapse;
  margin: 15px 0 25px;
  font-size: 0.938rem;
}
.text-page th {
  background: var(--c-terracotta);
  color: #fff;
  font-weight: 600;
  text-align: left;
  padding: 10px 14px;
}
.text-page td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--c-light-border);
}
.text-page tr:nth-child(even) { background: var(--c-beige); }

.text-page ul {
  padding-left: 20px;
  margin-bottom: 15px;
}
.text-page li {
  margin-bottom: 6px;
  line-height: 1.7;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 980px) {
  .hero .container,
  .content-block .container,
  .team-section .container { grid-template-columns: 1fr; gap: 30px; }

  .content-block--reverse .content-block__text { order: 0; }

  .values-bar__grid { grid-template-columns: repeat(2, 1fr); }
  .image-cards__grid { grid-template-columns: 1fr; max-width: 500px; margin: 0 auto; }
  .info-cards__grid { grid-template-columns: repeat(2, 1fr); }
  .downloads__grid { grid-template-columns: repeat(3, 1fr); }
  .map-section .container { grid-template-columns: 1fr; }
  .map-section__welcome { display: none; }

  .footer__grid { grid-template-columns: 1fr 1fr; gap: 30px; }
}

@media (max-width: 768px) {
  :root { --section-padding: 50px; }

  .values-bar__grid { grid-template-columns: 1fr 1fr; }
  .info-cards__grid { grid-template-columns: 1fr; }
  .downloads__grid { grid-template-columns: repeat(2, 1fr); }
  .team-section__photos { grid-template-columns: repeat(2, 1fr); }

  h1 { font-size: 2rem; }
}

@media (max-width: 480px) {
  .values-bar__grid { grid-template-columns: 1fr; }
  .downloads__grid { grid-template-columns: 1fr 1fr; }
}

/* ============================================
   BREADCRUMBS
   ============================================ */
.breadcrumbs {
  background: var(--c-warm-white);
  padding: 12px 0;
  font-size: 0.813rem;
  color: var(--c-mid);
  border-bottom: 1px solid var(--c-light-border);
}
.breadcrumbs a { color: var(--c-terracotta); }
.breadcrumbs__sep { margin: 0 8px; color: var(--c-light-border); }
.breadcrumbs__current { color: var(--c-dark); }

/* ============================================
   FOOTER MOBILE
   ============================================ */
@media (max-width: 768px) {
  .footer__grid {
    grid-template-columns: 1fr;
    gap: 30px;
    text-align: center;
  }
  .footer__col h4 { margin-bottom: 12px; }
  .footer__logo { display: flex; justify-content: center; }
}

/* ============================================
   MAP SECTION TWO COLUMN (no welcome image)
   ============================================ */
.map-section--two-col .container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 768px) {
  .map-section--two-col .container { grid-template-columns: 1fr; }
}

/* ============================================
   SOCIAL MEDIA ICONS
   ============================================ */
.footer__social {
    display: flex;
    gap: 12px;
    margin-top: 15px;
}
.footer__social-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid var(--c-light-border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--c-mid);
    transition: all 0.3s ease;
}
.footer__social-icon:hover {
    background: var(--c-terracotta);
    border-color: var(--c-terracotta);
    color: #fff;
    transform: translateY(-2px);
}

@media (max-width: 768px) {
    .footer__social { justify-content: center; }
}

/* ============================================
   HEADER VARIANTS
   ============================================ */
.site-header--sticky {
    position: sticky;
    top: 0;
    z-index: 1000;
}

.site-header--transparent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: transparent;
    box-shadow: none;
    transition: background 0.3s ease, box-shadow 0.3s ease;
}
.site-header--transparent.scrolled {
    position: fixed;
    background: var(--c-warm-white);
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

/* ============================================
   BACK TO TOP
   ============================================ */
.back-to-top {
    position: fixed;
    bottom: 25px;
    right: 25px;
    z-index: 9990;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--c-terracotta);
    color: #fff;
    border: none;
    cursor: pointer;
    font-size: 1.2rem;
    box-shadow: 0 3px 15px rgba(0,0,0,0.15);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.3s ease;
}
.back-to-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.back-to-top:hover {
    background: var(--c-cta);
    transform: translateY(-3px);
}

/* ============================================
   SEARCH OVERLAY
   ============================================ */
.search-toggle {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.1rem;
    padding: 8px;
    color: var(--c-dark);
    transition: color 0.3s ease;
}
.search-toggle:hover { color: var(--c-terracotta); }

.search-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.7);
    z-index: 99999;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 20vh;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    backdrop-filter: blur(5px);
}
.search-overlay.active {
    opacity: 1;
    visibility: visible;
}

.search-overlay__inner {
    background: var(--c-warm-white);
    border-radius: 16px;
    padding: 30px;
    width: 90%;
    max-width: 600px;
    position: relative;
    transform: translateY(-20px);
    transition: transform 0.3s ease;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.search-overlay.active .search-overlay__inner {
    transform: translateY(0);
}

.search-overlay__input {
    width: 100%;
    font-family: var(--font-body);
    font-size: 1.25rem;
    padding: 15px 20px;
    border: 2px solid var(--c-light-border);
    border-radius: 12px;
    background: #fff;
    color: var(--c-dark);
    outline: none;
    transition: border-color 0.3s ease;
}
.search-overlay__input:focus {
    border-color: var(--c-terracotta);
}
.search-overlay__input::placeholder {
    color: var(--c-mid);
}

.search-overlay__close {
    position: absolute;
    top: 10px;
    right: 15px;
    background: none;
    border: none;
    font-size: 2rem;
    cursor: pointer;
    color: var(--c-mid);
    padding: 5px;
    line-height: 1;
}
.search-overlay__close:hover { color: var(--c-dark); }

/* ============================================
   TEAM MEMBER CARDS
   ============================================ */
.team-member {
    text-align: center;
}
.team-member img {
    border-radius: 12px;
    width: 100%;
    aspect-ratio: 3/4;
    object-fit: cover;
}
.team-member__name {
    margin-top: 10px;
    font-weight: 700;
    font-size: 0.938rem;
    color: var(--c-dark);
}
.team-member__role {
    font-size: 0.813rem;
    color: var(--c-mid);
    margin-top: 2px;
}

/* ============================================
   PRINT STYLES
   ============================================ */
@media print {
    .site-header, .site-footer, .menu-toggle, .header-cta,
    .back-to-top, .ambient-btn, .search-overlay, .search-toggle,
    .interactive-tree, .qdkw-loader, .breadcrumbs,
    .btn--primary, .download-bar, .contact-form,
    #kontaktformular, .map-section iframe { display: none !important; }

    body {
        background: #fff !important;
        color: #000 !important;
        font-size: 12pt;
        line-height: 1.5;
    }

    .container, .container--wide {
        max-width: 100% !important;
        width: 100% !important;
    }

    .hero .container,
    .content-block .container,
    .team-section .container {
        grid-template-columns: 1fr !important;
    }

    .hero__image, .content-block__image { max-width: 300px; }
    .hero__image img, .content-block__image img { border-radius: 0; box-shadow: none; }

    h1, h2, h3 { color: #000 !important; page-break-after: avoid; }
    a { color: #000 !important; text-decoration: underline; }
    a[href]:after { content: " (" attr(href) ")"; font-size: 0.8em; color: #666; }
    a[href^="/"]:after { content: " (https://quellederkleinenwunder.ch" attr(href) ")"; }
    a[href^="#"]:after { content: ""; }

    .text-page table { border: 1px solid #ccc; }
    .text-page th { background: #eee !important; color: #000 !important; }

    .values-bar, .image-cards, .cta-section, .quote-footer {
        background: #fff !important;
        border-top: 1px solid #eee;
    }

    @page { margin: 2cm; }
}

/* ============================================
   MATH CAPTCHA
   ============================================ */
.form-captcha {
    background: var(--c-beige);
    border: 1px solid var(--c-light-border);
    border-radius: 10px;
    padding: 15px 20px;
    margin: 15px 0;
}
.form-captcha input[type="number"] {
    margin-top: 6px;
    -moz-appearance: textfield;
}
.form-captcha input::-webkit-outer-spin-button,
.form-captcha input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* ============================================
   HERO INLINE LOGO
   ============================================ */
.hero__logo-inline {
    display: block;
    margin-top: 5px;
    margin-bottom: 20px;
    text-align: left;
}
.hero__logo-inline img {
    height: clamp(60px, 8vw, 100px);
    width: auto;
    filter: drop-shadow(0 2px 8px rgba(0,0,0,0.08));
}


/* ============================================
   HERO ANIMIERTES LOGO (Willkommenseite)
   - Inline-SVG mit gestaffelten Animationen
   - Idle-Breathing der Blätter nach Entrance
   - Respektiert prefers-reduced-motion
   ============================================ */
.hero__logo-inline--animated {
    display: inline-block;
    position: relative;
    margin-top: 5px;
    margin-bottom: 20px;
    text-align: left;
    line-height: 0;
}

.hero__logo-inline--animated svg {
    height: clamp(70px, 9.5vw, 120px);
    width: auto;
    max-width: 100%;
    filter: drop-shadow(0 2px 8px rgba(0,0,0,0.08));
    overflow: visible;
    position: relative;
    z-index: 1;
}

/* Alle animierbaren Elemente: transform-box auf fill-box,
   damit transform-origin sich am eigenen BBox des Elements orientiert */
.hero__logo-inline--animated svg #d,
.hero__logo-inline--animated svg #e,
.hero__logo-inline--animated svg #f,
.hero__logo-inline--animated svg #g,
.hero__logo-inline--animated svg #j,
.hero__logo-inline--animated svg #k > * {
    transform-box: fill-box;
    transform-origin: center;
}

/* --- BAUMSTAMM: waechst von unten --- */
.hero__logo-inline--animated svg #j {
    transform-origin: 50% 95%;
    opacity: 0;
    animation: qdkwTreeGrow 1s cubic-bezier(0.22, 1, 0.36, 1) 0.2s forwards;
}

/* --- BLAETTER: bluehen einzeln auf + endloses Idle-Wiegen --- */
.hero__logo-inline--animated svg #k > * {
    opacity: 0;
    animation:
        qdkwLeafBloom 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) forwards,
        qdkwLeafBreathe 5s ease-in-out infinite;
}
/* Delays: bloom-delay, idle-delay (Idle muss NACH Bloom starten = bloom-delay + 0.7s) */
.hero__logo-inline--animated svg #l { animation-delay: 0.85s, 2.5s; }
.hero__logo-inline--animated svg #m { animation-delay: 0.95s, 2.8s; }
.hero__logo-inline--animated svg #n { animation-delay: 1.00s, 2.4s; }
.hero__logo-inline--animated svg #o { animation-delay: 1.05s, 2.7s; }
.hero__logo-inline--animated svg #p { animation-delay: 1.15s, 3.0s; }
.hero__logo-inline--animated svg #q { animation-delay: 1.20s, 2.6s; }
.hero__logo-inline--animated svg #r { animation-delay: 1.30s, 2.9s; }
.hero__logo-inline--animated svg #s { animation-delay: 1.35s, 3.1s; }
.hero__logo-inline--animated svg #t { animation-delay: 1.45s, 2.55s; }

/* --- WASSER/WELLE: fadet ein und schwingt dann sanft --- */
.hero__logo-inline--animated svg #g {
    opacity: 0;
    animation:
        qdkwWaveAppear 0.9s ease-out 1.6s forwards,
        qdkwWaveFloat 4.5s ease-in-out 2.6s infinite;
}

/* --- TEXT-GRUPPEN: fadet sequentiell von links nach rechts ein --- */
.hero__logo-inline--animated svg #d,
.hero__logo-inline--animated svg #e,
.hero__logo-inline--animated svg #f {
    opacity: 0;
    animation: qdkwTextFade 0.7s ease-out forwards;
}
.hero__logo-inline--animated svg #f { animation-delay: 1.85s; } /* "Quelle der" links */
.hero__logo-inline--animated svg #e { animation-delay: 2.05s; } /* "kleinen" mitte  */
.hero__logo-inline--animated svg #d { animation-delay: 2.25s; } /* "Wunder"  rechts */

/* --- KEYFRAMES --- */
@keyframes qdkwTreeGrow {
    0%   { opacity: 0; transform: scaleY(0.2) scaleX(0.85); }
    60%  { opacity: 1; }
    100% { opacity: 1; transform: scaleY(1) scaleX(1); }
}
@keyframes qdkwLeafBloom {
    0%   { opacity: 0; transform: scale(0) rotate(-12deg); }
    65%  { opacity: 1; transform: scale(1.12) rotate(4deg); }
    100% { opacity: 1; transform: scale(1) rotate(0deg); }
}
/* Idle-Atmen der Blätter — kontinuierliches subtiles Wiegen */
@keyframes qdkwLeafBreathe {
    0%, 100% { transform: translate(0, 0) rotate(0deg) scale(1); }
    25%      { transform: translate(0.4px, -0.3px) rotate(2deg) scale(1.02); }
    50%      { transform: translate(0, -0.5px) rotate(0deg) scale(1.01); }
    75%      { transform: translate(-0.4px, -0.3px) rotate(-2deg) scale(1.02); }
}
@keyframes qdkwWaveAppear {
    0%   { opacity: 0; transform: translateY(6px); }
    100% { opacity: 1; transform: translateY(0); }
}
@keyframes qdkwWaveFloat {
    0%, 100% { transform: translateY(0)   scaleX(1); }
    50%      { transform: translateY(-1.5px) scaleX(1.015); }
}
@keyframes qdkwTextFade {
    0%   { opacity: 0; transform: translateY(4px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* Reduced motion: alles statisch und sofort sichtbar */
@media (prefers-reduced-motion: reduce) {
    .hero__logo-inline--animated svg #d,
    .hero__logo-inline--animated svg #e,
    .hero__logo-inline--animated svg #f,
    .hero__logo-inline--animated svg #g,
    .hero__logo-inline--animated svg #j,
    .hero__logo-inline--animated svg #k > * {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}

/* ============================================
   COOKIE BANNER (centered modal)
   ============================================ */
.qdkw-cookie-backdrop {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(40, 30, 20, 0.35);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    animation: qdkw-cookie-fade 0.25s ease-out;
}

.qdkw-cookie-backdrop[hidden] {
    display: none;
}

.qdkw-cookie-banner {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10000;
    width: min(440px, calc(100vw - 32px));
    background: #FFFDF8;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    padding: 28px 28px 22px;
    text-align: center;
    animation: qdkw-cookie-pop 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.qdkw-cookie-banner[hidden] {
    display: none;
}

@keyframes qdkw-cookie-fade {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes qdkw-cookie-pop {
    from { opacity: 0; transform: translate(-50%, -50%) scale(0.94); }
    to   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

.qdkw-cookie-banner__title {
    font-size: 1.15rem;
    margin: 0 0 10px 0;
    color: var(--qkw-soil, #675039);
}

.qdkw-cookie-banner__text {
    margin: 0 0 20px 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--qkw-soil, #675039);
}

.qdkw-cookie-banner__actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 14px;
}

.qdkw-cookie-banner__actions .btn {
    width: 100%;
    justify-content: center;
}

.qdkw-cookie-banner__footer {
    margin: 0;
    font-size: 0.8rem;
}

.qdkw-cookie-banner__footer a {
    color: var(--qkw-soil, #675039);
    opacity: 0.75;
    text-decoration: underline;
}

.qdkw-cookie-banner__footer a:hover {
    opacity: 1;
}

@media (max-width: 480px) {
    .qdkw-cookie-banner {
        padding: 22px 20px 18px;
    }
}

/* ============================================
   404 PAGE
   ============================================ */
.qdkw-404 {
    background: var(--c-beige, #FAF6E4);
    padding: 60px 0 80px;
    min-height: 70vh;
    display: flex;
    align-items: center;
}

.qdkw-404__inner {
    max-width: 680px;
    margin: 0 auto;
    text-align: center;
}

.qdkw-404__visual {
    margin: 0 auto 24px;
    max-width: 180px;
    line-height: 0;
    opacity: 0.95;
}

.qdkw-404__visual svg {
    width: 100%;
    height: auto;
    filter: drop-shadow(0 6px 18px rgba(103, 80, 57, 0.12));
}

.qdkw-404__eyebrow {
    font-size: 0.82rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--qkw-coral, #ED6C50);
    margin: 0 0 12px;
    font-weight: 600;
}

.qdkw-404__title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    color: var(--qkw-soil, #675039);
    margin: 0 0 18px;
    line-height: 1.2;
}

.qdkw-404__text {
    font-size: 1.05rem;
    line-height: 1.6;
    color: var(--qkw-soil, #675039);
    margin: 0 auto 30px;
    max-width: 520px;
    opacity: 0.9;
}

.qdkw-404__search {
    max-width: 420px;
    margin: 0 auto 28px;
}

.qdkw-404__search form,
.qdkw-404__search .search-form {
    display: flex;
    gap: 8px;
}

.qdkw-404__search input[type="search"] {
    flex: 1;
    padding: 12px 16px;
    border: 1px solid #d8ccb0;
    border-radius: 999px;
    font: inherit;
    background: #fff;
    color: var(--qkw-soil, #675039);
    outline: none;
    transition: border-color 0.2s;
}

.qdkw-404__search input[type="search"]:focus {
    border-color: var(--qkw-coral, #ED6C50);
}

.qdkw-404__search input[type="submit"],
.qdkw-404__search button {
    padding: 12px 20px;
    border: none;
    border-radius: 999px;
    background: var(--qkw-soil, #675039);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
    font: inherit;
    transition: background 0.2s;
}

.qdkw-404__search input[type="submit"]:hover,
.qdkw-404__search button:hover {
    background: var(--qkw-coral, #ED6C50);
}

.qdkw-404__actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 50px;
}

.qdkw-404__links {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px solid #e8dec5;
}

.qdkw-404__links-title {
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--qkw-soil, #675039);
    opacity: 0.7;
    margin: 0 0 16px;
    font-weight: 600;
}

.qdkw-404__links ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    justify-content: center;
}

.qdkw-404__links a {
    color: var(--qkw-sky, #598AAE);
    text-decoration: none;
    font-size: 0.95rem;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s;
}

.qdkw-404__links a:hover {
    border-bottom-color: var(--qkw-sky, #598AAE);
}

@media (max-width: 540px) {
    .qdkw-404 { padding: 40px 0 60px; }
    .qdkw-404__visual { max-width: 140px; }
    .qdkw-404__search form,
    .qdkw-404__search .search-form { flex-direction: column; }
    .qdkw-404__actions { flex-direction: column; align-items: stretch; }
    .qdkw-404__actions .btn { width: 100%; }
}

/* ============================================
   ATELIER — Interaktives Element
   ============================================ */
.qdkw-at {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.qdkw-at[hidden] { display: none; }

.qdkw-at__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(40, 30, 20, 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    animation: qdkw-at-fade 0.3s ease;
}

.qdkw-at__stage {
    position: relative;
    width: 100%;
    max-width: 960px;
    height: 92vh;
    max-height: 900px;
    background: #FFFDF8;
    border-radius: 18px;
    box-shadow: 0 30px 80px rgba(0,0,0,0.35);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    animation: qdkw-at-pop 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes qdkw-at-fade { from { opacity: 0 } to { opacity: 1 } }
@keyframes qdkw-at-pop {
    from { opacity: 0; transform: scale(0.94) translateY(8px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

.qdkw-at__close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: none;
    background: rgba(103, 80, 57, 0.1);
    color: var(--qkw-soil, #675039);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    z-index: 5;
    transition: background 0.2s;
}
.qdkw-at__close:hover { background: rgba(237, 108, 80, 0.2); }

/* Intro + End screens */
.qdkw-at__intro,
.qdkw-at__end {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 32px;
    text-align: center;
}

/* Wichtig: hidden-Attribut muss display:flex ueberstimmen */
.qdkw-at__intro[hidden],
.qdkw-at__session[hidden],
.qdkw-at__end[hidden] {
    display: none !important;
}

.qdkw-at__eyebrow {
    font-size: 0.82rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--qkw-coral, #ED6C50);
    font-weight: 600;
    margin: 0 0 10px;
}

.qdkw-at__title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.6rem, 4vw, 2.4rem);
    color: var(--qkw-soil, #675039);
    margin: 0 0 18px;
    line-height: 1.2;
}

.qdkw-at__small { font-size: 0.6em; opacity: 0.7; }

.qdkw-at__lead {
    font-size: 1.02rem;
    line-height: 1.55;
    color: var(--qkw-soil, #675039);
    max-width: 460px;
    margin: 0 0 18px;
    opacity: 0.92;
}

.qdkw-at__hint {
    font-size: 0.88rem;
    color: var(--qkw-soil, #675039);
    opacity: 0.7;
    margin: 0 0 24px;
}

.qdkw-at__start { margin-top: 8px; }

.qdkw-at__choices {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    width: 100%;
    max-width: 480px;
    margin: 12px 0 18px;
}

.qdkw-at__choice {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 18px 14px;
    background: #fff;
    border: 2px solid #e8dec5;
    border-radius: 14px;
    cursor: pointer;
    color: var(--qkw-soil, #675039);
    font: inherit;
    text-align: center;
    transition: border-color 0.2s, transform 0.15s, background 0.2s;
}

.qdkw-at__choice:hover {
    border-color: var(--qkw-coral, #ED6C50);
    transform: translateY(-2px);
}

.qdkw-at__choice.is-selected {
    border-color: var(--qkw-coral, #ED6C50);
    background: rgba(237, 108, 80, 0.06);
}

.qdkw-at__choice-icon {
    font-size: 2rem;
    line-height: 1;
}

.qdkw-at__choice-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.05rem;
    font-weight: 600;
}

.qdkw-at__choice-desc {
    font-size: 0.82rem;
    line-height: 1.4;
    opacity: 0.8;
}

[data-qdkw-at-hud-cell][hidden] { display: none !important; }

@media (max-width: 540px) {
    .qdkw-at__choices { grid-template-columns: 1fr; }
}

.qdkw-at__best {
    margin-top: 18px;
    font-size: 0.85rem;
    color: var(--qkw-leaf, #A1B443);
    font-weight: 600;
    min-height: 1.2em;
}

.qdkw-at__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 18px;
}

/* Session screen */
.qdkw-at__session {
    flex: 1;
    display: flex;
    flex-direction: column;
    position: relative;
    min-height: 0;
}

.qdkw-at__hud {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    padding: 14px 20px;
    background: rgba(255, 253, 248, 0.85);
    border-bottom: 1px solid #f0e6cf;
    z-index: 2;
}

.qdkw-at__hud-item { display: flex; flex-direction: column; align-items: flex-start; }
.qdkw-at__hud-item--center { align-items: center; }
.qdkw-at__hud-item:last-child { align-items: flex-end; }

.qdkw-at__lives {
    color: #c43025;
    letter-spacing: 2px;
}

.qdkw-at__hud-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--qkw-soil, #675039);
    opacity: 0.6;
}
.qdkw-at__hud-value {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.4rem;
    color: var(--qkw-soil, #675039);
    font-weight: 600;
}

.qdkw-at__canvas {
    flex: 1;
    display: block;
    width: 100%;
    min-height: 0;
    touch-action: none;
    background: #FFFDF8;
    cursor: default;
}

.qdkw-at__canvas--hide-cursor { cursor: none; }
.qdkw-at__canvas--tap         { cursor: pointer; }

@media (max-width: 540px) {
    .qdkw-at { padding: 10px; }
    .qdkw-at__stage { height: 90vh; border-radius: 14px; }
    .qdkw-at__intro, .qdkw-at__end { padding: 28px 20px; }
}

/* ============================================
   OPENING BANNER (fade-in)
   ============================================ */
.opening-banner {
    background: linear-gradient(135deg, var(--qkw-coral, #ED6C50) 0%, #d75839 100%);
    color: #fff;
    text-align: center;
    padding: 10px 16px;
    font-size: 0.92rem;
    line-height: 1.4;
    opacity: 0;
    transform: translateY(-6px);
    animation: qdkw-banner-fade 0.9s ease-out 0.4s forwards;
    position: relative;
    z-index: 1001;
}

@keyframes qdkw-banner-fade {
    to { opacity: 1; transform: translateY(0); }
}

.opening-banner__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: center;
    justify-content: center;
}

.opening-banner__icon { font-size: 1.05rem; }

.opening-banner__text { font-weight: 500; letter-spacing: 0.01em; }

.opening-banner__eyebrow {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.78rem;
    opacity: 0.95;
}

/* Multi-Slide-Rotation im Slim-Banner */
.opening-banner[data-count] { position: relative; }
.opening-banner__slide {
    display: none;
    transition: opacity 0.4s ease;
}
.opening-banner__slide.is-active { display: block; }

.opening-banner__dots {
    display: flex;
    justify-content: center;
    gap: 6px;
    padding: 0 0 6px;
}
.opening-banner__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.4);
    padding: 0;
    cursor: pointer;
    transition: background 0.2s, transform 0.2s;
}
.opening-banner__dot:hover { background: rgba(255, 255, 255, 0.7); }
.opening-banner__dot.is-active { background: #fff; transform: scale(1.3); }

.opening-banner__cta {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 600;
}
.opening-banner__cta:hover { opacity: 0.85; }

@media (prefers-reduced-motion: reduce) {
    .opening-banner { opacity: 1; transform: none; animation: none; }
}

@media (max-width: 600px) {
    .opening-banner { font-size: 0.85rem; }
    .opening-banner__inner { gap: 4px 10px; }
}

/* ============================================
   OPENING MODAL (gross, zentriert, klickbar weg)
   ============================================ */
.opening-modal {
    position: fixed;
    inset: 0;
    z-index: 10500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    transition: opacity 0.35s ease;
}
.opening-modal.is-visible { opacity: 1; }
.opening-modal[hidden]    { display: none; }

.opening-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(30, 22, 14, 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.opening-modal__card {
    position: relative;
    width: 100%;
    max-width: 540px;
    background: linear-gradient(160deg, #FFFDF8 0%, #FAF6E4 100%);
    border-radius: 20px;
    box-shadow: 0 30px 90px rgba(40, 20, 0, 0.4);
    padding: 44px 36px 36px;
    text-align: center;
    transform: scale(0.94) translateY(10px);
    transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Grid-Variante (Multi-News) */
.opening-modal--grid .opening-modal__card {
    max-width: 900px;
    padding: 38px 36px 36px;
    max-height: 92vh;
    overflow-y: auto;
}
.opening-modal.is-visible .opening-modal__card { transform: scale(1) translateY(0); }

.opening-modal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 50%;
    background: rgba(103, 80, 57, 0.1);
    color: var(--qkw-soil, #675039);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s;
}
.opening-modal__close:hover { background: rgba(237, 108, 80, 0.2); }

.opening-modal__logo {
    width: 110px;
    margin: 0 auto 16px;
    line-height: 0;
}
.opening-modal__logo svg {
    width: 100%;
    height: auto;
    filter: drop-shadow(0 6px 16px rgba(103, 80, 57, 0.15));
}

.opening-modal__eyebrow {
    font-size: 0.82rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--qkw-coral, #ED6C50);
    font-weight: 600;
    margin: 0 0 10px;
}

.opening-modal__title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.6rem, 4vw, 2.2rem);
    line-height: 1.2;
    color: var(--qkw-soil, #675039);
    margin: 0 0 14px;
}

.opening-modal__sub {
    font-size: 1rem;
    line-height: 1.55;
    color: var(--qkw-soil, #675039);
    opacity: 0.85;
    margin: 0 auto 20px;
    max-width: 420px;
}

.opening-modal__meta {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0 auto 24px;
    padding: 14px 18px;
    background: rgba(237, 108, 80, 0.06);
    border-left: 3px solid var(--qkw-coral, #ED6C50);
    border-radius: 8px;
    max-width: 360px;
    text-align: left;
}

.opening-modal__meta-item {
    display: flex;
    gap: 10px;
    align-items: center;
    font-size: 0.92rem;
    color: var(--qkw-soil, #675039);
    line-height: 1.4;
}

.opening-modal__meta-icon {
    font-size: 1rem;
    flex-shrink: 0;
}

.opening-modal__cta {
    min-width: 200px;
}

/* Header im Grid-Modal */
.opening-modal__header {
    text-align: center;
    margin-bottom: 24px;
}
.opening-modal__headline-eyebrow {
    font-size: 0.78rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--qkw-coral, #ED6C50);
    font-weight: 600;
    margin: 0 0 6px;
}
.opening-modal__headline {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.4rem, 3vw, 1.9rem);
    color: var(--qkw-soil, #675039);
    margin: 0;
    line-height: 1.2;
}

/* News-Grid */
.opening-modal__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 8px;
}

/* News-Karte */
.opening-news-card {
    background: #fff;
    border: 1px solid #e8dec5;
    border-radius: 14px;
    padding: 22px 22px 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: border-color 0.2s, transform 0.15s, box-shadow 0.2s;
    text-align: left;
}
.opening-news-card:hover {
    border-color: var(--qkw-coral, #ED6C50);
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(40, 20, 0, 0.08);
}

.opening-news-card__eyebrow {
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--qkw-coral, #ED6C50);
    font-weight: 700;
    margin: 0;
}

.opening-news-card__title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.2rem;
    color: var(--qkw-soil, #675039);
    margin: 0;
    line-height: 1.3;
}

.opening-news-card__sub {
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--qkw-soil, #675039);
    opacity: 0.85;
    margin: 0;
}

.opening-news-card__meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 12px;
    background: rgba(237, 108, 80, 0.06);
    border-left: 3px solid var(--qkw-coral, #ED6C50);
    border-radius: 6px;
    margin-top: 4px;
}
.opening-news-card__meta-item {
    display: flex;
    gap: 8px;
    align-items: center;
    font-size: 0.85rem;
    color: var(--qkw-soil, #675039);
    line-height: 1.35;
}
.opening-news-card__meta-icon { font-size: 0.9rem; flex-shrink: 0; }

.opening-news-card__cta {
    margin-top: auto;
    color: var(--qkw-coral, #ED6C50);
    font-weight: 600;
    font-size: 0.92rem;
    text-decoration: none;
    align-self: flex-start;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s;
}
.opening-news-card__cta:hover {
    border-bottom-color: var(--qkw-coral, #ED6C50);
}

@media (max-width: 720px) {
    .opening-modal--grid .opening-modal__card { padding: 32px 22px 24px; }
    .opening-modal__grid { grid-template-columns: 1fr; gap: 12px; }
    .opening-news-card { padding: 18px 18px 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .opening-modal,
    .opening-modal__card { transition: none; transform: none; }
}

@media (max-width: 540px) {
    .opening-modal__card { padding: 36px 22px 26px; border-radius: 16px; }
    .opening-modal__logo { width: 88px; }
    .opening-modal__cta { width: 100%; }
}

/* ============================================
   SYMBOLBILD-MARKIERUNG (CSS-only)
   ============================================ */
body.qdkw-symbolic .hero__image,
body.qdkw-symbolic .content-block__image,
body.qdkw-symbolic .image-card,
body.qdkw-symbolic .map-section__map {
    position: relative;
}

body.qdkw-symbolic .hero__image::after,
body.qdkw-symbolic .content-block__image::after,
body.qdkw-symbolic .image-card::after {
    content: 'Symbolbild';
    position: absolute;
    bottom: 10px;
    right: 10px;
    background: rgba(40, 30, 20, 0.7);
    color: #fff;
    padding: 4px 10px;
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 4px;
    pointer-events: none;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    z-index: 2;
}

/* Maps placeholder */
.qdkw-maps-placeholder {
    background: var(--c-beige, #FAF6E4);
    border: 2px dashed #D4C8A8;
    border-radius: 12px;
    padding: 32px 24px;
    text-align: center;
    min-height: 350px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
}
.qdkw-maps-placeholder p {
    margin: 0;
    max-width: 480px;
    color: var(--qkw-soil, #675039);
    font-size: 0.95rem;
}
.qdkw-maps-placeholder .btn {
    margin-top: 12px;
}



/* ============================================
   STELLEN-SEITE
   ============================================ */

.stellen-hero {
    background: var(--c-beige, #FAF6E4);
    padding: 80px 0 60px;
    text-align: center;
    border-bottom: 1px solid rgba(161,180,67,0.15);
}
.stellen-hero__eyebrow {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--qkw-coral, #ED6C50);
    margin-bottom: 10px;
}
.stellen-hero__title {
    font-family: 'Playfair Display', serif;
    font-size: clamp(2rem, 5vw, 3rem);
    color: var(--qkw-soil, #675039);
    margin-bottom: 16px;
}
.stellen-hero__sub {
    font-size: 1.05rem;
    color: var(--qkw-soil, #675039);
    opacity: 0.75;
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.7;
}

.stellen-list { padding: 64px 0 80px; }

.stellen-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 24px;
    margin-bottom: 64px;
}

.stelle-card {
    background: #fff;
    border-radius: 20px;
    padding: 28px 28px 24px;
    box-shadow: 0 4px 20px rgba(40,25,10,0.06);
    border: 1px solid rgba(161,180,67,0.12);
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: transform 0.2s, box-shadow 0.2s;
}
.stelle-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 32px rgba(40,25,10,0.1);
}
.stelle-card__eyebrow {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--qkw-coral, #ED6C50);
    margin: 0;
}
.stelle-card__title {
    font-family: 'Playfair Display', serif;
    font-size: 1.25rem;
    color: var(--qkw-soil, #675039);
    margin: 0;
    line-height: 1.35;
}
.stelle-card__title a { color: inherit; text-decoration: none; }
.stelle-card__title a:hover { color: var(--qkw-coral, #ED6C50); }

.stelle-card__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.stelle-card__deadline {
    font-size: 0.82rem;
    color: var(--qkw-soil, #675039);
    opacity: 0.7;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 5px;
}

.stelle-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 20px;
}
.stelle-tag--pensum  { background: rgba(237,108,80,0.1); color: #c85a3e; }
.stelle-tag--ort     { background: rgba(89,138,174,0.1); color: #4A7A8E; }
.stelle-tag--start   { background: rgba(161,180,67,0.12); color: #6a8c5a; }
.stelle-tag--befristung { background: rgba(106,163,150,0.12); color: #5a8a7e; }

.stelle-card__link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--qkw-coral, #ED6C50);
    text-decoration: none;
    margin-top: auto;
    transition: gap 0.2s;
}
.stelle-card__link:hover { gap: 9px; }

.stellen-empty {
    text-align: center;
    padding: 60px 24px;
}
.stellen-empty__icon { font-size: 3rem; display: block; margin-bottom: 16px; }
.stellen-empty h2 { font-family: 'Playfair Display', serif; color: var(--qkw-soil,#675039); margin-bottom: 10px; }
.stellen-empty p  { color: var(--qkw-soil,#675039); opacity: 0.7; }

.stellen-spontan {
    background: linear-gradient(135deg, rgba(161,180,67,0.08) 0%, rgba(106,163,150,0.1) 100%);
    border: 1.5px solid rgba(161,180,67,0.2);
    border-radius: 24px;
    padding: 48px 32px;
    text-align: center;
}
.stellen-spontan__inner { max-width: 520px; margin: 0 auto; }
.stellen-spontan__icon  { font-size: 2.5rem; display: block; margin-bottom: 14px; }
.stellen-spontan h2 {
    font-family: 'Playfair Display', serif;
    font-size: 1.6rem;
    color: var(--qkw-soil,#675039);
    margin-bottom: 10px;
}
.stellen-spontan p { color: var(--qkw-soil,#675039); opacity: 0.75; margin-bottom: 24px; line-height: 1.65; }

/* ─── Single Stelle ─────────────────────────────── */

.stelle-detail-hero {
    background: var(--c-beige, #FAF6E4);
    padding: 56px 0 52px;
    border-bottom: 1px solid rgba(161,180,67,0.15);
}
.stelle-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--qkw-soil,#675039);
    text-decoration: none;
    opacity: 0.65;
    margin-bottom: 20px;
    transition: opacity 0.2s, gap 0.2s;
}
.stelle-back:hover { opacity: 1; gap: 2px; }
.stelle-detail__eyebrow {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--qkw-coral,#ED6C50);
    margin-bottom: 8px;
}
.stelle-detail__title {
    font-family: 'Playfair Display', serif;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    color: var(--qkw-soil,#675039);
    margin-bottom: 16px;
    line-height: 1.25;
}
.stelle-detail__tags   { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.stelle-detail__deadline {
    font-size: 0.88rem;
    color: var(--qkw-soil,#675039);
    opacity: 0.7;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.stelle-detail-content { padding: 52px 0 80px; }
.stelle-detail-grid {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 48px;
    align-items: start;
}
@media (max-width: 860px) {
    .stelle-detail-grid { grid-template-columns: 1fr; }
    .stelle-sidebar { order: -1; }
}

.stelle-prose { line-height: 1.75; color: var(--qkw-soil,#675039); }
.stelle-prose h2, .stelle-prose h3 { font-family: 'Playfair Display', serif; margin-top: 32px; }
.stelle-prose p  { margin-bottom: 16px; }

.stelle-section       { margin-top: 36px; }
.stelle-section h2    { font-family: 'Playfair Display', serif; font-size: 1.3rem; color: var(--qkw-soil,#675039); margin-bottom: 14px; }
.stelle-section--angebot h2 { color: var(--qkw-leaf,#A1B443); }

.stelle-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.stelle-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 14px;
    background: rgba(103,80,57,0.04);
    border-radius: 10px;
    font-size: 0.95rem;
    color: var(--qkw-soil,#675039);
    line-height: 1.5;
}
.stelle-list li::before {
    content: '';
    display: block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--qkw-coral,#ED6C50);
    flex-shrink: 0;
    margin-top: 6px;
}
.stelle-list--angebot li::before { background: var(--qkw-leaf,#A1B443); }

.stelle-apply-cta {
    margin-top: 44px;
    padding: 32px;
    background: linear-gradient(135deg, rgba(237,108,80,0.06) 0%, rgba(161,180,67,0.08) 100%);
    border-radius: 20px;
    border: 1px solid rgba(237,108,80,0.15);
    text-align: center;
}
.stelle-apply-cta p { margin-bottom: 18px; font-size: 1.05rem; color: var(--qkw-soil,#675039); opacity: 0.85; }

.stelle-sidebar { position: sticky; top: 100px; }
.stelle-sidebar-card {
    background: #fff;
    border-radius: 20px;
    padding: 28px;
    box-shadow: 0 4px 24px rgba(40,25,10,0.07);
    border: 1px solid rgba(161,180,67,0.15);
}
.stelle-sidebar-card h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.1rem;
    color: var(--qkw-soil,#675039);
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(103,80,57,0.1);
}
.stelle-sidebar-card__row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
    padding: 8px 0;
    font-size: 0.85rem;
    border-bottom: 1px solid rgba(103,80,57,0.06);
}
.stelle-sidebar-card__row:last-of-type { border-bottom: none; margin-bottom: 20px; }
.stelle-sidebar-card__row span  { color: var(--qkw-soil,#675039); opacity: 0.65; }
.stelle-sidebar-card__row strong { color: var(--qkw-soil,#675039); text-align: right; }
.btn--full { width: 100%; }

/* ─── Bewerbungs-Modal ──────────────────────────── */

.bewerbung-modal {
    position: fixed;
    inset: 0;
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.bewerbung-modal[hidden] { display: none; }

.bewerbung-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(40,25,10,0.5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    cursor: pointer;
}

.bewerbung-modal__card {
    position: relative;
    background: #fffdf8;
    border-radius: 24px;
    width: 100%;
    max-width: 860px;
    max-height: 94vh;
    overflow-y: auto;
    padding: 48px 56px 48px;
    box-shadow: 0 32px 80px rgba(40,25,10,0.18);
    animation: bewerbungSlideIn 0.28s ease-out;
}
@keyframes bewerbungSlideIn {
    from { opacity: 0; transform: translateY(24px) scale(0.98); }
    to   { opacity: 1; transform: translateY(0)    scale(1);    }
}

.bewerbung-modal__close {
    position: absolute;
    top: 16px;
    right: 16px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: 50%;
    color: var(--qkw-soil,#675039);
    opacity: 0.5;
    transition: opacity 0.2s, background 0.2s;
    line-height: 0;
}
.bewerbung-modal__close:hover { opacity: 1; background: rgba(103,80,57,0.08); }

.bewerbung-modal__header   { margin-bottom: 28px; }
.bewerbung-modal__eyebrow  { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--qkw-coral,#ED6C50); margin-bottom: 4px; }
.bewerbung-modal__title    { font-family: 'Playfair Display', serif; font-size: 1.7rem; color: var(--qkw-soil,#675039); margin-bottom: 4px; }
.bewerbung-modal__stelle-name { font-size: 0.9rem; color: var(--qkw-soil,#675039); opacity: 0.6; }

/* Form fields */
.bewerbung-form { display: flex; flex-direction: column; gap: 18px; }
.bewerbung-form__row { display: flex; flex-direction: column; gap: 18px; }
.bewerbung-form__row--2col { flex-direction: row; }
@media (max-width: 520px) { .bewerbung-form__row--2col { flex-direction: column; } }

.bewerbung-form__field { display: flex; flex-direction: column; gap: 5px; flex: 1; }
.bewerbung-form__field label { font-size: 0.82rem; font-weight: 700; color: var(--qkw-soil,#675039); }
.bewerbung-form__field label span { color: var(--qkw-coral,#ED6C50); }
.bewerbung-form__field label em { font-weight: 400; opacity: 0.65; }

.bewerbung-form__field input[type=text],
.bewerbung-form__field input[type=email],
.bewerbung-form__field input[type=tel],
.bewerbung-form__field textarea {
    padding: 10px 14px;
    border: 1.5px solid #ddd6c4;
    border-radius: 10px;
    font-size: 0.95rem;
    font-family: inherit;
    color: var(--qkw-soil,#675039);
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
    outline: none;
    width: 100%;
}
.bewerbung-form__field input:focus,
.bewerbung-form__field textarea:focus {
    border-color: var(--qkw-coral,#ED6C50);
    box-shadow: 0 0 0 3px rgba(237,108,80,0.1);
}
.bewerbung-form__field textarea { resize: vertical; min-height: 120px; }

/* File upload */
.bewerbung-form__uploads { border: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 14px; }
.bewerbung-form__uploads legend { font-size: 0.82rem; font-weight: 700; color: var(--qkw-soil,#675039); margin-bottom: 10px; }

.bewerbung-upload-area {
    border: 1.5px dashed #c8bfa8;
    border-radius: 14px;
    padding: 4px;
    transition: border-color 0.2s, background 0.2s;
}
.bewerbung-upload-area.is-dragover { border-color: var(--qkw-coral,#ED6C50); background: rgba(237,108,80,0.04); }

.bewerbung-upload-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 16px 16px;
    cursor: pointer;
    text-align: center;
}
.bewerbung-upload-icon { color: var(--qkw-soil,#675039); opacity: 0.35; margin-bottom: 8px; }
.bewerbung-upload-title { font-size: 0.88rem; font-weight: 700; color: var(--qkw-soil,#675039); margin-bottom: 2px; }
.bewerbung-upload-title span { color: var(--qkw-coral,#ED6C50); }
.bewerbung-upload-hint { font-size: 0.76rem; color: var(--qkw-soil,#675039); opacity: 0.55; margin-bottom: 10px; }
.bewerbung-upload-btn {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(237,108,80,0.1);
    color: var(--qkw-coral,#ED6C50);
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 700;
    transition: background 0.2s;
}
.bewerbung-upload-label:hover .bewerbung-upload-btn { background: rgba(237,108,80,0.18); }
.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; }

.bewerbung-upload-files { display: flex; flex-direction: column; gap: 4px; padding: 0 12px 8px; }
.bewerbung-file-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: rgba(161,180,67,0.08);
    border-radius: 8px;
    font-size: 0.82rem;
}
.bewerbung-file-icon { color: var(--qkw-leaf,#A1B443); flex-shrink: 0; }
.bewerbung-file-name { color: var(--qkw-soil,#675039); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bewerbung-file-size { color: var(--qkw-soil,#675039); opacity: 0.5; font-size: 0.75rem; flex-shrink: 0; }

/* Checkbox */
.bewerbung-form__field--checkbox label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-weight: 400;
    font-size: 0.85rem;
    line-height: 1.5;
}
.bewerbung-form__field--checkbox input[type=checkbox] {
    margin-top: 2px;
    accent-color: var(--qkw-coral,#ED6C50);
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    cursor: pointer;
}
.bewerbung-form__field--checkbox a { color: var(--qkw-coral,#ED6C50); }

/* Alert */
.bewerbung-form__alert {
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 0.88rem;
    line-height: 1.5;
}
.bewerbung-form__alert--error { background: #fef2f2; border: 1px solid #fecaca; color: #c0392b; }
.bewerbung-form__alert[hidden] { display: none; }

/* Actions */
.bewerbung-form__actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 4px;
}
@media (max-width: 420px) {
    .bewerbung-form__actions { flex-direction: column-reverse; }
    .bewerbung-form__actions .btn { width: 100%; justify-content: center; }
}

/* Spinner */
.bewerbung-submit-spinner { display: inline-flex; align-items: center; }
.bewerbung-submit-spinner[hidden] { display: none; }
.bewerbung-spinner {
    animation: bewerbungSpin 0.8s linear infinite;
}
@keyframes bewerbungSpin { to { transform: rotate(360deg); } }

/* Success state */
.bewerbung-success {
    text-align: center;
    padding: 20px 0 10px;
}
.bewerbung-success[hidden] { display: none; }
.bewerbung-success__icon   { margin-bottom: 18px; }
.bewerbung-success h3      { font-family: 'Playfair Display', serif; font-size: 1.5rem; color: var(--qkw-soil,#675039); margin-bottom: 10px; }
.bewerbung-success p       { color: var(--qkw-soil,#675039); opacity: 0.75; line-height: 1.6; }

/* btn--ghost variant */
.btn--ghost {
    background: transparent;
    color: var(--qkw-soil,#675039);
    border: 1.5px solid rgba(103,80,57,0.25);
}
.btn--ghost:hover { background: rgba(103,80,57,0.06); border-color: rgba(103,80,57,0.4); }

@media (max-width: 600px) {
    .bewerbung-modal__card { padding: 36px 22px 28px; }
    .stellen-grid { grid-template-columns: 1fr; }
    .stellen-spontan { padding: 36px 24px; }
}

/* ─── Stelle richtext output (aus wp_editor) ─── */
.stelle-richtext ul,
.stelle-richtext ol {
    padding-left: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
}
.stelle-richtext li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 14px;
    background: rgba(103,80,57,0.04);
    border-radius: 10px;
    font-size: 0.95rem;
    color: var(--qkw-soil,#675039);
    line-height: 1.5;
}
.stelle-richtext li::before {
    content: '';
    display: block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--qkw-coral,#ED6C50);
    flex-shrink: 0;
    margin-top: 6px;
}
.stelle-richtext--angebot li::before { background: var(--qkw-leaf,#A1B443); }
.stelle-richtext p   { color: var(--qkw-soil,#675039); line-height: 1.7; margin-bottom: 10px; }
.stelle-richtext strong { font-weight: 700; }
.stelle-richtext a   { color: var(--qkw-coral,#ED6C50); }

.bewerbung-file-remove {
    margin-left: auto;
    flex-shrink: 0;
    background: none;
    border: none;
    cursor: pointer;
    padding: 3px;
    border-radius: 50%;
    color: var(--qkw-soil,#675039);
    opacity: 0.35;
    line-height: 0;
    transition: opacity 0.15s, background 0.15s;
}
.bewerbung-file-remove:hover {
    opacity: 1;
    background: rgba(237,108,80,0.12);
    color: var(--qkw-coral,#ED6C50);
}

.bewerbung-upload-size-error {
    font-size: 0.78rem;
    color: #c0392b;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 8px;
    padding: 6px 12px;
    margin: 4px 4px 6px;
}
.bewerbung-upload-size-error--total {
    margin: 8px 0 0;
    text-align: center;
}
