/* =========================================================
   DOGGERY — Bausteine
   Alle Werte kommen aus tokens.css. Hier stehen keine
   Farben und keine Groessen im Klartext.
   Quelle der Wahrheit: 01_Designsystem/design.md
   ========================================================= */

/* ---------- Grundlage ---------- */
*,*::before,*::after{box-sizing:border-box}
body,h1,h2,h3,h4,p,figure,blockquote,ul,ol{margin:0}
ul[class]{list-style:none;padding:0}
img,svg{max-width:100%;display:block}
/* Weiches Scrollen gilt erst, wenn die Seite fertig geladen ist: die
   Klasse "weich" setzt js/site.js kurz nach dem Laden. Grund (04.10.2026):
   Wer von einer Unterseite auf einen Anker der Startseite kommt, etwa
   ueber "Unverbindlich anfragen", sah sonst die ganze Seite nach unten
   rollen. Jetzt steht man beim Ankommen sofort an der Stelle; Spruenge
   INNERHALB einer Seite bleiben weich.
   Zurueck zum alten Verhalten: hier wieder html{scroll-behavior:smooth}. */
html.weich{scroll-behavior:smooth}
/* Ueberscrollen am Handy (Anita, 05.10.2026): Wer unten am Ende der Seite
   noch weiter zieht, sah eine weisse Flaeche unter dem gelben Balken der
   Fusszeile. Das Dokument hinter der Seite bekommt deshalb oben Weiss
   (passt zur Kopfzeile) und unten Gelb (passt zum Balken). Der Verlauf
   hat keine weiche Kante, die Haelften sind nur sichtbar, wenn ueber die
   Seite hinausgezogen wird. body behaelt sein eigenes Weiss und
   mindestens Fensterhoehe, damit bei kurzen Seiten nichts durchscheint. */
html{background:linear-gradient(var(--farbe-basis) 50%,var(--farbe-signal) 50%)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

body{
  font-family:var(--schriftart-sans);
  font-size:var(--fliesstext-groesse);
  line-height:var(--fliesstext-hoehe);
  letter-spacing:var(--fliesstext-laufweite);
  font-weight:var(--fliesstext-staerke);
  color:var(--farbe-schrift);
  background:var(--farbe-basis);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}

/* ---------- Typografie ---------- */
h1{font-size:var(--h1-groesse);line-height:var(--h1-hoehe);
   letter-spacing:var(--h1-laufweite);font-weight:var(--h1-staerke)}
h2{font-family:var(--schriftart-serif);font-size:var(--h2-groesse);
   line-height:var(--h2-hoehe);font-weight:var(--h2-staerke);color:var(--farbe-akzent)}
h3{font-family:var(--schriftart-serif);font-size:var(--h3-groesse);
   line-height:var(--h3-hoehe);font-weight:var(--h3-staerke)}
h4{font-family:var(--schriftart-serif);font-size:var(--h4-groesse);
   line-height:var(--h4-hoehe);font-weight:var(--h4-staerke)}

/* Kleine Ueberschriftenoptik. Steht bewusst auch auf <p>: im Zitatband ist der
   Satz Dekoration und keine Gliederung, deshalb darf er keine Ueberschrift
   sein. Elementor hat das dort ebenfalls als Absatz (header_size p).
   Die Regel setzt Schriftart und Farbe deshalb selbst, statt sie von h2 zu
   erben. */
.h2-klein{font-family:var(--schriftart-serif);color:var(--farbe-akzent);
   font-size:var(--h2-klein-groesse);line-height:var(--h2-klein-hoehe);
   font-weight:var(--h2-klein-staerke)}
/* Eine H3, die die Groesse der H4-Stufe traegt. Gebraucht fuer "Hi, ich bin
   Alex!": im Elementor-Build steht dort eine H4, aber die Ebene wuerde unter
   der H2 des Abschnitts springen. Ebene bleibt also h3, Optik wird H4. */
.h3-klein{font-size:var(--h4-groesse);line-height:var(--h4-hoehe);
   font-weight:var(--h4-staerke)}
.label{font-size:var(--label-groesse);font-weight:var(--label-staerke);
   letter-spacing:var(--label-laufweite);text-transform:uppercase}
.lead{font-size:var(--lead-groesse);line-height:var(--lead-hoehe);
   font-weight:var(--lead-staerke)}
.betont{font-family:var(--schriftart-serif);font-size:var(--betont-groesse);
   line-height:var(--betont-hoehe);font-weight:var(--betont-staerke)}
/* Nicht kursiv. Im Elementor-Build steht das Zitat in Lora, Gewicht 400,
   aufrecht. Kursiv war unsere Zutat und macht den Satz schwerer lesbar. */
.zitat{font-family:var(--schriftart-serif);
   font-size:var(--zitat-groesse);line-height:var(--zitat-hoehe);
   letter-spacing:.02em}
.hinweis{font-size:var(--hinweis-groesse);line-height:var(--hinweis-hoehe);
   font-weight:var(--hinweis-staerke)}
.klein{font-size:var(--klein-groesse);line-height:var(--klein-hoehe)}
.leise{color:var(--farbe-schrift-leise)}

/* ---------- Raster ---------- */
/* Eine Bahn fuer alles. Die 1200px gelten fuer jedes Element der Seite,
   auch fuer die Kopfzeile. Nur so liegen Logo, Ueberschriften, Karten und
   Text auf derselben senkrechten Linie.
   Das seitliche Polster greift erst, wenn das Fenster zu schmal wird.
   Darueber sitzt der Inhalt auf der vollen Breite, ohne Einrueckung. */
.bahn{max-width:var(--breite-inhalt);margin-inline:auto;
  padding-inline:var(--abstand-standard)}
@media (min-width:1248px){
  .bahn{padding-inline:0}
}
.bahn--schmal{max-width:var(--breite-text)}
.abschnitt{padding-block:var(--abstand-abschnitt)}
/* Mehr Luft nach der Vertrauensleiste, bevor die Leistungen kommen. */
.abschnitt--luftig{padding-top:var(--abstand-maximal)}
/* Noch eine Stufe mehr, gebraucht vor der Galerie: davor liegt ein Cremeband,
   und ohne den zusaetzlichen Abstand klebt die Ueberschrift an dessen Kante. */
.abschnitt--sehr-luftig{padding-top:160px}
.abschnitt--creme{background:var(--farbe-hervorhebung)}
.abschnitt--gelb{background:var(--farbe-signal)}
.mitte{text-align:center}
/* Der Kopf eines Abschnitts: Label, H2, Vorspann.
   Die H2 darf die volle Inhaltsbreite nutzen und laeuft dadurch in moeglichst
   wenigen Zeilen. Eingeengt wird nur der Vorspann darunter, sonst wird die
   Lesezeile zu lang. Eine Breitenbegrenzung fuer den ganzen Kopf hatten wir
   getestet, das quetschte die Ueberschrift in zu viele Zeilen. */
.kopf{margin-inline:auto;text-align:center}
/* Laufweite des Vorspanns, 11.10.2026 (Anita, gebaut von Fable).
   Vorher: 46rem und text-wrap:balance. balance macht alle Zeilen gleich
   lang. Ein Text, der knapp nicht in eine Zeile passte, stand dadurch in
   zwei kurzen Zeilen von rund 500px, waehrend andere Vorspanntexte
   einzeilig bis 900px liefen ("komisch eingekuerzte Laufweite").
   Jetzt text-wrap:pretty: Die Zeilen nutzen die Breite, der Browser
   vermeidet nur ein einzelnes Wort in der letzten Zeile (Chrome, Safari;
   Firefox ignoriert die Angabe und bricht normal um).
   Ab 1025px darf der Vorspann 62rem breit werden, so stehen die kurzen
   Texte einzeilig. Die Regel steht bewusst VOR .kopf--weit, damit dessen
   max-width:none weiter gewinnt. */
.kopf .lead{max-width:46rem;margin-inline:auto;text-wrap:pretty}
@media (min-width:1025px){
  .kopf .lead{max-width:62rem}
}
/* Fuer Koepfe, deren Vorspann sonst zu frueh umbricht.
   text-wrap:initial hebt das balance der Regel darueber auf: wo der
   Umbruch im Text selbst gesetzt ist (mit <br>), soll der Browser nicht
   zusaetzlich umverteilen. */
.kopf--weit .lead{max-width:none;text-wrap:initial}
/* Mehr Luft ueber dem Block mit den eigenen Hunden. Elementor hat dort 80px,
   hier bewusst mehr, damit sich der Block vom Text darueber loest. */
.hunde-kopf{margin-top:128px}
/* Die Laufweite von 0.45rem wird auch HINTER dem letzten Buchstaben
   gesetzt. Bei mittigem Text schiebt das die ganze Zeile um diesen Wert
   nach links — sichtbar, weil es fast ein halber Buchstabe ist. Der
   text-indent gleicht das vorne wieder aus. Derselbe Kniff steckt schon
   im Badge "Bald verfuegbar". */
.kopf .label{margin-bottom:var(--abstand-eng);
  text-indent:var(--label-laufweite)}
.kopf .lead{margin-top:var(--abstand-nah)}

/* ---------- Sprungmarke fuer Tastatur ---------- */
.skip{position:absolute;left:var(--abstand-standard);top:-4rem;z-index:100;
  background:var(--farbe-schrift);color:var(--farbe-schrift-hell);
  padding:var(--abstand-nah) var(--abstand-standard);border-radius:var(--rundung-button);
  text-decoration:none;transition:top .15s ease}
.skip:focus{top:var(--abstand-nah)}

/* ---------- Buttons ---------- */
/* justify-content und text-align sind fuer den Fall da, dass ein Knopf
   von seinem Umfeld breiter gezogen wird (Raster mit stretch) und die
   Beschriftung dabei zweizeilig wird: ohne die beiden Zeilen stuenden
   die Zeilen linksbuendig im Knopf. Gefunden 14.09.2026 auf der
   Kontaktseite, Handybreite, "Kennenlerngespraech buchen". Bei einem
   Knopf in seiner natuerlichen Breite aendert sich nichts. */
.btn{display:inline-flex;align-items:center;justify-content:center;
  text-align:center;gap:10px;border:0;cursor:pointer;
  text-decoration:none;font-family:var(--schriftart-sans);
  font-size:var(--button-groesse);font-weight:var(--button-staerke);
  line-height:var(--button-hoehe);letter-spacing:var(--button-laufweite);
  border-radius:var(--rundung-button);
  padding:var(--button-polster-hoch) var(--button-polster-quer);
  transition:background-color .18s ease}
.btn--dunkel{background:var(--button-dunkel-flaeche);color:var(--button-dunkel-schrift)}
.btn--dunkel:hover,.btn--dunkel:focus-visible{background:var(--button-dunkel-hover)}
.btn--gelb{background:var(--button-gelb-flaeche);color:var(--button-gelb-schrift)}
/* ENTFERNT 14.09.2026: .btn--gross fuer den Hero-Knopf. Er war damit
   18px gross und 65px hoch, alle anderen dunklen Knoepfe 16px und 62px.
   Der Unterschied stammt aus dem Elementor-Build, und dort ist der
   Hero-Knopf der EINZIGE von zwoelf ohne eigene Typografie-Einstellung —
   er faellt auf den globalen Wert zurueck. Das sieht nach einer
   vergessenen Einstellung aus, nicht nach einer Entscheidung. Zwei
   Pixel Schriftunterschied schaffen ausserdem keine Rangordnung, sie
   wirken nur unsauber. Der Hero-Knopf steht als einziger im Bild und
   hat die Aufmerksamkeit ohnehin. */
/* Weiterfuehrende Buttons: flacher und breiter als die Handlungsaufrufe, die
   zum Kennenlerntermin fuehren. So sind die beiden Sorten auf einen Blick zu
   unterscheiden. Werte aus dem Elementor-Build: dort haben alle Buttons, die
   auf eine Unterseite zeigen, 16/70 statt 18/52 und Zeilenhoehe 1.38 statt 1.6.
   Ergibt 54px hoch statt 62px. */
.btn--sekundaer{padding:var(--button-sekundaer-polster-hoch)
                        var(--button-sekundaer-polster-quer);
  line-height:var(--button-sekundaer-hoehe)}
/* VERWORFEN 11.09.2026: eine dritte, inaktive Button-Optik. Drei verschiedene
   Buttons in einem Blickfeld waren zu viel. Noch nicht buchbare Leistungen
   bekommen denselben Button wie alle anderen, die Zielseite sagt dann, dass
   das Angebot in Vorbereitung ist. */
.btn--gelb:hover,.btn--gelb:focus-visible{background:var(--button-gelb-hover)}
:focus-visible{outline:3px solid var(--farbe-akzent);outline-offset:3px}

/* ---------- Icons ----------
   color steuert die Flaeche (ueber currentColor), stroke die Linien.
   Beide sind vererbte Eigenschaften und wirken deshalb auch durch
   das use-Element hindurch ins Symbol hinein. */
/* Der Haken im gefuellten Kreis ist ausgespart, nicht gezeichnet: die Linie
   traegt die Farbe des Untergrunds. Deshalb steht hier der helle Grundton und
   nicht Gelb. Gelb gilt nur dort, wo das Icon wirklich auf der gelben Leiste
   sitzt. Sonst schimmert Gelb in einem Haken auf weissem Grund. */
.icon{width:25px;height:25px;flex:0 0 auto;
  color:var(--farbe-schrift);stroke:var(--farbe-basis)}
.vertrauen .icon{stroke:var(--farbe-signal)}

/* ---------- Kopfzeile ----------
   Faehrt beim Herunterscrollen ein und beim Hochscrollen wieder aus.
   Die Logik steht in js/site.js, gesteuert ueber data-zustand. */
.kopfzeile{background:var(--farbe-basis);position:sticky;top:0;z-index:60;
  border-bottom:1px solid transparent;
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease}
.kopfzeile[data-zustand="versteckt"]{transform:translateY(-100%)}
.kopfzeile[data-zustand="gescrollt"]{border-bottom-color:var(--farbe-rahmen);
  box-shadow:0 1px 12px rgba(47,45,41,.06)}
.kopfzeile .bahn{display:flex;align-items:center;justify-content:space-between;
  gap:var(--abstand-standard);
  min-height:var(--kopfzeile-hoehe);
  padding-block:var(--kopfzeile-polster)}
.kopfzeile__logo{height:calc(var(--kopfzeile-hoehe) - 2 * var(--kopfzeile-polster));
  width:auto;max-width:100%}

/* Wer Bewegung reduziert haben will, bekommt eine Kopfzeile, die bleibt. */
@media (prefers-reduced-motion:reduce){
  .kopfzeile{transition:none}
  .kopfzeile[data-zustand="versteckt"]{transform:none}
}
.menue{display:flex;gap:var(--menue-abstand);align-items:center;
  flex-wrap:nowrap}
/* Kein Umbruch innerhalb eines Menuepunkts. Bei 768px brachen sonst
   "Ueber mich" und "Haeufige Fragen" auf zwei Zeilen und die Kopfzeile
   wurde doppelt so hoch. */
.menue>li{white-space:nowrap}
.menue a{font-size:var(--nav-groesse);font-weight:var(--nav-staerke);
  line-height:var(--nav-hoehe);letter-spacing:var(--nav-laufweite);
  color:var(--farbe-schrift);text-decoration:none;
  /* ERGAENZT 15.09.2026: Ohne Innenabstand ist die Tippflaeche eines
     Menuepunkts nur so hoch wie seine Zeile — bei 768px waren das
     23px. Fuer einen Finger zu wenig. 11px oben und unten bringen sie
     auf ueber 44px, ohne die Kopfzeile zu veraendern: die hat eine
     Mindesthoehe, und das Menue steht darin mittig.
     Anitas Vorgabe: Tippflaechen immer gross genug, nicht nur auf dem
     Handy. */
  display:block;padding-block:11px}
.menue a:hover,.menue a[aria-current="page"]{color:var(--farbe-akzent)}
.menue__schalter{display:none;background:none;border:0;cursor:pointer;
  padding:var(--abstand-eng);color:var(--farbe-schrift)}

/* ---------- Aufklappmenue "Leistungen" ----------
   Gebaut am 13.09.2026, ueberarbeitet am 14.09.2026.

   "Leistungen" ist ein LINK und fuehrt auf den Abschnitt der
   Startseite. Das Aufklappen liegt auf einem eigenen Knopf daneben.
   Beides auf ein Element zu legen geht nicht: entweder es fuehrt
   irgendwohin oder es klappt etwas auf.

   Geoeffnet wird per Klick auf den Knopf UND, auf Geraeten mit Maus,
   beim Ueberfahren der Gruppe. Das Hover laeuft ueber dasselbe
   Skript wie der Klick, nicht ueber eine :hover-Regel — sonst gaebe es
   zwei Zustaende, die sich widersprechen koennen. */
.menue__gruppe{position:relative;display:flex;align-items:center;gap:4px}
.menue__aufklapp{display:flex;align-items:center;
  background:none;border:0;padding:4px;cursor:pointer;
  color:var(--farbe-schrift);position:relative}
/* Die sichtbare Flaeche des Winkels ist 24 mal 24 — das ist genau das
   Mindestmass (WCAG 2.5.8) und fuer einen Finger auf dem Tablet zu
   klein, zumal 4px daneben ein Link liegt, der wegfuehrt. Wer daneben
   tippt, landet auf der Startseite statt im Untermenue.
   Die Trefferflaeche wird deshalb unsichtbar vergroessert, ohne Platz
   im Menue zu kosten: nach unten und oben auf 44px, nach rechts um
   12px in die Luecke zum naechsten Menuepunkt. Nach links NICHT, sonst
   frisst der Winkel das Ende des Wortes daneben.
   Gefunden am 15.09.2026 in der Tabletrunde, gilt auf allen Breiten ab
   768px. Auf dem Handy ist das Menue eine Liste ganzer Zeilen, dort
   stellt sich die Frage nicht. */
/* NACHGEBESSERT 16.09.2026 (Anita, beim Tablet-Durchgang): 36 mal 44
   waren immer noch zu wenig, sie hat beim Tippen den Link darunter
   erwischt statt den Winkel. Jetzt 46 mal 44 — 14px nach rechts in die
   Luecke (dort bleiben noch 10px bis "Ueber mich") und 8px nach links.
   Die 8px links liegen im Polster des Links, nicht auf dem Wort: das
   Wort endet bei 421, der Winkel beginnt bei 425.
   Der Winkel steht im Quelltext NACH dem Link, deshalb gewinnt er dort,
   wo sich die zwei Flaechen ueberlappen. */
.menue__aufklapp::after{content:"";position:absolute;
  left:-8px;right:-14px;top:50%;translate:0 -50%;height:44px}
.menue__aufklapp:hover,
.menue__aufklapp[aria-expanded="true"]{color:var(--farbe-akzent)}
/* color:inherit ist hier das Entscheidende. Die Grundregel .icon setzt
   color fest auf die Schriftfarbe — ohne diese Zeile bleibt der Winkel
   dunkel, auch wenn der Knopf orange ist. Das Symbol selbst zeichnet
   mit currentColor. */
.menue__aufklapp .icon{width:16px;height:16px;color:inherit;
  transition:transform .18s ease}
.menue__aufklapp[aria-expanded="true"] .icon{transform:rotate(180deg)}
@media (prefers-reduced-motion:reduce){
  .menue__aufklapp .icon{transition:none}
}

/* Eckig, wie die Formularfelder und das FAQ. Die weiche Rundung von
   12px passte nicht zum uebrigen Formenkanon. */
/* left:-30px gleicht den Innenabstand des Kastens aus. Dadurch steht
   der Text darin buendig unter "Leistungen" und nicht 30px weiter
   rechts. */
.menue__unter{position:absolute;top:calc(100% + 16px);left:-30px;z-index:20;
  min-width:16rem;list-style:none;margin:0;padding:0;
  background:var(--farbe-basis);
  border-radius:2px;
  box-shadow:0 14px 36px rgb(47 45 41 / .16)}
/* [hidden] setzt display:none. Ohne diese Zeile wuerde eine spaetere
   display-Angabe es wieder sichtbar machen. */
.menue__unter[hidden]{display:none}
/* Unsichtbare Bruecke ueber die 16px Luecke zum Knopf. Ohne sie
   schliesst das Menue, sobald die Maus den Zwischenraum beruehrt. */
.menue__unter::before{content:"";position:absolute;left:0;right:0;
  top:-16px;height:16px}
/* Eine Stufe kleiner als die Menuepunkte darueber (1.125rem): der
   Kasten ist die zweite Ebene und soll den Kopf nicht ueberstimmen.
   Kein Flaechen-Hover — die Menuepunkte oben faerben sich beim
   Ueberfahren auch nur orange, das macht .menue a:hover bereits. */
/* GEAENDERT 14.09.2026: Die Eintraege tragen eine kleine Pfote als
   Aufzaehlungszeichen. Anitas Wunsch aus der Mobilrunde — und weil es
   dort gilt, gilt es hier auch, sonst sieht dasselbe Menue auf zwei
   Geraeten verschieden aus.
   Die Pfote ist eine Maske (--zeichen-pfote) und kein fertiges Bild,
   damit die Farbe aus dem CSS kommt. */
/* GEAENDERT 15.09.2026: vorher feste 1rem, also eine Stufe kleiner als
   die Menuepunkte darueber. Seit die Menueschrift auf dem Tablet
   mitwaechst (bis auf 14.7px bei 768) war der Kasten darunter
   groesser als der Punkt, den man angetippt hat. Jetzt derselbe Wert,
   auf allen Breiten — auch auf dem Rechner, wo die Eintraege damit von
   16 auf 18px gehen. */
.menue__unter a{display:block;padding:20px 30px 20px 58px;white-space:nowrap;
  font-size:var(--nav-groesse);position:relative}
.menue__unter a::before{content:"";position:absolute;left:30px;top:50%;
  width:16px;height:16px;margin-top:-8px;
  background:var(--farbe-akzent);
  -webkit-mask:var(--zeichen-pfote) center/contain no-repeat;
          mask:var(--zeichen-pfote) center/contain no-repeat}
/* Feine Trennlinie zwischen den Eintraegen, an den Seiten eingerueckt
   wie der Text. Als Pseudoelement und nicht als border, weil ein
   border ueber die volle Breite laufen wuerde. */
.menue__unter li + li{position:relative}
/* GEAENDERT 16.09.2026 (Anita): die Linie war in der Rahmenfarbe
   #cecdc8 und dadurch zu praesent. Jetzt dieselbe Farbe mit 40 Prozent
   Deckkraft — gerade noch sichtbar, aber nicht mehr trennend. */
.menue__unter li + li::before{content:"";position:absolute;top:0;
  left:30px;right:30px;height:1px;
  background:color-mix(in srgb, var(--farbe-rahmen) 40%, transparent)}

/* ---------- Handymenue ----------
   Gebaut am 14.09.2026. Vorher stand hier nur .menue{display:none} und
   ein Schalter ohne Logik — auf dem Handy war keine einzige Unterseite
   erreichbar.

   Variante 1 aus der Abstimmung: das Menue legt sich als Vollbild unter
   die Kopfzeile. Die Kopfzeile bleibt stehen, das Kreuz sitzt genau
   dort, wo vorher der Burger war. Nichts scheint dahinter durch.

   Bis 767px, also derselbe Punkt, an dem auch sonst auf Mobil
   umgestellt wird. */
@media (max-width:767px){
  /* 44px ist die kleinste Tippflaeche, die sich zuverlaessig treffen
     laesst (WCAG 2.1 AA: 44 mal 44). Der negative Rand rechts zieht
     die Flaeche wieder an die Bahnkante, damit das Zeichen selbst
     buendig mit dem uebrigen Inhalt steht und nicht 10px eingerueckt. */
  .menue__schalter{display:flex;align-items:center;justify-content:center;
    width:44px;height:44px;padding:0;margin-right:-10px}
  .menue__schalter .icon{width:26px;height:26px;stroke-width:2}
  /* Ein Knopf, zwei Zeichen. Welches sichtbar ist, entscheidet
     aria-expanded — es gibt damit nur EINEN Zustand, und der steht im
     Markup, nicht zusaetzlich in einer Klasse. */
  .menue__schalter .icon--zu{display:none}
  .menue__schalter[aria-expanded="true"] .icon--burger{display:none}
  .menue__schalter[aria-expanded="true"] .icon--zu{display:block}

  /* Logo groesser und naeher an der Kante. Die Bahn hat sonst 24px
     Polster; in der Kopfzeile sind es auf dem Handy 16, damit das Logo
     die Breite bekommt, die es fuer die kleine Zeile "Alexandra
     Wuensch" braucht. */
  /* 05.10.2026 (Anita): links nur noch 8px, das Logo darf naeher an die
     Kante. Rechts bleiben 16 fuer den Burger. */
  .kopfzeile .bahn{padding-inline:8px 16px}

  /* position:fixed, nicht absolute: der Kasten haengt am Fenster und
     nicht an der Seite. Sonst wuerde er mit dem Inhalt mitwachsen und
     beim Scrollen wegwandern.
     --kopf-hoehe misst js/site.js an der Kopfzeile und setzt sie am
     <html>. Der Rueckfallwert gilt, solange das Skript nicht gelaufen
     ist. z-index 59 liegt eine Stufe unter der Kopfzeile (60), damit
     Logo und Kreuz oben bedienbar bleiben.
     GEAENDERT 14.09.2026: Das <nav> selbst ist jetzt nur noch die
     Verdunkelung ueber der ganzen Flaeche — die weisse Flaeche endet
     unter dem letzten Menuepunkt, darunter sieht man die abgedunkelte
     Seite. Ein Klick dorthin schliesst (in js/site.js). */
  .navi{position:fixed;left:0;right:0;z-index:59;
    top:var(--kopf-hoehe, 84px);bottom:0;
    background:rgb(47 45 41 / .45);overflow-y:auto;
    display:none}
  [data-menue="offen"] .navi{display:block}
  /* Solange das Menue offen ist, darf die Seite dahinter nicht
     scrollen. Steht am <html>, weil nur dort das Scrollen der ganzen
     Seite haengt. */
  html[data-menue="offen"]{overflow:hidden}

  /* Die weisse Flaeche gehoert der Liste, nicht dem <nav>: so endet sie
     unter dem letzten Eintrag und die abgedunkelte Seite bleibt
     darunter sichtbar. */
  .menue{display:block;gap:0;background:var(--farbe-basis);
    padding-bottom:var(--abstand-nah)}
  /* Linien oben an jedem Eintrag: so bekommt auch der erste eine Kante,
     ohne dass sich zwei Linien zwischen zwei Eintraegen aufaddieren.
     Unten braucht es keine — dort endet die weisse Flaeche ohnehin. */
  .menue>li{border-top:1px solid var(--farbe-rahmen)}
  /* Der erste Eintrag braucht keine eigene Linie: die Kopfzeile bringt
     ihre Trennlinie mit, sobald das Menue offen ist. Zwei Linien mit
     einem leeren Streifen dazwischen sah nach einer vergessenen Zeile
     aus. */
  .menue>li:first-child{border-top:0}
  .menue a{display:block;padding:18px var(--abstand-standard);
    font-size:1.25rem;line-height:1.5}

  /* Die Gruppe ist auf dem Desktop ein Flexkasten mit dem Winkelknopf
     daneben. Auf dem Handy steht das Untermenue offen darunter, der
     Knopf entfaellt — sonst waere ein Tipp mehr noetig, um ueberhaupt
     zu sehen, dass es zwei Betreuungsseiten gibt.
     position:static ist wichtig: sonst bliebe der Kasten darunter
     absolut an dieser Gruppe haengen. */
  .menue__gruppe{display:block;position:static}
  .menue__aufklapp{display:none}
  /* Kein eigener Farbton mehr: die Zugehoerigkeit zeigen die Pfoten und
     die Einrueckung, dafuer braucht es keine zweite Flaeche. */
  .menue__unter{position:static;min-width:0;box-shadow:none;
    border-radius:0;background:none}
  /* Die unsichtbare Hover-Bruecke gibt es auf dem Handy nicht. */
  .menue__unter::before{display:none}
  /* Eingerueckt, damit man sieht, dass die zwei zu "Leistungen"
     gehoeren. Die Pfote sitzt auf der Bahnkante, der Text 30px
     dahinter. */
  .menue__unter a{padding:14px var(--abstand-standard) 14px 54px;
    font-size:1.0625rem;white-space:normal}
  .menue__unter a::before{left:var(--abstand-standard);width:18px;height:18px;
    margin-top:-9px}
  /* Keine Trennlinien zwischen den zwei Untereintraegen: sie stehen
     hier ohne eigene Flaeche, eine Linie wuerde sie von "Leistungen"
     abschneiden statt sie daran zu binden. */
  .menue__unter li + li::before{display:none}
}

/* ---------- Hero ----------
   Text und Bild bilden eine Einheit mit festem Abstand dazwischen.
   Deshalb Flexbox mit fester Luecke statt Spaltenraster: Bei breitem
   Fenster driften die beiden nicht auseinander, sondern der ganze
   Block bleibt zusammen und wandert mittig.
   Das Bild liegt oben (z-index), damit die Muetze leicht ueber die H1
   ragt und die gelbe Flaeche rechts darunter verschwindet. */
.hero{background:var(--farbe-hervorhebung);overflow:hidden;
  padding-bottom:var(--abstand-gruppe)}
/* Text und Bild haben feste Breiten (540 und 650px). Zusammen mit
   Einzug, Abstand und Ueberlappung brauchen sie mehr Platz, als ein
   Fenster unter 1376px hergibt — darunter lief das Bild rechts aus dem
   Bildschirm und wurde von overflow:hidden abgeschnitten.
   KORRIGIERT 15.09.2026: Das war ueber den ganzen Bereich von 1025 bis
   1375px so, also auf jedem quer gehaltenen Tablet UND auf verbreiteten
   Laptops mit 1280 oder 1366 Bildpunkten. Bei 1032px fehlten 280px, der
   rechte Hund war halbiert und die Fotoform rechts weg.
   Die Loesung steht weiter unten als eigener Block: in diesem Bereich
   duerfen beide Spalten schrumpfen (flex-shrink 1 statt 0). Sie geben
   dann anteilig nach, statt dass eine allein den Verlust traegt.
   Unterhalb von 1024px stapeln sich Text und Bild untereinander. */
.hero .bahn{display:flex;align-items:center;justify-content:flex-start;
  gap:var(--abstand-standard);padding-block:var(--abstand-block)}

.hero__text{position:relative;z-index:1;flex:0 0 540px;
  margin-left:var(--hero-einzug);padding-left:0}
.hero__blase{background-image:url("../img/decoration-element-yellow.svg");
  background-repeat:no-repeat;background-size:100% 100%;
  padding:var(--abstand-weit) var(--abstand-gross) var(--abstand-weit);
  margin-block:var(--abstand-weit);
  margin-left:calc(-1 * var(--abstand-gross));
  width:calc(100% + var(--abstand-gross) + 4rem);max-width:none}
/* Der Text in der Flaeche ist so breit wie die laengste H1-Zeile
   ("Hundebetreuung", rund 485px). Dadurch brechen beide Bloecke
   auf gleicher Breite um und der Block wirkt buendig. */
/* GEAENDERT 14.09.2026: keine Sperrung. Der Fliesstext der Seite hat
   0.02em Laufweite, und die vererbt sich bis hierher. Bei 18px sind das
   0.36px je Zeichen — ueber eine Zeile von rund 37 Zeichen macht das
   12px aus, und genau daran scheiterte auf dem Handy das Wort "biete"
   am Ende der ersten Zeile. Der Text lief dadurch ueber sechs statt
   fuenf Zeilen wie im Figma-Entwurf, wo keine Sperrung gesetzt ist. */
.hero__blase p{max-width:30rem;letter-spacing:normal}

/* Button und Hinweis als Block, gemeinsam etwas nach links gerueckt.
   Der Hinweis darf dabei breiter werden als die Textspalte, sonst
   bricht er in zwei Zeilen. */
.hero__fuss{margin-top:var(--abstand-weit);margin-right:3rem;
  display:flex;flex-direction:column;align-items:center}
.hero__hinweis{margin-top:var(--abstand-nah);white-space:nowrap}

.hero__bild{position:relative;z-index:2;flex:0 0 650px;
  margin-left:calc(-1 * var(--hero-ueberlappung));
  margin-block:calc(-1 * var(--abstand-standard));
  pointer-events:none}
.hero__bild img{width:100%;height:auto}

/* ---------- Bildbaender ----------
   Feste 400px statt der frueheren mitwachsenden Hoehe. Das ist der Wert aus
   dem Elementor-Build (min_height 400, Tablet 300, Mobil 200). Vorher waren
   es bei 1440px Fensterbreite nur 374px, das Motiv wirkte dadurch zu flach.
   Feste Hoehe heisst auch: bei breiterem Fenster wird staerker ins Bild
   gezoomt, statt das Band immer hoeher zu machen. */
.band{position:relative}
.band img{width:100%;height:400px;object-fit:cover}
/* Nach einem Bildband braucht der naechste Abschnitt mehr Luft, sonst klebt
   die Ueberschrift am Bild. Elementor hat dort 130px, hier 160px. */
.band + .abschnitt{padding-top:160px}
/* Das Band unter dem Hero ist fest 400px hoch, so wie im Elementor-Build. */
.band--hoch img{height:400px;object-position:top center}
/* Das Siegel sitzt in einer eigenen Bahn, damit es beim Verbreitern des
   Fensters mit dem Inhalt mitwandert statt am Bildschirmrand zu kleben.
   .band img setzt width:100% — deshalb hier mit .band davor, sonst
   gewinnt die allgemeinere Regel. */
.band__bahn{position:absolute;inset:0;display:flex;
  align-items:flex-start;justify-content:flex-end;pointer-events:none;
  padding-top:var(--siegel-oben)}
/* Siegel und Sterne stehen als Block zusammen, der Aussenrand haengt am
   Block und nicht mehr am Bild. */
.band__siegelblock{display:grid;justify-items:center;gap:8px;
  margin-right:var(--siegel-rechts)}
.band img.band__siegel{position:static;
  width:var(--siegel-groesse);height:auto;object-fit:contain;
  margin-right:0}
/* Fuenf Sterne unter dem Siegel. Ohne Schatten — auf Anitas Wunsch am
   14.09.2026 entfernt. Er war als Lesehilfe auf dem hellen Schnee
   gedacht, machte die Sterne aber schmutzig.
   ACHTUNG bei einem neuen Bandfoto: auf einem hellen Motiv koennen die
   Sterne dadurch untergehen. Dann nicht den Schatten zurueckholen,
   sondern den Bildausschnitt so waehlen, dass hinter dem Siegel etwas
   Ruhiges steht. */
.band__sterne{margin:0;color:var(--farbe-sterne);
  font-size:1.35rem;line-height:1;letter-spacing:.1em;text-indent:.1em}
/* Auf schmaleren Bildschirmen ist das Bild staerker beschnitten, der Hund
   rueckt nach rechts. Das Siegel muss mit, sonst liegt es auf der Schnauze. */
@media (max-width:1024px){
  .band__siegelblock{margin-right:var(--abstand-gross)}
}
@media (max-width:767px){
  /* 300px statt 260. Elementor gibt fuer Mobil 200px vor, der
     Figma-Mobilentwurf rund 310 — und fuer Mobil ist Figma die Vorlage.
     Bei 200px wirkte das Band wie ein Streifen. */
  /* 270px statt 300, und der Ausschnitt wandert etwas nach links.
     Die Rechnung dahinter, weil sie nicht offensichtlich ist: das Bild
     ist ein Panorama von 1920 zu 400. object-fit:cover skaliert es so,
     dass die Bandhoehe gefuellt ist — bei 300px Hoehe also auf 0.75,
     und dann sind von den 1920 Bildpunkten nur 390/0.75 = 520 sichtbar.
     Bei 270px ist der Faktor 0.675 und es sind 578 sichtbar.
     50 Prozent schieben den Ausschnitt auf etwa 671 bis 1249. Der Kopf
     des Hundes sitzt darin bei 31 bis 57 Prozent, also links der Mitte,
     und das Siegel rechts davon steht frei auf den Bergen.

     GRENZE DES MATERIALS, festgehalten damit es niemand erneut versucht:
     Der Hund ist im Original rund 640 Bildpunkte breit und schaut nach
     rechts, sein Kopf sitzt bei 850 bis 1000. Auf 390px Bildschirm sind
     hoechstens 650 Bildpunkte zu sehen — der Hund passt also gerade so,
     aber dann liegt sein Kopf immer am rechten Rand, genau dort wo das
     Siegel steht. Jeder Ausschnitt, der mehr Hund zeigt, schiebt den
     Kopf unter das Siegel. Loesen laesst sich das nur mit einem eigenen
     Zuschnitt aus dem Originalfoto, nicht aus diesem 1920x400-Panorama.
     Steht in OFFEN.md. */
  /* Das Siegel sitzt etwas weiter innen als die Bahnkante — im
     Figma-Mobilentwurf sind es rund 31px vom Bildschirmrand, die Bahn
     gibt nur 24 her. Die 12px kommen oben drauf. */
  .band img.band__siegel{width:96px}
  .band__siegelblock{margin-right:12px;gap:4px}
  .band__sterne{font-size:1.05rem}
  .band__bahn{justify-content:flex-end;align-items:flex-start;
    padding-top:var(--abstand-standard)}
}

/* ---------- Vertrauensleiste ---------- */
.vertrauen{background:var(--farbe-signal);padding-block:14px}
/* Die vier Punkte sollen so lange wie moeglich in einer Zeile bleiben.
   Deshalb schrumpft zuerst der Abstand zwischen ihnen, erst wenn auch
   das nicht mehr reicht, wird umbrochen.
   NACHGEMESSEN 14.09.2026, nachdem der zweite Teil jeder Zeile fett
   gesetzt und "Laufende" durch "Regelmaessige" ersetzt wurde und der
   Text in ein <span> gewandert ist: die vier Eintraege sind zusammen
   1083px breit (vorher 1022). Dazu 48px Innenabstand der Bahn — macht
   1131px, die nie fuer die Abstaende zur Verfuegung stehen.
   30px ist der Wunschabstand, 16px das Minimum, darunter bricht es um.
   Der Wunschabstand war vorher 44px; mit den breiteren Texten passten
   die vier Eintraege damit nicht mehr in die 1200er-Bahn und die Leiste
   lief zweizeilig.
   ACHTUNG: aendert sich einer der vier Texte oder die Groesse der Haken,
   muss der Bezugswert nachgemessen werden, sonst bricht es zu frueh oder
   zu spaet.
   NACHGEMESSEN 05.10.2026 (Textrunde): Die Punkte heissen jetzt
   "Zertifizierte Dogwalkerin", "Ausgebildete Hundetrainerin",
   "Regelmaessige Fortbildung", "Mehr als 5 Jahre Erfahrung" und sind
   zusammen 957px breit (vorher 1083). Bezugswert also 957 + 48 = 1005
   statt 1131, Umbruchpunkt 1052 statt 1178.
   Kommt mit dem Schalter Zulassung § 11 der fuenfte Punkt dazu, stimmt
   beides nicht mehr: dann neu messen. */
.vertrauen__liste{display:flex;flex-wrap:wrap;align-items:center;
  justify-content:center;
  gap:var(--abstand-nah) clamp(16px, calc((100vw - 1005px) / 3), 30px)}
/* Haken und Abstand eine Spur kleiner als vorher (25/10). Das macht die
   Leiste kompakter und schafft den Platz, den die Fettung kostet. */
.vertrauen li{display:flex;gap:8px;align-items:center;
  font-size:1rem;line-height:1.6;letter-spacing:.02em}
.vertrauen .icon{width:22px;height:22px}

/* Wenn es doch umbricht, dann sauber zwei und zwei statt drei und eins.
   Die Breitenbegrenzung laesst nur zwei Punkte pro Zeile zu.
   1178px statt der frueheren 1139: mit den breiteren Texten reicht der
   Platz erst ab 1179px fuer eine Zeile. */
@media (max-width:1052px){
  .vertrauen__liste{max-width:640px;margin-inline:auto}
}

/* Siegel und Sterne haengen am Schalter Zulassung § 11 (Klasse
   p11-mit, Regel ganz am Ende dieser Datei). Der fruehere Schalter
   data-siegel ist am 04.10.2026 darin aufgegangen. */

/* ---------- Leistungskarten ----------
   Bindende Werte aus dem Elementor-Build (Seite 25, Abschnitt Leistungen):
   Karte 50% breit ohne Spaltenabstand, 60px Zeilenabstand, 50px Abstand nach
   oben, 28px zwischen allen Elementen einer Karte, Bild 400px, Text 419px.
   Das Bild laeuft nicht im Kreis, sondern in der Doggery-Fotoform
   (fotoshape-doggery.svg). Elementor: _mask_switch yes, _mask_shape custom.
   Die Maske liegt als CSS-mask auf dem img, nicht als SVG-Element: dadurch
   bleibt object-fit erhalten und es gibt keine Shadow-Grenze wie beim Sprite. */
/* ABWEICHUNG von Elementor: Dort ist der Spaltenabstand 0 und der
   Zeilenabstand 60px. Hier bewusst anders, damit die Gruppierung stimmt:
   nebeneinander eng (24px), damit eine Zeile als Einheit liest,
   untereinander weit (96px), damit man sieht, welcher Button zu welcher
   Kachel gehoert. Feste Werte, keine Prozentwerte: die Karten sollen beim
   Aufziehen des Fensters nicht weiter auseinanderwandern. */
.karten{display:grid;grid-template-columns:repeat(2,1fr);
  column-gap:24px;row-gap:128px;margin-top:50px}
.karte{text-align:center;display:flex;flex-direction:column;align-items:center;
  gap:28px}
.karte__bild{position:relative;width:400px;max-width:100%;line-height:0}
.karte img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;
  -webkit-mask:var(--shape-foto) center/contain no-repeat;
          mask:var(--shape-foto) center/contain no-repeat}
.karte h3{margin:0}
/* ABWEICHUNG von Elementor: Dort ist die Textbreite je Karte handverstellt,
   419px bei Tagesbetreuung, 459px bei Urlaubsbetreuung. Beides reicht nicht,
   Urlaubsbetreuung lief in eine vierte Zeile. Ab 490px bleiben alle vier
   Texte dreizeilig, 500px als Sicherheitsabstand. Wenn ein Text geaendert
   wird, muss die Zeilenzahl neu geprueft werden. */
.karte p{margin:0;max-width:500px}
/* Haelt die Buttons nebeneinander auf einer Hoehe, egal wie viele Zeilen
   Ueberschrift und Text darueber brauchen: der Rest der Karte wird nach oben
   geschoben, der Button bleibt unten. Die Karten selbst sind in der Rasterzeile
   ohnehin gleich hoch. */
.karte .btn{margin-top:auto}

/* Hinweis "Bald verfuegbar" auf dem Bild.
   Heisst bewusst karte__badge und nicht hinweis: .hinweis ist die
   Schriftklasse fuer den Auslastungshinweis im Hero
   ("Betreuung ausgebucht"). Beides sind voellig verschiedene Faelle und
   duerfen sich keinen Namen teilen.
   Elementor: Kasten 400px hoch, absolut, 64px von oben, Inhalt mittig — der
   Hinweis sitzt damit bei 264 von 400, also bei 66 Prozent der Bildhoehe.
   Hier in Prozent, damit er auf Tablet und Mobil mitwandert.
   text-indent gleicht die Laufweite hinter dem letzten Buchstaben aus,
   sonst sitzt die Schrift sichtbar links in der Form. */
.karte__badge{position:absolute;left:50%;top:66%;transform:translate(-50%,-50%);
  margin:0;width:255px;height:48px;max-width:80%;
  display:grid;place-items:center;
  background:var(--shape-hinweis) center/contain no-repeat;
  font-size:1rem;font-weight:300;line-height:1.2;letter-spacing:6.5px;
  text-indent:6.5px;text-transform:uppercase;color:#fff;
  text-shadow:0 1px 8px rgba(0,0,0,.81)}

/* Bild einer noch nicht buchbaren Leistung bekommt einen Schleier, damit
   der Hinweis darauf lesbar wird und die Kachel sich vom Angebot absetzt.
   GEAENDERT 14.09.2026: Vorher war das ein CSS-Filter
   (Helligkeit 44%, Kontrast 56%, Saettigung 111%) aus dem Elementor-Build.
   Anita hat in Figma stattdessen eine Flaeche in #696151 mit 60 Prozent
   Deckkraft gesetzt — das ist der Wert, der jetzt gilt.
   Der Schleier ist ein Pseudoelement mit DERSELBEN Maske wie das Bild.
   Ohne die Maske waere es ein Quadrat ueber der Fotoform.
   z-index: der Hinweis "Bald verfuegbar" muss darueber liegen. Ein
   ::after wird nach allen Kindern gezeichnet und laege sonst davor. */
.karte--bald .karte__bild::after{content:"";position:absolute;inset:0;
  z-index:1;pointer-events:none;
  background:var(--farbe-vorschau);opacity:.6;
  -webkit-mask:var(--shape-foto) center/contain no-repeat;
          mask:var(--shape-foto) center/contain no-repeat}
.karte__badge{z-index:2}

/* Karten, die nur zur Beurteilung dastehen. Schalter am <body>. */
[data-vorschau="aus"] .karte--vorschau{display:none}

/* Elementor stellt ab Tablet auf eine Spalte um (Karte 100%, Bild 480px).
   Nicht zwei schmale Karten nebeneinander quetschen. */
/* ---------- Hero zwischen Tablet und grossem Rechner ----------
   Siehe die Begruendung oben am .hero-Block.
   Die obere Grenze ist 1439, nicht 1375. Der Entwurf passt zwar ab
   1376 ohne Beschneidung, aber das Bild stoesst dort exakt an die
   Fensterkante und bekommt erst bei 1440 die rund 32px Luft, mit denen
   es gestaltet wurde. Zwischen 1376 und 1439 ist die geschrumpfte
   Fassung die bessere.
   Der Sprung an der Grenze ist nicht wegzurechnen: im Entwurf ragt das
   Bild rechts aus der Inhaltsbahn heraus, in der geschrumpften Fassung
   endet es an deren Kante. Das sind feste 87px Unterschied, egal wo die
   Grenze liegt. Deshalb steht sie dort, wo die Entwurfsfassung zum
   ersten Mal richtig aussieht.
   min-width:1025 grenzt nach unten ab, dort stapelt der Hero ohnehin.
   min-width:0 muss mit: ein Flex-Kind schrumpft sonst nur bis zur
   Breite seines laengsten Wortes. */
@media (min-width:1025px) and (max-width:1439px){
  /* GEAENDERT 16.09.2026, Anitas Durchgang bei 1060.
     Vorher gaben Text und Bild anteilig nach: bei 1060 blieben 445 und
     535 statt 540 und 650. Die Textspalte wurde dadurch so schmal, dass
     "Nord" in eine vierte H1-Zeile rutschte, und das Bild verlor 115px.
     Jetzt behaelt das Bild seine Groesse und laeuft lieber rechts aus
     dem Fenster — overflow:hidden am .hero schneidet es ab. Die
     Textspalte hat dafuer einen Boden bei 440px. */
  .hero__text{flex:0 1 540px;min-width:440px}
  .hero__bild{flex:0 0 clamp(560px, 55vw, 650px);min-width:0}
  /* KEINE Ueberlappung in diesem Bereich. Auf dem grossen Rechner ragt
     das Bild 24px in die Textspalte (Aussenrand -48 gegen 24px Luecke);
     dort ist die Spalte breit genug, dass kein Text so weit nach rechts
     laeuft. Hier fuellt die H1 die Spalte aus, bei 1179 lag das "d" von
     "Nord" unter dem Hundefell. Anitas Fund vom 16.09.2026: das darf
     nie passieren, lieber rechts abschneiden. */
  .hero .bahn{gap:0}
  .hero__bild{margin-left:0}

  /* Die H1 waechst mit dem Fenster mit, statt fest auf 59.2px zu
     stehen. Massgabe: "in München Nord" muss in eine Zeile passen — die
     Zeile braucht rund das 7.8-fache der Schriftgroesse, die Spalte
     gibt 440px her. Ab rund 1150px ist die volle Groesse wieder drin,
     dort greift der Deckel. */
  .hero h1{font-size:min(var(--h1-groesse), calc(4.8vw - 2px))}

  /* Der Ausgebucht-Hinweis steht mittig unter dem ganzen Hero, auch
     unter dem Bild — so wie auf dem Tablet. Vorher hing er links unter
     dem Knopf und brach dort zweizeilig um.
     .hero__text muss dafuer auf static: es steht auf relative, sonst
     richtet sich der Hinweis daran aus statt am Hero. Das z-index
     faellt damit weg, was passt — das Bild soll ohnehin darueber
     liegen, es ist selbst positioniert. */
  /* 96 unten: der Hinweis sitzt mit bottom:80 genau da, wo er nach dem
     Hochruecken stehen soll, und darunter bleiben trotzdem 80px bis zum
     Bildband. Mit 56 klebte das Band am Text. Beide Werte gehoeren
     zusammen — wer einen aendert, muss den anderen mitziehen. */
  .hero{position:relative;padding-bottom:96px}
  .hero__text{position:static}
  .hero__fuss{margin-right:0;align-items:center}
  .hero__hinweis{white-space:nowrap;position:absolute;
    left:0;right:0;bottom:80px;margin:0;text-align:center}
}

/* Das Siegel wandert mit dem Hund.
   Das Bandfoto ist ein Panorama von 1920 zu 400. Die Bandhoehe ist fest
   400, also wird nie skaliert: der Browser zeigt einfach die mittleren
   <Fensterbreite> Bildpunkte. Je schmaler das Fenster, desto weiter
   rueckt die Schnauze nach rechts — sie sitzt bei rund 30 + halber
   Fensterbreite.
   Damit das Siegel immer denselben Abstand von 100px zur Schnauze haelt,
   muss sein Aussenrand rechts mit halber Fensterbreite wachsen:
   50vw - 324px trifft bei 1248px genau die 300 aus dem Entwurf und
   nimmt darunter gleichmaessig ab.
   Vorher standen hier zwei feste Werte mit einer Kante bei 1099: 160
   darunter, 300 darueber. Das Siegel sprang dort um 140px und lag bei
   1100 fast auf der Schnauze. Anitas Fund vom 16.09.2026. */
@media (min-width:1025px){
  .band__siegelblock{margin-right:clamp(160px, calc(50vw - 324px), 300px)}
}

/* Innenraender, die ueber alle Rechnerbreiten gleich wirken.
   Feste Pixelwerte gehen hier nicht: was bei 1060 stimmt, klebt bei
   1179 wieder am Rand. Deshalb Prozent der Bahn — der Rand waechst
   dann mit dem Fenster mit.
   FAQ 85 Prozent: bei 1060 sind das 860px und je 76 Rand, bei 1179
   961 und je 85, bei 1440 1020 und je 90.
   Kontakt-Vorspann 77 Prozent, damit er von selbst zweizeilig bleibt.
   Der feste Umbruch vor "Ich freue mich auf Dich!" muss dafuer weg,
   sonst kommt er als dritte Zeile obendrauf. Anitas Funde vom
   16.09.2026 bei 1060 und 1179. */
@media (min-width:1025px){
  .faq{max-width:85%}
  #kontakt .kopf .lead{max-width:77%;margin-inline:auto}
  #kontakt .kopf .lead br{display:none}
}

@media (max-width:1024px){
  .karten{grid-template-columns:1fr}
  .karte__bild{width:480px}
}
/* KORREKTUR 15.09.2026: Die Regel darueber stammt aus Elementors
   Tablet-Einstellung (eine Spalte, Bild 480px). Der Figma-Tablet-Frame
   zeigt dort aber zwei mal zwei, und fuer Tablet und Handy ist Figma
   die Vorlage — Elementor gilt nur fuer den Rechner. Untereinander war
   der Abschnitt bei 768px 3611px hoch, am Rechner sind es 1808. Dazu
   war das Bild mit 480px auf dem Tablet groesser als am Rechner (400).
   Anitas Fund. */
@media (min-width:768px) and (max-width:1024px){
  .karten{grid-template-columns:repeat(2,1fr);row-gap:80px}
  /* Das Bild fuellt die Spalte nicht ganz aus. Im Entwurf ist es rund
     350 von 405px Spaltenbreite, also gut sieben Achtel. */
  .karte__bild{width:88%}
  /* Kleiner als der Rechnerwert (33.6 und 18px) und auch eine Spur
     unter dem Entwurf — Anitas Urteil vom 15.09.2026: Ueberschrift und
     Text wirkten in der schmaleren Spalte zu wuchtig. */
  .karte h3{font-size:1.8rem}
  /* Kompaktere Kachel, Anitas Wunsch vom 16.09.2026: Text eine Stufe
     kleiner und alles enger zusammen. Der Abstand von 28px galt in der
     Kachel zwischen allen vier Teilen — Bild, Ueberschrift, Text, Knopf.
     Jetzt 14px, und das Bild behaelt seinen groesseren Abstand zur
     Ueberschrift, damit die Kachel nicht oben zusammenklebt. */
  .karte p{font-size:1rem;line-height:1.6}
  .karte{gap:14px}
  .karte .karte__bild{margin-bottom:8px}
  /* Die Knoepfe muessen zeilenweise auf einer Linie stehen, auch wenn
     ein Text eine Zeile mehr braucht. margin-top:auto schiebt den Knopf
     an den unteren Rand der Kachel; die Kacheln einer Zeile sind im
     Raster ohnehin gleich hoch. Ein fester Wert (vorher 4px) hebt genau
     das auf — das war mein Fehler von vorhin. */
  .karte .btn{margin-top:auto}
}
@media (max-width:767px){
  /* Eine Kachel soll wie aus einem Guss wirken: Bild, Ueberschrift,
     Text und Knopf ruecken eng zusammen (12px), waehrend zur naechsten
     Kachel 72px stehen. Das Verhaeltnis 1 zu 6 macht auf einen Blick
     klar, was zusammengehoert — vorher waren es 18 zu 96, also nur 1 zu
     5, und die Kachel selbst fiel auseinander.
     32px unter dem Vorspann statt 48: das Bild darf dichter an den
     Abschnittskopf. */
  .karten{row-gap:72px;margin-top:32px}
  .karte{gap:12px}
  .karte__bild{width:100%}
  /* Der Knopf darf breiter sein als die uebrigen weiterfuehrenden
     Knoepfe: er steht allein unter der Kachel und bildet deren Abschluss.
     52px ist der Wert der Handlungsaufrufe, nicht die 28px, auf die die
     weiterfuehrenden Knoepfe auf dem Handy gekuerzt sind. */
  .karte .btn{padding-inline:52px}

  /* Mehr Weissraum zwischen der gelben Leiste und dem Abschnittskopf.
     64px waren zu wenig, der Kopf klebte an der Kante. */
  .vertrauen + .abschnitt{padding-top:96px}

  /* "Von Hundebetreuung bis Training" soll nach "Hunde-" trennen, so
     steht es im Figma-Mobilentwurf. Damit der Browser das tut, muss das
     Wort zu breit fuer eine Zeile sein: bei 2.1rem war "Hundebetreuung"
     335px breit und passte damit knapp in die 342px der Bahn, also
     brach es davor um. Bei 2.3rem sind es 367px und die Trennung
     greift. Die Sprache fuer die Trennstellen kommt aus dem
     lang-Attribut der Seite. */
  /* GEAENDERT 14.09.2026: keine Silbentrennung in Abschnitts-
     ueberschriften. Erst als Absicht gebaut ("Hunde-" am Zeilenende),
     dann als Notnagel stehengelassen, jetzt ganz raus — Anita will,
     dass Woerter nicht getrennt werden. Ueberschriften brechen damit
     nur noch zwischen Woertern.
     Die Folge: ein Wort, das breiter ist als die Bahn, laeuft seitlich
     hinaus. Das laengste hier ist "Hundebetreuung" mit 367px bei
     342px Bahn — deshalb steht overflow-wrap:break-word als Fangnetz,
     das bricht ohne Trennstrich und nur, wenn es sonst ueberlaufen
     wuerde. */
  .kopf h2{font-size:2.3rem;hyphens:manual;-webkit-hyphens:manual;
    overflow-wrap:break-word}

  /* text-wrap:balance zieht die Zeilen auf gleiche Laenge und laesst
     dabei seitlich Platz stehen — der Vorspann lief dadurch dreizeilig
     ueber nur 230 von 342px. Ohne balance nutzt er die volle Breite.
     Die Groesse bleibt bei 1.125rem, also so gross wie der Fliesstext.
     Fuer die zwei Zeilen wurde stattdessen der Text gekuerzt — ein
     Vorspann, der kleiner ist als der Text darunter, dreht die
     Rangordnung um.
     11.10.2026: pretty statt initial. Der Vorspann nutzt weiter die
     volle Breite, der Browser vermeidet aber ein einzelnes Wort in der
     letzten Zeile, wo es geht. */
  .kopf .lead{text-wrap:pretty}

  /* Ueberschriften der Kacheln auf 32px, Wert aus dem Figma-Entwurf.
     Der Text darunter auf 138 Prozent Zeilenhoehe, ebenfalls aus Figma —
     bei 160 stand er zu luftig unter der Ueberschrift. */
  .karte h3{font-size:2rem}
  /* 1rem statt der 1.125rem des uebrigen Fliesstextes: die Kacheln
     stehen zu viert untereinander, und bei 18px wurde jede einzelne zu
     wuchtig. */
  .karte p{font-size:1rem;line-height:1.38}
}

/* ---------- Zitatband ----------
   Innenabstand 120px oben und unten, wie im Elementor-Build. Das Band ist
   dadurch rund 50px hoeher als vorher, und der Text sitzt mittig, weil oben
   und unten derselbe Wert steht.
   Der Abstand nach oben (96px) kommt zusaetzlich zum Innenabstand des
   Abschnitts davor. Wo ein Band inhaltlich zum Abschnitt darueber gehoert,
   faellt er ueber zitatband--angehaengt weg. */
.zitatband{background:var(--farbe-hervorhebung);text-align:center;
  padding-block:120px;margin-top:96px}
.zitatband p{max-width:48rem;margin:var(--abstand-standard) auto var(--abstand-gruppe)}
/* Hervorgehobener Text im Cremeband: groesser und fetter als Fliesstext,
   damit er den Blick haelt und zum Button fuehrt. Elementor hat dort 1.3rem
   in Gewicht 400, das war Anita zu leicht. */
.zitatband .text-weit{max-width:none;margin:0 80px;
  font-size:var(--lead-groesse);line-height:var(--lead-hoehe);font-weight:500}
/* Ein Cremeband, das inhaltlich noch zum Abschnitt darueber gehoert, bekommt
   keinen zusaetzlichen Abstand nach oben. */
.zitatband--angehaengt{margin-top:0}
/* Zwei Absaetze statt einem. Die Grundregel .zitatband p gibt jedem Absatz
   48px nach unten — zusammen mit dem Abstand nach oben waere das Band durch
   die zweite Zeile deutlich hoeher geworden. Hier stehen die zwei Absaetze
   mit einer Leerzeile Abstand (24px) beieinander, und der Innenabstand des
   Bandes wird um denselben Betrag gekuerzt. Ergebnis: gleiche Bandhoehe wie
   mit einem Absatz. */
/* Der erste Textabsatz bekommt 24px statt der 48px aus der Grundregel,
   der zweite keinen eigenen Abstand nach oben — benachbarte Aussenraender
   fallen zusammen, es bleiben also 24px Luecke. Der Innenabstand des
   Bandes wird um denselben Betrag gekuerzt, damit das Band trotz der
   zweiten Zeile genauso hoch bleibt wie vorher. */
/* Eine Leerzeile unter der Ueberschrift: die Grundregel .zitatband p
   gibt 24px, das war zu dicht. 40px setzen den Satz sichtbar ab. */
.zitatband--zwei .h2-klein + p{margin-top:40px;
  margin-bottom:var(--abstand-standard)}
.zitatband--zwei p + p{margin-top:0}
.zitatband--zwei{padding-block:calc(120px - var(--abstand-standard))}
/* Dieselbe Anordnung, aber ohne Cremeflaeche. Ohne farbigen Grund braucht es
   auch keinen Innenabstand von 120px mehr - der wuerde den Block nur nach
   unten schieben. Abstand nach oben 76px, Wert aus dem Elementor-Build. */
.zitatband--weiss{background:none;padding-block:0;
  margin-block:var(--abstand-abschnitt)}
/* Das letzte Element im Band darf keinen Aussenabstand nach unten haben,
   sonst sitzt der Inhalt sichtbar zu hoch: die Regel .zitatband p gibt jedem
   Absatz 48px nach unten, auch dem, der nur den Button traegt. */
.zitatband .bahn>*:last-child{margin-bottom:0}
/* Und der Abschnitt davor endet frueher, damit beides zusammengehoert. */
.abschnitt--eng-unten{padding-bottom:var(--abstand-block)}
/* Gar kein Abstand nach unten: gebraucht, wenn der naechste Block seinen
   Abstand selbst mitbringt und sich beides sonst addiert. */
.abschnitt--ohne-unten{padding-bottom:0}
/* Die Zeile darueber gilt fuer jeden Absatz im Band. Der dekorative Satz ist
   jetzt auch ein Absatz und wuerde sonst zusaetzliche Raender bekommen. */
.zitatband .h2-klein{margin:0 auto}

/* ---------- Ueber mich ---------- */
/* Die Textspalte steht mittig zur Bildspalte, nicht oben buendig. Die linke
   Seite ist mit Foto und Zitat deutlich hoeher, oben buendig haette die rechte
   Spalte oben geklebt und unten viel Leere gelassen. */
.ueber{display:grid;grid-template-columns:1fr 1fr;gap:var(--abstand-block);
  align-items:center;margin-top:var(--abstand-block)}
.ueber__medien{position:relative}
/* Portraet in der Doggery-Fotoform, wie die Leistungsbilder.
   Elementor hat hier dieselbe Maske. */
.ueber__medien img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;
  position:relative;z-index:2;
  -webkit-mask:var(--shape-foto) center/contain no-repeat;
          mask:var(--shape-foto) center/contain no-repeat}
/* Die Zitatflaeche ist dieselbe Form wie die Sprechblase im Hero, nur in der
   blassen Variante. Vorher war es ein abgerundetes Rechteck in Signalgelb,
   das gehoerte nicht zur Formensprache.
   background-size 100% 100% zieht die Form auf den Text, genau wie im Hero.
   Der Ueberlappung nach oben liegt bei 44px, Wert aus dem Elementor-Build. */
/* Zitat und Portraet sollen eine Einheit bilden: die Form schiebt sich weit
   unter das Bild, der Text bleibt aber unten stehen.
   Die Form ist nie breiter als das Foto darueber, beide bilden eine Einheit
   und stehen buendig.
   Das begrenzt, wie weit die Form hochgezogen werden kann: sie ist von Natur
   aus flach (727 zu 187) und wird beim Hochziehen in die Hoehe gezerrt.
   70px Ueberlappung ist der Punkt, an dem die Form noch flach wirkt.
   Der Text bleibt dabei stehen, weil der Innenabstand oben um denselben Wert
   mitwaechst.
   z-index 1 gegen 2 am Bild sorgt dafuer, dass die Form hinter dem Foto
   verschwindet und nicht davor liegt. */
.ueber__zitat{position:relative;z-index:1;text-align:center;
  margin:-70px 0 0;padding:74px var(--abstand-gross) 26px;
  background:var(--shape-blass) center/100% 100% no-repeat}
/* Der Name steht in derselben Groesse wie das Zitat, nur fett. Vorher 0.9rem,
   das ging neben dem Zitat unter. */
.ueber__zitat cite{display:block;margin-top:var(--abstand-eng);
  font-style:normal;font-weight:700;font-size:var(--zitat-groesse)}
/* Abstand zwischen den Elementen der Textspalte. 38px kommt aus dem
   Elementor-Build und ersetzt die frueheren Einzelabstaende im HTML. */
.ueber__text{display:flex;flex-direction:column;gap:38px}
.ueber__text>*{margin:0}
/* Der Button steht mittig unter der Spalte und bekommt zusaetzlich Abstand
   nach oben, damit er sich von der Hakenliste loest. 38px Grundabstand plus
   21px, letzteres der Wert aus dem Elementor-Build. */
.ueber__aktion{text-align:center;margin-top:21px}
.hakenliste{display:grid;gap:var(--abstand-nah)}
/* align-items:center statt flex-start: die Punkte sind seit dem
   14.09.2026 kurz genug fuer je eine Zeile, und bei flex-start sass der
   Haken sichtbar zu hoch neben dem Text. Faellt eine Zeile doch einmal
   um, steht der Haken mittig zum Block — das faellt weniger auf als ein
   zu hoch sitzendes Zeichen in jeder Zeile. */
.hakenliste li{display:flex;gap:var(--abstand-nah);align-items:center;
  font-size:var(--fliesstext-groesse);line-height:var(--fliesstext-hoehe)}
/* Das Zeichen darf nicht schrumpfen, wenn der Text daneben lang wird. */
.hakenliste li .icon{flex:0 0 auto}

/* ---------- Hunde ----------
   Werte aus dem Elementor-Build: Block 1000px breit, 20px zwischen den zwei
   Karten, 13px zwischen Bild, Name und Text, Bild in der Doggery-Fotoform
   ueber die volle Spaltenbreite. Vorher waren die Bilder feste 240px im
   Kreis, das war deutlich zu klein. */
.hunde{display:grid;grid-template-columns:1fr 1fr;gap:20px;
  max-width:1000px;margin:24px auto 0;text-align:center}
.hunde>div{display:flex;flex-direction:column;gap:13px}
.hunde img{width:300px;max-width:100%;height:auto;aspect-ratio:1;object-fit:cover;
  margin-inline:auto;
  -webkit-mask:var(--shape-foto) center/contain no-repeat;
          mask:var(--shape-foto) center/contain no-repeat}
.hunde h4{margin:0}
/* Text auf Fliesstextgroesse, vorher 1rem und dadurch zu klein neben dem
   Namen. Die 80px seitlich stehen so im Elementor-Build. */
.hunde p{margin:0;font-size:var(--fliesstext-groesse);
  line-height:var(--fliesstext-hoehe);padding-inline:80px}

/* ---------- Galerie ----------
   Im Elementor-Build ist das ein Bildkarussell ueber die volle Breite:
   alle Bilder gleich hoch, Breite nach Seitenverhaeltnis, 8px Abstand,
   keine Rundung, angeschnitten an beiden Raendern. Vorher hatten wir hier
   quadratische Kacheln mit runden Ecken, das war etwas voellig anderes.
   Hoehen aus dem Elementor-Build: 800px, ab Tablet 600px, mobil 500px. */
.galerie{position:relative;margin-top:var(--abstand-block)}
/* GEAENDERT 16.09.2026: 8px statt 16 zwischen den Fotos, auf allen
   Geraeten. Anitas Wunsch, und es ist zugleich der Elementor-Wert. */
.galerie__spur{display:flex;gap:8px;overflow-x:auto;
  scroll-snap-type:x proximity;
  scrollbar-width:none;-ms-overflow-style:none}
.galerie__spur::-webkit-scrollbar{display:none}
/* Feste Breite statt automatischer: mit width:auto wurden querformatige
   Fotos 800px breit und der Ausschnitt viel zu weit. 380px entspricht den
   Bildbreiten im Figma-Entwurf (dort 360 bis 404) und ergibt einen ruhigen
   hochformatigen Ausschnitt. */
/* TEST 12.09.2026: feste Hoehe, mitwachsende Breite.
   440 mal 660 ist das Quadrat minus ein Drittel Breite, Verhaeltnis 2:3.
   Bei schmalerem Fenster schrumpft nur die Breite, der Ausschnitt wird
   staerker hochformatig. Das Bild verzerrt dabei nie, object-fit:cover
   schneidet seitlich ab. */
/* Ziehen mit der Maus: der Cursor zeigt es an, und das browsereigene
   Bild-Wegziehen muss aus sein, sonst nimmt der Browser das Foto mit
   statt zu scrollen. */
.galerie__spur{cursor:grab}
.galerie__spur[data-zieht="ja"]{cursor:grabbing;scroll-snap-type:none;
  user-select:none}
.galerie__spur img{flex:0 0 auto;scroll-snap-align:start;
  -webkit-user-drag:none;user-select:none;
  width:clamp(470px,42vw,560px);height:660px;object-fit:cover;border-radius:0}

/* Punktleiste unter der Galerie. Zeigt, dass es weitergeht, und dient
   gleichzeitig als Sprungmarke. Die Pfeile bleiben zusaetzlich, weil man am
   Rechner ohne Wischgeste arbeitet. */
/* Dezent, wie man Punkte von Bildergalerien kennt: gleiche Farbe fuer alle,
   nur die Deckkraft unterscheidet aktiv von inaktiv. Kein Orange, keine
   Vergroesserung — das zog vorher zu viel Aufmerksamkeit auf sich. */
.galerie__punkte{display:flex;justify-content:center;gap:14px;
  margin-top:var(--abstand-weit)}
.galerie__punkt{width:7px;height:7px;padding:0;border:0;border-radius:50%;
  position:relative;
  background:var(--farbe-schrift);opacity:.22;cursor:pointer;
  transition:opacity .18s ease}
/* Der sichtbare Punkt ist absichtlich winzig, die Trefferflaeche darf es
   nicht sein. Das unsichtbare Feld drumherum macht daraus rund 23px, sonst
   ist der Punkt mit dem Finger kaum zu treffen. */
.galerie__punkt::after{content:"";position:absolute;inset:-8px}
/* ERGAENZT 15.09.2026, Anitas Vorgabe zu den Tippflaechen.
   Rechnung: Punkt 7px plus 14px Luecke ergibt ein Raster von 21px. Eine
   Trefferflaeche von 23px ueberlappt damit die des Nachbarn, und 24px
   (das Mindestmass) passen ueberhaupt nicht hinein. Auf Geraeten ohne
   Maus stehen die Punkte deshalb 24px auseinander — Raster 31px — und
   die Flaeche wird nach unten hin groesser, wo nichts anderes liegt.
   (hover: none) statt einer Breite: es geht um den Finger, nicht um das
   Fenster. Auf dem Rechner bleibt die Leiste so, wie sie abgenommen
   wurde. */
@media (hover: none){
  /* ZURUECKGENOMMEN 16.09.2026: der Abstand war auf 24px, damit jeder
     Punkt eine eigene Trefferflaeche von 24px bekommt. Optisch fiel die
     Leiste dadurch auseinander, das hat Anita gestoert.
     Jetzt bleibt der Abstand wie auf dem Rechner (14px) und die
     Trefferflaeche waechst nur nach unten und oben. Sie ist damit
     21px breit, also schmaler als das Mindestmass — vertretbar, weil
     dieselbe Funktion daneben auf zwei anderen Wegen erreichbar ist:
     Wischen und die Pfeiltasten. Genau das ist die
     Aequivalenz-Ausnahme in WCAG 2.5.8. Und Anitas Einwand stimmt:
     auf dem Handy erwartet niemand, dass man diese Punkte antippt. */
  .galerie__punkt::after{inset:-14px -7px -26px}
}
.galerie__punkt:hover{opacity:.5}
.galerie__punkt[aria-current="true"]{opacity:1}
/* Wie die dunklen Handlungsaufrufe: anthrazit, beim Ueberfahren orange.
   Der Pfeil bleibt in beiden Zustaenden weiss. Das muss hier ausdruecklich
   stehen, weil .icon seine Farbe selbst setzt und deshalb die Farbe des
   Knopfes nicht erbt — genau daran ist der Pfeil vorher beim Ueberfahren
   unsichtbar geworden. */
.galerie__knopf{position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:3rem;height:3rem;border:0;border-radius:50%;cursor:pointer;
  background:var(--button-dunkel-flaeche);
  box-shadow:0 2px 12px rgba(47,45,41,.18);display:grid;place-items:center;
  transition:background-color .18s ease}
.galerie__knopf .icon{color:var(--button-dunkel-schrift)}
.galerie__knopf:hover{background:var(--button-dunkel-hover)}
.galerie__knopf[disabled]{opacity:0;pointer-events:none}
.galerie__knopf--vor{right:var(--abstand-nah)}
.galerie__knopf--zurueck{left:var(--abstand-nah);transform:translateY(-50%) rotate(180deg)}
/* Auf Geraeten ohne Maus sind die Pfeile weg. Anitas Wunsch vom
   16.09.2026 — sie liegen dort ueber dem Bild und stoeren.
   Zur Barrierefreiheit: die Galerie bleibt auf drei Wegen bedienbar,
   ohne die Knoepfe. Wischen; die Punktleiste darunter, die jeden
   Bildausschnitt direkt ansteuert; und die Tastatur, weil die Spur
   tabindex="0" traegt und als role="region" mit den Pfeiltasten
   gescrollt wird. WCAG 2.1.1 ist damit erfuellt.
   (hover: none) statt einer Breite: es geht um den Finger, nicht um
   das Fenster — auf einem Tablet ohne Maus sind die Pfeile ebenso
   ueberfluessig wie auf dem Handy. */
@media (hover: none){
  .galerie__knopf{display:none}
}

/* ---------- Instagram ---------- */
/* Eigene Innenabstaende: 71 oben, 126 unten, Werte aus dem Elementor-Build.
   Die 120/120 der anderen Cremebaender waren hier oben zu viel. */
.zitatband--instagram{padding-top:71px;padding-bottom:126px}
/* Das Logo steht mittig ueber dem Text. Breite aus dem Figma-Entwurf,
   dort rund 350px.
   Optischer Ausgleich: exakt mittig gesetzt kippt das Logo nach rechts,
   weil der Schriftzug rechts weiter auslaeuft als die Pfote links wiegt.
   Deshalb 12px nach links geschoben. translate statt Rand, damit die
   Zentrierung selbst unangetastet bleibt. */
.instagram__logo{width:360px;max-width:80%;height:auto;
  margin:0 auto var(--abstand-standard);transform:translateX(-12px)}
/* Fliesstextgroesse, nicht Vorspanngroesse: im Elementor-Build steht hier
   1.125rem in Staerke 400, genau wie der uebrige Text der Seite.
   Und breiter als die anderen Baender, nur 80px Rand zu den Seiten. */
.zitatband .instagram__text{max-width:none;margin:0 80px var(--abstand-nah);
  font-size:var(--fliesstext-groesse);line-height:var(--fliesstext-hoehe)}
.instagram__text--betont{font-weight:700}
/* Platz fuer ein Zeichen im Button. .btn ist schon ein Flex-Element mit 10px
   Abstand, das Zeichen muss also nur die richtige Groesse haben. */
.btn__zeichen{width:22px;height:22px;flex:0 0 auto}

/* ---------- Bewertungen ---------- */
/* Feste zwei Spalten, nicht auto-fit: vier Karten sollen immer als
   zwei mal zwei stehen. Elementor hat hier dasselbe Raster angelegt
   (grid_columns 2, grid_rows 2), nur drei Karten gefuellt.
   Der Zeilenabstand ist klein, weil jede Karte zusaetzlich 80px
   Aussenabstand nach oben hat - darin haengt das Foto. */
/* Feste Kartenbreite statt 1fr: nur so laesst sich der sichtbare Abstand
   zwischen den Karten wirklich steuern. Bei 1fr-Spalten sitzt die Karte
   mittig in einer breiteren Zelle, der Leerraum daneben kommt zum
   Spaltenabstand dazu und die Karten wandern auseinander.
   Der Zeilenabstand ist 56px zusaetzlich zu den 80px Aussenabstand jeder
   Karte, in denen das Foto haengt. */
.bewertungen{display:grid;grid-template-columns:repeat(2,504px);
  justify-content:center;column-gap:60px;row-gap:56px;
  margin-top:var(--abstand-abschnitt)}
/* Karte etwas schmaler als die Rasterzelle, wie im Elementor-Build (90%).
   Zusaetzlich gedeckelt: Elementors Rastercontainer laeuft nicht in unseren
   1200px, sondern in der Standard-Inhaltsbreite 1140px. Eine Spalte ist dort
   (1140-20)/2 = 560, die Karte also 504px breit. Ohne den Deckel werden die
   Karten in unserer breiteren Bahn 531px und wirken zu wuchtig. */
.bewertung{width:100%;max-width:504px;justify-self:center;
  background:var(--farbe-hervorhebung);border-radius:var(--rundung-karte);
  padding:0 64px 44px;text-align:center;
  margin-top:80px;display:grid;gap:5px;justify-items:center;align-content:start}
/* Foto in der Doggery-Fotoform, haengt ueber den oberen Kartenrand.
   Die Form kommt als data-URI aus dem Token, eine externe SVG-Datei wuerde
   unter file:// blockiert und das Bild verschwaende komplett. */
.bewertung__foto{width:150px;height:143px;margin-top:-56px;
  margin-bottom:6px;object-fit:cover;
  -webkit-mask:var(--shape-foto) center/contain no-repeat;
          mask:var(--shape-foto) center/contain no-repeat}
.bewertung__titel{font-family:var(--schriftart-serif);font-size:var(--h4-klein-groesse);
  line-height:var(--h4-klein-hoehe);font-weight:var(--h4-klein-staerke)}
.sterne{color:var(--farbe-sterne);letter-spacing:.09em;
  font-size:var(--sterne-groesse);line-height:1.4}
/* Linksbuendig, nicht im Blocksatz. Blocksatz reisst bei schmalen Spalten
   Luecken zwischen die Woerter. Elementor setzt hier ebenfalls keinen
   Blocksatz, das Textfeld laeuft dort links. */
.bewertung__zitat{margin-top:12px;
  font-family:var(--schriftart-serif);font-size:var(--zitat-karte-groesse);
  line-height:1.7;text-align:left;hyphens:auto;-webkit-hyphens:auto}
/* Name linksbuendig unter dem Zitat, nicht mittig: er gehoert zum Zitat,
   nicht zur mittig gesetzten Kopfzeile der Karte. justify-self stretch,
   sonst schrumpft das Element im Raster auf seine Textbreite und
   text-align haette keine Wirkung. */
.bewertung__name{justify-self:stretch;text-align:left;
  font-family:var(--schriftart-serif);font-size:var(--zitat-karte-groesse);
  font-weight:700;line-height:1.7;margin-top:8px}

/* Pflichtangabe zur Echtheit der Bewertungen. Klein und leise gesetzt:
   sie gehoert dazu, soll den Stimmen darueber aber nicht die Aufmerksamkeit
   nehmen. Auf Lesebreite begrenzt und mittig. */
/* Ab hier passen die zwei festen 504px-Spalten samt 60px Abstand nicht
   mehr in die Bahn: 504+60+504 = 1068, dazu zweimal 24px Polster sind
   1116. Darunter eine Spalte — sonst schiebt das Raster die ganze Seite
   seitlich auf und man kann quer scrollen. Gefunden 14.09.2026 in der
   Mobilrunde: die Startseite war auf dem Handy 730px breit statt 390. */
/* GEAENDERT 16.09.2026: Grenze von 1115 auf 1024. Im Bereich darueber
   stehen die zwei Spalten jetzt nebeneinander und teilen sich den Platz,
   siehe den Block "SCHMALER RECHNER" weiter unten. */
@media (max-width:1024px){
  .bewertungen{grid-template-columns:minmax(0,504px)}
}

/* Die Punkte gehoeren zum Wischband auf dem Handy. Auf dem Rechner
   stehen die Karten als Raster, dort gibt es nichts zu blaettern. */
.bewertungen__punkte{display:none}

/* Umbruch, der nur auf dem Tablet greift. Als <br> in einem <span>, weil
   display:none an einem nackten <br> nicht in jedem Browser den Umbruch
   unterdrueckt. */
.br-tablet{display:none}

/* GEAENDERT 05.10.2026 (Anita): Der Hinweis war zu praesent und stand
   zwischen Karten und "Ueberzeuge Dich selbst" wie ein eigener Textblock.
   Jetzt ein einziger Satz, klein, dicht an den Karten (24 statt 80px),
   dafuer 40px Luft nach unten, damit der naechste Abschnitt abgesetzt ist.
   Die Farbe bleibt: heller ginge nur unter dem Mindestkontrast.
   Ganz weglassen geht nicht, die Auskunft verlangt § 5b Abs. 3 UWG. */
.bewertungen__echtheit{max-width:52rem;margin:24px auto 40px;
  text-align:center;font-size:0.8125rem;
  line-height:1.5;color:var(--farbe-schrift-leise)}

/* ---------- FAQ ---------- */
/* Volle Inhaltsbreite, nicht Textbreite. Im Elementor-Build sitzt das
   Akkordeon als eigene Zeile im 1200er-Container und laeuft ueber die ganze
   Breite. Auf 900px begrenzt wirkte es zu schmal.
   12px zwischen den Eintraegen, Wert aus dem Elementor-Build
   (accordion_item_title_space_between). */
.faq{margin:var(--abstand-block) auto 0;display:grid;gap:12px}
.faq__frage{width:100%;text-align:left;border:0;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--farbe-hervorhebung);font-family:var(--schriftart-sans);
  font-size:var(--faq-frage-groesse);font-weight:var(--faq-frage-staerke);
  line-height:1.6;letter-spacing:.02em;color:var(--farbe-schrift);
  border-radius:var(--rundung-feld);padding:20px 26px;
  transition:background-color .2s ease}
.faq__frage:hover{background:var(--farbe-sanft)}
/* GEAENDERT 16.09.2026, gilt auf allen Geraeten: die Frage steht normal
   und wird erst fett, wenn sie geoeffnet ist. Vorher war jede Frage
   fett — dadurch war kaum ein Unterschied zum Vorspann darueber und zum
   fetten Slogan darunter, und der geoeffnete Eintrag hob sich nur durch
   die Farbe ab. Anitas Vorgabe: fett heisst aktiv. */
.faq__frage{font-weight:400}
.faq__frage[aria-expanded="true"]{background:var(--farbe-signal);
  font-weight:700}
/* Groesser und mit kraeftigerem Strich als die uebrigen Icons, damit Plus und
   Minus als Bedienelement gelesen werden und nicht als Zierde. Elementor hat
   dort 20px; das war zu zurueckhaltend. */
.faq__frage .icon{width:26px;height:26px;stroke-width:2.6}
/* FEHLER 05.10.2026 (Anita, am Handy): Plus und Minus waren nicht ueberall
   gleich gross. Das Zeichen sitzt in einem span (display:flex) neben dem
   Fragetext; bei langen Fragen drueckte der Text das span zusammen, und
   Safari rechnet einem svg ohne eigenes viewBox eine Mindestbreite von 0
   zu. Beide Teile bekommen jetzt feste Flex-Werte: Text darf schrumpfen,
   Zeichen nie. */
.faq__frage>span:first-child{flex:1 1 auto;min-width:0}
.faq__frage>span:last-child{flex:0 0 auto}
.faq__frage .icon{flex:0 0 26px;min-width:26px}
.faq__frage .icon--minus{display:none}
.faq__frage[aria-expanded="true"] .icon--plus{display:none}
.faq__frage[aria-expanded="true"] .icon--minus{display:block}
/* Die Antwort haengt direkt an ihrer Frage, der Rasterabstand von 12px
   trennt nur die Eintraege voneinander. Deshalb hier wieder herausgerechnet. */
/* GEAENDERT 05.10.2026 (Anita): Der Antworttext laeuft jetzt bis an die
   Spalte von Plus und Minus heran, aber nicht darunter. Rechts deshalb
   64px: 26px Rand der Frage + 26px Zeichen + 12px Abstand.
   Vorher war der Absatz auf 68 Zeichen begrenzt (Lesebreite, 16.09.2026)
   und liess rechts im Kasten viel Leerraum, das wirkte unfertig.
   Preis dafuer: am breiten Rechner sind die Zeilen lang. */
.faq__antwort{background:var(--farbe-sanft);padding:13px 64px 28px 28px;margin-top:-12px}
/* Die Antwort steht eine Stufe kleiner als die Frage (1rem gegen 1.125rem),
   damit die Frage die staerkere Zeile bleibt. Werte aus dem Elementor-Build. */
/* Lesebreite, 16.09.2026: der Antworttext lief ueber die volle
   Kastenbreite, 96 Zeichen je Zeile bei 1024 und 1440.
   ch statt rem, weil die Schrift je nach Geraet 15 oder 18px gross ist:
   ein fester Pixelwert waere auf dem einen zu eng und auf dem anderen
   zu weit. 68ch sind ueberall rund 75 Zeichen.
   Linksbuendig im Kasten, der Kasten selbst bleibt breit. */
.faq__antwort p{font-size:var(--faq-antwort-groesse);
  line-height:var(--faq-antwort-hoehe);letter-spacing:.02em}
/* Fetter Frageslogan, der zum Button fuehrt. Elementor: Inter 1.3rem,
   Gewicht 700, Zeilenhoehe 1.6, mittig, 14px ueber dem Button. */
.faq__slogan{margin:var(--abstand-block) auto 0;text-align:center;
  font-size:var(--lead-groesse);line-height:1.6;font-weight:700}

/* ---------- Kontakt ---------- */
/* Zwei Spalten: links das Formular, rechts Foto, Name und der Weg zu den
   vollstaendigen Kontaktangaben. Unten buendig, wie im Elementor-Build
   (flex_align_items: flex-end). */
/* Schmaler als die volle Bahn und mittig: 560px Formular, 340px Karte,
   56px dazwischen. Ueber die ganze Inhaltsbreite gezogen wirkte beides
   auseinandergerissen. Unten buendig, damit die beiden Buttons am Ende
   der Spalten auf einer Linie sitzen. */
/* Formular und Karte stehen als eine Gruppe mittig auf der Seite, nicht
   ueber die volle Bahn verteilt. Die Ausrichtung des Formulars auf die
   FAQ-Linie wurde getestet und verworfen: dann klaffte rechts eine Luecke.
   Unten buendig, damit die beiden Buttons auf einer Linie stehen; die Karte
   ist etwas hoeher, dadurch ragt das Foto oben leicht ueber das erste
   Formularfeld hinaus. */
.kontakt{display:grid;grid-template-columns:620px 340px;
  justify-content:center;gap:80px;align-items:end;margin-top:40px}
/* Ab hier passen die beiden Spalten nicht mehr nebeneinander:
   620+80+340 = 1040, dazu zweimal 24px Polster sind 1088. Darunter
   untereinander — Formular zuerst, die Karte darunter, so wie im
   Figma-Mobilentwurf. align-items:end faellt weg, das galt nur fuer die
   gemeinsame Grundlinie der zwei Buttons.
   Gefunden 14.09.2026 in der Mobilrunde: die Karte stand weit rechts
   ausserhalb des Bildschirms und schob die ganze Seite auf. */
@media (max-width:959px){
  .kontakt{grid-template-columns:minmax(0,620px);justify-items:center;
    align-items:stretch;gap:var(--abstand-gruppe)}
  /* Der Ueberhang des Fotos ueber das erste Formularfeld ergibt nur
     nebeneinander einen Sinn. Untereinander wuerde die Karte dadurch
     in das Formular darueber hineinragen. */
  .kontakt__karte{padding-bottom:0}
  .kontakt__foto{width:300px}
}

/* Formularfelder: cremefarbene Flaeche mit duennem Rahmen, keine Rundung.
   Alle Werte aus dem Elementor-Build. 15px zwischen den Feldern. */
/* Flex statt Raster, damit das Nachrichtenfeld den Rest der Spaltenhoehe
   auffuellt. Die Spalte ist so immer genauso hoch wie die Karte rechts,
   auch wenn sich dort Texte aendern - kein fester Zahlenwert noetig. */
.kontakt__form{display:flex;flex-direction:column;gap:15px}
.feld--dehnbar{display:flex}
.feld{margin:0}
.kontakt__form input,
.kontakt__form textarea{width:100%;display:block;
  font-family:var(--schriftart-sans);font-size:1rem;line-height:1.6;
  letter-spacing:.02em;color:var(--farbe-schrift);
  background:var(--farbe-hervorhebung);
  border:1px solid var(--farbe-feldrahmen);border-radius:0;
  padding:12px 16px}
/* Hoehe so gewaehlt, dass die Karte rechts nur wenig hoeher ist als das
   Formular - dadurch ragt das Foto leicht ueber das Vornamen-Feld hinaus.
   Aendern sich Texte in der Karte, hier nachmessen. */
.kontakt__form textarea{resize:vertical;min-height:195px}
.kontakt__form ::placeholder{color:var(--farbe-schrift-leise);opacity:1}
/* Beim Schreiben kein dicker Rahmen um das Feld. Sichtbar bleiben muss es
   trotzdem, sonst weiss man mit der Tastatur nicht, wo man ist: statt der
   Umrandung wird der Rahmen selbst dunkel und eine Spur staerker. */
.kontakt__form input:focus,
.kontakt__form textarea:focus{outline:none;border-color:var(--farbe-schrift)}
/* Der Absendeknopf ist schmaler gepolstert als die Handlungsaufrufe
   (14/50 statt 18/52), Wert aus dem Elementor-Build. */
.kontakt__absenden{margin-top:var(--abstand-standard)}
.kontakt__senden{padding:14px 50px;line-height:1.6}
/* Der Absatz, der den Absendeknopf traegt, darf unten nichts anhaengen,
   sonst steht der Knopf hoeher als der gelbe Button der rechten Spalte. */
.kontakt__form>p:last-child{margin-bottom:0}
/* Pflichtfeldhinweis unter dem Absendeknopf, leise gesetzt. */
.kontakt__pflicht{margin-top:0}

/* Fehlerhaftes Feld (05.10.2026, Fable). Gesetzt von js/site.js, wenn
   beim Absenden ein Pflichtfeld leer ist oder die E-Mail keine ist.
   Rahmen in der Fehlerfarbe der Meldung (#c1562a, siehe .meldung--fehler)
   und ein kurzer Hinweis direkt unter dem Feld. Der Hinweis ist ein
   <span> im <p class="feld">, deshalb display:block. Im dehnbaren
   Nachrichtenfeld laeuft die Spalte jetzt senkrecht, damit der Hinweis
   unter das Feld faellt und nicht daneben; das Feld fuellt weiter die
   Resthoehe. Optik ist ein Vorschlag, Feinschliff mit Opus. */
.kontakt__form [aria-invalid="true"]{border-color:#c1562a;
  box-shadow:inset 0 0 0 1px #c1562a}
.feld__hinweis{display:block;margin-top:6px;
  font-size:0.875rem;line-height:1.45;color:#a8481f;text-align:left}
.feld__hinweis[hidden]{display:none}
.feld--dehnbar{flex-direction:column}
.feld--dehnbar textarea{flex:1}

/* Rechte Spalte, alles mittig untereinander. */
/* Die Karte behaelt ihre natuerliche Hoehe und sitzt am unteren Rand;
   gestreckt wird nur die Formularspalte. */
/* Unten so viel Luft wie der Pflichtfeldhinweis in der linken Spalte hoch
   ist (23px) plus der Reihenabstand des Formulars (15px). Nur so stehen
   "Abschicken" und
   "Zu allen Kontaktinformationen" wirklich auf einer Linie, obwohl links
   noch eine Zeile unter dem Knopf folgt. */
.kontakt__karte{display:grid;justify-items:center;gap:11px;text-align:center;
  padding-bottom:38px}
/* Die Doggery-Form laesst oben und unten Luft stehen, deshalb wirkt der
   Abstand zum Namen groesser als er ist. Hier wieder herausgenommen. */
.kontakt__foto{margin-bottom:-5px}
/* Dasselbe Portraet wie bei "Ueber mich", nur kleiner, in der Doggery-Form. */
/* Quadratisch wie bei "Ueber mich", nur kleiner - Foto und Form zusammen
   herunterskaliert. Hochformat wurde getestet und verworfen: dann schneidet
   cover seitlich ab und die Fotoform nimmt dem Collie die Schnauze. */
.kontakt__foto{width:340px;max-width:100%;height:auto;aspect-ratio:1;
  object-fit:cover;
  -webkit-mask:var(--shape-foto) center/contain no-repeat;
          mask:var(--shape-foto) center/contain no-repeat}
.kontakt__name{font-family:var(--schriftart-serif);font-size:1.8rem;
  font-weight:600;line-height:1.38}
.kontakt__rolle{font-family:var(--schriftart-serif);font-size:1rem;
  font-weight:400;line-height:1.6;letter-spacing:.02em}
/* Schmaler gepolstert als der uebliche Sekundaerbutton (50 statt 70), sonst
   bricht die lange Beschriftung in der 380px-Spalte um. Wert aus Elementor. */
.kontakt__karte .btn{margin-top:var(--abstand-nah);padding-inline:32px}
/* Kopf des Kontaktabschnitts etwas entspannter: 27px zwischen Ueberschrift
   und Vorspann (Elementor-Wert) und die groessere Zeilenhoehe des
   Fliesstextes statt der engeren Vorspannhoehe. */
/* Ohne text-wrap:balance laeuft die erste Zeile ueber die volle Breite,
   statt dass beide Zeilen auf gleiche Laenge gestaucht werden. */
#kontakt .kopf .lead{margin-top:27px;font-size:1.4rem;line-height:1.7;
  text-wrap:initial}

/* Beschriftung nur fuer Screenreader: sichtbar waere sie doppelt zum
   Platzhalter, weglassen duerfen wir sie aber nicht. */
.nur-fuer-screenreader{position:absolute;width:1px;height:1px;padding:0;
  margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* ---------- Fusszeile ---------- */
/* Oberer Teil in Creme, wie im Elementor-Footer (Sekundaerfarbe).
   45px Abstand nach oben, 10px nach unten, 11px zwischen den Elementen. */
.fusszeile__oben{background:var(--farbe-hervorhebung);text-align:center}
.fusszeile__oben .bahn{display:grid;justify-items:center;gap:11px;
  padding-block:45px 40px}
/* Optischer Ausgleich wie beim farbigen Logo: exakt mittig gesetzt kippt es
   nach rechts, weil der Schriftzug rechts weiter auslaeuft. */
.fusszeile__logo{width:270px;max-width:80%;height:auto;
  transform:translateX(-9px)}
/* Inter 0.9rem in Gewicht 300, Werte aus dem Elementor-Footer. */
.fusszeile__satz{font-size:.9rem;font-weight:300;line-height:1.6}
/* Runder dunkler Knopf, nur mit dem Instagram-Zeichen. Beim Ueberfahren
   wird die Flaeche orange, das Zeichen bleibt weiss. */
/* Quadrat mit runden Ecken, nicht kreisrund. Zusaetzlicher Abstand nach
   oben, damit er sich vom Satz darueber loest. */
.fusszeile__instagram{display:inline-flex;align-items:center;
  justify-content:center;width:48px;height:48px;
  border-radius:var(--rundung-karte);margin-top:16px;
  background:var(--button-dunkel-flaeche);
  transition:background-color .18s ease}
.fusszeile__instagram:hover,
.fusszeile__instagram:focus-visible{background:var(--farbe-akzent)}
.fusszeile__instagram img{width:25px;height:25px}

/* Gelber Balken ganz unten: Jahr links, Rechtstexte daneben.
   45px hoch, 38px zwischen den beiden Gruppen, Inhalt in der 1200er-Bahn. */
.fusszeile__balken{background:var(--farbe-signal)}
.fusszeile__balken .bahn{display:flex;flex-wrap:wrap;align-items:center;
  justify-content:center;gap:40px;min-height:45px;padding-block:4px}
/* Eine Spur kleiner als der uebrige Kleintext: der Balken soll leise sein. */
.fusszeile__balken p{font-size:.84375rem;font-weight:300;
  line-height:1.6;letter-spacing:.02em}
/* Keine Trennpunkte zwischen den Links, dafuer 40px Abstand. */
.fusszeile__balken nav{display:flex;flex-wrap:wrap;justify-content:center;
  gap:40px}
/* Innenabstand nach oben und unten, damit die Flaeche zum Antippen
   mindestens 24px hoch ist (WCAG 2.5.8). Sichtbar aendert sich nichts,
   der Finger trifft aber sicher. */
/* GEAENDERT 15.09.2026: 11px statt 9px Innenabstand. Die Tippflaeche
   war 40px hoch, das ist ueber dem Mindestmass, aber unter den 44px,
   die fuer den Finger empfohlen sind. Der gelbe Balken wird dadurch
   4px hoeher. */
.fusszeile__balken a{display:inline-block;padding-block:11px;
  color:var(--farbe-schrift);font-size:.84375rem;
  text-decoration:underline;text-underline-offset:3px}
.fusszeile__balken a:hover{color:var(--farbe-akzent)}

/* =========================================================
   TABLET
   ========================================================= */
@media (max-width:1024px){
  .hero .bahn{flex-direction:column;gap:var(--abstand-weit)}
  .hero__text{flex:0 1 auto;width:100%;margin-left:0}
  .hero__bild{order:-1;flex:0 0 auto;max-width:24rem;margin:0 auto;pointer-events:auto}
  .hero__bild img{width:100%}
  .hero__fuss{margin-right:0}
  .hero__hinweis{white-space:normal;text-wrap:balance}
  .hero__text{padding-left:0}
  .hero__blase{width:100%;margin-left:0}
  .hero__blase p{padding-right:0}

  .ueber{grid-template-columns:1fr;gap:var(--abstand-gruppe)}
  .ueber__zitat{margin-inline:var(--abstand-standard)}
  .menue{gap:var(--abstand-standard)}

  .galerie__spur img{width:clamp(240px,38vw,350px);height:520px}
  .hunde p{padding-inline:20px}
  .hunde-kopf{margin-top:var(--abstand-gross)}
  .zitatband .text-weit{margin-inline:var(--abstand-standard)}

  /* Bildbaender und Zitatband nach den Elementor-Werten fuer Tablet. */
  .band img{height:300px}
  .zitatband{padding-block:100px;margin-top:70px}
  .band + .abschnitt{padding-top:110px}
}

/* ---------- PROBEFASSUNG 15.09.2026: Hero auf Tablet nebeneinander ----------
   Der Figma-Tablet-Entwurf (834px) laesst Text und Foto nebeneinander
   stehen, nur kleiner. Der Block darueber stapelt sie. Diese Fassung
   baut den Entwurf nach.

   Zum Vergleichen: am <body> das Attribut data-hero-tablet="gestapelt"
   setzen, dann greift wieder die gestapelte Fassung von oben.

   Gemessen im Entwurf, alles bezogen auf den 834px-Rahmen:
     H1 links 70   Blase 17 bis 490   Knopf 68, 284 breit
     Foto 385 bis 805, also 420 breit   Hinweis ab 22, einzeilig
     Hero 555 hoch
   Die Bahn hat bei 834px innen 786px (24px Polster je Seite). Alle
   Breiten stehen deshalb in Prozent der Bahn, damit sie von 768 bis
   1024px mitwachsen statt an einer Stelle zu brechen:
     Einzug  46/786 = 5.85%    Spalten 420/786 = 53.4%
     Ueberlappung 105/786 = 13.36%
   Summe 5.85 + 53.4 + 53.4 - 13.36 = 99.29%, also bleibt rechts Luft. */
@media (min-width:768px) and (max-width:1024px){
  /* position:relative, damit die Ausgebucht-Zeile weiter unten am Hero
     haengen kann und nicht an der Textspalte. */
  body:not([data-hero-tablet="gestapelt"]) .hero{
    position:relative;
    /* 72px statt 40: das Bildband klebte zu dicht unter dem Hero.
       Der Hinweis haengt am unteren Rand des Hero — sein bottom-Wert
       muss deshalb im gleichen Mass mitwachsen, sonst rutscht er mit
       nach unten und steht wieder zu weit vom Inhalt weg. 72 minus 52
       ist derselbe Abstand wie vorher 40 minus 20. */
    padding-bottom:104px}
  body:not([data-hero-tablet="gestapelt"]) .hero .bahn{
    flex-direction:row;align-items:center;gap:0;
    padding-block:48px 24px}

  /* position:static ist hier kein Versehen: die Textspalte stand auf
     relative, und damit haette sich die absolut gesetzte
     Ausgebucht-Zeile an ihr ausgerichtet statt am ganzen Hero. Das
     z-index faellt damit weg, was passt — das Foto soll ohnehin
     darueber liegen. */
  body:not([data-hero-tablet="gestapelt"]) .hero__text{
    position:static;
    flex:0 0 53.4%;width:auto;min-width:0;margin-left:4.4%}

  /* Das Foto liegt oben (z-index 2) und schiebt sich ueber die gelbe
     Flaeche, genau wie auf dem Rechner. order:-1 aus dem Stapelblock
     muss zurueckgesetzt werden, sonst steht es links. */
  /* GROESSER 15.09.2026 auf Anitas Wunsch, aber nur nach RECHTS: die
     Ueberlappung nach links bleibt bei 13.36%, sonst schiebt sich das
     Foto ueber das Ende der Ueberschrift. Unsere H1 heisst "in
     Muenchen Nord" und fuellt die Spalte damit ganz aus — im Entwurf
     steht dort nur "in Muenchen" und es bleibt Luft. Mit 17%
     Ueberlappung fehlte bei 768 UND 834 das "d" von Nord.
     Das Foto laeuft dafuer rund 8px ueber die Fensterkante hinaus und
     wird dort angeschnitten. */
  body:not([data-hero-tablet="gestapelt"]) .hero__bild{
    order:0;flex:0 0 60.1%;max-width:560px;min-width:0;
    /* Der linke Rand bleibt, wo er war (die Ueberlappung ist unveraendert
       11.13%) — das Foto waechst nur nach rechts und wird dort staerker
       angeschnitten. So kommt es der Ueberschrift nicht naeher.
       Der negative obere Rand hebt es ein Stueck an, ohne die
       Bahnhoehe zu aendern. */
    /* Die 8px sind Anitas Feinkorrektur vom 15.09.2026: das ganze Foto
       um genau acht Pixel nach rechts, nicht anteilig. Deshalb calc
       und kein anderer Prozentwert. */
    margin:-12px 0 0 calc(-11.87% + 8px);pointer-events:none}

  /* Blase: 53px ueber die Textspalte nach links hinaus, damit sie wie
     im Entwurf fast an der Bahnkante beginnt. Prozent beziehen sich
     hier auf die Textspalte (420px), nicht auf die Bahn: 53/420. */
  body:not([data-hero-tablet="gestapelt"]) .hero__blase{
    margin-left:-10%;width:110%;
    margin-block:16px;
    /* Seitlich nicht die 80px vom Rechner: im Entwurf beginnt der Text
       der Flaeche bei 68px, also fast unter der Ueberschrift (70px).
       Rechts mehr Polster, weil die gelbe Form dort schraeg auslaeuft. */
    padding-block:32px;padding-inline:10% 27.5%}
  /* Schriftgroesse waechst mit der Spalte. Fest gesetzt lief der Text
     bei 768px ueber sechs statt fuenf Zeilen und die gelbe Flaeche
     wurde 27px hoeher als im Entwurf. 2.04vw trifft bei 834px die 17px
     des Entwurfs. */
  body:not([data-hero-tablet="gestapelt"]) .hero__blase p{
    max-width:none;font-size:clamp(0.94rem,1.92vw,1rem);
    line-height:1.6}

  /* H1 waechst mit: bei 768px waere die feste Groesse zu breit fuer die
     schmale Spalte, bei 1024px zu klein. 5vw trifft bei 834px die
     41.6px des Entwurfs. */
  body:not([data-hero-tablet="gestapelt"]) .hero h1{
    font-size:clamp(2.1rem,5vw,2.8rem);line-height:1.2}

  /* Knopf und Hinweis stehen im Entwurf linksbuendig zur Ueberschrift,
     nicht mittig. Der Hinweis ist breiter als die Spalte und darf nach
     links heraus, so steht er wie im Entwurf fast an der Bahnkante. */
  body:not([data-hero-tablet="gestapelt"]) .hero__fuss{
    /* GEAENDERT 16.09.2026: der Knopf steht mittig unter der
       UEBERSCHRIFT, nicht unter der Textspalte. Die H1 ist linksbuendig
       und mit 327px (bei 834) deutlich schmaler als ihre Spalte (420) —
       auf die Spalte zentriert stand der Knopf sichtbar zu weit rechts.
       Die Breite hier ist die der laengsten H1-Zeile: 78 Prozent der
       Spalte, solange die Schrift mitwaechst, und ab 900px die festen
       351px, weil die Schriftgroesse dort gedeckelt ist.
       ACHTUNG: Aendert sich der Text der Ueberschrift, muss dieser Wert
       neu gemessen werden. */
    align-items:center;margin-right:0;margin-top:24px;
    margin-left:0;width:min(78%, 351px)}
  /* Der Knopf traegt die Rechnerwerte (18/52 Polster, 16px Schrift) und
     wirkt in der schmaleren Spalte zu wuchtig. */
  body:not([data-hero-tablet="gestapelt"]) .hero__fuss .btn{
    font-size:0.9375rem;padding:15px 38px}
  body:not([data-hero-tablet="gestapelt"]) .hero__hinweis{
    /* Kein text-wrap daneben: text-wrap gehoert heute zum
       white-space-Kurzwort und wuerde das nowrap gleich wieder
       aufheben. Das hat hier genau einmal zugeschlagen. */
    white-space:nowrap;font-size:0.9375rem;
    /* Mittig unter dem ganzen Hero, also auch unter dem Foto — Anitas
       Vorgabe vom 15.09.2026. Sie steht deshalb absolut am Hero und
       nicht mehr im Fluss der Textspalte. Der Platz dafuer kommt aus
       dem padding-bottom des Hero. */
    position:absolute;left:0;right:0;bottom:84px;
    margin:0;text-align:center}
}

/* ---------- Ueber mich, Kacheltext und Abstaende auf Tablet ----------
   Anitas Durchgang vom 15.09.2026, alles gegen den Figma-Tablet-Frame
   gemessen (Rahmen 834, Offset x=147 im JPG). */
@media (min-width:768px) and (max-width:1024px){
  /* 1) "Ueber mich" stand einspaltig, Foto ueber die volle Bahn (786px).
     Der Entwurf hat zwei Spalten: links Foto und Zitatflaeche, rechts
     Text und die vier Haken. Derselbe Fall wie bei den Leistungen —
     die eine Spalte kam aus Elementors Tablet-Einstellung, fuer Tablet
     gilt aber Figma. Gemessen: Foto 39 bis 383, rechte Spalte ab 424. */
  /* minmax(0,1fr) statt 1fr: sonst darf der Inhalt die Spalte
     aufblaehen. Bei 768px ist eine Spalte nur 340 breit, das Foto aber
     350 — die linke Spalte wurde dadurch breiter als die rechte und
     der mittig gesetzte Knopf sass 10px daneben. */
  /* display:contents an der Textspalte macht ihre Kinder zu direkten
     Rasterfeldern. Nur so kann der Knopf eine eigene Zeile UNTER beiden
     Spalten bekommen — vorher lag er in der rechten Spalte und stiess
     je nach Fensterbreite an die Zitatflaeche links (bei 1024px blieben
     2px). Der Abstand zwischen den Textteilen kommt jetzt aus row-gap,
     nicht mehr aus dem Flex-Gap der Spalte.
     Das Foto laeuft ueber die drei Textzeilen (Ueberschrift, Absatz,
     Hakenliste); der Knopf bildet die vierte Zeile ueber beide Spalten.
     ACHTUNG: span muss der tatsaechlichen Zahl entsprechen — mit einem
     zu grossen Wert legt das Raster leere Zeilen an und der Block wird
     mehrere hundert Pixel zu hoch. */
  .ueber{grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:40px;row-gap:22px;align-items:start}
  .ueber__medien{grid-column:1;grid-row:1 / span 3}
  .ueber__text{display:contents}
  .ueber__text > *{grid-column:2}
  /* Das Portraet ist im Entwurf 345px breit, die beiden Hundefotos
     darunter 300. Anitas Vorgabe: gleich gross wie die Hunde. */
  .ueber__medien{width:350px;max-width:100%}
  /* li traegt eine eigene Schriftgroesse, die Vererbung von der Liste
     reicht deshalb nicht. */
  .hakenliste li{font-size:1rem}
  /* .hunde p muss HIER stehen und nicht im Kachelblock weiter oben:
     die Grundregel .hunde p kommt im Stylesheet danach und ist gleich
     genau — bei Gleichstand gewinnt die spaetere. Dieselbe Falle wie
     schon bei den Bildbaendern. */
  .hunde p{font-size:1rem;line-height:1.6}
  /* Die Zitatflaeche haengt am Foto und ragt links ueber die Bahnkante
     hinaus, so wie im Entwurf.
     Das seitliche Polster von 80px stammt vom Rechner: in der 340px
     breiten Flaeche blieben davon nur 180px Text uebrig, das Zitat lief
     ueber fuenf Zeilen und die flache Form wurde in die Hoehe gezerrt.
     36px lassen rund 268px Text, damit bleiben es drei bis vier Zeilen. */
  /* Die blasse Form ist von Natur aus flach (727 zu 187). Bei 390 zu
     207 wurde sie auf ein Verhaeltnis von 1.9 gestaucht — oben stand
     dadurch eine Ecke ueber den Fotorand hinaus, und unten blieben nur
     4px bis zum Knopf. Weniger Ueberlappung (44 statt 70) und ein
     kleinerer Zitattext machen die Flaeche flacher und schaffen
     gleichzeitig Luft zum Knopf. */
  .ueber__zitat{margin-inline:-40px 0;padding:50px 36px 22px;
    margin-top:-44px}
  .ueber__zitat p{font-size:0.9375rem;line-height:1.6}
  .ueber__zitat cite{font-size:0.9375rem}
  /* Der Knopf steht im Quelltext in der rechten Spalte und saesse
     deshalb ueber deren Mitte. Anitas Wunsch vom 15.09.2026: mittig
     unter beiden Spalten. Die Verschiebung ist genau eine halbe
     Spaltenbreite plus die halbe Luecke, deshalb calc statt eines
     festen Pixelwerts — so stimmt sie bei jeder Fensterbreite.
     transform und nicht margin: der Platzbedarf im Raster bleibt
     dadurch unveraendert, es entsteht keine Luecke rechts. */
  /* Der Knopf steht mittig unter beiden Spalten, liegt im Quelltext
     aber in der rechten. Ohne zusaetzlichen Abstand nach oben stoesst er
     an die Zitatflaeche der linken Spalte. */
  /* Eigene Zeile ueber beide Spalten, mittig. Das transform von vorher
     entfaellt damit — es war nur noetig, solange der Knopf in der
     rechten Spalte sass. */
  .ueber__aktion{grid-column:1 / -1;justify-self:center;
    transform:none;margin-top:32px}

  /* 2) Kacheltext schmaler als die Spalte. Er lief bis an beide
     Kanten, dadurch verschwammen die vier Kacheln zu einem Block.
     Mit Rand steht jede fuer sich. */
  .karte p{max-width:86%;margin-inline:auto}

  /* 3) Weniger Abstand nach einem Bildband. 110px waren zu viel — im
     Entwurf sitzt das Label "UEBER MICH" rund 55px unter der Bandkante. */
  .band + .abschnitt{padding-top:56px}

  /* 4) Das Cremeband "Jeder Hund ist anders" bekommt mehr Hoehe.
     Zum Einordnen: im Entwurf ist es 451px hoch, bei uns waren es
     schon 530 — unsere Texte sind laenger. Mit 124px Innenabstand
     sind es rund 578. */
  /* --zwei ist das Band "Jeder Hund ist anders" (zwei Absaetze). Der
     Selektor muss so genau sein: alle Cremebaender tragen auch
     --angehaengt, und die Regel dafuer steht weiter unten. */
  /* GEAENDERT 16.09.2026: oben 76 statt 124px. Der Kopfbereich des
     Bandes wirkte zu leer; der Inhalt rueckt dadurch hoch und das Band
     wird oben kuerzer, ohne dass sich sein Anfang verschiebt.
     Unten bleiben die 124px. */
  .zitatband--zwei{padding-block:76px 124px}

  /* 11) FAQ-Felder 5px schmaler auf jeder Seite, der Text bleibt wo er
     ist — deshalb wandert der Innenabstand um denselben Betrag mit. */
  .faq__frage,.faq__antwort{margin-inline:5px}
  /* FEHLER 16.09.2026: .faq__frage traegt width:100% aus der
     Grundregel. Zusammen mit dem Aussenrand ergab das 100% PLUS 10px —
     der Fragekasten stand seitlich ueber den Antwortkasten hinaus.
     Im Raster streckt sich der Knopf ohnehin auf die Spaltenbreite,
     width:auto genuegt. */
  /* width:auto allein reicht nicht: ein <button> streckt sich im Raster
     nicht wie ein <div>, er schrumpft dann auf seine Textbreite.
     Deshalb die Breite ausrechnen — 100% minus die zweimal 5px Rand. */
  .faq__frage{padding-inline:35px;width:calc(100% - 10px)}
  /* rechts 73px: 35 Rand + 26 Zeichen + 12 Abstand, siehe .faq__antwort */
  .faq__antwort{padding-inline:35px 73px}

  /* 12) Kontakt. Der Entwurf legt das Formular ueber die volle Bahn:
     Vorname und Nachname nebeneinander, E-Mail und Nachricht darunter
     ueber beide Spalten. Unter dem Formular steht das Foto links und
     daneben Name, Rolle und Knopf. Bei uns stand das Formular in einer
     schmalen Spalte und die Karte darunter mittig. */
  /* Der Vorspann stand auf 1.2rem ueber die volle Bahn. Kleiner und auf
     Lesebreite begrenzt steht er ruhiger; der feste Umbruch vor "Ich
     freue mich auf Dich!" bleibt, das war eine Entscheidung vom
     13.09.2026. */
  /* GEFUNDEN 16.09.2026, zweiter Anlauf: mein erster Versuch mit
     "#kontakt .lead" hat nichts bewirkt. Weiter oben steht
     "#kontakt .kopf .lead{font-size:1.4rem}" — eine Klasse mehr, also
     genauer, und die gewinnt. Deshalb blieb der Vorspann bei 22.4px,
     waehrend alle anderen Vorspanne der Seite auf 19.2px stehen. Genau
     dieser Ausreisser ist Anita aufgefallen.
     Merke: bei einem Wert, der sich nicht aendern will, zuerst nach
     einem genaueren Selektor suchen, nicht den Wert nochmal setzen. */
  /* Zweizeilig statt dreizeilig: der erste Satz muss in eine Zeile
     passen, dann folgt "Ich freue mich auf Dich!" als zweite. Dafuer
     braucht er die volle Bahn und 1rem — mit 38rem Begrenzung brach er
     selbst um und der feste Umbruch machte daraus drei Zeilen. */
  /* Zweizeilig statt dreizeilig. Der erste Satz braucht ungebrochen
     795px, die Bahn gibt bei 834px nur 786 her — er brach also selbst
     um, und der feste Umbruch vor "Ich freue mich auf Dich!" machte
     daraus die dritte Zeile. Auf dem Tablet faellt der feste Umbruch
     deshalb weg, der Text fliesst und kommt mit zwei Zeilen aus. */
  #kontakt .kopf .lead{font-size:1rem;max-width:none}
  #kontakt .kopf .lead br{display:none}
  /* justify-content und justify-items muessen mit zurueckgesetzt werden:
     die Grundregel zentriert den Kasten (justify-content:center) und der
     1087er Block deckelt die Spalte auf 620px — zusammen blieb das
     Formular schmal, egal welche Spaltenbreite hier steht. */
  /* 64px zwischen Formular und Karte. 32 waren zu dicht, die Karte
     klebte am Pflichthinweis; 56 war zu weit. */
  .kontakt{grid-template-columns:minmax(0,1fr);gap:64px;
    justify-content:stretch;justify-items:stretch}
  /* Der Absendeknopf rueckt naeher an das Formular: 10 statt 24px
     Abstand, zusammen mit der Rasterluecke sind es 25 statt 39. */
  .kontakt__absenden{margin-top:10px}
  /* VERWORFEN 16.09.2026: Foto zuerst, Formular darunter. Sah falsch
     herum aus. Es bleibt bei Formular oben, Foto darunter. */
  /* HIER STAND EIN FEHLER, gefunden 16.09.2026 durch Anitas Frage.
     Vorher machte diese Regel das Formular selbst zu einem Raster mit
     zwei Spalten, damit Vorname und Nachname nebeneinander stehen.
     Das Formular der Kontaktseite traegt dieselbe Klasse, gruppiert
     seine Felder aber in Zweierreihen (.nachricht__reihe). Die Regel
     hat dort also die REIHEN nebeneinander gestellt statt der Felder:
     bei 834px standen alle vier Felder in einer Zeile und das
     Nachrichtenfeld war nur halb so breit.
     Jetzt macht das ueberall dieselbe Reihe: .nachricht__reihe steht
     weiter unten als allgemeine Regel und gilt fuer beide Formulare.
     Das Formular selbst bleibt eine Spalte (Flexbox aus der
     Grundregel), damit gibt es nichts mehr, was kollidieren kann. */
  /* Die Felder standen bis an die Bahnkante. 40px Polster an beiden
     Seiten geben ihnen Luft, ohne dass sie wieder in eine schmale
     Spalte muessen.
     Nur auf der Startseite: auf der Kontaktseite steht das Formular
     unter einer linksbuendigen Ueberschrift, dort saehe der Einzug
     nach einem Versehen aus. */
  #kontakt .kontakt__form{padding-inline:40px}
  /* Der Hinweis darueber bringt seinen eigenen Abstand mit; zusammen mit
     der Rasterluecke standen 39px zwischen ihm und der Meldung. */
  .kontakt__form .nachricht__datenschutz{margin-bottom:0}
  .kontakt__form .meldung{margin-top:0}
  .kontakt__senden{padding-inline:96px}
  /* Foto links, Text und Knopf rechts daneben, senkrecht mittig. */
  /* Foto weiter nach rechts (40px Einzug), daneben Name, Rolle und Knopf
     dicht untereinander. Vorher zog das Raster die drei Zeilen weit
     auseinander, weil der Platz gleichmaessig verteilt wurde. */
  /* Foto und Textblock stehen als Paar mittig auf der Seite, nicht
     linksbuendig: beide Spalten auf ihre Inhaltsbreite und die Gruppe
     mit justify-content zentriert. */
  .kontakt__karte{grid-template-columns:auto auto;
    gap:0 48px;justify-content:center;justify-items:start;
    text-align:left;align-content:center}
  /* Das Foto waechst ab rund 870px mit: bei festen 260px wirkte es auf
     den breiteren Tablets verloren. Unten bei 260 gedeckelt, damit es
     bei 768 nicht mit dem Textblock daneben kollidiert, oben bei 330.
     height:auto mit aspect-ratio statt fester Hoehe — sonst gewinnt die
     Hoehenangabe und das Bild wird gestaucht. */
  .kontakt__foto{grid-row:1 / span 3;align-self:center;
    width:clamp(260px, 30vw, 330px);height:auto;aspect-ratio:1}
  /* Name, Rolle und Knopf stehen als kompakte Gruppe senkrecht mittig
     neben dem Foto. Ohne die beiden 1fr-Zeilen oben und unten verteilt
     das Raster den freien Platz auf alle Zwischenraeume und zieht die
     drei auseinander. */
  .kontakt__karte{grid-template-rows:1fr auto auto auto 1fr}
  .kontakt__foto{grid-row:1 / -1}
  .kontakt__name{grid-row:2;margin-bottom:4px}
  .kontakt__rolle{grid-row:3;margin-bottom:14px}
  .kontakt__karte .btn{grid-row:4}

  /* 10) FAQ.
     Vier Punkte aus Anitas Durchgang:
     - Der Vorspann lief ueber die volle Bahn und klebte fast am Rand.
       Jetzt auf 34rem begrenzt und mittig, damit er in zwei ruhigen
       Zeilen steht.
     - Die Felder bekommen seitlich 40 statt 26px Innenabstand.
     - Die Frage ist eine Stufe kleiner als der Fliesstext (1rem statt
       1.125), damit sie sich vom Slogan darunter unterscheidet.
     - Der Slogan wird ebenfalls begrenzt und bricht dadurch um. */
  /* Beide weiterfuehrenden Saetze gleich gross und fett: "Du moechtest
     mehr ueber den genauen Ablauf..." vor dem FAQ-Knopf und "Erfahre
     mehr ueber meine Werte..." im Cremeband nach "Ueber mich". Der
     zweite stand auf 19.2px und Gewicht 500. */
  .faq + .faq__slogan,.faq__slogan{max-width:32rem;font-size:1.1875rem}
  .zitatband--angehaengt .text-weit{font-size:1.1875rem;font-weight:400;
    max-width:36rem;margin-inline:auto}
  .zitatband--angehaengt .text-weit strong{font-weight:700}
  .abschnitt:has(.faq) .kopf p{max-width:34rem;margin-inline:auto;
    text-wrap:balance}
  .faq__frage{padding:20px 40px;font-size:1rem}
  /* rechts 78px: 40 Rand + 26 Zeichen + 12 Abstand, siehe .faq__antwort */
  .faq__antwort{padding-inline:40px 78px}
  /* Die Antwort muss mitgehen: sie stand auf 1rem, also seit der
     Verkleinerung genauso gross wie die Frage. Die Frage soll die
     staerkere Zeile bleiben. */
  .faq__antwort p{font-size:0.9375rem}

  /* 7) Cremebaender oben und unten schmaler. 100px Innenabstand waren
     zu viel Flaeche um wenige Zeilen Text. */
  .zitatband--instagram{padding-block:72px}
  /* "Ueberzeuge Dich selbst" steht auf Weiss und hat weder --angehaengt
     noch --zwei, es bekam deshalb die 70px Aussenabstand aus der
     allgemeinen Tablet-Regel. Oben und unten auf 24px: der Abschnitt
     rueckt nach oben, und das Bildband samt FAQ dahinter kommt mit. */
  .zitatband--weiss{padding-block:72px;margin-block:32px 24px}

  /* 8) Vorspann naeher an die Galerie: 64px Abstand waren zu viel. */
  .galerie{margin-top:32px}

  /* 9) Bewertungen. Bis 1115px stand hier eine Spalte, weil die zwei
     festen 504px-Spalten nicht mehr in die Bahn passen. Mit
     mitwachsenden Spalten geht es doch: bei 834px sind das zwei Karten
     zu je 381px. Anitas Ziel ist, moeglichst alle vier Stimmen auf
     einen Blick zu sehen.
     Dafuer ruecken sie zusammen (Innenabstand 32 statt 64, Zeilen- und
     Spaltenabstand kleiner) und der Zitattext wird eine Stufe kleiner. */
  #erfahrungen{padding-top:96px}
  .br-tablet{display:inline}
  .bewertungen{grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:24px;row-gap:24px;margin-top:32px}
  .bewertung{max-width:none;padding:0 32px 32px;margin-top:64px}
  .bewertung__zitat,.bewertung__name{font-size:0.9375rem;line-height:1.6}
  .bewertung__foto{width:120px;height:114px;margin-top:-46px}
  /* Die Pflichtangabe soll dazugehoeren, aber leise bleiben. */
  .bewertungen__echtheit{margin-top:24px;font-size:0.8125rem}

  /* 6) Galerie "Eindruecke aus unserem Alltag".
     Die Bilder waren 317 breit und 520 hoch, also stark hochformatig —
     object-fit:cover schneidet davon seitlich viel weg. Im Entwurf sind
     sie rund 396 zu 468, fast quadratisch, und man sieht das Motiv.
     Dazu rueckt der Abschnitt hoch: 160px Innenabstand oben waren zu
     viel, im Entwurf sitzt die Ueberschrift rund 72px unter der Kante
     des Cremebands darueber. */
  .galerie__spur img{width:clamp(300px,47.5vw,420px);height:460px}
  .abschnitt--sehr-luftig:has(.galerie){padding-top:80px}

  /* 5) Das angehaengte Cremeband nach "Ueber mich" stand zu frei: 64px
     Abstand vom Abschnitt darueber plus 100px eigener Innenabstand.
     Es gehoert thematisch an "Ueber mich" dran, deshalb ruecken beide
     zusammen. */
  .abschnitt--eng-unten{padding-bottom:24px}
  .zitatband--angehaengt:not(.zitatband--zwei):not(.zitatband--instagram){
    padding-block:64px}
  /* FALLE, die hier zugeschlagen hat: .zitatband--angehaengt{margin-top:0}
     steht weiter oben in der Grundregel, im Tablet-Block danach aber
     .zitatband{margin-top:70px} — gleiche Genauigkeit, spaetere Regel
     gewinnt. Die angehaengten Baender bekamen dadurch auf dem Tablet
     doch wieder 70px Abstand nach oben, obwohl sie am Abschnitt
     darueber kleben sollen. "Jeder Hund ist anders" behaelt seinen
     Abstand, es gehoert nicht an die Kacheln geklebt. */
  .zitatband--angehaengt:not(.zitatband--zwei){margin-top:24px}
}

/* ---------- Hero-Foto ab 800px wieder ganz im Bild ----------
   Anitas Vorgabe vom 15.09.2026: Bei der schmalsten Tablet-Breite darf
   das Foto leicht angeschnitten sein, auf den gaengigen Tabletgroessen
   soll es ganz zu sehen sein.
   Das geht nicht mit einem einzigen Prozentwert: die Breite waechst
   dann im gleichen Takt wie das Fenster, der Anschnitt bleibt also
   ueberall gleich. Deshalb zwei Bereiche.
     768 bis 799  60.1% — rund 20px ueber die Fensterkante
     ab 800       55%   — bleibt mit 15 bis 20px Abstand innerhalb
   Die Grenze liegt auf 800, weil dazwischen kein gaengiges Geraet
   steht: 768 ist Chromes alter iPad-Mini-Eintrag, das naechste echte
   Geraet ist das iPad mit 820.
   Beim Ziehen am Fensterrand sieht man den Sprung an dieser Stelle,
   auf einem Geraet nie. */
@media (min-width:800px) and (max-width:1024px){
  body:not([data-hero-tablet="gestapelt"]) .hero__bild{flex-basis:55%}
}

/* ---------- Bildband, Siegel und Vertrauensleiste auf Tablet ----------
   Drei Punkte aus Anitas Durchgang bei 768px, 15.09.2026. */
@media (min-width:768px) and (max-width:1024px){
  /* 1) Mehr Luft um den Hund. Das Bandfoto ist ein Panorama von 1920 zu
     400. object-fit:cover skaliert es auf die Bandhoehe — je hoeher das
     Band, desto staerker der Zoom und desto weniger Umgebung bleibt
     stehen. Bei 300px waren von der Bildbreite nur rund 53 Prozent zu
     sehen und der Hund stand fast formatfuellend. Bei 240px sind es
     rund 67 Prozent: der Hund ist ganz zu sehen, samt Rute, und hat
     Schnee und Berge um sich.

     GEAENDERT 15.09.2026 auf 310px: das ist der gemessene Wert aus dem
     Figma-Tablet-Frame (Band von y 631 bis 941). Anitas Vorgabe, sich
     staerker am Entwurf zu orientieren.
     Der Preis dafuer ist bekannt und nicht wegzurechnen: unser Quellbild
     ist ein flaches Panorama von 1920 zu 400. Je hoeher das Band, desto
     staerker der Zoom. Bei 240px waren rund 67 Prozent der Bildbreite zu
     sehen, bei 310px nur noch 54 — der Hund steht also wieder deutlich
     formatfuellender als im Entwurf, wo er rund 45 Prozent der Breite
     einnimmt. Figma arbeitet dort mit mehr Bildmaterial, als wir haben.
     Loesen laesst sich das nur mit einem eigenen Zuschnitt aus dem
     Originalfoto, siehe OFFEN.md.

     Nur .band--hoch, also das Band unter dem Hero: die uebrigen Baender
     sind reine Trennbilder und bleiben bei 300px. Und weil .band--hoch
     img und .band img gleich genau sind, muss diese Zeile NACH der
     allgemeinen stehen — der 1024er Block weiter oben setzt 300. */
  .band--hoch img{height:310px}

  /* 2) Siegel und Sterne kleiner. 170px sind der Rechnerwert und
     wirkten auf dem flacheren Band zu wuchtig. Auf dem Handy sind es
     96px, das Tablet liegt jetzt dazwischen. */
  .band img.band__siegel{width:120px}
  .band__siegelblock{gap:6px}
  .band__sterne{font-size:1.1rem}
  /* Siegel etwas hoeher im Band. Es haengt oben (align-items:flex-start)
     und wird ueber den Innenabstand der Bahn gesetzt, nicht ueber einen
     eigenen Aussenrand. */
  .band__bahn{padding-top:32px}

  /* 3) Die vier Punkte der Vertrauensleiste standen als umbrechende
     Flexzeile da: jede Zeile fuer sich mittig, und weil die vier Texte
     verschieden lang sind, sassen die Haken auf vier verschiedenen
     Linien — die Leiste schwang sichtbar hin und her.
     Jetzt ein Raster aus zwei Spalten, jede so breit wie ihr laengster
     Eintrag, Inhalt linksbuendig. Damit stehen die Haken je Spalte
     genau uebereinander. Der Block als Ganzes bleibt mittig.
     Dasselbe Verfahren wie auf dem Handy, dort nur einspaltig.
     max-width muss zurueckgesetzt werden: die 640px aus der
     1178px-Regel wuerden die Spalten sonst stauchen. */
  /* GEAENDERT 15.09.2026 auf die Fassung aus dem Figma-Tablet-Frame:
     alle vier Punkte in EINER Reihe, jeder Eintrag zweizeilig — erste
     Zeile normal, zweite fett. Die Leiste ist dadurch 77 statt 95px
     hoch, und die Frage nach den untereinander stehenden Haken stellt
     sich nicht mehr, weil es nur noch eine Reihe gibt.
     Gemessen im Entwurf: Eintraege 133 bis 175px breit, ueber die Bahn
     verteilt mit rund 40 bis 60px dazwischen — das ist
     space-between, keine festen Spalten.
     Der Umbruch kommt aus .vertrauen__oben (im HTML ergaenzt) und
     nicht aus einem <br>: beim dritten Eintrag muss "Erfahrung" mit
     in die zweite Zeile, es steht aber hinter dem fetten Teil. */
  /* Vier gleich breite Spalten statt space-between. Die vier Texte sind
     verschieden lang (134 bis 173px); bei gleichen Luecken dazwischen
     sitzt dann jeder Haken woanders und einer wirkt eingequetscht.
     Mit 1fr-Spalten bekommt jeder Eintrag denselben Platz und die
     Haken stehen in einem gleichmaessigen Raster — so steht es auch
     im Entwurf, dort liegen sie rund 200px auseinander. */
  .vertrauen__liste{display:grid;grid-template-columns:repeat(4,1fr);
    align-items:center;justify-items:start;
    max-width:none;gap:10px}
  /* NUR in der Vertrauensleiste umbrechen. Dieselben vier Punkte stehen
     auch in der Ueber-mich-Spalte, dort sollen sie einzeilig bleiben —
     ein ungenauer Selektor hat sie dort prompt mit umgebrochen. */
  .vertrauen__liste .vertrauen__oben{display:block}
  /* Die Schrift waechst mit: bei 768px ist eine Spalte nur 172px breit,
     und der laengste Eintrag ("Mehr als / 5 Jahre Erfahrung") braucht
     bei 15px schon 173 — er lief dort in eine dritte Zeile und die
     Leiste wurde 96 statt 73px hoch. */
  .vertrauen li{font-size:clamp(0.875rem,1.8vw,0.9375rem);
    line-height:1.5;align-items:center;gap:11px}
  /* 28px statt 22. Im Entwurf misst der Haken 27px — mit dem
     zweizeiligen Eintrag daneben traegt er das auch. */
  .vertrauen .icon{width:28px;height:28px}
}

/* =========================================================
   BREITES TABLET, 900 bis 1024
   Bei 1024 ist die Bahn 976px breit. Was bei 768 richtig sitzt,
   faellt hier auseinander: die Vertrauensleiste wird linkslastig,
   Foto und Text bei "Ueber mich" driften auseinander, Vorspaenne
   stehen unnoetig zweizeilig. Anitas Durchgang 16.09.2026.
   Dieser Block steht bewusst NACH dem Tablet-Block: er hat dieselbe
   Genauigkeit, und bei gleicher Genauigkeit gewinnt die spaetere.
   ========================================================= */
@media (min-width:900px) and (max-width:1024px){
  /* Vier gleich breite 1fr-Spalten schieben den Ueberschuss nach
     rechts: der letzte Eintrag endete 72px vor der Bahnkante, der
     erste stand genau auf ihr. Die Leiste wird deshalb auf ihre
     Inhaltsbreite gedeckelt (viermal 180 fuer den laengsten Eintrag
     plus dreimal 40 Luecke) und mittig gesetzt. Die Haken bleiben
     dabei auf einem gleichmaessigen Raster, das war die Bedingung.
     840 und nicht 812: bei genau 173px Spaltenbreite lief der
     laengste Eintrag in eine dritte Zeile, er braucht die 173 selbst
     schon ganz. */
  .vertrauen__liste{max-width:840px;margin-inline:auto;gap:40px}

  /* "Ueber mich" als ein Block statt zwei Haelften.
     Vier Dinge auf einmal, weil sie zusammenhaengen:
     1. Foto 400 statt 350 — mit dem breiteren Fenster wirkte es klein.
     2. Beide Spalten fest und die Gruppe mittig: vorher hing das Foto
        an der linken Bahnkante und der Text lief bis zur rechten.
     3. Fliesstext auf 460 gedeckelt (rund 70 Zeichen); mit 586 lief er
        zu breit. minmax, damit er bei 900px mitschrumpft statt
        ueberzulaufen.
     4. Die vierte Rasterzeile mit 1fr nimmt den Hoehenueberschuss des
        Fotos auf. Ohne sie verteilt das Raster ihn auf die drei
        Textzeilen und zieht Ueberschrift, Absatz und Haken
        auseinander — genau das sah zerrissen aus. */
  .ueber{grid-template-columns:400px minmax(0,460px);column-gap:48px;
    justify-content:center;
    grid-template-rows:auto auto auto auto 1fr;row-gap:24px}
  .ueber__medien{width:400px;grid-row:1 / span 5}
  /* Knopf wieder unter den Textblock, mittig in dessen Spalte — so
     steht er auch auf dem Rechner (.ueber__aktion{text-align:center}).
     Dafuer darf das Rasterfeld NICHT auf seine Inhaltsbreite
     schrumpfen, sonst laeuft text-align ins Leere: justify-self bleibt
     deshalb auf stretch. Die eigene Zeile ueber beide Spalten war die
     Antwort auf die engen Tabletbreiten, hier ist genug Platz. */
  .ueber__aktion{grid-column:2;grid-row:4;justify-self:stretch;
    margin-top:8px}

  /* Zurueck auf Fliesstextgroesse: die 16px waren die Antwort auf die
     schmale Spalte bei 768. */
  .hakenliste li{font-size:1.125rem}

  /* Finnick und Ivy als kleine Einheit: die 1fr-Spalten waren bei 1024
     je 478px breit, die beiden 300er Fotos standen dadurch 198px
     auseinander. Jetzt zwei Spalten in Fotobreite plus 20px, mittig,
     32px Luft dazwischen. Der Text laeuft nicht mehr ueber die volle
     Spalte, sondern steht kompakt unter dem Namen. */
  .hunde{grid-template-columns:repeat(2,360px);justify-content:center;
    gap:40px;max-width:none}
  /* Text genau so breit wie das Foto darueber. */
  .hunde p{padding-inline:30px}

  /* Platz ist da, also duerfen die Bilder hoeher stehen.
     ACHTUNG: die Platzhalter sind nur 700px breit und werden dabei
     hochgerechnet. Mit den echten Fotos faellt das weg. */
  .galerie__spur img{width:clamp(300px,47.5vw,470px);height:520px}

  /* Steht hier in einer Zeile statt in zwei, Platz ist genug. */
  .abschnitt:has(.faq) .kopf p{max-width:none}

  /* Das Foto unter dem Formular blieb mit 30vw bei 912px auf 274
     Pixeln stehen und wirkte dort verloren. Ab 900 waechst es
     schneller mit und ist bei 340 gedeckelt. Ab 960 steht der
     Kontaktbereich ohnehin nebeneinander, dort gilt die feste 320. */
  .kontakt__foto{width:clamp(300px, 36vw, 340px)}

  /* Der Kontakt-Vorspann stand als einziger auf 16px, alle anderen
     Vorspaenne der Seite auf 19.2. Die 16 waren die Antwort auf die
     engen Tabletbreiten, wo der Satz sonst dreizeilig wurde.
     Er bricht von selbst, nicht am festen <br>, und der Kasten ist
     schmaler als die Bahn: 856px sind dieselbe Breite wie die
     FAQ-Kaesten und der Kontaktblock, darunter zieht die Feldbreite
     (Bahn minus zweimal 40px Polster). So bleibt links und rechts
     immer Luft — ueber die volle Bahn stand der Satz nur 11px vom
     Rand entfernt. */
  #kontakt .kopf .lead{font-size:1.2rem;line-height:1.56;
    max-width:min(856px, 100% - 80px);margin-inline:auto}

  /* Die FAQ-Kaesten liefen ueber die volle Bahn (976px) und wirkten
     dadurch wuchtig. 856 mittig lassen links und rechts je 60px
     stehen — dasselbe Mass wie beim Kontaktblock darunter, damit die
     Seite bei 1024 einen durchgehenden Innenrand hat. */
  .faq{max-width:856px}
}

/* =========================================================
   KONTAKT NEBENEINANDER AB 960px
   Anitas Frage vom 16.09.2026: geht der Rechner-Aufbau bei 1024
   schon? Ja. Der Rechner braucht 620 + 80 + 340 = 1040 plus zweimal
   24px Bahnpolster, also 1088 — deshalb stand die Grenze bisher bei
   1087. Mit einer schmaleren Karte (300 statt 340) und mitwachsender
   Luecke passt es ab 960.
   Der Block deckt 960 bis 1087 ab: er gilt damit auch fuer die
   Luecke zwischen Tablet-Ende (1024) und Rechner-Anfang (1088), die
   sonst wieder untereinander stuende. Er steht NACH dem Tablet-Block,
   sonst gewinnt dessen "untereinander" bei gleicher Genauigkeit.
   ========================================================= */
@media (min-width:960px) and (max-width:1087px){
  /* 320 und nicht 300: der Knopf "Zu allen Kontaktinformationen"
     braucht 303px: in einer 300er Spalte brach er zweizeilig um. */
  /* Die Gruppe steht nicht mehr ueber die volle Bahn, sondern mittig
     mit Rand: bei 1024 sind das 856px und je 60px Luft, genau wie bei
     den FAQ-Kaesten darueber. Die Breite waechst mit dem Fenster, damit
     der Uebergang zum Rechner-Aufbau (1040px ab 1088) kein Sprung ist.
     Das Formular bekommt, was nach Karte und Luecke uebrig bleibt:
     480px bei 1024. */
  .kontakt{grid-template-columns:minmax(0,1fr) 320px;
    max-width:clamp(856px, 83.6vw, 960px);margin-inline:auto;
    justify-content:stretch;justify-items:stretch;
    align-items:end;gap:56px;margin-top:40px}

  /* Zurueck auf die Rechner-Fassung: Felder untereinander, das
     Nachrichtenfeld fuellt die Spaltenhoehe. Die zweispaltige
     Anordnung mit Vorname/Nachname nebeneinander war die Antwort auf
     eine Bahn ueber die volle Breite — die gibt es hier nicht mehr. */
  #kontakt .kontakt__form{padding-inline:0}
  .kontakt__senden{padding-inline:50px}

  /* Karte zurueck auf einspaltig und mittig: Foto oben, darunter
     Name, Rolle und Knopf. Die Zeilen- und Spaltenangaben aus dem
     Tablet-Block muessen dafuer ausdruecklich geloescht werden. */
  .kontakt__karte{grid-template-columns:none;grid-template-rows:none;
    justify-content:normal;justify-items:center;align-content:end;
    text-align:center;gap:11px;padding-bottom:38px}
  .kontakt__foto{grid-row:auto;align-self:auto;width:320px;
    margin-bottom:-5px}
  .kontakt__name{grid-row:auto;margin-bottom:0}
  .kontakt__rolle{grid-row:auto;margin-bottom:0}
  .kontakt__karte .btn{grid-row:auto}
}

/* =========================================================
   SCHMALER RECHNER, 1025 bis 1178
   Anitas Durchgang bei 1060 am 16.09.2026. Der Rechner-Bau ist auf
   1200px Inhaltsbreite gerechnet. Bei rund 1000px Bahn stossen mehrere
   Stellen an ihre Grenze, ohne dass die Tablet-Regeln greifen.
   Steht bewusst nach allen Grundregeln: bei gleicher Genauigkeit
   gewinnt die spaetere.
   ========================================================= */
@media (min-width:1025px) and (max-width:1178px){
  /* Alle vier Punkte in einer Reihe statt zwei und zwei. Einzeilig
     passen sie nicht — vier Eintraege zu rund 240px plus Luecken
     brauchen mehr, als die Bahn hergibt. Also zweizeilig wie auf dem
     Tablet, vier gleich breite Spalten, damit die Haken auf einem
     gleichmaessigen Raster sitzen. */
  .vertrauen__liste{display:grid;grid-template-columns:repeat(4,1fr);
    max-width:880px;margin-inline:auto;gap:24px;
    align-items:center;justify-items:start}
  .vertrauen__liste .vertrauen__oben{display:block}
  /* 28 statt 22px. Neben dem zweizeiligen Eintrag traegt der Haken das,
     gleicher Wert wie auf dem Tablet. */
  .vertrauen .icon{width:28px;height:28px}

  /* Kacheln: Ueberschrift und Text schmaler als die Spalte. Sie liefen
     ueber die volle Kachelbreite, dadurch standen die Texte zweier
     Nachbarkacheln fast aneinander. Die Fotos bleiben, wie sie sind. */
  .karte h3,.karte p{max-width:86%;margin-inline:auto}
  /* ZURUECKGENOMMEN 16.09.2026: hier stand min-height:2.68em an der
     Ueberschrift, damit die Subtexte einer Reihe immer auf einer Linie
     beginnen. Das kostete in der ersten Reihe, wo beide Ueberschriften
     einzeilig sind, eine ganze Leerzeile. Mit der 86-Prozent-Begrenzung
     brechen beide Ueberschriften der zweiten Reihe ohnehin gleich um,
     die Subtexte liegen also von selbst auf einer Linie.
     ACHTUNG: das haelt nur, solange beide Ueberschriften einer Reihe
     gleich viele Zeilen brauchen. Der saubere Weg waere
     grid-template-rows:subgrid an der Kachel, siehe OFFEN.md. */

  /* Das Skylineband stand 160px ueber "Ueber mich". */
  .band + #ueber-mich{padding-top:96px}

  /* Umbruch nach "Echte Erfahrungen", damit die Ueberschrift nicht ueber
     die volle Bahn laeuft. Derselbe Umbruch wie auf dem Tablet. */
  .br-tablet{display:inline}

  /* Zwei Empfehlungen nebeneinander. Die festen 504er Spalten samt 60px
     Abstand brauchen 1116px Fensterbreite; hier teilen sich die beiden
     Spalten stattdessen den vorhandenen Platz. */
  .bewertungen{grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:24px}

  /* Die Pflichtangabe stand 80px unter den Karten und wirkte
     abgetrennt. */
  .bewertungen__echtheit{margin-top:24px}


}

/* =========================================================
   KACHELN: ZEILENWEISE AUSRICHTUNG UEBER SUBGRID
   Anitas Wunsch vom 16.09.2026, gefunden bei 1140.
   Problem: braucht eine Kachelueberschrift zwei Zeilen und die daneben
   nur eine, beginnt deren Fliesstext hoeher. Vorher standen hier zwei
   Notloesungen: eine feste Zwei-Zeilen-Hoehe (kostet in Reihen mit
   einzeiligen Ueberschriften eine Leerzeile) oder gar nichts (haelt nur
   zufaellig).
   Loesung: die Kachel wird selbst zum Raster und uebernimmt mit
   grid-template-rows:subgrid die vier Zeilen des Kachelrasters — Bild,
   Ueberschrift, Text, Knopf. Jede dieser Zeilen ist so hoch wie ihr
   hoechster Inhalt in DIESER Kachelreihe, und zwar nur dann. Bild, Text
   und Knopf liegen damit zeilenweise auf einer Linie.
   Die einzeilige Ueberschrift sitzt mit align-self:center mittig in der
   Hoehe der zweizeiligen daneben.
   Die zwei Vorschaukacheln haben keinen Knopf und spannen deshalb nur
   drei Zeilen — mit vier bliebe unter ihnen eine leere Zeile samt
   Zwischenraum stehen.
   Die Zwischenraeume: .karten gibt 128px zwischen den Kachelreihen vor,
   die Kachel ueberschreibt das fuer ihre eigenen vier Zeilen mit 28.
   @supports, weil subgrid erst ab Chrome 117, Firefox 71 und Safari 16
   koennen. Aeltere Browser behalten die bisherige Flexbox-Fassung, dort
   sitzen die Knoepfe weiter ueber margin-top:auto auf einer Linie.
   ========================================================= */
@supports (grid-template-rows: subgrid){
  @media (min-width:1025px){
    /* WICHTIG: der Zeilenabstand muss am .karten-Raster stehen, nicht
       an der Kachel. Ein Subgrid darf laut Norm einen eigenen row-gap
       setzen, Chromium rechnet die Differenz zum Elternabstand aber
       trotzdem in die Zeilen — mit 128 am Elternteil und 28 an der
       Kachel standen real 53px zwischen Bild und Ueberschrift, und der
       Abschnitt war 115px zu hoch.
       Deshalb: 28 am Raster fuer alle Zeilen, und die 128 zwischen den
       Kachelreihen kommen als Aussenrand an den Kacheln, die nicht in
       der letzten Reihe stehen (28 + 100). */
    .karten{row-gap:28px}
    .karte:nth-last-child(n+3){margin-bottom:100px}
    .karte{display:grid;grid-template-rows:subgrid;grid-row:span 4;
      justify-items:center;align-items:start}
    .karte--vorschau{grid-row:span 3}
    .karte h3{align-self:center}
    .karte .btn{align-self:end;margin-top:0}
  }
}

/* =========================================================
   MOBIL
   ========================================================= */
@media (max-width:767px){
  .bewertung__zitat{text-align:left}
  /* 1rem statt 0.9rem: die Leiste steht untereinander und hat Platz,
     und bei 14.4px war sie die kleinste Schrift auf der Seite. */
  .vertrauen li{font-size:1rem}

  /* Schmaler und hoeher als bisher: im Figma-Mobilentwurf stehen zwei
     Bilder nebeneinander im Bild und das dritte ist angeschnitten. Mit
     280px bei 420px Hoehe war nur eineinhalb zu sehen, und man erkannte
     nicht, dass es ein Wischband ist. */
  /* GEAENDERT 14.09.2026: ein Bild statt zweieinhalb. Das Bild ist so
     breit wie die Bahn und steht damit auf derselben Kante wie alles
     andere. Die Spur bekommt denselben Innenabstand, damit das
     eingerastete Bild buendig sitzt; scroll-padding sorgt dafuer, dass
     das Einrasten diesen Abstand mitrechnet.
     Vom naechsten Bild bleiben rechts 8px sichtbar — gerade genug, um
     zu zeigen, dass es weitergeht, ohne dass zwei Bilder konkurrieren.
     Die Punkte darunter sind der zweite Hinweis. */
  .galerie__spur{padding-inline:var(--abstand-standard);
    scroll-padding-inline:var(--abstand-standard)}
  .galerie__spur img{width:calc(100vw - 2 * var(--abstand-standard));
    height:500px}
  /* Die Pfeilknoepfe sind auf dem Handy ueberfluessig — dort wird
     gewischt, und sie liegen mitten auf dem Bild. Im Figma-Mobilentwurf
     gibt es sie auch nicht. Die Punktleiste bleibt: sie zeigt, dass es
     weitergeht. */
  .galerie__knopf{display:none}

  /* Hundekarten untereinander, Text ohne seitliches Polster. */
  .hunde{grid-template-columns:1fr;gap:var(--abstand-gruppe)}
  .hunde p{padding-inline:0}
  .hunde-kopf{margin-top:var(--abstand-block)}
  .zitatband .text-weit{margin-inline:0}

  /* 300px, Wert aus dem Figma-Mobilentwurf. Elementor sagt hier 200px —
     das gilt fuer den Desktopbuild, fuer Mobil ist Figma die Vorlage.

     MERKE zur Bildwirkung: die Platzhalter sind 1600 zu 333 (4,8 zu 1).
     Ein 300px hohes Band auf einem 390px breiten Bildschirm hat das
     Verhaeltnis 1,3 zu 1 — sichtbar ist davon also nur rund ein Viertel
     der Bildbreite, egal welchen Ausschnitt man waehlt. Mehr Motiv geht
     nur mit einem eigenen Mobilzuschnitt; die Liefergroesse dafuer
     (1600 x 640) steht in BILDER.md. Damit waere bei 300px Hoehe gut
     die halbe Bildbreite zu sehen. */
  .band img{height:300px}
  /* FALLE, die hier zugeschlagen hat: .band--hoch img und .band img sind
     gleich genau (eine Klasse, ein Element). Bei Gleichstand gewinnt die
     spaetere Regel — die Sonderhoehe fuer das Band unter dem Hero stand
     weiter oben und wurde deshalb still ueberschrieben. Sie muss NACH
     der allgemeinen Regel stehen. */
  .band--hoch img{height:270px;object-position:50% center}
  /* 32px statt 71: zusammen mit den 48px Innenabstand des Abschnitts
     darueber lagen 119px zwischen der letzten Kachel und dem Cremeband.
     Jetzt 80px — dieselbe Groessenordnung wie auf dem Desktop, wo es 96
     sind. "Jeder Hund ist anders" gehoert inhaltlich noch zu den
     Leistungen und soll dicht darunter sitzen. */
  .zitatband{padding-block:80px;margin-top:32px}
  /* 80 minus die 24px, die die zweite Zeile kostet. */
  .zitatband--zwei{padding-block:56px}
  /* 48 statt 70px: Wunsch vom 14.09.2026, "Ueber mich" soll dichter
     unter das Bildband ruecken. */
  .band + .abschnitt{padding-top:48px}

  /* ----- Mobilrunde 14.09.2026 -----
     Drei Stellen liefen auf dem Handy in einer Spalte von rund 180 bis
     215px, weil dort feste Innenabstaende aus dem Desktop stehen (80px
     am Instagramtext, 80px in der Hero-Blase, 64px in den
     Bewertungskarten). Auf 1200px Bahn faellt das nicht auf, auf 342px
     bleibt die Haelfte uebrig und der Text bricht nach drei Woertern.
     Grundsatz daraus: feste seitliche Innenabstaende gehoeren auf Mobil
     immer nachgerechnet. */

  /* ----- Hero -----
     Ziel: der Knopf soll moeglichst noch auf den ersten Bildschirm
     passen. Dafuer ist der Hero auf dem Handy dicht gesetzt — kein
     Innenabstand oben, das Foto kleiner, und Foto, Ueberschrift,
     Flaeche und Knopf ruecken enger zusammen als auf dem Desktop.
     Nachgemessen bei 390 x 844. */
  .hero .bahn{padding-block:0 var(--abstand-weit);gap:0}

  /* Der Textblock steht 8px weiter innen als die Bahn. Damit beginnt
     die Ueberschrift bei genau 32px — an derselben Kante wie der Text
     in der gelben Flaeche darunter. Vorher standen die beiden 8px
     versetzt, und weil die laengste H1-Zeile 328 von 342px misst, klebte
     der ganze Block sichtbar am linken Rand.
     Der Einzug steht bewusst NUR links. Rechts ist keiner noetig: die
     laengste Zeile ("in München Nord") misst 328px und endet damit bei
     360, rechts bleiben 30. Mit 8px auch rechts waere die Spalte 326
     breit — zwei Pixel zu schmal, und die Zeile bricht in eine vierte
     um. Ergebnis so: der Block steht optisch mittig, der Text bleibt
     linksbuendig. */
  .hero__text{padding-left:8px;padding-right:0}

  /* VERWORFEN 14.09.2026: die Ueberschrift in das Foto hineinragen
     lassen, so wie im Figma-Mobilentwurf. Dort laeuft das Motiv nach
     unten transparent aus, unser Freisteller nicht — die Hunde stehen
     bis zur Unterkante, und "Professionelle" lag mitten auf ihren
     Beinen. Deshalb nur dicht heran, ohne Ueberlappung. */
  .hero__bild{max-width:285px;width:100%;
    margin:12px auto var(--abstand-eng);order:-1}

  /* Die gelbe Flaeche laeuft ueber beide Bildschirmkanten hinaus, ihre
     runden Enden liegen ausserhalb. So ist es im Figma-Mobilentwurf:
     dort ragt sie 160px nach links und 210px nach rechts heraus. Hier
     reichen 48px, damit die Rundungen sicher aus dem Bild sind.
     Die Rechnung: 24px Bahnpolster plus 90px Ueberstand nach aussen,
     derselbe Wert wieder nach innen plus die 32px, bei denen der Text
     im Entwurf beginnt — der Text startet dadurch immer bei genau 32px,
     egal wie gross der Ueberstand ist.
     90px und nicht weniger: die Form ist von Natur aus 727 zu 187 und
     wird auf die Blasenbreite gezogen. Bei 486px Breite war sie so
     gestaucht, dass oben und unten fast gerade Kanten standen und das
     Ganze wie ein Balken aussah. Bei 570px bleiben die Wellen. */
  /* 122px steht an drei Stellen und muss dort denselben Wert haben:
     als Aussenrand nach links und rechts, als Zuschlag zur Breite und
     als Innenabstand. Erst dann beginnt der Text genau an der Kante der
     Ueberschrift.
     Die Zahl selbst: 90px liegen ausserhalb des Bildschirms, damit die
     runden Enden der Form nicht zu sehen sind, plus die 32px bis zum
     Text.
     FALLE, die hier zugeschlagen hat: vorher war der Aussenrand mit
     114 und der Innenabstand mit 122 gerechnet. Die Blase stand dadurch
     8px zu weit rechts UND der Text war 16px schmaler als gedacht —
     genug, um eine zusaetzliche Zeile zu erzwingen. Bei zusammen-
     gehoerenden Werten also einen einzigen Wert schreiben. */
  .hero__blase{margin-inline:-122px;
    width:calc(100% + 244px);
    padding:22px 122px;
    margin-block:10px 16px}
  /* 18px auf 160% — die Werte aus dem Figma-Mobilentwurf. Eine Stufe
     groesser als der uebrige Fliesstext auf dem Handy: der Satz ist das
     Versprechen der Seite und hat in der Flaeche Platz.
     Die Zeilenhoehe steht hier ausdruecklich, weil --betont-hoehe mit
     1.62 eine Spur lockerer ist als die 1.6 aus dem Entwurf. */
  .hero__blase p{max-width:none;font-size:1.125rem;line-height:1.6}

  /* So gross wie moeglich, ohne dass "Hundebetreuung" umbricht oder der
     Knopf aus dem ersten Bildschirm faellt. Nachgemessen: bei 2.5rem
     passt die laengste Zeile mit rund 10px Luft. */
  .hero h1{font-size:2.5rem;line-height:1.12}
  .hero__fuss{margin-top:var(--abstand-nah)}
  /* Mittig unter dem Knopf und eine Spur groesser: bei 0.8rem war der
     Hinweis auf dem Handy kaum zu lesen, und er stand linksbuendig
     unter einem mittigen Knopf. */
  .hero__hinweis{text-align:center;font-size:0.95rem;
    margin-top:var(--abstand-nah)}

  /* Vertrauensleiste: die vier Punkte stehen untereinander und alle an
     derselben Kante. Vorher war jede Zeile fuer sich mittig, dadurch
     standen die vier Haken auf vier verschiedenen Linien und die Liste
     franste aus. Der Block als Ganzes bleibt mittig.
     So steht es auch im Figma-Mobilentwurf. */
  .vertrauen__liste{display:grid;justify-content:center;
    justify-items:start;gap:10px}
  /* KORREKTUR 14.09.2026: Hier stand align-items:flex-start mit 2px
     Versatz am Haken — gedacht fuer zweizeilige Texte. Alle vier Texte
     sind auf dem Handy aber einzeilig, und dadurch sass jeder Haken
     sichtbar 2px zu hoch. Zurueck auf mittig. */
  .vertrauen li{align-items:center;gap:8px}
  /* Haken eine Spur kleiner und die Zeilen dichter: der gelbe Balken
     nahm sonst einen zu grossen Teil des Bildschirms ein. */
  .vertrauen .icon{width:20px;height:20px;margin-top:0}

  .zitatband .instagram__text{margin-inline:0}

  /* Die Karten laufen randlos ueber die volle Breite, so wie im
     Figma-Mobilentwurf: die Cremeflaeche geht dort von Kante zu Kante,
     nicht in der Bahn eingerueckt. Der negative Aussenrand hebt das
     seitliche Polster der Bahn auf.
     Innen 32px statt 64px — der Zitattext ist damit 326 statt 214px
     breit, das sind bei einer Schrift mit Serifen rund fuenf Zeilen
     weniger. */
  .bewertungen{margin-top:var(--abstand-gruppe);
    margin-inline:calc(-1 * var(--abstand-standard));
    grid-template-columns:minmax(0,1fr)}
  .bewertung{max-width:none;padding:0 var(--abstand-weit) 32px}

  /* Die weiterfuehrenden Buttons haben 70px Innenabstand seitlich. Bei
     342px Bahn bleiben fuer die Beschriftung 200px, "Das erwartet
     Deinen Hund" und "Doggery bei Instagram" brechen dann zweizeilig
     um. Auf dem Handy deshalb 28px — die Flaeche ist mit der vollen
     Zeile ohnehin gross genug zum Treffen. */
  .btn--sekundaer{padding-inline:28px}

  /* ----- Ueber mich -----
     Reihenfolge auf dem Handy: Foto, Ueberschrift, Text, Hakenliste,
     Zitatflaeche, Knopf. Das Zitat direkt unter dem Foto wurde am
     14.09.2026 getestet und verworfen — es trennte Foto und Text zu
     stark. Es steht jetzt am Ende des Blocks, aber VOR dem Knopf:
     der Knopf ist der Abschluss des Abschnitts.
     Damit sich Zitat und Knopf ueberhaupt sortieren lassen, loesen
     display:contents die beiden Zwischenkaesten auf — Foto, Zitat und
     alle Textteile werden dadurch direkte Flex-Kinder von .ueber.
     order 2 fuer alles aus der Textspalte, damit nur Zitat (3) und
     Knopf (4) danach kommen; ohne die Angabe stuenden sie auf 0 und
     damit vor dem Foto. */
  .ueber{display:flex;flex-direction:column;gap:28px;
    margin-top:var(--abstand-weit)}
  .ueber__medien,.ueber__text{display:contents}
  .ueber__medien img{order:1}
  .ueber__text>*{order:2}
  .ueber__zitat{order:3}
  .ueber__aktion{order:4;margin-top:10px}
  /* So gross wie die Kachelueberschriften der Leistungen (32px im
     Figma-Entwurf). Bei 24px stand die Zeile als Ueberschrift kaum
     ueber dem Fliesstext darunter. */
  .ueber__text .h3-klein{font-size:2rem}
  /* 122px steht wie im Hero an drei Stellen fuer denselben Wert:
     90px liegen ausserhalb des Bildschirms, damit die runden Enden der
     Form nicht zu sehen sind, plus die 32px bis zum Text. Der
     Aussenrand macht das Element automatisch 244px breiter, eine
     eigene Breitenangabe braucht es hier nicht — anders als im Hero,
     wo die Flaeche ein Flex-Kind ist.
     aspect-ratio statt fester Innenabstaende: die Form ist von Natur
     aus flach (727 zu 187, also 3,89 zu 1) und sieht ueber die volle
     Bildschirmbreite wie ein gerader Balken aus. Erst wenn die Flaeche
     deutlich hoeher ist als die Form von sich aus waere, zerrt
     background-size sie in die Hoehe und die Wellen werden sichtbar.
     3,05 zu 1 ergibt rund ein Viertel mehr Hoehe.
     Mit festen Innenabstaenden waere das nicht zu halten: bei 430px
     Bildschirm laeuft das Zitat zweizeilig statt dreizeilig, die
     Flaeche wird niedriger UND breiter — und damit wieder flach.
     Der Inhalt steht senkrecht mittig und darf die Flaeche bei Bedarf
     hoeher druecken. */
  .ueber__zitat{margin:0 -122px;padding:24px 122px;font-size:1rem;
    aspect-ratio:3.05;display:flex;flex-direction:column;
    justify-content:center}
  /* FALLE 14.09.2026: overflow-x:clip stand zuerst an .ueber. Das ist
     ein Kind der Bahn und damit 24px vom Bildschirmrand entfernt — die
     Zitatflaeche wurde an DIESER Kante abgeschnitten, links und rechts
     blieb ein weisser Streifen stehen. Der Schnitt gehoert an das
     erste Element, das ueber die volle Breite geht, hier der Abschnitt.
     clip statt hidden: hidden wuerde einen Scrollbereich erzeugen und
     senkrecht mit abschneiden. */
  #ueber-mich{overflow-x:clip}

  /* ----- Weissraum zwischen den Abschnitten -----
     14.09.2026. Drei Werte aus dem Desktopbuild liefen auf dem Handy
     unveraendert mit und ergaben zusammen bis zu 240px Leere zwischen
     zwei Abschnitten: 160px Innenabstand bei --sehr-luftig, 80px in den
     angehaengten Cremebaendern und 64px am --eng-unten darueber.
     Auf einem 844px hohen Bildschirm ist das ein Viertel Bildschirm
     ohne Inhalt. */
  .abschnitt--sehr-luftig{padding-top:56px}
  .abschnitt--eng-unten{padding-bottom:32px}
  /* Die Erfahrungen brauchen mehr Luft als die Galerie: darueber steht
     das Cremeband, und der Wechsel von farbiger auf weisse Flaeche
     wirkt ohne Abstand wie ein Schnitt. */
  #erfahrungen{padding-top:88px}
  .zitatband--angehaengt{padding-block:56px;margin-top:24px}
  /* "Jeder Hund ist anders" behaelt seine abgenommenen Werte: das Band
     hat zwei Absaetze und braucht die Hoehe, und der Abstand nach oben
     war dort schon auf 32px gesetzt. */
  .zitatband--zwei{padding-block:56px;margin-top:32px}
  /* "Ueberzeuge Dich selbst" gehoert dicht an die Stimmen darueber. */
  /* padding-block muss hier nochmal stehen: die Grundregel setzt es auf
     0, die Mobilregel .zitatband weiter oben zieht es wieder auf 80.
     Nach unten mehr als nach oben: darunter folgt ein Bildband, das
     sonst direkt am Knopf klebt. */
  .zitatband--weiss{padding-block:0;margin-block:64px 80px}

  /* Das Logo nimmt fast die volle Bahnbreite ein. Auf dem Rechner sind
     es 360px in einer 1200er Bahn, auf dem Handy waren es 274 von 342 —
     verhaeltnismaessig also deutlich kleiner als auf dem Rechner. */
  .instagram__logo{width:100%;max-width:320px}

  /* ----- Erfahrungen als Wischband -----
     Auf dem Handy standen die vier Karten untereinander und der
     Abschnitt war ueber 3000px lang. Jetzt eine Karte je Bildschirm,
     seitlich zu wischen, mit Punkten darunter.
     Der negative Aussenrand hebt das Band aus der Bahn heraus, damit es
     randlos laeuft; der Innenabstand setzt die Karte wieder auf die
     Bahnkante. scroll-padding sorgt dafuer, dass das Einrasten diesen
     Innenabstand mitrechnet.
     align-items:stretch (Standard) macht alle Karten gleich hoch — beim
     Wischen springt die Hoehe sonst bei jeder Karte. */
  /* FALLE 14.09.2026: justify-content:center steht in der Grundregel und
     wirkt bei Flex weiter. Sind die Karten zusammen breiter als der
     Container, laufen sie dadurch nach BEIDEN Seiten hinaus — die ersten
     beiden lagen ausserhalb und waren nicht zu erreichen, weil links von
     scrollLeft 0 nichts liegt. */
  .bewertungen{display:flex;justify-content:flex-start;
    gap:var(--abstand-standard);
    overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    margin-inline:calc(-1 * var(--abstand-standard));
    padding-inline:var(--abstand-standard);
    scroll-padding-inline:var(--abstand-standard);
    scrollbar-width:none;-ms-overflow-style:none;
    margin-top:var(--abstand-weit)}
  .bewertungen::-webkit-scrollbar{display:none}
  .bewertung{flex:0 0 calc(100vw - 2 * var(--abstand-standard));
    scroll-snap-align:start}
  .bewertungen__punkte{display:flex;margin-top:var(--abstand-weit)}

  /* Der Pflichthinweis ist ein Hinweis, keine Aussage: kleiner als der
     uebrige Kleintext und dicht an den Karten. 80px Abstand waren hier
     zu viel. */
  .bewertungen__echtheit{margin-top:20px;margin-bottom:32px;
    font-size:0.8125rem;line-height:1.5}

  /* ----- Kontakt -----
     Der Vorspann stand auf 1.4rem (22,4px) und lief fuenfzeilig ueber
     den halben Bildschirm. 1.125rem ist die Fliesstextgroesse — kleiner
     darf er nicht werden, sonst dreht sich die Rangordnung um. */
  #kontakt .kopf .lead{font-size:1.125rem;line-height:1.6;
    margin-top:var(--abstand-nah)}
  /* 11.10.2026 (Anita am Handy): Im Kontakt-Vorspann stand "E-Mail."
     allein in der zweiten Zeile, weil der feste Umbruch vor "Ich freue
     mich auf Dich!" noch vom frueheren, laengeren Text stammt. Der
     Umbruch ist jetzt auch am Handy aus (Tablet und Rechner waren es
     schon), balance verteilt den Satz auf zwei gleich lange Zeilen.
     Steht HIER und nicht oben beim allgemeinen Vorspann: die Grundregel
     "#kontakt .kopf .lead{...text-wrap:initial}" weiter oben in der Datei
     kaeme sonst spaeter und wuerde balance wieder aufheben. */
  #kontakt .kopf .lead br{display:none}
  #kontakt .kopf .lead{text-wrap:balance}
  /* FALLE: .kontakt ist ein Raster mit justify-items:center. Das Formular
     hat keine eigene Breite und wurde deshalb auf seine Inhaltsbreite
     geschrumpft — die Felder standen 46 statt 24px vom Rand. stretch
     zieht sie auf die volle Spaltenbreite. Die Visitenkarte darunter
     bleibt mittig, sie setzt das selbst. */
  .kontakt{justify-items:stretch}
  /* Das Nachrichtenfeld ist auf dem Rechner 195px hoch. Auf dem Handy
     schiebt das den Knopf unter die Bildschirmkante — man tippt seine
     Nachricht und sieht nicht, wie es weitergeht. 150px sind immer noch
     rund fuenf Zeilen, und das Feld laesst sich ziehen. */
  .kontakt__form textarea{min-height:150px}
  /* 8 statt 24px zwischen Feld und Knopf: beide gehoeren zusammen, und
     jeder Pixel entscheidet mit, ob der Knopf noch auf den Bildschirm
     passt. */
  .kontakt__absenden{margin-top:8px}

  /* ----- Fusszeile -----
     Auf dem Handy stehen die drei Rechtstexte im cremefarbenen Teil, im
     gelben Balken bleibt nur die Jahreszeile. So steht es im
     Figma-Mobilentwurf.
     Getrennte Flaechen lassen sich nicht per order tauschen, deshalb der
     Umweg: der Balken wird selbst cremefarben, seine beiden Kinder
     stehen in umgekehrter Reihenfolge (Links oben, Jahr unten), und die
     Jahreszeile bringt ihre gelbe Flaeche ueber die volle Breite selbst
     mit. Dafuer muss das Bahnpolster hier weg und an die Kinder
     wandern. */
  .fusszeile__oben .bahn{gap:8px;padding-block:32px 24px}
  .fusszeile__logo{width:220px}
  .fusszeile__instagram{margin-top:8px;width:44px;height:44px}

  .fusszeile__balken{background:var(--farbe-hervorhebung)}
  .fusszeile__balken .bahn{display:flex;flex-direction:column-reverse;
    align-items:stretch;gap:0;padding-inline:0;padding-block:0;
    min-height:0}
  /* 36 statt 24px zwischen den drei Links, damit sie mit dem Finger
     sicher zu treffen sind. Mehr geht nicht: die drei messen zusammen
     255px, bei 342px Bahn bleiben 87px fuer zwei Luecken. */
  .fusszeile__balken nav{gap:36px;
    padding:0 var(--abstand-standard) 20px}
  /* 05.10.2026 (Hitboxen-Pruefung, Fable): 11px statt 8 ergibt 44px
     Hoehe fuer die drei Rechtslinks, der Richtwert fuer Tippflaechen.
     Vorher 38. Sie stehen hier untereinander im Cremeteil, die 18px
     mehr Hoehe fallen nicht auf. */
  .fusszeile__balken a{padding-block:11px}
  .fusszeile__balken p{background:var(--farbe-signal);
    padding:12px var(--abstand-standard);text-align:center}
}

/* =========================================================
   RECHTSSEITEN UND FEHLERSEITE
   Nachgetragen 13.09.2026. Steht bewusst am Ende der Datei,
   damit .rechtstext die globalen Ueberschriften ueberschreibt.
   ========================================================= */

/* ---------- Rahmen der Rechtsseiten ----------
   Elementor setzt den Container dieser Seiten auf 1200px mit 100px
   Innenabstand RINGSUM (Tablet 60, Mobil 28). Der Text sitzt dadurch
   deutlich vom Rand ab, statt an der Bahnkante zu kleben. Genau so
   nachgebaut, deshalb eine eigene Klasse statt .abschnitt. */
.rechtsseite{padding-block:100px}
.rechtsseite .bahn{padding-inline:100px}
.rechtsseite--creme{background:var(--farbe-hervorhebung)}

/* ---------- Rechtstexte (Impressum, AGB, Datenschutz) ----------
   Groessen und Gewichte stammen aus dem Elementor-Build.
   EINE bewusste Abweichung: Elementor laesst den Text ueber die vollen
   1000px des Innenbereichs laufen. Das sind je nach Schriftgroesse 110
   bis 150 Zeichen pro Zeile, das Auge verliert beim Ruecksprung die
   Zeile. Hier 800px.
   Begrenzt wird dabei NUR der Fliesstext. Die Ueberschriften duerfen die
   vollen 1000px nutzen — derselbe Grundsatz wie auf der Startseite:
   Ueberschrift in wenigen Zeilen, eingeengt wird nur der Text darunter.
   Konkreter Anlass: "Dieses Impressum gilt auch fuer meine
   Social-Media-Kanaele" braucht rund 805px und brach sonst um. */
/* GEAENDERT 16.09.2026, zweiter Anlauf: der Deckel sass an den Absaetzen
   und liess rechts eine grosse Luecke stehen, waehrend Ueberschriften
   und Titel weiter ueber die volle Bahn liefen — es sah aus, als
   wuerde sich der Text nicht an die Fensterbreite anpassen.
   Jetzt haengt der Deckel am ganzen Textblock samt Titel, und der Block
   steht mittig in der Bahn. Damit ist der Abstand links und rechts
   gleich und nichts laeuft mehr aus der Reihe. */
.rechtstext p,
.rechtstext ul{max-width:none}
/* EINE Regel fuer alle drei Rechtstexte und alle Breiten, 16.09.2026.
   Vorher gab es feste Pixelwerte je Seite und je Geraet, und bei jeder
   Korrektur kippte es an einer anderen Stelle.
   Jetzt: alle drei Seiten haben dieselbe Schriftgroesse (16px) und
   denselben Deckel (720px). Das sind rund 80 Zeichen je Zeile.
   Bei 834 fuellt der Block die Bahn genau aus, darueber wachsen die
   Raender links und rechts gleichmaessig mit.
   Die Rechnung dahinter, damit sie nachvollziehbar bleibt: eine
   angenehme Zeile hat 65 bis 80 Zeichen. Bei 16px ist ein Zeichen im
   Schnitt 9px breit, 80 Zeichen brauchen also rund 720px. Wer die
   Spalte breiter will, muss die Schrift groesser machen — sonst werden
   die Zeilen laenger, nicht der Text lesbarer. */
.rechtstext,
.rechtstext-titel{max-width:720px;margin-inline:auto}
/* Ab 1025 darf der Text die Bahn ausnutzen (Anita, 16.09.2026): die
   Rechtstexte sind lang, und eine schmale Spalte macht die Seite
   unnoetig hoch. Den Abstand links und rechts gibt dann das
   Bahnpolster vor — 100px bei 1060, 220px bei 1440, weil die Bahn dort
   auf 1200 gedeckelt und mittig steht.
   Der Preis sind laengere Zeilen: 96 Zeichen bei 1060, 111 bei 1440.
   Das ist bewusst so entschieden, kuerzere Seite vor kuerzerer Zeile. */
@media (min-width:1025px){
  .rechtstext,
  .rechtstext-titel{max-width:none}
}

/* Die Ueberschrift steht bewusst AUSSERHALB des 800px-Blocks und nutzt
   die volle Breite des Innenbereichs — derselbe Grundsatz wie bei H2 auf
   der Startseite: die Ueberschrift soll in wenigen Zeilen laufen,
   eingeengt wird nur der Fliesstext darunter.
   4rem ist Elementors Wert fuer die Impressumsseite, Mobil 2.6rem. */
/* 3.4 statt 4rem, aus demselben Grund wie die Fliesstextgroesse. */
.rechtstext-titel{font-size:3.4rem;line-height:1.2;font-weight:400;
  letter-spacing:-.02em;margin-bottom:var(--abstand-weit)}
/* Fangnetz fuer sehr schmale Geraete (320px): Die Ueberschriften der
   Rechtsseiten bestehen aus langen Komposita —
   "Geschäftsbedingungen", "Stornierungsbedingungen",
   "Verbraucherstreitbeilegung". Passt so ein Wort nicht in eine Zeile,
   schiebt es sonst die ganze Seite seitlich auf. break-word greift
   NUR in diesem Fall und trennt ohne Bindestrich; bei 360px und
   darueber aendert sich nichts. Getrennt wird auf dieser Website
   sonst nicht. */
.rechtstext-titel,.rechtstext h2,.rechtstext h3,
.rechtstext p,.rechtstext li{overflow-wrap:break-word}

/* Lora SemiBold in Schriftfarbe, NICHT in der Akzentfarbe wie sonst.
   Rechtstexte sollen leise sein. */
.rechtstext h2{font-family:var(--schriftart-serif);font-size:1.75rem;
  font-weight:600;line-height:1.38;color:var(--farbe-schrift);
  margin-top:var(--abstand-weit);margin-bottom:var(--abstand-eng)}

/* Zwischenebene in Inter Bold, damit sie sich klar von der Lora-Ebene
   darueber absetzt. */
.rechtstext h3{font-family:var(--schriftart-sans);font-size:1.2rem;
  font-weight:700;line-height:1.6;color:var(--farbe-schrift);
  margin-top:var(--abstand-standard);margin-bottom:var(--abstand-eng)}

/* Fliesstext in normaler Groesse. Im Elementor-Build hat das Impressum
   keine eigene Typografie und faellt damit auf die globale Textgroesse
   zurueck: Inter 1.125rem. */
/* 16 statt 18px (Anita, 16.09.2026): das Impressum wirkte neben AGB und
   Datenschutz (14.4px) viel zu wuchtig. Eine Stufe dazwischen — kleiner
   und ruhiger, aber nicht so fein wie die langen Rechtstexte. */
.rechtstext p,
.rechtstext li{font-size:1rem;
  line-height:var(--fliesstext-hoehe);
  letter-spacing:var(--fliesstext-laufweite)}
.rechtstext p{margin-bottom:var(--abstand-nah)}
.rechtstext ul{list-style:disc;margin-bottom:var(--abstand-nah);
  padding-left:1.5rem}
.rechtstext li{margin-bottom:var(--abstand-eng)}
.rechtstext>*:last-child{margin-bottom:0}
.rechtstext a{color:var(--farbe-schrift);text-decoration:underline;
  text-underline-offset:3px;
  /* In der Datenschutzerklaerung stehen ausgeschriebene Adressen, die
     laenger sind als ein Handybildschirm. Ohne diese Zeile schiebt eine
     einzige davon die ganze Seite auf 492px auf. Gefunden 14.09.2026. */
  overflow-wrap:anywhere}
.rechtstext a:hover{color:var(--farbe-akzent)}

/* Lange Rechtstexte: AGB und Datenschutz. Dort setzt Elementor den
   Fliesstext ausdruecklich auf 0.9rem und die Ueberschrift auf 3rem —
   anders als im kurzen Impressum. Das ist bei der Textmenge auch
   richtig, sonst scrollt man ewig. */
.rechtstext--lang p,
.rechtstext--lang li{letter-spacing:.02em}
/* GEAENDERT 16.09.2026: die langen Texte standen auf 14.4px und damit
   als einzige kleiner als alles andere. Jetzt 16px wie das Impressum —
   eine Schriftgroesse fuer alle drei Rechtstexte, eine Spaltenbreite,
   keine Sonderfaelle mehr. Der Titel bleibt kleiner als beim
   Impressum, die Seiten sind lang genug. */
.rechtstext--lang p,
.rechtstext--lang ul{max-width:none}
.rechtstext-titel--lang{font-size:3rem;line-height:1.4;
  letter-spacing:normal}

/* Zulassung nach § 11 TierSchG im Impressum. Der Block ist fertig
   gebaut und haengt am Schalter Zulassung § 11 (Klasse p11-mit,
   Regel ganz am Ende dieser Datei). Der fruehere Schalter
   data-zulassung ist am 04.10.2026 darin aufgegangen. */

/* Offene Punkte im Text. Faellt beim Durchlesen auf und wird vor dem
   Livegang ersetzt. Sucht sich leicht: Klasse .luecke. */
/* ERGAENZT 13.09.2026: Diese Regel galt bisher NUR innerhalb von
   .rechtstext. Ueberall sonst sah eine .luecke aus wie normaler Text —
   Platzhalter waren dort also unsichtbar und haetten beim Livegang
   leicht mit hochgehen koennen. Jetzt gilt sie allgemein. */
.luecke{background:var(--farbe-signal);
  border-left:4px solid var(--farbe-akzent);
  padding:var(--abstand-nah)}
.rechtstext .luecke{margin-bottom:var(--abstand-nah)}

/* ---------- Fehlerseite ----------
   Ein Foto in der Doggery-Fotoform, Ueberschrift, zwei Zeilen Text,
   ein Knopf. Alles mittig, so wie im Elementor-Template 746. */
.fehler{text-align:center;padding-bottom:140px;
  background:var(--farbe-hervorhebung)}
.fehler .bahn{display:grid;justify-items:center;gap:36px}
/* Das Motiv ist hochformatig, die Fotoform fast quadratisch. Deshalb
   quadratisch zugeschnitten geliefert statt hier per object-fit
   beschnitten — sonst faellt dem Hund die Schnauze weg. */
.fehler__bild{width:360px;max-width:80%;height:auto;
  -webkit-mask-image:var(--shape-foto);mask-image:var(--shape-foto);
  -webkit-mask-size:100% 100%;mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
/* Lora Bold, so steht es im Elementor-Template. Sonst ist H1 Inter.
   Groesse ebenfalls aus Elementor: 3rem statt der globalen 3.7rem,
   Zeilenhoehe 1.4. Tablet 2.5rem, Mobil 2rem, siehe unten. */
.fehler h1{font-family:var(--schriftart-serif);font-weight:700;
  font-size:3rem;line-height:1.4;letter-spacing:normal}
.fehler p{margin:0}
/* Pfote hinter der Ueberschrift. Groesse in em, damit sie auf Tablet und
   Mobil mit der kleineren Ueberschrift mitschrumpft. Die Farbe kommt
   ueber color, das Symbol traegt fill="currentColor". */
.fehler__pfote{display:inline-block;width:.72em;height:.72em;
  margin-left:.18em;color:var(--farbe-akzent);
  vertical-align:baseline}
/* Der Knopf hat im Elementor-Build 18/70 — hoch wie ein Handlungsaufruf,
   breit wie ein weiterfuehrender Knopf. Einziger Knopf auf der Seite. */
.fehler .btn{padding:18px 70px}

/* ---------------------------------------------------------
   SEITE "NACHRICHT ERHALTEN" (danke.html), 15.09.2026
   Aufbau wie die Fehlerseite — mittig, Bild in der Fotoform,
   H1 in Lora — aber mit eigenen Klassen: die beiden Seiten
   sagen Verschiedenes und sollen sich getrennt aendern lassen.
   Der cremefarbene Grund ist derselbe. */
.danke{text-align:center;padding-bottom:140px;
  background:var(--farbe-hervorhebung)}
.danke .bahn{display:grid;justify-items:center;gap:28px}
.danke__bild{width:300px;max-width:70%;height:auto;
  -webkit-mask-image:var(--shape-foto);mask-image:var(--shape-foto);
  -webkit-mask-size:100% 100%;mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.danke h1{font-family:var(--schriftart-serif);font-weight:700;
  font-size:3rem;line-height:1.4;letter-spacing:normal;max-width:20ch}
.danke p{margin:0;max-width:34rem}
.danke__pfote{display:inline-block;width:.72em;height:.72em;
  margin-left:.18em;color:var(--farbe-akzent);
  vertical-align:baseline}
/* Der Spam-Hinweis ist Nebensache, nicht die Botschaft der Seite.
   Deshalb kleiner und leiser als der Satz darueber — aber nicht
   versteckt, er ist der Grund, warum eine Antwort scheinbar ausbleibt.
   Die Selektoren unten sind doppelt geschrieben (.danke .danke__spam),
   weil .danke p{margin:0} sonst genauer waere und jeden Abstand hier
   wieder totschlagen wuerde. */
.danke .danke__spam{font-size:var(--klein-groesse);
  line-height:var(--klein-hoehe);color:var(--farbe-akzent);
  margin-top:calc(-1 * var(--abstand-nah))}
/* Die Ueberleitung gehoert zu den Knoepfen, nicht zum Text darueber.
   Groesser als der Fliesstext (1.25rem statt 1.125) und mit deutlich
   Luft zu den Knoepfen — Anitas Wunsch vom 15.09.2026. */
.danke .danke__weiter{margin-top:var(--abstand-nah);font-weight:700;
  font-size:1.25rem}
/* Auf dem Rechner sind beide Knoepfe gleich breit. Dafuer ein Raster
   mit zwei 1fr-Spalten: in einem Container, der sich nach seinem Inhalt
   richtet, nehmen beide Spalten die Breite des groesseren Knopfes an —
   das rechnet der Browser selbst aus, es steht nirgends eine Zahl.
   40px dazwischen; dicht nebeneinander lasen sich die beiden Flaechen
   wie ein Balken. */
.danke__aktionen{display:grid;grid-template-columns:repeat(2, 1fr);
  justify-content:center;gap:40px;margin-top:4px}
.danke__aktionen .btn{padding-inline:36px}
.danke .danke__zurueck{margin-top:var(--abstand-nah)}
.danke__zurueck a{color:inherit;text-decoration:underline;
  text-underline-offset:3px}
.danke__zurueck a:hover,
.danke__zurueck a:focus-visible{color:var(--farbe-akzent)}

@media (max-width:1024px){
  .rechtsseite{padding-block:67px}
  .rechtsseite .bahn{padding-inline:60px}
  .rechtstext-titel{font-size:3rem}
  .rechtstext-titel--lang{font-size:2.6rem}
  .fehler h1{font-size:2.5rem}
  .danke h1{font-size:2.5rem}
}

@media (max-width:767px){
  .rechtsseite{padding-block:34px 64px}
  .rechtsseite .bahn{padding-inline:28px}
  .rechtstext-titel{font-size:2.6rem}
  /* KORRIGIERT 15.09.2026: Der Seitentitel von AGB und
     Datenschutzerklaerung stand mobil auf 1.7rem (27,2px) in Inter 400
     — und damit optisch UNTER der ersten Zwischenueberschrift, die in
     Lora SemiBold 24px laeuft. Auf dem Rechner faellt das nicht auf, da
     ist der Titel 3rem.
     Mehr als 1.8rem geht nicht: "Geschäftsbedingungen" misst dann 324px
     bei 334px Spalte, ab 1.9rem laeuft es seitlich aus der Seite
     heraus. (Getrennt wird nicht, das ist eine Grundsatzentscheidung.)
     Gemessen 15.09.2026 — wer den Wert erhoeht, muss beide Titel
     nachmessen: "Geschäftsbedingungen" und "Datenschutzerklärung". */
  .rechtstext-titel--lang{font-size:1.8rem}
  /* 05.10.2026 (Anita): Zwischenueberschriften eine Stufe kleiner,
     1.375rem statt 1.5. Bleibt unter dem Seitentitel (1.8rem).
     Was trotzdem nicht in die Zeile passt ("Verbraucherstreitbeilegung"
     liess nur das g umbrechen), verkleinert js/site.js je Ueberschrift
     so weit, bis das laengste Wort passt. */
  .rechtstext h2{font-size:1.375rem}
  /* ENTSCHIEDEN 05.10.2026 (Anita, am Handy): Silbentrennung im
     Fliesstext der Rechtsseiten, nur unter 768px. Das hebt die
     Entscheidung vom 15.09. ("grundsaetzlich raus") fuer genau diese
     Stelle auf: bei 334px Spalte liess der Flattersatz der AGB rechts zu
     viel Platz. Getrennt werden nur lange Woerter (ab 12 Buchstaben,
     mindestens 5 davor und 4 danach), kurze bleiben ganz.
     Ueberschriften sind weiter ausgenommen. Braucht lang="de" am html. */
  .rechtstext p,
  .rechtstext li{-webkit-hyphens:auto;hyphens:auto;
    -webkit-hyphenate-limit-before:5;-webkit-hyphenate-limit-after:4;
    hyphenate-limit-chars:12 5 4}
  /* ENTSCHIEDEN 15.09.2026 (Anita): Alle drei Rechtsseiten laufen auf
     dem Handy im Fliesstext auf 16px.
     Fuer AGB und Datenschutz ist das eine Vergroesserung (Elementor
     gibt dort 14,4px vor, bei rund 55 Zeichen je Zeile liest sich 16
     deutlich ruhiger), fuer das Impressum eine Verkleinerung (es fiel
     auf die globalen 18px zurueck und wirkte dadurch aufgeblasen).
     Auf dem Rechner bleibt beides wie es war: dort ist die Spalte
     breit, und bei der Textmenge von AGB und Datenschutz waeren 16px
     erschlagend. */
  .rechtstext p,
  .rechtstext li{font-size:1rem;line-height:1.6}
  .fehler h1{font-size:2rem}
  .fehler{padding-bottom:var(--abstand-abschnitt)}
  .fehler .btn{padding:18px 30px}
  /* Danke-Seite auf dem Handy: gleiche Stufen wie die Fehlerseite.
     Die zwei Knoepfe stehen untereinander und nutzen die volle Bahn —
     nebeneinander waeren sie bei 342px je 163px breit, und
     "Kennenlerngespraech buchen" braucht mehr. */
  .danke h1{font-size:2rem}
  /* Weniger Luft ueber dem Bild als der Abschnittsstandard: die Seite
     hat nur wenig Inhalt, und der soll gleich zu sehen sein, ohne zu
     scrollen. Anitas Wunsch vom 15.09.2026. */
  .danke{padding-top:16px;padding-bottom:var(--abstand-abschnitt)}
  .danke .bahn{gap:20px}
  /* Das Bild ist auf dem Handy 200px statt 239 (70 Prozent der Bahn).
     Grund: "Zurueck zur Startseite" soll ohne Scrollen zu sehen sein.
     Anitas Wunsch vom 15.09.2026. */
  .danke__bild{width:200px;max-width:60%}
  /* Die Ueberleitung: mehr Luft darueber, dichter an den Knoepfen — und
     18px statt 20, weil sie nur so in eine Zeile passt. Nachgemessen:
     bei 18px misst der Satz 327px, bei 19px schon 344 und damit mehr
     als die 342px Bahnbreite. Wer den Text aendert, muss nachmessen. */
  .danke .danke__weiter{margin-top:24px;font-size:1.125rem}
  /* Auf dem Handy stehen die beiden Knoepfe NEBENEINANDER (Anita,
     15.09.2026 — untereinander gefiel ihr nicht). Moeglich nur mit der
     kurzen Beschriftung "Gespraech buchen" und einem Instagram-Knopf,
     der auf die Zeichenflaeche zusammenschrumpft.
     62px ist die Hoehe des dunklen Knopfes; der quadratische steht
     damit genau so hoch. Die Beschriftung ist ausgeblendet, nicht
     entfernt — der Link behaelt sie ueber aria-label. */
  .danke__aktionen{display:flex;flex-wrap:nowrap;justify-content:center;
    align-items:center;gap:24px;margin-top:0}
  /* Der dunkle Knopf nimmt, was nach dem quadratischen und der Luecke
     uebrig bleibt: 342 - 62 - 24 = 256, davon 240 genutzt. */
  .danke__aktionen .btn{padding-inline:28px}
  .danke__aktionen .btn--dunkel{min-width:240px}
  .danke__insta-text{display:none}
  /* Doppelt geschrieben, sonst schlaegt .danke__aktionen .btn oben das
     padding:0 und im 62px-Knopf bleiben nur 6px fuer das Zeichen. */
  .danke__aktionen .danke__insta{width:62px;height:62px;padding:0;
    flex:0 0 auto}
  /* Ohne Beschriftung wirkt das 22px-Zeichen in der 62px-Flaeche
     verloren. 28px ist dieselbe Groesse wie im Fusszeilen-Knopf. */
  .danke__insta .btn__zeichen{width:28px;height:28px}
}

/* =========================================================
   KONTAKTSEITE
   Werte aus dem Elementor-Build (Seite 37), Sichtpruefung 13.09.2026.
   ========================================================= */

/* Das Skyline-Band oben. Gleiche Hoehe wie die Baender der Startseite,
   nur ohne Siegel. Tablet 200, Mobil 150 — Werte aus Elementor. */
.band--kontakt img{height:400px;object-position:center center}

/* Kopf: 67px unter dem Band, 27px zwischen Ueberschrift und Vorspann. */
.kontaktseite__kopf{padding-top:67px}
/* Der Vorspann darf die volle Breite nutzen. Auf 46rem begrenzt brach er
   in zwei kurze Zeilen um und wirkte gequetscht. */
.kontaktseite__kopf .lead{margin-top:27px;font-size:1.3rem;max-width:none;
  text-wrap:initial}
/* H1 in der Akzentfarbe, wie die Abschnittsueberschriften der Startseite.
   Lora Bold, nicht das globale Inter — Groesse aus dem Elementor-Build. */
.kontaktseite__titel{font-family:var(--schriftart-serif);font-weight:700;
  font-size:3.3rem;line-height:1.4;letter-spacing:normal;
  color:var(--farbe-akzent)}

/* ---------- Infos ----------
   Zwei Spalten, 47px unter dem Kopf, 30px Innenabstand ringsum.
   Beide Spalten sind gleich hoch (Raster-Standard), und in beiden wird
   die Knopfzeile per margin-top:auto nach unten geschoben. Dadurch
   stehen die zwei Knoepfe immer auf einer Linie, egal wie lang die
   Texte werden — kein nachgemessener Zahlenwert noetig. */
/* 80 statt 47: mehr Luft zwischen dem Vorspann und dem Personenblock
   (Anita, 16.09.2026). */
.kontaktseite__infos{padding-top:80px}
/* NEU ANGEORDNET 16.09.2026. Vorher zwei Spalten: links Titel, Foto und
   Anschrift, rechts die Karte. Anitas Anordnung jetzt untereinander und
   mittig, auf allen Breiten gleich:
     Foto | Anschrift und E-Mail   (als Gruppe mittig)
     Kennenlern-Knopf              (mittig)
     Ueberschrift                  (mittig)
     Karte                         (mittig, hoechstens 520px)
     Instagram-Knopf | Maps-Knopf  (nebeneinander)
   Eine Anordnung fuer alle Geraete statt drei verschiedene — die
   Kontaktseite hat wenig Inhalt, da bringt ein Spaltenlayout nichts
   ausser Sonderregeln. */
.infos{display:flex;flex-direction:column;align-items:center;
  gap:var(--abstand-standard);text-align:center}
.infos__person{display:grid;grid-template-columns:auto auto;
  gap:32px;align-items:start;text-align:left}
.infos__portraet{width:140px;height:auto;aspect-ratio:1;object-fit:cover;
  border-radius:50%;background:var(--farbe-signal)}
.infos__daten>*{margin:0}
.infos__adresse{line-height:1.6}
/* Eine Leerzeile zwischen Anschrift und E-Mail (Anitas Wunsch). */
.infos__email{margin-top:1.6em !important}
/* 32px unter dem Personenblock, damit sich der dunkle Knopf davon
   loest (Anita, 16.09.2026). */
.infos__aktion{margin:32px 0 0}
/* Dunkel, nicht in der Akzentfarbe: die globale h2-Regel faerbt
   Ueberschriften orange, hier sollen sie ruhig bleiben. Die Klasse
   traegt auch "Hinterlasse mir eine Nachricht" im Formularabschnitt,
   deshalb haengt der Abstand nach oben am Infoblock und nicht an der
   Klasse selbst. */
.infos__titel{font-family:var(--schriftart-serif);font-size:1.9rem;
  line-height:1.3;font-weight:600;color:var(--farbe-schrift);margin:0}
/* 72 statt 32: die Kartenueberschrift faengt einen neuen Gedanken an,
   sie braucht mehr Luft als der Knopf darueber. */
.infos>.infos__titel{margin-top:72px}
.infos__karte{display:flex;flex-direction:column;align-items:center;gap:6px;
  width:100%}
.infos__karte-bild{width:100%;max-width:600px;height:auto}
.infos__quelle{margin:0;width:100%;max-width:600px;text-align:right;
  font-size:.8125rem;color:var(--farbe-schrift-leise)}
/* Links der Maps-Knopf, rechts das Instagram-Zeichen mit Text daneben.
   align-items:center bringt beide auf eine Mittellinie, obwohl der
   Knopf hoeher ist als die Zeile. */
.infos__karte-aktion{display:flex;flex-wrap:wrap;justify-content:center;
  align-items:center;gap:32px;margin:var(--abstand-standard) 0 0}
.infos__karte-aktion .btn{padding-inline:28px}
.infos__instagram{display:inline-flex;align-items:center;gap:15px}
.infos__instagram .fusszeile__instagram{margin-top:0;flex:0 0 auto}
.infos__instagram a[aria-label]{text-decoration:none}
/* 05.10.2026 (Anita, am Handy): Die Instagram-Zeile gehoert auf dem Handy
   zum Personenblock, nicht unter den Maps-Knopf. Weil sie am Rechner
   rechts neben dem Maps-Knopf unter der Karte steht, gibt es sie im HTML
   zweimal: einmal im Personenblock (--oben, nur unter 768 sichtbar) und
   einmal unter der Karte (ab 768). So stimmt die Lesereihenfolge auf
   beiden Geraeten mit dem Bild ueberein. */
.infos__instagram--oben{display:none;margin:0}
/* Die E-Mail-Adresse ist ein Link, soll aber nicht blau und
   unterstrichen sein wie ein Fliesstextlink. War vorher an
   .infos__spalte geknuepft — die Klasse gibt es seit dem Umbau nicht
   mehr. */
.infos a:not(.btn){color:var(--farbe-schrift);text-decoration:none}
.infos a:not(.btn):hover,
.infos a:not(.btn):focus-visible{color:var(--farbe-akzent)}

/* Auf dem Rechner bleibt es beim urspruenglichen Aufbau: links Titel,
   Foto mit Anschrift und der Kennenlern-Knopf, rechts die Karte ueber
   die volle Hoehe. Die neue Anordnung untereinander gilt nur bis 1024,
   wo zwei Spalten zu eng werden. Anitas Korrektur vom 16.09.2026.
   Der Instagram-Hinweis steht seit dem Umbau unter der Karte statt in
   der linken Spalte — das ist der einzige Unterschied zu frueher. */
@media (min-width:1025px){
  .infos{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    column-gap:var(--abstand-block);align-items:start;text-align:left}
  .infos__titel{grid-column:1;grid-row:1}
  .infos>.infos__titel{margin-top:0}
  .infos__person{grid-column:1;grid-row:2;justify-content:start;
    margin-top:var(--abstand-weit)}
  .infos>.infos__aktion{grid-column:1;grid-row:3}
  .infos__karte{grid-column:2;grid-row:1 / span 3;align-items:stretch}
  .infos__karte-bild,.infos__quelle{max-width:none}
  .infos__karte-aktion{justify-content:flex-start}
}



/* Links mitten im Fliesstext — Datenschutzhinweis und die Adresse in der
   Fehlermeldung. Ebenfalls in Schriftfarbe, aber DAUERHAFT unterstrichen:
   im laufenden Satz braucht ein Link ein Signal, und ohne Farbe bleibt
   nur die Unterstreichung. Orange erst beim Ueberfahren. */
.nachricht__datenschutz a,
.meldung a:not(.btn){color:var(--farbe-schrift);text-decoration:underline;
  text-underline-offset:3px}
.nachricht__datenschutz a:hover,
.nachricht__datenschutz a:focus-visible,
.meldung a:not(.btn):hover,
.meldung a:not(.btn):focus-visible{color:var(--farbe-akzent)}

/* ---------- Nachricht ----------
   90px unter den Infos. Formular ueber die volle Inhaltsbreite: auf
   760px begrenzt stand es verloren neben dem breiten Rest der Seite. */
.kontaktseite__nachricht{padding-top:90px;
  padding-bottom:var(--abstand-maximal)}
.kontaktseite__nachricht .kopf{text-align:left}
.nachricht__vorspann{margin-top:var(--abstand-eng)}
.nachricht__form{margin-top:var(--abstand-weit)}
/* Zwei Felder nebeneinander, wie in Elementor (je 50% Breite). */
.nachricht__reihe{display:grid;grid-template-columns:1fr 1fr;gap:15px}
/* Steht direkt am Nachrichtenfeld, dicht darunter. */
/* Lesebreite, 16.09.2026: lief ueber die volle Formularbreite, bei 1440
   sind das 1200px und 103 Zeichen je Zeile. */
.nachricht__datenschutz{margin-top:var(--abstand-minimal);max-width:44rem}
.nachricht__senden-zeile{margin-top:var(--abstand-standard)}

/* Honigtopf: fuer Menschen unsichtbar, fuer Bots ein normales Feld.
   Nicht display:none — manche Bots erkennen das und lassen es aus. */
.honigtopf{position:absolute;left:-9999px;width:1px;height:1px;
  overflow:hidden}

/* Meldungen nach dem Absenden. Erfolg in Signalgelb wie die uebrigen
   Hinweise, Fehler in der Fehlerfarbe. */
/* GEAENDERT 16.09.2026 (Anita): kompakter. Der Text lief in der
   Fliesstextgroesse von 18px ueber zwei Zeilen und der Kasten war 90px
   hoch — fuer eine Fehlermeldung zu viel Gewicht. Jetzt 15px, weniger
   Innenabstand und weniger Abstand nach oben, damit er dicht am
   Datenschutzhinweis darueber steht. Gilt auf allen Seiten, die
   Meldung ist ueberall dieselbe. */
/* Text mittig (Anita, 16.09.2026): die Meldung steht ueber die volle
   Formularbreite, linksbuendig sah sie darin verloren aus. */
.meldung{margin-top:12px;padding:12px var(--abstand-nah);
  border-radius:var(--rundung-meldung);
  font-size:0.9375rem;line-height:1.5;text-align:center;
  border-left:4px solid var(--farbe-akzent);
  background:var(--farbe-signal)}
/* GEAENDERT 15.09.2026 (Anita): Die Fehlermeldung war ein fast weisser
   Kasten auf weissem Grund, nur die Kante links war farbig — man sah sie
   praktisch nicht. Jetzt die ganze Flaeche im Fehlerorange mit weisser
   Schrift, damit sie auffaellt.
   Der Erfolg bleibt gelb: die zwei Zustaende sollen sich unterscheiden.
   NACHGEZOGEN 15.09.2026: Der Grund ist #C1562A statt --farbe-fehler
   (#D76737). Weiss auf dem helleren Ton hatte 3,57:1 Kontrast, die Norm
   verlangt bei 18px regulaerer Schrift 4,5:1. #C1562A liegt bei 4,53:1
   und sieht praktisch gleich aus. Wer die Farbe aendert, muss den
   Kontrast gegen Weiss nachrechnen. */
.meldung--fehler{background:#c1562a;border-left-color:#a8481f;
  color:#fff}
.meldung--fehler a:not(.btn){color:#fff}
.meldung--fehler a:not(.btn):hover,
.meldung--fehler a:not(.btn):focus-visible{color:#fff;
  text-decoration-thickness:2px}
/* ENTFERNT 15.09.2026: .meldung__pfote. Die Regel gehoerte zur
   Inline-Dankesmeldung auf der Kontaktseite; der Erfolgsfall laeuft
   jetzt ueber danke.html. Die Pfote hinter der Ueberschrift dort ist
   .danke__pfote, die auf der Fehlerseite .fehler__pfote. */

@media (max-width:1024px){
  .band--kontakt img{height:200px}
  .kontaktseite__titel{font-size:2.8rem}
  /* Einspaltig gibt es keine gemeinsame Linie mehr, dann darf der Knopf
     dicht an seinem Block bleiben. */
  .infos__aktion{margin-top:0}
  .kontaktseite__nachricht{padding-bottom:var(--abstand-abschnitt)}
}

@media (max-width:767px){
  .band--kontakt img{height:150px}
  .kontaktseite__titel{font-size:2.4rem;line-height:1.2}
  .infos__titel{font-size:1.7rem}
  /* KORRIGIERT 14.09.2026: Der Innenabstand des Infoblocks (Desktop 30,
     mobil 15) kam zur Bahn obendrauf. Ueberschrift, Portraet und
     Adresse begannen dadurch 39px vom Rand, die Formularfelder
     darunter aber bei 24 — zwei Kanten auf derselben Seite. Auf dem
     Handy gibt es den Zusatz nicht mehr. */
  .infos{padding:0}
  .infos__instagram--oben{display:inline-flex}
  .infos__karte-aktion .infos__instagram{display:none}
  /* Der Knopf loest sich etwas von der Instagram-Zeile darueber:
     20px Raster plus 12 macht 32. */
  .infos__aktion{margin-top:12px}
  .kontaktseite__kopf{padding-top:40px}
  /* Luft vor "Hinterlasse mir eine Nachricht". Die Abstaende der Seite
     sind gestaffelt: 32 zwischen Zeile und Knopf, 72 vor der
     Kartenueberschrift, 96 beim Abschnittswechsel. Vorher waren es
     124 — das war Anita zu weit.
     Der Wert ist hier die ganze Luecke: der Infoblock hat unten kein
     Polster. */
  .kontaktseite__nachricht{padding-top:96px}
  /* Luft unter dem Absendeknopf, bevor die Fusszeile anfaengt —
     derselbe Wert wie unter dem letzten Knopf der Betreuungsseiten. */
  .kontaktseite__nachricht{padding-bottom:96px}
  /* Der Datenschutzhinweis am Nachrichtenfeld ist ein Hinweis, keine
     Aussage: 13px wie der Echtheitshinweis bei den Bewertungen, das
     Kleinste, was auf der Seite vorkommt. .klein waeren 14,4px. */
  .nachricht__datenschutz{font-size:0.8125rem;line-height:1.5}
  .nachricht__reihe{grid-template-columns:1fr}
}

/* =========================================================
   SEITE "DAS ERWARTET DEINEN HUND" (ueber-doggery.html)
   Werte aus dem Elementor-Build (Seite 35), 13.09.2026.
   ========================================================= */

/* Kopf: 76px unter dem Band, 27px zwischen Ueberschrift und Vorspann. */
.werte-kopf{padding-top:76px}
.werte-kopf .lead{margin-top:27px;font-size:1.3rem;max-width:none;
  text-wrap:initial}
/* H1 Lora Bold 3.7rem, Akzentfarbe wie auf der Kontaktseite. */
.werte-titel{font-family:var(--schriftart-serif);font-weight:700;
  font-size:3.7rem;line-height:1.3;letter-spacing:normal;
  color:var(--farbe-akzent)}

/* ---------- Werdegang und Werte ----------
   Zwei Spalten, 100px Abstand, 105px unter dem Kopf. Die Knopfzeilen
   werden per space-between nach unten geschoben, damit beide Knoepfe auf
   einer Linie sitzen. Kein margin-top:auto — das schluckt den freien
   Platz und space-between haette dann nichts mehr zu verteilen. */
.werte-block{padding-top:105px}
.werte-raster{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.werte-spalte{display:flex;flex-direction:column;
  justify-content:space-between;gap:var(--abstand-standard)}
.werte-spalte>*{margin:0}
/* Lora SemiBold 2.6rem, in Schriftfarbe. Elementor-Werte. */
.werte-h2{font-family:var(--schriftart-serif);font-size:2.6rem;
  font-weight:600;line-height:1.38;color:var(--farbe-schrift)}
/* "Mein Werdegang" und "Meine Werte" stehen in der Akzentfarbe, Wunsch
   vom 13.09.2026. "Eindruecke aus der Betreuung" weiter unten bleibt
   bewusst dunkel: die zwei Spalten bilden zusammen einen Abschnitt, die
   Galerie darunter ist ein eigener. */
.werte-h2--akzent{color:var(--farbe-akzent)}
/* Ueberschrift und der Text darunter gehoeren zusammen und stecken
   deshalb in einer Gruppe. Ohne sie verteilt space-between den freien
   Platz gleichmaessig auf ALLE Zwischenraeume der Spalte — dann rutscht
   der Text weit unter seine Ueberschrift. 12px, bewusst enger als der
   Normalfall von 24px. */
.werte-gruppe{display:grid;gap:12px}
.werte-text p{margin:0 0 var(--abstand-nah)}
.werte-text p:last-child{margin-bottom:0}
.werte-signatur{font-family:var(--schriftart-serif);font-style:italic}
.werte-aktion{margin:0;align-self:center}
/* Der Knopf ist hier 18/60, nicht 18/52 wie im Hero. Elementor-Wert. */
.werte-btn-hoch{padding:18px 60px}

/* Portraet in der Doggery-Fotoform, volle Spaltenbreite. */
.werte-foto{width:100%;height:auto;aspect-ratio:1;object-fit:cover;
  -webkit-mask:var(--shape-foto) center/contain no-repeat;
          mask:var(--shape-foto) center/contain no-repeat}
/* Jeder Wert ist ein Block aus fetter Zeile und Erklaerung. Damit man
   auf einen Blick sieht, was zusammengehoert, ist der Abstand ZWISCHEN
   den Bloecken groesser als der INNERHALB. Elementor hatte hier ueberall
   dieselben 11px — dadurch verschwamm die Gliederung.
   Zwei Spalten statt Flex: das Zeichen steht in einer eigenen Spalte,
   die zweite Zeile laeuft daneben weiter und nicht darunter. */
.werte-liste{gap:26px}
/* ENGER 15.09.2026 (Anita): 18px zwischen Haken und Text waren zu weit,
   der Text wirkte losgeloest vom Zeichen. Und der erklaerende Satz sass
   3px unter seiner fetten Zeile — jetzt 1px, er gehoert dicht dran.
   Gilt auch auf Desktop. */
.werte-liste li{display:grid;grid-template-columns:auto 1fr;
  column-gap:12px;align-items:start}
.werte-liste li strong{display:block;margin-bottom:1px}
/* Das Zeichen sitzt auf der Grundlinie der ersten Zeile, nicht an der
   Oberkante des Textkastens. */
.werte-liste .icon{margin-top:.18em}

/* Abschluss der rechten Spalte: Frage und Knopf. justify-items zentriert
   waagerecht — align-self haette hier nur senkrecht gewirkt, deshalb sass
   der Knopf vorher links. Der Abstand nach oben trennt den Abschluss von
   der Werteliste. */
.werte-abschluss{display:grid;justify-items:center;
  gap:var(--abstand-standard);margin-top:var(--abstand-standard)}
.werte-frage{margin:0;text-align:center;font-size:1.2rem;
  text-wrap:balance}
/* Beide Knoepfe der zwei Spalten gleich hoch. Der dunkle ist von Haus aus
   62px, der weiterfuehrende 54px — nebeneinander sah das schief aus. */
.werte-spalte .btn{min-height:62px;justify-content:center}

/* ---------- Fortbildungen ----------
   Cremeband, 112px darunter, 70px Innenabstand. Die vier Eintraege
   stehen nebeneinander und brechen um, wenn es eng wird. */
/* 160px statt 112px: das Cremeband braucht mehr Luft nach oben, sonst
   klebt es an den Knoepfen der zwei Spalten. Wunsch vom 13.09.2026. */
.fortbildungen{margin-top:160px;padding-block:70px;
  background:var(--farbe-hervorhebung)}
.fortbildungen__titel{font-family:var(--schriftart-serif);font-size:2rem;
  font-weight:600;line-height:1.38;color:var(--farbe-akzent);
  text-align:center}
/* Raster statt Flex, geaendert 13.09.2026: die vier Kurse sollen auf dem
   Rechner nebeneinander in EINER Reihe stehen. Mit Flex und Umbruch
   landete der vierte allein in der zweiten Zeile, weil vier Spalten zu
   je 260px nicht in die 1000px breite Bahn passen. Feste Spaltenzahl
   loest das: die Spalten teilen sich die Breite, statt eine feste zu
   fordern. Ab Tablet zwei Spalten (zwei oben, zwei darunter), auf dem
   Handy eine. */
/* GEAENDERT 05.10.2026: drei Spalten statt vier. Die Liste hat jetzt
   neun Eintraege mit laengeren Texten (Titel plus Namen der Dozenten),
   das ergibt drei saubere Reihen. 44px zwischen den Reihen (vorher 24):
   die Eintraege sind zwei oder drei Zeilen lang und liefen sonst zu
   einem Textblock zusammen (Anita, 05.10.2026).
   Tablet und Handy: Wischband, siehe ganz unten in dieser Datei. */
.fortbildungen__liste{display:grid;grid-template-columns:repeat(3,1fr);
  gap:44px 36px;list-style:none;padding:0;
  margin:var(--abstand-weit) 0 0}
.fortbildungen__mehr{margin:var(--abstand-weit) 0 0;text-align:center;
  font-size:1rem;line-height:1.6;color:var(--farbe-schrift-leise)}
.fortbildungen__liste li{display:grid;grid-template-columns:auto 1fr;
  column-gap:10px;align-items:start;
  font-size:1rem;line-height:1.6;letter-spacing:.02em}
/* Die Pfote ist gefuellt, kein Strich — sonst zeichnet der Untergrundton
   aus .icon eine helle Kante hinein. */
.fortbildungen__liste .icon{stroke:none;color:var(--farbe-schrift)}
.fortbildungen__liste .luecke{padding:6px 10px}

/* ---------- Eindruecke ---------- */
.eindruecke{padding-top:133px;padding-bottom:var(--abstand-maximal)}

/* Bildwand: drei Spalten mal vier Reihen, alle Felder quadratisch.
   GEAENDERT 13.09.2026 — vorher Mauerwerk aus CSS-Spalten mit
   unterschiedlich hohen Bildern. Ein echtes Raster ist hier richtig, weil
   alle Felder gleich gross sein sollen: die Reihen liegen dadurch auf
   einer Linie, und die Reihenfolge im Quelltext ist auch die auf dem
   Bildschirm (CSS-Spalten fuellen sich spaltenweise, das war die Falle
   in der ersten Fassung).
   Das Seitenverhaeltnis steht am Knopf, nicht am Bild: so behaelt das
   Feld seine Hoehe, auch bevor das Bild geladen ist — die Seite springt
   beim Laden nicht. */
.bildwand{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
  list-style:none;padding:0;margin:40px 0 0}
/* Die Punkteleiste gehoert zum Wischband auf dem Handy. Auf dem Rechner
   steht die Bildwand als Raster, dort ist sie ueberfluessig. */
.bildwand__punkte{display:none}
.bildwand__feld{display:block;width:100%;aspect-ratio:1;
  padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden}
/* Keine Rundung — die Galerie der Startseite hat auch keine, und im
   Elementor-Build ist keine gesetzt. */
.bildwand__feld img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .25s ease}
/* Sanftes Heranfahren beim Ueberfahren. Zeigt, dass das Feld anklickbar
   ist, ohne eine Beschriftung oder ein Symbol ins Bild zu legen. */
.bildwand__feld:hover img,
.bildwand__feld:focus-visible img{transform:scale(1.04)}
@media (prefers-reduced-motion:reduce){
  .bildwand__feld img{transition:none}
  .bildwand__feld:hover img,
  .bildwand__feld:focus-visible img{transform:none}
}

/* Grossansicht. <dialog> bringt Verdunkelung, Escape und Fokusfalle
   selbst mit, deshalb bleibt hier nur die Optik. */
.lupe{border:0;padding:0;background:none;max-width:100vw;max-height:100vh;
  width:100%;height:100%;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;
  gap:var(--abstand-standard);
  padding-inline:var(--abstand-standard);overflow:hidden}
.lupe::backdrop{background:rgb(0 0 0 / .82)}
.lupe:not([open]){display:none}
/* 05.10.2026 (Anita): Nach dem Antippen eines Bildes trug das X einen
   orangen Fokusring, bis ein Pfeil gedrueckt wurde. showModal() setzt den
   Fokus auf den ersten Knopf, und der Ring gehoert nur zur Tastatur.
   Bei Antippen bekommt jetzt der Dialog selbst den Fokus (tabindex=-1 im
   HTML), ohne Ring. Tab fuehrt von dort zum X, mit Ring. */
.lupe:focus{outline:none}
/* 10.10.2026 (Anita): Grossansicht hoechstens 800px. Die Galeriefotos
   liegen in 800x800 vor; groesser gezogen wuerden sie unscharf. */
/* width zieht das Bild auf die volle Groesse. Ohne das zeigt der Browser
   die Kachel-Datei in ihrer eigenen Groesse (400px am einfachen
   Bildschirm), also genauso gross wie die Kachel selbst. */
.lupe__bild{width:min(100%,800px);max-width:min(100%,800px);height:auto;
  max-height:88vh;margin:0 auto;display:block;object-fit:contain}
/* Die Knoepfe der Grossansicht sind dunkel mit weissem Zeichen
   (Anita, 15.09.2026). Sie liegen auf verdunkeltem Grund und teils auf
   dem Foto selbst; helle Kreise wirkten dort wie Loecher. Gilt fuer
   jede solche verdunkelte Ansicht. */
.lupe__zu{position:absolute;top:18px;right:18px;z-index:2;
  width:44px;height:44px;display:grid;place-items:center;
  border:0;border-radius:50%;cursor:pointer;
  background:rgb(47 45 41 / .8);color:#fff}
.lupe__zu:hover,.lupe__zu:focus-visible{background:var(--farbe-schrift)}
.lupe__pfeil{width:48px;height:48px;display:grid;place-items:center;
  border:0;border-radius:50%;cursor:pointer;
  background:rgb(47 45 41 / .8);color:#fff}
.lupe__pfeil:hover,.lupe__pfeil:focus-visible{background:var(--farbe-schrift)}
/* .icon setzt selbst color auf die Schriftfarbe und haette den Pfeil
   dunkel auf dunkel gezeichnet. */
.lupe__pfeil .icon{color:#fff;stroke:currentColor}
.lupe__pfeil--zurueck svg{transform:rotate(180deg)}

.eindruecke__instagram{margin-top:var(--abstand-block);text-align:center}
.eindruecke__instagram p{margin:0 auto;max-width:46rem}
/* Mehr Luft zwischen Text und Knopf als vorher (war var(--abstand-nah)
   ueber den Absatzabstand). Wunsch vom 13.09.2026. */
.eindruecke__instagram .werte-aktion{margin-top:var(--abstand-gruppe)}

@media (max-width:1024px){
  .werte-titel{font-size:2.9rem}
  .werte-h2{font-size:2.2rem}
  .werte-block{padding-top:64px}
  .werte-raster{grid-template-columns:1fr;gap:var(--abstand-gruppe)}
  /* Einspaltig laeuft der Werdegang ueber die volle Bahn: 85 Zeichen je
     Zeile bei 834, 92 bei 1024. Angenehm sind 65 bis 75. 46rem sind
     rund 69 Zeichen. Linksbuendig unter der Ueberschrift, nicht
     mittig — der ganze Block ist linksbuendig gesetzt. */
  .werte-text p{max-width:46rem}
  .fortbildungen{margin-top:64px;padding-block:30px}
  .fortbildungen__titel{font-size:1.7rem}
  /* Zwei oben, zwei darunter. */
  .fortbildungen__liste{grid-template-columns:repeat(2,1fr)}
  .eindruecke{padding-top:64px;padding-bottom:var(--abstand-abschnitt)}
  .fortbildungen{margin-top:96px}
  /* Mehr Luft unter dem Instagram-Knopf, bevor die Fusszeile anfaengt —
     derselbe Wert wie am Ende der Betreuungs- und der Kontaktseite. */
  .eindruecke{padding-bottom:96px}
}

/* Kontaktseite: Infos und Karte stehen auf dem Tablet nebeneinander,
   so wie auf dem Rechner. Untereinander war der Block unnoetig lang,
   und die Karte traegt bei 343px noch genug Beschriftung. Der Knopf
   darunter bekommt schmaleres Polster, sonst bricht er zweizeilig.
   Anitas Frage vom 16.09.2026. */
@media (min-width:768px) and (max-width:1024px){
  /* Ueberschrift ueber beide Spalten, einzeilig (sie braucht 497px).
     Darunter links die Angaben, rechts die Karte. Die linke Spalte ist
     auf 310px festgesetzt — so breit ist die Instagram-Zeile, alles
     darunter waere ein Umbruch —, den Rest bekommt die Karte.
     .infos ohne eigenes Polster, damit die Karte moeglichst gross
     bleibt: bei 834 sind es 444 statt 343 Pixel. */
  /* Das Nachrichtenformular stand bis an die Bahnkante. */
  .kontaktseite__nachricht .bahn{padding-inline:64px}
}

/* =========================================================
   "DAS ERWARTET DEINEN HUND" AUF TABLET, 768 bis 1024
   Anitas Durchgang bei 834 am 16.09.2026.
   ========================================================= */
@media (min-width:768px) and (max-width:1024px){
  /* 1) Luft an den Seiten. Der Block lief ueber die volle Bahn, also
     24px vom Fensterrand. */
  .werte-block .bahn,.fortbildungen .bahn{padding-inline:64px}

  /* 2) Reihenfolge wie auf dem Handy: erst das Foto unter dem Vorspann,
     dann "Mein Werdegang" mit Text und Knopf, dann "Meine Werte".
     Im HTML stehen Foto und Werte in der RECHTEN Spalte, Werdegang und
     Knopf in der linken — deshalb loest display:contents die Spalten
     auf und order sortiert die Kinder neu. */
  .werte-raster{display:flex;flex-direction:column;gap:40px}
  .werte-spalte{display:contents}
  .werte-spalte--rechts .werte-foto{order:1}
  .werte-spalte:not(.werte-spalte--rechts) .werte-gruppe{order:2}
  .werte-spalte:not(.werte-spalte--rechts) .werte-aktion{order:3}
  /* 56 statt 24px (Anita, 05.10.2026): "Meine Werte" klebte zu nah am
     dunklen Knopf darueber. */
  .werte-spalte--rechts .werte-gruppe{order:4;margin-top:56px}
  .werte-abschluss{order:5}

  /* 3) Das Foto lief ueber die volle Bahn und war dadurch 786px gross.
     420 mittig, derselbe Wert wie das Portraet auf den
     Betreuungsseiten. */
  .werte-foto{max-width:420px;margin-inline:auto}

  /* 4) Der Werdegang ist der laengste Text der Seite, eine Stufe
     kleiner. Damit ist er auch so gross wie die Texte bei "Meine
     Werte", die schon auf 16px stehen. */
  .werte-text p{font-size:1rem}

  /* 5) Die Fortbildungen untereinander statt zu zweit nebeneinander:
     so stehen die vier Zeichen auf einer senkrechten Linie. */
  .fortbildungen__liste{grid-template-columns:1fr}
}

@media (max-width:767px){
  .werte-kopf{padding-top:40px}
  .werte-titel{font-size:2.4rem}
  .werte-h2{font-size:2rem}
  .fortbildungen__titel{font-size:1.5rem}
  /* Zwei Spalten waeren hier unter 170px breit — untereinander. */
  .fortbildungen__liste{grid-template-columns:1fr}
  /* ----- Reihenfolge auf dem Handy (Anita, 15.09.2026) -----
     Foto, Werdegang, dunkler Knopf, Werte, Rest.
     Im HTML stehen Foto und Werte in der RECHTEN Spalte, Werdegang und
     Knopf in der linken. Umsortiert wird deshalb mit order; dafuer
     loest display:contents die beiden Spalten auf, ihre Kinder werden
     Flex-Kinder des Rasters. Der eigene Abstand der Spalten faellt
     damit weg und steht jetzt am Raster. */
  .werte-raster{display:flex;flex-direction:column;gap:40px}
  .werte-spalte{display:contents}
  .werte-spalte--rechts .werte-foto{order:1}
  .werte-spalte:not(.werte-spalte--rechts) .werte-gruppe{order:2}
  .werte-spalte:not(.werte-spalte--rechts) .werte-aktion{order:3}
  /* 24px mehr als der Rasterabstand: der dunkle Knopf schliesst den
     Werdegang ab, "Meine Werte" faengt etwas Neues an. */
  /* 56 statt 24px (Anita, 05.10.2026): "Meine Werte" klebte zu nah am
     dunklen Knopf darueber. */
  .werte-spalte--rechts .werte-gruppe{order:4;margin-top:56px}
  .werte-abschluss{order:5}
  /* Der weiterfuehrende Knopf war mit 181px deutlich schmaler als der
     dunkle darueber. */
  .werte-abschluss .btn{min-width:16rem}

  /* Fliesstext im Werdegang 16 statt 18px — es ist der laengste Text
     der Seite. Gleiche Groesse wie die Beschreibungen im Ueberblick
     der Betreuungsseiten. */
  .werte-text p{font-size:1rem}
  /* Bei den Werten wird nur der erklaerende Satz kleiner, die fette
     Zeile darueber bleibt auf Fliesstextgroesse. */
  .werte-liste li span{font-size:1rem}
  .werte-liste li strong{font-size:1.125rem}

  /* ----- Galerie als Wischband -----
     GEAENDERT 15.09.2026 (Anita): Auf dem Handy ein Bild je Bildschirm
     zum Durchwischen statt zwei Spalten. Zwoelf quadratische Kacheln
     untereinander waren ein sehr langer Block, und in zwei Spalten ist
     von jedem Bild kaum etwas zu erkennen.
     Aufbau wie bei der Galerie der Startseite: padding-inline UND
     scroll-padding-inline in Bahnbreite, damit das eingerastete Bild
     buendig sitzt; vom naechsten bleiben 8px sichtbar.
     justify-content:flex-start muss mit — sonst wirkt das center aus
     der Rasterregel weiter und die ersten Bilder liegen links ausserhalb
     des Scrollbereichs. */
  .bildwand{display:flex;justify-content:flex-start;gap:8px;
    overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    margin-inline:calc(-1 * var(--abstand-standard));
    padding-inline:var(--abstand-standard);
    scroll-padding-inline:var(--abstand-standard);
    scrollbar-width:none;-ms-overflow-style:none}
  .bildwand::-webkit-scrollbar{display:none}
  .bildwand>li{flex:0 0 calc(100vw - 2 * var(--abstand-standard));
    scroll-snap-align:start}
  .bildwand__punkte{display:flex;margin-top:var(--abstand-standard)}

  /* Mehr Luft ueber "Eindruecke aus der Betreuung". */
  .eindruecke{padding-top:96px}

  /* ----- Grossansicht auf dem Handy -----
     Das Bild laeuft ueber die volle Breite, die zwei Pfeile sitzen am
     linken und rechten Bildschirmrand (Anita, 15.09.2026).
     Sie stehen absolut und senkrecht mittig im Bildschirm, NICHT im
     Raster: sonst wandern sie mit der Bildhoehe und stehen bei jedem
     Foto woanders. Dadurch bleiben sie beim Durchblaettern stehen.
     Das Raster hat nur noch eine Spalte, das Bild fuellt sie. */
  .lupe{grid-template-columns:1fr;align-content:center;
    gap:0;padding-inline:0}
  .lupe__bild{grid-column:1;grid-row:1;max-height:72vh}
  .lupe__pfeil{position:absolute;top:50%;transform:translateY(-50%);
    z-index:2;width:44px;height:44px}
  .lupe__pfeil--zurueck{left:12px}
  .lupe__pfeil--vor{right:12px}
}

/* =========================================================
   SEITE TAGESBETREUUNG (hundetagesbetreuung-muenchen.html)
   Gebaut nach 03_Referenz/TAGESBETREUUNG.jpg. Fuer diese Seite gibt es
   keine Elementor-Vorlage, die Werte stammen aus Figma und folgen sonst
   dem bestehenden Designsystem. 13.09.2026.
   Die Bauteile sind bewusst allgemein benannt (.herzband, .ablauf,
   .ueberblick, .schritte) — die Urlaubsbetreuung bekommt denselben
   Aufbau und soll dieselben Regeln benutzen.
   ========================================================= */

/* ---------- Betreuung mit Herz ----------
   Cremeband mit Foto links und Text rechts. Das Foto laeuft in der
   Doggery-Fotoform, deshalb liegt .werte-foto zusaetzlich am Bild.

   Das Foto ragt oben und unten aus dem Band heraus, so wie im
   Figma-Screen. Dadurch bleibt das Band flacher, als das Foto hoch ist.
   Gemacht mit einem negativen Aussenrand: er nimmt genau so viel Hoehe
   aus dem Fluss, wie das Foto herausstehen soll, plus das Polster des
   Bandes.

   Wie viel herausschaut, haengt davon ab, welche der zwei Spalten
   hoeher ist. Nachgemessen am 13.09.2026 bei 1440px Fensterbreite:
   Band 473 hoch, sichtbares Foto 535, Ueberstand 31px oben und unten.
   Figma hat 497 zu 555, also rund 29 — nah genug.
   Vom Aussenrand (88px) kommen rund 12px nicht als Ueberstand an: die
   Fotoform ist 358 zu 342 und laesst oben und unten einen
   durchsichtigen Streifen im quadratischen Bildkasten.
   Wer Text oder Fotobreite aendert, sollte kurz nachsehen, ob der
   Ueberstand noch passt. */
.herzband{--band-polster:40px;
  margin-top:110px;padding-block:var(--band-polster);
  background:var(--farbe-hervorhebung)}
.herzband__raster{display:grid;grid-template-columns:560px 1fr;
  gap:70px;align-items:center}
.herzband__foto{width:100%;margin-block:-88px}
.herzband__text{display:grid;gap:var(--abstand-nah)}
.herzband__text p{margin:0}

/* ---------- Typischer Ablauf ----------
   Zeitstrahl. Die senkrechte Linie ist der linke Rahmen der Liste, kein
   eigenes Element: so ist sie immer genau so lang wie der Inhalt und
   muss nie nachgemessen werden. Die Bilder haengen links davon, deshalb
   ragen sie mit negativem Rand hinaus. */
.ablauf-block{padding-top:150px}
/* Die durchgehende senkrechte Linie ist ein Pseudoelement, kein Rahmen an
   der Liste. Grund: die Bilder stehen LINKS von der Linie. Mit einem
   Rahmen an der Liste muessten sie per negativem Rand hinausragen — und
   ein Bild mit negativem Rand in einer Rasterspalte der Breite "auto"
   rechnet die Spalte auf 0, worauf die globale Regel img{max-width:100%}
   das Bild auf 0 Pixel zusammenzieht. Es war unsichtbar.
   Mit fester Spaltenbreite und einer freistehenden Linie kann das nicht
   passieren. Die Linie waechst ueber top:0/bottom:0 automatisch mit. */
/* 90px unter dem Kopf statt 64: Fotos und Linie brauchen Luft nach
   oben, sonst haengt der Zeitstrahl direkt am Vorspann. */
.ablauf{position:relative;list-style:none;padding:0;
  margin:90px 0 0;
  display:grid;gap:56px}
/* 240px Bild plus 60px Abstand: die Linie sitzt genau an der Kante der
   Textspalte. Beide Werte stehen unten nochmal fuer Tablet. */
.ablauf::before{content:"";position:absolute;top:0;bottom:0;left:300px;
  width:1px;background:var(--farbe-rahmen)}
/* Der Text steht mittig zum Foto, nicht an dessen Oberkante. */
.ablauf__punkt{display:grid;grid-template-columns:240px 1fr;
  align-items:center;column-gap:60px}
/* Das Bild beginnt auf Hoehe der Pfote, nicht am oberen Rand der Zeile.
   Die Pfote sitzt neben der Ueberschrift und damit 20px unter dem
   Zeitlabel darueber, das die Zeile oben begrenzt — deshalb 20px
   Aussenrand. align-self:start ist noetig, weil das Bild sonst in einer
   hohen Zeile senkrecht mittig sitzt: bei der Urlaubsbetreuung begann
   es dadurch 96px UNTER der Pfote. Anitas Fund vom 16.09.2026.
   Gilt erst ab 768: auf dem Handy steht das Bild ueber dem Text. */
.ablauf__bild{width:100%;aspect-ratio:1;height:auto;object-fit:cover}
@media (min-width:768px){
  /* Beide Spalten oben ausrichten. Vorher stand die Textspalte in
     hohen Zeilen senkrecht mittig — die Pfote sass dadurch mal 20, mal
     68px unter der Zeilenkante und das Bild nie an derselben Stelle. */
  .ablauf__punkt{align-items:start}
  /* GEAENDERT 05.10.2026 (Anita): Das Foto beginnt jetzt an der
     Oberkante des Zeitlabels, nicht mehr 20px darunter auf Hoehe der
     Pfote. Vorher ragte das Label oben ueber das Foto hinaus. 5px, weil
     die Buchstaben des Labels so weit unter der Oberkante ihrer Zeile
     sitzen. */
  .ablauf__bild{align-self:start;margin-top:5px}
}
/* Auf Lesebreite begrenzt: ueber die vollen 900px der Spalte wird die
   Zeile zu lang und der Block laeuft weit nach rechts aus. */
.ablauf__text{padding-left:44px;max-width:36rem}
/* Die Uhrzeit ist eine Vorzeile, kein Titel: klein, gesperrt,
   Grossbuchstaben. Werte wie beim .label der Startseite. */
/* GEAENDERT 05.10.2026 (Anita): Die Vorzeilen waren zu praesent. Jetzt
   0.75rem statt 0.9rem und etwas weniger gesperrt. Die Farbe bleibt, heller
   ginge nur unter dem Mindestkontrast. Gilt fuer beide Betreuungsseiten. */
/* NACHGEZOGEN 05.10.2026: noch eine Spur heller und duenner. #78736a ist
   der hellste warme Grauton, der auf Weiss (4,71:1) UND auf Creme (4,52:1)
   den Mindestkontrast von 4,5:1 fuer kleine Schrift haelt. Heller geht
   nicht. Die Grossbuchstaben bleiben, sonst ist es kein Label mehr. */
.ablauf__zeit{margin:0 0 6px;font-size:0.75rem;font-weight:300;
  letter-spacing:.14em;text-transform:uppercase;
  color:#78736a}
.ablauf__titel{position:relative;margin:0 0 var(--abstand-nah);
  font-family:var(--schriftart-sans);font-size:1.5rem;font-weight:700;
  line-height:1.4}
/* Die Pfote liegt AUF der Linie und ist absolut gesetzt. Absolut, weil
   sie im Fluss die Ueberschrift nach rechts schieben wuerde — dann
   begaennen Uhrzeit, Ueberschrift und Text nicht mehr an derselben
   Kante. Die Linie sitzt an der linken Kante von .ablauf__text, der
   Text ist 44px eingerueckt, die Pfote 40px breit: 44 + 20 = 64 nach
   links, dann steht ihre Mitte genau auf der Linie.
   Die weisse Flaeche dahinter unterbricht die Linie, das Polster oben
   und unten macht die Luecke etwas groesser als die Pfote. */
/* GEAENDERT 14.09.2026: Die Symbole pfote-01 und pfote-02 zeichnen
   jetzt in currentColor statt fest in #E2B466 — im Ueberblick laeuft
   dieselbe Pfote in der Schriftfarbe. Das Gold muss deshalb hier
   gesetzt werden, sonst erbt die Pfote die Textfarbe.
   Der weisse Untergrund unterbricht die Linie, das Polster oben und
   unten macht die Luecke etwas groesser als die Pfote — genau wie im
   Figma-Screen. */
.ablauf__pfote{color:var(--farbe-pfote);
  position:absolute;left:-64px;top:50%;
  transform:translateY(-50%);
  width:40px;height:52px;padding-block:6px;
  background:var(--farbe-basis)}
/* Nach rechts und links geneigt wechseln zwei eigene Zeichnungen ab,
   pfote-01 und pfote-02. Deshalb wird hier nichts gespiegelt. */
/* ERGAENZT 14.09.2026: Zwei aufeinanderfolgende Absaetze standen ohne
   jeden Abstand untereinander — die globale Regel setzt p auf margin:0,
   und der Zeitstrahl hatte nie einen eigenen Absatzabstand, weil bis
   dahin jeder Schritt nur einen Absatz hatte. Aufgefallen bei
   "Abholung" auf der Urlaubsbetreuung. Gleicher Wert wie im Werdegang
   (.werte-text). Gilt auch auf Desktop. */
/* Nur margin-bottom, nicht margin:0: sonst schlaegt diese Regel (zwei
   Klassen sind genauer) den Absatzabstand der Zeile darueber wieder
   tot — und der zweite Absatz IST der letzte. */
.ablauf__text p + p{margin-top:var(--abstand-nah)}
.ablauf__text p:last-child{margin-bottom:0}
/* Knopf innerhalb eines Zeitstrahl-Punktes. Nur die Urlaubsbetreuung
   hat einen: er fuehrt zum Ablauf der Tagesbetreuung. Linksbuendig wie
   der Text darueber, nicht mittig — er gehoert zum Absatz.
   Der Selektor braucht p.ablauf__aktion, nicht nur .ablauf__aktion:
   die Regel .ablauf__text p:last-child{margin:0} eine Zeile weiter
   oben ist sonst genauer und der Knopf klebt am Text. Mit dem
   Elementnamen sind beide gleich genau, und die spaetere Regel — also
   diese — gewinnt. */
.ablauf__text p.ablauf__aktion{margin:var(--abstand-standard) 0 0;
  text-align:center}

/* ---------- Das Wichtigste im Ueberblick ----------
   Cremeband, zwei Spalten. Links Zeiten und Preise, rechts die
   Voraussetzungen. */
.ueberblick{margin-top:110px;padding-block:80px;
  background:var(--farbe-hervorhebung)}
.ueberblick__raster{display:grid;grid-template-columns:1fr 1fr;gap:70px;
  margin-top:var(--abstand-block);align-items:start}
.ueberblick__spalte{display:grid;gap:var(--abstand-standard);
  align-content:start}
/* Das Zeichen sitzt auf der ERSTEN Zeile, nicht mittig zur ganzen
   Ueberschrift: auf dem Handy bricht "Voraussetzungen fuer die
   Betreuung" zweizeilig um, und mit align-items:center rutschte das
   Zeichen dann zwischen die beiden Zeilen. Die 6px sind die halbe
   Differenz aus Zeilenhoehe (28 x 1.38 = 38,6) und Zeichenhoehe (26).
   Bei einzeiligen Ueberschriften aendert sich dadurch nichts. */
.ueberblick__titel{margin:0;font-family:var(--schriftart-serif);
  font-size:1.75rem;font-weight:600;line-height:1.38;
  display:flex;align-items:flex-start;gap:12px}
.ueberblick__titel .icon{width:26px;height:26px;flex:0 0 auto;
  margin-top:6px}
/* Alle drei Zeichen hier sind Flaechen, kein Strich — sonst zeichnet der
   Untergrundton aus .icon eine helle Kante hinein. */
.ueberblick__titel .icon{stroke:none}
/* Anitas eigene Pfote ist 35 zu 38 hoch, also schmaler als das
   quadratische Feld. Bei 26px Hoehe wirkt sie neben Uhr und
   Preisschild zu klein, deshalb 30px. Die Breite waechst mit,
   preserveAspectRatio verzerrt nichts. */
.ueberblick__titel .icon--pfote{width:30px;height:30px;margin-top:4px}
/* Zweite Ueberschrift derselben Spalte braucht Abstand nach oben. */
.ueberblick__titel--zweit{margin-top:var(--abstand-standard)}
/* Die Eintraege sind gegen die Ueberschrift eingerueckt, wie in Figma. */
.ueberblick__eintrag{padding-left:38px}
.ueberblick__eintrag p{margin:0}
.ueberblick__name{font-weight:700}
/* Hinweis auf fragliche Angaben, steht ueber den Eintraegen und nicht
   eingerueckt: er gilt fuer die ganze Gruppe darunter. */
.ueberblick__hinweis{margin:0;font-size:var(--klein-groesse);
  line-height:var(--klein-hoehe)}
/* Der Aufpreis-Hinweis ist eine Fussnote zum Tagessatz, keine eigene
   Angabe. Eine Stufe kleiner macht die Spalte deutlich kuerzer.
   GEAENDERT 18.09.2026: stand vorher nur im Tablet-Block und galt auf
   dem Rechner nicht. Jetzt ueberall — auf dem Handy setzt der eigene
   Block ohnehin schon 1rem. */
.ueberblick__eintrag--klein p{font-size:var(--klein-groesse);
  line-height:var(--klein-hoehe)}
.ueberblick__aktion{margin-top:var(--abstand-gross)}

/* ---------- FAQ und Erfahrungen ---------- */
/* 150px, damit das Cremeband darueber deutlich abgesetzt ist. */
.faq-block{padding-top:150px}
.faq-block__aktion{margin-top:var(--abstand-gross)}
.erfahrungen{padding-top:110px}
/* Auf dieser Seite stehen nur zwei Stimmen. Ohne eigene Regel bliebe die
   Zeile mit zwei festen 504px-Spalten sehr breit auseinander.
   Der Abstand zur Ueberschrift ist kleiner als sonst: die Karten haben
   selbst schon 80px Vorlauf, damit das ueberhaengende Foto Platz hat.
   Zusammen mit dem Standardabstand riss das eine Luecke von ueber
   160px auf. */
.bewertungen--zwei{row-gap:0;margin-top:var(--abstand-standard)}

/* ---------- So geht es ----------
   Bild links ueber die volle Hoehe, vier Kaesten rechts. */
.schritte-block{padding-top:110px}
/* align-items:stretch (der Standardwert, hier ausgeschrieben, weil er
   der Punkt der Sache ist): beide Spalten sind gleich hoch. Die Hoehe
   bestimmt die hoehere Spalte, also die vier Kaesten. */
/* 20px zwischen Bild und Kaesten, genau wie zwischen den Kaesten. */
.schritte-raster{display:grid;grid-template-columns:480px 1fr;gap:20px;
  align-items:stretch;margin-top:var(--abstand-block)}
/* height:100% zieht das Bild auf die Zeilenhoehe, object-fit:cover
   beschneidet es dabei mittig statt es zu verzerren. Ohne min-height:0
   koennte das Bild die Zeile in manchen Faellen aufblaehen. */
.schritte__bild{width:100%;height:100%;min-height:0;
  object-fit:cover;object-position:center;display:block}
/* 10.10.2026: Das Foto steckt in <picture> (zwei Zuschnitte). Ohne diese
   Zeile waere picture das Rasterkind und das Bild verloere seine Hoehe. */
.schritte-raster picture{display:contents}
/* source wuerde durch display:contents selbst zum (leeren) Rasterkind und
   schoebe das Foto in die zweite Spalte. */
.schritte-raster picture > source{display:none}
/* 10.10.2026 (Anita): Beim Kennenlern-Foto der Tagesbetreuung wird am
   Rechner nur rechts beschnitten. Links sitzt die Schnauze des Hundes
   direkt an der Bildkante, rechts schaut der Hund ohnehin weg. Nur ab
   1025px: darunter ist das Foto quadratisch und wird nicht beschnitten. */
@media (min-width:1280px){
  .schritte__bild--links{object-position:left center}
}
/* 10.10.2026 (Anita): Zwischen 1025 und 1279px werden die vier Kaesten so
   hoch (bis 940px), dass vom Foto daneben nur ein schmaler Streifen bliebe.
   Deshalb steht es hier wie am Tablet: quadratisch in der Fotoform ueber
   den Kaesten. Gilt fuer Tages- und Urlaubsbetreuung. Die Kaesten sind auf
   800px begrenzt, sonst laufen die Zeilen ueber die ganze Bahn. */
@media (min-width:1025px) and (max-width:1279px){
  .schritte-raster{grid-template-columns:1fr;gap:8px;
    max-width:800px;margin-inline:auto}
  .schritte__bild{height:auto;aspect-ratio:1;max-width:480px;
    margin-inline:auto;
    -webkit-mask:var(--shape-foto) center/contain no-repeat;
            mask:var(--shape-foto) center/contain no-repeat}
  .schritte__punkt{padding:24px 40px}
}

.schritte{list-style:none;padding:0;margin:0;display:grid;gap:20px}
.schritte__punkt{display:grid;grid-template-columns:auto 1fr;
  column-gap:22px;align-items:start;
  border-radius:var(--rundung-meldung);
  padding:24px 30px}
/* Die vier Kaesten werden nach unten hin KRAEFTIGER: Schritt eins ist
   der blasseste, Schritt vier — "Alles passt!" — der staerkste. Das
   Gelb wird dafuer schrittweise weniger mit Weiss gemischt. So bleibt
   es EIN Farbwert im Designsystem: aendert sich --farbe-signal,
   wandern alle vier mit. Die Zeile davor ist der Rueckfall fuer
   Browser ohne color-mix. */
.schritte__punkt{background:var(--farbe-signal)}
.schritte__punkt:nth-child(1){
  background:color-mix(in srgb, var(--farbe-signal) 30%, #fff)}
.schritte__punkt:nth-child(2){
  background:color-mix(in srgb, var(--farbe-signal) 50%, #fff)}
.schritte__punkt:nth-child(3){
  background:color-mix(in srgb, var(--farbe-signal) 75%, #fff)}
.schritte__punkt:nth-child(4){background:var(--farbe-signal)}
/* Grosse Ziffer in Lora, wie im Entwurf. Die Grundlinie liegt dadurch
   tiefer als die der Ueberschrift daneben; das leichte Anheben gleicht
   das aus, damit Ziffer und Ueberschrift optisch auf einer Linie
   sitzen. */
.schritte__zahl{margin:-6px 0 0;font-family:var(--schriftart-serif);
  font-size:3rem;font-weight:700;line-height:1;
  font-variant-numeric:lining-nums tabular-nums;
  color:var(--farbe-schrift)}
.schritte__punkt p{margin:0}
.schritte__name{font-weight:700;margin-bottom:4px;font-size:1.1rem}
.schritte-block__aktion{margin-top:var(--abstand-gross)}

/* Der Zeitstrahl sass linksbuendig in der Bahn, waehrend sein Text bei
   36rem endet — rechts blieben dadurch 136px leer, links nichts.
   width:fit-content macht die Liste so breit wie ihr breitester Eintrag
   (240 Bild + 60 Luecke + 576 Text = 876), danach zentriert sie der
   automatische Aussenrand. Die senkrechte Linie sitzt als Pseudoelement
   in der Liste und wandert mit. Anitas Fund vom 16.09.2026 bei 1060.
   Nur ab 1025: darunter steht der Zeitstrahl ohnehin schmaler. */
@media (min-width:1025px){
  .ablauf{width:fit-content;margin-inline:auto}
}

@media (max-width:1024px){
  .ueberblick{margin-top:64px}
  .herzband,.ueberblick{padding-block:48px}
  .herzband__raster{grid-template-columns:1fr;gap:var(--abstand-gruppe);
    justify-items:center}
  /* GEAENDERT 16.09.2026: Das Foto ragt auch hier wieder oben aus dem
     Cremeband heraus, so wie auf dem Handy. Vorher stand es ganz innen.
     Die zwei Werte gehoeren zusammen: der Aussenrand des Bandes macht
     den Platz frei, den das Foto mit seinem negativen Aussenrand wieder
     einnimmt. 160 minus 48 Bandpolster ergibt rund 112px Ueberstand,
     und 192 minus 160 laesst 32px Luft zum Abschnitt darueber — das
     ist derselbe Abstand wie auf dem Handy. */
  .herzband{margin-top:192px}
  .herzband__foto{max-width:420px;margin-block:-160px 0}
  .ablauf-block,.faq-block,.erfahrungen,.schritte-block{padding-top:64px}
  .ueberblick__raster{grid-template-columns:1fr;gap:var(--abstand-gruppe)}
  /* OFFEN: Anita will sich diesen Abschnitt in der Mobilrunde noch
     genauer ansehen. Solange das Naheliegende: Bild oben, Kaesten
     darunter, feste Bildhoehe statt der Rasterhoehe. */
  .schritte-raster{grid-template-columns:1fr;gap:var(--abstand-gruppe)}
  /* GEAENDERT 10.10.2026 (Anita): Das Foto steht bis 1024px quadratisch
     in der Doggery-Fotoform, auch am Handy. Vorher war es am Handy ein
     320px hoher Streifen ueber die volle Breite; dessen Seitenverhaeltnis
     wechselte je nach Geraet, ein fester Ausschnitt war so nicht moeglich. */
  .schritte__bild{height:auto;aspect-ratio:1;width:100%;max-width:480px;
    margin-inline:auto;
    -webkit-mask:var(--shape-foto) center/contain no-repeat;
            mask:var(--shape-foto) center/contain no-repeat}
  .schritte__zahl{font-size:2.4rem}
  /* Zeitstrahl schmaler: kleineres Bild, weniger Abstand.
     180 + 40 = 220, deshalb wandert auch die Linie auf 220px.
     Der Versatz der Pfote bleibt gleich: er haengt nur am Innenabstand
     des Textes (44) plus halber Pfote (14). */
  .ablauf::before{left:220px}
  .ablauf__punkt{grid-template-columns:180px 1fr;column-gap:40px}
  .ablauf-block{padding-top:64px}
  .ablauf{margin-top:56px}
}

@media (max-width:767px){
  /* GEAENDERT 16.09.2026: stand vorher im 1024er Block und griff damit
     schon auf dem Tablet. Die zwei Stimmen liefen dort untereinander
     ueber die volle Bahn (786px bei 834), waehrend sie auf der
     Startseite nebeneinander stehen. Ab 768 gilt jetzt auch hier die
     Regel der Startseite, nur das Handy stapelt. */
  .bewertungen--zwei{grid-template-columns:1fr;justify-items:center}
  /* ENTSCHIEDEN 14.09.2026 (Anita): Der Zeitstrahl bleibt auch auf dem
     Handy ein Zeitstrahl. Die Linie steht links, rechts davon ein
     kleines Foto und darunter der Text.
     Vorher war die Linie abgeschaltet und das Foto lief ueber die
     volle Bahnbreite (342px) — das machte den Block auf der
     Urlaubsbetreuung ueber 5000px lang und der Zusammenhang der
     Schritte ging verloren.
     Die Masse: Linie bei 20px, Inhalt ab 52px, Foto 150px. Die Pfote
     ist 36 breit und steht bei -50 von der Ueberschrift aus, ihre
     Mitte liegt damit auf 52 - 50 + 18 = 20, also genau auf der
     Linie. Aendert sich einer der drei Werte, muss die Pfote mit. */
  .ablauf{gap:40px}
  .ablauf::before{left:20px}
  .ablauf__punkt{grid-template-columns:1fr;gap:var(--abstand-nah);
    padding-left:52px}
  .ablauf__bild{width:150px}
  .ablauf__text{padding-left:0}
  .ablauf__pfote{left:-50px;width:36px;height:36px;padding-block:5px}
  .ueberblick__eintrag{padding-left:0}

  /* ----- Betreuung mit Herz: das Foto ragt oben aus dem Cremeband -----
     Anitas Wunsch vom 14.09.2026, "fast zur Haelfte". Auf dem Rechner
     ragt das Foto oben UND unten heraus, untereinander war der
     Ueberstand bisher ganz abgeschaltet.
     Die Rechnung: ein Drittel des Fotos soll herausstehen, bei 342px
     Hoehe also 114px (korrigiert 14.09.2026, vorher 150). Das Foto
     beginnt 114px ueber der Bandkante, und weil das Band selbst 48px
     Polster hat, sind das -162px Aussenrand. Damit das Foto nicht in
     den Abschnitt darueber laeuft, wandert das Band um dieselben 114px
     nach unten, plus die gewuenschte Luecke zum Text darueber:
     32 + 114 = 146. Die sichtbare Luecke zwischen Vorzeile und Foto
     ist also 32px (Anita, 14.09.2026 — vorher 64).
     Vom Ueberstand kommen rund 4px nicht an: die Fotoform ist 358 zu
     342 und laesst im quadratischen Bildkasten oben und unten einen
     durchsichtigen Streifen. */
  .herzband{margin-top:146px}
  .herzband__foto{margin-top:-162px}
  /* Text naeher ans Foto: 48 auf 24. */
  .herzband__raster{gap:var(--abstand-standard)}

  /* Die kleinen Zeitstrahl-Fotos laufen in der Doggery-Fotoform.
     Kostet nichts: die Form steckt als Data-URI im Token, es wird
     keine zusaetzliche Datei geladen. Nur auf dem Handy — auf dem
     Rechner bleiben die Fotos quadratisch. */
  .ablauf__bild{width:150px;
    -webkit-mask:var(--shape-foto) center/contain no-repeat;
            mask:var(--shape-foto) center/contain no-repeat}
  /* Fliesstext im Zeitstrahl 16 statt 18px (Anita, 14.09.2026: der
     Block wirkte zu maechtig). Gleiche Groesse wie die Beschreibungen
     im Ueberblick. Die Vorzeile mit der Tageszeit und der Knopf im
     Zeitstrahl bleiben aussen vor — die haben ihre eigene Groesse. */
  .ablauf__text p:not(.ablauf__zeit):not(.ablauf__aktion){font-size:1rem}

  /* ----- Das Wichtigste im Ueberblick -----
     Weniger Platz zwischen der H2 und dem ersten Eintrag: 64 auf 32. */
  .ueberblick__raster{margin-top:var(--abstand-weit)}
  /* Fliesstext kleiner als die Kernangaben. Zwei Faelle, beide ohne
     eigene Klasse: die Beschreibungen in der Spalte "Voraussetzungen"
     (jeweils der Absatz hinter dem fetten Namen) und der Hinweis zum
     Aufpreis, der als einziger Absatz allein in seinem Kasten steht.
     Zeiten und Preise bleiben bei 18px — das sind die Angaben, auf die
     es ankommt. */
  .ueberblick__spalte + .ueberblick__spalte
    .ueberblick__eintrag p:not(.ueberblick__name),
  .ueberblick__eintrag p:only-child{font-size:1rem;line-height:1.6}

  /* Gewollter Umbruch in einer Ueberschrift, nur auf dem Handy.
     Als span mit display:block statt als <br>, damit die Zeile auf dem
     Rechner am Stueck bleibt. */
  .h2-umbruch{display:block}

  /* ----- FAQ -----
     Mehr Weissraum ueber der Ueberschrift, dafuer ruecken die Felder
     naeher an den Vorspann. */
  .faq-block{padding-top:96px}
  .faq{margin-top:var(--abstand-weit)}

  /* ----- So geht es -----
     Foto und Kaesten gehen von Bildschirmkante zu Bildschirmkante, und
     die Abstaende sind ueberall dieselben 20px: Vorspann zu Foto, Foto
     zum ersten Kasten, Kasten zu Kasten.
     Der negative Aussenrand hebt das Polster der Bahn auf; dafuer
     braucht der Abschnitt overflow-x:clip, sonst laesst sich die Seite
     seitlich schieben. clip, nicht hidden — hidden erzeugt einen
     Scrollbereich und schneidet auch senkrecht ab. */
  .schritte-block{overflow-x:clip}
  .schritte-raster{margin-top:20px;gap:20px;
    margin-inline:calc(-1 * var(--abstand-standard))}
  /* 10.10.2026: Das Foto geht nicht mehr von Kante zu Kante (s. oben),
     es braucht den Rand der Bahn zurueck. */
  .schritte__bild{max-width:min(480px,calc(100% - 2 * var(--abstand-standard)))}
  /* Innen 24px, damit der Text trotz voller Breite nicht am
     Bildschirmrand klebt. */
  .schritte__punkt{padding:18px 24px;gap:12px}
  /* Inter eine Spur kleiner, die Ziffer in Lora bleibt wie sie ist. */
  .schritte__name{font-size:1.0625rem}
  .schritte__punkt div p:not(.schritte__name){font-size:1rem}
  .schritte-block__aktion{margin-top:var(--abstand-weit)}
  /* Mehr Luft unter dem letzten Knopf, bevor die Fusszeile anfaengt.
     48px waren zu wenig — der Knopf ist der Abschluss der Seite und
     braucht Platz. Gleicher Wert wie auf dem Rechner. */
  .schritte-block{padding-bottom:96px}
}

/* =========================================================
   BETREUUNGSSEITEN AUF TABLET, 768 bis 1024
   Anitas Durchgang bei 834 am 16.09.2026. Steht bewusst nach dem
   1024er Block weiter oben — bei gleicher Genauigkeit gewinnt die
   spaetere Regel.
   ========================================================= */
@media (min-width:768px) and (max-width:1024px){
  /* 1) Luft an den Seiten in beiden Cremebaendern. Die Texte liefen bis
     an die Bahnkante, also 24px vom Fensterrand. */
  .herzband .bahn,.ueberblick .bahn{padding-inline:64px}

  /* 2) "Betreuung mit Herz" mittig. Nur die Ueberschrift — der
     Fliesstext darunter bleibt linksbuendig, mittiger Fliesstext ueber
     mehrere Zeilen liest sich schlecht. */
  .herzband__text h2{text-align:center}

  /* 3) Mehr Weissraum vor den drei Ueberschriften. 64px waren zu wenig,
     die Abschnitte klebten aneinander. */
  .ablauf-block,.faq-block{padding-top:110px}
  .ueberblick{margin-top:110px}

  /* 4) Zeitstrahl: Rand an beiden Seiten und schmalerer Text.
     width:fit-content macht die Liste so breit wie ihr breitester
     Eintrag (180 Bild + 40 Luecke + 480 Text = 700), danach zentriert
     sie der automatische Aussenrand. Die senkrechte Linie sitzt als
     Pseudoelement in der Liste und wandert mit.
     Der Text war 566px breit, das sind rund 79 Zeichen je Zeile. */
  .ablauf{width:fit-content;margin-inline:auto}
  .ablauf__text{max-width:30rem}

  /* 5) Preise neben den Betreuungszeiten, Voraussetzungen darunter
     ueber beide Spalten. Deren vier Eintraege stehen dort selbst
     zweispaltig. */
  .ueberblick__raster{grid-template-columns:1fr 1fr;gap:40px}
  /* Die Voraussetzungen stehen ueber beide Spalten, ihre vier Punkte
     aber untereinander (Anita, 16.09.2026 — zweispaltig probiert und
     verworfen). Damit die Zeilen dabei nicht 93 Zeichen lang werden,
     ist der Text auf Lesebreite gedeckelt. ch statt Pixel, weil die
     Schrift hier 14.4px ist. */
  .ueberblick__spalte--breit{grid-column:1 / -1}
  .ueberblick__spalte--breit .ueberblick__eintrag p{max-width:68ch}

  /* Mehr Abstand zwischen der Ueberschrift und den zwei
     Erfahrungskacheln: 24px waren zu wenig. */
  .bewertungen--zwei{margin-top:56px}

  /* Der Vorspann ueber dem Zeitstrahl stand dreizeilig: sein erster
     Satz braucht 835px, die Bahn gibt bei 834 nur 786 her — er brach
     also selbst um, und der feste Umbruch dahinter machte daraus die
     dritte Zeile. Ohne ihn fliesst der Text und kommt mit zwei Zeilen
     aus. Auf dem Rechner passt der erste Satz in eine Zeile, dort
     bleibt der feste Umbruch. */
  .ablauf-block .lead br{display:none}

  /* Das Foto rueckt naeher an die vier Kaesten. Die Fotoform laesst oben
     und unten einen durchsichtigen Streifen im Bildkasten, der optische
     Abstand ist also groesser als der gesetzte. */
  .schritte-raster{gap:8px}

  /* 6) Das Foto steht allein ueber den vier Kaesten, also bekommt es
     die Doggery-Form. Dafuer muss es quadratisch werden: gestreckt
     wuerde die Form nur einen Streifen in der Mitte fuellen. */
  .schritte__bild{height:auto;aspect-ratio:1;max-width:480px;
    margin-inline:auto;
    -webkit-mask:var(--shape-foto) center/contain no-repeat;
            mask:var(--shape-foto) center/contain no-repeat}

  /* 7) Mehr Luft in den vier Kaesten. */
  .schritte__punkt{padding:24px 40px}
}

/* Dieselbe Umstellung im HTML (Zeiten, Preise und Voraussetzungen sind
   jetzt drei Spalten statt zwei) darf den Rechner nicht veraendern —
   dort bleibt es bei Zeiten und Preise untereinander links und den
   Voraussetzungen rechts. Genau das stellen diese vier Zeilen wieder
   her. row-gap 48 statt der 70 des Rasters: das war vorher der Abstand
   zwischen Zeiten und Preisen innerhalb der einen Spalte. */
@media (min-width:1025px){
  .ueberblick__raster{row-gap:48px}
  .ueberblick__spalte:nth-child(1){grid-column:1;grid-row:1}
  .ueberblick__spalte:nth-child(2){grid-column:1;grid-row:2}
  .ueberblick__spalte--breit{grid-column:2;grid-row:1 / span 2}
}


/* =========================================================
   SCHMALER RECHNER 1025-1178 — UNTERSEITEN
   Angesehen von Anita bei 1060 am 18.09.2026.

   Warum es diesen Block braucht: die Bahn ist auf 1200px angelegt und
   bekommt ihr seitliches Polster erst, wenn das Fenster schmaler wird
   als 1248. Zwischen 1025 und 1178 sitzt der Inhalt deshalb mit nur
   24px an den Kanten — auf der Startseite faengt das jeder Abschnitt
   selbst ab (FAQ 85 Prozent, Kontakt-Vorspann 77 Prozent), die
   Unterseiten hatten dafuer noch nichts.

   Der Rechnerbereich ab 1179 bleibt unveraendert.
   ========================================================= */
@media (min-width:1025px) and (max-width:1178px){

  /* ----- Vorspann unter der H1 und ueber dem Zeitstrahl -----
     Er lief ueber die volle Bahn und stand damit fast an der Kante.
     Prozent statt fester Breite, damit er ueber den ganzen Bereich
     mitwaechst. */
  .werte-kopf .lead,
  .kopf--weit .lead{max-width:82%;margin-inline:auto}

  /* ----- Betreuung mit Herz -----
     Text naeher ans Foto (70 auf 48) und dafuer Luft an den Kanten.
     Das Foto wird von 560 auf 480 schmaler: bei 64px Polster blieben
     dem Text sonst nur 324px, also weniger als vorher. So bekommt er
     404 statt 382. */
  .herzband .bahn{padding-inline:64px}
  .herzband__raster{grid-template-columns:480px 1fr;gap:48px}
  /* Zum Ueberstand des Fotos: bei dieser Breite guckt es oben und
     unten NICHT aus dem Cremeband heraus. Das war vorher schon so und
     liegt am Text daneben — er ist hier so hoch, dass er die Bandhoehe
     bestimmt, und das Foto sitzt in seiner Zeile mittig. Ueberstand
     gaebe es erst ab einem Foto von rund 600px, das stuende dann aber
     ueber dem Bildschirmrand. Ab etwa 1100px Fensterbreite wird der
     Text kuerzer und der Ueberstand kommt von selbst zurueck. */

  /* ----- Bildband oben -----
     400px sind bei dieser Fensterbreite zu wuchtig, das Band nimmt den
     halben ersten Bildschirm ein. 340 liegt zwischen dem Rechnerwert
     (400) und dem Tabletwert (300). Nur die Unterseiten: .band--kontakt
     gibt es auf der Startseite nicht. */
  .band--kontakt img{height:340px}

  /* ----- Das Wichtigste im Ueberblick -----
     Dieselbe Rechnung: Spalten naeher aneinander, Luft an den Kanten. */
  .ueberblick .bahn{padding-inline:64px}
  .ueberblick__raster{column-gap:48px}
  /* Die Beschreibungen der Voraussetzungen eine Stufe kleiner, sonst
     wird die Spalte zu lang. Die fetten Namen darueber bleiben auf
     Fliesstextgroesse. Gleiche Groesse wie auf dem Handy. */
  .ueberblick__spalte--breit .ueberblick__eintrag p:not(.ueberblick__name)
    {font-size:1rem;line-height:1.6}

  /* ----- Ueber Doggery: Werdegang und Werte -----
     Luft an den Kanten, die beiden Spalten naeher zusammen (100 auf 64)
     und der Fliesstext eine Stufe kleiner. Es sind dieselben Groessen,
     die auf dem Handy schon gelten. Die fette Zeile in den Werten muss
     ausdruecklich zurueckgesetzt werden: sie steckt im span. */
  .werte-block .bahn{padding-inline:64px}
  .werte-raster{gap:64px}
  .werte-text p{font-size:1rem}
  .werte-liste li span{font-size:1rem}
  .werte-liste li strong{font-size:1.125rem}

  /* ----- Kontaktseite, Nachricht -----
     Der Block lief ueber die ganze Bahn und stand damit fast an den
     Kanten. Jetzt schmaler und mittig; der Kopf bleibt darin
     linksbuendig. Der Datenschutzhinweis darf die neue Breite ganz
     nutzen, seine eigene Lesebreite von 44rem haette ihn sonst
     mittendrin umbrechen lassen. */
  .kontaktseite__nachricht .bahn{max-width:820px;padding-inline:0}
  .nachricht__datenschutz{max-width:none}
}

/* =========================================================
   KONTAKTSEITE AUF DEM RECHNER (ab 1025)
   Anitas Ansage vom 18.09.2026, angesehen bei 1179.

   EINE Anordnung fuer den ganzen Rechnerbereich, damit es zwischen
   1060 und 1440 keinen Wechsel mehr gibt:

     Doggery im Norden von Muenchen   |  Karte
     Foto + Anschrift                 |  Kartendaten
     Instagram                        |
     Kennenlerngespraech buchen       |  Auf Google Maps ansehen

   Links Titel, Foto mit Anschrift, darunter Instagram, unten der
   Kennenlern-Knopf. Rechts die Karte mit der Quellenzeile dicht
   darunter und unten der Maps-Knopf. Die beiden Knoepfe stehen auf
   einer Linie, Instagram und beide Knoepfe mittig in ihrer Spalte.

   Vorher standen Maps-Knopf und Instagram nebeneinander unter der
   Karte. Sie brauchen dort zusammen 605px, die Spalte gibt zwischen
   440 und 568 her — es brach also auf jeder Rechnerbreite um.

   Wie es gemacht ist: .infos__karte und .infos__karte-aktion werden mit
   display:contents durchsichtig. Ihre Kinder sind dadurch selbst
   Rasterfelder und lassen sich frei setzen, ohne dass am HTML etwas
   geaendert werden muss — auf Handy und Tablet bleibt die Reihenfolge
   im Quelltext unberuehrt, dort stehen Maps und Instagram weiter
   nebeneinander unter der Karte.

   Fuenf Zeilen, die dritte ist 1fr, und das Kartenbild spannt die
   Zeilen 1 bis 3. Das ist der Kniff: ueber eine fr-Zeile hinweg
   verteilt der Browser die ueberschuessige Hoehe NICHT auf die
   auto-Zeilen darueber, sondern steckt sie in die fr-Zeile. Titel und
   Anschrift bleiben dadurch oben dicht beisammen, statt sich auf die
   Kartenhoehe auseinanderziehen zu lassen. Zeile 4 traegt die
   Quellenzeile direkt unter der Karte, Zeile 5 die beiden Knoepfe.
   ========================================================= */
@media (min-width:1025px){

  /* Luft an den Kanten. Der Zuschlag schmilzt mit wachsendem Fenster
     und ist bei 1440 bei null — dort hat die Bahn von sich aus ihre
     120px Rand. Eine Zeile statt eines Sonderfalls je Breite. */
  .kontaktseite__infos .bahn{
    padding-inline:clamp(0px, calc((1440px - 100vw) / 3), 64px)}

  /* row-gap 0: der Flex-Abstand von 24px aus der Grundanordnung wirkt
     im Raster als Zeilenabstand weiter und haette die Quellenzeile von
     der Karte weggeschoben. Die Abstaende stehen deshalb einzeln als
     Aussenrand. */
  .infos{row-gap:0;grid-template-rows:auto auto 1fr auto auto}
  .infos__karte,.infos__karte-aktion{display:contents}

  .infos__titel{grid-column:1;grid-row:1;align-self:start}
  .infos__person{grid-column:1;grid-row:2;align-self:start;
    margin-top:var(--abstand-block)}
  .infos__instagram{grid-column:1;grid-row:3;align-self:start;
    justify-self:center;margin-top:var(--abstand-gruppe)}
  .infos>.infos__aktion{grid-column:1;grid-row:5;align-self:end;
    justify-self:center;margin:var(--abstand-standard) 0 0}

  /* Die Karte war so breit wie ihre Spalte und wirkte dadurch massiv.
     460 ist die Obergrenze; bei schmalem Fenster bleibt sie so breit
     wie die Spalte. Die Quellenzeile haelt dieselbe Breite, damit ihr
     rechter Rand mit dem der Karte fluchtet. */
  .infos__karte-bild{grid-column:2;grid-row:1 / span 3;align-self:start;
    justify-self:center;width:100%;max-width:460px}
  .infos__quelle{grid-column:2;grid-row:4;align-self:start;
    justify-self:center;width:100%;max-width:460px;margin-top:6px}
  /* Gleiche Hoehe wie der dunkle Knopf gegenueber: der ist 62, der
     gelbe Sekundaerknopf von Haus aus 54. */
  .infos__karte-aktion .btn{grid-column:2;grid-row:5;align-self:end;
    justify-self:center;margin-top:var(--abstand-standard);
    min-height:62px}
}


/* ==========================================================
   SCHALTER ZULASSUNG § 11  (PARAGRAF11, angelegt 04.10.2026)

   Am <body> jeder Seite steht data-paragraf11="aus". Solange das so
   ist, zeigt die Website nichts, was den Trainerschein oder die
   Erlaubnis nach § 11 TierSchG voraussetzt.

   .p11-mit   nur sichtbar, wenn der Schalter auf "an" steht
   .p11-ohne  nur sichtbar, solange er NICHT auf "an" steht

   Fehlt das Attribut ganz, gilt "aus". Das ist Absicht: eine neue
   Seite, auf der es vergessen wurde, behauptet dann nichts Falsches.

   !important ist hier gewollt. Der Schalter muss jede andere
   display-Angabe schlagen, auch die genaueren in den Media-Bloecken.

   Welche Stellen dranhaengen und was am Tag der Freischaltung zu tun
   ist, steht in ZULASSUNG-PARAGRAF-11.md im Wurzelordner.
   ========================================================== */
body:not([data-paragraf11="an"]) .p11-mit{display:none !important}
[data-paragraf11="an"] .p11-ohne{display:none !important}


/* ==========================================================
   CALENDLY-AUS (04.10.2026): Dankeseite mit nur einem Knopf.
   Solange der dunkle Knopf "Gespraech buchen" fehlt, steht der
   Instagram-Knopf allein: mittig, und auf dem Handy MIT Beschriftung
   statt als blosses Zeichen. Kommt der dunkle Knopf zurueck, die
   Klasse danke__aktionen--einzeln im HTML entfernen; diese Regeln
   greifen dann nicht mehr. Siehe CALENDLY.md im Wurzelordner.
   ========================================================== */
.danke__aktionen--einzeln{display:flex;justify-content:center}
@media (max-width:767px){
  /* 54px ist die Hoehe des gelben Sekundaerknopfes auf den anderen
     Seiten. Ohne Mindesthoehe faellt der Knopf auf Zeilenhoehe zusammen,
     weil die Handyregel oben das Polster auf 0 setzt. */
  .danke__aktionen--einzeln .danke__insta{width:auto;height:auto;
    min-height:54px;padding:0 36px}
  .danke__aktionen--einzeln .danke__insta-text{display:inline}
  .danke__aktionen--einzeln .btn__zeichen{width:22px;height:22px}
}

/* FAQ-Antwort auf dem Handy (05.10.2026): Dort laeuft der Text weiter ueber
   die volle Kastenbreite. Die Spalte unter Plus und Minus freizuhalten
   kostet am Handy 36px und liesse nur rund 27 Zeichen je Zeile uebrig,
   eine Antwort liefe dann ueber 14 statt 11 Zeilen. Anita entscheidet,
   ob das so bleibt. */
@media (max-width:767px){
  .faq__antwort{padding-right:28px}
}

/* ---------- Fortbildungen: Wischband auf Handy und Tablet ----------
   Anita, 05.10.2026: Neun Eintraege untereinander sind dort zu lang. Jetzt
   stehen immer drei untereinander, die naechsten drei kommen mit Wischen.
   Technik: das Raster fuellt sich spaltenweise (drei Zeilen je Spalte),
   jede Spalte ist so breit wie die Liste. Eingerastet wird an jedem
   dritten Eintrag, also am Anfang einer Seite.
   Auf dem Tablet ist die Liste auf Lesebreite begrenzt und mittig, sonst
   staenden drei kurze Zeilen verloren in der breiten Bahn.
   Die Punkte baut js/site.js, ein Punkt je Seite. */
.fortbildungen__punkte{display:none}
@media (max-width:1024px){
  .fortbildungen__liste{grid-template-columns:none;grid-auto-flow:column;
    grid-template-rows:repeat(3,auto);grid-auto-columns:100%;
    gap:28px 24px;align-items:start;max-width:34rem;margin-inline:auto;
    overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;scrollbar-width:none}
  .fortbildungen__liste::-webkit-scrollbar{display:none}
  .fortbildungen__liste li:nth-child(3n+1){scroll-snap-align:start}
  .fortbildungen__punkte{display:flex;margin-top:var(--abstand-weit)}
}
/* Tablet (Anita, 05.10.2026): Die Eintraege standen zu breit, und beim
   Wischen lagen Ende der einen und Anfang der naechsten Seite zu dicht
   beieinander. Jetzt schmaler und mittig (28rem statt 34rem) und 96px
   Abstand zwischen den Seiten. Der Abstand ist nur waehrend des Wischens
   zu sehen. Am Handy 48px, dort ist weniger Platz. */
@media (min-width:768px) and (max-width:1024px){
  .fortbildungen__liste{max-width:28rem;column-gap:96px}
}
@media (max-width:767px){
  .fortbildungen__liste{column-gap:48px}
}



/* ============================================================
   ERFAHRUNGEN MIT DREI STIMMEN (06.10.2026)
   Seit der dritten echten Stimme (Chase) stehen auf der Startseite
   drei Karten. Rechner: drei nebeneinander, die Spalten teilen sich
   die Bahn. Tablet: Wischband wie am Handy, zwei Karten sichtbar,
   die dritte schaut an. Handy: unveraendert eine Karte je Bildschirm.
   Alles haengt an #erfahrungen, damit die (zurzeit ausgeblendeten)
   Stimmen der Betreuungsseiten (.bewertungen--zwei) unberuehrt bleiben.
   ============================================================ */
@media (min-width:1025px){
  #erfahrungen .bewertungen{grid-template-columns:repeat(3,minmax(0,1fr));
    column-gap:24px}
  /* 36 statt 64 Innenabstand: bei 384px Kartenbreite bliebe sonst nur
     eine Textspalte von 256px. */
  #erfahrungen .bewertung{max-width:none;padding:0 36px 40px}
}
@media (min-width:1025px) and (max-width:1178px){
  #erfahrungen .bewertung{padding:0 24px 32px}
  #erfahrungen .bewertung__zitat,
  #erfahrungen .bewertung__name{font-size:0.9375rem;line-height:1.6}
}
@media (min-width:768px) and (max-width:1024px){
  #erfahrungen .bewertungen{display:flex;justify-content:flex-start;
    gap:24px;overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    margin-inline:calc(-1 * var(--abstand-standard));
    padding-inline:var(--abstand-standard);
    scroll-padding-inline:var(--abstand-standard);
    scrollbar-width:none;-ms-overflow-style:none}
  #erfahrungen .bewertungen::-webkit-scrollbar{display:none}
  #erfahrungen .bewertung{flex:0 0 44%;scroll-snap-align:start}
  #erfahrungen .bewertungen__punkte{display:flex;margin-top:32px}
}

/* Die Kopfzeile jeder Karte ist zwei Zeilen hoch, auch wenn der Name nur
   eine braucht. "Golden Retriever Chase" bricht um, "Mix Mailo" nicht;
   ohne das stehen Sterne und Zitatanfang der Karten auf verschiedenen
   Hoehen. Einzeiler sitzen mittig, wie bei den Leistungskacheln. */
@media (min-width:768px){
  #erfahrungen .bewertung__titel{display:flex;align-items:center;
    min-height:calc(2em * var(--h4-klein-hoehe))}
}

/* ============================================================
   BILDBAENDER: DER AUSSCHNITT KOMMT AUS PHOTOSHOP (06.10.2026, Anita)
   Hier stand kurz eine Verschiebung per object-position, die den Hund
   auf Tablet und Handy ganz ins Bild holte. Verworfen: Anita legt das
   Motiv in der PSD an den Hilfslinien an (Handy sieht 1400 bis 2440,
   Tablet 960 bis 2880 von 3840). Am Handy soll der Hund nur ins Bild
   hineinschauen, daneben Himmel und Berge. Die Baender bleiben deshalb
   auf allen Breiten MITTIG, nichts nachfuehren.
   ============================================================ */

/* Baender mit eigenem Handy-Zuschnitt stecken in einem <picture>. Als Block,
   sonst entsteht unter dem Bild eine Textzeilen-Luecke. */
.band picture{display:block;line-height:0}

/* ============================================================
   BILDBAENDER AUF GROSSEN BILDSCHIRMEN (07.10.2026, Anita)
   Bis 1920px Fensterbreite ist das Band fest 400px hoch und zeigt den
   Export (3840x800) vollstaendig. Darueber wurde das Bild breiter
   gezogen und oben und unten beschnitten: bei 2560px fehlte ein Viertel
   der Hoehe, bei den sitzenden Hunden waren die Pfoten weg.
   Jetzt waechst das Band ab 1921px im Seitenverhaeltnis des Exports mit
   (Breite / 4,8), hoechstens bis 460px (zuerst 560, das war Anita und
   Claude bei 2560px zu wuchtig: die Baender sind Atempausen, keine
   Buehnen). Bis rund 2200px ist der Export vollstaendig zu sehen, bei
   2560px fehlen oben und unten je 7 %. Wichtiges deshalb nicht in die
   oberen und unteren 7 % des Streifens legen.
   Nur die Bandfotos selbst (direktes Kind oder im <picture>), nicht das
   Siegel in .band__bahn.
   ============================================================ */
@media (min-width:1921px){
  .band > img,
  .band > picture > img{height:min(calc(100vw / 4.8),460px);object-position:center}
  /* Das Band unter dem Hero bleibt wie auf allen anderen Breiten OBEN
     verankert: dort sitzt der Kopf des Berghunds dicht an der Oberkante.
     Mittig beschnitten fehlten ihm ab 2200px die Ohren (Anita, 07.10.2026).
     Was auf sehr breiten Bildschirmen wegfaellt, faellt hier nur unten weg. */
  .band.band--hoch > img,
  .band.band--hoch > picture > img{object-position:top center}
}

/* ============================================================
   KONTAKTFOTO KLEINER (07.10.2026, Anita)
   Im Kontaktbereich der Startseite steht jetzt das Profilbild mit gelbem
   Grund (dasselbe wie bei Calendly und auf der Kontaktseite) statt des
   Wiesenfotos. Ein nahes Portraet auf Farbflaeche wirkt bei gleicher
   Groesse viel wuchtiger als ein Foto mit Landschaft, deshalb rund ein
   Viertel kleiner als vorher (340 -> 260 am Rechner). Die Werte ersetzen
   die bisherigen Breiten je Haltepunkt, sonst aendert sich nichts.
   ============================================================ */
.kontakt__foto{width:260px}
@media (max-width:959px){ .kontakt__foto{width:230px} }
@media (min-width:768px) and (max-width:1024px){ .kontakt__foto{width:clamp(200px, 23vw, 250px)} }
@media (min-width:900px) and (max-width:1024px){ .kontakt__foto{width:clamp(230px, 27vw, 260px)} }
@media (min-width:960px) and (max-width:1087px){ .kontakt__foto{width:245px} }

/* ============================================================
   KONTAKT, KARTE NEBEN DEN FELDERN (07.10.2026, Anita, zum Ansehen)
   Mit dem Profilbild wirkte die Karte unten buendig zu wuchtig und oben
   rechts blieb Leere. Jetzt, sobald Formular und Karte nebeneinander
   stehen (ab 960px): Foto 200px, die Karte beginnt OBEN auf Hoehe des
   ersten Formularfelds, Name und Knopf stehen damit neben den Feldern.
   Aufgegeben wird dafuer die Regel vom September, dass "Abschicken" und
   "Zu allen Kontaktinformationen" auf einer Linie stehen.
   Zurueck zur alten Fassung: diesen Block loeschen.
   ============================================================ */
@media (min-width:960px){
  .kontakt{align-items:start}
  .kontakt__karte{align-content:start;padding-bottom:0}
  .kontakt__foto{width:200px}
}

/* ============================================================
   DATENSCHUTZHINWEIS AM FORMULAR LEISER, KNOPF NAEHER (07.10.2026, Anita)
   Gilt fuer beide Formulare (Startseite und Kontaktseite).
   - Hinweis 0.75rem statt 0.875rem. Die Farbe bleibt --farbe-schrift-leise:
     heller ginge nur unter dem Mindestkontrast von 4,5:1.
   - Der Link traegt die leise Farbe des Satzes statt der vollen
     Schriftfarbe, bleibt aber unterstrichen (einziges Linksignal).
   - Tippflaeche: Der Link bekommt oben und unten 8px unsichtbares Polster.
     Bei einem Inline-Element aendert das die Zeilenhoehe nicht, die
     Flaeche zum Treffen ist damit rund 34px hoch statt 18.
   - Absendeknopf 8px statt 24px unter dem Hinweis.
   ============================================================ */
.nachricht__datenschutz{font-size:0.75rem;line-height:1.5}
.nachricht__datenschutz a{color:inherit;padding-block:8px}
.kontakt__absenden,
.nachricht__senden-zeile{margin-top:8px}

/* Nennung der Gestalterin im gelben Balken (Versuch 07.10.2026).
   Am Rechner steht sie als drittes Element in der Zeile. Am Handy stehen
   die Elemente umgekehrt untereinander (column-reverse); order:-1 setzt
   die Nennung dort ganz nach unten, direkt unter die Zeile mit dem Jahr,
   beide im selben gelben Streifen. */
@media (max-width:767px){
  .fusszeile__balken .fusszeile__von{order:-1;padding-top:0;margin-top:-10px}
}

/* 07.10.2026: Nennung dezenter (Anita). Die ganze Zeile in der gedaempften
   Schriftfarbe, der Link ebenso. Die Unterstreichung bleibt, sonst ist der
   Link am Handy nicht zu erkennen; sie ist nur duenner. Kontrast auf dem
   Gelb 4,6:1, das reicht fuer kleinen Text (WCAG AA 4,5:1). Heller darf
   die Zeile deshalb nicht werden. */
.fusszeile__balken .fusszeile__von,
.fusszeile__balken .fusszeile__von a{color:var(--farbe-schrift-leise)}
.fusszeile__balken .fusszeile__von a{text-decoration-thickness:1px}
.fusszeile__balken .fusszeile__von a:hover{color:var(--farbe-schrift)}

/* 07.10.2026: Bildband der Unterseiten auf sehr schmalen Handys (Anita).
   Bei fester Hoehe von 150px zeigt ein 320px breites Handy nur noch 44 %
   der Fotobreite, ein 390er 54 %. Auf der Tagesbetreuung war dadurch der
   rechte Hund halb weg. Unter 390px schrumpft das Band jetzt im selben
   Verhaeltnis mit (Breite / 2,6), bei 320px ist es 123px hoch. So zeigt
   jedes Handy denselben Ausschnitt wie das 390er. Ab 390px bleibt es bei 150. */
@media (max-width:767px){
  .band--kontakt img{height:min(150px,calc(100vw / 2.6))}
}

/* 07.10.2026, EINE REGEL FUER ALLE BAENDER DER UNTERSEITEN (Anita: nicht
   jedes Band einzeln nachsehen muessen).
   Bis 449px traegt das Band das Seitenverhaeltnis 2,6:1 und waechst mit der
   Breite (320: 123px, 390: 150px, 449: 173px). Der Handy-Zuschnitt
   (1600x640 = 2,5:1) ist damit auf jedem Handy fast vollstaendig zu sehen,
   es fehlen nur je 2 % oben und unten. Im HTML gilt der Handy-Zuschnitt
   deshalb ueberall bis 449px: <source media="(max-width:449px)">.
   Ab 450px zeigt jede Breite den langen Streifen (3840x800). Von ihm ist
   immer mindestens die mittlere 60 % der Breite und mindestens 86 % der
   Hoehe zu sehen. Was in diesem Feld liegt, ist auf jedem Geraet im Bild.
   Die Regel fuer den Export steht in BILDER.md. */
@media (max-width:449px){
  .band--kontakt img{height:calc(100vw / 2.6)}
}
