/* ================================================
   PAGES.CSS  –  Kurse · Über mich · Stundenplan
                  Buchung · Kontakt
   ================================================ */

/* ── PAGE HERO (alle Unterseiten) ── */
.page-hero-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.5rem, 5vw, 4.2rem); font-weight: 300; margin-bottom: .9rem; position: relative; z-index: 1;
}
.page-hero-title em { font-style: italic; }
.page-hero-sub { font-size: .97rem; font-weight: 300; max-width: 520px; margin: 0 auto; position: relative; z-index: 1; }

/* ── KURSE SEITE ── */
.kurse-hero { background: linear-gradient(135deg, #e8f5f5, #ede9f5 50%, #e5f0ea); }
.kurse-hero .page-hero-title { color: var(--teal-dark); }
.kurse-hero .page-hero-title em { color: var(--lavender); }
.kurse-hero .page-hero-sub { color: var(--text-mid); }

.kurse-tabs { display: flex; gap: .6rem; justify-content: center; margin-bottom: 3.5rem; flex-wrap: wrap; }
.k-tab {
  background: none; border: 1.5px solid var(--sand-dark); border-radius: 50px;
  padding: .5rem 1.5rem; font-family: 'Jost', sans-serif;
  font-size: .76rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-mid); cursor: pointer; transition: all .25s;
}
.k-tab:hover { border-color: var(--teal-light); color: var(--teal-dark); }
.k-tab.active { background: var(--teal-dark); border-color: var(--teal-dark); color: white; }

.kurse-section { background: var(--white); padding: 5rem 6rem; }
.kd-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 2rem; max-width: 1080px; margin: 0 auto; }
.kd-card {
  background: var(--sand); border-radius: 24px; padding: 2.2rem;
  transition: all .35s; border: 1px solid transparent; position: relative; overflow: hidden;
}
.kd-card:hover { transform: translateY(-5px); box-shadow: 0 20px 55px rgba(45,110,126,.12); border-color: var(--teal-pale); }
.kd-top { display: flex; gap: 1.2rem; align-items: flex-start; margin-bottom: 1.4rem; }
.kd-icon {
  width: 62px; height: 62px; border-radius: 50%;
  background: linear-gradient(135deg, var(--teal-pale), var(--lavender-pale));
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1.7rem;
}
.kd-icon img { width: 62px; height: 62px; object-fit: contain; border-radius: 50%; }
.kd-meta { flex: 1; }
.kd-badge {
  display: inline-block; font-size: .63rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--lavender); background: var(--lavender-pale);
  padding: .18rem .65rem; border-radius: 50px; margin-bottom: .4rem;
}
.kd-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; font-weight: 400; color: var(--teal-dark); }
.kd-desc { font-size: .87rem; line-height: 1.8; color: var(--text-mid); font-weight: 300; margin-bottom: 1.4rem; }
.kd-info { display: flex; gap: 1.4rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.kd-chip { display: flex; flex-direction: column; gap: .15rem; }
.kd-chip-lbl { font-size: .62rem; text-transform: uppercase; letter-spacing: .1em; color: var(--text-light); }
.kd-chip-val { font-size: .9rem; color: var(--teal-dark); font-weight: 500; }
.kd-price { display: flex; align-items: center; justify-content: space-between; padding-top: 1.2rem; border-top: 1px solid var(--sand-dark); }
.kd-price-num { font-family: 'Cormorant Garamond', serif; font-size: 1.8rem; font-weight: 300; color: var(--teal-dark); }
.kd-price-unit { font-size: .72rem; color: var(--text-light); margin-left: .3rem; }

.kd-sd-hinweis {
  font-size: .72rem;
  line-height: 1.5;
  margin: .3rem 0 .4rem;
  color: var(--teal-dark);
  min-height: 1.2rem;
}

.kd-price-table {
  width: 100%; border-collapse: collapse;
  margin-top: 1.2rem; padding-top: 1.2rem;
  border-top: 1px solid var(--sand-dark);
}
.kd-price-table thead tr {
  border-bottom: 1px solid var(--sand-dark);
}
.kd-price-table th {
  font-size: .65rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-light); font-weight: 400; padding: .3rem .5rem .5rem;
  text-align: left;
}
.kd-price-table th:not(:first-child) { text-align: center; }
.kd-price-table td {
  padding: .65rem .5rem; font-size: .88rem;
  color: var(--text-mid); border-bottom: 1px solid var(--sand-dark);
  vertical-align: middle;
}
.kd-price-table tr:last-child td { border-bottom: none; }
.kd-price-table td:first-child {
  font-weight: 500; color: var(--text-dark);
  white-space: nowrap;
}
.kd-price-table td:not(:first-child) { text-align: center; }
.kd-pt-price {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.35rem; font-weight: 300; color: var(--teal-dark);
  display: block; line-height: 1.1;
}
.kd-pt-unit {
  font-size: .65rem; color: var(--text-light);
  display: block; margin-top: .1rem;
}
.kd-pt-btn {
  background: var(--teal-dark); color: white; border: none;
  border-radius: 50px; padding: .38rem .9rem;
  font-family: 'Jost', sans-serif; font-size: .68rem;
  letter-spacing: .07em; text-transform: uppercase;
  cursor: pointer; transition: all .25s; white-space: nowrap;
}
.kd-pt-btn:hover { background: var(--teal-mid); transform: translateY(-1px); }
.kd-pt-badge {
  display: inline-block; font-size: .6rem; letter-spacing: .07em;
  text-transform: uppercase; color: var(--lavender);
  background: var(--lavender-pale); padding: .15rem .55rem;
  border-radius: 50px; margin-top: .25rem;
}

/* Spezial-Karten auf Kursseite */
.spezial-section { background: linear-gradient(180deg, var(--sand), var(--lavender-pale)); padding: 5rem 6rem; }
.spezial-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.8rem; max-width: 1100px; margin: 0 auto; }
.spezial-card {
  background: var(--white); border-radius: 24px; overflow: hidden;
  transition: all .4s; border: 1px solid rgba(126,200,200,.2); position: relative;
}
.spezial-card::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(to right, var(--teal-light), var(--lavender), var(--teal-light));
  transform: scaleX(0); transition: transform .4s;
}
.spezial-card:hover { transform: translateY(-6px); box-shadow: 0 20px 60px rgba(139,135,184,.15); }
.spezial-card:hover::after { transform: scaleX(1); }
.sc-body { padding: 2rem 1.8rem 1.6rem; text-align: center; }
.sc-icon-wrap {
  width: 76px; height: 76px; border-radius: 50%;
  background: linear-gradient(135deg, var(--teal-pale), var(--lavender-pale));
  display: flex; align-items: center; justify-content: center;
  font-size: 2rem; margin: 0 auto 1.1rem;
}
.sc-icon-wrap img { width: 76px; height: 76px; object-fit: contain; border-radius: 50%; }
.spezial-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; font-weight: 400; color: var(--teal-dark); margin-bottom: .7rem; }
.spezial-card p { font-size: .83rem; line-height: 1.75; color: var(--text-mid); font-weight: 300; margin-bottom: 1.2rem; }
.sc-price-row {
  display: flex; align-items: center; justify-content: center; gap: 1rem;
  padding: .9rem 1.5rem; background: var(--sand); border-top: 1px solid var(--sand-dark);
}
.sc-price { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 300; color: var(--teal-dark); }
.sc-price-lbl { font-size: .7rem; color: var(--text-light); }
.spezial-last { grid-column: 2; }

/* ── ÜBER MICH ── */
.ueber-hero { background: linear-gradient(135deg, var(--teal-dark), #1d4f5e 55%, #2d3a6e); }
.ueber-hero .page-hero-title { color: white; }
.ueber-hero .page-hero-title em { color: var(--teal-pale); }
.ueber-hero .page-hero-sub { color: rgba(255,255,255,.72); }

.ueber-intro { background: var(--white); padding: 5.5rem 6rem; }
.ueber-intro-inner { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 380px 1fr; gap: 5rem; align-items: center; }

.photo-placeholder {
  width: 100%; aspect-ratio: 4/5; border-radius: 28px;
  background: linear-gradient(145deg, var(--teal-pale), var(--lavender-pale));
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 1rem; position: relative; overflow: hidden;
}
.photo-placeholder img { width: 100%; height: 100%; object-fit: contain;}
.photo-placeholder::before { content: ''; position: absolute; top: -30px; right: -30px; width: 120px; height: 120px; border-radius: 50%; background: rgba(126,200,200,.25); }
.photo-placeholder::after  { content: ''; position: absolute; bottom: -20px; left: -20px; width: 90px;  height: 90px;  border-radius: 50%; background: rgba(197,195,224,.3); }
.photo-icon { font-size: 4rem; z-index: 1; }
.photo-text { font-size: .8rem; color: var(--text-light); letter-spacing: .1em; text-transform: uppercase; z-index: 1; }
.photo-badge {
  position: absolute; bottom: 1.5rem; right: 1.5rem;
  background: var(--teal-dark); color: white; border-radius: 50px;
  padding: .5rem 1.1rem; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; z-index: 2;
}

.ueber-text .section-eyebrow { text-align: left; }
.ueber-text h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.9rem, 3vw, 2.9rem); font-weight: 300; color: var(--teal-dark); margin-bottom: 1.4rem; line-height: 1.12; }
.ueber-text h2 em { font-style: italic; color: var(--lavender); }
.ueber-text p { font-size: .95rem; line-height: 1.9; color: var(--text-mid); font-weight: 300; margin-bottom: 1.1rem; }
.ueber-quote {
  font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; font-style: italic;
  color: var(--teal-dark); border-left: 3px solid var(--teal-light);
  padding: .8rem 0 .8rem 1.4rem; margin: 2rem 0; line-height: 1.5;
}

/* Werdegang / Timeline */
.werdegang { background: var(--sand); padding: 5.5rem 6rem; }
.timeline { max-width: 800px; margin: 3.5rem auto 0; position: relative; }
.timeline::before {
  content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px;
  background: linear-gradient(to bottom, var(--teal-light), var(--lavender));
  transform: translateX(-50%);
}
.tl-item { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; margin-bottom: 3.5rem; position: relative; }
.tl-item:nth-child(odd) .tl-content  { grid-column: 1; text-align: right; padding-right: 2rem; }
.tl-item:nth-child(even) .tl-content { grid-column: 2; text-align: left;  padding-left:  2rem; }
.tl-item:nth-child(even) .tl-year    { grid-column: 1; grid-row: 1; }
.tl-dot {
  position: absolute; width: 14px; height: 14px; border-radius: 50%;
  background: var(--teal-dark); top: 6px; left: 50%; transform: translateX(-50%);
  box-shadow: 0 0 0 4px var(--sand), 0 0 0 6px var(--teal-pale);
}
.tl-year { font-family: 'Cormorant Garamond', serif; font-size: 1.8rem; font-weight: 300; color: var(--teal-light); line-height: 1; }
.tl-content h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 400; color: var(--teal-dark); margin-bottom: .3rem; }
.tl-content p { font-size: .84rem; line-height: 1.7; color: var(--text-mid); font-weight: 300; }

/* Zertifikate */
.zertifikate { background: var(--white); padding: 5.5rem 6rem; }
.zert-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; max-width: 960px; margin: 0 auto; }
.zert-card { background: var(--sand); border-radius: 18px; padding: 1.8rem; text-align: center; border: 1px solid var(--sand-dark); transition: all .3s; }
.zert-card:hover { border-color: var(--teal-pale); box-shadow: 0 8px 28px rgba(45,110,126,.09); }
.zert-icon { font-size: 2.2rem; margin-bottom: .8rem; }
.zert-card h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 400; color: var(--teal-dark); margin-bottom: .4rem; }
.zert-card p { font-size: .78rem; color: var(--text-light); line-height: 1.6; }

/* Philosophie */
.philosophie { background: linear-gradient(135deg, var(--teal-dark), #1d4f5e); padding: 5rem 6rem; }
.phil-inner { max-width: 900px; margin: 0 auto; }
.phil-inner .section-eyebrow { color: var(--teal-pale); }
.phil-inner .section-title { color: white; }
.phil-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 2rem; margin-top: 3rem; }
.phil-card {
  background: rgba(255,255,255,.1); border-radius: 20px; padding: 2rem;
  border: 1px solid rgba(255,255,255,.15); text-align: center; backdrop-filter: blur(4px);
}
.phil-num { font-family: 'Cormorant Garamond', serif; font-size: 3rem; font-weight: 300; color: var(--teal-pale); line-height: 1; margin-bottom: .7rem; }
.phil-card h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-weight: 300; color: white; margin-bottom: .6rem; }
.phil-card p { font-size: .82rem; line-height: 1.75; color: rgba(255,255,255,.7); font-weight: 300; }

/* ── STUNDENPLAN ── */
.sp-hero {
  padding: 9.5rem 6rem 4rem;
  background: linear-gradient(135deg, var(--teal-dark), #1d4f5e 60%, #3a3570);
  text-align: center; position: relative; overflow: hidden;
}
.sp-hero::before {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 30% 50%, rgba(126,200,200,.15) 0%, transparent 60%),
    radial-gradient(ellipse at 70% 30%, rgba(197,195,224,.12) 0%, transparent 50%);
}
.sp-hero h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.5rem, 5vw, 4.2rem); font-weight: 300; color: white; margin-bottom: .9rem; position: relative; z-index: 1; }
.sp-hero h1 em { font-style: italic; color: var(--teal-pale); }
.sp-hero p { color: rgba(255,255,255,.72); font-size: .97rem; font-weight: 300; max-width: 500px; margin: 0 auto; position: relative; z-index: 1; }
.sp-section { background: var(--white); padding: 5rem 5.5rem; }

/* Timetable */
.timetable { max-width: 1100px; margin: 0 auto; }
.tt-header { display: grid; grid-template-columns: 84px repeat(6,1fr); gap: .65rem; margin-bottom: .75rem; }
.tt-header .dc { text-align: center; font-size: .67rem; letter-spacing: .12em; text-transform: uppercase; color: var(--text-light); padding: .45rem 0; border-bottom: 2px solid var(--sand-dark); }

.tt-time-head { width: 84px; }
.tt-row { display: grid; grid-template-columns: 84px repeat(6,1fr); gap: .65rem; margin-bottom: .65rem; align-items: start; }
.tt-time { font-size: .75rem; color: var(--text-light); padding-top: .8rem; text-align: right; padding-right: .7rem; font-weight: 300; }
.tt-empty { min-height: 46px; }
.tt-card {
  border-radius: 11px; padding: .6rem .85rem; cursor: pointer;
  transition: all .3s; position: relative; overflow: hidden;
  min-height: 68px; border: 1px solid transparent;
}
.tt-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(45,110,126,.18); }
.tt-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; }
.tt-name { font-size: .76rem; font-weight: 500; color: var(--text-dark); margin-bottom: .12rem; line-height: 1.3; }
.tt-dur  { font-size: .66rem; color: var(--text-light); }
.tt-lvl  { font-size: .6rem;  letter-spacing: .05em; text-transform: uppercase; color: var(--text-light); margin-top: .1rem; }
.tt-hint { text-align: center; font-size: .78rem; color: var(--text-light); margin-top: 1rem; }

/* Kurs-Farben im Stundenplan */
.tc-hatha { background: linear-gradient(135deg, #e2f1f1, #cde8e8); } .tc-hatha::before { background: var(--teal-dark); }
.tc-anf   { background: linear-gradient(135deg, #ece8d2, #e2dcc6); } .tc-anf::before   { background: #8b7355; }
.tc-hor   { background: linear-gradient(135deg, #f4ebe7, #eddbd6); } .tc-hor::before   { background: #c07060; }
.tc-rei   { background: linear-gradient(135deg, #e3ecf4, #d0e3ee); } .tc-rei::before   { background: #4a7a9a; }
.tc-ten   { background: linear-gradient(135deg, #e9f3e3, #d8ecd2); } .tc-ten::before   { background: #5a8a4a; }
.tc-gol   { background: linear-gradient(135deg, #f1ede1, #e7e0d2); } .tc-gol::before   { background: #8a7a4a; }
.tc-eng   { background: linear-gradient(135deg, #ece4f3, #e0d4ec); } .tc-eng::before   { background: var(--lavender); }
.tc-ges   { background: linear-gradient(135deg, #f4e8f0, #eddae8); } .tc-ges::before   { background: #b06090; }
.tc-biz   { background: linear-gradient(135deg, #e8ecf0, #d8dfe8); } .tc-biz::before   { background: #4a5a6e; }

/* Legende */
.legende { display: flex; gap: 1.4rem; flex-wrap: wrap; justify-content: center; margin-top: 2.8rem; padding-top: 2rem; border-top: 1px solid var(--sand-dark); }
.leg-item { display: flex; align-items: center; gap: .45rem; font-size: .76rem; color: var(--text-mid); }
.leg-dot  { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }

/* Mobile Stundenplan */
.mobile-sched { display: none; }
.mob-day { margin-bottom: 1.4rem; }
.mob-day-title { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; color: var(--teal-dark); margin-bottom: .7rem; padding-bottom: .4rem; border-bottom: 1px solid var(--sand-dark); }
.mob-slot { display: flex; gap: .9rem; align-items: center; padding: .65rem .9rem; background: var(--white); border-radius: 11px; margin-bottom: .45rem; border-left: 4px solid var(--teal-light); cursor: pointer; }
.mob-time { font-size: .75rem; color: var(--text-light); min-width: 52px; font-weight: 300; }
.mob-info .tt-name { font-size: .82rem; }

/* ── BUCHUNG ── */
.buch-hero {
  padding: 9.5rem 6rem 4rem;
  background: linear-gradient(135deg, #ede9f5, #d5e8f0 50%, #e5f2f2);
  text-align: center; position: relative; overflow: hidden;
}
.buch-hero::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 40%, rgba(126,200,200,.2), transparent 60%);
}
.buch-hero h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.5rem, 5vw, 4.2rem); font-weight: 300; color: var(--teal-dark); margin-bottom: .9rem; position: relative; z-index: 1; }
.buch-hero h1 em { font-style: italic; color: var(--lavender); }
.buch-hero p { color: var(--text-mid); font-size: .97rem; font-weight: 300; max-width: 500px; margin: 0 auto; position: relative; z-index: 1; }
.buch-section { background: var(--white); padding: 4.5rem 6rem 5.5rem; }

/* Stepper */
.stepper { display: flex; align-items: center; justify-content: center; margin-bottom: 3.8rem; }
.st-item { display: flex; align-items: center; gap: .65rem; }
.st-circle {
  width: 34px; height: 34px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: .8rem; font-weight: 500; border: 2px solid var(--sand-dark);
  color: var(--text-light); background: var(--white); transition: all .4s; flex-shrink: 0;
}
.st-circle.done   { background: var(--teal-dark); border-color: var(--teal-dark); color: white; }
.st-circle.active { background: var(--teal-mid);  border-color: var(--teal-mid);  color: white; box-shadow: 0 0 0 4px rgba(74,154,170,.2); }
.st-label { font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--text-light); transition: color .4s; white-space: nowrap; }
.st-label.active { color: var(--teal-dark); font-weight: 500; }
.st-label.done   { color: var(--teal-mid); }
.st-line { width: 48px; height: 2px; background: var(--sand-dark); margin: 0 .45rem; transition: background .4s; flex-shrink: 0; }
.st-line.done { background: var(--teal-light); }

/* Buchung Steps */
.bstep { display: none; max-width: 820px; margin: 0 auto; animation: fadeUp .4s ease; }
.bstep.active { display: block; }

.kurs-auswahl { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
.kurs-opt {
  border: 2px solid var(--sand-dark); border-radius: 15px; padding: 1.2rem 1.3rem;
  cursor: pointer; transition: all .3s; display: flex; gap: .9rem; align-items: center; background: var(--white);
}
.kurs-opt:hover    { border-color: var(--teal-light); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(45,110,126,.1); }
.kurs-opt.selected { border-color: var(--teal-dark); background: linear-gradient(135deg, rgba(184,224,224,.2), rgba(197,195,224,.1)); }
.ko-icon {
  width: 44px; height: 44px; border-radius: 50%;
  background: linear-gradient(135deg, var(--teal-pale), var(--lavender-pale));
  display: flex; align-items: center; justify-content: center; font-size: 1.25rem; flex-shrink: 0;
}
.ko-icon img { width: 44px; height: 44px; object-fit: contain; border-radius: 50%; }
.ko-name { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 400; color: var(--teal-dark); }
.ko-sub  { font-size: .72rem; color: var(--text-light); }

/* Kalender */
.termin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }
.kalender { background: var(--sand); border-radius: 18px; padding: 1.4rem; }
.kal-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.1rem; }
.kal-header h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.12rem; font-weight: 400; color: var(--teal-dark); }
.kal-nav { background: none; border: none; cursor: pointer; color: var(--teal-mid); font-size: 1.25rem; padding: .2rem .55rem; border-radius: 7px; transition: background .2s; }
.kal-nav:hover { background: var(--teal-pale); }
.kal-dh { display: grid; grid-template-columns: repeat(7,1fr); text-align: center; margin-bottom: .35rem; }
.kal-dh span { font-size: .63rem; letter-spacing: .07em; text-transform: uppercase; color: var(--text-light); padding: .28rem 0; }
.kal-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: .22rem; }
.kd { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; font-size: .78rem; border-radius: 50%; cursor: pointer; transition: all .2s; color: var(--text-mid); }
.kd:hover:not(.kd-empty):not(.kd-past) { background: var(--teal-pale); color: var(--teal-dark); }
.kd.kd-has { position: relative; font-weight: 500; color: var(--teal-dark); }
.kd.kd-has::after { content: ''; display: block; width: 4px; height: 4px; border-radius: 50%; background: var(--teal-mid); position: absolute; bottom: 2px; left: 50%; transform: translateX(-50%); }
.kd.kd-sel { background: var(--teal-dark) !important; color: white !important; }
.kd.kd-sel::after { background: white !important; }
.kd.kd-past  { color: var(--sand-dark); cursor: default; }
/* NEU: Ausgefallener Termin – durchgestrichen */
.kd.kd-ausfall { color: var(--bar-voll); text-decoration: line-through; opacity: .6; cursor: default; }
.kd.kd-ausfall::after { content: '✕'; font-size: .45rem; vertical-align: super; }
/* NEU: Vor kursStart – gedimmt */
.kd.kd-vor-start  { color: var(--text-light); opacity: .5; cursor: default; }
/* NEU: Nach kursEnde – gedimmt mit Strich */
.kd.kd-nach-ende  { color: var(--text-light); opacity: .4; cursor: default; text-decoration: line-through; }
/* NEU: Termin vorhanden aber nicht buchbar */
.kd.kd-has-inaktiv { background: var(--sand); }
.kd.kd-today { border: 2px solid var(--teal-light); }

.zeiten h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 400; color: var(--teal-dark); margin-bottom: .9rem; }
/* NEU: Zeitenbox etwas breiter und mehr Innenabstand */
.zeiten-list { display: flex; flex-direction: column; gap: .7rem; min-width: 300px; }
.zeit-opt { display: flex; align-items: center; justify-content: space-between; border: 1.5px solid var(--sand-dark); border-radius: 11px; padding: 1rem 1.2rem; cursor: pointer; transition: all .25s; background: var(--white); gap: .6rem; }
.zeit-opt:hover  { border-color: var(--teal-light); }
.zeit-opt.z-sel  { border-color: var(--teal-dark); background: linear-gradient(135deg, rgba(184,224,224,.2), rgba(197,195,224,.1)); }
.zeit-opt.z-voll { opacity: .42; cursor: not-allowed; }
.z-main { font-size: .88rem; color: var(--text-dark); }
.z-meta { font-size: .7rem; color: var(--text-light); margin-top: .1rem; }
.z-badge { font-size: .6rem; letter-spacing: .07em; text-transform: uppercase; padding: .17rem .55rem; border-radius: 50px; }
.z-frei   { background: rgba(126,200,200,.25); color: var(--teal-dark); }
.z-wenig  { background: rgba(220,160,60,.2);   color: #9a6020; }
.z-voll-b { background: rgba(200,80,80,.15);   color: #8a3030; }

/* Buchungsformular */
.bform-wrap { background: var(--sand); border-radius: 18px; padding: 2rem 2.2rem; }
.bsummary { background: var(--white); border-radius: 13px; padding: 1.2rem 1.4rem; margin-bottom: 1.7rem; border-left: 4px solid var(--teal-light); }
.bsummary h4 { font-family: 'Cormorant Garamond', serif; font-size: 1rem; color: var(--teal-dark); margin-bottom: .65rem; }
.sum-row { display: flex; justify-content: space-between; font-size: .82rem; color: var(--text-mid); padding: .26rem 0; border-bottom: 1px solid var(--sand-dark); }
.sum-row:last-child { border-bottom: none; }
.buch-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 2.2rem; max-width: 820px; margin-left: auto; margin-right: auto; }

/* Bestätigung */
.confirm-wrap { text-align: center; padding: 2.5rem 2rem; }
.conf-icon {
  width: 82px; height: 82px; border-radius: 50%;
  background: linear-gradient(135deg, var(--teal-pale), var(--lavender-pale));
  display: flex; align-items: center; justify-content: center;
  font-size: 2.3rem; margin: 0 auto 1.7rem;
  animation: scalePop .5s cubic-bezier(.175,.885,.32,1.275);
}
.conf-icon img { width: 82px; height: 82px; object-fit: contain; border-radius: 50%; }
@keyframes scalePop { from { transform: scale(0); } to { transform: scale(1); } }
.confirm-wrap h2 { font-family: 'Cormorant Garamond', serif; font-size: 2.3rem; font-weight: 300; color: var(--teal-dark); margin-bottom: .9rem; }
.confirm-wrap p { color: var(--text-mid); font-size: .93rem; line-height: 1.8; max-width: 440px; margin: 0 auto 1.8rem; font-weight: 300; }
.conf-details { background: var(--sand); border-radius: 14px; padding: 1.4rem; max-width: 360px; margin: 0 auto 1.8rem; text-align: left; }

/* ── KONTAKT ── */
.kontakt-hero { background: linear-gradient(135deg, #e8f5f5, #ede9f5); }
.kontakt-hero .page-hero-title { color: var(--teal-dark); }
.kontakt-hero .page-hero-title em { color: var(--lavender); }
.kontakt-hero .page-hero-sub { color: var(--text-mid); }

.kontakt-section { background: var(--sand); padding: 5.5rem 6rem; display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
.k-info h2 { font-family: 'Cormorant Garamond', serif; font-size: 2.5rem; font-weight: 300; color: var(--teal-dark); margin-bottom: 1.4rem; line-height: 1.1; }
.k-info h2 em { font-style: italic; color: var(--lavender); }
.k-info p { font-size: .93rem; line-height: 1.88; color: var(--text-mid); font-weight: 300; margin-bottom: 1.8rem; }
.k-details { display: flex; flex-direction: column; gap: .9rem; }
.k-row { display: flex; align-items: center; gap: .9rem; font-size: .88rem; color: var(--text-mid); }
.k-icon { width: 38px; height: 38px; border-radius: 50%; background: var(--teal-pale); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; }
.k-form { background: var(--white); border-radius: 22px; padding: 2.3rem; box-shadow: 0 8px 40px rgba(45,110,126,.08); }
.k-form h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.45rem; font-weight: 300; color: var(--teal-dark); margin-bottom: 1.4rem; }

/* ════════════════════════════════
   ORT-POPUP
   ════════════════════════════════ */
.ort-popup {
  position: absolute; z-index: 500;
  background: var(--white); border-radius: 16px;
  
  padding: 0; overflow: hidden; width: 300px;
  box-shadow: 0 12px 40px rgba(45,110,126,.18);
  border: 1px solid var(--teal-pale);
  animation: fadeUp .25s ease;
}
.ort-popup-close {
  position: absolute; top: .6rem; right: .6rem; z-index: 2;
  
  background: rgba(255,255,255,.85); border: none; cursor: pointer;
  width: 26px; height: 26px; border-radius: 50%;
  font-size: .85rem; color: var(--text-mid);
  display: flex; align-items: center; justify-content: center;
  transition: background .2s; backdrop-filter: blur(4px);
}
.ort-popup-close:hover { background: var(--teal-pale); }

.ort-popup-bild {
  width: 100%; height: 140px; overflow: hidden;
  background: var(--sand);
}
.ort-popup-bild img {
  width: 100%; height: 100%; object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.ort-popup-bild img:hover { transform: scale(1.04); }

.ort-popup-bild-fallback {
  width: 100%; height: 100px;
  display: flex; align-items: center; justify-content: center;
  font-size: 2.8rem;
  background: linear-gradient(135deg, var(--teal-pale), var(--lavender-pale));
}

.ort-popup-name {
  font-family: 'Cormorant Garamond', serif; font-size: 1.1rem;
  font-weight: 400; color: var(--teal-dark);
  margin-bottom: .3rem;
  padding: .9rem 1.2rem 0;  
}
.ort-popup-adresse {
  font-size: .82rem; color: var(--text-mid); line-height: 1.6;
  margin-bottom: .5rem; padding: 0 1.2rem;
}
.ort-popup-info {
  font-size: .78rem; color: var(--text-light); line-height: 1.6;
  font-style: italic; margin-bottom: .6rem;
  padding: .5rem 1.2rem; border-top: 1px solid var(--sand-dark);
}
.ort-popup-cap {
  font-size: .78rem; color: var(--text-mid); margin-bottom: .6rem;
  display: flex; gap: .4rem; padding: 0 1.2rem;
}
.ort-popup-maps {
  display: inline-block; font-size: .75rem; color: var(--teal-dark);
  text-decoration: none; padding: .35rem .8rem;
  background: var(--teal-pale); border-radius: 50px;
  transition: background .2s;
  margin: 0 1.2rem .9rem;  
}
.ort-popup-maps:hover { background: var(--teal-light); color: white; }

/* Ort-Link Button im Zeitslot */
.ort-link {
  background: var(--sand); border: 1px solid var(--sand-dark);
  border-radius: 50px; padding: .28rem .75rem;
  font-family: 'Jost', sans-serif; font-size: .73rem;
  color: var(--teal-dark); cursor: pointer; transition: all .2s;
  white-space: nowrap; flex-shrink: 0;
}
.ort-link:hover { background: var(--teal-pale); border-color: var(--teal-light); }

/* Zeitslot Layout mit Ort & Balken */
/* NEU: Gruppeninfo im Zeitslot */
.zo-gruppe {
  font-size: .68rem;
  color: var(--text-light);
  letter-spacing: .04em;
}

.zo-main-row {
  display: flex; align-items: center; justify-content: space-between; margin-bottom: .6rem;
}
.zo-detail-row {
  display: flex; align-items: center; gap: .8rem; flex-wrap: wrap;
}

/* ════════════════════════════════
   TEILNEHMER-BALKEN
   ════════════════════════════════ */
:root {
  --bar-frei:  #5a9a6a;
  --bar-wenig: #c08030;
  --bar-voll:  #b04040;
}
.teiln-wrap { flex: 1; min-width: 120px; }
.teiln-bar-bg {
  height: 5px; background: var(--sand-dark);
  border-radius: 3px; overflow: hidden; margin-bottom: .28rem;
}
.teiln-bar-fill { height: 100%; border-radius: 3px; transition: width .4s ease; }
.teiln-info { display: flex; justify-content: space-between; align-items: center; }
.teiln-count { font-size: .68rem; color: var(--text-light); }
.teiln-frei  { font-size: .68rem; font-weight: 500; }

/* ════════════════════════════════
   RETREATS SEITE
   ════════════════════════════════ */
.retreats-hero {
  background: linear-gradient(135deg, #1a3a4a 0%, #2d4a3a 50%, #3a2a5a 100%);
  padding: 9.5rem 6rem 5rem; text-align: center; position: relative; overflow: hidden;
}
.retreats-hero::before {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 20% 60%, rgba(126,200,200,.18) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 30%, rgba(197,195,224,.14) 0%, transparent 50%);
}
.retreats-hero h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.5rem,5vw,4.5rem); font-weight: 300; color: white; margin-bottom: .9rem; position: relative; z-index: 1; }
.retreats-hero h1 em { font-style: italic; color: var(--teal-pale); }
.retreats-hero p { color: rgba(255,255,255,.72); font-size: 1rem; font-weight: 300; max-width: 540px; margin: 0 auto 2.5rem; position: relative; z-index: 1; }
.retreats-hero-badges { display: flex; gap: .8rem; justify-content: center; flex-wrap: wrap; position: relative; z-index: 1; }
.retreats-hero-badge { background: rgba(255,255,255,.12); color: rgba(255,255,255,.85); border: 1px solid rgba(255,255,255,.25); border-radius: 50px; padding: .4rem 1.1rem; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(4px); }

/* Nächste Retreats – Featured Cards */
.retreats-featured { background: var(--white); padding: 5rem 6rem; }
.ret-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; max-width: 1100px; margin: 0 auto; }
.ret-card {
  border-radius: 24px; overflow: hidden;
  border: 1px solid var(--sand-dark); transition: all .4s;
  position: relative;
}
.ret-card:hover { transform: translateY(-6px); box-shadow: 0 24px 64px rgba(45,110,126,.14); border-color: var(--teal-pale); }
.ret-card-header {
  padding: 2rem 2rem 1.5rem;
  background: linear-gradient(135deg, var(--teal-dark), #1d4f5e);
  position: relative; overflow: hidden;
}
.ret-card-header::after {
  content: ''; position: absolute; bottom: -20px; right: -20px;
  width: 120px; height: 120px; border-radius: 50%;
  background: rgba(255,255,255,.06);
}
.ret-card-emoji { font-size: 2.5rem; margin-bottom: .8rem; }
.ret-card-type { font-size: .68rem; letter-spacing: .15em; text-transform: uppercase; color: var(--teal-pale); margin-bottom: .5rem; }
.ret-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 300; color: white; line-height: 1.2; }
.ret-card-date { font-size: .82rem; color: rgba(255,255,255,.65); margin-top: .5rem; }
.ret-card-body { padding: 1.8rem 2rem; background: var(--white); }
.ret-card-desc { font-size: .87rem; line-height: 1.8; color: var(--text-mid); font-weight: 300; margin-bottom: 1.4rem; }
.ret-info-chips { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.ret-chip { display: flex; flex-direction: column; gap: .12rem; }
.ret-chip-lbl { font-size: .6rem; text-transform: uppercase; letter-spacing: .1em; color: var(--text-light); }
.ret-chip-val { font-size: .88rem; color: var(--teal-dark); font-weight: 500; }
.ret-price-row { display: flex; align-items: center; justify-content: space-between; padding-top: 1.2rem; border-top: 1px solid var(--sand-dark); }
.ret-price { font-family: 'Cormorant Garamond', serif; font-size: 2rem; font-weight: 300; color: var(--teal-dark); }
.ret-price-note { font-size: .72rem; color: var(--text-light); }

/* Teilnehmerbalken in Retreat-Karten */
.ret-teiln-wrap { margin: .8rem 0 1.2rem; }
.ret-teiln-label { font-size: .72rem; color: var(--text-light); margin-bottom: .3rem; }

/* Was erwartet dich */
.retreats-info { background: linear-gradient(180deg, var(--sand), var(--lavender-pale)); padding: 5rem 6rem; }
.ret-features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.8rem; max-width: 960px; margin: 0 auto; }
.ret-feature { background: var(--white); border-radius: 20px; padding: 2rem 1.6rem; text-align: center; border: 1px solid rgba(126,200,200,.2); transition: all .3s; }
.ret-feature:hover { box-shadow: 0 8px 28px rgba(45,110,126,.1); transform: translateY(-3px); }
.ret-feature-icon { font-size: 2.2rem; margin-bottom: .9rem; }
.ret-feature h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-weight: 400; color: var(--teal-dark); margin-bottom: .6rem; }
.ret-feature p { font-size: .82rem; line-height: 1.75; color: var(--text-mid); font-weight: 300; }

/* Anfrage-Formular */
.retreats-anfrage { background: var(--white); padding: 5rem 6rem; }
.ret-anfrage-inner { max-width: 780px; margin: 0 auto; background: var(--sand); border-radius: 24px; padding: 3rem; }
.ret-anfrage-inner h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 300; color: var(--teal-dark); margin-bottom: .5rem; }
.ret-anfrage-inner p { font-size: .88rem; color: var(--text-mid); font-weight: 300; margin-bottom: 2rem; line-height: 1.7; }

@media (max-width: 960px) {
  .retreats-hero, .retreats-featured, .retreats-info, .retreats-anfrage { padding: 3.5rem 1.5rem; }
  .retreats-hero { padding-top: 8rem; }
  .ret-grid { grid-template-columns: 1fr; }
  .ret-features-grid { grid-template-columns: 1fr 1fr; }
  .zo-detail-row { flex-direction: column; align-items: flex-start; }
}

/* ════════════════════════════════════════════════
   RETREATS  –  Seite, Karten, Overlay-Formular
   ════════════════════════════════════════════════ */

/* Hero */
.retreat-hero {
  background: linear-gradient(135deg, var(--teal-dark) 0%, #1d4f5e 50%, #2d3a6e 100%);
  position: relative; overflow: hidden;
}
.retreat-hero::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 20% 60%, rgba(126,200,200,.18) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 20%, rgba(197,195,224,.14) 0%, transparent 50%);
}
.retreat-hero .page-hero-title { color: white; }
.retreat-hero .page-hero-title em { color: var(--teal-pale); }

/* ── Philosophie-Bereich ── */
.retreat-phil-section { background: var(--white); padding: 5.5rem 6rem; }
.retreat-phil-inner {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start;
}
.retreat-phil-text h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.8rem, 3vw, 2.8rem); font-weight: 300;
  color: var(--teal-dark); margin-bottom: 1.2rem; line-height: 1.15;
}
.retreat-phil-text h2 em { font-style: italic; color: var(--lavender); }
.retreat-phil-text p {
  font-size: .95rem; line-height: 1.9; color: var(--text-mid);
  font-weight: 300; margin-bottom: 1rem;
}
.retreat-phil-values {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem;
}
.rpv-card {
  background: var(--sand); border-radius: 18px; padding: 1.5rem;
  border: 1px solid var(--sand-dark); transition: all .3s;
}
.rpv-card:hover { border-color: var(--teal-pale); box-shadow: 0 8px 24px rgba(45,110,126,.08); }
.rpv-icon { font-size: 1.8rem; margin-bottom: .6rem; }
.rpv-card h4 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem; font-weight: 400; color: var(--teal-dark); margin-bottom: .4rem;
}
.rpv-card p { font-size: .82rem; line-height: 1.7; color: var(--text-mid); font-weight: 300; }

/* ── Retreat-Liste ── */
.retreat-liste-section {
  background: linear-gradient(180deg, var(--sand) 0%, var(--lavender-pale) 100%);
  padding: 5.5rem 6rem;
}
.retreat-grid {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 2rem; max-width: 1100px; margin: 0 auto;
}

/* Retreat-Karte */
.retreat-card {
  background: var(--white); border-radius: 24px;
  overflow: hidden; transition: all .4s;
  box-shadow: 0 4px 20px rgba(45,110,126,.07);
  border: 1px solid rgba(126,200,200,.2);
  display: flex; flex-direction: column;
}
.retreat-card:hover { transform: translateY(-6px); box-shadow: 0 20px 55px rgba(45,110,126,.14); }

/* Karten-Header mit Farbvarianten je Jahreszeit */
.retreat-card-header {
  padding: 1.5rem 1.8rem;
  display: flex; align-items: center; justify-content: space-between;
  position: relative; overflow: hidden;
}
.retreat-card-header::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
  background: rgba(255,255,255,.3);
}
.rc-fruehjahr { background: linear-gradient(135deg, #2d7a5e, #3a8a6e); }
.rc-sommer    { background: linear-gradient(135deg, #2d6e7e, #3a7a9a); }
.rc-herbst    { background: linear-gradient(135deg, #7a4a2d, #8a5a3a); }
.rc-winter    { background: linear-gradient(135deg, #2d3a6e, #3a4a7e); }

.rc-datum-badge {
  display: flex; flex-direction: column; align-items: center;
  background: rgba(255,255,255,.2); border-radius: 14px;
  padding: .5rem .9rem; backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,.3);
}
.rc-monat { font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.rc-tag   { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 300; color: white; line-height: 1.1; }
.rc-jahr  { font-size: .65rem; color: rgba(255,255,255,.7); }

.rc-status {
  font-size: .65rem; letter-spacing: .1em; text-transform: uppercase;
  padding: .3rem .8rem; border-radius: 50px; font-weight: 500;
}
.rc-status-frei  { background: rgba(126,200,200,.3); color: white; border: 1px solid rgba(255,255,255,.3); }
.rc-status-wenig { background: rgba(220,160,60,.35); color: white; border: 1px solid rgba(255,255,255,.2); }
.rc-status-voll  { background: rgba(200,80,80,.3);  color: white; border: 1px solid rgba(255,255,255,.2); }

/* Karten-Inhalt */
.retreat-card-body { padding: 1.8rem; flex: 1; display: flex; flex-direction: column; }
.rc-pills { display: flex; gap: .4rem; flex-wrap: wrap; margin-bottom: 1rem; }
.rc-pill {
  font-size: .65rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--teal-dark); background: var(--teal-pale);
  padding: .22rem .7rem; border-radius: 50px;
}
.retreat-card-body h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.5rem; font-weight: 400; color: var(--teal-dark); margin-bottom: .3rem;
}
.rc-ort { font-size: .8rem; color: var(--text-light); margin-bottom: .9rem; }
.rc-desc { font-size: .87rem; line-height: 1.75; color: var(--text-mid); font-weight: 300; margin-bottom: 1.2rem; }

.rc-leistungen {
  list-style: none; margin-bottom: 1.4rem;
  display: grid; grid-template-columns: 1fr 1fr; gap: .3rem .8rem;
}
.rc-leistungen li {
  font-size: .78rem; color: var(--text-mid);
  padding-left: 1.1rem; position: relative;
}
.rc-leistungen li::before {
  content: '✓'; position: absolute; left: 0;
  color: var(--teal-mid); font-weight: 500;
}

.rc-preise {
  border-top: 1px solid var(--sand-dark); padding-top: 1rem;
  margin-bottom: 0; margin-top: auto;
}
.rc-preis-row {
  display: flex; align-items: baseline; justify-content: space-between;
  padding: .3rem 0;
}
.rc-preis-typ { font-size: .78rem; color: var(--text-mid); }
.rc-preis-val {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.4rem; font-weight: 300; color: var(--teal-dark);
}
.rc-preis-unit { font-size: .68rem; color: var(--text-light); }

/* Buchungshinweis */
.retreat-hinweis {
  display: flex; gap: 1rem; align-items: flex-start;
  max-width: 780px; margin: 2.5rem auto 0;
  background: var(--white); border-radius: 16px;
  padding: 1.3rem 1.6rem; border-left: 4px solid var(--teal-light);
  font-size: .86rem; color: var(--text-mid); line-height: 1.75;
}
.rh-icon { font-size: 1.4rem; flex-shrink: 0; margin-top: .1rem; }

/* ── Anmelde-Overlay ── */
.retreat-overlay {
  display: none; position: fixed; inset: 0; z-index: 900;
  background: rgba(42,42,53,.55); backdrop-filter: blur(6px);
}
.retreat-overlay.open { display: flex; align-items: center; justify-content: center; padding: 2rem; }
.retreat-overlay-box {
  background: var(--white); border-radius: 24px;
  max-width: 680px; width: 100%; max-height: 90vh;
  overflow-y: auto; padding: 2.5rem 3rem;
  position: relative; box-shadow: 0 32px 80px rgba(45,110,126,.18);
  animation: fadeUp .4s ease;
}
@media (max-width: 600px) { .retreat-overlay-box { padding: 2rem 1.5rem; } }

/* ── Responsive ── */
@media (max-width: 960px) {
  .retreat-phil-section  { padding: 3.5rem 1.5rem; }
  .retreat-liste-section { padding: 3.5rem 1.5rem; }
  .retreat-phil-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .retreat-grid { grid-template-columns: 1fr; }
  .rc-leistungen { grid-template-columns: 1fr; }
}

/* Kursseite: "Keine Termine" Hinweis in Preistabellen-Zellen */
.kd-keine-termine {
  display: flex; flex-direction: column; gap: .4rem; margin-top: .4rem;
}
.kd-keine-termine > span {
  font-size: .72rem; color: var(--text-light); font-style: italic;
}
.kd-anfrage-btn {
  background: none; border: 1.5px solid var(--teal-light);
  border-radius: 50px; padding: .38rem .9rem;
  font-family: 'Jost', sans-serif; font-size: .68rem;
  letter-spacing: .07em; text-transform: uppercase;
  color: var(--teal-dark); cursor: pointer; transition: all .25s;
  white-space: nowrap;
}
.kd-anfrage-btn:hover { background: var(--teal-pale); }

/* Spezialcard-Button im Outline-Stil wenn keine Termine */
.btn-outline {
  background: none !important; border: 1.5px solid var(--teal-light) !important;
  color: var(--teal-dark) !important;
}
.btn-outline:hover { background: var(--teal-pale) !important; }

/* NEU: "Keine Termine" Box im Buchungs-Kalenderbereich */
.keine-termine-box {
  padding: 1.4rem 1.2rem;
  background: linear-gradient(135deg, var(--sand), var(--lavender-pale));
  border-radius: 16px;
  border: 1px dashed var(--lavender-light);
  text-align: center;
}
.keine-termine-text {
  font-size: .88rem;
  color: var(--text-mid);
  line-height: 1.75;
  font-weight: 300;
  margin-bottom: 1.1rem;
}
.keine-termine-anfrage {
  display: inline-block;
  font-size: .8rem;
}

/* NEU: "Ab X €" Badge im Zeitslot */
.z-ab-preis {
  font-size: .72rem;
  font-weight: 500;
  color: var(--teal-dark);
  background: var(--teal-pale);
  border-radius: 20px;
  padding: .15rem .55rem;
  letter-spacing: .03em;
}

/* NEU: Preis-Dropdown in Buchungsübersicht Schritt 3 */
.sum-preis-row { align-items: flex-start; }
.preis-select {
  font-family: 'Jost', sans-serif;
  font-size: .8rem;
  color: var(--text-dark);
  border: 1px solid var(--sand-dark);
  border-radius: 8px;
  padding: .3rem .5rem;
  background: var(--white);
  cursor: pointer;
  max-width: 220px;
}
.preis-select:focus { outline: 2px solid var(--teal-light); border-color: transparent; }

/* ════════════════════════════════════════════════
   NEU: WORKSHOPS – Seite + Startseiten-Vorschau
   ════════════════════════════════════════════════ */

/* ── Workshop-Seite ── */
.workshops-hero { background: linear-gradient(135deg, var(--teal-pale) 0%, var(--lavender-pale) 100%); }
.workshops-section { max-width: 860px; margin: 0 auto; padding: 3rem 2rem 5rem; }

.ws-card {
  background: var(--white);
  border: 1.5px solid var(--sand-dark);
  border-radius: 20px;
  padding: 2rem;
  margin-bottom: 1.8rem;
  transition: box-shadow .25s;
}
.ws-card:hover { box-shadow: 0 8px 32px rgba(45,110,126,.1); }
.ws-card-top { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.ws-icon { font-size: 2rem; flex-shrink: 0; }
.ws-icon img { width: 64px; height: 64px; object-fit: contain; border-radius: 50%; }
.ws-badge { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--text-light); margin-bottom: .3rem; }
.ws-titel { font-size: 1.25rem; font-family: 'Cormorant Garamond', serif; font-weight: 500; margin: 0; }
.ws-desc  { font-size: .88rem; color: var(--text-mid); line-height: 1.7; margin-bottom: 1.2rem; }

.ws-termine { display: flex; flex-direction: column; gap: .5rem; margin-bottom: 1rem; }
.ws-termin {
  display: flex; align-items: center; gap: 1rem;
  padding: .6rem .9rem;
  background: var(--sand);
  border-radius: 10px;
  font-size: .83rem;
}
.ws-termin.ws-vergangen { opacity: .5; }
.ws-t-datum { display: flex; flex-direction: column; align-items: center; min-width: 48px; }
.ws-t-tag  { font-size: .65rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-light); }
.ws-t-date { font-weight: 500; color: var(--teal-dark); font-size: .85rem; }
.ws-t-info { display: flex; gap: 1rem; color: var(--text-mid); }
.ws-t-past-badge { margin-left: auto; font-size: .65rem; background: var(--sand-dark); border-radius: 20px; padding: .1rem .5rem; color: var(--text-light); }
.ws-keine { font-size: .82rem; color: var(--text-light); font-style: italic; }
.ws-preis-row { display: flex; align-items: center; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--sand-dark); flex-wrap: wrap; }
.ws-preis { font-size: 1rem; font-weight: 500; color: var(--teal-dark); }
.ws-leer  { text-align: center; padding: 3rem; color: var(--text-light); }

/* ── Workshop-Vorschau Startseite ── */
.home-workshops { padding: 5rem 6rem; background: var(--sand); }
.ws-home-grid  { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.2rem; margin-top: 2rem; }
.ws-home-card  {
  background: var(--white); border-radius: 16px;
  padding: 1.2rem 1.4rem;
  display: flex; align-items: center; gap: 1rem;
  cursor: pointer; transition: all .25s;
  border: 1.5px solid transparent;
}
.ws-home-card:hover { border-color: var(--teal-light); box-shadow: 0 4px 16px rgba(45,110,126,.1); }
.ws-home-datum { display: flex; flex-direction: column; align-items: center; min-width: 44px; }
.ws-home-tag   { font-size: .6rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-light); }
.ws-home-date  { font-size: .82rem; font-weight: 600; color: var(--teal-dark); }
.ws-home-icon  { font-size: 1.5rem; }
.ws-home-icon img { width: 64px; height: 64px; object-fit: contain; border-radius: 50%; }
.ws-home-info h4 { font-size: .9rem; font-family: 'Cormorant Garamond', serif; font-weight: 500; margin: 0 0 .15rem; }
.ws-home-info p  { font-size: .75rem; color: var(--text-light); margin: 0; }

@media (max-width: 768px) {
  .home-workshops { padding: 3rem 1.5rem; }
}

/* ── Kontakt: Versandbestätigung ─────────────────────────────── */
.kbest-wrap {
  background: linear-gradient(135deg, var(--teal-pale), var(--lavender-pale));
  border: 1.5px solid var(--teal-light);
  border-radius: 16px;
  padding: 2rem 1.8rem;
  text-align: center;
  animation: kbest-in .35s ease;
}
@keyframes kbest-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.kbest-icon  { font-size: 2.2rem; color: var(--teal-dark); margin-bottom: .5rem; }
.kbest-titel { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; font-weight: 500; margin: 0 0 .4rem; color: var(--teal-dark); }
.kbest-text  { font-size: .88rem; color: var(--text-mid); margin: 0 0 1.2rem; }
.kbest-details { text-align: left; background: rgba(255,255,255,.6); border-radius: 10px; padding: .8rem 1rem; margin-bottom: 1rem; font-size: .82rem; }
.kbest-row   { display: flex; gap: .8rem; padding: .25rem 0; border-bottom: 1px solid rgba(0,0,0,.06); }
.kbest-row:last-child { border-bottom: none; }
.kbest-row > span:first-child { color: var(--text-light); min-width: 70px; flex-shrink: 0; }
.kbest-row > span:last-child  { color: var(--text-dark); }
.kbest-msg > span:last-child  { white-space: pre-wrap; }
.kbest-hinweis { font-size: .78rem; color: var(--text-light); margin: 0; }

/* ── Kontakt: Fehlermeldung ──────────────────────────────────── */
.kfehler-wrap {
  background: #fff5f5;
  border: 1.5px solid #e8b4b4;
  border-radius: 10px;
  padding: .9rem 1.1rem;
  font-size: .83rem;
  color: #8b3a3a;
  margin-bottom: 1rem;
}
.kfehler-wrap a { color: #8b3a3a; }