/* DJ Felix Krüger · Startseite
   Designkonzept „Champagner-Empfang“ · zuerst Smartphone, ab 900px Desktop */

/* ---------- Schriften (lokal eingebunden, keine externen Server) ---------- */
/* Fließtext: Jost (SIL Open Font License, siehe assets/fonts/Jost-OFL.txt).
   Raleway bleibt als Datei und Regel liegen; zum Zurückwechseln nur --font-sans ändern. */
@font-face {
  font-family: "Jost";
  src: url("../assets/fonts/Jost-Variable.ttf") format("truetype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Raleway";
  src: url("../assets/fonts/Raleway-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Raleway";
  src: url("../assets/fonts/Raleway-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Raleway";
  src: url("../assets/fonts/Raleway-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* Überschriften: Bodoni Moda (SIL Open Font License, Lizenztext in assets/fonts).
   Liegt später TAN Harmoni mit Webfont-Lizenz vor: hier per @font-face ergänzen,
   sie steht in --font-display bereits an erster Stelle. */
@font-face {
  font-family: "Bodoni Moda";
  src: url("../assets/fonts/BodoniModa-Variable.ttf") format("truetype");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Bodoni Moda";
  src: url("../assets/fonts/BodoniModa-Italic-Variable.ttf") format("truetype");
  font-weight: 400 900;
  font-style: italic;
  font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
  --champagner: #CFAE80;
  --sandstein: #E7DCCB;
  --bronze: #7A5A2E;
  --bronze-dunkel: #634822;
  --off-white: #F2EFEB;
  --tinte: #0A0118;
  --tinte-gedaempft: #4A4453;

  --font-display: "TAN Harmoni", "Bodoni Moda", "Bodoni 72", Didot, Georgia, serif;
  --font-sans: "Jost", system-ui, sans-serif;

  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-pill: 999px;

  --rand: 24px;
  --abschnitt: 64px;
  --inhalt: 1200px;
}

/* ---------- Basis ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 88px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--off-white);
  color: var(--tinte);
  font-family: var(--font-sans);
  font-feature-settings: "lnum" 1;
  font-size: 16px;
  line-height: 1.6;
}

img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
strong { font-weight: 600; }

a { color: var(--bronze); }
a:hover { color: var(--bronze-dunkel); }
:focus-visible { outline: 2px solid var(--tinte); outline-offset: 3px; }

/* Bodoni Moda in der kräftigeren Fassung: "opsz" 11 wählt den Schnitt für kleine Größen mit dickeren
   Haarlinien, dazu etwas mehr Gewicht. Sonst brechen die feinen Striche am Smartphone weg. */
h1, h2, h3, .zahl, .zitat-gross blockquote, .schritt-nr, .locations, .referenzen.ziele {
  font-family: var(--font-display);
  font-weight: 600;
  font-variation-settings: "opsz" 11;
}
h1, h2 { text-wrap: balance; }
h1 { font-size: 40px; line-height: 1.08; }
h2 { font-size: 30px; line-height: 1.2; }
h3 { font-size: 22px; line-height: 1.3; }

.skip {
  position: absolute; left: 16px; top: -100px;
  padding: 12px 16px; background: var(--tinte); color: var(--off-white);
  border-radius: var(--radius-sm); z-index: 10;
}
.skip:focus { top: 16px; color: var(--off-white); }

/* ---------- Bausteine ---------- */
.abschnitt { padding: var(--abschnitt) var(--rand); }
.innen { max-width: var(--inhalt); margin: 0 auto; display: flex; flex-direction: column; gap: 28px; }
.sand { background: var(--sandstein); }
.hell { background: var(--off-white); }

.overline {
  font-size: 12px; font-weight: 600; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--bronze); line-height: 1.4;
}
.kopf { display: flex; flex-direction: column; gap: 8px; }
.kopf p { margin-top: 8px; }
.stapel { display: flex; flex-direction: column; gap: 16px; }
.linie-oben { padding-top: 16px; border-top: 1px solid var(--champagner); }
.bild { width: 100%; object-fit: cover; border-radius: var(--radius-sm); }

.button {
  display: flex; align-items: center; justify-content: center;
  min-height: 52px; padding: 0 28px; border: 0; border-radius: var(--radius-pill);
  background: var(--bronze); color: var(--off-white);
  font-family: inherit; font-size: 16px; font-weight: 600; letter-spacing: 0.04em;
  text-decoration: none; cursor: pointer;
}
.button:hover { background: var(--bronze-dunkel); color: var(--off-white); }
.button-rahmen {
  display: flex; align-items: center; min-height: 44px; padding: 0 18px;
  border: 1.5px solid var(--tinte); border-radius: var(--radius-pill);
  color: var(--tinte); font-size: 14px; font-weight: 600; letter-spacing: 0.04em;
  text-decoration: none;
}
.button-rahmen:hover { background: var(--tinte); color: var(--off-white); }

.sterne { fill: var(--bronze); flex-shrink: 0; }
.textlink { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }

/* ---------- Kopfzeile (bleibt beim Scrollen sichtbar) ---------- */
.kopfleiste {
  position: sticky; top: 0; z-index: 5;
  padding: 8px var(--rand);
  background: var(--sandstein); border-bottom: 1px solid var(--champagner);
}
.kopfleiste .innen { gap: 0; }
.kopfzeile { display: flex; justify-content: space-between; align-items: center; }
.kopfzeile .logo img { width: auto; height: 60px; }

/* ---------- Start ---------- */
.start { padding: 32px var(--rand) 48px; }
.hauptnav { display: none; }
.start-raster { display: flex; flex-direction: column; gap: 28px; }
.start-text { display: flex; flex-direction: column; gap: 16px; }
.einleitung { font-size: 18px; line-height: 1.55; }
.start-aktion { display: flex; flex-direction: column; gap: 16px; }
.vertrauen {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  font-size: 15px; font-weight: 500; line-height: 1.5; text-align: center;
}
.start-bild { height: 400px; object-position: 50% 30%; }

/* ---------- Stimmen ---------- */
.stimmen-liste { display: grid; gap: 16px; }
.stimme {
  padding: 24px; border-radius: var(--radius-md); background: var(--sandstein);
  display: flex; flex-direction: column; gap: 12px;
}
.stimme blockquote { flex-grow: 1; }
.stimme figcaption, .zitat-gross figcaption { font-size: 15px; font-weight: 500; color: var(--tinte-gedaempft); }
.zahlen {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px;
  padding: 28px 0; border-top: 1px solid var(--champagner); border-bottom: 1px solid var(--champagner);
}
.zahl { font-size: 34px; line-height: 1.2; }
.zahlen { margin: 0; }
.zahlen dd { margin: 0; font-size: 15px; line-height: 1.5; }
.locations { display: grid; gap: 4px; font-size: 20px; line-height: 1.4; }

/* ---------- Musik ---------- */
.musik-bild { height: auto; aspect-ratio: 1 / 1; }
.punkte { display: flex; flex-direction: column; gap: 24px; }
.punkt { display: flex; flex-direction: column; gap: 6px; }
.zitat-gross {
  padding: 24px; border-radius: var(--radius-md); background: var(--off-white);
  display: flex; flex-direction: column; gap: 12px;
}
.zitat-gross blockquote { font-style: italic; font-size: 19px; line-height: 1.45; }

/* ---------- Der ganze Tag ---------- */
.tag-bild { height: auto; aspect-ratio: 1 / 1; }
.tag-aufbau { aspect-ratio: 4 / 3; }
.leistungen { display: grid; gap: 24px; }
.leistung { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 6px 16px; }
.leistung svg { grid-row: span 2; margin-top: 2px; stroke: var(--bronze); }
.leistung h3, .leistung p { grid-column: 2; }
.beispiel {
  padding: 24px; border-radius: var(--radius-md); background: var(--sandstein);
  display: flex; flex-direction: column; gap: 8px;
}

/* ---------- Über mich ---------- */
.ueber-bild { height: 256px; object-position: 40% 20%; }

/* ---------- Ablauf ---------- */
.schritte { display: grid; gap: 24px; }
.schritt { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 6px 16px; }
.schritt-nr { grid-row: span 2; font-size: 28px; line-height: 1.1; color: var(--bronze); }
.ablauf-aktion { display: flex; flex-direction: column; gap: 28px; }

/* ---------- Häufige Fragen ---------- */
.fragen { display: grid; }
.frage { padding: 20px 0; border-top: 1px solid var(--champagner); display: flex; flex-direction: column; gap: 8px; }
.frage:last-child { border-bottom: 1px solid var(--champagner); }
.frage h3 { font-family: var(--font-sans); font-variation-settings: normal; font-size: 18px; font-weight: 600; line-height: 1.35; }

/* ---------- Andere Anlässe ---------- */
.anlaesse { padding-top: 56px; padding-bottom: 56px; }
.anlaesse .innen { gap: 12px; }
.anlaesse h2 { font-size: 26px; line-height: 1.25; }
.referenzen { font-weight: 600; display: grid; gap: 4px; }

/* ---------- Anfrage ---------- */
.formular { display: grid; gap: 20px; }
.feld { display: flex; flex-direction: column; gap: 6px; }
.feld label { font-size: 15px; font-weight: 600; }
.feld label span { font-weight: 400; color: var(--tinte-gedaempft); }
.feld input, .feld select, .feld textarea {
  width: 100%; min-height: 52px; padding: 0 16px;
  border: 1px solid var(--tinte-gedaempft); border-radius: var(--radius-sm);
  background: var(--off-white); color: var(--tinte);
  font-family: inherit; font-size: 16px;
}
.feld textarea { min-height: 140px; padding: 14px 16px; line-height: 1.5; resize: vertical; }
.hinweis { font-size: 15px; line-height: 1.5; }
.hinweis a { font-weight: 600; }
.direkt { display: flex; flex-direction: column; gap: 4px; padding-top: 20px; border-top: 1px solid var(--champagner); }

/* Spamschutz-Feld: für Menschen unsichtbar, bleibt leer */
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Unterseiten (Impressum, Datenschutz, Danke, Fehlermeldung) ---------- */
.unterseite { padding: 48px var(--rand) var(--abschnitt); }
.unterseite .innen { max-width: 720px; margin: 0; gap: 20px; }
.unterseite h1 { font-size: 36px; line-height: 1.1; }
.unterseite h2 { font-size: 24px; line-height: 1.25; margin-top: 16px; }
.unterseite address { font-style: normal; }
.unterseite ul.liste { list-style: disc; padding-left: 20px; display: grid; gap: 6px; }
.unterseite .button { align-self: flex-start; }
.platzhalter {
  padding: 24px; border: 2px dashed var(--bronze); border-radius: var(--radius-md);
  background: var(--sandstein); display: flex; flex-direction: column; gap: 12px;
}

/* ---------- Fußbereich ---------- */
.fuss { background: var(--tinte); color: var(--off-white); padding: 48px var(--rand); }
.fuss .innen { gap: 24px; }
.fuss .logo img { width: 120px; }
.fuss nav { display: flex; flex-wrap: wrap; gap: 0 24px; }
.fuss nav a { display: flex; align-items: center; min-height: 44px; }
.fuss .social a { color: var(--champagner); font-weight: 600; }
.fuss .orte { font-size: 15px; }
.fuss .orte span { display: flex; align-items: center; min-height: 44px; color: var(--champagner); font-weight: 600; }
.fuss .orte a { color: var(--off-white); }
.fuss .recht { padding-top: 16px; border-top: 1px solid var(--tinte-gedaempft); }
.fuss .recht a { color: var(--off-white); }
.fuss a:hover { color: var(--sandstein); }
.copyright { font-size: 15px; color: var(--sandstein); }

/* ---------- Desktop ---------- */
@media (min-width: 900px) {
  :root { --rand: clamp(40px, 8vw, 120px); --abschnitt: 96px; }

  body { font-size: 17px; line-height: 1.65; }
  h1 { font-size: clamp(48px, 4.6vw, 64px); line-height: 1.05; }
  h2 { font-size: 40px; line-height: 1.15; }
  h3 { font-size: 26px; line-height: 1.25; }
  .overline { font-size: 13px; }
  .innen { gap: 48px; }
  .kopf p { margin-top: 12px; }
  .button { min-height: 56px; padding: 0 32px; align-self: flex-start; }

  /* Start */
  html { scroll-padding-top: 104px; }
  .kopfleiste { padding: 10px var(--rand); }
  .kopfleiste .innen { gap: 0; }
  .kopfzeile .logo img { height: 72px; }
  .start { padding: 56px var(--rand) 88px; }
  .mobil-anfragen { display: none; }
  .hauptnav { display: flex; align-items: center; gap: clamp(18px, 2.4vw, 36px); font-size: 15px; font-weight: 500; }
  .hauptnav a:not(.button-rahmen) { color: var(--tinte); text-decoration: none; }
  .hauptnav a:not(.button-rahmen):hover { color: var(--bronze); }
  .start-raster { flex-direction: row; align-items: center; gap: clamp(40px, 5.5vw, 80px); }
  .start-links { flex: 1; display: flex; flex-direction: column; gap: 32px; }
  .start-text { gap: 24px; }
  .einleitung { font-size: 20px; max-width: 540px; }
  .start-aktion { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
  .start-aktion .button { align-self: center; flex-shrink: 0; white-space: nowrap; }
  .vertrauen { align-items: flex-start; text-align: left; gap: 4px; white-space: nowrap; }
  .start-bild { width: 40%; max-width: 480px; height: 600px; flex-shrink: 0; }

  /* Stimmen */
  .stimmen-liste { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  .stimme { padding: 32px; gap: 16px; }
  .zahlen { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding: 40px 0; }
  .zahl { font-size: 44px; line-height: 1.15; }
  .zahlen dd { font-size: 16px; }
  .locations { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; font-size: 22px; line-height: 1.3; }
  .locations span { display: block; }

  /* Unterseiten */
  .unterseite { padding: 72px var(--rand) var(--abschnitt); }
  .unterseite .innen { margin: 0 auto; max-width: var(--inhalt); }
  .unterseite .innen > * { max-width: 720px; }
  .unterseite h1 { font-size: 48px; }
  .unterseite h2 { font-size: 28px; }

  /* Musik */
  .zweispaltig { display: flex; align-items: center; gap: clamp(40px, 5.5vw, 80px); }
  .zweispaltig > .spalte { flex: 1; display: flex; flex-direction: column; gap: 28px; }
  .musik-bild { width: 42%; max-width: 500px; height: 640px; aspect-ratio: auto; flex-shrink: 0; object-position: 30% 50%; }
  .punkte { gap: 20px; }
  .punkt { gap: 4px; }
  .zitat-gross { padding: 40px 48px; gap: 16px; }
  .zitat-gross blockquote { font-size: 26px; line-height: 1.4; }

  /* Der ganze Tag */
  .tag-raster { display: flex; align-items: flex-start; gap: 64px; }
  .tag-bild { width: 34%; max-width: 400px; height: 600px; aspect-ratio: auto; flex-shrink: 0; object-position: 5% 50%; }
  .tag-aufbau { aspect-ratio: 2 / 1; object-position: 50% 80%; }
  .leistungen { flex: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
  .leistung { grid-template-columns: minmax(0, 1fr); gap: 10px; align-content: start; }
  .leistung svg { grid-row: auto; margin-top: 0; }
  .leistung h3, .leistung p { grid-column: 1; }
  .beispiel p { font-size: 16px; line-height: 1.6; }

  /* Über mich */
  .ueber .zweispaltig { flex-direction: row-reverse; }
  .ueber-bild { width: 46%; max-width: 560px; height: 440px; flex-shrink: 0; object-position: 45% 20%; }

  /* Ablauf */
  .schritte { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .schritt { grid-template-columns: minmax(0, 1fr); gap: 8px; align-content: start; padding-top: 20px; border-top: 1px solid var(--champagner); }
  .schritt-nr { grid-row: auto; font-size: 40px; }
  .schritt h3 { font-size: 22px; line-height: 1.3; }
  .schritt p { font-size: 16px; line-height: 1.6; }
  .ablauf-aktion { flex-direction: row-reverse; justify-content: flex-end; align-items: center; gap: 32px; }
  .ablauf-aktion .linie-oben { padding-top: 0; border-top: 0; }

  /* Häufige Fragen */
  .fragen { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 64px; }
  .frage { padding: 24px 0; }
  .frage:nth-last-child(2) { border-bottom: 1px solid var(--champagner); }
  .frage h3 { font-size: 19px; }

  /* Andere Anlässe */
  .anlaesse { padding-top: 72px; padding-bottom: 72px; }
  .anlaesse .innen { flex-direction: row; align-items: center; gap: 80px; }
  .anlaesse .kopf { flex: 1; }
  .anlaesse h2 { font-size: 30px; line-height: 1.2; }
  .referenzen { width: 420px; flex-shrink: 0; gap: 0; }
  .referenzen li { padding: 12px 0; border-bottom: 1px solid var(--champagner); }

  /* Anfrage */
  .anfrage .innen { flex-direction: row; align-items: flex-start; gap: clamp(40px, 5.5vw, 80px); }
  .anfrage-text { width: 400px; flex-shrink: 0; display: flex; flex-direction: column; gap: 28px; }
  .formular {
    flex: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px;
    padding: 40px; border-radius: var(--radius-md); background: var(--off-white);
  }
  .formular .breit { grid-column: 1 / -1; }
  .formular .button { justify-self: start; }

  /* Fußbereich */
  .fuss { padding: 56px var(--rand) 40px; }
  .fuss .innen { gap: 32px; }
  .fuss-oben { display: flex; align-items: center; gap: 48px; }
  .fuss-oben p { flex: 1; }
  .fuss .logo img { width: 124px; }
  .fuss-unten { display: flex; justify-content: space-between; align-items: center; padding-top: 16px; border-top: 1px solid var(--tinte-gedaempft); font-size: 15px; }
  .fuss .recht { padding-top: 0; border-top: 0; }
}

/* Smartphone: Blöcke, die erst am Desktop nebeneinander stehen */
@media (max-width: 899px) {
  .start-links, .zweispaltig, .zweispaltig > .spalte, .tag-raster, .anfrage-text, .fuss-oben, .fuss-unten {
    display: flex; flex-direction: column; gap: 28px;
  }
  .fuss-oben, .fuss-unten { gap: 24px; }
  .fuss-unten { flex-direction: column-reverse; gap: 16px; }
  /* Musik: Überschrift vor dem Bild, obwohl das Bild im HTML zuerst steht */
  .musik .zweispaltig > .spalte { display: contents; }
  .musik .kopf { order: 1; }
  .musik .musik-bild { order: 2; }
  .musik .punkte { order: 3; }
  .musik .nicht { order: 4; }
  /* Anfrage: direkter Kontakt erst nach dem Formular */
  .anfrage .anfrage-text { display: contents; }
  .anfrage .kopf { order: 1; }
  .anfrage .formular { order: 2; }
  .anfrage .direkt { order: 3; }
}

/* ---------- Einwilligung (Banner und Link im Fußbereich) ---------- */
.cookie-link {
  display: flex; align-items: center; min-height: 44px; padding: 0;
  border: 0; background: none; color: var(--off-white);
  font: inherit; text-decoration: underline; cursor: pointer;
}
.cookie-link:hover { color: var(--sandstein); }
.einwilligung {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 20;
  padding: 20px var(--rand);
  background: var(--off-white); border-top: 1px solid var(--champagner);
  box-shadow: 0 -12px 32px rgba(10, 1, 24, 0.08);
}
.einwilligung-innen { max-width: var(--inhalt); margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.einwilligung-text { display: flex; flex-direction: column; gap: 6px; font-size: 15px; line-height: 1.5; }
.einwilligung h2 { font-size: 22px; line-height: 1.25; }
.einwilligung-stand { font-weight: 600; }
.einwilligung-knoepfe { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.einwilligung-knoepfe .button-rahmen {
  justify-content: center; min-height: 48px; background: transparent;
  font-family: inherit; font-size: 15px; cursor: pointer;
}
.einwilligung-knoepfe .button-rahmen:hover { background: var(--tinte); color: var(--off-white); }
@media (min-width: 900px) {
  .einwilligung-innen { flex-direction: row; align-items: center; gap: 48px; }
  .einwilligung-text { flex: 1; max-width: 760px; }
  .einwilligung-knoepfe { width: 360px; flex-shrink: 0; }
}

/* ---------- Unterseiten für Anlässe (Firmenfeiern, Geburtstage) ---------- */
.referenzen a {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  min-height: 48px; text-decoration: none; border-bottom: 1px solid var(--champagner);
}
.hauptnav a[aria-current="page"] { color: var(--bronze); }
.fuss .seiten a { color: var(--off-white); }
.logoliste { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.logoliste img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; background: #fff; border: 1px solid var(--champagner); border-radius: var(--radius-md); }
.abschluss .innen { gap: 20px; }
@media (min-width: 900px) {
  .referenzen li:has(a) { padding: 0; border-bottom: 0; }
  .leistungen.drei { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .schritte.vier { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .logoliste { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 16px; }
  .stimmen-liste.zwei { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .abschluss .innen { align-items: flex-start; }
}

/* Formular auf hellem Abschnitt (Firmenfeiern): Karte in Sandstein statt Off White */
@media (min-width: 900px) {
  .anfrage.hell .formular { background: var(--sandstein); }
}

/* Zielliste auf der Destination-Seite */
.referenzen.ziele { width: auto; gap: 0; font-size: 20px; line-height: 1.4; }
.referenzen.ziele li { padding: 10px 0; border-bottom: 1px solid var(--champagner); }

/* ---------- Location-Seiten ---------- */
.start-video { display: block; width: 100%; aspect-ratio: 16 / 9; background: var(--tinte); border-radius: var(--radius-sm); }
.liste { list-style: disc; padding-left: 20px; display: grid; gap: 6px; }
.zwei-spalten .kopf > p { margin-top: 8px; }
@media (min-width: 900px) {
  .start-video { width: 52%; flex-shrink: 0; }
  .innen.zwei-spalten { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; align-items: start; }
}
.fotos { display: grid; gap: 16px; }
.fotos img { aspect-ratio: 4 / 3; height: auto; }
@media (min-width: 900px) {
  .fotos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .fotos.eins { grid-template-columns: minmax(0, 1fr); }
  .fotos.eins img { aspect-ratio: 21 / 9; }
}

/* ---------- Artikel aus dem früheren Blog (nicht verlinkt, nur über ihre alten Adressen erreichbar) ---------- */
.artikel h2 { margin-top: 20px; }
.artikel h2 strong, .artikel h3 strong { font-weight: inherit; }
.artikel ul, .artikel ol { padding-left: 22px; display: grid; gap: 6px; }
.artikel ul { list-style: disc; }
.artikel ol { list-style: decimal; }
.artikelbild { margin: 8px 0; display: flex; flex-direction: column; gap: 8px; }
.artikelbild img { width: 100%; height: auto; border-radius: var(--radius-sm); }
.artikelbild figcaption { font-size: 15px; color: var(--tinte-gedaempft); }
.artikel-schluss {
  margin-top: 24px; padding: 24px; border-radius: var(--radius-md); background: var(--sandstein);
  display: flex; flex-direction: column; gap: 16px;
}

/* Hochformat-Porträt im Abschnitt „Ich bin Felix“ */
.ueber-bild.hoch { height: 440px; object-position: 50% 30%; }
@media (min-width: 900px) {
  .ueber-bild.hoch { width: 38%; max-width: 440px; height: 620px; object-position: 50% 30%; }
}

/* ---------- Terminbuchung (Link neben dem Formular, Kalender auf der Danke-Seite) ---------- */
.termin { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding-top: 20px; border-top: 1px solid var(--champagner); }
.termin .button-rahmen { min-height: 48px; padding: 0 22px; font-size: 15px; }
.kalender {
  padding: 24px; border-radius: var(--radius-md); background: var(--sandstein);
  display: flex; flex-direction: column; align-items: flex-start; gap: 12px;
}
.kalender.geladen { padding: 0; background: none; display: block; }
.kalender-rahmen { display: block; width: 100%; height: 720px; border: 0; border-radius: var(--radius-md); background: #fff; }
@media (min-width: 900px) {
  .unterseite .innen > .kalender.geladen { max-width: 100%; }
}
@media (max-width: 899px) {
  .anfrage .termin { order: 3; }
  .anfrage .direkt { order: 4; }
}

.kalender p { max-width: 720px; }

/* ---------- Einblenden beim Scrollen (js/einblenden.js setzt die Klassen) ---------- */
.ein { opacity: 0; transform: translateY(14px); transition: opacity 0.6s ease, transform 0.6s ease; }
.ein.sichtbar { opacity: 1; transform: none; }
