/* ==========================================================================
   Page-Builder-Seiten (Weihnachten, Vita, Award, Rezepte …)
   Ersetzt sppagebuilder.css. Farben, Abstände und Hintergründe der einzelnen
   Abschnitte stehen weiterhin im <style>-Block der jeweiligen Seite.
   ========================================================================== */

.sp-page-builder .page-content { overflow: hidden; }

.sppb-section {
  position: relative;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50% 50%;
}
.sppb-row-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.sppb-row-container {
  position: relative;
  z-index: 1;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 15px;
}
.sppb-container-inner { position: relative; z-index: 1; }

/* Raster */
.sppb-row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -15px;
}
.sppb-container-inner > .sppb-row { margin: 0; }
[class*="sppb-col-"] {
  position: relative;
  width: 100%;
  padding: 0 15px;
}
.sppb-container-inner [class*="sppb-col-"] { padding: 0; }
.sppb-column { height: 100%; }

@media (min-width: 768px) {
  .sppb-col-sm-2  { width: 16.6667%; }
  .sppb-col-sm-3  { width: 25%; }
  .sppb-col-sm-4  { width: 33.3333%; }
  .sppb-col-sm-6  { width: 50%; }
  .sppb-col-sm-8  { width: 66.6667%; }
  .sppb-col-sm-9  { width: 75%; }
  .sppb-col-sm-12 { width: 100%; }
}
@media (min-width: 992px) {
  .sppb-col-md-2  { width: 16.6667%; }
  .sppb-col-md-3  { width: 25%; }
  .sppb-col-md-4  { width: 33.3333%; }
  .sppb-col-md-5  { width: 41.6667%; }
  .sppb-col-md-6  { width: 50%; }
  .sppb-col-md-7  { width: 58.3333%; }
  .sppb-col-md-8  { width: 66.6667%; }
  .sppb-col-md-9  { width: 75%; }
  .sppb-col-md-12 { width: 100%; }
}

/* Allgemeine Elemente */
.sppb-text-center { text-align: center; }
.sppb-text-left   { text-align: left; }
.sppb-text-right  { text-align: right; }
.sppb-addon-title { margin: 0 0 15px; }
.sppb-addon-content > :last-child { margin-bottom: 0; }
.sppb-empty-space { height: 30px; }
.sppb-img-responsive { display: inline-block; max-width: 100%; height: auto; }
.sppb-addon-single-image-container { display: inline-block; position: relative; overflow: hidden; }
.sppb-addon-single-image-container img { display: block; }

/* Buttons */
.sppb-btn {
  display: inline-block;
  padding: 8px 20px;
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
  color: #fff;
  background: var(--blue);
  border: 1px solid transparent;
  border-radius: 4px;
  cursor: pointer;
  text-decoration: none;
  transition: color 400ms, background-color 400ms, border-color 400ms;
}
.sppb-btn:hover { background: var(--blue-dark); color: #fff; }
.sppb-btn-default { background: #eee; color: #333; }
.sppb-btn-default:hover { background: #ddd; color: #333; }
.sppb-btn-link { background: none; color: var(--blue); padding-left: 0; padding-right: 0; }
.sppb-btn-link:hover { background: none; color: var(--blue-dark); }
.sppb-btn-rounded { border-radius: 100px; }
.sppb-btn-sm { padding: 5px 12px; font-size: 12px; }
.sppb-btn-block { display: block; width: 100%; }

/* Feature-Box */
.sppb-addon-feature .sppb-icon { margin-bottom: 15px; }
.sppb-icon-container {
  display: inline-block;
  text-align: center;
  line-height: 1;
}
.sppb-icon-container > i { font-size: 36px; }
.sppb-media { display: flex; gap: 20px; align-items: flex-start; }
.sppb-media .pull-left, .sppb-media .pull-right { flex: 0 0 auto; }
.sppb-media-body { flex: 1; }
.sppb-media-heading { margin: 0 0 10px; }

/* Bild mit Titel-Overlay */
.sppb-addon-overlay-image-content {
  position: relative;
  height: 300px;
  overflow: hidden;
}
.overlay-background-image-wrapper,
.overlay-background-image {
  position: absolute;
  inset: 0;
}
.overlay-background-image {
  background-size: cover;
  background-position: center;
  transition: transform .6s ease;
}
.sppb-addon-overlay-image-content:hover .overlay-background-image { transform: scale(1.08); }
.overlay-image-title {
  position: absolute;
  left: 20px; right: 20px; bottom: 20px;
  z-index: 2;
}
.overlay-image-title .sppb-addon-title { margin: 0; }
.overlay-image-title a { color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.6); }

/* Trennlinie */
.sppb-divider { border-bottom: 1px solid #eee; margin: 20px 0; }

/* Abschnitts-Formen (Wellen o. Ä. oben/unten) */
.sppb-shape-container {
  position: absolute;
  left: 0;
  width: 100%;
  overflow: hidden;
  line-height: 0;
  z-index: 0;
  pointer-events: none;
}
.sppb-top-shape { top: -1px; }
.sppb-bottom-shape { bottom: -1px; transform: rotate(180deg); }
.sppb-shape-container > svg { display: block; width: 100%; height: 100px; }

/* Akkordeon */
.sppb-panel-group { margin: 0; }
.sppb-panel {
  border: 1px solid var(--border);
  border-radius: 3px;
  margin-bottom: 8px;
  background: #fff;
}
.sppb-panel-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  padding: 12px 15px;
  cursor: pointer;
  font-weight: 600;
}
.sppb-panel-heading:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
.sppb-toggle-direction { transition: transform .3s; }
.sppb-panel-heading.active .sppb-toggle-direction { transform: rotate(90deg); }
.sppb-panel-collapse { display: none; }
.sppb-panel-heading.active + .sppb-panel-collapse { display: block; }
.sppb-panel-body { padding: 15px; border-top: 1px solid var(--border); }

/* Slider innerhalb von Page-Builder-Seiten */
.slider--page { height: clamp(380px, 50vw, 640px); }
.slider--page .slide-title { font-size: clamp(26px, 3.6vw, 44px); }

/* Weihnachtsseiten: FAQ */
.xmas-faq { padding: 50px 0 70px; background: var(--bg-light); }
.xmas-faq h2 { text-align: center; margin: 0 0 25px; font-size: 22px; }
.xmas-faq .faq { max-width: 800px; margin: 0 auto; }
