:root {
  --purple: #912178;
  --pink-1: #f4e9f2;
  --pink-2: #e3c7dd;
  --text: #2b2b2b;
  --heading: #333333;
  --gold: linear-gradient(45deg, #e5bf70, #fffbdc, #ad8542);
  --container: 1250px;
  --font: "Geologica", system-ui, sans-serif;
  --font-btn: "Open Sans", system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font); font-size: 18px; line-height: 1.5; color: var(--text); background: #fff; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--font); font-weight: 500; color: var(--heading); margin: 0 0 .5em; line-height: 1.3; }
p { margin: 0 0 1em; }
ul { margin: 0; padding-left: 1.1em; }
strong, b { font-weight: 700; }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 20px; }
.container--narrow { max-width: 880px; }
.center { text-align: center; }
.h2 { font-size: 40px; }
.h3 { font-size: 34px; }
.lead { font-size: 22px; font-weight: 300; color: var(--heading); margin: 40px 0 30px; }

/* ---------- Button ---------- */
.btn {
  display: inline-flex; flex-direction: column; align-items: center; gap: 4px;
  font-family: var(--font-btn); font-size: 24px; font-weight: 700; line-height: 1; color: var(--text);
  background: var(--gold); background-size: 150% auto; background-position: 100% 50%;
  border: 0; border-radius: 50px; padding: 12px 70px 9px; cursor: pointer;
  box-shadow: 0 4px 4px rgba(0,0,0,.25); transition: background-position .4s ease, transform .2s ease;
  animation: shake 6s ease-in-out 2s infinite;
}
.btn small { font-size: 14px; font-weight: 400; }
.btn del { opacity: .85; }
.btn:hover { background-position: 0 50%; }
.btn:focus-visible { outline: 3px solid var(--purple); outline-offset: 3px; }
.btn--sm { padding: 10px 44px 8px; }
@keyframes shake { 0%, 92%, 100% { transform: translateX(0); } 94% { transform: translateX(-4px); } 96% { transform: translateX(4px); } 98% { transform: translateX(-2px); } }
@media (prefers-reduced-motion: reduce) { .btn { animation: none; } html { scroll-behavior: auto; } }

.tag { display: inline-block; background: var(--purple); color: #fff; font-size: 12px; line-height: 18px; padding: 7px 22px; border-radius: 4px; margin-bottom: 18px; }

/* ---------- Topbar ---------- */
.topbar { background: linear-gradient(45deg, #e5bf70 0%, #fffbdc 49%, #ad8542 100%); }
.topbar__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; min-height: 83px; padding-top: 10px; padding-bottom: 10px; }
.topbar__info { display: flex; align-items: center; gap: 12px; font-size: 14px; }
.topbar__info p { margin: 0; line-height: 1.4; max-width: 420px; }
.topbar__logo { width: 196px; }
.topbar__countdown { display: flex; align-items: center; justify-content: flex-end; gap: 22px; font-size: 14px; }
.countdown { display: flex; gap: 18px; }
.countdown div { display: flex; flex-direction: column; align-items: center; line-height: 1.5; }
.countdown b { font-family: var(--font-btn); font-weight: 600; color: var(--heading); }

/* ---------- Hero ---------- */
.hero { background: linear-gradient(180deg, var(--pink-1) 0%, var(--pink-2) 100%); position: relative; overflow: hidden; }
.hero__grid { display: grid; grid-template-columns: minmax(0, 830px) 1fr; gap: 20px; padding-top: 40px; min-height: 666px; }
.hero__text { padding-bottom: 20px; position: relative; z-index: 2; }
.hero__kicker { font-size: 18px; margin-bottom: 14px; }
.hero h1 { font-size: 46px; margin: 0 0 22px -20px; padding-left: 20px; }
.brush { display: inline-block; color: #fff; padding: 5px 15px; margin: 0 -8px; background-repeat: no-repeat; background-position: center; background-size: 100% 100%; }
.brush--1 { background-image: url("../img/Vector-5-1.svg"); }
.brush--2 {
  background-image: url("../img/Vector-6-3.svg");
  /* Der Strich ist von Natur aus lang und flach. Damit er ueber dem kurzen Wort
     nicht gestaucht wirkt, bekommt das Feld mehr Innenabstand und zieht den
     Nachbartext per negativem Aussenabstand wieder heran. */
  /* Links mehr Platz, weil das Wort am Zeilenanfang steht. Rechts kurz halten,
     damit der Strich nicht bis an das naechste Wort reicht. */
  /* In em, damit die Proportion bei jeder Schriftgroesse stimmt (Desktop 46px). */
  padding-left: 1.61em; padding-right: .43em;
  margin-left: -1.39em; margin-right: .13em;
}
@media (max-width: 760px) {
  /* Auf schmalen Schirmen darf der Strich links nicht aus dem Seitenrand laufen. */
  .brush--2 { padding-left: .9em; padding-right: .5em; margin-left: -.5em; margin-right: .1em; }
}
.hero__copy { font-size: 18px; }
.hero__copy p { margin-bottom: .6em; }
.hero__text .btn { margin: 24px 0 26px; }
.hero__proof { display: flex; align-items: center; gap: 14px; font-size: 14px; }
.hero__proof p { margin: 0; }
.hero__badges { width: 392px; margin-top: 14px; }
.hero__visual { position: static; }
.hero__photo { position: absolute; top: 40px; left: calc(50% + 146px); width: 671px; max-width: none; z-index: 1; }
.review-card { position: absolute; top: 551px; left: calc(50% - 106px); width: 381px; margin: 0; background: #fefefe; border-radius: 8px; box-shadow: 0 10px 20px rgba(0,0,0,.1); padding: 18px 20px 16px; z-index: 3; }
.review-card__head { display: flex; align-items: center; gap: 12px; font-size: 14px; margin-bottom: 12px; }
.review-card__head img:first-child { width: 40px; border-radius: 50%; }
.review-card__stars { margin-left: auto; width: 92px; }
.review-card blockquote { margin: 0; font-size: 12px; line-height: 1.55; color: #666; }

/* ---------- Pillars ---------- */
.pillars { padding: 90px 0 40px; overflow: hidden; }
.pillars__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin: 40px 0 70px; }
.pillar { display: flex; align-items: center; gap: 20px; background: var(--purple); border-radius: 6px; padding: 22px 30px; min-height: 120px; }
.pillar h3 { color: #fff; font-size: 20px; margin: 0; }
.pillar__icon { flex: 0 0 56px; height: 56px; background: #fff; border-radius: 6px; display: grid; place-items: center; }
.pillars__text { max-width: 820px; margin: 0 auto; text-align: center; }

/* ---------- Split sections ---------- */
.split { display: grid; grid-template-columns: minmax(0, 39%) minmax(0, 1fr); align-items: center; }
.split--pink { background: var(--pink-1); }
.split__media img { width: 100%; height: 100%; object-fit: cover; }
.split--pink .split__media { align-self: stretch; }
.split__text { padding: 50px 60px 50px 110px; max-width: 830px; font-size: 16px; }
.split__text .btn { margin-top: 14px; }

/* ---------- Testimonial ---------- */
.testimonial { display: grid; grid-template-columns: 33% 1fr; min-height: 512px; }
.testimonial__person { background: var(--pink-1); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 40px 20px; }
.testimonial__person img { width: 120px; border-radius: 50%; margin-bottom: 18px; }
.testimonial__name { font-size: 34px; font-weight: 500; color: var(--heading); margin: 0; line-height: 1.2; }
.testimonial__place { font-size: 30px; color: #888; margin: 0 0 30px; line-height: 1.2; }
.testimonial__nav { display: flex; gap: 16px; }
.testimonial__nav button { width: 78px; height: 78px; border-radius: 50%; border: 0; background: #fff; color: var(--heading); cursor: pointer; display: grid; place-items: center; }
.testimonial__nav[hidden] { display: none; }
.testimonial__quote { position: relative; background: var(--purple); display: flex; align-items: center; padding: 60px 14% 60px 100px; overflow: hidden; }
.testimonial__quote::before, .testimonial__quote::after { content: ""; position: absolute; width: 219px; height: 164px; background-repeat: no-repeat; background-size: contain; pointer-events: none; }
.testimonial__quote::before { top: 0; left: 0; background-image: url("../img/Group-2026-03-13T091001.231.svg"); }
.testimonial__quote::after { right: 100px; bottom: 0; background-image: url("../img/Group-2026-03-13T091005.559.svg"); }
.testimonial__quote blockquote { display: none; margin: 0; max-width: 640px; color: #fff; font-size: 24px; line-height: 1.5; position: relative; z-index: 1; }
.testimonial__quote blockquote.is-active { display: block; }

/* ---------- Facts ---------- */
.facts { padding: 70px 0 80px; }
.facts__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; text-align: center; }
.fact img { width: 40px; margin: 0 auto 26px; }
.fact h3 { font-size: 34px; margin-bottom: 14px; }
.fact p { font-size: 16px; max-width: 290px; margin: 0 auto; }

/* ---------- Compare ---------- */
.compare { background: linear-gradient(180deg, var(--pink-1) 0%, var(--pink-2) 100%); padding: 70px 0 80px; }
.compare__title { margin-bottom: 40px; }
.compare__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; max-width: 1028px; margin: 0 auto; }
.compare__card { background: #fff; padding: 20px 40px 40px; }
.compare__card--purple { background: url("../img/Rectangle-5803-1.png") center / cover no-repeat, var(--purple); color: #fff; }
.compare__card--purple h3 { color: #fff; }
.compare__head { display: flex; gap: 20px; align-items: flex-start; margin-bottom: 30px; }
.compare__head img { flex: 0 0 auto; margin-top: -2px; }
.compare__head h3 { font-size: 24px; margin: 0; overflow-wrap: anywhere; hyphens: auto; }
.compare__card ul { list-style: none; padding: 0; font-size: 16px; }
.compare__card li { min-height: 64px; margin-bottom: 20px; }

/* ---------- Days ---------- */
.days { background: var(--pink-1); padding: 50px 0 40px; }
.days__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin: 50px 0 10px; }
.day { position: relative; background: #fff; padding: 34px 28px 110px; }
.day h3 { font-size: 24px; margin-bottom: 14px; }
.day__intro { font-style: italic; font-size: 16px; margin-bottom: 20px; }
.day ul { font-size: 14px; }
.day li { margin-bottom: 18px; padding-left: 4px; }
.day::after { content: ""; position: absolute; right: -14px; bottom: -6px; width: 140px; height: 80px; background: url("../img/image-23-2.png") center / contain no-repeat; }
.days__photo { align-self: stretch; display: flex; align-items: flex-end; }
.days__photo img { width: 100%; }

/* ---------- Bonus ---------- */
.bonus { background: var(--pink-1); padding: 50px 0 110px; }
.bonus__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 50px; }
.bonus__card { background: #fff; padding: 34px 28px 40px; }
.bonus__card h3 { font-size: 26px; }
.bonus__card p { font-size: 16px; max-width: 390px; }

/* ---------- About ---------- */
.about { padding: 80px 0 42px; box-shadow: inset 0 18px 18px -18px rgba(0,0,0,.25); }
.about__grid { display: grid; grid-template-columns: 383px 1fr; gap: 60px; align-items: start; }
.about__photo { width: 383px; }
.about__grid p { font-size: 16px; }
.expertise { background: var(--pink-1); border-radius: 15px; padding: 26px 40px 30px; margin: 50px 40px 50px; }
.expertise h3 { font-size: 22px; margin-bottom: 18px; }
.expertise ul { font-size: 16px; }
.expertise li { margin-bottom: 6px; }

/* ---------- Ticket ---------- */
.ticket { background: linear-gradient(0deg, var(--purple) 0%, var(--pink-1) 100%); padding: 110px 0 100px; }
.ticket h2 { color: #fff; font-size: 40px; margin-bottom: 34px; }

.wide-photo img { width: 100%; height: auto; }

/* ---------- FAQ ---------- */
.faq { padding: 80px 0 90px; }
.faq h2 { margin-bottom: 60px; }
.faq__group { font-size: 20px; color: var(--purple); margin: 44px 0 4px; }
.faq h2 + .faq__group { margin-top: 0; }
.faq details { border-bottom: 1px solid #ddd; }
.faq details a { color: var(--purple); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 0; font-family: var(--font-btn); font-size: 16px; font-weight: 600; color: var(--heading); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 26px; font-weight: 400; line-height: 1; }
.faq details[open] summary::after { content: "−"; }
.faq details p { font-family: var(--font-btn); font-size: 16px; color: #555; padding-bottom: 12px; }

/* ---------- Invite ---------- */
/* Nur seitlich beschneiden: das Foto ragt bewusst nach oben aus dem Abschnitt heraus. */
.invite { background: url("../img/Group-1000004225.png") center / cover no-repeat, var(--pink-1); position: relative; overflow-x: clip; }
.invite__grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: 417px; }
.invite__photo { width: 774px; max-width: none; margin: -100px 0 0 -230px; align-self: end; }
.invite__text { padding: 40px 0 50px 20px; }
.invite__text h2 { font-size: 40px; }
.invite__text p { font-size: 20px; }

.footer { background: var(--purple); color: #fff; }
.footer__inner { display: flex; justify-content: space-between; align-items: center; min-height: 64px; font-size: 14px; gap: 20px; }
.footer p { margin: 0; }
.footer nav { display: flex; gap: 60px; }
.footer a { color: #fff; text-decoration: none; }
.footer a:hover { text-decoration: underline; }

/* ---------- Signup dialog ---------- */
.signup { margin: auto; border: 0; padding: 24px 12px 12px; border-radius: 8px; width: min(580px, calc(100vw - 24px)); max-height: calc(100vh - 24px); }
.signup::backdrop { background: rgba(0,0,0,.6); }
.signup__close { position: absolute; top: 4px; right: 8px; border: 0; background: none; font-size: 30px; line-height: 1; cursor: pointer; color: var(--heading); }
.signup__frame iframe { display: block; width: 100%; height: 460px; border: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
  .hero__grid { grid-template-columns: minmax(0, 620px) 1fr; }
  .hero__photo { width: 540px; left: auto; right: 0; top: 80px; }
  .review-card { left: auto; right: 360px; top: 560px; width: 340px; }
  .split__text { padding-left: 60px; }
  .invite__photo { width: 620px; margin-left: -160px; }
}

@media (max-width: 960px) {
  .h2, .ticket h2, .invite__text h2 { font-size: 32px; }
  .h3, .fact h3, .testimonial__name { font-size: 28px; }
  .topbar__inner { grid-template-columns: 1fr auto; }
  .topbar__info { grid-column: 1 / -1; order: 2; justify-content: center; text-align: center; }
  .topbar__logo { order: 1; width: 160px; }
  .topbar__countdown { order: 1; }
  .hero__grid { grid-template-columns: 1fr; padding-top: 40px; }
  .hero__text { padding-bottom: 0; }
  .hero__grid { min-height: 0; }
  .hero__visual { position: relative; justify-self: center; }
  .hero__photo { position: relative; top: auto; left: auto; right: auto; width: 100%; max-width: 520px; margin: 20px auto 0; }
  .review-card { position: relative; top: auto; left: auto; right: auto; width: auto; margin: -60px 0 30px; }
  .pillars { padding-top: 70px; }
  .pillars__grid, .facts__grid, .compare__grid, .bonus__grid { grid-template-columns: minmax(0, 1fr); }
  .days__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split, .testimonial, .invite__grid { grid-template-columns: minmax(0, 1fr); }
  .split__text { padding: 40px 20px 50px; }
  .testimonial__quote { padding: 110px 30px 120px; }
  .testimonial__quote::after { right: 20px; }
  .testimonial__quote blockquote { font-size: 22px; }
  .about__grid { grid-template-columns: 1fr; gap: 30px; }
  .about__photo { margin: 0 auto; width: 300px; }
  .expertise { margin: 40px 0; padding: 24px; }
  .invite__photo { width: 100%; margin: -40px 0 0; }
  .invite__text { padding: 10px 0 50px; }
}

@media (max-width: 600px) {
  body { font-size: 16px; }
  .hero h1 { font-size: 34px; }
  .brush { margin: 0 -4px; padding: 3px 10px; }
  .h2, .ticket h2, .invite__text h2 { font-size: 28px; }
  .h3, .fact h3, .testimonial__name { font-size: 24px; }
  .lead { font-size: 19px; }
  .lead br, .compare__title br { display: none; }
  .btn { font-size: 20px; padding: 10px 34px 8px; }
  .btn small { font-size: 12px; }
  .topbar__inner { grid-template-columns: 1fr; justify-items: center; gap: 8px; }
  .topbar__countdown { justify-content: center; }
  .hero__badges { width: 100%; }
  .days__grid { grid-template-columns: minmax(0, 1fr); }
  .compare__card { padding: 20px 22px 24px; }
  .compare__card li { min-height: 0; }
  .testimonial__place { font-size: 22px; }
  .testimonial__nav button { width: 60px; height: 60px; }
  .footer__inner { flex-direction: column; justify-content: center; padding-top: 14px; padding-bottom: 14px; }
  .footer nav { gap: 30px; }
  .signup__frame iframe { height: 540px; }
}

/* ---------- Stimmen aus dem Chat ---------- */
.stimmen { background: #fff; padding: 80px 0 90px; }
.stimmen h2 { margin-bottom: 10px; }
.stimmen__intro { font-size: 17px; color: #666; margin: 0 auto 44px; max-width: 640px; }
.stimmen__grid { column-count: 3; column-width: 300px; column-gap: 22px; margin-bottom: 46px; }
.stimmen__karte {
  break-inside: avoid; margin: 0 0 22px; padding: 10px;
  background: var(--pink-1); border-radius: 14px;
  box-shadow: 0 3px 14px rgba(43,43,43,.10);
}
.stimmen__karte img { width: 100%; border-radius: 8px; }
@media (max-width: 760px) {
  .stimmen { padding: 56px 0 64px; }
  .stimmen__grid { column-count: 1; column-width: auto; }
}

/* ---------- Einwilligungsbanner ---------- */
.consent {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
  background: #fff; border-top: 3px solid var(--purple);
  box-shadow: 0 -6px 26px rgba(43,43,43,.18);
}
.consent[hidden] { display: none; }
.consent__inner {
  max-width: var(--container); margin: 0 auto; padding: 18px 20px;
  display: flex; align-items: center; gap: 26px; flex-wrap: wrap;
}
.consent__text { margin: 0; flex: 1 1 400px; font-size: 15px; line-height: 1.5; color: var(--text); }
.consent__text a { color: var(--purple); }
.consent__buttons { display: flex; gap: 12px; flex: 0 0 auto; }
.consent__btn {
  font-family: var(--font-btn); font-size: 15px; font-weight: 600; line-height: 1;
  padding: 13px 24px; border-radius: 50px; cursor: pointer;
  border: 2px solid var(--purple); background: #fff; color: var(--purple);
  transition: background .2s ease, color .2s ease;
}
.consent__btn:hover { background: var(--pink-1); }
.consent__btn[data-consent="ja"] { background: var(--purple); color: #fff; }
.consent__btn[data-consent="ja"]:hover { background: #7a1b65; }
.footer__link {
  font: inherit; color: inherit; background: none; border: 0; padding: 0;
  cursor: pointer; text-decoration: underline;
}
@media (max-width: 760px) {
  .consent__inner { gap: 14px; padding: 16px; }
  .consent__buttons { width: 100%; }
  .consent__btn { flex: 1; padding: 13px 10px; }
}

/* ---------- Danke-Seite ---------- */
.danke-seite { background: var(--pink-1); }
.danke-top { background: #fff; padding: 0 0 14px; }
.danke-seite--kurz .danke-top { padding: 0; }
.danke-seite--kurz .danke-hero { padding-top: 34px; }
.danke-seite--kurz .danke-hero p { font-size: 21px; font-weight: 400; line-height: 1.55; max-width: 520px; }
.danke-top__balken {
  background: var(--gold); text-align: center;
  padding: 7px 10px; font-family: var(--font-btn); font-weight: 700; font-size: 15px; color: var(--text);
}
.danke-top__zeile { max-width: var(--container); margin: 12px auto 0; padding: 0 20px;
  text-align: center; font-size: 15px; font-weight: 600; color: var(--heading); }

.danke-hero { background: var(--pink-1); padding: 46px 0 0; }
.danke-hero__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: end; }
.danke-hero__text { padding-bottom: 58px; }
.danke-hero__bild {
  background: var(--pink-2); border-radius: 22px 22px 0 0;
  display: flex; align-items: flex-end; justify-self: end; width: 100%; max-width: 469px;
  box-shadow: 0 0 44px rgba(145, 33, 120, .20), 0 -6px 18px rgba(145, 33, 120, .10);
}
.danke-hero__logo { margin-bottom: 26px; }
.danke-hero h1 { font-size: 38px; line-height: 1.25; margin-bottom: 26px; }
.danke-hervor { color: var(--purple); }
.danke-hero p { font-size: 17px; font-weight: 600; max-width: 460px; }
.danke-hero p a { color: var(--purple); }
.danke-hero__foto { width: 100%; }

.danke-schritte { background: var(--pink-1); padding: 52px 0 80px; }
.danke-schritte h2 { margin-bottom: 44px; }
.danke-schritte__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.danke-karte {
  background: var(--purple); color: #fff; border-radius: 18px; padding: 28px 26px 30px;
}
.danke-karte img { margin-bottom: 20px; }
.danke-karte p { font-size: 16px; line-height: 1.55; }
.danke-karte p:last-child { margin-bottom: 0; }
.danke-karte a { color: #f3d9ec; }

@media (max-width: 900px) {
  .danke-hero__grid { grid-template-columns: 1fr; gap: 0; }
  .danke-hero__text { padding-bottom: 30px; }
  .danke-hero__bild { justify-self: center; max-width: 420px; }
  .danke-hero h1 { font-size: 30px; }
  .danke-schritte__grid { grid-template-columns: 1fr; }
}

/* ---------- Danke-Seite 2: Termine, Kalender, Boni ---------- */
a.btn { text-decoration: none; }

.danke-top__zeile img { display: inline-block; vertical-align: -4px; margin-right: 8px; }

.danke-termine { background: #fff; padding: 46px 0 52px; }
.termin-karte {
  background: var(--pink-1); border-radius: 22px;
  padding: 44px 24px 48px; text-align: center;
}
.termin-karte h2 { font-size: 30px; font-weight: 700; color: var(--heading); margin-bottom: 0; }

.countdown--kacheln { justify-content: center; gap: 14px; margin: 28px 0 24px; }
.countdown--kacheln > div { gap: 10px; }
.countdown--kacheln b {
  display: block; width: 104px; background: #fff; border-radius: 10px;
  padding: 15px 0 13px; font-size: 26px; font-weight: 600; color: var(--heading);
}
.countdown--kacheln span {
  font-size: 12px; font-weight: 600; letter-spacing: .05em;
  text-transform: uppercase; color: var(--heading);
}

.termin-karte__datum { font-size: 22px; line-height: 1.9; margin-bottom: 16px; }
.termin-karte__datum span { margin-left: 26px; }
.termin-karte__hinweis { font-size: 20px; margin-bottom: 28px; }

.kalender { display: flex; justify-content: center; }
.kalender__box { width: 100%; max-width: 560px; text-align: center; }
.kalender__summary {
  list-style: none; cursor: pointer;
  background: var(--purple); color: #fff;
  font-family: var(--font-btn); font-size: 17px; font-weight: 600; line-height: 1.2;
  padding: 15px 26px; border-radius: 7px; transition: opacity .2s ease;
  display: inline-flex; align-items: center; gap: 10px;
}
.kalender__summary::-webkit-details-marker { display: none; }
.kalender__summary::after {
  content: ""; width: 0; height: 0;
  border-left: 6px solid transparent; border-right: 6px solid transparent;
  border-top: 7px solid #fff; transition: transform .2s ease;
}
.kalender__box[open] .kalender__summary::after { transform: rotate(180deg); }
.kalender__summary:hover { opacity: .88; }
.kalender__summary:focus-visible { outline: 3px solid var(--heading); outline-offset: 3px; }
.kalender__liste {
  background: #fff; border: 1px solid #dce2ed; border-radius: 7px;
  padding: 8px; margin-top: 10px; text-align: left;
}
.kalender__link {
  display: block; padding: 12px; color: var(--purple); font-size: 15px;
  text-decoration: underline; overflow-wrap: anywhere; border-radius: 5px;
}
.kalender__link:hover { background: var(--pink-1); }
.kalender__gruppe { margin-top: 6px; padding-top: 10px; border-top: 1px solid #e6e8ef; }
.kalender__gruppentitel { padding: 2px 12px 8px; margin: 0; font-size: 13px; font-weight: 600; color: #6d6d6d; }
.kalender__hinweis { max-width: 460px; margin: 14px auto 0; font-size: 13px; line-height: 1.5; color: #6d6d6d; }

.danke-bonus { padding: 50px 0 80px; }
.danke-bonus .bonus__grid { max-width: 940px; margin-left: auto; margin-right: auto; }
.danke-bonus .bonus__card { display: flex; flex-direction: column; align-items: flex-start; border-radius: 14px; }
.danke-bonus .bonus__card p { margin-bottom: 26px; }
.danke-bonus .bonus__card .btn { align-self: center; margin-top: auto; }

@media (max-width: 860px) {
  .termin-karte h2 { font-size: 24px; }
  .countdown--kacheln { flex-wrap: wrap; gap: 10px; }
  .countdown--kacheln b { width: 72px; font-size: 21px; padding: 12px 0 10px; }
  .countdown--kacheln span { font-size: 11px; }
  .termin-karte__datum { font-size: 18px; line-height: 1.7; }
  .termin-karte__datum span { display: block; margin-left: 0; }
  .termin-karte__hinweis { font-size: 17px; }
  .danke-bonus .bonus__grid { grid-template-columns: 1fr; }
}


/* ---------- Auftakt am Freitagabend ---------- */
.auftakt {
  background: #fff; border: 3px solid var(--purple); border-radius: 14px;
  padding: 30px 32px 28px; margin: 38px auto 0; max-width: 860px; text-align: center;
}
.auftakt__fahne {
  display: inline-block; background: var(--purple); color: #fff;
  font-size: 13px; letter-spacing: .06em; text-transform: uppercase;
  padding: 6px 18px; border-radius: 20px; margin-bottom: 16px;
}
.auftakt h3 { font-size: 24px; margin-bottom: 14px; }
.auftakt p { font-size: 17px; line-height: 1.6; margin-bottom: 12px; }
.auftakt__klein { font-size: 15px; color: var(--purple); font-weight: 600; margin-bottom: 0; }
@media (max-width: 760px) {
  .auftakt { padding: 24px 20px; }
  .auftakt h3 { font-size: 20px; }
}

/* ============ VIER TAGE (ab November 2026) ============ */
/* Desktop: Tag 1 | Tag 2 | Foto, darunter Tag 3 | Tag 4 */
.days__grid--vier .days__photo { grid-column: 3; grid-row: 1; }
.day__kopf { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: 18px; }
.day__kopf .tag { margin-bottom: 0; }
.day__termin { font-size: 14px; font-weight: 600; color: var(--purple); }
@media (max-width: 960px) {
  /* zwei Spalten: Foto ans Ende, mittig */
  .days__grid--vier .days__photo { grid-column: 1 / -1; grid-row: auto; order: 5; justify-self: center; max-width: 420px; }
}

/* Kalender-Box aus Kalenderlink (iframe). Höhe nach Breite, weil die aufgeklappte Liste sonst abgeschnitten wird */
.kalender-einbettung { display: flex; justify-content: center; margin-top: 8px; }
.kalender-einbettung iframe { display: block; width: 100%; height: 720px; }
@media (max-width: 600px) { .kalender-einbettung iframe { height: 900px; } }
