/* ===================================================
   Kreativ-Eck Harz – Unterseiten (Über uns, Konzept,
   Rohlinge/Inspirationen, Fertige Werke)
   =================================================== */

/* ---------- Active nav state ---------- */
.main-nav > ul > li.nav-active > a {
  background: var(--olive);
  color: var(--white);
  padding: 0.5rem 1.1rem;
  border-radius: 50px;
}
.main-nav > ul > li.nav-active > a .chevron { border-top-color: var(--white); }
.dropdown li a.active { color: var(--pink-deep); font-weight: 700; }

/* ---------- Plain hero image band (no headline overlay) ---------- */
.page-hero-img {
  width: 100%;
  aspect-ratio: 2560 / 1010;
  object-fit: cover;
  display: block;
}

/* ---------- Fading footer photo band ---------- */
.footer-photo { position: relative; overflow: hidden; }
.footer-photo img { width: 100%; display: block; height: auto; }
.footer-photo .footer-photo-btn {
  position: absolute;
  top: 14%;
  left: 50%;
  transform: translateX(-50%);
}
/*
.footer-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 55%, var(--sage-bg) 96%);
  pointer-events: none;
}
*/
/* Photo already has a baked-in fade at the top edge — skip the CSS overlay */
.footer-photo.no-fade::after { content: none; }

/* Konzept (Gruppenangebote): text sits in a plain white section above a
   plain photo with no baked-in fade — blend the top edge in smoothly. */
.footer-photo.fade-top::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, var(--white) 0%, transparent 26%);
  pointer-events: none;
  z-index: 1;
}

/* Heading + text + button overlaid directly on the photo's own faded top area
   (no separate white section above it, to avoid doubled empty space) */
.footer-photo-content {
  position: absolute;
  top: 4%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 720px;
  padding: 1.8rem 2rem 0;
  text-align: center;
  z-index: 1;
}

/*
.footer-photo-content .heading-graphic { margin: 0 auto 0.5rem; max-width: 460px; }
*/

.heading-graphic { margin: 0 auto 0.5rem !important; width: auto !important; max-width: none !important; max-height: 90px !important; }

.footer-photo-content h2 { margin-bottom: 0.1em; }
.footer-photo-content .script-line { margin-bottom: 0.7rem; }
.footer-photo-content p { font-size: 1.02rem; margin: 0 auto 1.3rem; max-width: 640px; }
@media (max-width: 700px) {
  /* Not enough height in the photo's faded zone on narrow screens —
     stack the text above the photo instead of overlaying it */
  .footer-photo-content {
    position: static;
    transform: none;
    max-width: 100%;
    padding: 2.5rem 1.5rem 1.5rem;
  }
  .footer-photo-content p { font-size: 0.92rem; margin-bottom: 0.9rem; }
  .footer-photo-content .heading-graphic { max-width: 280px; }
}

/* ---------- Buchung ---------- */
.buchung {
  text-align: center;
  padding: 5rem 2rem 3rem;
  max-width: 900px;
  margin: 0 auto 30px auto;
}

/* ---------- Centered heading intro (script subline) ---------- */
.intro {
  text-align: center;
  padding: 5rem 2rem 3rem;
  max-width: 900px;
  margin: 0 auto;
}
.intro h1, .intro h2 { font-size: 2.8rem; }
.intro p { font-size: 1.05rem; max-width: 720px; margin: 0 auto; }

/* Unser Team (Über uns): heading graphic has taller lettering than the
   other heading PNGs, so it needs a smaller max-width to match their
   rendered size. Paragraph pulled wider, closer to the section edges. */
.intro-wide { max-width: 1100px; }
.heading-team { max-width: 285px !important; }
.intro-wide p { max-width: 980px; }

/* Zeit für kreative Momente (Über uns footer CTA): pull paragraph text
   wider, closer to the edges, matching the reference layout. */
.footer-photo-content.wide-text { max-width: 900px; }
.footer-photo-content.wide-text p { max-width: 860px; }

/* ---------- Emphasis line (bold olive statement) ---------- */
.section-bleed blockquote {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  quotes: none;
}

.section-bleed blockquote::before,
.section-bleed blockquote::after {
  content: '';
  content: none;
}

/* .emphasis-line { */
.section-bleed blockquote p {
  font-weight: 700;
  color: var(--olive-dark);
}

/* ---------- Info box with icon (Allgemeine Informationen) ---------- */
.info-box {
  background: var(--blush-bg);
  padding: 4rem 2rem;
}
.info-box.sage { background: var(--sage-bg); }
.info-box.sage-light { background: var(--sage-light); }
.info-box-inner {
  display: flex;
  align-items: center;
  gap: 2.5rem;
  max-width: var(--max-width);
  margin: 0 auto;
  flex-wrap: wrap;
}
/*.info-box img { width: 160px; height: auto; flex-shrink: 0; }*/
.info-box img { height: auto; flex-shrink: 0; }
.info-box h2 { font-size: 2rem; margin-bottom: 0.8rem; }
.info-box p { font-size: 1rem; max-width: 900px; }

/* ---------- Info bullets (redesigned Allgemeine Informationen) ---------- */
.info-bullets-wrap { max-width: var(--max-width); margin: 0 auto; }
.info-bullets-wrap h2 { margin-bottom: 2rem; }
.info-bullets {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem 3rem;
}
.bullet-item {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  margin-bottom: 1.4rem;
}
.bullet-icon {
  width: 14px;
  height: auto;
  flex-shrink: 0;
  margin-top: 0.35em;
}
.bullet-item p { margin: 0; font-size: 1rem; }
@media (max-width: 800px) { .info-bullets { grid-template-columns: 1fr; } }

/* ---------- Two-column text (Gruppenangebote) ---------- */
.two-col-text {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 2rem 1.5rem;
}
.two-col-text p { font-size: 1rem; margin-bottom: 1rem; }
@media (max-width: 800px) { .two-col-text { grid-template-columns: 1fr; } }

/* ---------- Category grid (Rohlinge) ---------- */
.category-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.8rem 1.6rem;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 1rem 2rem 4rem;
}
.category-card { text-align: center; }
.category-pill {
  display: block;
  background: var(--pink);
  color: var(--white);
  font-family: var(--font-serif);
  font-size: 1.15rem;
  padding: 0.85rem 1rem;
  border-radius: 50px;
  margin-bottom: 0.9rem;
}
.category-card img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  border-radius: 14px;
}
@media (max-width: 980px) { .category-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .category-grid { grid-template-columns: 1fr; } }

/* ---------- Category accordion (item galleries) ---------- */
.cat-accordion { border-top: 1px solid rgba(0,0,0,0.06); }
.cat-acc-item { border-bottom: 1px solid rgba(0,0,0,0.06); }
.cat-acc-header {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 1.6rem 2rem;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-serif);
  font-size: 1.3rem;
  color: inherit;
}
.cat-acc-item.pink .cat-acc-header { background: var(--blush-bg); color: var(--pink-deep); }
.cat-acc-item.sage .cat-acc-header { background: var(--sage-bg); color: var(--olive-deep); }
.cat-acc-item.pink-dusty .cat-acc-header { background: var(--pink-dusty); color: var(--pink-rose); }
.cat-acc-item.sage-light .cat-acc-header { background: var(--sage-light); color: var(--olive-dark); }
.cat-acc-item.white .cat-acc-header { background: var(--white); color: var(--pink); }
.cat-acc-header .chev {
  width: 0; height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 8px solid currentColor;
  transition: transform 0.25s ease;
}
.cat-acc-item.open .cat-acc-header .chev { transform: rotate(180deg); }

.cat-acc-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.cat-acc-item.pink .cat-acc-body { background: var(--blush-bg); }
.cat-acc-item.sage .cat-acc-body { background: var(--sage-bg); }
.cat-acc-item.pink-dusty .cat-acc-body { background: var(--pink-dusty); }
.cat-acc-item.sage-light .cat-acc-body { background: var(--sage-light); }
.cat-acc-item.white .cat-acc-body { background: var(--white); }
/* ===== Rohlinge: feste max-height entfernt =====
   Die alte Regel `.cat-acc-item.open .cat-acc-body { max-height: 900px; }`
   hat den Inhalt gekappt, sobald "Alle anzeigen" eine weitere Reihe
   einblendet. Die konkrete Hoehe setzt jetzt das JS in Pixeln
   (siehe script.js, openBody/closeBody). Fallback ohne JS am Dateiende. */

.cat-items {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.2rem;
  padding: 0.5rem 2rem 2rem;
  max-width: var(--max-width);
  margin: 0 auto;
}
.cat-item-card {
  background: var(--white);
  border-radius: 16px;
  overflow: hidden;
  text-align: center;
  padding-bottom: 0.8rem;
}
.cat-item-card img { max-width: 100%; width: auto; height: auto; max-height: 270px; display: block; margin: 0 auto; }
.cat-item-card span { font-size: 0.95rem; color: var(--text-dark); }
.cat-acc-more { text-align: center; padding: 0 2rem 2.5rem; }
@media (max-width: 900px) { .cat-items { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .cat-items { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Pricing list ---------- */
.price-list { font-size: 1.05rem; }
.price-list div { margin-bottom: 0.6rem; }
.price-list strong { color: var(--olive-dark); }

/* ---------- Masonry gallery (Fertige Werke) ---------- */
.gallery-wrap { padding: 0.5rem 0 1px; }
.masonry-gallery {
  column-count: 4;
  column-gap: 1.4rem;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 1rem 2rem 4rem;
}
.masonry-gallery img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 14px;
  margin-bottom: 1.4rem;
  break-inside: avoid;
}
@media (max-width: 980px) { .masonry-gallery { column-count: 3; } }
@media (max-width: 700px) { .masonry-gallery { column-count: 2; } }

/* ---------- Team grid (Über uns) ---------- */
.team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.6rem;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 1rem 2rem 5rem;
}
.team-card {
  text-align: center;
  background: var(--blush-bg);
  border-radius: 18px;
  overflow: hidden;
  padding-bottom: 1rem;
}
.team-card img {
  width: 100%;
  aspect-ratio: 4 / 4.3;
  object-fit: cover;
  display: block;
  margin-bottom: 0.8rem;
}
.team-card h3 { font-size: 1.4rem; margin: 0; }
@media (max-width: 900px) { .team-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .team-grid { grid-template-columns: 1fr 1fr; gap: 1rem; } }
@media (max-width: 460px) { .masonry-gallery { column-count: 1; } }

/* ---------- Technique grid (Techniken) ---------- */
.technique-wrap { background: var(--blush-bg); padding: 3rem 0; }
.technique-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.4rem;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 2rem;
}
.technique-card {
  background: var(--white);
  border-radius: 16px;
  padding: 1.8rem 1.4rem;
  text-align: center;
}
.technique-icon {
  width: 72px;
  height: 72px;
  object-fit: contain;
  margin: 0 auto 0.9rem;
}
.technique-card h3 { font-size: 1.25rem; margin-bottom: 0.5rem; }
.technique-card p { font-size: 0.92rem; }
@media (max-width: 980px) { .technique-grid { grid-template-columns: repeat(2, 1fr); } }

/* Clickable technique cards that open the instruction-card lightbox */
.technique-card.has-lightbox {
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.technique-card.has-lightbox:hover,
.technique-card.has-lightbox:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(0,0,0,0.1);
  outline: none;
}

/* ---------- Lightbox (Techniken instruction cards) ---------- */
.lightbox-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(40, 36, 32, 0.72);
  z-index: 500;
  align-items: center;
  justify-content: center;
  padding: 3rem 1.5rem;
}
.lightbox-overlay.show { display: flex; }
.lightbox-figure {
  margin: 0;
  max-width: min(90vw, 560px);
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.lightbox-figure img {
  max-width: 100%;
  max-height: 82vh;
  width: auto;
  height: auto;
  display: block;
  border-radius: 14px;
  box-shadow: 0 20px 50px rgba(0,0,0,0.35);
}
.lightbox-figure figcaption {
  color: var(--white);
  font-family: var(--font-serif);
  font-size: 1.15rem;
  margin-top: 1rem;
  text-align: center;
}
.lightbox-close {
  position: fixed;
  top: 1.5rem;
  right: 1.8rem;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,0.9);
  color: var(--text-dark);
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 501;
}
.lightbox-close:hover { background: var(--white); }
@media (max-width: 600px) {
  .lightbox-close { top: 1rem; right: 1rem; width: 38px; height: 38px; font-size: 1.5rem; }
}

/* ---------- Map embed inside bleed-image (Kontakt) ---------- */
.bleed-image iframe {
  width: 100%;
  height: 100%;
  min-height: 340px;
  border: 0;
  display: block;
}

/* ---------- Contact form section (Kontakt) ---------- */
.contact-form-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--blush-bg);
}
.contact-form-text { padding: 4.5rem 3rem; align-self: center; }
.contact-form-text p { font-size: 1rem; margin-bottom: 1rem; }
.contact-form-text.align-right { text-align: right; }
.contact-form-panel { padding: 4.5rem 3rem; display: flex; align-items: center; }
.contact-form { width: 100%; }
.form-field {
  width: 100%;
  display: block;
  border: none;
  border-radius: 50px;
  padding: 0.9rem 1.5rem;
  margin-bottom: 1rem;
  font-family: var(--font-body);
  font-size: 0.98rem;
  color: var(--text-dark);
  background: var(--white);
}
.form-field::placeholder { color: var(--pink-rose); opacity: 0.85; }
textarea.form-field { border-radius: 24px; min-height: 110px; resize: vertical; padding-top: 1rem; }
.form-check {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.9rem;
  color: var(--text-dark);
  margin-bottom: 1.3rem;
}
.form-check input { width: 18px; height: 18px; flex-shrink: 0; }
.form-submit-row { display: flex; justify-content: flex-end; }
.form-submit-row .btn { border: none; cursor: pointer; }
@media (max-width: 860px) {
  .contact-form-section { grid-template-columns: 1fr; }
  .contact-form-text, .contact-form-panel { padding: 3rem 1.5rem; }
}

/* ---------- Contact info band (Kontakt) ---------- */
.contact-info-band { padding: 4.5rem 2rem; text-align: center; }
.contact-info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
  max-width: var(--max-width);
  margin: 0 auto;
}
.info-icon {
  width: 120px;
  height: auto;
  margin: 0 auto 1rem;
  display: block;
}
.contact-info-item h3 { font-size: 1.25rem; margin-bottom: 0.4rem; }
.contact-info-item p { font-size: 0.95rem; margin: 0; }
/* "Schreib uns einfach": narrower column so the text wraps to three
   lines like the reference, instead of two wide ones. */
.contact-info-item:nth-child(3) p { max-width: 230px; margin: 0 auto; }
@media (max-width: 800px) {
  .contact-info-grid { grid-template-columns: 1fr; gap: 2.5rem; }
}
@media (max-width: 560px) { .technique-grid { grid-template-columns: 1fr; } }

/* ===================================================================
   ===== Rohlinge: Akkordeon, "Alle anzeigen", Lightbox ==============
   Ergaenzungen fuer die Seite "Unsere Rohlinge" (Addon + Modul).
   Alles additiv - bestehende Regeln oberhalb bleiben unveraendert.
   =================================================================== */

/* ===== Rohlinge: Akkordeon-Hoehe ===== */
/* Die Hoehe des geoeffneten Bereichs setzt JS in Pixeln und gibt sie nach
   der Transition wieder frei ('none'), damit "Alle anzeigen" nicht
   abgeschnitten wird. Ohne JS bleibt der Inhalt erreichbar. */
.no-js .cat-acc-item .cat-acc-body { max-height: none; }
.no-js .cat-items-rest { max-height: none; }

/* ===== Rohlinge: restliche Artikel ("Alle anzeigen") ===== */
.cat-items-rest {
  max-height: 0;
  overflow: hidden;
  padding-top: 0;
  padding-bottom: 0;
  transition: max-height 0.35s ease;
}
/* .cat-items-rest.open erhaelt seine max-height per JS */

/* Folgt eine ausklappbare Reihe, teilt sich der Abstand auf erste Reihe und
   Button-Bereich auf. So bleibt der Rhythmus im geschlossenen wie im
   geoeffneten Zustand gleich und beim Auffahren entsteht kein Sprung.
   Browser ohne :has() behalten das bisherige Verhalten. */
.cat-items:has(+ .cat-items-rest) { padding-bottom: 1.2rem; }
.cat-items-rest + .cat-acc-more { padding-top: 1.2rem; }

/* ===== Rohlinge: Artikelkarte als Button ===== */
.cat-item-card {
  border: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  width: 100%;
  padding: 0 0 0.8rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.cat-item-card:hover,
.cat-item-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 12px 26px rgba(0,0,0,0.10);
  outline: none;
}
.cat-item-card span { display: block; padding: 0 0.4rem; }
/* Der Innenabstand unter dem Bild traegt den Artikelnamen. Faellt der Name
   einmal weg, entfaellt auch der Abstand - sonst bliebe ein leerer weisser
   Streifen unter dem Bild stehen. */
.cat-item-card:not(:has(span)) { padding-bottom: 0; }

/* ===== Rohlinge: generischer Farbschema-Fallback ueber CSS-Variablen ===== */
/* Greift nur, wenn spaeter ein Schema ergaenzt wird, fuer das oben noch
   keine .cat-acc-item.<klasse>-Regel existiert. */
.cat-acc-item[style*="--cat-bg"] .cat-acc-header,
.cat-acc-item[style*="--cat-bg"] .cat-acc-body { background: var(--cat-bg); }
.cat-acc-item[style*="--cat-fg"] .cat-acc-header { color: var(--cat-fg); }

/* ===== Rohlinge: Lightbox mit Galerie ===== */
/* Eigener rl-Namensraum, damit die Techniken-Lightbox (#lightboxOverlay)
   unberuehrt bleibt. */
.rl-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 600;
  background: rgba(40, 36, 32, 0.72);
  padding: 3rem 5.5rem;
  opacity: 0;
  transition: opacity 0.25s ease;
}
.rl-lightbox.show {
  display: flex;
  align-items: center;
  justify-content: center;
}
.rl-lightbox.visible { opacity: 1; }

body.rl-open { overflow: hidden; }

.rl-figure {
  margin: 0;
  max-width: min(90vw, 720px);
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  /* Luft zwischen Bildunterkante bzw. Zaehler und dem unteren Overlay-Rand */
  padding-bottom: 1.5rem;
}
.rl-figure img {
  max-width: 100%;
  max-height: 68vh;
  width: auto;
  height: auto;
  display: block;
  border-radius: 14px;
  box-shadow: 0 20px 50px rgba(0,0,0,0.35);
  background: var(--white);
  /* Abstand unter dem Bild, damit Zaehler bzw. Bildunterschrift nicht
     direkt an der Bildkante kleben */
  margin-bottom: 1.25rem;
}
.rl-figure figcaption {
  font-family: var(--font-serif);
  color: var(--white);
  font-size: 1.15rem;
  margin-top: 0;
  text-align: center;
}
/* Ohne Bildunterschrift soll das figcaption keinen Platz beanspruchen. */
.rl-figure figcaption:empty { display: none; }
.rl-counter {
  color: rgba(255,255,255,0.75);
  font-size: 0.85rem;
  margin-top: 0.35rem;
}

.rl-close {
  position: fixed;
  top: 1.5rem;
  right: 1.8rem;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,0.9);
  color: var(--text-dark);
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 601;
}
.rl-close:hover { background: var(--white); }

.rl-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: none;
  background: var(--pink);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 601;
  transition: background 0.2s ease, transform 0.2s ease;
}
.rl-nav::before {
  content: "";
  width: 0;
  height: 0;
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
}
.rl-prev { left: 1.5rem; }
.rl-next { right: 1.5rem; }
.rl-prev::before { border-right: 12px solid var(--white); margin-right: 3px; }
.rl-next::before { border-left: 12px solid var(--white); margin-left: 3px; }
.rl-nav:hover,
.rl-nav:focus-visible {
  background: var(--pink-deep);
  transform: translateY(-50%) scale(1.06);
  outline: none;
}
.rl-nav[hidden] { display: none; }

@media (max-width: 700px) {
  .rl-lightbox { padding: 3rem 3.5rem; }
  .rl-nav { width: 42px; height: 42px; }
  .rl-prev { left: 0.5rem; }
  .rl-next { right: 0.5rem; }
  .rl-close { top: 1rem; right: 1rem; width: 38px; height: 38px; font-size: 1.5rem; }
  .rl-figure img { max-height: 60vh; }
}

@media (prefers-reduced-motion: reduce) {
  .cat-acc-body,
  .cat-items-rest,
  .cat-item-card,
  .rl-lightbox,
  .rl-nav { transition: none; }
}

/* ===================================================
   Veranstaltungen – Termin-/Meldungsblöcke
   =================================================== */

/* style.css setzt max-width:none nur fuer .section.blush.split und
   .section.sage.split. Fuer den sage-light-Block (Block 2) fehlt die Regel,
   er liefe sonst schmaler als die beiden blush-Bloecke. */
.section.sage-light.split { max-width: none; }

/* Flyer-Grafiken sind hochformatig und sollen die Spalte nicht ausfuellen.
   380px entspricht der Breite in der Layoutvorlage (dort 373px bei 1440px
   Viewport). Kein border-radius: die Flyer haben im PDF scharfe Ecken – es
   greift damit weiterhin der Projektwert aus .split-image img. */
.event-image img {
  display: block;
  max-width: 380px;
  width: 100%;
  height: auto;
  margin: 0 auto;
}

/* Bild in Bloecken mit Bild rechts trotzdem auf Mobil zuerst zeigen
   (gleicher Breakpoint wie .split-inner in style.css) */
@media (max-width: 980px) {
  .event-image-first-mobile { order: -1; }
}

/* Absatzrhythmus in den Meldungstexten */
.event-split .split-text p { margin: 0 0 1rem; }
.event-split .split-text p:last-child { margin-bottom: 0; }


/* ===================================================
   Rechtstexte – Impressum, Datenschutz, AGB
   =================================================== */

.legal-wrap { padding: 0 2rem 5rem; }
.legal-text {
  max-width: 900px;
  margin: 0 auto;
  text-align: left;
  font-size: 1rem;
}
.legal-text h2 {
  font-family: var(--font-serif);
  color: var(--olive-deep);
  font-size: 1.5rem;
  margin: 2.4rem 0 0.7rem;
}
.legal-text h2:first-child { margin-top: 0; }
.legal-text h3 {
  font-family: var(--font-serif);
  color: var(--pink-deep);
  font-size: 1.2rem;
  margin: 1.6rem 0 0.5rem;
}
.legal-text p { margin: 0 0 1rem; }
/* ul steht global auf list-style:none – innerhalb der Rechtstexte muessen
   die Aufzaehlungspunkte deshalb wiederhergestellt werden. */
.legal-text ul { list-style: disc; padding-left: 1.4rem; margin: 0 0 1rem; }
.legal-text li { margin-bottom: 0.5rem; }
.legal-text a { color: var(--pink-deep); text-decoration: underline; }
.legal-text a:hover { color: var(--pink-rose); }
/* Abstand wie bei p – sonst klebt der Folgeabsatz am Adressblock */
.legal-text address { font-style: normal; margin: 0 0 1rem; }
@media (max-width: 600px) {
  .legal-wrap { padding: 0 1.3rem 3.5rem; }
  .legal-text h2 { font-size: 1.3rem; }
}
