/* ============================================================
   STIL-VARIANTEN
   ------------------------------------------------------------
   Damit nicht jede Kundenseite gleich aussieht, gibt es zu den
   wichtigsten Abschnitten mehrere Layouts. Gesteuert wird das
   ueber Klassen am <body>, gesetzt aus inhalt.json.

   Beispiel: <body class="s-held-geteilt s-formen-kantig">
   ============================================================ */

/* ============================================================
   1 · FORMENSPRACHE
   Wie rund sind Ecken und Knoepfe? Aendert den Gesamteindruck
   staerker als man denkt: kantig wirkt sachlich, weich wirkt warm.
   ============================================================ */

.s-formen-kantig {
  --ecke-s: 0px; --ecke-m: 0px; --ecke-l: 0px; --ecke-rund: 0px;
}
.s-formen-kantig .knopf { letter-spacing: .08em; text-transform: uppercase; font-size: var(--gr-xs); }
.s-formen-kantig .knopf--gross { font-size: var(--gr-s); }
.s-formen-kantig .ueber__siegel { border-radius: 0; }
.s-formen-kantig .gutschein__chip { border-radius: 0; }

.s-formen-gemischt {
  --ecke-s: 2px; --ecke-m: 4px; --ecke-l: 6px; --ecke-rund: 4px;
}

/* weich = Standardwerte aus design.css, keine Ueberschreibung noetig */


/* ============================================================
   2 · KOPFBILD
   ============================================================ */

/* ---- Variante: geteilt (Text links, Bild rechts) ---- */
.s-held-geteilt .held {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  padding: 0;
  color: var(--text);
  background: var(--papier);
}
.s-held-geteilt .held__bild {
  position: relative; grid-column: 2; grid-row: 1;
  min-height: min(78svh, 44rem);
}
.s-held-geteilt .held__schleier { display: none; }
.s-held-geteilt .held__inhalt {
  grid-column: 1; grid-row: 1;
  max-width: none;
  align-self: center;
  padding: clamp(3rem, 7vw, 6rem) clamp(1.5rem, 5vw, 5rem);
  margin: 0;
}
.s-held-geteilt .held__titel { color: var(--tinte); font-size: var(--gr-3xl); }
.s-held-geteilt .held__text  { color: var(--text-leise); }
.s-held-geteilt .held__augenbraue { color: var(--marke); }
.s-held-geteilt .held__status {
  border-top-color: var(--linie);
  color: var(--text-leise);
}
.s-held-geteilt .held__tel { color: var(--tinte); }
.s-held-geteilt .knopf--hell {
  --knopf-farbe: var(--tinte);
  border-color: var(--linie-stark);
}
.s-held-geteilt .knopf--hell:hover { background: var(--tinte); color: var(--papier); }
.s-held-geteilt .held__pfeil { display: none; }

@media (max-width: 860px) {
  .s-held-geteilt .held { grid-template-columns: 1fr; }
  .s-held-geteilt .held__bild { grid-column: 1; grid-row: 1; min-height: 46svh; }
  .s-held-geteilt .held__inhalt { grid-column: 1; grid-row: 2; }
}

/* ---- Variante: geteilt, aber Bild links ---- */
.s-held-spiegel .held {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  padding: 0;
  color: var(--text);
  background: var(--papier);
}
.s-held-spiegel .held__bild {
  position: relative; grid-column: 1; grid-row: 1;
  min-height: min(78svh, 44rem);
}
.s-held-spiegel .held__schleier { display: none; }
.s-held-spiegel .held__inhalt {
  grid-column: 2; grid-row: 1;
  max-width: none; align-self: center;
  padding: clamp(3rem, 7vw, 6rem) clamp(1.5rem, 5vw, 5rem);
}
.s-held-spiegel .held__titel { color: var(--tinte); font-size: var(--gr-3xl); }
.s-held-spiegel .held__text  { color: var(--text-leise); }
.s-held-spiegel .held__augenbraue { color: var(--marke); }
.s-held-spiegel .held__status { border-top-color: var(--linie); color: var(--text-leise); }
.s-held-spiegel .held__tel { color: var(--tinte); }
.s-held-spiegel .knopf--hell { --knopf-farbe: var(--tinte); border-color: var(--linie-stark); }
.s-held-spiegel .knopf--hell:hover { background: var(--tinte); color: var(--papier); }
.s-held-spiegel .held__pfeil { display: none; }
@media (max-width: 860px) {
  .s-held-spiegel .held { grid-template-columns: 1fr; }
  .s-held-spiegel .held__bild { grid-row: 1; min-height: 46svh; }
  .s-held-spiegel .held__inhalt { grid-column: 1; grid-row: 2; }
}

/* ---- Variante: zentriert ---- */
.s-held-zentriert .held { align-items: center; text-align: center; min-height: min(88svh, 54rem); }
.s-held-zentriert .held__inhalt { margin-inline: auto; max-width: 46rem; }
.s-held-zentriert .held__titel { font-size: var(--gr-3xl); }
.s-held-zentriert .held__text { margin-inline: auto; }
.s-held-zentriert .held__knoepfe { justify-content: center; }
.s-held-zentriert .held__status { justify-content: center; }
.s-held-zentriert .held__augenbraue::after {
  content: ''; width: 2.5rem; height: 1px; background: currentColor; opacity: .55;
}
.s-held-zentriert .held__schleier {
  background: linear-gradient(to bottom,
    color-mix(in srgb, var(--tinte) 62%, transparent),
    color-mix(in srgb, var(--tinte) 78%, transparent));
}

/* ---- Variante: gerahmt (Bild mit Rand, Inhalt darueber) ---- */
.s-held-gerahmt .held {
  padding: clamp(1rem, 2.5vw, 2rem);
  background: var(--papier);
  min-height: 0;
}
.s-held-gerahmt .held__bild {
  inset: clamp(1rem, 2.5vw, 2rem);
  border-radius: var(--ecke-l);
  overflow: hidden;
}
.s-held-gerahmt .held__inhalt {
  padding-block: clamp(6rem, 16vh, 11rem) clamp(3rem, 8vh, 5rem);
}
.s-held-gerahmt .held__schleier { border-radius: var(--ecke-l); }


/* ============================================================
   3 · LEISTUNGEN
   ============================================================ */

/* ---- Variante: Karten ---- */
.s-leistungen-karten .preis-raster {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: var(--r5);
}
.s-leistungen-karten .preis-karte {
  display: block;
  border: 1px solid var(--linie);
  border-radius: var(--ecke-l);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  background: var(--papier);
  transition: box-shadow var(--weich), transform var(--weich);
}
.s-leistungen-karten .preis-karte:first-child { padding-top: clamp(1.5rem, 3vw, 2.25rem); }
.s-leistungen-karten .preis-karte:hover { transform: translateY(-3px); box-shadow: var(--schatten-m); }
.s-leistungen-karten .preis-karte__titel {
  position: static;
  font-size: var(--gr-l);
  padding-bottom: var(--r4);
  border-bottom: 1px solid var(--linie);
  margin-bottom: var(--r3);
}
.s-leistungen-karten .preis-liste__zeile { padding-block: .75rem; }
.s-leistungen-karten .preis-liste__zeile:hover { padding-left: 0; }
.s-leistungen-karten .preis-liste__was { font-size: var(--gr-m); }
.s-leistungen-karten .preis-liste__preis { font-size: var(--gr-l); }

/* ---- Variante: Zweispalter ohne Kategorie-Spalte ---- */
.s-leistungen-spalten .preis-raster {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 5vw, 4rem);
}
.s-leistungen-spalten .preis-karte {
  display: block; border-top: 0; padding-top: 0;
}
.s-leistungen-spalten .preis-karte__titel {
  position: static;
  font-size: var(--gr-xl);
  padding-bottom: var(--r3);
  border-bottom: 2px solid var(--tinte);
  margin-bottom: var(--r3);
}
@media (max-width: 760px) {
  .s-leistungen-spalten .preis-raster { grid-template-columns: 1fr; }
}


/* ============================================================
   4 · ÜBER UNS
   ============================================================ */

/* ---- Variante: Bild rechts ---- */
.s-ueber-rechts .ueber { direction: rtl; }
.s-ueber-rechts .ueber > * { direction: ltr; }
.s-ueber-rechts .ueber__bilder { padding-right: 0; padding-left: 3rem; }
.s-ueber-rechts .ueber__bild-klein { right: auto; left: 0; }
.s-ueber-rechts .ueber__siegel { left: auto; right: calc(-1 * var(--r4)); }
@media (max-width: 900px) {
  .s-ueber-rechts .ueber { direction: ltr; }
}

/* ---- Variante: Bild über volle Breite, Text zweispaltig darunter ---- */
.s-ueber-breit .ueber { display: block; }
.s-ueber-breit .ueber__bilder {
  padding: 0; margin-bottom: clamp(2rem, 5vw, 3.5rem);
  position: relative;
}
.s-ueber-breit .ueber__bild-gross { aspect-ratio: 21 / 9; }
.s-ueber-breit .ueber__bild-klein { display: none; }
.s-ueber-breit .ueber__siegel { top: auto; bottom: var(--r5); left: var(--r5); }
.s-ueber-breit .ueber__text {
  columns: 2; column-gap: clamp(2rem, 5vw, 4rem);
}
.s-ueber-breit .ueber__text > * { break-inside: avoid; }
.s-ueber-breit .haken-liste { columns: 1; }
@media (max-width: 800px) {
  .s-ueber-breit .ueber__text { columns: 1; }
}


/* ============================================================
   5 · GALERIE
   ============================================================ */

/* ---- Variante: gleichmaessiges Raster ---- */
.s-galerie-gleich .galerie {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: auto;
}
.s-galerie-gleich .galerie__stueck {
  grid-column: span 1 !important; grid-row: auto !important;
}
.s-galerie-gleich .galerie__stueck .bild-rahmen { aspect-ratio: 4 / 5; }
@media (max-width: 860px) {
  .s-galerie-gleich .galerie { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .s-galerie-gleich .galerie { grid-template-columns: 1fr; }
}

/* ---- Variante: waagerechter Bildstreifen zum Wischen ---- */
.s-galerie-streifen .galerie {
  display: flex;
  gap: var(--r4);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: var(--r4);
  margin-inline: calc(-1 * var(--rand));
  padding-inline: var(--rand);
  scrollbar-width: thin;
}
.s-galerie-streifen .galerie__stueck {
  flex: 0 0 clamp(240px, 30vw, 380px);
  scroll-snap-align: start;
  grid-column: auto !important; grid-row: auto !important;
}
.s-galerie-streifen .galerie__stueck .bild-rahmen { aspect-ratio: 3 / 4; }
.s-galerie-streifen .galerie::-webkit-scrollbar { height: 4px; }
.s-galerie-streifen .galerie::-webkit-scrollbar-thumb {
  background: var(--linie-stark); border-radius: 99px;
}


/* ============================================================
   6 · ABSCHNITTS-NUMMERN
   Nicht jede Seite soll die grossen Ziffern zeigen.
   ============================================================ */
.s-nummern-aus .sektion[id] .kopfzeile-sektion::before { display: none; }

.s-nummern-klein .sektion[id] .kopfzeile-sektion::before {
  font-size: var(--gr-xs);
  font-family: var(--schrift-klein);
  font-weight: 600;
  letter-spacing: .18em;
  opacity: .75;
  color: var(--marke);
  position: static;
  display: block;
  margin-bottom: .5rem;
}
.s-nummern-klein .kopfzeile-sektion--mittig::before { transform: none; }


/* ============================================================
   7 · KOPFZEILE
   ============================================================ */

/* ---- Variante: Logo mittig, Navigation darunter ---- */
.s-kopf-mittig .kopf__reihe {
  flex-direction: column; gap: var(--r3);
  padding-block: var(--r4);
  position: relative;          /* Bezugspunkt für die Knöpfe rechts */
}
.s-kopf-mittig .marke { align-items: center; text-align: center; }
.s-kopf-mittig .nav { order: 3; }
.s-kopf-mittig .kopf__aktionen {
  position: absolute; right: 0; top: 50%; transform: translateY(-50%);
}
@media (max-width: 1000px) {
  .s-kopf-mittig .kopf__reihe { flex-direction: row; }
  .s-kopf-mittig .kopf__aktionen { position: static; transform: none; }
}

/* ---- Variante: ohne oberen Infobalken ---- */
.s-kopf-schlicht .kopf__balken { display: none; }
