/* =====================================================================
   Praxis Schreiber, Wettenberg — Stylesheet
   Palette und Materialien stammen aus dem Foto des Praxisraums:
   helles Eichenholz, petrolfarbene Sessel, Pflanzengrün, Wandweiß.
   Keine externen Ressourcen.
   ===================================================================== */

:root{
  /* Farben aus dem Raum */
  --paper:      #f6f4f0;   /* Wandweiß, Grundfläche */
  --paper-warm: #efebe4;   /* Abschnittswechsel */
  --white:      #fffdfa;
  --petrol:     #2b3b47;   /* Sessel */
  --petrol-dk:  #1f2c36;
  --petrol-lt:  #4a606f;
  --oak:        #c9a87c;   /* Dielenboden */
  --oak-dk:     #9a7b4f;
  --green:      #4f6b55;   /* Pflanzen */
  --ink:        #1a2228;
  --ink-soft:   #3c4a52;
  --muted:      #5e6b72;
  --line:       #ded7cc;
  --line-soft:  #e9e3da;

  --serif: 'Source Serif 4', 'Iowan Old Style', Palatino, Georgia, serif;
  --sans:  'Inter Tight', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  --wrap: 1140px;
  --gutter: clamp(1.25rem, 5vw, 3.5rem);
  --r: 3px;
  --r-lg: 6px;
  --shadow: 0 1px 3px rgba(26,34,40,.07), 0 8px 24px -12px rgba(26,34,40,.14);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif);
  font-size:clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
  font-weight:400;
  line-height:1.7;
  font-optical-sizing:auto;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; height:auto; display:block; }
hr{ border:0; border-top:1px solid var(--line); margin:3rem 0; }

/* ---------- Typografie: Sprung H1 : Fließtext ≈ 3,2× ---------- */
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; line-height:1.14; margin:0 0 .55em; text-wrap:balance; }
h1{ font-size:clamp(2.35rem, 1.5rem + 3.4vw, 3.75rem); letter-spacing:-.022em; line-height:1.08; }
h2{ font-size:clamp(1.65rem, 1.25rem + 1.7vw, 2.4rem); letter-spacing:-.015em; }
h3{ font-size:clamp(1.2rem, 1.08rem + 0.5vw, 1.4rem); letter-spacing:-.008em; }
h4{ font-size:1.05rem; }

p{ margin:0 0 1.15em; max-width:66ch; }
a{ color:var(--petrol); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.2em; text-decoration-color:var(--oak); }
a:hover{ color:var(--green); text-decoration-color:currentColor; }
strong{ font-weight:600; }

:focus-visible{ outline:3px solid var(--oak-dk); outline-offset:3px; border-radius:2px; }

.lead{ font-size:1.16em; line-height:1.55; color:var(--ink-soft); max-width:56ch; }
.small{ font-family:var(--sans); font-size:.88rem; color:var(--muted); }
.meta{ font-family:var(--sans); font-size:.82rem; color:var(--muted); letter-spacing:.02em; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
/* Schmale Spalte, aber nicht zentriert: die linke Kante bleibt dieselbe wie
   überall sonst auf der Seite, nur die Zeilenlänge wird begrenzt. */
.wrap--narrow > *{ max-width:780px; margin-inline:0; }
.wrap--narrow > .crumbs{ max-width:none; }

/* ---------- Sprungmarke ---------- */
.skip{ position:absolute; left:-9999px; z-index:300; background:var(--petrol); color:#fff;
  font-family:var(--sans); font-size:.95rem; padding:.8rem 1.2rem; text-decoration:none; }
.skip:focus{ left:.75rem; top:.75rem; }

/* ---------- Servicezeile ---------- */
.topbar{ background:var(--petrol-dk); color:#b9c7d0; font-family:var(--sans); font-size:.85rem; }
.topbar .wrap{ display:flex; flex-wrap:wrap; align-items:center; gap:.3rem 1.6rem; min-height:2.5rem; padding-block:.35rem; }
.topbar a{ color:#fff; text-decoration:none; }
.topbar a:hover{ color:#fff; text-decoration:underline; }
.topbar .tb-note{ margin-right:auto; }

/* ---------- Kopfzeile ---------- */
.masthead{ position:sticky; top:0; z-index:200; background:rgba(246,244,240,.93);
  backdrop-filter:saturate(160%) blur(10px); border-bottom:1px solid var(--line); }
.masthead .wrap{ display:flex; align-items:center; gap:clamp(1rem,2.5vw,2.5rem); min-height:4.75rem; }

.brand{ display:flex; align-items:center; gap:.75rem; text-decoration:none; color:var(--ink); flex:0 0 auto; }
.brand:hover{ color:var(--ink); }
.brand-mark{ flex:0 0 auto; color:var(--green); }
.brand-name{ display:block; font-size:1.12rem; font-weight:600; line-height:1.1;
  letter-spacing:-.015em; white-space:nowrap; }
.brand-sub{ display:block; font-family:var(--sans); font-size:.72rem; font-weight:500; color:var(--muted); letter-spacing:.09em; text-transform:uppercase; margin-top:.2rem; }

.nav{ margin-left:auto; }
.nav ul{ display:flex; align-items:center; gap:clamp(.9rem, 1.6vw, 1.6rem);
  list-style:none; margin:0; padding:0; }
/* Ein Eintrag, eine Zeile. Ein umbrechender Menüpunkt lässt die ganze
   Leiste unruhig wirken, deshalb hier ausdrücklich kein Umbruch. */
.nav a{ font-family:var(--sans); font-size:.93rem; font-weight:450; color:var(--ink-soft);
  text-decoration:none; white-space:nowrap; padding-block:.35rem;
  border-bottom:2px solid transparent; display:inline-block; }
.nav a:hover{ color:var(--green); border-bottom-color:var(--oak); }
.nav a[aria-current="page"]{ color:var(--petrol); font-weight:600; border-bottom-color:var(--petrol); }
.nav .nav-cta a{ border:0; background:var(--petrol); color:#fff; border-radius:var(--r); padding:.6rem 1.1rem; }
.nav .nav-cta a:hover{ background:var(--petrol-dk); color:#fff; }

.nav-toggle{ display:none; margin-left:auto; align-items:center; gap:.55rem; cursor:pointer;
  font-family:var(--sans); font-size:.93rem; background:var(--petrol); color:#fff;
  border:0; border-radius:var(--r); padding:.65rem 1rem; }

@media (max-width:1040px){
  .nav-toggle{ display:inline-flex; }
  .masthead .wrap{ flex-wrap:wrap; padding-bottom:.25rem; }
  .nav{ display:none; flex-basis:100%; margin-left:0; }
  .nav[data-open="true"]{ display:block; }
  .nav ul{ flex-direction:column; align-items:stretch; gap:0; padding-bottom:.5rem; }
  .nav li{ border-top:1px solid var(--line-soft); }
  .nav a{ padding:.9rem .2rem; border-bottom:0; white-space:normal; }
  .nav .nav-cta{ border-top:0; padding-top:.75rem; }
  .nav .nav-cta a{ text-align:center; }
  .topbar .tb-note{ display:none; }
}

/* ---------- Knöpfe ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--sans); font-size:.97rem; font-weight:500; line-height:1.1;
  padding:.9rem 1.5rem; border-radius:var(--r); border:1.5px solid var(--petrol);
  text-decoration:none; cursor:pointer; transition:background-color .18s, color .18s, border-color .18s; }
.btn-primary{ background:var(--petrol); color:#fff; }
.btn-primary:hover{ background:var(--petrol-dk); border-color:var(--petrol-dk); color:#fff; }
.btn-ghost{ background:transparent; color:var(--petrol); }
.btn-ghost:hover{ background:rgba(43,59,71,.07); color:var(--petrol-dk); }
.btn-light{ background:var(--white); color:var(--petrol); border-color:var(--white); }
.btn-light:hover{ background:var(--paper-warm); color:var(--petrol-dk); border-color:var(--paper-warm); }
.btn-row{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.75rem; }
.btn-block{ width:100%; }

/* ---------- Abschnitte ---------- */
.section{ padding-block:clamp(3.25rem, 7vw, 5.75rem); }
.section--warm{ background:var(--paper-warm); }
.section--petrol{ background:var(--petrol-dk); color:#cfdae1; }
.section--petrol h2,.section--petrol h3{ color:#fff; }
.section--petrol a:not(.btn){ color:#fff; text-decoration-color:var(--oak); }
.section--petrol .lead{ color:#b9c7d0; }
.section-head{ max-width:60ch; margin-bottom:2.75rem; }
.section-head p{ color:var(--ink-soft); margin-bottom:0; }
.section--petrol .section-head p{ color:#b9c7d0; }

/* ---------- Hero: Praxisraum, stark aufgehellt ---------- */
.hero{ position:relative; border-bottom:1px solid var(--line); isolation:isolate; overflow:hidden; }
.hero::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background-image:image-set(url('../img/praxisraum-1600.jpg') 1x);
  background-size:cover; background-position:52% 60%;
}
.hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(105deg, rgba(246,244,240,.985) 0%, rgba(246,244,240,.955) 46%, rgba(246,244,240,.72) 72%, rgba(246,244,240,.55) 100%),
    linear-gradient(to bottom, rgba(246,244,240,.5), rgba(246,244,240,.85));
}
@media (max-width:860px){
  .hero::before{ background-position:60% 55%; }
  .hero::after{ background:linear-gradient(to bottom, rgba(246,244,240,.94), rgba(246,244,240,.985)); }
}
.hero .wrap{ padding-block:clamp(3rem, 7vw, 6rem); }
.hero-grid{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,4.4fr); gap:clamp(2rem,5vw,4.5rem); align-items:start; }
@media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; } }

.hero h1{ margin-bottom:.45em; }
.hero .lead{ max-width:52ch; }
.hero-sig{ display:flex; align-items:center; gap:1rem; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line); max-width:34rem; }
.hero-sig img{ width:52px; height:52px; border-radius:50%; object-fit:cover; object-position:50% 28%; flex:0 0 auto; }
.hero-sig div{ font-family:var(--sans); font-size:.88rem; line-height:1.45; color:var(--ink-soft); }
.hero-sig strong{ display:block; color:var(--ink); font-weight:600; }

/* Kontaktkarte */
.card-contact{ background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:1.65rem 1.75rem; box-shadow:var(--shadow); }
.card-contact h2{ font-size:1.15rem; margin-bottom:1.1rem; }
.card-contact dl{ margin:0; font-family:var(--sans); font-size:.94rem; }
.card-contact dt{ font-size:.76rem; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); margin-top:1.1rem; }
.card-contact dt:first-of-type{ margin-top:0; }
.card-contact dd{ margin:.15rem 0 0; color:var(--ink); }
.card-contact dd a{ text-decoration:none; }
.card-contact dd a:hover{ text-decoration:underline; }
.card-contact .btn{ margin-top:1.5rem; }
.card-contact .card-note{ font-family:var(--sans); font-size:.8rem; color:var(--muted); margin:1rem 0 0; line-height:1.45; }

/* Auftakt-Bewegung: genau ein Moment auf der ganzen Seite */
.rise{ animation:rise .75s cubic-bezier(.21,.6,.35,1) both; }
.rise-2{ animation-delay:.14s; }
@keyframes rise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .rise{ animation:none; } }

/* ---------- ECP-Siegel ---------- */
.credential{ display:flex; align-items:center; gap:1.1rem; margin-top:1.75rem;
  padding:1rem 1.2rem; background:rgba(255,253,250,.75); border:1px solid var(--line);
  border-left:3px solid var(--oak); border-radius:var(--r); max-width:34rem; }
.credential img{ width:48px; height:58px; object-fit:contain; flex:0 0 auto; }
.credential p{ margin:0; font-family:var(--sans); font-size:.86rem; line-height:1.5; color:var(--ink-soft); max-width:none; }
.credential strong{ color:var(--ink); }

/* ---------- Leistungen als Zeilen ---------- */
.offers{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.offers li{ border-bottom:1px solid var(--line); }
.offers a{ display:grid; grid-template-columns:2.75rem minmax(0,1fr) auto; gap:1.6rem;
  align-items:start; padding:1.9rem 1rem 1.9rem 1.1rem; text-decoration:none; color:inherit;
  border-left:3px solid transparent; transition:border-color .18s, background-color .18s; }
.offers a:hover{ border-left-color:var(--oak); background:rgba(239,235,228,.6); color:inherit; }
.offers .ico{ color:var(--green); margin-top:.25rem; }
.offers h3{ margin:0 0 .3em; }
.offers p{ margin:0; font-size:.98rem; color:var(--ink-soft); max-width:60ch; }
.offers .go{ align-self:center; font-family:var(--sans); font-size:.9rem; color:var(--petrol); white-space:nowrap; }
@media (max-width:680px){
  .offers a{ grid-template-columns:2.25rem minmax(0,1fr); gap:1rem; padding-inline:.6rem; }
  .offers .go{ display:none; }
}

/* ---------- Anliegen (zwei Spalten Text) ---------- */
.concerns{ column-count:2; column-gap:3.5rem; max-width:none; }
.concerns li{ break-inside:avoid; margin-bottom:1.1rem; padding-left:1.6rem; position:relative; list-style:none; }
.concerns li::before{ content:""; position:absolute; left:0; top:.62em; width:.5rem; height:.5rem; border-radius:50%; background:var(--green); }
.concerns{ padding:0; margin:0; }
@media (max-width:760px){ .concerns{ column-count:1; } }

/* ---------- Fließtext ---------- */
.prose > h2{ margin-top:2.5em; }
.prose > h2:first-child{ margin-top:0; }
.prose > h3{ margin-top:2em; }
.prose ul,.prose ol{ max-width:66ch; margin:0 0 1.35em; }
.prose ul{ list-style:none; padding-left:0; }
.prose ul li{ position:relative; padding-left:1.6rem; margin-bottom:.6em; }
.prose ul li::before{ content:""; position:absolute; left:0; top:.68em; width:.45rem; height:.45rem; border-radius:50%; background:var(--oak); }
.prose ol{ padding-left:1.3rem; }
.prose ol li{ margin-bottom:.6em; padding-left:.3rem; }

.pull{ margin:2.75rem 0; padding-left:1.65rem; border-left:3px solid var(--oak);
  font-size:1.3em; line-height:1.45; font-style:italic; color:var(--ink); }
.pull p{ margin:0; max-width:34ch; }

.callout{ background:var(--white); border:1px solid var(--line); border-left:3px solid var(--green);
  border-radius:var(--r); padding:1.4rem 1.6rem; margin:2.25rem 0; }
.callout h3{ font-size:1.08rem; margin-bottom:.45em; }
.callout p:last-child{ margin-bottom:0; }
.callout p{ font-size:.98rem; }

/* ---------- Raster ---------- */
.split{ display:grid; grid-template-columns:minmax(0,1.85fr) minmax(0,1fr); gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.duo{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(2rem,5vw,4rem); align-items:center; }
.trio{ display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:2.5rem; }
@media (max-width:900px){ .split,.duo{ grid-template-columns:1fr; } }

.aside{ position:sticky; top:6.25rem; display:grid; gap:1.25rem; }
@media (max-width:900px){ .aside{ position:static; } }
.aside-box{ background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.5rem; }
.aside-box h3{ font-size:1.02rem; margin-bottom:.6em; }
.aside-box p,.aside-box li{ font-family:var(--sans); font-size:.9rem; line-height:1.55; color:var(--ink-soft); }
.aside-box p{ margin-bottom:.7em; }
.aside-box ul{ list-style:none; margin:0; padding:0; }
.aside-box li{ padding-block:.45rem; border-top:1px solid var(--line-soft); }
.aside-box li:first-child{ border-top:0; }
.aside-box a{ text-decoration:none; }
.aside-box a:hover{ text-decoration:underline; }

.figure{ margin:0; }
.figure img{ border-radius:var(--r-lg); }
.figure figcaption{ font-family:var(--sans); font-size:.82rem; color:var(--muted); margin-top:.7rem; }

/* ---------- Schritte (echte Abfolge, daher nummeriert) ---------- */
.steps{ list-style:none; counter-reset:s; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(14rem,1fr)); gap:2.25rem; }
.steps li{ counter-increment:s; padding-top:1.1rem; border-top:1px solid rgba(255,255,255,.22); }
.steps li::before{ content:counter(s); display:block; font-family:var(--sans); font-size:.8rem;
  font-weight:600; letter-spacing:.08em; color:var(--oak); margin-bottom:.7rem; }
.steps h3{ font-size:1.1rem; margin-bottom:.4em; }
.steps p{ font-size:.95rem; margin:0; color:#b9c7d0; }
.section:not(.section--petrol) .steps li{ border-top-color:var(--line); }
.section:not(.section--petrol) .steps p{ color:var(--ink-soft); }

/* ---------- Zeitleiste ---------- */
.timeline{ list-style:none; margin:0; padding:0; }
.timeline li{ display:grid; grid-template-columns:8.5rem minmax(0,1fr); gap:1.75rem;
  padding-block:1.15rem; border-bottom:1px solid var(--line); }
.timeline li:first-child{ border-top:1px solid var(--line); }
.timeline .yr{ font-family:var(--sans); font-size:.88rem; font-weight:500; color:var(--oak-dk); padding-top:.22em; }
.timeline p{ margin:0; }
@media (max-width:620px){ .timeline li{ grid-template-columns:1fr; gap:.15rem; } }

/* ---------- Tabelle ---------- */
.table-scroll{ overflow-x:auto; margin:1.5rem 0 1.25rem; }
.rates{ width:100%; border-collapse:collapse; font-family:var(--sans); font-size:.97rem; min-width:26rem; }
.rates caption{ text-align:left; font-size:.85rem; color:var(--muted); padding-bottom:.7rem; }
.rates th,.rates td{ text-align:left; padding:1rem .6rem; border-bottom:1px solid var(--line); }
.rates thead th{ font-size:.78rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase;
  color:var(--muted); border-bottom:1.5px solid var(--line); }
.rates tbody th{ font-weight:600; font-size:1rem; color:var(--ink); }
.rates td:last-child,.rates th:last-child{ text-align:right; white-space:nowrap; }
.rates .amount{ font-weight:600; font-variant-numeric:tabular-nums; }

/* ---------- Häufige Fragen ---------- */
.faq{ border-top:1px solid var(--line); max-width:52rem; }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ position:relative; cursor:pointer; list-style:none;
  padding:1.3rem 2.75rem 1.3rem 0; font-weight:600; font-size:1.08rem; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:""; position:absolute; right:.5rem; top:1.75rem;
  width:.72rem; height:.72rem; border-right:2px solid var(--green); border-bottom:2px solid var(--green);
  transform:rotate(45deg); transition:transform .2s; }
.faq details[open] summary::after{ transform:rotate(-135deg); top:2rem; }
.faq summary:hover{ color:var(--green); }
.faq .answer{ padding:0 2.75rem 1.5rem 0; }
.faq .answer p:last-child{ margin-bottom:0; }

/* ---------- Anfahrt ---------- */
.map{ border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); background:var(--paper-warm); }
.map svg{ display:block; width:100%; height:auto; }

/* ---------- Formular ---------- */
.form{ background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(1.5rem,3vw,2.25rem); }
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-family:var(--sans); font-size:.87rem; font-weight:500; color:var(--ink-soft); margin-bottom:.35rem; }
.field .req{ color:var(--oak-dk); }
.field input,.field textarea,.field select{
  width:100%; font-family:var(--sans); font-size:1rem; color:var(--ink); background:var(--paper);
  border:1px solid var(--line); border-radius:var(--r); padding:.8rem .9rem; }
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none; border-color:var(--petrol); box-shadow:0 0 0 3px rgba(43,59,71,.14); background:var(--white); }
.field textarea{ min-height:9.5rem; resize:vertical; line-height:1.55; }
.field-check{ display:flex; gap:.7rem; align-items:flex-start; font-family:var(--sans);
  font-size:.87rem; line-height:1.5; color:var(--ink-soft); margin-bottom:1.4rem; }
.field-check input{ width:1.05rem; height:1.05rem; margin-top:.2rem; flex:0 0 auto; accent-color:var(--petrol); }
.hp{ position:absolute!important; left:-9999px!important; }
.form-status{ font-family:var(--sans); font-size:.93rem; padding:.9rem 1.1rem; border-radius:var(--r); margin-bottom:1.1rem; }
.form-status[data-state="ok"]{ background:#e8f0e9; color:#2f4b36; border:1px solid #b9cfbe; }
.form-status[data-state="err"]{ background:#f6e9e4; color:#7a3b25; border:1px solid #ddb9a8; }
.form-note{ font-family:var(--sans); font-size:.83rem; color:var(--muted); line-height:1.5; margin-top:1rem; }

/* ---------- Kontaktwege ---------- */
.channels{ list-style:none; margin:0 0 2rem; padding:0; border-top:1px solid var(--line); }
.channels li{ border-bottom:1px solid var(--line); padding-block:1.1rem; }
.channels .k{ display:block; font-family:var(--sans); font-size:.76rem; letter-spacing:.07em;
  text-transform:uppercase; color:var(--muted); margin-bottom:.2rem; }
.channels .v{ font-size:1.15rem; }
.channels a{ text-decoration:none; }
.channels a:hover{ text-decoration:underline; }

/* ---------- Abschlussaufruf ---------- */
.cta-band{ background:var(--petrol-dk); color:#cfdae1; }
.cta-band .wrap{ padding-block:clamp(2.75rem,5vw,4rem); display:flex; flex-wrap:wrap;
  align-items:center; justify-content:space-between; gap:1.75rem; }
.cta-band h2{ color:#fff; margin:0; max-width:22ch; font-size:clamp(1.45rem,1.1rem+1.3vw,2rem); }
.cta-band p{ margin:.5rem 0 0; color:#b9c7d0; max-width:44ch; font-size:.98rem; }

/* ---------- Fußzeile ---------- */
.site-footer{ background:var(--petrol-dk); color:#a9bcc7; font-family:var(--sans); font-size:.93rem; padding-block:3.5rem 2rem; border-top:1px solid rgba(255,255,255,.12); }
.site-footer a{ color:#fff; text-decoration:none; }
.site-footer a:hover{ text-decoration:underline; }
.footer-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:2.5rem; }
.site-footer h2{ font-family:var(--sans); font-size:.76rem; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:#7e95a3; margin:0 0 1rem; }
.site-footer ul{ list-style:none; margin:0; padding:0; }
.site-footer li{ margin-bottom:.55rem; }
.site-footer p{ margin:0 0 .5rem; max-width:38ch; line-height:1.6; }
.footer-bottom{ margin-top:2.75rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.14);
  display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; align-items:center; font-size:.85rem; color:#7e95a3; }
.footer-bottom .spacer{ margin-left:auto; }

/* ---------- Einblenden beim Scrollen ----------
   Ein Element schiebt sich beim Erreichen des Sichtfensters leicht nach oben ein.
   Bewusst kurz und nur einmal je Element: Bewegung soll den Blick führen,
   nicht die Seite unruhig machen. Wer „Bewegung reduzieren" eingestellt hat,
   bekommt gar keine. Ohne JavaScript greift assets/css/noscript.css. */
.reveal-enabled .section-head,
.reveal-enabled .offers li,
.reveal-enabled .concerns li,
.reveal-enabled .figure,
.reveal-enabled .trio > div,
.reveal-enabled .steps li,
.reveal-enabled .timeline li,
.reveal-enabled .table-scroll,
.reveal-enabled .faq details,
.reveal-enabled .aside-box,
.reveal-enabled .pull,
.reveal-enabled .callout,
.reveal-enabled .cta-band .wrap > *{
  opacity:0;
  transform:translateY(22px);
  will-change:opacity, transform;
}
.reveal-enabled .is-in{
  opacity:1;
  transform:none;
  transition:opacity .6s cubic-bezier(.22,.61,.36,1), transform .6s cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--d, 0ms);
  will-change:auto;
}
@media (prefers-reduced-motion:reduce){
  .reveal-enabled .section-head,
  .reveal-enabled .offers li,
  .reveal-enabled .concerns li,
  .reveal-enabled .figure,
  .reveal-enabled .trio > div,
  .reveal-enabled .steps li,
  .reveal-enabled .timeline li,
  .reveal-enabled .table-scroll,
  .reveal-enabled .faq details,
  .reveal-enabled .aside-box,
  .reveal-enabled .pull,
  .reveal-enabled .callout,
  .reveal-enabled .cta-band .wrap > *{ opacity:1; transform:none; }
  .reveal-enabled .is-in{ transition:none; }
}

/* ---------- Kleinkram ---------- */
.eyebrow{ display:block; font-family:var(--sans); font-size:.84rem; font-weight:500;
  color:var(--oak-dk); margin-bottom:.9rem; }
.page-head{ background:var(--paper-warm); border-bottom:1px solid var(--line); }
.page-head .wrap{ padding-block:clamp(2.5rem,5vw,4.25rem); }
.page-head h1{ max-width:20ch; }
.page-head .lead{ max-width:54ch; }
.page-head p{ color:var(--ink-soft); }
.crumbs{ font-family:var(--sans); font-size:.83rem; color:var(--muted); margin-bottom:1.25rem; }
.crumbs a{ color:var(--muted); text-decoration:none; }
.crumbs a:hover{ color:var(--green); text-decoration:underline; }
.crumbs span{ margin-inline:.45rem; }
.new-flag{ display:none; }
.vh{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
