/* ==========================================================================
   Sandra Tetzner Fotodesign – Template-CSS
   Eine Datei, Design-Tokens als Variablen. Alle Regeln unter .site,
   damit sie die Page-Builder-Voreinstellungen schlagen.
   ========================================================================== */

/* ---------- Schriften (lokal) ---------- */
@font-face { font-family: 'Alex Brush'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/alex-brush-400.woff2') format('woff2'); }
@font-face { font-family: 'Lora'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/lora-400.woff2') format('woff2'); }
@font-face { font-family: 'Lora'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('../fonts/lora-700.woff2') format('woff2'); }

/* ---------- Tokens ---------- */
:root {
  --c-beere: #cc3366;
  --c-beere-dunkel: #a3264f;
  --c-rose: #f7e8ee;
  --c-text: #4a4949;
  --c-text-hell: #6f6b6b;
  --c-papier: #fbf8f6;
  --c-weiss: #fff;
  --c-dunkel: #2b2526;
  --c-linie: #ebe3e0;

  --font-schrift: 'Alex Brush', 'Brush Script MT', cursive;
  --font-text: 'Lora', Georgia, 'Times New Roman', serif;

  --maxw: 1200px;
  --maxw-text: 46rem;
  --gutter: clamp(1.25rem, 4vw, 2.5rem);
  --abstand-y: clamp(3.5rem, 8vw, 6.5rem);
  --radius: 4px;
  --schatten: 0 18px 40px -22px rgba(74, 40, 52, .35);
  --header-h: 84px;
}

/* ---------- Basis ---------- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 1rem); -webkit-text-size-adjust: 100%; }
html, body { overflow-x: hidden; overflow-x: clip; }
body.site {
  margin: 0; background: var(--c-papier); color: var(--c-text);
  font-family: var(--font-text); font-size: 1.0625rem; line-height: 1.75; hyphens: auto;
  -webkit-font-smoothing: antialiased;
}
.site *, .site *::before, .site *::after { box-sizing: border-box; }
.site img { max-width: 100%; height: auto; display: block; }
.site a { color: var(--c-beere); text-decoration-thickness: 1px; text-underline-offset: .2em; transition: color .2s; }
.site a:hover { color: var(--c-beere-dunkel); }
.site p { margin: 0 0 1.1em; }
.site strong { font-weight: 700; color: var(--c-dunkel); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 999; background: var(--c-beere); color: #fff !important; padding: .6rem 1rem; }
.skip-link:focus { top: 1rem; }
.site :focus-visible { outline: 2px solid var(--c-beere); outline-offset: 3px; }

/* Überschriften */
.site h1, .site h2, .site .sppb-addon-title.schrift {
  font-family: var(--font-schrift); font-weight: 400; color: var(--c-dunkel);
  letter-spacing: 0; text-transform: none; margin: 0 0 .35em; line-height: 1.1;
}
.site h1, .site h2, .site h3, .site .zitat, .site .sppb-addon-title, .site .menue, .site .sppb-btn { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: normal; }
.site h1 { font-size: clamp(3rem, 7.5vw, 5.75rem); }
.site h2 { font-size: clamp(2.5rem, 5.2vw, 3.9rem); }
.site h3 {
  font-family: var(--font-text); font-weight: 700; font-size: 1.05rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--c-dunkel); margin: 0 0 .7em; line-height: 1.4;
}
.site h4 { font-family: var(--font-text); font-size: 1.05rem; font-weight: 700; margin: 0 0 .5em; }

/* Kleine Zeile über einer Überschrift */
.site .dachzeile .sppb-addon-title,
.site .dachzeile {
  font-family: var(--font-text) !important; font-size: .8rem !important; font-weight: 700 !important;
  letter-spacing: .24em !important; text-transform: uppercase !important; color: var(--c-beere) !important;
  margin: 0 0 .4rem !important; line-height: 1.4 !important;
}

/* Herz-Trenner unter Sektionsüberschriften */
.site .titel-herz .sppb-addon-title::after {
  content: ''; display: block; width: 7.5rem; height: 1.1rem; margin: .5rem auto 0;
  background: url('../images/herz-trenner.svg') center / contain no-repeat;
}
.site .sppb-text-left .titel-herz .sppb-addon-title::after,
.site .titel-herz.links .sppb-addon-title::after { margin-left: 0; }

/* ---------- Kopf ---------- */
.kopf {
  position: sticky; top: 0; z-index: 100; background: rgba(255, 255, 255, .96);
  backdrop-filter: saturate(1.2) blur(6px); border-bottom: 1px solid var(--c-linie);
  transition: box-shadow .3s;
}
.kopf.ist-gescrollt { box-shadow: 0 10px 30px -18px rgba(74, 40, 52, .4); }
.kopf__innen {
  max-width: var(--maxw); margin: 0 auto; padding: .7rem var(--gutter);
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
}
.kopf__logo img { width: clamp(150px, 18vw, 210px); height: auto; }
.kopf__burger { display: none; }

.menue { list-style: none; margin: 0; padding: 0; display: flex; gap: clamp(.8rem, 2vw, 2rem); align-items: center; }
.menue__punkt { position: relative; }
.site .menue__link {
  display: block; padding: .6rem 0; color: var(--c-text); text-decoration: none;
  font-size: .82rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
}
.site .menue__link:hover, .site .ist-aktiv > .menue__link, .site .ist-pfad > .menue__link { color: var(--c-beere); }
.menue__auf { display: none; }
.menue__unter {
  list-style: none; margin: 0; padding: .6rem 0; position: absolute; left: -1.2rem; top: 100%;
  min-width: 15rem; background: #fff; box-shadow: var(--schatten); border-top: 2px solid var(--c-beere);
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: .2s;
}
.menue__unter .menue__link { padding: .55rem 1.2rem; letter-spacing: .1em; }
.hat-unterpunkte:hover > .menue__unter, .hat-unterpunkte:focus-within > .menue__unter { opacity: 1; visibility: visible; transform: none; }

@media (max-width: 960px) {
  .kopf__burger {
    display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px;
    border: 0; background: transparent; cursor: pointer; color: var(--c-dunkel);
  }
  .kopf__burger-linie, .kopf__burger-linie::before, .kopf__burger-linie::after {
    display: block; width: 24px; height: 2px; background: currentColor; position: relative; transition: .25s;
  }
  .kopf__burger-linie::before, .kopf__burger-linie::after { content: ''; position: absolute; left: 0; }
  .kopf__burger-linie::before { top: -7px; }
  .kopf__burger-linie::after { top: 7px; }
  .kopf__burger[aria-expanded="true"] .kopf__burger-linie { background: transparent; }
  .kopf__burger[aria-expanded="true"] .kopf__burger-linie::before { top: 0; transform: rotate(45deg); }
  .kopf__burger[aria-expanded="true"] .kopf__burger-linie::after { top: 0; transform: rotate(-45deg); }

  .kopf__nav {
    position: fixed; inset: var(--header-h) 0 auto 0; max-height: calc(100vh - var(--header-h)); overflow-y: auto;
    background: #fff; padding: .5rem var(--gutter) 2rem; border-top: 1px solid var(--c-linie);
    box-shadow: 0 20px 30px -20px rgba(0,0,0,.25); display: none;
  }
  .kopf__nav.ist-offen { display: block; }
  .kopf .menue { flex-direction: column; align-items: stretch; gap: 0; }
  .kopf .menue__punkt { border-bottom: 1px solid var(--c-linie); display: flex; flex-wrap: wrap; align-items: center; }
  .site .kopf .menue__link { flex: 1; padding: 1rem 0; font-size: .9rem; }
  .kopf .menue__auf {
    display: block; width: 46px; height: 46px; border: 0; background: transparent; cursor: pointer; position: relative;
  }
  .kopf .menue__auf::before {
    content: ''; position: absolute; left: 50%; top: 45%; width: 9px; height: 9px;
    border-right: 2px solid var(--c-beere); border-bottom: 2px solid var(--c-beere); transform: translate(-50%, -50%) rotate(45deg); transition: .2s;
  }
  .kopf .menue__auf[aria-expanded="true"]::before { transform: translate(-50%, -20%) rotate(-135deg); }
  .kopf .menue__unter { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 .6rem 1rem; width: 100%; display: none; min-width: 0; }
  .kopf .menue__unter.ist-offen { display: block; }
  .kopf .menue__unter .menue__punkt { border: 0; }
  .kopf .menue__unter .menue__link { padding: .6rem 0; }
}

/* ---------- Hauptbereich ---------- */
.haupt.ist-vollbreit { padding: 0; }
.haupt__innen { max-width: var(--maxw-text); margin: 0 auto; padding: var(--abstand-y) var(--gutter); }

/* Page-Builder-Grundgerüst */
.site .sppb-section { position: relative; padding: var(--abstand-y) 0; margin: 0; }
.site .sppb-row-container { max-width: var(--maxw); padding-inline: var(--gutter); margin-inline: auto; width: 100%; }
.site .sppb-addon-wrapper { margin-bottom: 1.4rem; }
.site .sppb-column-addons > .sppb-addon-wrapper:last-child { margin-bottom: 0; }
.site .sppb-addon-text-block .sppb-addon-content { font-size: inherit; line-height: inherit; }
.site .sppb-addon-text-block .sppb-addon-content > :last-child { margin-bottom: 0; }

/* Hintergründe */
.site .sppb-section.hell { background-color: var(--c-weiss); }
.site .sppb-section.rose { background-color: var(--c-rose); }
.site .sppb-section.eng { padding-block: clamp(2.5rem, 5vw, 4rem); }
.site .sppb-section.ohne-unten { padding-bottom: 0; }
.site .sppb-section.rose:not(.ohne-unten) + .sppb-section.rose, .site .sppb-section.hell + .sppb-section.hell.fotoreihe { padding-top: 0; }
.site .sppb-section.ohne-unten + .sppb-section { padding-top: clamp(1.8rem, 3.5vw, 2.8rem); }

/* Lesebreite für zentrierten Text */
.site .lesetext { max-width: var(--maxw-text); margin-inline: auto; }
.site .zentriert, .site .zentriert .sppb-addon-content { text-align: center; }

/* ---------- Hero ---------- */
.site .sppb-section.hero {
  min-height: min(88vh, 54rem); display: flex; align-items: flex-end; padding: 0;
  background-size: cover; background-position: center; color: #fff; isolation: isolate;
}
.site .sppb-section.hero::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(30, 18, 22, .15) 0%, rgba(30, 18, 22, .25) 45%, rgba(30, 18, 22, .68) 100%);
}
.site .sppb-section.hero.unterseite { min-height: min(62vh, 36rem); }
.site .sppb-section.hero > .sppb-row-container { padding-block: clamp(3rem, 9vw, 7rem) clamp(2.5rem, 7vw, 5.5rem); }
.site .hero h1, .site .hero h2, .site .hero .sppb-addon-title { color: #fff; text-shadow: 0 2px 30px rgba(0,0,0,.35); }
.site .hero .dachzeile .sppb-addon-title { color: #fff !important; opacity: .92; }
.site .hero .sppb-addon-text-block { font-size: clamp(1.05rem, 1.6vw, 1.25rem); max-width: 38rem; margin-inline: auto; }
.site .hero .sppb-text-left .sppb-addon-text-block, .site .hero .links .sppb-addon-content { margin-inline: 0; }

/* ---------- Buttons ---------- */
.site .sppb-btn, .site .knopf a, .site a.knopf {
  display: inline-flex; align-items: center; gap: .6em; padding: .95em 2.1em; border-radius: 999px;
  font-family: var(--font-text); font-size: .8rem !important; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  text-decoration: none; line-height: 1.2; border: 1px solid var(--c-beere) !important;
  background: var(--c-beere) !important; color: #fff !important; transition: background .2s, color .2s, transform .2s;
  box-shadow: none !important;
}
.site .sppb-btn:hover, .site a.knopf:hover { background: var(--c-beere-dunkel) !important; border-color: var(--c-beere-dunkel) !important; transform: translateY(-1px); }
.site .sppb-btn.knopf-hell, .site .knopf-hell .sppb-btn { background: transparent !important; color: var(--c-beere) !important; }
.site .sppb-btn.knopf-hell:hover, .site .knopf-hell .sppb-btn:hover { background: var(--c-beere) !important; color: #fff !important; }
/* Mehrere Buttons nebeneinander (Hero, Band) */
.site .hero .sppb-column-addons, .site .band .sppb-column-addons { text-align: center; }
.site .hero .sppb-addon-wrapper:has(.sppb-addon-button), .site .band .sppb-addon-wrapper:has(.sppb-addon-button) { display: inline-block; margin: .4rem .35rem 0; }
.site .hero .sppb-btn.knopf-hell { background: transparent !important; color: #fff !important; border-color: #fff !important; }
.site .hero .sppb-btn.knopf-hell:hover { background: #fff !important; color: var(--c-beere) !important; }
.site .hero .sppb-btn, .site .band .sppb-btn { background: #fff !important; color: var(--c-beere) !important; border-color: #fff !important; }
.site .hero .sppb-btn:hover, .site .band .sppb-btn:hover { background: var(--c-beere) !important; color: #fff !important; border-color: var(--c-beere) !important; }
.site .sppb-addon-button-group .sppb-addon-content { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; }
.site .sppb-addon-button-group .sppb-btn { margin: 0 !important; }

/* ---------- Zwei Spalten: Bild + Text ---------- */
.site .split .sppb-row { align-items: center; row-gap: 2.5rem; }
.site .split .sppb-addon-single-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border: 10px solid #fff; box-shadow: var(--schatten); }
.site .split.quer .sppb-addon-single-image img { aspect-ratio: 3 / 2; }
.site .split .sppb-column-addons { padding-inline: clamp(0rem, 2.5vw, 2.5rem); }
.site .bildpaar .sppb-addon-single-image + .sppb-addon-single-image { margin-top: -18%; }
.site .bild-klein img { width: 62% !important; margin: -22% 0 0 auto; position: relative; }

/* ---------- Karten (gleich breit) ---------- */
.site .karten > .sppb-row-container > .sppb-row,
.site .karten .sppb-row-container > .sppb-row {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.2rem, 2.5vw, 2.2rem); margin-inline: 0;
}
.site .karten [id^="column-wrap-id"] { padding: 0 !important; max-width: none !important; flex-basis: auto !important; width: auto !important; }
.site .karten .sppb-column {
  height: 100%; background: #fff; padding: 12px 12px 1.8rem; box-shadow: var(--schatten); text-align: center;
  display: flex; flex-direction: column; transition: transform .3s;
}
.site .karten .sppb-column:hover { transform: translateY(-4px); }
.site .karten .sppb-column-addons { display: flex; flex-direction: column; height: 100%; }
.site .karten .sppb-addon-wrapper { margin-bottom: 1rem; }
.site .karten .sppb-addon-wrapper:has(.sppb-addon-button) { margin-top: auto; margin-bottom: 0; }
.site .karten .sppb-addon-single-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.site .karten .sppb-addon-title { font-family: var(--font-schrift); font-size: 2.4rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--c-beere); margin: .2rem 0 0; }
.site .karten .sppb-addon-text-block { padding-inline: 1rem; font-size: .98rem; }
.site .karten .sppb-btn { padding: .8em 1.6em; }
@media (max-width: 900px) {
  .site .karten > .sppb-row-container > .sppb-row, .site .karten .sppb-row-container > .sppb-row { grid-template-columns: 1fr; max-width: 28rem; margin-inline: auto; }
}

/* ---------- Galerie (Mauerwerk + Lightbox + Filter) ---------- */
.site .galerie .sppb-column-addons { columns: 3 18rem; column-gap: clamp(.8rem, 1.6vw, 1.2rem); }
.site .galerie .sppb-addon-wrapper:has(.sppb-addon-single-image) { break-inside: avoid; margin-bottom: clamp(.8rem, 1.6vw, 1.2rem); }
.site .galerie .sppb-addon-wrapper:has(.sppb-addon-header), .site .galerie .sppb-addon-wrapper:has(.sppb-addon-text-block) { column-span: all; }
.site .galerie .sppb-addon-single-image img { width: 100%; cursor: zoom-in; transition: opacity .25s, transform .4s; }
.site .galerie .sppb-addon-single-image img:hover { opacity: .9; }
.site .galerie-kategorie.ist-versteckt { display: none; }
.galerie-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; padding: 0 var(--gutter) 0; margin: 0 auto; max-width: var(--maxw); }
.galerie-filter button {
  font: 700 .78rem/1 var(--font-text); letter-spacing: .16em; text-transform: uppercase; padding: .85em 1.5em;
  border-radius: 999px; border: 1px solid var(--c-beere); background: transparent; color: var(--c-beere); cursor: pointer; transition: .2s;
}
.galerie-filter button[aria-pressed="true"], .galerie-filter button:hover { background: var(--c-beere); color: #fff; }

/* Fotoreihe auf Leistungsseiten: Raster mit Großansicht */
.site .fotoreihe .sppb-column-addons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.6rem, 1.4vw, 1rem); }
.site .fotoreihe .sppb-addon-wrapper { margin: 0 !important; }
.site .fotoreihe .sppb-addon-wrapper:has(.sppb-addon-header), .site .fotoreihe .sppb-addon-wrapper:has(.sppb-addon-text-block) { grid-column: 1 / -1; margin-bottom: 1rem !important; }
.site .fotoreihe .sppb-addon-wrapper:has(.sppb-addon-button) { grid-column: 1 / -1; margin-top: 1.6rem !important; text-align: center; }
.site .fotoreihe .sppb-addon-single-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; cursor: zoom-in; }
@media (max-width: 700px) { .site .fotoreihe .sppb-column-addons { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Lightbox */
.lightbox { position: fixed; inset: 0; z-index: 1000; background: rgba(20, 14, 16, .94); display: grid; place-items: center; padding: 3.5rem 4rem; }
.lightbox[hidden] { display: none; }
.lightbox__figur { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; }
.site .lightbox__figur img { display: block; width: auto; height: auto; max-width: min(calc(100vw - 8rem), 1600px); max-height: calc(100vh - 8rem); object-fit: contain; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.lightbox__figur figcaption { color: #e8dfe2; font-size: .9rem; margin-top: .9rem; text-align: center; }
.lightbox button { position: absolute; border: 0; background: transparent; color: #fff; cursor: pointer; font-size: 2.6rem; line-height: 1; padding: .6rem 1rem; opacity: .8; }
.lightbox button:hover { opacity: 1; }
.lightbox__zu { top: .6rem; right: .8rem; }
.lightbox__pfeil--zurueck { left: .4rem; top: 50%; transform: translateY(-50%); }
.lightbox__pfeil--vor { right: .4rem; top: 50%; transform: translateY(-50%); }
@media (max-width: 700px) { .lightbox { padding: 3.5rem .5rem; } .site .lightbox__figur img { max-width: calc(100vw - 1rem); max-height: calc(100vh - 9rem); } .lightbox__pfeil { top: auto !important; bottom: .6rem; transform: none !important; } }

/* ---------- Zitat / Hervorhebung ---------- */
.site .zitat .sppb-addon-content {
  font-family: var(--font-schrift); font-size: clamp(2rem, 4vw, 2.9rem); line-height: 1.25; color: var(--c-beere); text-align: center;
}
.site .zeilen .sppb-addon-content p { margin: 0 0 .2em; font-style: italic; text-align: center; color: var(--c-dunkel); }
.site .zeilen .sppb-addon-content { margin: 1.4rem 0; }

/* ---------- Band (Bild mit Overlay, Abschluss) ---------- */
.site .sppb-section.band { background-size: cover; background-position: center 30%; color: #fff; text-align: center; isolation: isolate; padding-block: clamp(5rem, 12vw, 9rem); }
.site .sppb-section.band::before { content: ''; position: absolute; inset: 0; z-index: -1; background: rgba(43, 22, 30, .58); }
.site .band h2, .site .band .sppb-addon-title { color: #fff; }
.site .band .sppb-addon-text-block { max-width: 36rem; margin-inline: auto; font-size: 1.1rem; }

/* ---------- Fakten / Ablauf ---------- */
.site .fakten .sppb-row { row-gap: 1.6rem; }
.site .fakten .sppb-addon-text-block { text-align: center; }
.site .fakten .sppb-addon-content strong { display: block; font-family: var(--font-schrift); font-weight: 400; font-size: 2.6rem; color: var(--c-beere); line-height: 1.1; margin-bottom: .3rem; }

/* ---------- FAQ ---------- */
.site .faq-eintrag { border-bottom: 1px solid var(--c-linie); padding: 0; }
.site .faq-eintrag:first-of-type { border-top: 1px solid var(--c-linie); }
.site .faq-eintrag summary {
  cursor: pointer; list-style: none; padding: 1.15rem 2.5rem 1.15rem 0; position: relative;
  font-weight: 700; color: var(--c-dunkel);
}
.site .faq-eintrag summary::-webkit-details-marker { display: none; }
.site .faq-eintrag summary::after { content: '+'; position: absolute; right: .3rem; top: 50%; transform: translateY(-50%); color: var(--c-beere); font-size: 1.6rem; font-weight: 400; transition: transform .2s; }
.site .faq-eintrag[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.site .faq-eintrag > :not(summary) { margin: 0 0 1.2rem; }

/* ---------- Preise ---------- */
.site .preise .sppb-addon-text-block .sppb-addon-content { background: #fff; padding: clamp(1.5rem, 3vw, 2.4rem); box-shadow: var(--schatten); height: 100%; }
.site .preise .preis { font-family: var(--font-schrift); font-size: 2.6rem; color: var(--c-beere); line-height: 1.1; margin: .2rem 0 .8rem; }
.site .preise ul { padding-left: 1.1rem; margin: 0 0 1rem; }
.site .preise li { margin-bottom: .35rem; }

/* ---------- Kontakt ---------- */
.site .kontakt > .sppb-row-container > .sppb-row { align-items: flex-start; row-gap: 2.5rem; }
.site .sppb-ajaxt-contact-form .sppb-row { row-gap: 0; }
.site .kontakt .sppb-column-addons { padding-inline: clamp(0rem, 1.5vw, 1.5rem); }
.site .kontaktdaten .sppb-addon-content { font-size: 1.05rem; }
.site .kontaktdaten a { text-decoration: none; }
.site .kontakt .sppb-addon-single-image img {
  width: 100%; max-width: 24rem; aspect-ratio: 4 / 5; object-fit: cover;
  border: 10px solid #fff; box-shadow: var(--schatten); margin-top: .8rem;
}
/* Formular als Karte – gleiche Optik wie Leistungskarten und Preise */
.site .kontakt .sppb-column:has(.sppb-addon-ajax-contact) {
  background: #fff; padding: clamp(1.6rem, 3.5vw, 3rem); box-shadow: var(--schatten);
}
.site .formular-hinweis .sppb-addon-content { color: var(--c-text-hell); font-size: .98rem; }
.site .sppb-ajaxt-contact-form .sppb-row { margin-inline: -.6rem; }
.site .sppb-ajaxt-contact-form .sppb-form-group { margin-bottom: 1.15rem; padding-inline: .6rem; }
.site .sppb-ajaxt-contact-form > .sppb-form-group { padding-inline: 0; }
.site .sppb-ajaxt-contact-form label:not(.sppb-form-check-label) {
  display: block; margin: 0 0 .45rem; font-size: .74rem; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: var(--c-dunkel);
}
.site .sppb-ajaxt-contact-form .sppb-form-control {
  display: block; width: 100%; border: 1px solid var(--c-linie); border-radius: var(--radius); background: var(--c-papier);
  padding: .85rem 1rem; font: inherit; font-size: 1rem; line-height: 1.5; color: var(--c-dunkel); box-shadow: none;
  transition: border-color .2s, background-color .2s, box-shadow .2s;
}
.site .sppb-ajaxt-contact-form .sppb-form-control::placeholder { color: transparent; }
.site .sppb-ajaxt-contact-form .sppb-form-control:focus {
  outline: none; border-color: var(--c-beere); background: #fff; box-shadow: 0 0 0 3px rgba(204, 51, 102, .12);
}
.site .sppb-ajaxt-contact-form textarea.sppb-form-control { min-height: 10rem; resize: vertical; }
.site .sppb-ajaxt-contact-form input[name="captcha_question"] { max-width: 12rem; }
.site .sppb-ajaxt-contact-form .sppb-form-check { display: flex; align-items: flex-start; gap: .75rem; padding: 0; margin: .4rem 0 0; }
.site .sppb-ajaxt-contact-form .sppb-form-check-input {
  flex: none; width: 1.15rem; height: 1.15rem; margin: .2rem 0 0; position: static; accent-color: var(--c-beere); cursor: pointer;
}
.site .sppb-ajaxt-contact-form .sppb-form-check-label { font-size: .9rem; line-height: 1.6; color: var(--c-text); cursor: pointer; }
.site .sppb-ajaxt-contact-form .sppb-form-button { margin-top: 1.6rem; }
.site .sppb-ajax-contact-status {
  margin-top: 1.2rem; padding: 1rem 1.2rem; background: var(--c-rose); border-left: 3px solid var(--c-beere); color: var(--c-dunkel);
}
@media (max-width: 767px) {
  .site .kontakt .sppb-column:has(.sppb-addon-ajax-contact) { margin-inline: calc(var(--gutter) * -0.5); }
}

/* ---------- Rechtstexte ---------- */
.site .rechtstext h2 { font-family: var(--font-text); font-size: 1.25rem; font-weight: 700; margin: 2rem 0 .6rem; }
.site .rechtstext h3 { font-size: .95rem; margin-top: 1.5rem; }

/* ---------- Fuß ---------- */
.fuss { background: var(--c-dunkel); color: #d9cfd2; font-size: .95rem; }
.fuss__innen {
  max-width: var(--maxw); margin: 0 auto; padding: clamp(3rem, 6vw, 4.5rem) var(--gutter) 2rem;
  display: grid; grid-template-columns: 1.3fr repeat(3, 1fr); gap: 2.5rem;
}
.fuss__marke img { width: 190px; height: auto; filter: brightness(0) invert(1); opacity: .95; }
.fuss__claim { font-family: var(--font-schrift); font-size: 1.9rem; color: #fff; margin: .8rem 0 0; line-height: 1.2; }
.site .fuss__titel { font-family: var(--font-text); font-size: .78rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #fff; margin: 0 0 1rem; }
.site .fuss a { color: #f1e6ea; text-decoration: none; }
.site .fuss a:hover { color: #fff; text-decoration: underline; }
.fuss ul { list-style: none; margin: 0; padding: 0; }
.fuss li { margin: 0 0 .45rem; }
.fuss .menue { display: block; }
.site .fuss .menue__link { padding: 0; font-size: .95rem; letter-spacing: 0; text-transform: none; font-weight: 400; color: #f1e6ea; }
.fuss .menue__auf, .fuss .menue__unter { display: none; }
.fuss__leiste {
  max-width: var(--maxw); margin: 0 auto; padding: 1.2rem var(--gutter) 1.6rem; border-top: 1px solid rgba(255,255,255,.12);
  display: flex; flex-wrap: wrap; gap: .6rem 2rem; justify-content: space-between; font-size: .85rem;
}
.fuss__leiste p { margin: 0; }
.fuss__leiste .menue { display: flex; gap: 1.5rem; }
.site .fuss__leiste .menue__link { font-size: .85rem; }
@media (max-width: 900px) { .fuss__innen { grid-template-columns: 1fr 1fr; } .fuss__marke { grid-column: 1 / -1; } }
@media (max-width: 520px) { .fuss__innen { grid-template-columns: 1fr; } }

/* ---------- Fehlerseite ---------- */
.fehler { min-height: 60vh; display: grid; place-items: center; text-align: center; padding: var(--abstand-y) var(--gutter); }

/* ---------- Page-Builder-Reste neutralisieren ---------- */
.site .sppb-section .sppb-row-overlay { display: none; }
.site .sppb-addon-single-image .sppb-addon-image-overlay { display: none; }
.site .clearfix::before, .site .clearfix::after { content: none; }

/* ---------- Mobil-Feinheiten ---------- */
@media (max-width: 767px) {
  .site .sppb-addon-wrapper:has(.kontakt-bild) { display: none; }
  .site .sppb-section.hero { min-height: 78vh; }
  .site .split .sppb-row > div + div { margin-top: 0; }
  .site .bild-klein img { width: 70% !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .site *, .site *::before, .site *::after { transition: none !important; animation: none !important; }
}
