/* Layout: geteilter Hero mit leuchtendem Vollmond; Ausbildung als drei Mondphasen-Karten; Vita mit Bogen-Portrait; dunkles Band fürs weltweite Womb Blessing mit Countdown */
:root {
  --night: #1c1930;
  --night-2: #2c2550;
  --plum: #5b2f55;
  --moon: #f3f0fa;
  --moon-dim: #c9c3dc;
  --glow: #f2d9e6;
  --bg: #faf8fc;
  --surface: #ffffff;
  --surface-2: #f2eef8;
  --fg: #221e33;
  --muted: #615a78;
  --line: #e2ddec;
  --accent: #a1497a;
  --accent-ink: #ffffff;
  --display: "Playfair Display", Georgia, serif;
  --body: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
  --radius: 22px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #14121d; --surface: #1d1a2a; --surface-2: #231f33; --fg: #efecf6; --muted: #aaa3c0;
    --line: #322d47; --accent: #e08bb6; --accent-ink: #1a1624; --night: #0f0d1a; --night-2: #1f1a3a; --plum: #3e2140;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #14121d; --surface: #1d1a2a; --surface-2: #231f33; --fg: #efecf6; --muted: #aaa3c0;
  --line: #322d47; --accent: #e08bb6; --accent-ink: #1a1624; --night: #0f0d1a; --night-2: #1f1a3a; --plum: #3e2140;
  color-scheme: dark;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--fg); font-family: var(--body); font-size: 1.0625rem; line-height: 1.7; }
.wrap { max-width: 72rem; margin: 0 auto; padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
h1, h2, h3 { font-family: var(--display); font-weight: 400; line-height: 1.08; text-wrap: balance; margin: 0; letter-spacing: -.01em; }
h2 { font-size: clamp(2.2rem, 4.6vw, 3.4rem); }
h3 { font-size: 1.65rem; }
em { font-style: italic; }
p, ul { margin: 0; }
a { color: var(--accent); }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 6px; }
.eyebrow { display: inline-flex; align-items: center; gap: .6rem; font-size: .76rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 700; color: var(--accent); }
.eyebrow::before { content: ""; width: 1.6rem; height: 1px; background: currentColor; }
.head { display: grid; gap: .9rem; max-width: 46rem; }
.lead { color: var(--muted); font-size: 1.1rem; }

/* Buttons */
.btn { display: inline-flex; align-items: center; gap: .5rem; padding: .85rem 1.5rem; border-radius: 999px; font-weight: 700; text-decoration: none; font-size: .95rem; border: 1px solid transparent; cursor: pointer; font-family: var(--body); transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.btn-primary { background: var(--accent); color: var(--accent-ink); box-shadow: 0 8px 24px -10px var(--accent); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -12px var(--accent); }
.btn-ghost { border-color: rgba(243,240,250,.35); color: var(--moon); background: rgba(255,255,255,.04); }
.btn-ghost:hover { background: rgba(255,255,255,.1); }
.btn-line { border-color: var(--line); color: var(--fg); background: var(--surface); }
.btn-line:hover { border-color: var(--accent); color: var(--accent); }
.cta-row { display: flex; flex-wrap: wrap; gap: .75rem; }

/* Navigation */
.nav { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 10; background: rgba(28,25,48,.78); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); color: var(--moon); border-bottom: 1px solid rgba(243,240,250,.08); }
.nav .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; padding-block: .85rem; }
.brand { font-family: var(--display); font-size: 1.45rem; color: var(--moon); text-decoration: none; display: inline-flex; align-items: center; gap: .55rem; }
.brand i { width: 14px; height: 14px; border-radius: 50%; background: var(--moon); box-shadow: 0 0 12px 2px rgba(242,217,230,.6); }
.nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: .2rem 1.4rem; padding: 0; font-size: .9rem; font-weight: 500; }
.nav a:not(.brand) { color: var(--moon-dim); text-decoration: none; }
.nav a:not(.brand):hover { color: var(--moon); }

/* Hero */
.hero { position: relative; overflow: hidden; color: var(--moon);
  background:
    radial-gradient(60rem 30rem at 85% 10%, rgba(161,73,122,.35), transparent 60%),
    radial-gradient(40rem 30rem at 0% 100%, rgba(91,47,85,.55), transparent 60%),
    linear-gradient(160deg, var(--night) 0%, var(--night-2) 100%); }
.hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .55;
  background-image: radial-gradient(1px 1px at 12% 22%, #fff, transparent), radial-gradient(1px 1px at 32% 68%, #fff, transparent), radial-gradient(1.5px 1.5px at 48% 14%, #fff, transparent), radial-gradient(1px 1px at 62% 82%, #fff, transparent), radial-gradient(1px 1px at 76% 40%, #fff, transparent), radial-gradient(1.5px 1.5px at 90% 70%, #fff, transparent), radial-gradient(1px 1px at 22% 88%, #fff, transparent), radial-gradient(1px 1px at 5% 50%, #fff, transparent); }
.hero .wrap { position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: center; gap: 3rem; padding-block: clamp(3.5rem, 9vw, 7rem); }
.hero-text { display: grid; gap: 1.6rem; min-width: 0; }
.hero .eyebrow { color: var(--glow); }
.hero h1 { font-size: clamp(2.8rem, 7vw, 5.4rem); }
.hero h1 em { color: var(--glow); }
.hero p.intro { max-width: 34rem; font-size: 1.15rem; color: var(--moon-dim); }
.facts { display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; padding-top: .5rem; }
.facts div { display: grid; }
.facts strong { font-family: var(--display); font-weight: 400; font-size: 2rem; color: var(--moon); line-height: 1.1; }
.facts span { font-size: .82rem; color: var(--moon-dim); }
.moon-stage { position: relative; aspect-ratio: 1; max-width: 26rem; width: 100%; justify-self: center; display: grid; place-items: center; }
.orbit { position: absolute; inset: 0; border-radius: 50%; border: 1px dashed rgba(243,240,250,.18); }
.orbit-2 { inset: 12%; border-style: solid; border-color: rgba(243,240,250,.08); }
.moon { width: 62%; aspect-ratio: 1; border-radius: 50%;
  background:
    radial-gradient(circle at 30% 35%, rgba(0,0,0,.07) 0 8%, transparent 9%),
    radial-gradient(circle at 62% 58%, rgba(0,0,0,.06) 0 12%, transparent 13%),
    radial-gradient(circle at 45% 75%, rgba(0,0,0,.05) 0 6%, transparent 7%),
    radial-gradient(circle at 38% 32%, #ffffff, #eee7f6 55%, #d8cfe6 100%);
  box-shadow: 0 0 60px 12px rgba(242,217,230,.35), 0 0 160px 40px rgba(161,73,122,.25); }
.mini { position: absolute; width: 9%; aspect-ratio: 1; border-radius: 50%; background: var(--moon); overflow: hidden; }
.mini::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--night-2); }
.m1 { top: 2%; left: 45.5%; } .m1::after { transform: translateX(45%); }
.m2 { top: 45.5%; right: 2%; } .m2::after { transform: translateX(100%); }
.m3 { bottom: 2%; left: 45.5%; } .m3::after { transform: translateX(-45%); }
.m4 { top: 45.5%; left: 2%; outline: 1px solid rgba(243,240,250,.4); }
@media (max-width: 52rem) {
  .hero .wrap { grid-template-columns: 1fr; }
  .moon-stage { max-width: 16rem; order: -1; }
}

/* Sections */
section.block .wrap { padding-block: clamp(4rem, 9vw, 7rem); display: grid; gap: 3rem; }
.tinted { background: var(--surface-2); }

/* Ausbildungsstufen */
.levels { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: 1.25rem; }
.level { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 2rem 1.75rem 1.75rem; display: grid; grid-template-rows: auto auto auto 1fr auto auto auto; gap: 1rem; min-width: 0; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.level:hover { transform: translateY(-4px); box-shadow: 0 24px 50px -30px rgba(60,30,80,.45); border-color: color-mix(in srgb, var(--accent) 35%, var(--line)); }
.level .top { display: flex; align-items: center; justify-content: space-between; }
.level .tag { font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.phase { width: 46px; aspect-ratio: 1; border-radius: 50%; background: linear-gradient(135deg, var(--accent), var(--plum)); position: relative; overflow: hidden; }
.phase::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--surface); }
.ph1::after { transform: translateX(42%); }
.ph2::after { transform: translateX(100%); }
.ph3::after { display: none; }
.ph1, .ph2 { box-shadow: inset 0 0 0 1px var(--line); }
.level p.desc { color: var(--muted); }
.level ul { list-style: none; padding: 0; display: grid; gap: .45rem; font-size: .95rem; }
.level li { display: grid; grid-template-columns: 1rem 1fr; gap: .5rem; }
.level li::before { content: "✦"; color: var(--accent); font-size: .75rem; padding-top: .3rem; }
.price { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; border-top: 1px dashed var(--line); padding-top: .8rem; font-size: .9rem; color: var(--muted); }
.price b { font-family: var(--display); font-weight: 400; font-size: 1.5rem; color: var(--fg); font-variant-numeric: tabular-nums; }
.session .price { margin-top: .7rem; padding-top: .6rem; }
.level .req { font-size: .85rem; color: var(--muted); background: var(--surface-2); border-radius: 12px; padding: .75rem .9rem; }

/* Termine */
.events { display: grid; gap: .9rem; }
.event { display: grid; grid-template-columns: 5.5rem 1fr auto; gap: 1rem 1.5rem; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.1rem 1.25rem; }
.event > * { min-width: 0; }
.date-badge { display: grid; place-items: center; text-align: center; border-radius: 16px; background: linear-gradient(160deg, var(--night), var(--night-2)); color: var(--moon); padding: .7rem .4rem; line-height: 1.1; }
.date-badge b { font-family: var(--display); font-weight: 400; font-size: 2rem; }
.date-badge span { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--moon-dim); }
.event h3 { font-size: 1.45rem; }
.event h3 a { color: inherit; text-decoration: none; }
.event h3 a:hover { color: var(--accent); }
.event .meta { color: var(--muted); font-size: .93rem; }
@media (max-width: 40rem) { .event { grid-template-columns: 4.5rem 1fr; } .event .btn { grid-column: 1 / -1; justify-self: start; } }

/* Einzelsitzungen */
.split { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 3rem; align-items: start; }
.split > * { min-width: 0; }
@media (max-width: 52rem) { .split { grid-template-columns: 1fr; } }
.sessions { display: grid; gap: 1rem; }
.session { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; padding: 1.25rem; border-radius: var(--radius); background: var(--surface); border: 1px solid var(--line); }
.session .ico { width: 3rem; aspect-ratio: 1; border-radius: 14px; display: grid; place-items: center; background: var(--surface-2); color: var(--accent); font-size: 1.2rem; }
.session p { color: var(--muted); font-size: .97rem; }
.session h3 { font-size: 1.4rem; margin-bottom: .2rem; }

/* Weltweit */
.dark { position: relative; overflow: hidden; color: var(--moon);
  background: radial-gradient(50rem 26rem at 100% 0%, rgba(161,73,122,.3), transparent 60%), linear-gradient(180deg, var(--night-2), var(--night)); }
.dark .wrap { padding-block: clamp(4rem, 9vw, 7rem); display: grid; gap: 3rem; }
.dark .eyebrow { color: var(--glow); }
.dark .lead { color: var(--moon-dim); }
.countdown { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem 3rem; align-items: center; padding: 2rem; border-radius: var(--radius); background: rgba(255,255,255,.05); border: 1px solid rgba(243,240,250,.12); }
@media (max-width: 44rem) { .countdown { grid-template-columns: 1fr; } }
.countdown .label { font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--moon-dim); }
.countdown .date { font-family: var(--display); font-size: clamp(2rem, 4.5vw, 3rem); line-height: 1.1; }
.countdown .days { color: var(--glow); font-weight: 600; }
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1.5rem 2.5rem; }
.steps > div { display: grid; gap: .5rem; min-width: 0; border-top: 1px solid rgba(243,240,250,.15); padding-top: 1.25rem; }
.steps .n { font-family: var(--display); font-style: italic; font-size: 1.4rem; color: var(--glow); }
.steps p { color: var(--moon-dim); }
.dates-row { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; }
.dates-row .label { font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--moon-dim); }
.dates { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.dates li { border: 1px solid rgba(243,240,250,.25); border-radius: 999px; padding: .3rem .9rem; font-variant-numeric: tabular-nums; font-size: .92rem; }

/* Vita */
.vita { display: grid; grid-template-columns: minmax(0, 22rem) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; }
@media (max-width: 52rem) { .vita { grid-template-columns: 1fr; } .portrait { max-width: 18rem; } }
.portrait { position: relative; aspect-ratio: 4 / 5; border-radius: 999px 999px var(--radius) var(--radius); overflow: hidden; background: linear-gradient(170deg, var(--night-2), var(--plum)); max-width: 100%; display: grid; place-items: center; }
.portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; display: block; }
.vita-text { display: grid; gap: 1.2rem; }
.vita-text p { color: var(--muted); }
blockquote { margin: 0; font-family: var(--display); font-style: italic; font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.3; color: var(--fg); border-left: 2px solid var(--accent); padding-left: 1.25rem; }
.milestones { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.milestones li { background: var(--surface-2); border-radius: 999px; padding: .4rem 1rem; font-size: .88rem; font-weight: 600; }
.milestones b { color: var(--accent); font-variant-numeric: tabular-nums; margin-right: .3rem; }

/* Newsletter */
.nl-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: center; padding: clamp(1.75rem, 4vw, 3rem); border-radius: calc(var(--radius) + 6px); background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 14%, var(--surface)), var(--surface)); border: 1px solid var(--line); }
@media (max-width: 52rem) { .nl-card { grid-template-columns: 1fr; } }
form.nl { display: flex; flex-wrap: wrap; gap: .6rem; }
form.nl label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
form.nl input { flex: 1 1 14rem; min-width: 0; padding: .85rem 1.2rem; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--fg); font: inherit; }
.nl-msg { font-size: .92rem; min-height: 1.5em; color: var(--muted); margin-top: .5rem; }

/* Footer */
footer { background: var(--night); color: var(--moon-dim); font-size: .88rem; }
footer .wrap { padding-block: 2.5rem; display: grid; gap: 1.25rem; }
footer .row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; }
footer a { color: var(--moon); text-decoration: none; }
footer a:hover { text-decoration: underline; }
footer .links { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; }

@media (prefers-reduced-motion: no-preference) {
  .moon { animation: breathe 7s ease-in-out infinite; }
  .orbit { animation: spin 90s linear infinite; }
  @keyframes breathe { 50% { box-shadow: 0 0 80px 18px rgba(242,217,230,.45), 0 0 180px 50px rgba(161,73,122,.3); } }
  @keyframes spin { to { transform: rotate(360deg); } }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .btn, .level { transition: none; } }

/* ---------- Landingpages ---------- */
.crumb { font-size: .85rem; color: var(--moon-dim); }
.crumb a { color: var(--moon-dim); text-decoration: none; }
.crumb a:hover { color: var(--moon); text-decoration: underline; }
.lp-moon { position: relative; width: min(100%, 20rem); aspect-ratio: 1; justify-self: center; display: grid; place-items: center; }
.lp-moon .disc { width: 64%; aspect-ratio: 1; border-radius: 50%; position: relative; overflow: hidden;
  background: radial-gradient(circle at 38% 32%, #ffffff, #eee7f6 55%, #d8cfe6 100%);
  box-shadow: 0 0 60px 12px rgba(242,217,230,.3), 0 0 160px 40px rgba(161,73,122,.22); }
.lp-moon .disc::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--night-2); }
.lp-moon.waxing .disc::after { transform: translateX(42%); }
.lp-moon.half .disc::after { transform: translateX(100%); }
.lp-moon.full .disc::after { display: none; }
.lp-moon.newmoon .disc { background: radial-gradient(circle at 38% 32%, #4a3f6e, #2c2550); box-shadow: 0 0 0 1px rgba(243,240,250,.35), 0 0 80px 10px rgba(161,73,122,.25); }
.lp-moon.newmoon .disc::after { display: none; }
.lp-moon .orbit { position: absolute; inset: 0; border-radius: 50%; border: 1px dashed rgba(243,240,250,.18); }
@media (max-width: 52rem) { .lp-moon { width: 11rem; order: -1; } }

.intro-band .wrap { padding-block: clamp(2.5rem, 6vw, 4rem); display: grid; gap: 1rem; max-width: 52rem; }
.intro-band p { font-size: 1.12rem; color: var(--muted); }
.intro-band p:first-of-type { font-family: var(--display); font-size: clamp(1.4rem, 2.6vw, 1.85rem); line-height: 1.35; color: var(--fg); }

.checklist { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: .9rem; }
.checklist li { display: grid; grid-template-columns: 1.4rem 1fr; gap: .6rem; align-items: start; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 1rem 1.1rem; min-width: 0; }
.checklist li::before { content: "✦"; color: var(--accent); font-size: .9rem; padding-top: .2rem; }
.req-box { background: var(--surface-2); border-radius: var(--radius); padding: 1.25rem 1.4rem; display: grid; gap: .5rem; }
.req-box h3 { font-size: 1.3rem; }
.req-box ul { padding-left: 1.2rem; display: grid; gap: .3rem; color: var(--muted); }

.why { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 1.5rem 2rem; }
.why > div { display: grid; gap: .4rem; border-top: 1px solid var(--line); padding-top: 1rem; min-width: 0; }
.why .n { font-family: var(--display); font-style: italic; font-size: 1.3rem; color: var(--accent); }

.takeaway { list-style: none; padding: 0; display: grid; gap: .75rem; }
.takeaway li { display: flex; gap: .8rem; align-items: baseline; font-size: 1.05rem; }
.takeaway li::before { content: ""; flex: none; width: .7rem; height: .7rem; border-radius: 50%; background: linear-gradient(135deg, var(--accent), var(--plum)); transform: translateY(.05rem); }

.info { display: grid; gap: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: .5rem 1.5rem; }
.info > div { display: grid; grid-template-columns: 10rem 1fr; gap: .25rem 1.5rem; padding-block: .95rem; border-bottom: 1px solid var(--line); }
.info > div:last-child { border-bottom: 0; }
.info dt { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--muted); padding-top: .2rem; }
.info dd { margin: 0; font-variant-numeric: tabular-nums; min-width: 0; }
@media (max-width: 36rem) { .info > div { grid-template-columns: 1fr; } }

.tickets { display: grid; gap: .75rem; }
.ticket { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem 1.5rem; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 1.1rem 1.4rem; }
.ticket.featured { border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); box-shadow: 0 18px 40px -28px rgba(60,30,80,.5); }
.ticket .name { font-weight: 600; }
.ticket .name small { display: block; font-weight: 400; color: var(--muted); font-size: .88rem; }
.ticket .amount { font-family: var(--display); font-size: 1.8rem; font-variant-numeric: tabular-nums; }
.fine { font-size: .9rem; color: var(--muted); }

.faq { display: grid; gap: .6rem; max-width: 52rem; }
.faq details { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 0 1.25rem; }
.faq summary { cursor: pointer; list-style: none; padding-block: 1.05rem; font-weight: 600; display: flex; justify-content: space-between; gap: 1rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-family: var(--display); font-size: 1.5rem; line-height: 1; color: var(--accent); transition: transform .2s ease; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { color: var(--muted); padding-bottom: 1.1rem; }

.closing .wrap { text-align: center; justify-items: center; }
.closing h2 { max-width: 22ch; }
.legal { font-size: .88rem; color: var(--muted); display: grid; gap: .6rem; max-width: 52rem; }
.legal h3 { font-family: var(--body); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--fg); }

.level .more { font-weight: 700; text-decoration: none; font-size: .95rem; }
.level .more:hover { text-decoration: underline; }

/* Spiel-Teaser beim Newsletter */
.game-teaser { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1.25rem 2rem; align-items: center; margin-top: 1.25rem; padding: 1.5rem 1.75rem; border-radius: var(--radius); color: var(--moon);
  background: radial-gradient(30rem 14rem at 100% 0%, rgba(161,73,122,.35), transparent 60%), linear-gradient(160deg, var(--night), var(--night-2)); }
.game-teaser h3 { font-size: clamp(1.5rem, 2.6vw, 1.9rem); }
.game-teaser h3 em { color: var(--glow); }
.game-teaser p { color: var(--moon-dim); font-size: .98rem; }
.game-teaser .gt-text { display: grid; gap: .4rem; }
.game-teaser .btn-line { background: transparent; color: var(--moon); border-color: rgba(243,240,250,.35); }
.mini-moons { display: flex; gap: .45rem; }
.mm { width: 22px; aspect-ratio: 1; border-radius: 50%; background: var(--moon); position: relative; overflow: hidden; }
.mm::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--night-2); }
.m-wax::after { transform: translateX(45%); }
.m-full { box-shadow: 0 0 14px 2px rgba(242,217,230,.5); }
.m-full::after { display: none; }
.m-wane::after { transform: translateX(-45%); }
.m-new { outline: 1px solid rgba(243,240,250,.4); }
@media (max-width: 52rem) { .game-teaser { grid-template-columns: 1fr; } }

/* Rechtstexte */
.legal-page { max-width: 46rem; display: grid; gap: .9rem; }
.legal-page h1 { font-size: clamp(2.2rem, 5vw, 3.2rem); margin-bottom: .5rem; }
.legal-page h2 { font-family: var(--body); font-size: 1.05rem; font-weight: 700; margin-top: 1.2rem; }
.legal-page p, .legal-page li { color: var(--muted); }
.legal-page ul { padding-left: 1.2rem; display: grid; gap: .35rem; }
.legal-page strong { color: var(--fg); }

/* Miranda Gray im weltweiten Womb Blessing */
.miranda { display: grid; grid-template-columns: minmax(0, 14rem) minmax(0, 1fr); gap: 1rem 2.5rem; padding-top: 2.5rem; border-top: 1px solid rgba(243,240,250,.15); }
.miranda h3 { font-size: clamp(1.8rem, 3.4vw, 2.4rem); }
.miranda-text { display: grid; gap: 1rem; color: var(--moon-dim); }
.miranda-text a { color: var(--glow); font-weight: 600; text-decoration: none; }
.miranda-text a:hover { text-decoration: underline; }
.books { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.books li { font-family: var(--display); font-style: italic; font-size: 1.1rem; color: var(--moon); border: 1px solid rgba(243,240,250,.25); border-radius: 999px; padding: .2rem .9rem; }
@media (max-width: 44rem) { .miranda { grid-template-columns: 1fr; } }

.eyebrow .lines { display: grid; gap: .15rem; }

/* Fotos */
.photo { margin: 0; border-radius: var(--radius); overflow: hidden; box-shadow: 0 24px 50px -30px rgba(60,30,80,.5); max-width: 100%; }
.photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.media-split { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 2rem 3rem; align-items: center; }
.media-split .photo { aspect-ratio: 4 / 3; }
@media (max-width: 52rem) { .media-split { grid-template-columns: 1fr; } }
#einzelsitzungen .head .photo { aspect-ratio: 1; margin-top: 1rem; max-width: 26rem; }
.books-photo { margin-top: 1rem; aspect-ratio: 4 / 3; }

/* Galerieband */
.gallery { padding-block: clamp(3rem, 7vw, 5rem); overflow: hidden; }
.gallery-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1rem 2rem; margin-bottom: 2rem; }
.marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.track { list-style: none; margin: 0; padding: 0; display: flex; gap: 1rem; width: max-content; }
.track li { flex: none; width: clamp(12rem, 22vw, 17rem); aspect-ratio: 1; border-radius: 18px; overflow: hidden; }
.track img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (prefers-reduced-motion: no-preference) {
  .track { animation: drift 100s linear infinite; }
  .marquee:hover .track, .marquee:focus-within .track { animation-play-state: paused; }
  @keyframes drift { to { transform: translateX(calc(-50% - .5rem)); } }
}
@media (prefers-reduced-motion: reduce) { .marquee { overflow-x: auto; } .track li[aria-hidden] { display: none; } }

/* Landingpage-Fotos */
.lp-photo { margin: 0; justify-self: center; width: min(100%, 24rem); aspect-ratio: 4 / 5; border-radius: 999px 999px var(--radius) var(--radius); overflow: hidden; box-shadow: 0 0 60px 6px rgba(242,217,230,.18), 0 30px 60px -30px rgba(0,0,0,.6); }
.lp-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 52rem) { .lp-photo { width: min(100%, 16rem); order: -1; } }
.ww-split .ww-photo { aspect-ratio: 3 / 4; max-width: 20rem; justify-self: center; box-shadow: 0 0 60px 6px rgba(242,217,230,.15); }

/* Gedicht Level 4 */
.poem-band .wrap { justify-items: center; text-align: center; }
.poem-band p { max-width: 40rem; }
.intro-band.poem-band p.poem { font-family: var(--display); font-style: italic; font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.4; color: var(--accent); margin-bottom: 1rem; }
.ph4::after { display: none; }
.ph4 { box-shadow: 0 0 0 3px var(--surface), 0 0 0 4px color-mix(in srgb, var(--accent) 50%, transparent), 0 0 16px 4px color-mix(in srgb, var(--accent) 35%, transparent); }

/* Ausbildungsstufen untereinander */
.levels { grid-template-columns: 1fr; gap: 1rem; }
.level { grid-template-rows: none; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 3rem; row-gap: .8rem; align-items: start; }
.level > * { grid-column: 1; }
.level ul { grid-column: 2; grid-row: 1 / span 6; align-self: center; }
@media (max-width: 44rem) {
  .level { grid-template-columns: 1fr; }
  .level ul { grid-column: 1; grid-row: auto; }
}

/* Formate, Hinweise */
.formats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1.25rem; }
.format { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.6rem; display: grid; gap: .8rem; align-content: start; min-width: 0; }
.checklist.one-col { grid-template-columns: 1fr; }
.vita-text h3 { font-size: 1.5rem; margin-top: .5rem; }
.empty-note { margin-top: 1.5rem; padding: 1.5rem 1.6rem; border: 1px dashed var(--line); border-radius: var(--radius); display: grid; gap: .6rem; background: var(--surface); }
.event .meta { overflow-wrap: anywhere; }

/* Kopfbereich: Mondbogen */
.moon-arc { width: 100%; max-width: 28rem; justify-self: center; }
.moon-arc svg { display: block; width: 100%; height: auto; overflow: visible; }
@media (max-width: 52rem) { .moon-arc { max-width: 15rem; order: -1; } }
@media (prefers-reduced-motion: no-preference) {
  .moon-arc .schein { transform-origin: 200px 230px; animation: schein 7s ease-in-out infinite; }
  @keyframes schein { 50% { transform: scale(1.08); opacity: .85; } }
}

/* Gastgeberin bei Einzelsitzungen */
.host { display: inline-flex; align-items: center; gap: .8rem; text-decoration: none; color: var(--fg); padding: .5rem 1rem .5rem .5rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); justify-self: start; }
.host img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; object-position: 50% 30%; }
.host span { display: grid; line-height: 1.3; }
.host b { font-weight: 700; }
.host small { color: var(--muted); font-size: .85rem; }
.host:hover { border-color: var(--accent); }
.time-note { color: var(--moon-dim); font-size: .95rem; border-left: 2px solid var(--glow); padding-left: 1rem; max-width: 46rem; margin: 0; }
.time-note strong { color: var(--moon); }

.game-band { padding-block: clamp(2rem, 5vw, 3rem); }
.game-band .game-teaser { margin-top: 0; }

/* Miranda Gray auf hellem Grund */
.miranda-band .miranda { border-top: 0; padding-top: 0; }
.miranda-band .eyebrow { color: var(--accent); }
.miranda-band .miranda h3 { color: var(--fg); }
.miranda-band .miranda-text { color: var(--muted); }
.miranda-band .miranda-text a { color: var(--accent); }
.miranda-band .books li { color: var(--fg); border-color: var(--line); background: var(--surface); }

/* Schrift: Playfair Display + Source Sans 3 */
h1, h2, h3, .brand, .facts strong, .date-badge b, .ticket .amount, .price b, .level .num, blockquote, .books li, .poem { font-weight: 500; }
.hero h1 { font-size: clamp(2.6rem, 6.4vw, 4.8rem); line-height: 1.08; }
h2 { font-size: clamp(2rem, 4.2vw, 3rem); }

.lvl-icon { display: block; width: 72px; height: auto; flex: none; }
.books-label { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--muted); margin-bottom: -.4rem; }

/* Buch-Links */
.books { gap: .4rem; }
.books li { padding: 0; font-size: .9rem; }
.books li a { display: inline-block; padding: .25rem .75rem; color: inherit !important; text-decoration: none !important; font-weight: 500 !important; white-space: nowrap; border-radius: 999px; }
.books li a span { font-family: var(--body); font-style: normal; font-size: .8em; color: var(--accent); }
.miranda-band .books li:hover { border-color: var(--accent); }
@media (max-width: 30rem) { .books li a { white-space: normal; } }

/* Weitere Angebote (LunaLux) */
.more-offers { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 2rem; display: grid; gap: .8rem; align-content: start; min-width: 0; }
.more-offers .ico { width: 3rem; aspect-ratio: 1; border-radius: 14px; display: grid; place-items: center; background: var(--surface-2); color: var(--accent); font-size: 1.3rem; }
.more-offers p { color: var(--muted); }

/* Alfima-Landingpages */
.lp-nav .wrap { flex-wrap: nowrap; }
.lp-back { color: var(--moon-dim); text-decoration: none; font-size: .9rem; white-space: nowrap; }
.lp-back:hover { color: var(--moon); }
.ph-mark { background: color-mix(in srgb, #d4a94e 28%, transparent); border-radius: 4px; padding: 0 .25em; font-style: normal; }

/* ---------- Online-Kurs: Ablauf der Einheiten ---------- */
#online-ablauf p.poem { font-family: var(--display); font-style: italic; font-size: clamp(1.25rem, 2.4vw, 1.6rem); line-height: 1.45; color: var(--accent); margin: 1.2rem 0; }
#online-ablauf .class-intro { max-width: 46rem; display: grid; gap: .8rem; }
.class-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1.2rem; margin-top: 2rem; }
.class-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem 1.6rem; display: grid; gap: .7rem; align-content: start; }
.class-card h3 { font-family: var(--display); font-size: 1.3rem; line-height: 1.3; margin: 0; }
.class-card .eyebrow { margin: 0; }
.class-card p { margin: 0; }

/* ---------- Bilderpaar neben „Vier Stufen, ein Weg“ ---------- */
.photo-duo { display: grid; grid-template-columns: 5fr 6fr; gap: 1rem; align-items: end; }
.photo-duo .photo:first-child { aspect-ratio: 3 / 4; }
.photo-duo .photo:last-child { aspect-ratio: 4 / 3; margin-bottom: 2.5rem; }
.photo-duo img { width: 100%; height: 100%; object-fit: cover; display: block; }
#einzelsitzungen .head .photo { aspect-ratio: 4 / 3; max-width: 30rem; }
#einzelsitzungen .head .photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.track img[src*="healing-haende"] { object-position: 50% 35%; }
/* Level 1: Inhalte mit Foto */
.content-photo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
.content-photo .checklist { grid-template-columns: 1fr; }
.content-photo .photo { aspect-ratio: 4 / 3; position: sticky; top: 6rem; }
.content-photo .photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 52rem) { .content-photo { grid-template-columns: 1fr; } .content-photo .photo { position: static; aspect-ratio: 4 / 3; } }
.track img[src*="blessing-haende"] { object-position: 50% 30%; }
.date-badge b span { font-size: inherit; letter-spacing: 0; text-transform: none; color: inherit; }

/* ---------- Hinweisbox in Level-Karten (z. B. Voranmeldung) ---------- */
.announce { border-top: 1px dashed var(--line); padding-top: .9rem; display: grid; gap: .5rem; justify-items: start; }
.announce-title { font-family: var(--display); font-size: 1.35rem; color: var(--accent); margin: 0; }
.announce p { margin: 0; }
.announce img { width: 100%; border-radius: 14px; display: block; }
/* Online-Kurs: Foto neben der Einleitung */
.class-top { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 2rem 3rem; align-items: start; margin-top: 1.5rem; }
.class-top .photo { aspect-ratio: auto; }
.class-top .photo img { height: auto; }
.class-top figcaption { font-size: .9rem; color: var(--muted); padding: .7rem .2rem 0; }
@media (max-width: 52rem) { .class-top { grid-template-columns: 1fr; } }
.miranda-band .miranda { grid-template-columns: minmax(0, 22rem) minmax(0, 1fr); }
#miranda .books-photo { aspect-ratio: 747 / 545; height: auto; align-self: start; }
#miranda .books-photo img { width: 100%; height: auto; }
/* Porträt Monika gleich groß wie Miranda-Foto */
.vita { grid-template-columns: minmax(0, 14rem) minmax(0, 1fr); }
.portrait { width: 14rem; max-width: 100%; }

/* ---------- Miranda und Monika im gleichen Stil, Bilder gespiegelt ---------- */
.vita { grid-template-columns: minmax(0, 18rem) minmax(0, 1fr); }
.portrait { width: 18rem; }
.vita-reverse { grid-template-columns: minmax(0, 1fr) minmax(0, 18rem); }
#miranda .portrait img { object-position: 50% 30%; }
.books-pills li { padding: 0; }
.books-pills li a { display: inline-block; padding: .4rem 1rem; color: var(--fg); text-decoration: none; font-weight: 600; }
.books-pills li a span { color: var(--accent); }
.books-pills li:hover { background: var(--glow); }
#miranda .more { color: var(--accent); font-weight: 600; text-decoration: none; }
@media (max-width: 52rem) { .vita, .vita-reverse { grid-template-columns: 1fr; } .vita-reverse .portrait { order: -1; } .portrait { width: 18rem; max-width: 100%; justify-self: center; } }
#miranda .milestones li { background: var(--surface); border: 1px solid var(--line); }
/* Newsletter mit Foto, Galerie länger */
.nl-with-photo { grid-template-columns: minmax(0, 13rem) minmax(0, 1fr) minmax(0, 1fr); }
.nl-photo { aspect-ratio: 1; border-radius: 50%; }
.nl-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; }
@media (max-width: 52rem) { .nl-with-photo { grid-template-columns: 1fr; } .nl-photo { width: 11rem; } }
.track { animation-duration: 120s !important; }
.track img[src*="monika-skript"] { object-position: 30% 50%; }
.nl-card > div:last-child { display: grid; gap: 1.1rem; align-content: center; }
.nl-card > div:last-child .cta-row { margin: 0; }
.nl-card > div:last-child .fine { margin: 0; }
/* Online-Einheiten untereinander */
.class-grid { grid-template-columns: 1fr; max-width: 60rem; gap: 1rem; }
.class-card { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); column-gap: 2.5rem; padding: 1.6rem 2rem; align-items: start; }
.cc-head { display: grid; gap: .6rem; }
.cc-text { display: grid; gap: .8rem; }
@media (max-width: 44rem) { .class-card { grid-template-columns: 1fr; row-gap: 1rem; padding: 1.4rem; } }
.wer-photo { margin-top: 1.5rem; max-width: 20rem; aspect-ratio: 1; }
.announce img { max-width: 14rem; height: auto; aspect-ratio: 1; object-fit: cover; }

/* Video Anmeldung weltweites Womb Blessing */
.ww-video { display: grid; gap: .7rem; max-width: 46rem; width: 100%; margin: 0 auto; }
.ww-video video { display: block; width: 100%; height: auto; aspect-ratio: 848 / 464; border-radius: var(--radius); background: var(--night-2); box-shadow: 0 0 60px 6px rgba(242,217,230,.12); }
.ww-video figcaption { color: var(--moon-dim); font-size: .92rem; text-align: center; }
.steps ul { list-style: none; padding: 0; display: grid; gap: .35rem; color: var(--moon-dim); }
.steps li { position: relative; padding-left: 1.1rem; }
.steps li::before { content: ""; position: absolute; left: 0; top: .7em; width: .4rem; height: .4rem; border-radius: 50%; background: var(--glow); }
.steps a { color: var(--glow); }
.steps h3 { line-height: 1.25; }
.steps { grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); row-gap: 2.5rem; }
.steps > div { align-content: start; }
