/* Site shell — extracted from index.html so country pages inherit the exact same design DNA. */

:root{
  --pill-r:999px; /* Rundung aller Pills und Buttons, zentral */
  /* Grounds — white / light green tint / deep green */
  --paper:#f7f4ec;                /* pure white ground */
  --paper-tint:#f1ead6;
  --paper-tint-strong:#eae0c6;

  /* Ink — all text green */
  --ink:#9c7d2e;
  --ink-strong:#8a6e28;
  --ink-soft:rgba(156,125,46,.72);
  --muted:rgba(156,125,46,.5);

  /* Lines */
  --line:rgba(156,125,46,.18);
  --line-soft:rgba(156,125,46,.10);
  --accent:#8a6e28;

  /* Deep green — for full-coloured panels with white text */
  --green-deep:#9c7d2e;
  --green-deep-2:#63501d;

  /* Warm dot accent — used in status pills */
  --dot-warm:#d99a5a;

  /* Legacy aliases (hero/header inherit these; hero is now white with green text) */
  --cream:#9c7d2e;          /* was "light text on dark hero" — now green text on white hero */
  --cream-2:#8a6e28;
  --navy:#f7f4ec;           /* was dark hero background — now white */
  --navy-2:var(--paper-tint);
  --navy-line:var(--line);

  --max:1200px;
  --gutter:32px;
  --sans:"Avenir Next","Avenir","Nunito Sans",system-ui,-apple-system,"Inter","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* Lenis Smooth-Scroll — wenn aktiv, native scroll-behavior aus */
html.lenis, html.lenis body{height:auto}
html.lenis.lenis-smooth{scroll-behavior:auto}
html.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain;overflow:auto}
.lenis.lenis-smooth iframe{pointer-events:none}
body{
  margin:0;font-family:var(--sans);background:var(--paper);color:var(--ink);
  font-weight:400;line-height:1.6;font-size:17px;letter-spacing:.005em;
}
/* Einheitlicher Underline-Link — alles gleiche Farbe, kein Opacity-Fade */
a{
  color:var(--ink);text-decoration:none;
  border-bottom:1px solid var(--ink);
  padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}
a:hover{color:var(--green-deep-2);border-bottom-color:var(--green-deep-2)}
a.plain{border-bottom:none;padding-bottom:0}
::selection{background:var(--ink);color:var(--paper)}
.wrap{max-width:var(--max);margin:auto;padding:0 var(--gutter)}
.wrap--wide{max-width:1440px;margin:auto;padding:0 var(--gutter)}

/* Meta label */
.k{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* Header */
.site-header{
  position:sticky;top:0;z-index:60;
  background:var(--navy);color:var(--cream);
  border-bottom:1px solid var(--navy-line);
}
.site-strip{
  border-bottom:1px solid var(--navy-line);
  font-size:12px;color:rgba(156,125,46,.55);
}
.site-strip-inner{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 0;letter-spacing:.02em;
}
.site-strip-inner .left{display:flex;gap:14px;align-items:center}
.site-strip-inner .right{display:flex;gap:14px;align-items:center}
.site-strip-inner .sep{color:rgba(156,125,46,.25)}
.site-strip-inner .dot{
  width:5px;height:5px;border-radius:50%;background:var(--cream);display:inline-block;
  margin-right:8px;vertical-align:middle;
}
.site-strip-inner .langs a{
  color:rgba(156,125,46,.55);border-bottom:none;padding-bottom:0;
}
.site-strip-inner .langs a[aria-current="true"]{color:var(--cream)}

.site-nav{
  display:flex;justify-content:space-between;align-items:center;
  padding:20px 0;
}
.brand{
  font-size:19px;font-weight:700;letter-spacing:-.012em;color:var(--cream);
  border:none;
}
.brand small{
  display:inline-block;margin-left:6px;font-weight:400;color:rgba(156,125,46,.5);
  font-size:12px;letter-spacing:.04em;
}
.navlinks{display:flex;gap:28px;align-items:center;color:rgba(156,125,46,.6);font-size:13px}
.navlinks a{color:rgba(156,125,46,.6);border:none}
.navlinks a:hover{color:var(--cream)}
.navlinks .nav-cta{
  margin-left:8px;padding:8px 16px;color:var(--navy);
  background:var(--cream);border:1px solid var(--cream);
  border-radius:var(--pill-r,999px);font-weight:500;letter-spacing:.02em;
  transition:background .2s,color .2s;
}
.navlinks .nav-cta:hover{background:transparent;color:var(--cream)}

/* Top block: hero container (default weiß, .green invertiert auf tief-grün) */
.top-block{
  background:var(--navy);color:var(--cream);position:relative;
  display:flex;flex-direction:column;
  min-height:100vh;
  min-height:100svh;
}
/* Modifier — Header + Hero komplett grün, alle Kinder erben weißen Text */
.top-block.green{
  background:var(--green-deep);
  --cream:#ffffff;
  --navy:var(--green-deep);
  --line:rgba(255,255,255,.18);
  --line-soft:rgba(255,255,255,.10);
  --navy-line:rgba(255,255,255,.14);
}
.top-block.green .brand,
.top-block.green .brand small,
.top-block.green .site-strip-inner,
.top-block.green .site-strip-inner .langs a,
.top-block.green .navlinks,
.top-block.green .navlinks a{color:rgba(255,255,255,.75)}
.top-block.green .brand{color:#ffffff}
.top-block.green .navlinks .nav-cta{
  background:#ffffff;color:var(--green-deep);border-color:#ffffff;
}
.top-block.green .hero h1{color:#ffffff}
.top-block.green .hero .hero-lead{color:rgba(255,255,255,.78)}
.top-block.green::after{display:none}
.top-block::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:36px;
  background:linear-gradient(to bottom,transparent,var(--paper));
  pointer-events:none;
}

/* Hero */
.hero{padding:96px 0 96px;position:relative}

/* Hero-Content mittig im Rest-Bereich unter dem Header.
   .top-block ist 100vh, Header oben, Hero füllt den Rest,
   Content wird über justify-content:center vertikal zentriert. */
.top-block > .site-header{flex-shrink:0 !important}
.top-block > .hero{
  flex:1 1 0 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:stretch !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}
.hero-eyebrow{
  font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(156,125,46,.55);margin:0 0 28px;
}
.hero h1{
  font-family:var(--sans);font-weight:400;
  font-size:clamp(48px,6.4vw,92px);
  line-height:1.04;letter-spacing:-.032em;
  margin:0 0 40px;max-width:900px;color:var(--cream);
  text-wrap:balance;
}
.hero .hero-lead{
  font-size:clamp(18px,1.5vw,22px);color:rgba(156,125,46,.72);line-height:1.5;
  max-width:600px;margin:0;font-weight:400;
}
.hero .hero-lead + .hero-lead{margin-top:16px;font-style:italic;color:rgba(156,125,46,.58)}
.hero-cta-row{margin-top:44px;display:flex;flex-wrap:wrap;gap:12px}
.hero-cta{
  display:inline-block;padding:10px 18px;border-radius:var(--pill-r,999px);
  font-size:13px;font-weight:500;letter-spacing:.02em;line-height:1.4;
  background:var(--cream);color:var(--navy);border:1px solid var(--cream);
  transition:background .2s,color .2s;
}
.hero-cta:hover{background:transparent;color:var(--cream);border-color:var(--cream)}
/* Harter Wechsel statt Überblendung: beim Blenden wären Schrift und Grund kurz beide grün und der Text unlesbar */
.hero-cta{transition:none}
.hero-cta.ghost{background:transparent;color:var(--cream);border-color:rgba(156,125,46,.35)}
.hero-cta.ghost:hover{border-color:var(--cream)}

.top-block ::selection{background:var(--cream);color:var(--navy)}

/* Flow bar */
.flow-bar{
  overflow:hidden;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:var(--paper);
  padding:22px 0;position:relative;
}
.flow-bar::before,.flow-bar::after{
  content:"";position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none;
}
.flow-bar::before{left:0;background:linear-gradient(to right,var(--paper),transparent)}
.flow-bar::after{right:0;background:linear-gradient(to left,var(--paper),transparent)}
.flow-inner{
  display:flex;gap:64px;white-space:nowrap;width:max-content;
  animation:flow-scroll 42s linear infinite;
  font-size:15px;color:var(--ink-soft);letter-spacing:-.005em;
}
.flow-inner span{display:inline-flex;align-items:center;gap:64px}
.flow-inner span em{font-style:normal;color:var(--ink)}
.flow-inner span::after{content:"·";color:var(--accent);margin-left:0}
@keyframes flow-scroll{
  from{transform:translateX(0)}
  to  {transform:translateX(-50%)}
}
@media(prefers-reduced-motion:reduce){
  .flow-inner{animation:none}
}

/* Sections */
section{padding:120px 0;border-top:1px solid var(--line)}
.sec-head{display:block;padding-bottom:64px;text-align:center}
.sec-head .k{
  display:inline-flex;align-items:center;gap:10px;
  font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink);
  padding:8px 16px;
  background:rgba(156,125,46,.11);
  border:1px solid rgba(156,125,46,.38);
  border-radius:var(--pill-r,999px);
  margin-bottom:32px;
  box-shadow:0 2px 8px rgba(156,125,46,.08);
}
.sec-head .k::before{
  content:"";display:inline-block;
  width:6px;height:6px;border-radius:50%;
  background:var(--dot-warm);flex:none;
  vertical-align:middle;margin:0;transform:none;
}
/* On deep-green panels, invert the pill so it stays readable */
.panel-full .sec-head .k,
.panel-full .k{
  color:#ffffff;
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.22);
}
.panel-full .sec-head .k::before,
.panel-full .k::before{background:var(--dot-warm)}
.sec-head h2{
  font-family:var(--sans);font-weight:400;
  font-size:clamp(36px,4.6vw,68px);
  line-height:1.05;letter-spacing:-.03em;
  margin:0 auto;max-width:960px;color:var(--ink);
}

/* Pill card */
.pill-card{
  background:var(--paper-tint);border:1px solid var(--line-soft);border-radius:28px;
  padding:32px 40px;
  box-shadow:0 1px 0 rgba(156,125,46,.03), 0 12px 40px -18px rgba(156,125,46,.10);
}
.pill-card + .pill-card{margin-top:20px}

/* USP grid */
.usps{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid var(--ink);border-bottom:1px solid var(--line);
}
.usp{padding:36px 24px 40px 0;display:flex;flex-direction:column}
.usp + .usp{padding-left:32px;border-left:1px solid var(--line)}
.usp .n{
  font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent);margin-bottom:64px;
}
.usp .l{
  font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:14px;
}
.usp .v{
  font-family:var(--sans);font-weight:400;
  font-size:clamp(22px,2.1vw,30px);letter-spacing:-.02em;line-height:1.15;
  color:var(--ink);
}
.usp .v small{
  display:block;margin-top:16px;font-size:14px;color:var(--ink-soft);
  letter-spacing:0;line-height:1.5;font-weight:400;
}

/* Definition rows */
.rows{display:grid;grid-template-columns:180px 1fr}
.rows > div{padding:24px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.55}
.rows > div:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
.rows .k{padding-top:24px;padding-right:16px}
.rows .v{color:var(--ink);padding-right:8px}
.rows .v p{margin:0 0 8px;color:var(--ink-soft)}
.rows .v p:last-child{margin:0}
.rows .v strong{font-weight:500;color:var(--ink)}
.rows .v a{color:var(--ink);border-bottom-color:var(--line)}
.rows .v a:hover{color:var(--accent);border-bottom-color:var(--accent)}

/* Journey — 3 pill cards side by side */
.journey-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}
.journey-3 .pill-card{padding:36px 34px 32px}
.journey-3 .n{
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);
  font-weight:500;margin-bottom:24px;display:block;
}
.journey-3 h3{
  font-family:var(--sans);font-weight:500;font-size:26px;letter-spacing:-.018em;
  line-height:1.15;margin:0 0 14px;color:var(--ink);
}
.journey-3 p{margin:0;color:var(--ink-soft);font-size:15px;line-height:1.55}

/* Symptom list — subtle editorial */
.sym-list{list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:1fr 1fr;gap:0 40px;
  border-top:1px solid var(--line);
}
.sym-list li{
  padding:20px 0;border-bottom:1px solid var(--line);
  font-size:17px;color:var(--ink);
  display:grid;grid-template-columns:20px 1fr;gap:14px;align-items:baseline;
}
.sym-list li::before{content:"·";color:var(--accent);font-weight:500}

/* Contact block */
.contact-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.contact-cta a{
  display:inline-block;padding:14px 22px;border-radius:var(--pill-r,999px);
  font-size:14px;font-weight:500;letter-spacing:.02em;border:1px solid var(--ink);
  background:var(--ink);color:var(--paper);
  transition:background .2s,color .2s;
}
.contact-cta a:hover{background:transparent;color:var(--ink)}
.contact-cta a.ghost{background:transparent;color:var(--ink)}
.contact-cta a.ghost:hover{background:var(--ink);color:var(--paper)}

/* Footer */
footer{
  padding:80px 0 48px;border-top:1px solid var(--line);
  display:grid;grid-template-columns:160px 1fr auto;gap:56px;
  font-size:13px;color:var(--ink-soft);
}
footer .k{padding-top:2px}
footer .foot-mid a{display:inline-block;margin-right:24px;border-bottom:none;color:var(--ink-soft)}
footer .foot-mid a:hover{color:var(--ink)}
footer .foot-right{text-align:right;color:var(--muted);font-size:12px}

@media(max-width:900px){
  .site-strip-inner{flex-wrap:wrap;gap:6px}
  .navlinks{gap:16px}
  .hero{padding:64px 0 64px}
  section{padding:80px 0}
  .sec-head{padding-bottom:40px}
  .usps{grid-template-columns:1fr 1fr}
  .usp + .usp{border-left:none;padding-left:0}
  .usp:nth-child(n+3){border-top:1px solid var(--line)}
  .journey-3{grid-template-columns:1fr}
  .rows{grid-template-columns:1fr}
  .rows .k{padding-top:24px}
  .rows .v{padding:0}
  .sym-list{grid-template-columns:1fr}
  footer{grid-template-columns:1fr;gap:24px}
  footer .foot-right{text-align:left}
}

/* ————————————————————————————————————————————————————
   Design-system utilities — Weiß · Light-Green Tint · Deep-Green Panel
   ———————————————————————————————————————————————————— */

/* Section variants — tinted backgrounds */
section.tint{background:var(--paper-tint);border-top-color:transparent}
section.tint-strong{background:var(--paper-tint-strong);border-top-color:transparent}

/* Full-coloured deep-green panel (rounded, white text) — like the CTA block */
.panel-full{
  background:linear-gradient(135deg,var(--green-deep-2) 0%,var(--green-deep) 100%);
  color:#ffffff;
  border-radius:24px;
  padding:clamp(56px,7vw,80px) clamp(24px,5vw,72px);
  position:relative;overflow:hidden;
  text-align:center;
}
.panel-full h1,.panel-full h2,.panel-full h3,
.panel-full p{margin-left:auto !important;margin-right:auto !important}
.panel-full > *{margin-left:auto;margin-right:auto}
.panel-full h1,.panel-full h2,.panel-full h3{color:#ffffff;font-weight:400;letter-spacing:-.03em;line-height:1.05}
.panel-full p{color:#ffffff;font-weight:400}
.panel-full .k{color:rgba(255,255,255,.82)}
.panel-full .k::before{background:rgba(255,255,255,.82);width:36px;height:2px}
.panel-full a{color:#ffffff;border-bottom-color:rgba(255,255,255,.7)}
.panel-full a:hover{border-bottom-color:#ffffff}
.panel-full .rows > div{border-top-color:rgba(255,255,255,.28)}
.panel-full .rows > div:nth-last-child(-n+2){border-bottom-color:rgba(255,255,255,.28)}
.panel-full .rows .k{color:rgba(255,255,255,.72)}
.panel-full .panel-cta{
  display:inline-flex;align-items:center;gap:10px;
  background:#ffffff;color:var(--green-deep);
  padding:10px 18px;border-radius:var(--pill-r,999px);
  font-weight:500;font-size:13px;letter-spacing:.02em;line-height:1.4;
  border:1px solid #ffffff;
  transition:background .2s,color .2s;
}
.panel-full .panel-cta:hover{background:transparent;color:#ffffff}

/* Subtle dot-pattern background — layered over tint */
.dots-bg{
  background-color:var(--paper-tint);
  background-image:none;
  background-size:22px 22px;
}
.dots-bg-strong{
  background-color:var(--paper-tint-strong);
  background-image:none;
  background-size:22px 22px;
}

/* Status pill — card-artig: weißer Grund, Border, Schatten */
.status-pill{
  display:inline-flex;align-items:center;gap:10px;
  padding:9px 18px;border-radius:var(--pill-r,999px);
  background:#ffffff;
  color:var(--ink);
  font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  border:1px solid rgba(156,125,46,.28);
  box-shadow:0 1px 0 rgba(156,125,46,.03), 0 12px 32px -18px rgba(156,125,46,.18);
  transition:transform .25s cubic-bezier(.2,.6,.2,1), box-shadow .25s ease, border-color .25s ease;
}
.status-pill:hover{
  transform:translateY(-3px) scale(1.06);
  border-color:rgba(156,125,46,.55);
  box-shadow:0 1px 0 rgba(156,125,46,.04), 0 22px 48px -18px rgba(156,125,46,.32);
}
.status-pill::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:var(--dot-warm);flex:none;
}
/* On deep-green panels, invert the pill */
.panel-full .status-pill{
  background:rgba(255,255,255,.08);
  color:#ffffff;
  border-color:rgba(255,255,255,.2);
}

/* Solid variant — full green fill, white text (for emphasis) */
.status-pill.solid,
.sec-head .k.solid,
.k.solid{
  background:var(--green-deep);
  color:#ffffff;
  border-color:var(--green-deep);
}
.status-pill.solid::before,
.sec-head .k.solid::before,
.k.solid::before{
  background:var(--dot-warm);
}

/* ————————————————————————————————————————————————————
   Pill trio — segmented pill (3 joined pills, one active)
   Useful for audience switch, filter, tab-nav
   ———————————————————————————————————————————————————— */
.pill-trio{
  display:inline-flex;align-items:center;
  padding:5px;gap:10px;
  background:var(--paper-tint);
  border:1px solid var(--line);
  border-radius:var(--pill-r,999px);
}
.pill-trio a,
.pill-trio button{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 18px;
  font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink);
  background:transparent;border:none;border-radius:var(--pill-r,999px);
  cursor:pointer;text-decoration:none;
  transition:background .2s ease,color .2s ease;
  font-family:inherit;
}
.pill-trio a:hover,
.pill-trio button:hover{background:rgba(156,125,46,.08)}
.pill-trio a.active,
.pill-trio button.active,
.pill-trio a[aria-current="true"]{
  background:var(--green-deep);
  color:#ffffff;
}
.pill-trio a.active::before,
.pill-trio button.active::before,
.pill-trio a[aria-current="true"]::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:var(--dot-warm);flex:none;
}
.pill-trio a.active:hover,
.pill-trio button.active:hover{background:var(--green-deep)}

/* ————————————————————————————————————————————————————
   Logo marquee — durchlaufende Partner-/Klinik-Zeile
   Track ist im HTML zu duplizieren (2× dieselben Items) für nahtlosen Loop
   ———————————————————————————————————————————————————— */
.logo-marquee{
  overflow:hidden;padding:40px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.logo-marquee__track{
  display:flex;align-items:center;gap:32px;
  width:max-content;
  animation:logo-scroll 55s linear infinite;
}
/* Läuft immer, kein Stopp bei Hover. */
.logo-marquee__item{
  flex:0 0 auto;
  display:inline-flex;align-items:center;gap:16px;
  padding:28px 44px;min-height:96px;
  background:#ffffff;
  border:1px solid var(--line-soft);
  border-radius:20px;
  color:var(--ink);
  font-size:24px;font-weight:600;letter-spacing:-.012em;
  white-space:nowrap;
  box-shadow:0 1px 0 rgba(156,125,46,.03), 0 14px 34px -18px rgba(156,125,46,.18);
}
.logo-marquee__item svg{width:32px;height:32px;flex:none;fill:currentColor}
.logo-marquee__item img{max-height:56px;max-width:220px;object-fit:contain;display:block}
@keyframes logo-scroll{
  from{transform:translateX(0)}
  to  {transform:translateX(-50%)}
}
@media(prefers-reduced-motion:reduce){
  .logo-marquee__track{animation:none;overflow-x:auto}
}

/* ————————————————————————————————————————————————————
   Nav pill — schwebender Kompakt-Header (Logo · Zusatzinfo · CTA)
   Alternative zum Standard site-header
   ———————————————————————————————————————————————————— */
.nav-pill{
  position:sticky;top:16px;z-index:60;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;
  height:56px;padding:0 6px 0 24px;
  max-width:900px;margin:16px auto 0;
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:var(--pill-r,999px);
  box-shadow:0 16px 60px rgba(156,125,46,.10);
}
.nav-pill .logo{
  font-family:var(--sans);font-weight:700;letter-spacing:-.012em;font-size:17px;
  color:var(--ink);text-decoration:none;border:none;line-height:1;
}
.nav-pill .center{
  text-align:center;font-size:13px;color:var(--ink-soft);letter-spacing:.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.nav-pill .center b{color:var(--ink);font-weight:600}
.nav-pill .cta{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 20px;border-radius:var(--pill-r,999px);
  background:var(--green-deep);color:#ffffff;
  font-size:13px;font-weight:600;letter-spacing:.02em;line-height:1;
  border:none;text-decoration:none;
  transition:background .2s;
}
.nav-pill .cta:hover{background:var(--green-deep-2)}
@media(max-width:640px){
  .nav-pill{grid-template-columns:auto auto;padding:0 6px 0 18px;gap:12px;height:52px}
  .nav-pill .center{display:none}
}

/* ————————————————————————————————————————————————————
   Step cards — 3-column process, icon + number badge + copy
   ———————————————————————————————————————————————————— */
.step-cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px;
}
.step-card{
  background:#ffffff;
  border:1px solid var(--line-soft);
  border-radius:20px;
  padding:32px 30px 30px;
  position:relative;
  box-shadow:0 1px 0 rgba(156,125,46,.03), 0 12px 40px -18px rgba(156,125,46,.10);
  transition:transform .3s cubic-bezier(.2,.6,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.step-card:hover{
  transform:translateY(-4px);
  border-color:var(--line);
  box-shadow:0 1px 0 rgba(156,125,46,.04), 0 24px 60px -20px rgba(156,125,46,.24);
}
.step-card .icon{
  display:inline-grid;place-items:center;
  width:44px;height:44px;border-radius:12px;
  background:var(--paper-tint);color:var(--ink);
  margin-bottom:44px;
}
.step-card .icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.step-card .num{
  position:absolute;top:22px;right:26px;
  width:38px;height:38px;border-radius:50%;
  background:var(--green-deep);color:#ffffff;
  display:grid;place-items:center;
  font-size:15px;font-weight:600;line-height:1;
}
.step-card h3{
  font-family:var(--sans);font-size:22px;font-weight:500;letter-spacing:-.012em;
  color:var(--ink);margin:0 0 12px;line-height:1.2;
}
.step-card p{color:var(--ink);font-size:16px;line-height:1.55;margin:0}
@media(max-width:900px){
  .step-cards{grid-template-columns:1fr}
}

/* ————————————————————————————————————————————————————
   Accordion layout — 2-column: intro on left, expandable list on right
   ———————————————————————————————————————————————————— */
.accordion-layout{
  display:grid;grid-template-columns:1fr 1.4fr;gap:64px;align-items:start;
}
.accordion-layout .accordion-intro h2{
  font-family:var(--sans);font-weight:500;
  font-size:clamp(30px,3.6vw,52px);
  line-height:1.08;letter-spacing:-.018em;
  margin:0 0 24px;color:var(--ink);max-width:18ch;
}
.accordion-layout .accordion-intro p{
  font-family:var(--sans);color:var(--ink);
  font-size:20px;line-height:1.55;max-width:44ch;margin:0;font-weight:400;
}

.accordion-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.accordion-list details{
  background:#ffffff;
  border:1px solid var(--line-soft);
  border-radius:16px;
  transition:box-shadow .2s,border-color .2s;
}
.accordion-list details[open]{
  border-color:var(--line);
  box-shadow:0 1px 0 rgba(156,125,46,.03), 0 12px 32px -18px rgba(156,125,46,.14);
}
.accordion-list summary{
  list-style:none;cursor:pointer;outline:none;
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:26px 26px 26px 32px;
  font-size:22px;font-weight:500;color:var(--ink);letter-spacing:-.012em;
  line-height:1.3;
  -webkit-tap-highlight-color:transparent;
}
.accordion-list summary::-webkit-details-marker{display:none}
.accordion-list summary::marker{display:none}
.accordion-list summary::after{
  content:"+";display:grid;place-items:center;
  width:34px;height:34px;border-radius:50%;
  background:var(--paper-tint);color:var(--ink);
  font-size:22px;font-weight:400;line-height:1;flex:none;
  transition:background .2s,color .2s;
}
.accordion-list details[open] summary::after{
  content:"–";background:var(--green-deep);color:#ffffff;
}
.accordion-list .acc-body{
  padding:0 32px 26px;color:var(--ink-soft);font-size:17px;line-height:1.65;
  max-width:64ch;
}
@media(max-width:900px){
  .accordion-layout{grid-template-columns:1fr;gap:32px}
}

/* ————————————————————————————————————————————————————
   Feature cards — 4-column icon+title+copy tiles
   ———————————————————————————————————————————————————— */
.feature-cards{
  display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:8px;
}
.feature-card{
  background:#ffffff;
  border:1px solid var(--line-soft);
  border-radius:20px;
  padding:32px 26px;
  box-shadow:0 1px 0 rgba(156,125,46,.03), 0 12px 40px -18px rgba(156,125,46,.10);
  transition:transform .3s cubic-bezier(.2,.6,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.feature-card:hover{
  transform:translateY(-4px);
  border-color:var(--line);
  box-shadow:0 1px 0 rgba(156,125,46,.04), 0 24px 60px -20px rgba(156,125,46,.24);
}
.feature-card .icon{
  display:inline-grid;place-items:center;
  width:44px;height:44px;border-radius:12px;
  background:var(--paper-tint);color:var(--ink);
  margin-bottom:36px;
}
.feature-card .icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.feature-card h3{
  font-family:var(--sans);font-size:20px;font-weight:500;letter-spacing:-.012em;
  color:var(--ink);margin:0 0 14px;line-height:1.25;
}
.feature-card p{color:var(--ink);font-size:15px;line-height:1.55;margin:0}
@media(max-width:1000px){.feature-cards{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.feature-cards{grid-template-columns:1fr}}

/* Warme Dot-Akzente auf allen Pillen ausblenden */
.status-pill::before,
.sec-head .k::before,
.k::before,
.pill-trio a::before,
.pill-trio button::before{
  display:none !important;
}
/* Symmetrisches Padding (Dot ist raus) + kleine Letter-Spacing-Kompensation
   Uppercase-Text mit letter-spacing wirkt sonst nach links versetzt —
   +.07em links, -.07em rechts gleicht das optisch aus. */
.status-pill{
  padding-inline-start:calc(18px + .07em);
  padding-inline-end:calc(18px - .07em);
}
.sec-head .k{
  padding-inline-start:calc(16px + .07em);
  padding-inline-end:calc(16px - .07em);
}
.pill-trio a,
.pill-trio button{
  padding-inline-start:calc(18px + .07em);
  padding-inline-end:calc(18px - .07em);
}

/* ————————————————————————————————————————————————————
   Card-Scroll — draggable horizontal carousel mit Portrait-Karten
   ———————————————————————————————————————————————————— */
.card-scroll{
  display:flex;gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  cursor:grab;
  -webkit-overflow-scrolling:touch;
  padding:8px 0 24px;margin:0;
  scroll-padding:0;
}
.card-scroll::-webkit-scrollbar{display:none}
.card-scroll.is-dragging{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none;user-select:none}
/* Passen alle Karten in die Breite (z. B. drei Säulen), stehen sie mittig; bei Überlauf bleibt der Start links (safe) */
.card-scroll{justify-content:safe center}

.symptom-card{
  flex:0 0 320px;height:440px;
  scroll-snap-align:start;
  border-radius:24px;overflow:hidden;position:relative;
  background:var(--green-deep);color:#ffffff;
  display:flex;flex-direction:column;justify-content:flex-end;
  transition:transform .3s cubic-bezier(.2,.6,.2,1), box-shadow .3s ease;
}
.symptom-card:hover{transform:translateY(-4px)}
.symptom-card .media{
  position:absolute;inset:0;
  background:linear-gradient(180deg,var(--green-deep) 0%, var(--green-deep-2) 100%);
  overflow:hidden;
}
.symptom-card .media img{width:100%;height:100%;object-fit:cover;display:block}
.symptom-card .caption{
  position:relative;z-index:2;padding:28px 26px 26px;
  background:linear-gradient(to top, rgba(0,0,0,.55) 0%, rgba(0,0,0,.2) 60%, transparent 100%);
}
.symptom-card h3{
  font-family:var(--sans);font-weight:500;font-size:22px;letter-spacing:-.012em;
  color:#ffffff;margin:0 0 10px;line-height:1.2;
  min-height:1.2em; /* eine Zeile fix, damit alle Titel bündig starten */
}
.symptom-card p{
  color:rgba(255,255,255,.78);font-size:14px;line-height:1.5;margin:0;
  min-height:3em; /* zwei Zeilen fix, damit die Beschreibung immer gleich hoch endet */
}
@media(max-width:640px){
  .card-scroll{padding:8px 0 20px;margin:0;scroll-padding:0}
  .symptom-card{flex:0 0 78vw;height:400px}
}

/* ————————————————————————————————————————————————————
   Credential-Cards — Mitgliedschaften-Kacheln
   Logo (grayscale) oben, Titel, kleines grünes Label
   ———————————————————————————————————————————————————— */
.credential-cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px;
}
.credential-card{
  background:#ffffff;
  border:1px solid var(--line-soft);
  border-radius:28px;
  padding:56px 40px 44px;
  min-height:320px;
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:32px;
  box-shadow:0 1px 0 rgba(156,125,46,.03), 0 12px 40px -18px rgba(156,125,46,.10);
  transition:transform .3s cubic-bezier(.2,.6,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.credential-card:hover{
  transform:translateY(-4px);
  border-color:var(--line);
  box-shadow:0 1px 0 rgba(156,125,46,.04), 0 24px 60px -20px rgba(156,125,46,.24);
}
.credential-card .logo{
  height:88px;display:flex;align-items:center;justify-content:center;
  padding:8px 0;
}
.credential-card .logo img,
.credential-card .logo svg{
  max-height:72px;max-width:180px;width:auto;height:auto;object-fit:contain;
  filter:grayscale(1);opacity:.6;
}
/* Hover-Effekt entfernt — kein Farbumschlag zu schwarz */
.credential-card h4{
  font-family:var(--sans);font-weight:500;font-size:17px;letter-spacing:-.008em;
  color:var(--ink);margin:0;line-height:1.35;max-width:22ch;
}
.credential-card .tag{
  font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);
}
@media(max-width:900px){
  .credential-cards{grid-template-columns:1fr}
}

/* Sektions-Absätze zentriert, Hero bleibt linksbündig */
section:not(.hero) > .wrap > p,
section:not(.hero) > .wrap--wide > p{
  text-align:center !important;
  margin-left:auto !important;margin-right:auto !important;
}
/* Hero komplett zentriert (auf allen Seiten einheitlich) */
.hero{text-align:center !important}
.hero h1,.hero .hero-h1,
.hero p,.hero .hero-lead{
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}
.hero-cta-row{justify-content:center !important}
.hero .hero-cta-row{justify-content:flex-start}

/* Card-scroll navigation arrows */
.card-scroll-nav{
  display:flex;justify-content:center;gap:12px;margin-top:24px;
}
.card-scroll-nav button{
  width:48px;height:48px;border-radius:50%;
  background:#ffffff;border:1px solid var(--line);
  color:var(--ink);cursor:pointer;
  display:grid;place-items:center;
  font-size:20px;line-height:1;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.card-scroll-nav button:hover{
  background:var(--green-deep);color:#ffffff;border-color:var(--green-deep);
  transform:translateY(-1px);
}
.card-scroll-nav button:disabled{opacity:.3;cursor:default;transform:none;background:#fff;color:var(--ink);border-color:var(--line-soft)}
.card-scroll-nav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ————————————————————————————————————————————————————
   Testimonial-Karte — Zitat, Autor, optional Sterne
   ———————————————————————————————————————————————————— */
.testimonial-cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px;
}
.testimonial-card{
  background:#ffffff;
  border:1px solid var(--line-soft);
  border-radius:24px;
  padding:36px 32px 32px;
  display:flex;flex-direction:column;gap:24px;
  box-shadow:0 1px 0 rgba(156,125,46,.03), 0 12px 40px -18px rgba(156,125,46,.10);
  transition:transform .3s cubic-bezier(.2,.6,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.testimonial-card:hover{
  transform:translateY(-4px);
  border-color:var(--line);
  box-shadow:0 1px 0 rgba(156,125,46,.04), 0 24px 60px -20px rgba(156,125,46,.24);
}
.testimonial-card .stars{
  display:flex;gap:4px;color:var(--ink);font-size:16px;letter-spacing:2px;line-height:1;
}
.testimonial-card blockquote{
  margin:0;font-family:var(--sans);
  font-size:17px;line-height:1.55;color:var(--ink);
  quotes:"„" """ "‚" "'";
}
.testimonial-card blockquote::before{content:open-quote}
.testimonial-card blockquote::after{content:close-quote}
.testimonial-card .author{
  display:flex;align-items:center;gap:12px;
  padding-top:20px;border-top:1px solid var(--line-soft);margin-top:auto;
}
.testimonial-card .avatar{
  width:40px;height:40px;border-radius:50%;
  background:var(--green-deep);color:#ffffff;
  display:grid;place-items:center;font-size:14px;font-weight:600;flex:none;
}
.testimonial-card .avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.testimonial-card .name{
  font-size:14px;font-weight:500;color:var(--ink);line-height:1.3;
}
.testimonial-card .name small{
  display:block;font-weight:400;color:var(--ink-soft);font-size:13px;margin-top:2px;
}
@media(max-width:900px){.testimonial-cards{grid-template-columns:1fr}}

/* ————————————————————————————————————————————————————
   Leistungs-Karte — Titel, Beschreibung, optional Preis + CTA
   ———————————————————————————————————————————————————— */
.service-cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px;
}
.service-card{
  background:#ffffff;
  border:1px solid var(--line-soft);
  border-radius:24px;
  padding:36px 32px 32px;
  display:flex;flex-direction:column;gap:16px;
  box-shadow:0 1px 0 rgba(156,125,46,.03), 0 12px 40px -18px rgba(156,125,46,.10);
  transition:transform .3s cubic-bezier(.2,.6,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.service-card:hover{
  transform:translateY(-4px);
  border-color:var(--line);
  box-shadow:0 1px 0 rgba(156,125,46,.04), 0 24px 60px -20px rgba(156,125,46,.24);
}
.service-card h3{
  font-family:var(--sans);font-weight:500;font-size:22px;letter-spacing:-.012em;
  color:var(--ink);margin:0;line-height:1.2;
}
.service-card .price{
  font-size:15px;font-weight:600;color:var(--ink);letter-spacing:.005em;
}
.service-card .price small{
  display:inline-block;margin-left:6px;font-weight:400;color:var(--ink-soft);font-size:13px;
}
.service-card p{color:var(--ink);font-size:15px;line-height:1.55;margin:0}
.service-card ul{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:8px;
}
.service-card ul li{
  display:grid;grid-template-columns:16px 1fr;gap:10px;align-items:baseline;
  font-size:14px;color:var(--ink);line-height:1.5;
}
.service-card ul li::before{
  content:"·";color:var(--accent);font-weight:600;
}
.service-card .cta{
  align-self:flex-start;margin-top:8px;
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 20px;border-radius:var(--pill-r,999px);
  background:var(--green-deep);color:#ffffff;
  font-size:13px;font-weight:500;letter-spacing:.02em;line-height:1;
  border:none;text-decoration:none;
  transition:background .2s ease;
}
.service-card .cta:hover{background:var(--green-deep-2)}
@media(max-width:900px){.service-cards{grid-template-columns:1fr}}

/* ————————————————————————————————————————————————————
   Split-Card — horizontale Karte: Text links, Bild rechts
   Nummer-Badge oben links, für "Leistungsumfang"-Listen
   ———————————————————————————————————————————————————— */
.split-cards{
  display:flex;flex-direction:column;gap:40px;margin-top:8px;padding-bottom:40vh;
}
/* Sticky-Stack — jede Karte klebt beim Scrollen, die nächste rutscht drüber */
.split-card{position:sticky}
.split-cards > .split-card:nth-child(1){top:80px}
.split-cards > .split-card:nth-child(2){top:100px}
.split-cards > .split-card:nth-child(3){top:120px}
.split-cards > .split-card:nth-child(4){top:140px}
.split-cards > .split-card:nth-child(5){top:160px}
.split-cards > .split-card:nth-child(6){top:180px}
@media(max-width:820px){
  .split-cards > .split-card:nth-child(n){top:24px}
  .split-cards{gap:24px}
}
.split-card{
  background:#ffffff;
  border:1px solid var(--line-soft);
  border-radius:28px;overflow:hidden;
  display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch;gap:0;
  min-height:440px;
  box-shadow:0 1px 0 rgba(156,125,46,.03), 0 12px 40px -18px rgba(156,125,46,.10);
  transition:transform .3s cubic-bezier(.2,.6,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.split-card:hover{
  border-color:var(--line);
  box-shadow:0 1px 0 rgba(156,125,46,.04), 0 24px 60px -20px rgba(156,125,46,.24);
}
.split-card:hover{
  transform:translateY(-3px);
  box-shadow:0 24px 60px -24px rgba(156,125,46,.20);
}
.split-card .text{
  padding:64px 64px 64px 64px;
  display:flex;flex-direction:column;justify-content:center;gap:28px;
}
.split-card .num{
  font-family:var(--sans);font-weight:500;
  font-size:20px;color:var(--ink);letter-spacing:.005em;line-height:1;
}
.split-card h3{
  font-family:var(--sans);font-weight:500;font-size:clamp(24px,2.4vw,32px);
  letter-spacing:-.015em;color:var(--ink);margin:0;line-height:1.15;max-width:20ch;
}
.split-card p{
  color:var(--ink);font-size:16px;line-height:1.55;margin:0;max-width:44ch;
}
.split-card .image{
  background:var(--green-deep);position:relative;overflow:hidden;
  min-height:280px;
}
.split-card .image img{width:100%;height:100%;object-fit:cover;display:block}
.split-card.reverse{grid-template-columns:1fr 1.15fr}
.split-card.reverse .image{order:-1}

@media(max-width:820px){
  .split-card{grid-template-columns:1fr}
  .split-card .text{padding:32px 28px}
  .split-card .image{min-height:220px}
  .split-card.reverse .image{order:0}
}

/* ————————————————————————————————————————————————————
   Reiter — Tab-Switcher mit nummerierten Buttons
   Aktiver Tab: grün gefüllt, weißer Text
   ———————————————————————————————————————————————————— */
.reiter-tabs{
  display:flex;justify-content:center;flex-wrap:wrap;gap:12px;
  margin:0 auto 56px;
}
.reiter-tab{
  display:inline-flex;align-items:center;gap:12px;
  padding:12px 22px;border-radius:var(--pill-r,999px);
  background:rgba(156,125,46,.07);color:var(--ink);
  border:1px solid rgba(156,125,46,.32);
  font:inherit;cursor:pointer;
  font-size:15px;font-weight:500;letter-spacing:.005em;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.reiter-tab:hover{
  background:rgba(156,125,46,.12);border-color:rgba(156,125,46,.45);
  transform:translateY(-2px) scale(1.05);
}
.reiter-tab{transition:background .25s ease, color .25s ease, border-color .25s ease, transform .25s cubic-bezier(.2,.6,.2,1)}
.reiter-tab .n{
  font-size:12px;font-weight:500;color:var(--ink-soft);
  transition:color .2s ease;
}
.reiter-tab.active,
.reiter-tab.active:hover{
  background:var(--green-deep);color:#ffffff;border-color:var(--green-deep);
}
.reiter-tab.active .n{color:rgba(255,255,255,.72)}

.reiter-panels{position:relative}
.reiter-panel{display:none}
.reiter-panel.active{display:grid}

.reiter-panel{
  grid-template-columns:1.05fr 1fr;align-items:stretch;gap:0;
  background:#ffffff;
  border:1px solid var(--line-soft);
  border-radius:24px;overflow:hidden;
  box-shadow:0 1px 0 rgba(156,125,46,.03), 0 24px 60px -20px rgba(156,125,46,.18);
}
.reiter-panel .text{
  text-align:left;
  padding:56px 56px 56px 60px;
  display:flex;flex-direction:column;justify-content:center;gap:20px;
}
.reiter-panel h3{
  font-family:var(--sans);font-weight:500;font-size:clamp(28px,3vw,44px);
  letter-spacing:-.018em;color:var(--ink);margin:0;line-height:1.1;
}
.reiter-panel p{
  color:var(--ink);font-size:17px;line-height:1.6;margin:0;max-width:44ch;
}
.reiter-panel .image{
  background:var(--green-deep);min-height:340px;
  position:relative;overflow:hidden;
}
.reiter-panel .image img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:820px){
  .reiter-panel{grid-template-columns:1fr;gap:28px}
  .reiter-panel .image{min-height:240px;order:-1}
  .reiter-tabs{margin-bottom:36px}
}

/* ————————————————————————————————————————————————————
   Scroll-Highlight-Text — Headline färbt sich Wort für Wort
   beim Scrollen von blass-grün auf voll-grün
   ———————————————————————————————————————————————————— */
.scroll-text{
  font-family:var(--sans);font-weight:500;
  font-size:clamp(28px,3.4vw,52px);
  line-height:1.2;letter-spacing:-.018em;
  color:rgba(156,125,46,.18);
  max-width:28ch;margin:0 auto;text-align:center;
  text-wrap:balance;
}
.scroll-text span{
  transition:color .55s cubic-bezier(.22,.7,.15,1);
  will-change:color;
}
.scroll-text span.on{color:var(--ink)}
@media(prefers-reduced-motion:reduce){
  .scroll-text{color:var(--ink)}
  .scroll-text span{color:inherit !important}
}

/* ————————————————————————————————————————————————————
   Reading-Progress-Bar — dünne grüne Linie am Viewport-Rand
   Zeigt Scroll-Position der ganzen Seite
   ———————————————————————————————————————————————————— */
.progress-bar{
  position:fixed;top:0;left:0;right:0;height:2px;
  background:transparent;z-index:100;pointer-events:none;
}
.progress-bar__fill{
  height:100%;background:var(--green-deep);
  transform-origin:0 50%;transform:scaleX(0);
  transition:transform .08s linear;
}

/* ————————————————————————————————————————————————————
   Reveal-on-scroll — zweigleisig:
   · Modern (Scroll-Driven Animations): CSS-nativ, kein JS
   · Fallback (JS IntersectionObserver setzt .on)
   ———————————————————————————————————————————————————— */
.reveal{
  opacity:0;transform:translateY(24px);
  transition:opacity .8s ease, transform .8s cubic-bezier(.22,.7,.15,1);
  will-change:opacity,transform;
}
.reveal.on{opacity:1;transform:translateY(0)}

/* CSS-native Variante — übernimmt sobald der Browser scroll-timeline kann.
   Ersetzt die JS-Steuerung komplett, ohne Class-Toggle. */
@supports (animation-timeline: view()){
  .reveal{
    opacity:1;transform:none;transition:none;will-change:auto;
    animation:dhs-reveal linear both;
    animation-timeline:view();
    animation-range:entry 5% entry 45%;
  }
  @keyframes dhs-reveal{
    from{opacity:0;transform:translateY(24px)}
    to  {opacity:1;transform:translateY(0)}
  }
}

@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;animation:none}
}

/* ————————————————————————————————————————————————————
   View Transitions — nahtloser Übergang beim Seitenwechsel.
   Funktioniert nur über http(s):// (nicht file://).
   ———————————————————————————————————————————————————— */
@view-transition{
  navigation:auto;
}
::view-transition-old(root),
::view-transition-new(root){
  animation-duration:.42s;
  animation-timing-function:cubic-bezier(.22,.7,.15,1);
}
/* Header + Chip-Nav bleiben persistent (crossfaden nicht) */
.site-header{view-transition-name:dhs-header}
.chip-nav{view-transition-name:dhs-chip-nav}

@media(prefers-reduced-motion:reduce){
  ::view-transition-old(root),
  ::view-transition-new(root){animation:none}
}

/* ————————————————————————————————————————————————————
   Countup — große Zahlen die beim Sichtbarwerden hochzählen
   ———————————————————————————————————————————————————— */
.countup-row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:40px;text-align:center;
  border-top:1px solid var(--ink);padding-top:0;
}
.countup-item{
  padding:40px 24px 0;
  border-left:1px solid var(--line);
}
.countup-item:first-child{border-left:none}
.countup-item .num{
  font-family:var(--sans);font-weight:500;
  font-size:clamp(52px,6.4vw,96px);letter-spacing:-.028em;line-height:1;
  color:var(--ink);font-variant-numeric:tabular-nums;
  display:inline-flex;align-items:baseline;gap:0;
}
.countup-item .num .suffix{
  font-weight:500;color:var(--ink);letter-spacing:-.02em;
  margin-left:2px;
}
.countup-item .label{
  margin-top:16px;font-size:13px;color:var(--ink-soft);
  letter-spacing:.08em;text-transform:uppercase;font-weight:500;
}
@media(max-width:820px){
  .countup-row{grid-template-columns:1fr 1fr;gap:0}
  .countup-item:nth-child(2){border-left:1px solid var(--line)}
  .countup-item:nth-child(3){border-left:none;border-top:1px solid var(--line);padding-top:40px;margin-top:16px}
  .countup-item:nth-child(4){border-top:1px solid var(--line);padding-top:40px;margin-top:16px}
}

/* ————————————————————————————————————————————————————
   Statement-Field — vollflächig grüne Zäsur zwischen Sektionen.
   Weißer Text auf --green-deep, großes Statement,
   optionales Ghost-Wort im Hintergrund.
   ———————————————————————————————————————————————————— */
.statement{
  background:var(--green-deep);
  color:#ffffff;
  padding:200px 0 180px;
  border-top:none;border-bottom:none;
  position:relative;overflow:hidden;
  view-transition-name:none; /* verhindert Konflikt mit persistenten Nav-Elementen */
}
.statement > .wrap,
.statement > .wrap--wide{position:relative;z-index:2;text-align:center}

/* Eyebrow-Pill invertiert für dunklen Ground */
.statement .k{
  color:#ffffff;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.24);
  padding:10px 20px;border-radius:var(--pill-r,999px);
  display:inline-flex;align-items:center;gap:10px;
  font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
}

.statement h2{
  font-family:var(--sans);
  font-weight:400;
  font-size:clamp(38px,5.4vw,82px);
  letter-spacing:-.028em;line-height:1.08;
  margin:56px auto 64px;color:#ffffff;
  max-width:22ch;text-wrap:balance;
}
.statement .lede{
  font-size:clamp(17px,1.4vw,20px);
  color:rgba(255,255,255,.82);line-height:1.6;
  max-width:52ch;margin:0 auto 56px;font-weight:400;
}

/* Belegzeilen — Auszeichnungen, Kooperationen, Zahlen */
.statement .credits{
  display:flex;flex-direction:column;gap:14px;
  font-size:14px;color:rgba(255,255,255,.68);line-height:1.5;
  max-width:58ch;padding-top:40px;border-top:1px solid rgba(255,255,255,.16);
  margin-top:24px;
}
.statement .credits span{position:relative;padding-left:26px}
.statement .credits span::before{
  content:"";position:absolute;left:0;top:.68em;
  width:14px;height:1px;background:rgba(255,255,255,.4);
}
.statement .credits span strong{color:#ffffff;font-weight:400}

/* Ghost-Wort im Hintergrund — schwebt rechts, halb raus. Text via data-ghost. */
.statement .ghost{
  position:absolute;
  top:50%;right:-6%;
  transform:translateY(-50%);
  font-family:var(--sans);font-weight:500;
  font-size:clamp(200px,24vw,380px);
  letter-spacing:-.04em;line-height:.82;
  color:rgba(255,255,255,.055);
  white-space:nowrap;text-transform:uppercase;
  z-index:1;pointer-events:none;user-select:none;
}
.statement .ghost + .ghost{top:auto;bottom:-8%;right:auto;left:-4%;transform:none}

/* Modifier: kompakter */
.statement.compact{padding:120px 0 100px}
.statement.compact h2{font-size:clamp(40px,5.5vw,80px)}

/* Selektion invertieren */
.statement ::selection{background:#ffffff;color:var(--green-deep)}

@media(max-width:820px){
  .statement{padding:100px 0 90px}
  .statement .ghost{font-size:clamp(140px,44vw,220px);right:-12%}
}

/* Statement — Logo-Zeile (Wortmarken oder echte SVGs)
   Horizontale Reihe, mittig, unter dem Trennstrich. */
.statement .logos{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:28px 56px;
  padding-top:56px;margin-top:32px;
  border-top:1px solid rgba(255,255,255,.16);
}
.statement .logos .mark{
  font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.72);line-height:1;
  display:inline-flex;align-items:center;
}
.statement .logos img{
  height:32px;width:auto;
  filter:brightness(0) invert(1);
  opacity:.78;
}
@media(max-width:640px){
  .statement .logos{gap:20px 32px;padding-top:40px}
  .statement .logos .mark{font-size:12px}
}

/* ————————————————————————————————————————————————————
   DHS Ink-Reveal — Text erscheint Wort für Wort beim Scrollen.
   Wörter starten blass und faden zur Vollfarbe, sobald im Viewport-Mittel.
   Kein Layout-Shift, kein Blur, keine Transform. Nur Farbsättigung.
   Steuert JS-Klasse:
   · .ink-reveal auf Text-Container
   · .ink-word auf einzelnen Wörtern (JS zerlegt)
   · .on wird gesetzt sobald das Wort sichtbar ist
   ———————————————————————————————————————————————————— */

/* Standard: helles Textgrün auf weißem Ground → volles --ink */
.ink-reveal .ink-word{
  color:rgba(156,125,46,.16);
  transition:color .55s cubic-bezier(.22,.7,.15,1);
  will-change:color;
}
.ink-reveal .ink-word.on{
  color:var(--ink);
}

/* Weiche Text-Ziele (Lede, Intro, Beschreibungen): faden nicht auf --ink,
   sondern auf ihre passive Farbe --ink-soft */
.hero-lead.ink-reveal .ink-word.on,
.lede.ink-reveal .ink-word.on,
.intro.ink-reveal .ink-word.on,
.leist-list .desc.ink-reveal .ink-word.on,
.split-card p.ink-reveal .ink-word.on,
.prog-card .lede.ink-reveal .ink-word.on,
.stack-card p.ink-reveal .ink-word.on,
.area-card p.ink-reveal .ink-word.on,
.credential-card p.ink-reveal .ink-word.on{
  color:var(--ink-soft);
}

/* Alle grün-gefüllten Grounds — voll-weißer Text, kein Blass-Effekt.
   Ink-Reveal bleibt technisch aktiv, aber die Wörter sind immer 100% weiß. */
.statement .ink-reveal .ink-word,
.statement .ink-reveal .ink-word.on,
.panel-full .ink-reveal .ink-word,
.panel-full .ink-reveal .ink-word.on,
.top-block.green .ink-reveal .ink-word,
.top-block.green .ink-reveal .ink-word.on,
.symptom-card .ink-reveal .ink-word,
.symptom-card .ink-reveal .ink-word.on,
.stack-card.dark .ink-reveal .ink-word,
.stack-card.dark .ink-reveal .ink-word.on,
[data-dark] .ink-reveal .ink-word,
[data-dark] .ink-reveal .ink-word.on,
.site-footer .ink-reveal .ink-word,
.site-footer .ink-reveal .ink-word.on{
  color:#ffffff;
}
/* Beschreibungs-Absätze (Lede/Intro) auf grünem Ground: leicht softer,
   aber immer noch echtes Weiß mit hoher Opacity — kein Grünstich */
.statement .lede.ink-reveal .ink-word,
.statement .lede.ink-reveal .ink-word.on,
.panel-full p.ink-reveal .ink-word,
.panel-full p.ink-reveal .ink-word.on,
[data-dark] .lede.ink-reveal .ink-word,
[data-dark] .lede.ink-reveal .ink-word.on,
[data-dark] .intro.ink-reveal .ink-word,
[data-dark] .intro.ink-reveal .ink-word.on,
[data-dark] p.ink-reveal .ink-word,
[data-dark] p.ink-reveal .ink-word.on{
  color:rgba(255,255,255,.9);
}

@media(prefers-reduced-motion:reduce){
  .ink-reveal .ink-word{color:inherit !important;transition:none !important}
}

/* ————————————————————————————————————————————————————
   Fade-In — Karten, Bilder, Zahlen faden sanft ein.
   Nur Opacity, kein Lift, kein Blur. Sehr dezent.
   Karten sind praktisch immer sichtbar, werden nur beim Scrollen
   scharfgezogen. Trigger früh (siehe JS rootMargin), damit sie
   schon fast fertig gefaded sind wenn man sie erreicht.
   ———————————————————————————————————————————————————— */
.fade-in{
  opacity:.55;
  transition:opacity 1.4s cubic-bezier(.16,1,.3,1);
  will-change:opacity;
}
.fade-in.on{opacity:1}

@media(prefers-reduced-motion:reduce){
  .fade-in{opacity:1 !important;transition:none !important}
}

/* ————————————————————————————————————————————————————
   Line-In — dünne Trennstriche laufen von links nach rechts ein.
   Ersetzt die border-top durch ein animiertes Pseudo-Element.
   ———————————————————————————————————————————————————— */
.line-in{
  position:relative;
  border-top-color:transparent !important;
}
.line-in::before{
  content:"";position:absolute;top:-1px;left:0;right:0;height:1px;
  background:var(--line);
  transform:scaleX(0);transform-origin:left;
  transition:transform 1s cubic-bezier(.22,.7,.15,1);
}
.line-in.on::before{transform:scaleX(1)}

@media(prefers-reduced-motion:reduce){
  .line-in{border-top-color:var(--line) !important}
  .line-in::before{display:none}
}

/* ————————————————————————————————————————————————————
   Optische Zentrierung für Uppercase-Pills mit padding
   Nur für Pills mit Rahmen/Füllung — text-indent greift auf
   inline-flex nicht zuverlässig, deshalb via asymmetrischem padding.
   Für Klassen wo weder padding noch text-indent gesetzt sind,
   hilft die kleine text-indent-Shift.
   ———————————————————————————————————————————————————— */
.setting,
.chip-nav a,
.reiter-tab,
.area-card .num,
.area-card .setting,
.area-head .setting,
.statement .k,
.credential-card .k{
  padding-inline-start:calc(16px + .07em);
  padding-inline-end:calc(16px - .07em);
}

/* Für frei stehende Uppercase-Labels (kein padding-Container) */
.k:not(.sec-head .k):not(.statement .k):not(.split-card .text .k):not(.prog-card .info .k):not(.stack-card .info .k),
.hero-eyebrow,
.scroll-hero__eyebrow,
.countup-item .label{
  text-indent:.12em;
}

/* ————————————————————————————————————————————————————
   Karten-Hover — smoother Transitions
   Deckt alle Karten-Typen ab. Kombiniert opacity (Fade-In)
   mit transform/box-shadow/border-color (Hover) in einer Regel.
   ———————————————————————————————————————————————————— */
.split-card,
.prog-card,
.area-card,
.stack-card,
.step-card,
.feature-card,
.service-card,
.credential-card,
.symptom-card,
.testimonial-card{
  transition:
    opacity 1.4s cubic-bezier(.16,1,.3,1),
    transform .6s cubic-bezier(.22,.7,.15,1),
    box-shadow .6s cubic-bezier(.22,.7,.15,1),
    border-color .6s cubic-bezier(.22,.7,.15,1),
    background-color .35s ease !important;
}

/* ————————————————————————————————————————————————————
   Site Footer — grüner Panel, fast edge-to-edge, rounded
   Claim links, Menüspalten rechts, Marken-Zeile, Legal unten
   ———————————————————————————————————————————————————— */
.site-footer{
  padding:24px;
  background:transparent;
  border-top:none;
  margin:0;
  display:block;
}
.footer-panel{
  background:var(--green-deep);
  color:#ffffff;
  border-radius:40px;
  padding:88px 88px 40px;
  position:relative;overflow:hidden;
}

/* Großer CTA-Block */
.footer-cta{
  display:grid;grid-template-columns:1fr auto auto;align-items:baseline;
  column-gap:32px;row-gap:16px;
  padding-bottom:72px;
  border-bottom:1px solid rgba(255,255,255,.14);
  color:#ffffff;text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.footer-cta__label{
  font-family:var(--sans);font-weight:400;
  font-size:clamp(36px,4.6vw,68px);letter-spacing:-.028em;line-height:1.02;
  color:#ffffff;
}
.footer-cta__meta{
  font-size:14px;color:rgba(255,255,255,.55);
  max-width:32ch;text-align:right;line-height:1.5;
}
.footer-cta__arrow{
  font-size:34px;color:#ffffff;line-height:1;
  transition:transform .4s cubic-bezier(.22,.7,.15,1);
  display:inline-block;align-self:center;
}
.footer-cta:hover .footer-cta__arrow{transform:translateX(8px)}
.footer-cta:hover .footer-cta__label{color:#ffffff}

/* 4-Spalten-Info-Grid */
.footer-info{
  display:grid;grid-template-columns:1.2fr 1.1fr 1fr .8fr;
  gap:64px;
  padding:56px 0;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.footer-info .footer-col{
  display:flex;flex-direction:column;gap:14px;
}
.footer-info .k{
  font-size:11px;font-weight:500;letter-spacing:.22em;
  color:rgba(255,255,255,.42);
  padding:0 !important;background:none !important;border:none !important;
  text-indent:0 !important;
  margin-bottom:8px;
}
.footer-info address{
  font-style:normal;color:rgba(255,255,255,.88);
  font-size:16px;line-height:1.55;
}
.footer-info .hours{display:flex;flex-direction:column;gap:6px}
.footer-info .hours > div:not(.hours-status){
  color:rgba(255,255,255,.88);font-size:15px;line-height:1.55;
}
.hours-status{
  display:inline-flex;align-items:center;gap:10px;
  margin-top:14px;
  font-size:13px;color:#ffffff;font-weight:500;letter-spacing:.002em;
  padding:8px 14px 8px 12px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  border-radius:var(--pill-r,999px);align-self:flex-start;
}
.hours-dot{
  width:9px;height:9px;border-radius:50%;
  background:#ffffff;flex:none;
  animation:dot-blink 1.6s ease-in-out infinite;
}
.hours-status.is-open{
  background:rgba(74,222,128,.16);
  border-color:rgba(74,222,128,.4);
}
.hours-status.is-open .hours-dot{background:#4ade80}
.hours-status.is-open .hours-label{color:#ffffff}
.hours-status.is-closed{
  background:rgba(255,204,136,.12);
  border-color:rgba(255,204,136,.28);
}
.hours-status.is-closed .hours-dot{background:#ffcc88}
.hours-status.is-closed .hours-label{color:#ffffff}
/* Blink-Puls für den Live-Dot — sichtbar in Opacity, für alle Status-Farben */
@keyframes dot-blink{
  0%,100%{opacity:1;transform:scale(1)}
  50%    {opacity:.35;transform:scale(.88)}
}

.footer-link{
  color:rgba(255,255,255,.88);font-size:16px;font-weight:400;line-height:1.4;
  letter-spacing:-.005em;border-bottom:none;padding:0;
  transition:color .25s ease;
  align-self:flex-start;
}
.footer-link:hover{color:#ffffff}

.footer-notice{
  padding:22px 0;
  border-bottom:1px solid rgba(255,255,255,.14);
  font-size:13px;color:rgba(255,255,255,.5);letter-spacing:.005em;
}

.footer-bottom{
  padding-top:28px;
  display:grid;grid-template-columns:1fr auto auto;align-items:center;
  gap:24px 40px;
  font-size:12px;color:rgba(255,255,255,.42);letter-spacing:.02em;
}
.footer-legal{display:flex;gap:28px;flex-wrap:wrap}
.footer-legal a{
  font-size:12px;color:rgba(255,255,255,.42);
  border-bottom:none;letter-spacing:.02em;
  transition:color .25s ease;
}
.footer-legal a:hover{color:#ffffff}
.footer-lang{display:flex;gap:4px}
.footer-lang a{
  font-size:12px;color:rgba(255,255,255,.42);border-bottom:none;
  padding:4px 10px;border-radius:var(--pill-r,999px);letter-spacing:.06em;
  transition:color .25s, background .25s;
}
.footer-lang a[aria-current="true"]{color:#ffffff;background:rgba(255,255,255,.08)}
.footer-lang a:hover{color:#ffffff}

@media(max-width:900px){
  .site-footer{padding:16px}
  .footer-panel{padding:56px 36px 28px;border-radius:28px}
  .footer-cta{grid-template-columns:1fr auto;padding-bottom:48px}
  .footer-cta__meta{grid-column:1/-1;text-align:left;order:3;max-width:44ch}
  .footer-info{grid-template-columns:1fr 1fr;gap:36px;padding:44px 0}
  .footer-notice{padding:18px 0}
  .footer-bottom{grid-template-columns:1fr;gap:16px;padding-top:24px}
}
@media(max-width:560px){
  .footer-info{grid-template-columns:1fr}
}

/* ————————————————————————————————————————————————————
   Footer 2.0 — Corporate Klinik-Style
   Newsletter · Disclaimer · 5-Spalten-Menü · Bottom
   ———————————————————————————————————————————————————— */

/* Newsletter-Zeile */
.footer-news{
  display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center;
  padding-bottom:44px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.footer-news__title{
  font-family:var(--sans);font-weight:400;
  font-size:clamp(22px,2.4vw,32px);letter-spacing:-.02em;line-height:1.18;
  color:#ffffff;margin:0;max-width:24ch;text-wrap:balance;
}
.footer-news__form{
  display:flex;gap:8px;align-items:center;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  border-radius:var(--pill-r,999px);padding:6px 6px 6px 24px;
  transition:border-color .25s ease, background .25s ease;
}
.footer-news__form:focus-within{
  border-color:rgba(255,255,255,.4);
  background:rgba(255,255,255,.12);
}
.footer-news__form input{
  flex:1;min-width:0;
  background:transparent;border:none;outline:none;
  color:#ffffff;font-family:var(--sans);font-size:15px;padding:14px 0;
}
.footer-news__form input::placeholder{color:rgba(255,255,255,.45)}
.footer-news__form button{
  flex:none;width:44px;height:44px;border-radius:50%;
  background:#ffffff;color:var(--green-deep);
  border:none;font-size:20px;cursor:pointer;
  transition:transform .3s cubic-bezier(.22,.7,.15,1), background .25s ease;
  display:grid;place-items:center;
}
.footer-news__form button:hover{transform:translateX(3px);background:#f3faf6}

/* Disclaimer */
.footer-disclaimer{
  padding:32px 0;margin:0;
  border-bottom:1px solid rgba(255,255,255,.14);
  font-size:13px;line-height:1.6;color:rgba(255,255,255,.5);
  max-width:96ch;letter-spacing:.002em;
}

/* Menü-Grid — 5 Spalten */
.footer-menu{
  display:grid;grid-template-columns:repeat(5, 1fr);
  gap:40px;
  padding:56px 0;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.footer-menu .footer-col{
  display:flex;flex-direction:column;
}
.footer-col__title{
  font-family:var(--sans);font-weight:500;font-size:15px;
  color:#ffffff;letter-spacing:-.005em;
  margin:0 0 16px;
}
.footer-col__title--sub{margin-top:32px}
.footer-menu ul{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:10px;
}
.footer-menu li a{
  color:#ffffff;font-size:14px;font-weight:400;line-height:1.4;
  letter-spacing:.002em;
  border-bottom:none;padding:0;
  transition:opacity .2s ease;
  opacity:1;
}
.footer-menu li a:hover{opacity:.75;color:#ffffff}

.footer-menu address{
  font-style:normal;color:#ffffff;
  font-size:14px;line-height:1.55;margin:0 0 10px;
}
.footer-menu .footer-link{
  color:#ffffff;font-size:14px;font-weight:400;
  border-bottom:none;
  align-self:flex-start;
  transition:opacity .2s ease;
  opacity:1;
}
.footer-menu .footer-link:hover{opacity:.75;color:#ffffff}

/* Sprechzeiten mit Live-Ticker */
.footer-menu .hours{display:flex;flex-direction:column;gap:6px}
.footer-menu .hours-line{
  color:#ffffff;font-size:14px;line-height:1.55;
}
.footer-menu .hours-line--dim{color:#ffffff;opacity:.5}

/* Bottom */
.footer-bottom{
  padding-top:24px;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;
  gap:32px;
  font-size:12px;color:rgba(255,255,255,.42);letter-spacing:.02em;
}
/* Sprachumschalter — Details/Summary Popover mit Globus */
.footer-lang{position:relative}
.footer-lang > summary{
  list-style:none;cursor:pointer;outline:none;
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 14px 8px 12px;border-radius:var(--pill-r,999px);
  color:rgba(255,255,255,.72);font-size:13px;letter-spacing:.005em;
  transition:background .2s ease, color .2s ease;
  -webkit-tap-highlight-color:transparent;
}
.footer-lang > summary::-webkit-details-marker{display:none}
.footer-lang > summary::marker{display:none}
.footer-lang > summary:hover{color:#ffffff;background:rgba(255,255,255,.08)}
.footer-lang[open] > summary{color:#ffffff;background:rgba(255,255,255,.08)}
.footer-lang__globe{width:16px;height:16px;flex:none;stroke:currentColor}
.footer-lang__current{font-weight:400;letter-spacing:.002em}

.footer-lang__menu{
  position:absolute;bottom:calc(100% + 10px);left:0;
  min-width:180px;
  background:#ffffff;
  border-radius:18px;
  padding:6px;
  box-shadow:0 20px 40px -12px rgba(0,0,0,.28), 0 4px 12px -2px rgba(0,0,0,.1);
  display:flex;flex-direction:column;
  z-index:10;
  animation:lang-menu-in .18s ease-out;
}
@keyframes lang-menu-in{
  from{opacity:0;transform:translateY(6px)}
  to  {opacity:1;transform:translateY(0)}
}
.footer-lang__menu a{
  padding:16px 20px;
  color:var(--ink);font-size:15px;font-weight:500;letter-spacing:-.005em;
  border:none;border-radius:12px;
  transition:background .18s ease;
}
.footer-lang__menu a + a{
  margin-top:1px;border-top:1px solid var(--line-soft);border-radius:0 0 12px 12px;
}
.footer-lang__menu a:first-child{border-radius:12px 12px 0 0}
.footer-lang__menu a:hover{background:rgba(156,125,46,.06);color:var(--ink)}
.footer-lang__menu a[aria-current="true"]{color:var(--ink)}
.footer-copy{text-align:center}
.footer-legal{display:flex;gap:28px;flex-wrap:wrap;justify-content:flex-end}
.footer-legal a{
  font-size:12px;color:rgba(255,255,255,.42);
  border-bottom:none;letter-spacing:.02em;
  transition:color .25s ease;
}
.footer-legal a:hover{color:#ffffff}

/* CTA-Band vor dem Footer — großer Termin-Pill */
.cta-band{
  padding:120px 24px 60px;text-align:center;
  border-top:none;background:transparent;
}
.cta-band .wrap{
  display:flex;flex-direction:column;align-items:center;gap:20px;
  max-width:none;
}
.cta-pill{
  display:inline-flex;align-items:center;gap:28px;
  padding:22px 44px;
  background:var(--green-deep);color:#ffffff;
  border-radius:var(--pill-r,999px);border:1px solid var(--green-deep);
  font-family:var(--sans);font-size:clamp(20px,2.4vw,32px);
  font-weight:500;letter-spacing:-.02em;
  text-decoration:none;
  box-shadow:0 12px 40px -14px rgba(156,125,46,.35);
  transition:background .35s cubic-bezier(.22,.7,.15,1),
             transform .5s cubic-bezier(.22,.7,.15,1),
             box-shadow .5s ease,
             padding .35s ease;
}
.cta-pill:hover{
  background:var(--green-deep-2);color:#ffffff;
  transform:translateY(-4px);
  box-shadow:0 24px 56px -18px rgba(156,125,46,.45);
  padding-right:52px;
}
.cta-pill__arrow{
  display:inline-block;
  transition:transform .4s cubic-bezier(.22,.7,.15,1);
}
.cta-pill:hover .cta-pill__arrow{transform:translateX(6px)}
.cta-band__meta{
  font-size:14px;color:var(--ink-soft);margin:0;letter-spacing:-.005em;
}

@media(max-width:1100px){
  .footer-menu{grid-template-columns:repeat(3, 1fr);row-gap:56px}
}
@media(max-width:820px){
  .footer-news{grid-template-columns:1fr;gap:24px}
  .footer-menu{grid-template-columns:1fr 1fr;row-gap:48px;padding:44px 0}
  .footer-bottom{grid-template-columns:1fr;gap:16px;text-align:left}
  .footer-copy{text-align:left}
  .footer-legal{justify-content:flex-start}
}
@media(max-width:520px){
  .footer-menu{grid-template-columns:1fr;gap:40px}
}

/* Footer-Brand-Zeile — großer Marken-Anker oben im Footer
   Als Platzhalter mit Wortmarke, später gegen echtes SVG-Logo austauschbar. */
.footer-brand{
  display:flex;justify-content:space-between;align-items:flex-end;
  gap:32px;flex-wrap:wrap;
  padding-bottom:56px;margin-bottom:56px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.footer-brand__mark{
  font-family:var(--sans);font-weight:400;
  font-size:clamp(32px,4.2vw,60px);letter-spacing:-.028em;line-height:1;
  color:#ffffff;text-decoration:none;border:none;padding:0;
}
.footer-brand__mark:hover{color:#ffffff;opacity:.85}
.footer-brand__sub{
  font-size:13px;font-weight:400;letter-spacing:.005em;
  color:rgba(255,255,255,.5);
  padding-bottom:6px;
}
@media(max-width:820px){
  .footer-brand{padding-bottom:36px;margin-bottom:36px;gap:16px;align-items:flex-start}
  .footer-brand__sub{padding-bottom:0}
}

/* Text-Selektion auf grünen Grounds — reines Weiß, grüner Text */
.site-footer ::selection,
.site-footer *::selection,
.statement ::selection,
.statement *::selection,
.panel-full ::selection,
.panel-full *::selection,
.top-block.green ::selection,
.top-block.green *::selection,
.symptom-card ::selection,
.symptom-card *::selection,
.stack-card.dark ::selection,
.stack-card.dark *::selection,
[data-dark] ::selection,
[data-dark] *::selection{
  background-color:#ffffff !important;
  color:var(--green-deep) !important;
  text-shadow:none !important;
}
.site-footer ::-moz-selection,
.site-footer *::-moz-selection,
.statement ::-moz-selection,
.statement *::-moz-selection,
.panel-full ::-moz-selection,
.panel-full *::-moz-selection,
.top-block.green ::-moz-selection,
.top-block.green *::-moz-selection,
.symptom-card ::-moz-selection,
.symptom-card *::-moz-selection,
.stack-card.dark ::-moz-selection,
.stack-card.dark *::-moz-selection,
[data-dark] ::-moz-selection,
[data-dark] *::-moz-selection{
  background-color:#ffffff !important;
  color:var(--green-deep) !important;
  text-shadow:none !important;
}

/* Footer: dezenter Text (z. B. "WhatsApp — folgt") — keine aktive Link-Farbe */
.footer-muted{
  color:rgba(255,255,255,.5);
  font-size:14px;font-weight:400;line-height:1.4;
  letter-spacing:.002em;font-style:italic;
}

/* ————————————————————————————————————————————————————
   Feature-Row — alternierender Text-Bild-Wechsel
   (Referenz: Orthopädie-Klinik-Praxen 2026)
   Links Text, rechts Bild — nächste Reihe umgekehrt
   ———————————————————————————————————————————————————— */
.feature-row{
  display:grid;grid-template-columns:1fr 1fr;
  gap:80px;align-items:center;
  padding:80px 0;
}
.feature-row + .feature-row{
  border-top:1px solid var(--line-soft);
}
.feature-row.reverse .feature-row__text{order:2}
.feature-row.reverse .feature-row__media{order:1}

.feature-row__text{
  padding:0 8px;
}
.feature-row__text .k{
  display:inline-block;margin-bottom:20px;color:var(--ink);
  padding:8px 16px;background:rgba(156,125,46,.07);
  border:1px solid rgba(156,125,46,.28);border-radius:var(--pill-r,999px);
  font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
}
.feature-row__text h2{
  font-family:var(--sans);font-weight:500;
  font-size:clamp(28px,3.4vw,44px);letter-spacing:-.02em;line-height:1.1;
  margin:0 0 24px;color:var(--ink);text-wrap:balance;
}
.feature-row__text p{
  font-size:17px;line-height:1.65;color:var(--ink-soft);
  margin:0 0 18px;max-width:44ch;
}
.feature-row__text p:last-of-type{margin-bottom:32px}
.feature-row__text .cta{
  display:inline-block;
  padding:14px 28px;border-radius:var(--pill-r,999px);
  background:var(--green-deep);color:#ffffff;
  font-size:15px;font-weight:500;letter-spacing:.005em;
  border:1px solid var(--green-deep);
  transition:background .35s ease, transform .3s ease;
}
.feature-row__text .cta:hover{
  background:var(--green-deep-2);color:#ffffff;transform:translateY(-2px);
}

.feature-row__media{
  position:relative;overflow:hidden;
  border-radius:24px;aspect-ratio:5/4;
  background:linear-gradient(135deg,#e8f0eb,#d4e5db);
}
.feature-row__media img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.feature-row__media[data-video]::after{
  content:"▶";
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:76px;height:76px;border-radius:50%;
  background:var(--green-deep);color:#ffffff;
  display:grid;place-items:center;
  font-size:26px;line-height:1;padding-left:6px;
  box-shadow:0 12px 32px -8px rgba(0,0,0,.25);
  cursor:pointer;
  transition:transform .35s cubic-bezier(.22,.7,.15,1);
}
.feature-row__media[data-video]:hover::after{transform:translate(-50%,-50%) scale(1.08)}

@media(max-width:900px){
  .feature-row{grid-template-columns:1fr;gap:40px;padding:56px 0}
  .feature-row.reverse .feature-row__text{order:0}
  .feature-row.reverse .feature-row__media{order:0}
  .feature-row__text{padding:0}
}

/* ————————————————————————————————————————————————————
   Wide-Image — großes edge-to-edge Bild als Full-Width-Statement
   (Referenz: Orthopädie-Klinik-Hero 2026)
   ———————————————————————————————————————————————————— */
.wide-image{
  width:auto;
  aspect-ratio:16/6;
  overflow:hidden;
  background:linear-gradient(135deg,#e8f0eb,#d4e5db);
  position:relative;
  margin:0 24px;padding:0;border-radius:40px;  /* eingerückt wie alle großen Bilder (Regelwerk 6c), mobil 16px / Radius 24 */
  border:none;
}
@media(max-width:640px){.wide-image{margin:0 16px;border-radius:24px}}
.wide-image img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.wide-image[data-video]::after{
  content:"▶";
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:96px;height:96px;border-radius:50%;
  background:var(--green-deep);color:#ffffff;
  display:grid;place-items:center;
  font-size:32px;line-height:1;padding-left:8px;
  box-shadow:0 16px 48px -12px rgba(0,0,0,.35);
  cursor:pointer;
  transition:transform .35s cubic-bezier(.22,.7,.15,1);
}
.wide-image[data-video]:hover::after{transform:translate(-50%,-50%) scale(1.08)}

/* Variante: mit Text-Overlay unten links */
.wide-image__overlay{
  position:absolute;bottom:56px;left:56px;right:auto;
  color:#ffffff;max-width:44ch;z-index:2;
}
.wide-image__overlay h2{
  font-family:var(--sans);font-weight:500;
  font-size:clamp(28px,3.4vw,52px);letter-spacing:-.02em;line-height:1.08;
  margin:0 0 12px;color:#ffffff;text-wrap:balance;
  text-shadow:0 2px 20px rgba(0,0,0,.35);
}
.wide-image__overlay p{
  font-size:16px;line-height:1.55;color:rgba(255,255,255,.92);
  margin:0;text-shadow:0 1px 12px rgba(0,0,0,.3);
}
.wide-image::before{
  /* Optionales Gradient-Overlay für Text-Lesbarkeit */
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.35) 100%);
  pointer-events:none;opacity:0;
  transition:opacity .35s ease;
}
.wide-image.has-overlay::before{opacity:1}

@media(max-width:820px){
  .wide-image{aspect-ratio:4/3}
  .wide-image__overlay{bottom:32px;left:32px}
}

/* Feature-Row Variante: edge-to-edge, ohne Rundungen */
.feature-row--flush .feature-row__media{border-radius:0;aspect-ratio:auto;height:100%;min-height:520px}
.feature-row--flush{padding:0;gap:0;border-top:none}
.feature-row--flush .feature-row__text{padding:80px 64px}
@media(max-width:900px){
  .feature-row--flush .feature-row__text{padding:48px 32px}
  .feature-row--flush .feature-row__media{min-height:280px;aspect-ratio:4/3}
}

/* ————————————————————————————————————————————————————
   Symptom-Tiles — große Karten mit Icon oben, Titel, Text, Link
   Für die Beschwerden-Seite (Referenz: Klinik-Style 2026)
   ———————————————————————————————————————————————————— */
.symptom-band{
  background:linear-gradient(180deg,#f0f6f2 0%,#e5eee9 100%);
  padding:96px 32px;
}
.symptom-band__inner{
  max-width:1200px;margin:0 auto;
}
.symptom-band__head{
  text-align:center;margin-bottom:64px;
}
.symptom-band__head h2{
  font-family:var(--sans);font-weight:500;
  font-size:clamp(32px,4.2vw,52px);letter-spacing:-.022em;line-height:1.05;
  margin:0 0 20px;color:var(--ink);text-wrap:balance;
}
.symptom-band__head p{
  font-size:17px;color:var(--ink-soft);line-height:1.6;
  max-width:60ch;margin:0 auto;
}

.symptom-tiles{
  display:grid;grid-template-columns:repeat(2,1fr);gap:24px;
}
.symptom-tile{
  background:#ffffff;border-radius:20px;
  padding:56px 48px 48px;
  display:flex;flex-direction:column;gap:20px;
  border:1px solid var(--line-soft);
  text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line-soft);
  transition:transform .4s cubic-bezier(.22,.7,.15,1),
             box-shadow .4s ease,
             border-color .3s ease;
  padding-bottom:48px;
}
.symptom-tile:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 56px -20px rgba(156,125,46,.25);
  border-color:rgba(156,125,46,.32);
  color:var(--ink);
}
.symptom-tile__icon{
  width:64px;height:64px;
  display:grid;place-items:center;
  color:var(--green-deep);
}
.symptom-tile__icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.4}
.symptom-tile h3{
  font-family:var(--sans);font-weight:500;
  font-size:24px;letter-spacing:-.012em;line-height:1.2;
  margin:12px 0 0;color:var(--ink);
}
.symptom-tile p{
  font-size:16px;line-height:1.55;color:var(--ink-soft);
  margin:0;flex:1;
}
.symptom-tile__more{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--green-deep);font-size:15px;font-weight:500;
  margin-top:12px;
}
.symptom-tile:hover .symptom-tile__more{color:var(--green-deep-2)}

@media(max-width:900px){
  .symptom-tiles{grid-template-columns:1fr;gap:16px}
  .symptom-tile{padding:40px 32px 36px}
  .symptom-band{padding:64px 20px}
}

/* ————————————————————————————————————————————————————
   Symptom-Finder — client-side Keyword-Chat auf beschwerden.html
   Kein KI, kein Backend, keine Speicherung. Nur Content-Suche.
   ———————————————————————————————————————————————————— */
.symptom-finder{
  padding:64px 32px;
  background:linear-gradient(180deg,#f0f6f2 0%,#e5eee9 100%);
}
.symptom-finder__inner{
  max-width:840px;margin:0 auto;
  text-align:center;
}
.symptom-finder h2{
  font-family:var(--sans);font-weight:500;
  font-size:clamp(26px,3.2vw,40px);letter-spacing:-.02em;line-height:1.1;
  margin:0 0 16px;color:var(--ink);text-wrap:balance;
}
.symptom-finder__lead{
  font-size:16px;color:var(--ink-soft);line-height:1.55;
  max-width:52ch;margin:0 auto 32px;
}
.symptom-finder__form{
  display:flex;gap:8px;
  background:#ffffff;border:1px solid var(--line);border-radius:var(--pill-r,999px);
  padding:6px 6px 6px 24px;
  box-shadow:0 4px 20px -6px rgba(156,125,46,.15);
  max-width:640px;margin:0 auto;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.symptom-finder__form:focus-within{
  border-color:var(--green-deep);
  box-shadow:0 8px 32px -8px rgba(156,125,46,.28);
}
.symptom-finder__form input{
  flex:1;min-width:0;
  background:transparent;border:none;outline:none;
  color:var(--ink);font-family:var(--sans);font-size:16px;
  padding:14px 0;
}
.symptom-finder__form input::placeholder{color:var(--muted)}
.symptom-finder__form button{
  flex:none;padding:12px 24px;border-radius:var(--pill-r,999px);
  background:var(--green-deep);color:#ffffff;
  border:none;font-family:var(--sans);font-size:14px;font-weight:500;
  letter-spacing:.005em;cursor:pointer;
  transition:background .25s ease, transform .3s ease;
}
.symptom-finder__form button:hover{
  background:var(--green-deep-2);transform:translateY(-1px);
}
.symptom-finder__hint{
  font-size:13px;color:var(--muted);margin:16px 0 0;
  letter-spacing:.005em;
}

/* Ergebnis-Anzeige */
.symptom-finder__result{
  margin-top:40px;text-align:left;max-width:840px;
  padding:0 20px;
}
.symptom-finder__result:empty{margin-top:0}
.finder-emergency{
  background:#fff4ee;
  border:1px solid #e8b48f;
  border-radius:16px;padding:20px 24px;
  margin-bottom:20px;
  color:#8a3e10;font-size:15px;line-height:1.5;
}
.finder-emergency strong{color:#5e2607;font-weight:600}
.finder-headline{
  font-size:14px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 16px;
}
.finder-noresult{
  padding:20px 24px;background:#ffffff;border:1px solid var(--line);
  border-radius:16px;color:var(--ink);font-size:15px;line-height:1.55;
}
.finder-noresult a{color:var(--green-deep)}

/* Kompaktere Tiles für Ergebnisse */
.symptom-finder__result .symptom-tile{
  padding:32px 32px 28px;
  margin-bottom:12px;
}
.symptom-finder__result .symptom-tile__icon{width:44px;height:44px}
.symptom-finder__result .symptom-tile h3{font-size:20px;margin:8px 0 0}

@media(max-width:640px){
  .symptom-finder{padding:44px 20px}
  .symptom-finder__form{padding:4px 4px 4px 16px;flex-direction:column;border-radius:20px;gap:6px}
  .symptom-finder__form button{width:100%}
}

/* Finder-Chips — kleine Pill-Anzeige für erkannte Fachbegriffe */
.finder-chip{
  display:inline-block;padding:4px 10px;
  background:rgba(156,125,46,.08);border:1px solid rgba(156,125,46,.24);
  border-radius:var(--pill-r,999px);
  font-size:12px;color:var(--ink);letter-spacing:.005em;
  margin-right:4px;text-transform:none;font-weight:500;
}

/* Finder-Loading — Spinner + "Analyse läuft"-Effekt */
.finder-loading{
  display:flex;align-items:center;justify-content:center;gap:16px;
  padding:32px 24px;
  background:#ffffff;border:1px solid var(--line);border-radius:16px;
  color:var(--ink);font-size:15px;
}
.finder-spinner{
  width:24px;height:24px;flex:none;
  border:2.5px solid rgba(156,125,46,.15);
  border-top-color:var(--green-deep);
  border-radius:50%;
  animation:finder-spin .8s linear infinite;
}
@keyframes finder-spin{to{transform:rotate(360deg)}}
.finder-loading__text{
  font-family:var(--sans);font-size:15px;letter-spacing:.005em;
}
.finder-loading__text::after{
  content:"";
  display:inline-block;width:1.2em;text-align:left;
  animation:finder-dots 1.4s steps(4,end) infinite;
}
@keyframes finder-dots{
  0%{content:""} 25%{content:"."} 50%{content:".."} 75%{content:"..."} 100%{content:""}
}

/* ————————————————————————————————————————————————————
   DHS-Logo — komplette Logo-Datei (Symbol + Wortmarke) als CSS-Maske.
   Per currentColor eingefärbt: grün im Header, weiß im Footer.
   Kein separater Text-Link nötig — der Name steht im Logo selbst.
   ———————————————————————————————————————————————————— */
.brand-logo{
  display:inline-block;
  text-decoration:none;border-bottom:none;padding:0;
  color:var(--ink);
  transition:color .25s ease, opacity .25s ease;
}
.brand-logo:hover{color:var(--green-deep-2)}
.brand-logo__mark{
  width:180px;aspect-ratio:1100/558;
  background-color:currentColor;
  -webkit-mask:url('bilder/logo-thin-mit-text.svg') no-repeat center/contain;
          mask:url('bilder/logo-thin-mit-text.svg') no-repeat center/contain;
  display:block;
}

/* Header-Größe */
.site-header .brand-logo__mark{width:170px}

/* Footer: weiß auf grün, groß und präsent */
.site-footer .brand-logo{color:#ffffff}
.site-footer .brand-logo:hover{color:#ffffff;opacity:.85}
.site-footer .brand-logo__mark{width:260px}

/* Legal-Pages Header — kompakt */
.legal-head .brand-logo__mark{width:140px}

@media(max-width:600px){
  .site-header .brand-logo__mark{width:130px}
  .site-footer .brand-logo__mark{width:200px}
  .legal-head .brand-logo__mark{width:110px}
}



/* ══════════════════════════════════════════════════════════════
   MUSTER — Header, Content, Footer auf gleicher linker Linie
   ══════════════════════════════════════════════════════════════
   Alle Seiten benutzen dasselbe .wrap-Raster:
   Logo im Header sitzt an Kante X.
   Content-Text sitzt an derselben Kante X.
   Logo im Footer sitzt an derselben Kante X.
   ══════════════════════════════════════════════════════════════ */

/* Footer wird zu einem vollbreit-grünen Block ohne Panel-Padding.
   Das innere .wrap sorgt für dieselbe linke Kante wie im Header. */
.site-footer{
  padding:0 !important;
  background:var(--green-deep) !important;
  color:#ffffff !important;
  margin:0 !important;
}
.footer-panel{
  background:transparent !important;
  border-radius:0 !important;
  padding:0 !important;
  max-width:var(--max) !important;
  margin:0 auto !important;
  padding:80px var(--gutter, 32px) 40px !important;
}
@media(max-width:820px){
  .footer-panel{padding:56px var(--gutter, 32px) 28px !important}
}

/* Footer-Brand: Logo bündig links, keine Space-Between-Ablenkung */
.footer-brand{
  justify-content:flex-start !important;
  padding-left:0 !important;
  margin-left:0 !important;
}
.footer-brand .brand-logo,
.footer-brand .brand-logo__mark{
  margin-left:0 !important;
}

/* Footer-Menu und Bottom auch bündig links */
.footer-menu,
.footer-bottom,
.footer-cta,
.footer-info,
.footer-notice{
  padding-left:0 !important;
  padding-right:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
}


/* ══════════════════════════════════════════════════════════════
   MUSTER v2 — Wrap-Verhalten in flex-Kontexten konsistent halten
   ══════════════════════════════════════════════════════════════ */

/* .wrap verhält sich in flex-Kontexten (z.B. .top-block > .hero)
   sonst inkonsistent. Diese Regel garantiert überall:
   - volle Breite bis max 1200px
   - auto-zentriert
   - identisches 32px Innenpadding */
.wrap{
  max-width:var(--max) !important;
  width:100% !important;
  margin-inline:auto !important;
  padding-inline:var(--gutter, 32px) !important;
  box-sizing:border-box !important;
}
.wrap--wide{
  max-width:1440px !important;
  width:100% !important;
  margin-inline:auto !important;
  padding-inline:var(--gutter, 32px) !important;
  box-sizing:border-box !important;
}

/* .top-block > .hero soll NICHT horizontal zentrieren.
   Bei flex-column ist align-items horizontal — auf stretch zwingen. */
.top-block{
  align-items:stretch !important;
}
.top-block > .hero{
  align-items:stretch !important;
  align-self:stretch !important;
}

/* Header, Hero, Footer nutzen ALLE das gleiche .wrap-Verhalten.
   Damit sitzen Logo (Header), Hero-Text, und Logo (Footer)
   garantiert auf derselben vertikalen Linie. */
.site-header > .wrap,
.hero > .wrap,
.site-footer > .footer-panel,
.site-footer .footer-panel > *{
  align-self:stretch;
}


/* ══════════════════════════════════════════════════════════════
   FOOTER v3 — kompakter, ruhiger, keine Umbrüche
   ══════════════════════════════════════════════════════════════ */

/* Logo im Footer wieder auf ruhige Größe */
.site-footer .brand-logo__mark{width:200px !important}
@media(max-width:600px){
  .site-footer .brand-logo__mark{width:160px !important}
}

/* Weniger Vertikalraum um das Logo herum */
.footer-brand{
  padding-bottom:36px !important;
  margin-bottom:36px !important;
  gap:16px !important;
}

/* Footer-Panel-Padding straffer */
.footer-panel{
  padding:56px var(--gutter, 32px) 32px !important;
}
@media(max-width:820px){
  .footer-panel{padding:44px var(--gutter, 32px) 24px !important}
}

/* Menü-Spalten enger — Header war kompakt, Footer sollte matchen */
.footer-menu{
  padding:24px 0 !important;
  gap:48px !important;
}

/* Sprechzeiten-Bubble darf nicht umbrechen */
.hours-status{
  white-space:nowrap !important;
  flex-wrap:nowrap !important;
}
.hours-status .hours-label{
  white-space:nowrap !important;
}

/* Bottom-Zeile — Sprach-Popover flush links, gleiche Kante wie Logo */
.footer-bottom{
  padding-top:20px !important;
  padding-bottom:0 !important;
  align-items:center !important;
}
.footer-lang{
  margin-left:0 !important;
  padding-left:0 !important;
}
.footer-lang > summary{
  padding-left:0 !important;
  margin-left:0 !important;
}
.footer-lang__globe{
  margin-left:0 !important;
}

/* ══════════════════════════════════════════════════════════════
   HEADER v3 — clean & statisch, kein Sprung beim Scrollen
   ══════════════════════════════════════════════════════════════ */

/* Header padding bleibt IMMER gleich — auch wenn is-scrolled klebt.
   Kein Height-Shrink, kein Content-Sprung. */
.site-nav,
.site-header.is-scrolled .site-nav{
  padding:20px 0 !important;
  transition:none !important;
}
.site-header,
.site-header.is-scrolled{
  padding:0 !important;
  min-height:auto !important;
  transition:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  background:var(--navy) !important;
}

/* Logo im Header — feste Größe, kein Skalier-Effekt */
.site-header .brand-logo__mark{
  width:170px !important;
  transition:none !important;
}

/* Menü rechts — feste Gaps, feste Alignment */
.navlinks{
  display:flex !important;
  align-items:center !important;
  gap:32px !important;
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
}
.navlinks a{
  transition:color .2s ease !important;
}

/* CTA-Pille feste Maße — keine Position-Verschiebung */
.navlinks .nav-cta{
  margin-left:8px !important;
  padding:8px 16px !important;font-size:13px !important;line-height:1.4 !important;
  flex:none !important;
}

/* Nav vertikal exakt zentriert relativ zum Logo */
.site-nav{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:32px !important;
}

/* ══════════════════════════════════════════════════════════════
   FOOTER v4 — Pill zurück, Rounded Corner, gepolsterte Insel
   ══════════════════════════════════════════════════════════════ */

/* Äußerer Rand um die Pill */
.site-footer{
  padding:24px !important;
  background:transparent !important;
  color:var(--ink) !important;
  margin:0 !important;
}
@media(max-width:820px){
  .site-footer{padding:16px !important}
}

/* Die grüne Pill — Rounded, dezentes Padding innen */
.footer-panel{
  background:var(--green-deep) !important;
  color:#ffffff !important;
  border-radius:32px !important;
  padding:64px 72px 32px !important;
  max-width:none !important;
  margin:0 !important;
  position:relative !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}
@media(max-width:820px){
  .footer-panel{
    border-radius:24px !important;
    padding:44px 32px 24px !important;
  }
}

/* Logo bündig links im Panel — kein Extra-Padding */
.footer-brand{
  justify-content:flex-start !important;
  padding:0 0 32px 0 !important;
  margin:0 0 32px 0 !important;
  border-bottom:1px solid rgba(255,255,255,.14) !important;
  gap:16px !important;
}
.site-footer .brand-logo__mark{
  width:180px !important;
}
@media(max-width:600px){
  .site-footer .brand-logo__mark{width:140px !important}
}

/* Menü-Spalten innerhalb Pill */
.footer-menu{
  padding:24px 0 !important;
  gap:48px !important;
}

/* Bottom-Zeile innerhalb Pill */
.footer-bottom{
  padding-top:24px !important;
  border-top:1px solid rgba(255,255,255,.14) !important;
  margin-top:0 !important;
}

/* ══════════════════════════════════════════════════════════════
   FOOTER — Deutsch-Pill flush left an Panel-Kante
   ══════════════════════════════════════════════════════════════ */
.footer-lang{
  margin:0 !important;
  padding:0 !important;
  justify-self:start !important;
}
.footer-lang > summary{
  margin:0 !important;
  padding:8px 16px 8px 12px !important;
  align-self:flex-start !important;
}
.footer-lang__menu{
  left:0 !important;
  right:auto !important;
}

/* .footer-bottom Grid: erste Spalte startet ohne Extra-Padding */
.footer-bottom > *:first-child{
  margin-left:0 !important;
  padding-left:0 !important;
  justify-self:start !important;
}

/* ══════════════════════════════════════════════════════════════
   Scrollbar IMMER da — sonst verrutscht das Layout zwischen
   langen und kurzen Seiten (Startseite hat Scrollbar, kürzere
   Seite hat keine → 15px weniger Viewport → Menü rutscht rechts)
   ══════════════════════════════════════════════════════════════ */
html{
  overflow-y:scroll !important;
  scrollbar-gutter:stable !important;
}
body{
  overflow-x:clip;
}

/* ══════════════════════════════════════════════════════════════
   FOOTER v5 — größer, mit CTA-Block + Notice-Streifen
   ══════════════════════════════════════════════════════════════ */

/* Panel wird höher — mehr Vertikalraum für alle Sektionen */
.footer-panel{
  padding:72px 72px 32px !important;
}
@media(max-width:820px){
  .footer-panel{padding:48px 32px 24px !important}
}

/* Großer CTA-Block ganz oben */
.footer-cta{
  display:grid !important;
  grid-template-columns:1fr auto auto !important;
  align-items:baseline !important;
  column-gap:32px !important;
  row-gap:16px !important;
  padding:0 0 56px 0 !important;
  margin:0 0 48px 0 !important;
  border-bottom:1px solid rgba(255,255,255,.14) !important;
  color:#ffffff !important;
  text-decoration:none !important;
  border-top:none !important;
}
.footer-cta__label{
  font-family:var(--sans) !important;
  font-weight:400 !important;
  font-size:clamp(32px,4.2vw,60px) !important;
  letter-spacing:-.028em !important;
  line-height:1.02 !important;
  color:#ffffff !important;
}
.footer-cta__meta{
  font-size:14px !important;
  color:rgba(255,255,255,.55) !important;
  max-width:32ch !important;
  text-align:right !important;
  line-height:1.5 !important;
}
.footer-cta__arrow{
  font-size:34px !important;
  color:#ffffff !important;
  line-height:1 !important;
  transition:transform .4s cubic-bezier(.22,.7,.15,1) !important;
  display:inline-block !important;
  align-self:center !important;
}
.footer-cta:hover .footer-cta__arrow{transform:translateX(8px) !important}
@media(max-width:820px){
  .footer-cta{
    grid-template-columns:1fr auto !important;
    padding:0 0 36px 0 !important;
    margin:0 0 32px 0 !important;
  }
  .footer-cta__meta{grid-column:1 / -1 !important;text-align:left !important;max-width:none !important}
}

/* Notice-Streifen zwischen Menü und Bottom */
.footer-notice{
  padding:20px 0 !important;
  margin:24px 0 0 0 !important;
  border-top:1px solid rgba(255,255,255,.14) !important;
  font-size:13px !important;
  color:rgba(255,255,255,.55) !important;
  letter-spacing:.005em !important;
  line-height:1.55 !important;
}

/* Brand-Sub-Zeile neben Logo */
.footer-brand{
  align-items:center !important;
  gap:20px !important;
  padding:0 0 32px 0 !important;
  margin:0 0 40px 0 !important;
}
.footer-brand__sub{
  font-size:13px !important;
  font-weight:400 !important;
  letter-spacing:.02em !important;
  color:rgba(255,255,255,.55) !important;
  text-transform:uppercase !important;
}

/* ══════════════════════════════════════════════════════════════
   Scrollbar-Layout-Shift v2 — Cross-Browser bulletproof
   ══════════════════════════════════════════════════════════════
   scrollbar-gutter:stable wird nicht überall unterstützt (Safari < 18).
   Der margin-Trick verschiebt die Scrollbar in den margin-Bereich,
   so dass der Content-Bereich konstante Breite hat, egal ob die
   Seite scrollt oder nicht.
   ══════════════════════════════════════════════════════════════ */
html{
  overflow-y:scroll !important;
  scrollbar-gutter:stable !important;
}
body{
  overflow-x:clip;
  margin:0;
}


/* footer-notice endgültig raus */
.footer-notice{display:none !important}

/* ══════════════════════════════════════════════════════════════
   NAV-CTA — einheitlich auf allen Seiten (überschreibt inline)
   ══════════════════════════════════════════════════════════════ */
.navlinks .nav-cta{
  position:relative !important;
  margin-left:8px !important;
  padding:10px 20px !important;
  color:#ffffff !important;
  background:var(--green-deep, #8a6e28) !important;
  border:1px solid var(--green-deep, #8a6e28) !important;
  border-radius:var(--pill-r,999px) !important;
  font-size:14px !important;
  font-weight:500 !important;
  letter-spacing:.005em !important;
  line-height:1.2 !important;
  transition:background .2s ease, color .2s ease, border-color .2s ease !important;
  overflow:visible !important;
  isolation:auto !important;
}
.navlinks .nav-cta:hover{
  background:var(--green-deep-2, #63501d) !important;
  border-color:var(--green-deep-2, #63501d) !important;
  color:#ffffff !important;
}
/* Shimmer-Overlay & andere Pseudo-Deko raus */
.navlinks .nav-cta::before,
.navlinks .nav-cta::after{
  display:none !important;
  content:none !important;
  animation:none !important;
}

/* ══════════════════════════════════════════════════════════════
   NAV — komplett einheitlich (überschreibt ALLE inline styles)
   ══════════════════════════════════════════════════════════════ */

/* Container */
.navlinks{
  display:flex !important;
  align-items:center !important;
  gap:28px !important;
  color:var(--ink) !important;
  font-size:14px !important;
  font-weight:500 !important;
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
}

/* Alle Nav-Links (außer .nav-cta) — kein Unterstrich, konstante Metriken */
.navlinks a,
.navlinks a:visited{
  border-bottom:none !important;
  padding:0 !important;
  margin:0 !important;
  color:var(--ink) !important;
  font-size:14px !important;
  font-weight:500 !important;
  letter-spacing:.005em !important;
  line-height:1.2 !important;
  text-decoration:none !important;
  transition:color .2s ease !important;
  position:relative !important;
}
.navlinks a:hover{
  color:var(--green-deep-2, #63501d) !important;
}
.navlinks a[aria-current="page"]{
  color:var(--green-deep-2, #63501d) !important;
}

/* Pseudo-elements auf Links deaktiviert (auch die Underline-Animation) */
.navlinks a:not(.nav-cta)::after,
.navlinks a:not(.nav-cta)::before{
  display:none !important;
  content:none !important;
  animation:none !important;
}

/* NAV-CTA final — Weißer Text auf grünem Ground, garantiert
   (nach ALLEN generischen .navlinks a Regeln) */
.navlinks a.nav-cta,
.navlinks a.nav-cta:visited,
.navlinks a.nav-cta:hover,
.navlinks a.nav-cta:focus{
  color:#ffffff !important;
  background:var(--green-deep, #8a6e28) !important;
  border:1px solid var(--green-deep, #8a6e28) !important;
  padding:10px 20px !important;
  font-size:14px !important;
  font-weight:500 !important;
  border-radius:var(--pill-r,999px) !important;
  line-height:1.2 !important;
  margin-left:8px !important;
  text-decoration:none !important;
  letter-spacing:.005em !important;
}
.navlinks a.nav-cta:hover{
  background:var(--green-deep-2, #63501d) !important;
  border-color:var(--green-deep-2, #63501d) !important;
  color:#ffffff !important;
}

/* ══════════════════════════════════════════════════════════════
   Sprechzeiten-Pill im Footer — komplett weiß statt transluzent
   ══════════════════════════════════════════════════════════════ */
.site-footer .hours-status,
.site-footer .hours-status.is-open,
.site-footer .hours-status.is-closed{
  background:#ffffff !important;
  border:1px solid #ffffff !important;
  color:var(--green-deep, #8a6e28) !important;
}
.site-footer .hours-status .hours-label,
.site-footer .hours-status.is-open .hours-label,
.site-footer .hours-status.is-closed .hours-label{
  color:var(--green-deep, #8a6e28) !important;
  font-weight:500 !important;
}
.site-footer .hours-status .hours-dot{
  background:var(--green-deep, #8a6e28) !important;
}
.site-footer .hours-status.is-open .hours-dot{
  background:#3fa06a !important;
}
.site-footer .hours-status.is-closed .hours-dot{
  background:#d99a5a !important;
}

/* ══════════════════════════════════════════════════════════════
   Header-Unterlinie: EINE einzige, dünne, vollbreite Line
   ══════════════════════════════════════════════════════════════ */
.site-header{
  border-bottom:1px solid var(--line, rgba(156,125,46,.14)) !important;
}
.site-header > .wrap{
  border-bottom:none !important;
}
.site-header::after,
.site-header::before{
  display:none !important;
}
/* Auch top-block darf keinen extra Gradient/Line ziehen */
.top-block::after,
.top-block::before{
  display:none !important;
}

/* ══════════════════════════════════════════════════════════════
   Nav-Dropdown "Über uns"
   ══════════════════════════════════════════════════════════════ */
.nav-drop{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
}
.nav-drop-btn{
  display:inline-flex !important;
  align-items:center !important;
  gap:5px !important;
  background:none !important;
  border:none !important;
  padding:0 !important;
  margin:0 !important;
  cursor:pointer !important;
  color:var(--ink) !important;
  font:inherit !important;
  font-size:14px !important;
  font-weight:500 !important;
  letter-spacing:.005em !important;
  line-height:1.2 !important;
  transition:color .2s ease !important;
}
.nav-drop-btn svg{
  transition:transform .25s cubic-bezier(.22,1.02,.32,1) !important;
}
.nav-drop-btn:hover,
.nav-drop.open .nav-drop-btn{
  color:var(--green-deep-2, #63501d) !important;
}
.nav-drop.open .nav-drop-btn svg{
  transform:rotate(180deg) !important;
}
.nav-drop-menu{
  position:absolute !important;
  top:100% !important;
  margin-top:14px !important;
  left:50% !important;
  transform:translateX(-50%) translateY(-6px) !important;
  min-width:180px !important;
  padding:8px !important;
  background:#ffffff !important;
  border:1px solid var(--line, rgba(156,125,46,.18)) !important;
  border-radius:14px !important;
  box-shadow:0 12px 40px rgba(30,82,56,.08), 0 3px 10px rgba(30,82,56,.05) !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transition:opacity .22s ease, transform .22s cubic-bezier(.22,1.02,.32,1), visibility 0s linear .22s !important;
  z-index:70 !important;
}
.nav-drop.open .nav-drop-menu{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  transform:translateX(-50%) translateY(0) !important;
  transition:opacity .22s ease, transform .22s cubic-bezier(.22,1.02,.32,1) !important;
}
/* Unsichtbare Bridge unter dem Button — hält Hover-Zustand
   auch wenn der Cursor durch den 14px-Gap zum Menü wandert.
   Wichtig: MUSS auf .nav-drop selbst sein, nicht auf .nav-drop-menu
   (weil letzteres unsichtbar ist, wenn nicht gehovered). */
.nav-drop::after{
  content:"";
  position:absolute;
  top:100%;
  left:-20px;right:-20px;
  height:20px;
  background:transparent;
  pointer-events:auto;
}

/* Hover-Öffnung als Backup (auf Desktop) */
@media(hover:hover) and (pointer:fine){
  .nav-drop:hover .nav-drop-menu,
  .nav-drop:focus-within .nav-drop-menu{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:translateX(-50%) translateY(0) !important;
    transition:opacity .22s ease, transform .22s cubic-bezier(.22,1.02,.32,1) !important;
  }
  .nav-drop:hover .nav-drop-btn svg,
  .nav-drop:focus-within .nav-drop-btn svg{
    transform:rotate(180deg) !important;
  }
}
.nav-drop-menu a,
.nav-drop-menu a:visited{
  display:block !important;
  padding:9px 14px !important;
  color:var(--ink) !important;
  font-size:14px !important;
  font-weight:400 !important;
  border-radius:8px !important;
  border:none !important;
  text-decoration:none !important;
  transition:background .15s ease, color .15s ease !important;
  white-space:nowrap !important;
}
.nav-drop-menu a:hover{
  background:rgba(156,125,46,.06) !important;
  color:var(--green-deep-2, #63501d) !important;
}

/* Footer: 5 Spalten (Praxis · Themen · Service · Kontakt · Sprechzeiten) */
.footer-menu{
  display:grid !important;
  grid-template-columns:repeat(5, 1fr) !important;
  gap:40px !important;
}
@media(max-width:1100px){
  .footer-menu{grid-template-columns:repeat(3, 1fr) !important; row-gap:48px !important}
}
@media(max-width:720px){
  .footer-menu{grid-template-columns:repeat(2, 1fr) !important; row-gap:40px !important}
}
@media(max-width:480px){
  .footer-menu{grid-template-columns:1fr !important; row-gap:36px !important}
}

/* ══════════════════════════════════════════════════════════════
   Hero-Einblende-Effekt — identisch zur Startseite
   ══════════════════════════════════════════════════════════════ */
.hero-mask{
  display:block;overflow:hidden;
  padding-bottom:.14em;margin-bottom:-.14em;
}
.hero-slot{
  display:block;transform:translateY(110%);
  animation:hero-rise .95s cubic-bezier(.22,.7,.15,1) 200ms forwards;
  will-change:transform;
}
@keyframes hero-rise{
  to{transform:translateY(0)}
}

/* Hero-Lead fadeup nach Titel-Slide */
.hero-lead{
  opacity:0;transform:translateY(8px);
  animation:hero-fadeup .9s cubic-bezier(.2,.6,.2,1) 1100ms forwards;
}
@keyframes hero-fadeup{
  to{opacity:1;transform:none}
}

@media (prefers-reduced-motion: reduce){
  .hero-slot,.hero-lead{
    animation:none !important;opacity:1 !important;transform:none !important;
  }
}

/* Footer-Logo mittig — Logo ist zentral, gehört in die Mitte */
.footer-brand{
  justify-content:center !important;
  align-items:center !important;
  text-align:center !important;
}

/* ══════════════════════════════════════════════════════════════
   Header v2 — Logo mittig, Adresse links, CTA rechts, Nav darunter
   ══════════════════════════════════════════════════════════════ */
.site-nav-top{
  display:grid !important;
  grid-template-columns:1fr auto 1fr !important;
  align-items:center !important;
  padding:20px 0 !important;
  gap:24px !important;
}
.site-address{
  font-style:normal !important;
  font-size:13px !important;
  letter-spacing:.005em !important;
  color:var(--ink-soft, rgba(156,125,46,.72)) !important;
  justify-self:start !important;
  margin:0 !important;
}
.site-address a{
  color:inherit !important;
  border-bottom:none !important;
  padding:0 !important;
  transition:color .2s ease !important;
}
.site-address a:hover{color:var(--green-deep) !important}

.site-nav-top .brand-logo{justify-self:center !important}

.site-nav-cta{
  justify-self:end !important;
  margin:0 !important;
}

/* Nav-Links darunter — zentriert, mit dezenter Trennlinie oben */
.site-nav{
  display:flex !important;
  justify-content:center !important;
  padding:12px 0 !important;
  border-top:1px solid var(--line, rgba(156,125,46,.12)) !important;
}
.site-nav .navlinks{
  gap:32px !important;
  justify-content:center !important;
}

/* Mobile: Adresse ausblenden, CTA klein bleiben, Nav-Links kompakt */
@media(max-width:820px){
  .site-nav-top{grid-template-columns:auto 1fr auto !important;gap:12px !important}
  .site-address{display:none !important}
  .site-nav-top .brand-logo{justify-self:start !important}
  .site-nav-cta{padding:8px 14px !important;font-size:13px !important}
  .site-nav .navlinks{gap:18px !important;flex-wrap:wrap !important}
}

/* Header v2 — mehr Luft oben, Adresse 2-zeilig */
.site-nav-top{padding:36px 0 24px !important}
@media(max-width:820px){.site-nav-top{padding:20px 0 12px !important}}

.site-address{
  line-height:1.45 !important;
  font-size:12px !important;
}
.site-address__name{
  display:block;
  font-weight:500;
  color:var(--ink);
  letter-spacing:.005em;
  margin-bottom:2px;
}

/* Header v3 — Adresse ganz links, Text zentriert innerhalb der Box */
.site-address{
  text-align:center !important;
  line-height:1.5 !important;
  font-size:13px !important;
  color:var(--ink) !important;
  justify-self:start !important;
  align-self:center !important;
  margin:0 !important;
  padding:0 !important;
  width:auto !important;
  display:inline-block !important;
}
.site-nav-top{grid-template-columns:1fr auto 1fr !important}
.site-address a{
  display:inline-block;
  line-height:1.5 !important;
}

/* ══════════════════════════════════════════════════════════════
   Header v4 — Nav-Line vollbreit, CTA-Button outlined (DIREKTKONTAKT)
   ══════════════════════════════════════════════════════════════ */
.site-nav{
  border-top:1px solid var(--line, rgba(156,125,46,.12)) !important;
  border-bottom:1px solid var(--line, rgba(156,125,46,.12)) !important;
  padding:0 !important;
}
.site-nav > .wrap{
  padding-top:12px !important;
  padding-bottom:12px !important;
}

/* Site-nav-cta: outlined, normal case, dezent — nicht mehr gefüllt */
.navlinks a.site-nav-cta,
.navlinks a.site-nav-cta:visited,
a.site-nav-cta,
a.site-nav-cta:visited{
  background:transparent !important;
  color:var(--green-deep, #8a6e28) !important;
  border:1px solid rgba(156,125,46,.35) !important;
  padding:10px 22px !important;
  font-size:14px !important;
  font-weight:500 !important;
  letter-spacing:.005em !important;
  text-transform:none !important;
  border-radius:var(--pill-r,999px) !important;
  line-height:1.2 !important;
  text-decoration:none !important;
  transition:background .2s ease, border-color .2s ease !important;
  padding-bottom:10px !important;
  border-bottom:1px solid rgba(156,125,46,.35) !important;
}
a.site-nav-cta:hover{
  background:rgba(156,125,46,.06) !important;
  border-color:var(--green-deep, #8a6e28) !important;
  color:var(--green-deep, #8a6e28) !important;
}

/* Nav-Links & Dropdown — etwas größere Schrift */
.navlinks a,
.navlinks a:visited,
.nav-drop-btn{
  font-size:15px !important;
}
.nav-drop-menu a,
.nav-drop-menu a:visited{
  font-size:15px !important;
  padding:11px 16px !important;
}

/* Header — nur EINE Line: die über dem Nav. Keine Doppellinie */
.site-header{border-bottom:none !important}

/* ══════════════════════════════════════════════════════════════
   Logo mit inline SVG — Herz pulsiert 2× ("hep hep") im Loop
   ══════════════════════════════════════════════════════════════ */
.brand-logo__mark{
  /* CSS-Mask deaktivieren, weil wir inline SVG haben */
  background:none !important;
  -webkit-mask:none !important;
          mask:none !important;
  display:inline-block;
  /* Rendering isolieren — inner Transforms bleiben innen */
  contain:layout paint;
}
.brand-logo__svg{
  display:block;
  width:100%;
  height:auto;
  color:currentColor;
  overflow:visible;
}
.brand-logo__heart{
  /* Herz-Wrapper: transform-origin ist der Mittelpunkt der Herz-Bounding-Box */
  transform-origin:50% 50%;
  transform-box:fill-box;
  animation:heart-hep 8s ease-in-out infinite;
  cursor:pointer;
}
/* Footer (grüner Ground): Fill = Ground-Farbe → wirkt transparent */

@keyframes heart-hep{
  0%, 88%, 100% { transform:scale(1) }
  90%           { transform:scale(1.16) }
  92%           { transform:scale(.98) }
  94%           { transform:scale(1.12) }
  96%           { transform:scale(1) }
}
/* Hover ODER Random-Trigger via JS: spontaner Herzschlag — subtil, kein Wackeln */
.brand-logo:hover .brand-logo__heart,
.brand-logo__heart.is-beating{
  animation:heart-hep-quick 1s ease-in-out !important;
}
@keyframes heart-hep-quick{
  0%, 100% { transform:scale(1) }
  20%      { transform:scale(1.14) }
  40%      { transform:scale(1) }
  60%      { transform:scale(1.10) }
  80%      { transform:scale(1) }
}
@media (prefers-reduced-motion: reduce){
  .brand-logo__heart{animation:none !important}
}

/* Kein Farbwechsel beim Hover — das Sub-Pixel-Repaint verschob den Text */
.brand-logo:hover{color:inherit !important}
.site-footer .brand-logo:hover{color:#ffffff !important;opacity:1 !important}

/* Footer-Herzschlag — jetzt stärker wie im Header */

.site-footer .brand-logo__heart{fill:var(--green-deep, #8a6e28) !important}
.site-footer .brand-logo__heart path{fill:var(--green-deep, #8a6e28) !important}

/* Mitgliedschaften-Cards — Logos grün via CSS-Mask, Hover dunkelgrün */
.credential-card .logo{
  display:flex;align-items:center;justify-content:center;
  height:88px;margin-bottom:20px;
}
.logo-mask{
  display:inline-block;
  width:150px;height:80px;
  background-color:var(--green-deep, #9c7d2e);
  -webkit-mask:var(--src) center/contain no-repeat;
          mask:var(--src) center/contain no-repeat;
  opacity:.65;
  transition:background-color .3s ease, opacity .3s ease;
}
.credential-card:hover .logo-mask{
  opacity:1;
}

/* ————————————————————————————————————————————————————
   Job-Karten — Accordion für Stellenanzeigen
   Verwendung: <details class="job-card"><summary class="job-card__summary">…</summary>…</details>
   ———————————————————————————————————————————————————— */
.job-card{
  background:#ffffff;border:1px solid var(--line);
  border-radius:28px;margin:0 auto 16px;overflow:hidden;
  max-width:900px;
  transition:border-color .3s ease,box-shadow .3s ease;
}
.job-card:hover,.job-card[open]{
  border-color:rgba(156,125,46,.28);
  box-shadow:0 20px 50px rgba(30,82,56,.06);
}
.job-card__summary{
  display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;
  padding:28px 32px;cursor:pointer;
  list-style:none;transition:background .2s ease;
}
.job-card__summary::-webkit-details-marker{display:none}
.job-card__summary::marker{display:none;content:""}
.job-card__summary:hover{background:rgba(156,125,46,.02)}
.job-card__title{
  font-family:var(--sans);font-weight:400;
  font-size:clamp(20px,2.2vw,26px);letter-spacing:-.015em;line-height:1.2;
  margin:0 0 6px;color:var(--ink);
}
.job-card__subtitle{font-size:14px;color:var(--ink-soft);margin:0;line-height:1.5}
.job-card__toggle{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:50%;
  background:rgba(156,125,46,.06);color:var(--green-deep);
  transition:transform .3s cubic-bezier(.22,.7,.15,1);
  flex-shrink:0;
}
.job-card[open] .job-card__toggle{transform:rotate(180deg)}
.job-card__body{padding:24px 32px 32px;border-top:1px solid var(--line)}
.job-card__lead{font-size:17px;line-height:1.7;color:var(--ink);margin:16px 0 28px}
.job-card__grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:0 0 28px}
.job-card__block h4{
  font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 12px;
}
.job-card__block ul{list-style:none;padding:0;margin:0}
.job-card__block li{
  padding:6px 0 6px 18px;position:relative;
  font-size:16px;color:var(--ink);line-height:1.55;
}
.job-card__block li::before{
  content:"";position:absolute;left:0;top:12px;
  width:4px;height:4px;border-radius:50%;background:var(--green-deep);
}
.job-card__cta{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border-radius:var(--pill-r,999px);
  background:transparent;color:var(--green-deep) !important;
  border:1px solid rgba(156,125,46,.35) !important;
  border-bottom:1px solid rgba(156,125,46,.35) !important;
  font-size:13px;font-weight:500;line-height:1.2;
  text-decoration:none !important;padding-bottom:10px !important;
  transition:background .2s ease,border-color .2s ease;
}
.job-card__cta:hover{
  background:rgba(156,125,46,.05);
  border-color:var(--green-deep) !important;
}
@media(max-width:640px){
  .job-card__summary{padding:22px 24px}
  .job-card__body{padding:20px 24px 28px}
  .job-card__grid{grid-template-columns:1fr;gap:20px}
}

/* ————————————————————————————————————————————————————
   Nav-Dropdown „Kontakt" — Telefon groß, Mail, Schnellwege
   (globales Shell-Element, Markup auf jeder Shell-Seite gleich)
   ———————————————————————————————————————————————————— */
.nav-drop-menu--contact{min-width:300px !important;padding:18px 10px 10px !important}
.nav-drop-menu--contact .nav-drop-contact__label{display:flex;align-items:center;gap:8px;padding:0 16px 6px;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft, rgba(156,125,46,.72))}
.nav-drop-menu a.nav-drop-contact__tel{display:block;font-size:26px !important;font-weight:500;letter-spacing:-.01em;line-height:1.15;padding:2px 16px 4px !important;color:var(--green-deep) !important;white-space:nowrap}
.nav-drop-menu a.nav-drop-contact__tel:hover{color:var(--green-deep-2) !important}
.nav-drop-menu a.nav-drop-contact__mail{display:block;font-size:14px !important;padding:2px 16px 10px !important;color:var(--ink) !important;white-space:nowrap}
.nav-drop-menu--contact .nav-drop-contact__sep{display:block;height:1px;margin:6px 8px 8px;background:var(--line, rgba(156,125,46,.18))}
.nav-drop-menu--contact .nav-drop-contact__label::before{content:"";width:7px;height:7px;border-radius:50%;background:rgba(156,125,46,.3);flex:none}
.nav-drop-menu--contact .nav-drop-contact__label.is-open::before{background:#2fbf71;box-shadow:0 0 0 3px rgba(47,191,113,.18)}

/* ————————————————————————————————————————————————————
   Sticky Mobile-Leiste — Anrufen · Termin (nur mobil)
   Globales Shell-Element, erzeugt von dhs-mobile-bar.js
   ———————————————————————————————————————————————————— */
.mobile-bar{display:none}
@media(max-width:820px){
  .mobile-bar{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:90}
  .mobile-bar a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;padding:6px 12px;border-radius:var(--pill-r,999px);border:1px solid var(--green-deep);text-decoration:none;line-height:1.15;box-shadow:0 12px 32px -14px rgba(30,82,56,.45)}
  .mobile-bar__call{background:var(--green-deep);color:#fff}
  .mobile-bar__book{background:#fff;color:var(--green-deep)}
  .mobile-bar__t{font-size:14px;font-weight:500;letter-spacing:.01em}
  .mobile-bar__s{font-size:11px;opacity:.78;margin-top:2px}
  .mobile-bar__s:empty{display:none}
  body.has-mobile-bar{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
}

/* Dropdown-Label ist ein echter Link, der Pfeil daneben klappt auf */
.nav-drop{gap:4px !important}
.navlinks a.nav-drop-link{padding:0 !important}
.nav-drop-btn{padding:6px 4px !important;margin:0 0 0 -2px !important}
.nav-drop.open .nav-drop-link,.nav-drop:hover .nav-drop-link{color:var(--green-deep-2, #63501d) !important}

/* Logo-Marquee mit Bildlogos (Netzwerk-Banner) */
.logo-marquee__item--logo{padding:22px 36px;min-height:96px}
.logo-marquee__item--logo img{max-height:52px;max-width:200px;width:auto;height:auto}
@media(max-width:820px){.logo-marquee__item--logo{padding:16px 24px;min-height:76px}.logo-marquee__item--logo img{max-height:40px;max-width:150px}}

/* ————————————————————————————————————————————————————
   Mobil: alles zentriert (Regelwerk §3). Es gibt auf dem Handy
   keinen Grund für Linksbündigkeit; Ausnahmen nur Formular-Checkbox.
   ———————————————————————————————————————————————————— */
@media(max-width:820px){
  main, main section, main .wrap, main .wrap--wide,
  main h1, main h2, main h3, main h4, main p, main li, main figcaption, main blockquote,
  main .sec-head, main .rows, main .rows .k, main .rows .v, main .feature-row .text, main .split-card .text, main .reiter-panel .text,
  main .step-card, main .feature-card, main .service-card, main .testimonial-card, main .symptom-tile, main .credential-card, main .pill-card,
  main .accordion-list summary, main .acc-body, main .vita__body, main .vita__year, main .hero, main .hero-lead{text-align:center !important}
  main ul, main ol{padding-left:0;list-style-position:inside}
  main .vita{padding-left:0}
  main .step-card, main .feature-card, main .service-card, main .symptom-tile, main .testimonial-card .author, main .feature-row .text, main .split-card .text, main .reiter-panel .text{align-items:center !important}
  main .hero-cta-row, main .cta-row, main .pill-trio, main .reiter-tabs, main .testimonial-card .author, main .card-scroll-nav{justify-content:center !important}
  main .rows .k{padding-right:0 !important}
  main :has(> .status-pill), main :has(> .k){justify-content:center !important;text-align:center !important}
  main .k-form__check{text-align:left !important}
}

/* ————————————————————————————————————————————————————
   Team-Raster (Über uns, Herzcheck) — vorher seitenlokal
   ———————————————————————————————————————————————————— */
/* Team — 3 Spalten, quadratische Fotos, alle Karten exakt gleich groß */
.team-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(40px,5vw,72px) clamp(28px,3.5vw,56px);
}
@media(max-width:860px){.team-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.team-grid{grid-template-columns:repeat(2,1fr)}}
.team-person{display:flex;flex-direction:column;min-width:0}
.team-person__link{display:block;color:inherit;text-decoration:none;border-bottom:0}
.team-person__link:hover{border-bottom:0}
.team-person__link .symptom-tile__more{margin-top:10px}
.team-person__link:hover .symptom-tile__more{color:var(--green-deep-2)}
.team-person__link .team-person__photo img{transition:transform .6s cubic-bezier(.22,.7,.15,1)}
.team-person__link:hover .team-person__photo img{transform:scale(1.03)}
.team-person__link:hover .team-person__name{color:var(--green-deep-2)}
.team-person__photo{
  aspect-ratio:3/4;
  border-radius:12px;
  background:var(--paper-tint);
  overflow:hidden;
  margin:0;
}
.team-person__photo img{
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  display:block;
}
.team-person__name{
  margin:14px 0 0;
  font-size:15px;
  font-weight:500;
  line-height:1.2;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--green-deep);
}
/* Rollenzeile immer 2 Zeilen hoch → Fotos bleiben exakt im Raster */
.team-person__role{
  margin:5px 0 0;
  font-size:14px;
  line-height:1.3;
  min-height:2.6em;
  color:var(--green-deep);
}

/* Telefonnummer im Kontakt-Dropdown: beim Hover „wählt" sie sich, Ziffer für Ziffer minimal fett */
.nav-drop-contact__tel .d{display:inline-block;transition:text-shadow .22s ease;transition-delay:0s}
.nav-drop-contact__tel:hover .d{text-shadow:0 0 .5px currentColor,0 0 .5px currentColor;transition-delay:var(--i,0s)}
@media(prefers-reduced-motion:reduce){.nav-drop-contact__tel:hover .d{transition-delay:0s}}

/* ————————————————————————————————————————————————————
   Sprachwahl im Header — Globus neben „Termin buchen"
   (globales Shell-Element; Übersetzung öffnet erst nach Klick extern)
   ———————————————————————————————————————————————————— */
.site-nav-right{justify-self:end;display:flex;align-items:center;gap:8px}
.site-nav-right .site-nav-cta{justify-self:auto !important}
.nav-drop--lang .nav-lang-btn{width:40px;height:40px;border-radius:var(--pill-r,999px) !important;padding:0 !important;margin:0 !important;justify-content:center !important;border:1px solid rgba(156,125,46,.25) !important;color:var(--green-deep) !important;transition:background .2s,border-color .2s !important}
.nav-drop--lang .nav-lang-btn:hover,.nav-drop--lang.open .nav-lang-btn{background:rgba(156,125,46,.06) !important;border-color:var(--green-deep) !important}
.nav-drop--lang .nav-lang-btn svg{transform:none !important}
.nav-drop--lang .nav-drop-menu{left:auto !important;right:0 !important;transform:translateY(-6px) !important;min-width:210px !important}
.nav-drop--lang.open .nav-drop-menu{transform:translateY(0) !important}
.nav-drop-menu--lang a{display:flex !important;align-items:center;gap:14px;border-radius:12px !important}
.nav-drop-menu--lang a[aria-current="true"]{background:var(--green-deep) !important;color:#fff !important}
.nav-drop-menu--lang a[aria-current="true"] .nav-lang__code{color:rgba(255,255,255,.7)}
.nav-lang__code{font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--ink-soft);min-width:22px}
.nav-drop-menu--lang a[lang="ar"],.nav-drop-menu--lang a[lang="he"]{font-size:16px !important}
@media(max-width:820px){.site-nav-right{gap:6px}.nav-drop--lang .nav-lang-btn{width:36px;height:36px}.nav-drop--lang .nav-drop-menu{right:-8px !important}}
/* Mobil: Adresse und Kopf-CTA weichen (Termin/Anrufen liegen in der Mobile-Leiste), Globus bleibt */
@media(max-width:820px){
  .site-nav-top{display:flex !important;justify-content:space-between !important;align-items:center !important;gap:12px !important}
  .site-nav-top .brand-logo{justify-self:auto !important;margin:0 !important}
  .site-nav-right{margin-left:auto}
  .site-address{display:none !important}
  .site-nav-right .site-nav-cta{display:none !important}
  .nav-drop--lang .nav-drop-menu{right:0 !important;min-width:200px !important}
}
/* Sprachmenü: rechtsbündig unter dem Globus, in jedem Zustand (Klick, Hover, Fokus) */
.nav-drop.nav-drop--lang .nav-drop-menu{left:auto !important;right:0 !important;transform:translateY(-6px) !important}
.nav-drop.nav-drop--lang.open .nav-drop-menu,.nav-drop.nav-drop--lang:hover .nav-drop-menu,.nav-drop.nav-drop--lang:focus-within .nav-drop-menu{transform:translateY(0) !important}
.nav-drop.nav-drop--lang:hover .nav-lang-btn svg,.nav-drop.nav-drop--lang.open .nav-lang-btn svg,.nav-drop.nav-drop--lang:focus-within .nav-lang-btn svg{transform:none !important}
/* Arabisch/Hebräisch: Layout bleibt unverändert (kein dir=rtl am Dokument),
   nur Fließtext, Überschriften und Listen laufen rechts-nach-links. Logo-Schriftzug immer ltr. */
svg text{direction:ltr;unicode-bidi:isolate}
html[data-dir="rtl"] main :is(h1,h2,h3,h4,p,li,blockquote,figcaption,summary,label,dt,dd){direction:rtl;unicode-bidi:plaintext}
html[data-dir="rtl"] main :is(.hero-mask,.hero-slot){unicode-bidi:plaintext}
html[data-dir="rtl"] main :is(.feature-row__text,.split-card .text,.reiter-panel .text,.rows .v,.vita__body,.prose,.accordion-list,.acc-body,.k-form,.k-info,.k-tile,.k-address__left,.wissen-card .caption){text-align:start}
html[data-dir="rtl"] main :is(.rows .k,.vita__year,.num,.k-day__name){direction:ltr}
html[data-dir="rtl"] :is(.brand-logo,.site-address,.nav-drop-contact__tel,.nav-drop-contact__mail,.mobile-bar,.logo-marquee,.k-map,.footer-brand){direction:ltr;unicode-bidi:isolate}
/* Skip-Link: unsichtbar per Clip, ohne Versatz nach links (verursachte in RTL einen Seiten-Scrollbalken) */
.skip-link{position:absolute !important;left:0 !important;top:auto !important;width:1px !important;height:1px !important;overflow:hidden !important;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip-link:focus{position:static !important;width:auto !important;height:auto !important;clip:auto;clip-path:none}

/* ————————————————————————————————————————————————————
   Zeilen-Reveal (ersetzt Ink-Reveal): Zeilen laufen hinter einer Kante hervor.
   1,0 s, weiche Kurve, 50 ms Versatz pro Zeile. Erzeugt von dhs-reveal.js.
   ———————————————————————————————————————————————————— */
.zeile{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}
.zeile > span{display:block;transform:translateY(108%);opacity:.001;
  transition:transform 1s cubic-bezier(.16,.9,.22,1),opacity .8s cubic-bezier(.16,.9,.22,1);
  transition-delay:calc(var(--z,0) * .05s)}
.zeilen-satz.da .zeile > span{transform:none;opacity:1}
.ink-reveal .ink-word{color:inherit !important;transition:none !important}
@media(prefers-reduced-motion:reduce){.zeile > span{transform:none;opacity:1;transition:none}}
/* Logo-Band per Skript: CSS-Lauf aus, greifbar, kein Stopp bei Hover */
.logo-marquee{cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.logo-marquee.wird-gezogen{cursor:grabbing}
.logo-marquee.is-js .logo-marquee__track{animation:none !important;will-change:transform}
.logo-marquee img{-webkit-user-drag:none;pointer-events:none}
/* „Bekannt aus": echte Senderlogos, einfarbig gedämpft wie die Textfassung */
.media-row--logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(28px,5vw,72px)}
.media-row--logos .logo-mask{opacity:.65;flex:none}
.media-row--logos .logo-mask:hover{opacity:1}
@media(max-width:820px){.media-row--logos .logo-mask{transform:scale(.8);transform-origin:center}}

/* ————————————————————————————————————————————————————
   Video-Karte — großes Bild mit Play-Knopf, spielt eine eigene Datei (data-video) inline ab.
   Eingerückt wie die großen Bilder. Ohne data-video: nur Bild + Hinweis.
   ———————————————————————————————————————————————————— */
.video-card{position:relative;margin:56px 24px 0;border-radius:40px;overflow:hidden;aspect-ratio:16/9;max-height:640px;background:var(--green-deep-2)}
.video-card img,.video-card video{width:100%;height:100%;object-fit:cover;display:block}
.video-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,82,56,.05),rgba(30,82,56,.45));pointer-events:none;transition:opacity .3s}
.video-card.is-playing::after,.video-card.is-playing .video-card__play,.video-card.is-playing .video-card__cap{opacity:0;pointer-events:none}
.video-card__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;width:84px;height:84px;border-radius:50%;border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.92);color:var(--green-deep);display:grid;place-items:center;cursor:pointer;box-shadow:0 18px 44px -16px rgba(0,0,0,.45);transition:transform .25s,background .25s}
.video-card__play:hover{transform:translate(-50%,-50%) scale(1.06);background:#fff}
.video-card__play svg{margin-left:4px}
.video-card:not([data-video]) .video-card__play,.video-card[data-video=""] .video-card__play{display:none}
.video-card__cap{position:absolute;left:24px;bottom:22px;z-index:2;margin:0}
@media(max-width:820px){.video-card{margin:36px 12px 0;border-radius:24px;aspect-ratio:4/3}.video-card__play{width:64px;height:64px}}

/* ════════════════════════════════════════════════════════════════════
   Mobiler Kopf (≤ 820px), erzeugt von dhs-mobile-nav.js:
   Logo mittig (Originalgröße) · Burger rechts auf Herz-Höhe · darunter Adresse + großer Anruf-Button.
   Menü = eine Stilfamilie: Zeilen, unten Termin/Telefon/E-Mail als Buttons, dann Sprach-Pills.
   Über uns / Kontakt öffnen je eine Vollbild-Ebene (Zurück · Titel · Schließen).
   ════════════════════════════════════════════════════════════════════ */
.mnav-btn,.mnav-quick,.mnav{display:none}
@media(max-width:820px){
  .site-header .site-nav-top{display:grid !important;grid-template-columns:44px minmax(0,1fr) 44px !important;align-items:start !important;justify-items:center;gap:4px !important;padding:12px 0 6px !important}
  .site-header .site-address,.site-header .site-nav-right,.site-header .site-nav{display:none !important}
  /* Logo: 170px, darf aber auf sehr schmalen Bildschirmen (unter ca. 340px) mitschrumpfen, damit das Raster nie breiter als der Bildschirm wird */
  .site-header .site-nav-top .brand-logo{grid-column:2;justify-self:center !important;max-width:100%;min-width:0}
  .site-header .site-nav-top .brand-logo__svg{width:170px !important;max-width:100% !important;height:auto !important}
  /* Burger: Herz sitzt bei 40 % der Logohöhe (Logo 170px breit → 94px hoch → 38px), Knopf 44px → 16px oben; nach außen gerückt für Luft zum Logo */
  .mnav-btn{display:inline-flex;grid-column:3;grid-row:1;justify-self:end;align-self:start;margin:16px -16px 0 0;width:44px;height:44px;align-items:center;justify-content:center;padding:0;border:1px solid var(--line,rgba(156,125,46,.18));border-radius:50%;background:#fff;color:var(--green-deep);cursor:pointer;-webkit-tap-highlight-color:transparent}
  .mnav-btn__lines{display:flex;flex-direction:column;gap:5px;width:18px}
  .mnav-btn__lines i{display:block;height:2px;border-radius:2px;background:currentColor}
  .mnav-quick{display:flex;flex-direction:column;align-items:center;gap:12px;padding:4px 0 18px;text-align:center}
  /* Adresse = Kopier-Knopf. Feedback „Adresse kopiert" legt sich über den Text, nichts springt. */
  .mnav-quick__addr{position:relative;display:block;margin:0;padding:0 8px;font:inherit;font-size:14px;font-weight:500;line-height:1.5;color:var(--green-deep);background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
  @media(min-width:360px){.mnav-quick__l1{white-space:nowrap}}
  .mnav-quick__addr-text{display:block;transition:opacity .2s ease}
  .mnav-quick__addr-done{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;pointer-events:none}
  .mnav-quick__addr.is-done .mnav-quick__addr-text{opacity:0}
  .mnav-quick__addr.is-done .mnav-quick__addr-done{opacity:1}
  .mnav-quick__call{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;max-width:420px;min-height:64px;padding:10px 24px;border:0;border-radius:var(--pill-r,999px);background:var(--green-deep);color:#fff;text-decoration:none;box-shadow:0 12px 28px -16px rgba(30,82,56,.5)}
  .mnav-quick__call:hover,.mnav-quick__call:active{color:#fff;background:var(--green-deep-2,#63501d)}
  .mnav-quick__call svg{flex:0 0 auto}
  .mnav-quick__t{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2;text-align:left}
  .mnav-quick__t b{font-size:21px;font-weight:500;letter-spacing:.02em}
  .mnav-quick__t small{font-size:13px;opacity:.85}

  html.mnav-open{overflow:hidden}
  .mnav{display:block;position:fixed;inset:0;z-index:1200;overflow:auto;-webkit-overflow-scrolling:touch;padding:12px 24px calc(48px + env(safe-area-inset-bottom,0px));background:var(--paper,#fbfaf7);opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s}
  .mnav.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .25s ease,transform .25s ease}
  .mnav__inner{max-width:520px;margin:0 auto;text-align:center}
  .mnav__head{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;min-height:64px}
  .mnav__title{grid-column:2;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft,rgba(156,125,46,.72))}
  .mnav__close,.mnav__back{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid var(--line,rgba(156,125,46,.18));border-radius:50%;background:#fff;color:var(--green-deep);cursor:pointer;-webkit-tap-highlight-color:transparent}
  .mnav__back{grid-column:1;justify-self:start}
  /* Schließen sitzt exakt auf der Burger-Position (Kopf: 12px Abstand + 16px Rand oben, 32px Wrap-Rand − 16px = 16px rechts).
     Die drei Striche drehen sich beim Öffnen an Ort und Stelle zum Kreuz. */
  .mnav__close{position:fixed;top:28px;right:16px;z-index:3;width:44px;height:44px}
  .mnav__x{position:relative;width:18px;height:14px;display:block}
  .mnav__x i{position:absolute;left:0;right:0;height:2px;border-radius:2px;background:currentColor;transition:transform .32s cubic-bezier(.22,.7,.15,1),opacity .2s ease}
  .mnav__x i:nth-child(1){top:0}
  .mnav__x i:nth-child(2){top:6px}
  .mnav__x i:nth-child(3){top:12px}
  .mnav.is-open .mnav__x i:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .mnav.is-open .mnav__x i:nth-child(2){opacity:0;transform:scaleX(.2)}
  .mnav.is-open .mnav__x i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  /* Aktionen oben: dieselbe Button-Familie wie im Hero (voll / Kontur) */
  .mnav__actions{display:grid;gap:10px;margin:26px 0 0}
  .mnav__cta{display:flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:0 20px;font-size:18px;color:#fff;background:var(--green-deep);border:1px solid var(--green-deep);border-radius:var(--pill-r,999px);text-decoration:none;-webkit-tap-highlight-color:transparent}
  .mnav__cta:hover,.mnav__cta:active{color:#fff;background:var(--green-deep-2,#63501d);border-color:var(--green-deep-2,#63501d)}
  .mnav__cta--ghost{color:var(--green-deep);background:#fff;border-color:var(--line,rgba(156,125,46,.25))}
  .mnav__cta--mail{font-size:16px;letter-spacing:0}
  .mnav__cta--ghost:active{color:#fff;background:var(--green-deep);border-color:var(--green-deep)}
  @media(hover:hover){.mnav__cta--ghost:hover{color:#fff;background:var(--green-deep);border-color:var(--green-deep)}}
  .mnav__cta span{white-space:nowrap}
  /* Zeilen: ein Stil für Links, Gruppen-Zeilen und Sprach-Zeilen, in Ebene 1 und 2 */
  .mnav__list{display:flex;flex-direction:column}
  .mnav__link,.mnav__toggle{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:0;padding:17px 0;font:inherit;font-size:24px;line-height:1.2;color:var(--green-deep);background:none;border:0;border-bottom:1px solid var(--line,rgba(156,125,46,.14));text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .mnav__link[aria-current],.mnav__toggle[aria-current]{font-weight:500}
  .mnav__link:hover,.mnav__link:active,.mnav__toggle:hover,.mnav__toggle:active{color:var(--green-deep-2,#63501d);border-bottom-color:var(--line,rgba(156,125,46,.14))}
  .mnav__link--mail{font-size:19px}
  .mnav__toggle svg{flex:0 0 auto;opacity:.6}
  /* Sprachen unten im Menü, als Pills */
  .mnav__lang{margin-top:28px;padding-top:22px;border-top:1px solid var(--line,rgba(156,125,46,.14));text-align:center}
  .mnav__lang-label{display:block;margin-bottom:12px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft,rgba(156,125,46,.72))}
  .mnav__lang-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
  .mnav__lang-btn{font:inherit;font-size:15px;padding:9px 15px;color:var(--green-deep);background:#fff;border:1px solid var(--line,rgba(156,125,46,.18));border-radius:var(--pill-r,999px);cursor:pointer;-webkit-tap-highlight-color:transparent}
  .mnav__lang-btn[aria-current],.mnav__lang-btn:active{color:#fff;background:var(--green-deep);border-color:var(--green-deep)}
  @media(hover:hover){.mnav__lang-btn:hover{color:#fff;background:var(--green-deep);border-color:var(--green-deep)}}
  .mnav:focus,.mnav__sublevel:focus{outline:0}
  /* Ebenen: Vollbild, schieben von rechts rein */
  .mnav__sublevel{position:fixed;inset:0;z-index:1210;overflow:auto;-webkit-overflow-scrolling:touch;padding:12px 24px calc(48px + env(safe-area-inset-bottom,0px));background:var(--paper,#fbfaf7);transform:translateX(100%);visibility:hidden;transition:transform .34s cubic-bezier(.22,.7,.15,1),visibility 0s linear .34s}
  .mnav__sublevel.is-active{transform:none;visibility:visible;transition:transform .34s cubic-bezier(.22,.7,.15,1)}
  /* Fokus: kein Rahmen bei Tipp oder Klick, nur bei Tastatur */
  .mnav button:focus,.mnav a:focus,.mnav-btn:focus{outline:0}
  .mnav button:focus-visible,.mnav a:focus-visible,.mnav-btn:focus-visible{outline:2px solid var(--green-deep);outline-offset:3px}
  /* Sticky Mobile-Leiste: Tipp-Zustand bleibt lesbar (generisches a:hover färbt sonst die Schrift dunkelgrün) */
  .mobile-bar__call:hover,.mobile-bar__call:active{color:#fff;background:var(--green-deep-2,#63501d)}
  .mobile-bar__book:hover,.mobile-bar__book:active{color:var(--green-deep);background:#fff}
}

/* Hero mobil: Luft zum Kopf. Unter dem Anruf-Button endet der Kopf mit einer Linie,
   der Hero-Text darf nicht daran kleben (gilt für alle Heros außer dem Video-Hero, der eigene Werte hat). */
@media(max-width:820px){
  .top-block > .hero:not(.hero--video){padding-top:56px !important}
}

/* Team-Raster mobil = Karussell: eine Person je Ansicht, nächste lugt rechts rein, greifbar.
   Pfeile sitzen fest auf halber Fotohöhe an den Bildschirmkanten (springen nie mit).
   Desktop bleibt das Raster (4 Spalten). Rahmen + Pfeile erzeugt dhs-bausteine.js. */
.team-grid__nav{display:none}
@media(max-width:820px){
  .team-carousel{position:relative}
  .team-grid{display:flex !important;align-items:flex-start;gap:16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch;margin:0 -32px;padding:4px 32px 4px;scroll-padding:0 32px;box-sizing:border-box}
  .team-grid::-webkit-scrollbar{display:none}
  .team-grid.is-dragging{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none;user-select:none}
  .team-grid .team-person{flex:0 0 min(78vw,360px);scroll-snap-align:start}
  main .team-carousel .team-grid__nav,.team-carousel .team-grid__nav{display:flex;justify-content:space-between !important;position:absolute;left:-24px;right:-24px;top:calc(4px + min(78vw,360px) * 2 / 3);transform:translateY(-50%);margin:0;pointer-events:none}
  .team-grid__nav button{pointer-events:auto;width:44px;height:44px;box-shadow:0 8px 20px -10px rgba(30,82,56,.45)}
}

/* Netzwerk-Band: Partnerlogos als grüne Masken (wie die Senderlogos), Seitenverhältnis über --r */
.logo-marquee__item--logo .logo-mask{width:min(200px,calc(52px * var(--r,3)));height:52px;opacity:.8;background-color:var(--green-deep)}
@media(max-width:820px){.logo-marquee__item--logo .logo-mask{width:min(150px,calc(40px * var(--r,3)));height:40px}}
/* „Bekannt aus" mobil als Laufband ohne Kästen (Umbau durch dhs-bausteine.js) */
.media-row--logos.logo-marquee{display:block;padding:8px 0;margin:0 -32px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent)}
.media-row--logos.logo-marquee .logo-marquee__track{gap:44px;padding:0}
/* Video-Karte mobil randlos: volle Breite, keine Rundung, kein Rand */
@media(max-width:820px){
  .video-card{margin:64px -32px 0 !important;width:auto !important;max-width:none !important;border-radius:0 !important}
  .video-card img,.video-card video{border-radius:0 !important}
  .video-card__cap{left:24px !important;right:24px !important;text-align:center}
}
.media-row--logos.logo-marquee .logo-mask{transform:none}

/* Bilder sind nicht greifbar: kein Ziehen (Ghost-Bild), kein Markieren, kein Speichern-Popup beim langen Drücken.
   Wischen über ein Bild scrollt oder blättert damit immer die Seite bzw. das Karussell. */
img,picture,svg,video,.logo-mask,.team-person__photo{-webkit-user-drag:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.team-grid,.card-scroll,.logo-marquee{-webkit-touch-callout:none}

/* Mobiler Footer (≤ 820px), erzeugt von dhs-mobile-nav.js: Logo · Adresse · Status · zwei Buttons · kleines Link-Raster · Rechtszeile.
   Die fünf Desktop-Spalten sind mobil ausgeblendet (alles davon steht im Burger-Menü). */
.mfoot{display:none}
@media(max-width:820px){
  .site-footer.has-mfoot .footer-brand,.site-footer.has-mfoot .footer-menu,.site-footer.has-mfoot .footer-lang{display:none !important}
  .mfoot{display:flex;flex-direction:column;align-items:center;gap:16px;padding:12px 0 28px;text-align:center}
  .mfoot .brand-logo__mark{width:150px !important}
  .mfoot__addr{margin:0;font-size:14px;line-height:1.5;color:rgba(255,255,255,.75)}
  .mfoot__status{margin:-6px 0 0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7)}
  .mfoot__status:empty{display:none}
  .mfoot__actions{display:grid;gap:10px;width:100%;max-width:420px;margin-top:4px}
  .mfoot__cta{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 20px;font-size:17px;color:var(--green-deep);background:#fff;border:1px solid #fff;border-radius:var(--pill-r,999px);text-decoration:none;-webkit-tap-highlight-color:transparent}
  .mfoot__cta:hover,.mfoot__cta:active{color:var(--green-deep);background:#fff;border-color:#fff}
  .mfoot__cta--ghost,.mfoot__cta--ghost:hover,.mfoot__cta--ghost:active{color:#fff;background:transparent;border-color:rgba(255,255,255,.55)}
  .mfoot__links{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;width:100%;max-width:420px;margin-top:8px}
  .mfoot__links a{display:block;padding:11px 0;font-size:16px;color:#fff;text-decoration:none;border:0;border-bottom:1px solid rgba(255,255,255,.14)}
  .mfoot__links a:hover{color:#fff;border-bottom-color:rgba(255,255,255,.14)}
  .site-footer.has-mfoot .footer-bottom{display:flex !important;flex-direction:column !important;align-items:center !important;gap:12px !important;text-align:center !important;padding-top:20px !important}
  .site-footer.has-mfoot .footer-legal{display:flex !important;flex-wrap:wrap;justify-content:center !important;gap:8px 20px !important}
  .site-footer.has-mfoot .footer-copy{font-size:12px;opacity:.7}
}

/* ————————————————————————————————————————————————————
   Bubble-Reihe — runde Bilder mit Beschriftung darunter (z. B. die drei Säulen auf Leistungen).
   Desktop: große Kreise nebeneinander. Mobil: drei kleine Kreise in einer Reihe, Labels darunter.
   ———————————————————————————————————————————————————— */
.bubble-row{display:flex;justify-content:center;align-items:flex-start;gap:clamp(24px,6vw,96px);flex-wrap:nowrap;margin-top:8px}
.bubble{display:flex;flex-direction:column;align-items:center;gap:clamp(12px,2vw,24px);flex:0 1 300px;min-width:0;text-decoration:none !important;border:0 !important;color:var(--green-deep)}
.bubble__img{width:clamp(96px,26vw,300px);aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--paper-tint,#eef3ee);box-shadow:0 18px 40px -24px rgba(30,82,56,.35)}
.bubble__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.22,.7,.15,1)}
.bubble:hover .bubble__img img{transform:scale(1.04)}
.bubble__label{font-size:clamp(12px,1.5vw,19px);font-weight:500;letter-spacing:.12em;text-transform:uppercase;text-align:center;line-height:1.3;color:var(--green-deep)}
.bubble:hover .bubble__label{color:var(--green-deep-2,#63501d)}
@media(max-width:820px){.bubble-row{gap:14px}.bubble{flex:1 1 0}.bubble__label{letter-spacing:.08em}}

/* ————————————————————————————————————————————————————
   Schachbrett — Highlights als Mosaik, Bild und Text im Wechsel (wie das alte Leistungsspektrum).
   Desktop 3 Spalten; die Zellen tragen ihre Fläche inline (grid-area), das Raster seine Zeilen (grid-template-areas):
   je drei Highlights = zwei Zeilen (Bild A · Text A · Bild C / Text B · Bild B · Text C), ein viertes = dritte Zeile.
   Tablet zwei Spalten, mobil eine Spalte (Bild über Text), jeweils in DOM-Reihenfolge.
   ———————————————————————————————————————————————————— */
.chess{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;border-radius:28px;overflow:hidden;background:#f0f6f2}
.chess > *{min-width:0}
.chess__img{position:relative;min-height:clamp(260px,26vw,360px);overflow:hidden;background:var(--green-deep)}
.chess__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.chess__text{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:clamp(28px,4vw,56px);background:#f0f6f2;text-align:left}
.chess__text h3{margin:0;font-size:clamp(20px,1.9vw,26px);font-weight:500;letter-spacing:-.01em;line-height:1.2;color:var(--green-deep)}
.chess__text p{margin:0;font-size:15px;line-height:1.6;color:var(--ink)}
@media(max-width:1000px){.chess{grid-template-columns:1fr 1fr;grid-template-areas:none !important;grid-auto-rows:auto}.chess > *{grid-area:auto !important}}
@media(max-width:640px){.chess{grid-template-columns:1fr;border-radius:20px}.chess__img{min-height:0;aspect-ratio:4/3}.chess__text{text-align:center}}

/* ————————————————————————————————————————————————————
   Credo — minimale Leitsätze: Linien-Icon, Überschrift, Text, alles mittig (Philosophie, wie auf der alten Seite).
   Untereinander gestapelt, viel Luft, keine Kästen.
   ———————————————————————————————————————————————————— */
.credo{display:flex;flex-direction:column;align-items:center;gap:clamp(64px,9vw,120px);max-width:760px;margin:0 auto;text-align:center}
.credo__item{display:flex;flex-direction:column;align-items:center;gap:clamp(20px,3vw,36px)}
.credo__icon{width:clamp(72px,9vw,112px);height:clamp(72px,9vw,112px);color:var(--green-deep)}
.credo__icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.credo__item h3{margin:0;font-size:clamp(24px,3vw,40px);font-weight:400;letter-spacing:-.01em;line-height:1.15;color:var(--green-deep)}
.credo__item p{margin:0;font-size:clamp(16px,1.35vw,19px);line-height:1.65;color:var(--ink)}

/* ————————————————————————————————————————————————————
   Video-Hero (Baustein): section.hero.hero--video[.hero--video-dark] > .hero-video > video[poster][data-src-desktop][data-src-mobile]
   Voller Streifen unter der Navigationslinie, 16:7, Text mittig; Lader in dhs-bausteine.js. Genutzt auf Kontakt und Leistungen.
   ———————————————————————————————————————————————————— */
.top-block > .hero--video{position:relative;overflow:hidden;margin:0 0 0;border-radius:0;min-height:0 !important;aspect-ratio:16/7;display:grid !important;place-items:center;padding:48px 0 !important;flex:0 0 auto !important}
.hero-video{position:absolute;inset:0;z-index:0;background:#e9efe9}
.hero-video video,.hero-video img{width:100%;height:100%;object-fit:cover;display:block}  /* Bild statt Film erlaubt (Leistungsseiten) */
.hero-video::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.78) 0%,rgba(255,255,255,.62) 100%)}
.hero--video .wrap{position:relative;z-index:1}
.hero--video .hero-h1,.hero--video .hero-lead{color:var(--green-deep)}
/* Variante dunkel: weißer Text auf grünem Verlauf */
.hero--video-dark .hero-video::after{background:linear-gradient(180deg,rgba(30,82,56,.42) 0%,rgba(30,82,56,.78) 100%)}
.hero--video-dark .hero-h1,.hero--video-dark .hero-lead{color:#fff}
.hero--video-dark .hero-eyebrow{color:rgba(255,255,255,.75)}
.hero--video-dark .hero-lead{opacity:.92}
@media(max-width:820px){.top-block > .hero--video{margin:0;border-radius:0;aspect-ratio:4/5}}
@media(prefers-reduced-motion:reduce){.hero-video video{display:none}}
/* Platzhalterbild im Hero: bis das echte Bild da ist, Fläche in Blattgrün, Motiv klein und mittig */
.hero-video img[src$="placeholder/landscape.svg"]{object-fit:none;object-position:center;background:#e9efe9}
/* Video-Hero: Top-Block nicht auf Bildschirmhöhe strecken, Hero nach Seitenverhältnis */
.top-block:has(.hero--video){min-height:0 !important;height:auto !important}
/* Buttons im dunklen Video-Hero: weiße Pill + weiße Outline, Maße wie panel-cta */
.hero--video .hero-cta-row{margin-top:32px;justify-content:center;gap:12px}
.hero--video .hero-cta{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;border-radius:var(--pill-r,999px);font-size:13px;font-weight:500;letter-spacing:.02em;line-height:1.4;text-decoration:none;border-bottom:0;transition:background .2s,color .2s,border-color .2s}
.hero--video-dark .hero-cta{background:#fff;color:var(--green-deep);border:1px solid #fff}
@media(hover:hover){.hero--video-dark .hero-cta:hover{background:transparent;color:#fff}}
.hero--video-dark .hero-cta:active{color:var(--green-deep)}
.hero--video-dark .hero-cta.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
@media(hover:hover){.hero--video-dark .hero-cta.ghost:hover{background:#fff;color:var(--green-deep);border-color:#fff}}
.hero--video .hero-lead{margin-top:18px}
/* Video-Streifen sitzt direkt unter der Navigationslinie, kein Zwischenraum */
.top-block:has(.hero--video) .site-nav{margin-bottom:0 !important}
.top-block > .hero--video + *{margin-top:0}
/* Video-Hero mobil: Höhe aus dem Inhalt, nichts abschneiden, große Buttons */
@media(max-width:820px){
  .top-block > .hero--video{aspect-ratio:auto !important;min-height:0 !important;padding:64px 0 56px !important}
  .hero--video .hero-cta-row{flex-direction:column;align-items:center;gap:12px;margin-top:28px}
  .hero--video .hero-cta{min-height:52px;min-width:240px;justify-content:center;padding:12px 26px;font-size:16px}
  .hero--video .hero-lead{font-size:17px}
}

/* Keine Waisen: Überschriften und Leads brechen in gleich lange Zeilen (kein einzelnes Wort am Ende) */
h1,h2,h3,.hero-h1,.hero-lead,.lead-center,.sec-head h2,.credo__item p,.chess__text h3{text-wrap:balance}

/* Leistungs-Kacheln (Säulen-Seiten): feature-card mit Nummer, Name, einem Satz. Minimal, mehr als eine Liste. */
.feature-card .num{display:block;text-align:right;font-size:12px;font-weight:500;letter-spacing:.14em;color:var(--ink-soft,rgba(156,125,46,.72));margin-bottom:14px}  /* Nummer rechts (Ansage 29.09.2026) */
.feature-card--leistung{text-align:left}
.feature-card--leistung h3{font-size:19px}
.feature-card--leistung p{color:var(--ink-soft,rgba(156,125,46,.72))}
@media(max-width:820px){.feature-card--leistung{text-align:center}}

/* Besuchte Links sehen aus wie unbesuchte: die Grundregel heißt bewusst nur „a", nie „a:visited",
   sonst überstimmt :visited (0,1,1) jede Button-Klasse (0,1,0) und färbt Pill-Schrift nach dem ersten Klick dunkelgrün auf Grün. */

/* Schachbrett: „Mehr erfahren" als Kontur-Pill, in jeder Textzelle gleich */
.chess__text p:has(> .hero-cta){margin-top:8px}
.chess__text .hero-cta{font-size:13px}

/* Pills als Links (Leistungslisten): gleiche Optik, Hover gefüllt */
a.status-pill{text-decoration:none;border-bottom-width:1px}
a.status-pill:hover{background:var(--green-deep);color:#fff;border-color:var(--green-deep)}

/* Anker-Ziele (Leistungszeilen, Sektionen) landen unter dem klebenden Kopf, nicht darunter versteckt */
[id]{scroll-margin-top:120px}

/* ===== Galerie (Baustein, dhs-galerie.js): .impressionen-Raster + Lightbox ===== */
/* Raster: Querformate liegend (--l), Hochformate über zwei Reihen (--p), Videos (--video) laufen stumm */
.impressionen{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-flow:dense;gap:16px;--row:200px;grid-auto-rows:var(--row)}
.impressionen--three{grid-template-columns:repeat(3,1fr)}
.impressionen--two{grid-template-columns:repeat(2,1fr)}
.impressionen--one{grid-template-columns:1fr}
.impressionen--mittig{max-width:66.6%;margin-left:auto;margin-right:auto}
@media(max-width:900px){.impressionen--mittig{max-width:none}}
.impressionen--one .impressionen__tile{aspect-ratio:16/7;height:auto}
@media(max-width:640px){.impressionen--two{grid-template-columns:1fr}}
.impressionen__tile{margin:0;border-radius:24px;overflow:hidden;background:var(--paper-tint);cursor:zoom-in;height:100%;position:relative}
.impressionen__cap{position:absolute;left:0;right:0;bottom:0;margin:0;padding:44px 16px 14px;color:#fff;font-size:13px;line-height:1.35;letter-spacing:.01em;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.5));pointer-events:none}
.lightbox__cap{position:fixed;left:0;right:0;bottom:clamp(14px,3vh,28px);margin:0;text-align:center;color:#fff;font-size:15px;letter-spacing:.01em;padding:0 24px;pointer-events:none}
.impressionen__tile--p{grid-row:span 2}
.impressionen__tile img,.impressionen__tile video{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block;transition:transform .8s cubic-bezier(.22,.7,.15,1)}
.impressionen__tile:hover img,.impressionen__tile:hover video{transform:scale(1.03)}
.impressionen__tile--video video{object-fit:cover;object-position:center 45%}
@media(max-width:900px){.impressionen{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.impressionen{grid-template-columns:1fr;grid-auto-rows:auto}.impressionen__tile--p{grid-row:auto;aspect-ratio:3/4;height:auto}.impressionen__tile--l{aspect-ratio:4/3;height:auto}}
.lightbox{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100vw;height:100vh;margin:0;overflow:hidden}
.lightbox::backdrop{background:rgba(18,47,32,.88)}
.lightbox__body{position:fixed;inset:0;display:grid;place-items:center;padding:clamp(16px,4vw,48px)}
.lightbox__body img,.lightbox__body video{display:block;max-width:min(1280px,92vw);max-height:86vh;width:auto;height:auto;object-fit:contain;border-radius:24px;box-shadow:0 30px 80px -20px rgba(0,0,0,.6);background:#000}
.lightbox__close{position:fixed;top:20px;right:24px;z-index:2;width:48px;height:48px;border-radius:var(--pill-r,999px);border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.lightbox__close:hover{background:rgba(255,255,255,.22)}
.lightbox__nav{position:fixed;top:50%;transform:translateY(-50%);z-index:2;width:52px;height:52px;border-radius:var(--pill-r,999px);border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;font-size:34px;line-height:1;padding:0 0 4px;cursor:pointer;transition:background .2s}
.lightbox__nav:hover{background:rgba(255,255,255,.22)}
.lightbox__nav--prev{left:24px}.lightbox__nav--next{right:24px}
.lightbox__count{position:fixed;top:32px;left:0;right:0;margin:0;text-align:center;color:rgba(255,255,255,.75);font-size:13px;letter-spacing:.08em;pointer-events:none}
@media(max-width:640px){.lightbox__nav{width:44px;height:44px;font-size:28px;top:auto;bottom:56px;transform:none}.lightbox__nav--prev{left:16px}.lightbox__nav--next{right:16px}.lightbox__cap{bottom:112px}}
.lightbox{z-index:1300}

/* ===== Kopf über dem Film (Option je Seite: <body class="header-over">, greift nur am Desktop > 820px) =====
   Der Kopf liegt transparent in Weiß über dem Film, der Film füllt den Bildschirm. Der Kopf klebt nicht,
   er scrollt mit dem Film weg (dhs-bausteine.js misst nur --header-h für die Textmitte). */
@media(min-width:821px){
  body.header-over .site-header{position:absolute !important;top:0;left:0;right:0;z-index:60;background:transparent !important;border:none !important}
  body.header-over{position:relative}
  body.header-over .site-header .site-address,
  body.header-over .site-header .site-address a,
  body.header-over .site-header .navlinks a,
  body.header-over .site-header .brand-logo,
  body.header-over .site-header .nav-drop-btn,
  body.header-over .site-header .nav-lang-btn,
  body.header-over .site-header .nav-lang-btn .nav-lang__code{color:#fff !important}
  body.header-over .site-header .site-address a:hover,
  body.header-over .site-header .navlinks a:hover{color:rgba(255,255,255,.75) !important}
  body.header-over .site-header .site-nav-cta,
  body.header-over .site-header .nav-lang-btn{color:#fff !important;border-color:rgba(255,255,255,.7) !important;background:transparent !important}
  body.header-over .site-header .site-nav-cta:hover,
  body.header-over .site-header .nav-lang-btn:hover{background:#fff !important;color:var(--green-deep) !important;border-color:#fff !important}
  body.header-over .site-header .site-nav{border-color:rgba(255,255,255,.28) !important}
  /* Herz bleibt gezeichnet, nicht gefüllt (ohne weißen Grund gäbe es sonst einen weißen Klecks) */
  body.header-over .site-header .brand-logo__heart,
  body.header-over .site-header .brand-logo__heart path{fill:none !important}
  /* Aufklappmenüs bleiben weiß mit dunkler Schrift, sie erben das Weiß des Kopfes nicht */
  body.header-over .site-header .nav-drop-menu a{color:var(--ink) !important}
  body.header-over .site-header .nav-drop-menu a:hover{color:var(--green-deep-2, #63501d) !important}
  body.header-over .site-header .nav-drop-menu a.nav-drop-contact__tel{color:var(--green-deep) !important}
  body.header-over .site-header .nav-drop-menu .nav-lang__code{color:var(--ink-soft) !important}
  body.header-over .site-header .nav-drop-menu--lang a[aria-current="true"]{color:#fff !important;background:var(--green-deep) !important}
  body.header-over .site-header .nav-drop-menu--lang a[aria-current="true"] .nav-lang__code{color:rgba(255,255,255,.7) !important}
  body.header-over .top-block > .hero--video{aspect-ratio:auto !important;min-height:100vh !important;min-height:100svh !important;padding-top:calc(var(--header-h,220px) + 24px) !important;padding-bottom:64px !important}
  body.header-over .hero--video-dark .hero-video::after{background:linear-gradient(180deg,rgba(30,82,56,.66) 0%,rgba(30,82,56,.5) 45%,rgba(30,82,56,.78) 100%)}
}

/* ===== Zeilenliste (Baustein, aus den Säulen-Seiten in die Shell geholt 28.09.2026): ul.leist-list > li > .name + .desc, zwei Spalten, mobil eine ===== */
.leist-list{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border-top:1px solid var(--line);
}
.leist-list li{
  padding:24px 0;border-bottom:1px solid var(--line);
  display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:baseline;
}
.leist-list li:nth-child(odd){padding-right:32px;border-right:1px solid var(--line)}
.leist-list li:nth-child(even){padding-left:32px}
.leist-list .name{
  font-family:var(--sans);font-weight:500;font-size:17px;letter-spacing:-.005em;
  color:var(--ink);
}
.leist-list .desc{
  font-size:15px;color:var(--ink-soft);line-height:1.55;
}
@media(max-width:900px){
  .leist-list{grid-template-columns:1fr}
  .leist-list li{
    grid-template-columns:1fr;gap:6px;
    padding:20px 0 !important;border-right:none !important;
  }
}
/* ===== Fragen und Antworten (Baustein): div.faq > details > summary + p. Klar lesbar, ohne Skript, für FAQ-Schema ===== */
.faq{border-top:1px solid var(--line);max-width:860px;margin:0 auto}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 44px 22px 0;position:relative;font-family:var(--sans);font-weight:500;font-size:18px;letter-spacing:-.005em;color:var(--ink);line-height:1.35}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:1px solid var(--line);border-radius:999px;display:grid;place-items:center;font-size:18px;font-weight:400;color:var(--green-deep);transition:transform .25s ease}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 22px;font-size:16px;line-height:1.6;color:var(--ink-soft);max-width:68ch}
@media(max-width:640px){.faq summary{font-size:17px;padding:18px 40px 18px 0}}
/* Textkacheln ohne Link (Leistungsseiten) heben sich beim Hover nicht an, sonst wirken die Höhen ungleich */
/* Kacheln verhalten sich wie die Ablauf-Karten (.feature-card): Schatten in Ruhe, beim Hover leicht anheben */
.symptom-tile{box-shadow:0 1px 0 rgba(156,125,46,.03), 0 12px 40px -18px rgba(156,125,46,.10)}
.symptom-tile:hover{transform:translateY(-4px);border-color:var(--line);box-shadow:0 1px 0 rgba(156,125,46,.04), 0 24px 60px -20px rgba(156,125,46,.24)}
/* Zugeklappte Fragen zeigen nur die Frage, unabhängig vom Browser */
.faq details:not([open]) > :not(summary){display:none !important}
.faq summary{background:transparent}
/* Vier Kacheln immer gleich hoch, auch über beide Reihen */
.symptom-tiles{grid-auto-rows:1fr}
/* Zeilenliste: bei ungerader Zahl geht die letzte Zeile über beide Spalten, nie ein leeres Feld */
.leist-list li:last-child:nth-child(odd){grid-column:1/-1;border-right:none;padding-right:0}
@media(max-width:900px){.leist-list li:last-child:nth-child(odd){grid-column:auto}}
/* Sektionskopf mit ganzem Satz als Überschrift (Warum-Abschnitt der Leistungsseiten): eine Stufe kleiner, ruhig umbrochen */
.sec-head--satz h2{font-size:clamp(26px,3.2vw,42px);line-height:1.2;max-width:30ch;margin-left:auto;margin-right:auto}
/* Leere Galerie-Kachel (Bild folgt): Platzhalter klein und mittig, kein Zoom-Cursor, keine Lightbox-Optik */
.impressionen__tile--leer{cursor:default;background:#e9efe9}
.impressionen__tile--leer img{object-fit:none;object-position:center}
.impressionen__tile--leer:hover img{transform:none}
/* Galerie unten auf den Leistungsseiten: keine Trennlinie, gleicher Abstand oben und unten, Bilder mittig zwischen den Abschnitten */
section.einblick{border-top:none;padding:0 0 clamp(64px,8vw,120px)}
/* Reiter mit Zeilenliste statt Text+Bild (Blutwerte): kein Kasten, kein Raster */
.reiter-panel--liste{grid-template-columns:none;background:transparent;border:none;border-radius:0;box-shadow:none;overflow:visible;padding:0}
.reiter-panel--liste.active{display:block}
/* Zentrierter Leittext unter einer Sektionsüberschrift (Baustein, aus Herzcheck/International in die Shell geholt 29.09.2026) */
.lead-center{font-size:18px;line-height:1.55;max-width:62ch;margin:0 auto;text-align:center;color:var(--ink-soft)}
.reiter-panel--liste p.lead-center{max-width:62ch;margin:0 auto 40px;text-align:center}
/* Footer-Sprachwahl wie das Kopf-Menü: Kürzel + Name, gewählte Sprache grün (Baustein, dhs-i18n.js baut sie auf jeder Seite) */
.footer-lang__menu{min-width:210px;padding:8px;border-radius:14px;border:1px solid var(--line, rgba(156,125,46,.18))}
.footer-lang__menu a{display:flex;align-items:center;gap:14px;padding:11px 16px;font-size:15px;font-weight:400;border-radius:12px !important;border-top:none !important;margin:0 !important}
.footer-lang__menu a .nav-lang__code{font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--ink-soft);min-width:22px}
.footer-lang__menu a[aria-current="true"]{background:var(--green-deep);color:#fff}
.footer-lang__menu a[aria-current="true"] .nav-lang__code{color:rgba(255,255,255,.7)}
.footer-lang__menu a[lang="ar"],.footer-lang__menu a[lang="he"]{font-size:16px}

/* 3D-Modell (Leistungsseiten mit `modell` im Zusatz): model-viewer selbst gehostet in lib/, Karte wie feature-card, kein Zoom (Seite bleibt scrollbar) */
.modell{max-width:920px;margin:0 auto}
.modell model-viewer{display:block;width:100%;height:clamp(340px,52vw,600px);border:0;border-radius:24px;background:#0f1a15;--poster-color:transparent;--progress-bar-color:rgba(255,255,255,.6);--progress-bar-height:2px;cursor:grab}
.modell model-viewer:active{cursor:grabbing}
.modell__hint{margin:14px 0 0;text-align:center;font-size:14px;color:var(--ink-soft)}
.modell__credit{margin:28px auto 0;max-width:760px;text-align:center;font-size:13px;line-height:1.5;color:var(--ink-soft)}
.modell__credit a{text-decoration:underline}
