
/* ===== Base ============================================================== */
* { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --bg:#fff; --bg-soft:#f1f6fb; --surface:#fff; --ink:#152232; --ink-soft:#5a6b7e;
  --line:#e3ebf3; --primary:#1f6fd0; --primary-deep:#14315e; --secondary:#2f8f4e;
  --accent:#e0a52e; --hero-bg:#14315e; --hero-ink:#fff; --radius:16px; --radius-sm:10px;
  --font-head:'Mulish',sans-serif; --font-body:'Mulish',sans-serif; --font-display:'Fraunces',Georgia,serif;
  --head-weight:800; --head-spacing:-0.02em; --head-style:normal;
  --pad: 104px; --mx: 7vw;
}
[data-density="compact"] { --pad: 72px; }
[data-density="comfy"]   { --pad: 140px; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body); color: var(--ink); background: var(--bg);
  font-size: 17px; line-height: 1.6; -webkit-font-smoothing: antialiased;
  transition: background .5s ease, color .5s ease;
}
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
ul { list-style: none; }
.app { overflow-x: clip; }

/* ===== Type ============================================================== */
.h1, .h2, .h3, .hero__title {
  font-family: var(--font-head); font-weight: var(--head-weight);
  letter-spacing: var(--head-spacing); font-style: var(--head-style);
  line-height: 1.08; color: var(--ink); text-wrap: balance;
}
.h1 { font-size: clamp(34px, 5vw, 56px); }
.h2 { font-size: clamp(28px, 3.6vw, 42px); }
.h2--light, .h1--light { color: var(--hero-ink); }
.lede { font-size: clamp(17px, 1.5vw, 20px); color: var(--ink-soft); line-height: 1.62; max-width: 60ch; text-wrap: pretty; }
.lede--light { color: color-mix(in srgb, var(--hero-ink) 82%, transparent); }
.eyebrow {
  display: inline-block; font-family: var(--font-body); font-weight: 700;
  font-size: 13px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--primary); white-space: nowrap;
}
.eyebrow--light { color: var(--accent); }
[data-theme="region"] .eyebrow { padding-bottom: 8px; border-bottom: 2px solid var(--accent); }

/* ===== Buttons ========================================================== */
.btn {
  display: inline-flex; align-items: center; gap: 9px; font-weight: 700;
  font-size: 15.5px; padding: 14px 22px; border-radius: var(--radius-sm);
  transition: transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  white-space: nowrap;
}
.btn svg { transition: transform .2s ease; }
.btn:hover svg { transform: translateX(3px); }
.btn--accent { background: var(--accent); color: #1c160a; box-shadow: 0 6px 20px -8px color-mix(in srgb, var(--accent) 70%, transparent); }
.btn--accent:hover { transform: translateY(-2px); }
.btn--ghost { border: 1.5px solid color-mix(in srgb, var(--hero-ink) 45%, transparent); color: var(--hero-ink); }
.btn--ghost:hover { background: color-mix(in srgb, var(--hero-ink) 12%, transparent); }

/* ===== Nav ============================================================== */
.nav {
  position: sticky; top: 0; z-index: 50; display: flex; align-items: center;
  justify-content: space-between; gap: 24px; padding: 16px var(--mx);
  background: color-mix(in srgb, var(--bg) 86%, transparent);
  backdrop-filter: blur(14px); border-bottom: 1px solid var(--line);
}
.nav__brand { display: flex; align-items: center; gap: 12px; }
.nav__logoimg { height: 42px; width: auto; display: block; }
@media (max-width: 560px) { .nav__logoimg { height: 34px; } }
.nav__logo { position: relative; width: 38px; height: 38px; flex: none; }
.nav__logo-leaf { position: absolute; inset: 0; border-radius: 11px 11px 11px 3px;
  background: linear-gradient(150deg, var(--secondary), color-mix(in srgb, var(--secondary) 55%, #0a5)); }
.nav__logo-fig { position: absolute; right: 6px; top: 7px; width: 13px; height: 13px; border-radius: 50%;
  background: var(--surface); box-shadow: 0 8px 0 -2px var(--surface); }
.nav__brandtxt { display: flex; flex-direction: column; line-height: 1.05; text-align: left; }
.nav__brandtxt i { font-style: italic; font-weight: 700; font-size: 14px; color: var(--primary); font-family: var(--font-body); }
.nav__brandtxt b { font-family: var(--font-head); font-weight: var(--head-weight); font-size: 19px; color: var(--primary-deep); letter-spacing: -0.01em; }
.nav__links { display: flex; gap: 4px; }
.nav__link { padding: 9px 15px; border-radius: 999px; font-weight: 600; font-size: 15.5px; color: var(--ink-soft); transition: color .15s, background .15s; }
.nav__link:hover { color: var(--ink); background: var(--bg-soft); }
.nav__link.is-active { color: var(--primary-deep); background: var(--bg-soft); }
.nav__lang { display: flex; align-items: center; gap: 6px; font-weight: 700; font-size: 14px; color: var(--line); }
.nav__lang button { color: var(--ink-soft); transition: color .15s; }
.nav__lang button.is-on { color: var(--primary); }

/* ===== Hero ============================================================= */
.hero { background: var(--hero-bg); color: var(--hero-ink); padding: clamp(48px,6vw,84px) var(--mx) 0; position: relative; overflow: hidden; }
.hero::after { content:""; position:absolute; right:-8%; top:-30%; width:46%; height:160%;
  background: radial-gradient(circle at center, color-mix(in srgb, var(--accent) 22%, transparent), transparent 62%); pointer-events:none; }
.hero__inner { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(32px,5vw,72px); align-items: center; max-width: 1240px; margin: 0 auto; }
.hero__text { animation: fade .6s ease; }
.hero__kicker { display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:13px; letter-spacing:.14em; text-transform:uppercase; color: color-mix(in srgb, var(--hero-ink) 85%, transparent); margin-bottom: 20px; }
.hero__kicker::before { content:""; width:9px; height:9px; border-radius:50%; background: var(--dot); }
.hero__title { font-size: clamp(36px, 4.6vw, 60px); color: var(--hero-ink); margin-bottom: 18px; }
.hero__body { font-size: clamp(17px,1.5vw,20px); line-height:1.6; color: color-mix(in srgb, var(--hero-ink) 84%, transparent); max-width: 46ch; margin-bottom: 30px; }
.hero__visual { position: relative; animation: rise .6s ease; }
.hero__visual .ph { border-radius: var(--radius); box-shadow: 0 30px 60px -30px rgba(0,0,0,.5); }
.hero__chip { position:absolute; left:-14px; bottom:24px; color:#fff; font-weight:700; font-size:13px; letter-spacing:.04em; padding:9px 16px; border-radius:999px; box-shadow: 0 12px 24px -10px rgba(0,0,0,.5); }
[data-theme="region"] .hero__chip { border-radius: 3px; }
.hero__nav { display:flex; align-items:center; justify-content:flex-start; gap:20px; max-width:1240px; margin: 28px auto 0; padding-bottom: 26px; }
.hero__dots { display:flex; gap:9px; }
.hero__dot { width:8px; height:8px; border-radius:50%; background: color-mix(in srgb, var(--hero-ink) 28%, transparent); transition: background .25s, transform .25s; }
.hero__dot.is-on { background: var(--accent); transform: scale(1.3); }
.hero__arrows { display:flex; gap:10px; }
.hero__arrows button { width:42px; height:42px; border-radius:50%; border:1.5px solid color-mix(in srgb,var(--hero-ink) 30%,transparent); color:var(--hero-ink); font-size:22px; line-height:1; display:grid; place-items:center; transition: background .2s, border-color .2s; }
.hero__arrows button:hover { background: color-mix(in srgb,var(--hero-ink) 14%,transparent); border-color: var(--hero-ink); }
[data-theme="region"] .hero__arrows button { border-radius: 4px; }

/* ===== Placeholder / marks ============================================= */
.ph { width:100%; border-radius: var(--radius); display:grid; place-items:center; position:relative; overflow:hidden; border:1px solid color-mix(in srgb, var(--ink) 8%, transparent); }
.ph__tag { font-family: ui-monospace,'SF Mono',Menlo,monospace; font-size:12px; letter-spacing:.04em; color: var(--ink-soft); background: color-mix(in srgb, var(--bg) 70%, transparent); padding: 5px 11px; border-radius: 6px; }
.mark { display:grid; place-items:center; border-radius: 12px; color:#fff; font-family: var(--font-head); font-weight:800; flex:none; box-shadow: 0 6px 16px -8px color-mix(in srgb, var(--ink) 50%, transparent); }
[data-theme="region"] .mark { border-radius: 4px; }
.wordmark { display:flex; align-items:center; gap:12px; }
.wordmark__txt { display:flex; flex-direction:column; line-height:1.2; }
.wordmark__txt strong { font-weight:800; font-size:16px; }
.wordmark__txt span { font-size:13px; color: var(--ink-soft); }

/* ===== Pillars / member cards ========================================== */
.pillars { padding: var(--pad) var(--mx); max-width:1300px; margin:0 auto; }
.pillars__head { max-width: 720px; margin-bottom: 48px; }
.pillars__head--center { margin-left: auto; margin-right: auto; text-align: center; }
.pillars__head--center .lede { margin-left: auto; margin-right: auto; }
.pillars__head .eyebrow { margin-bottom: 14px; }
.pillars__head .h2 { margin-bottom: 16px; }

/* Verbund connector tree */
/* Tempel-Grafik — ersetzt das Baum-Diagramm */
.temple { display:block; position:relative; max-width:1180px; margin:0 auto; border-radius:var(--radius); }
.temple__img { display:block; width:100%; height:auto; }
.temple:hover { opacity:.94; }
.temple__hint{ display:none; }
.vtree { display:none; }
/* Handy: Tempel klein + antippen zum Vergrößern, Karten bleiben darunter */
@media (max-width:900px){
  .temple{ overflow:hidden; border:1px solid var(--line); margin-bottom:26px; }
  .temple__hint{ display:inline-flex; align-items:center; gap:5px; position:absolute; right:8px; bottom:8px;
    background:rgba(20,49,94,.9); color:#fff; font-size:11.5px; font-weight:700; padding:6px 10px; border-radius:20px; }
}
/* Lightbox */
.tlb{ position:fixed; inset:0; background:rgba(8,20,38,.94); display:none; z-index:9999; }
.tlb.is-on{ display:block; }
.tlb__scroll{ width:100%; height:100%; overflow:auto; -webkit-overflow-scrolling:touch; display:flex; align-items:center; }
.tlb__scroll img{ min-width:820px; width:820px; height:auto; margin:auto; padding:64px 12px; }
.tlb__close{ position:fixed; top:12px; right:12px; z-index:10000; background:#fff; color:var(--primary-deep);
  border:0; font-size:15px; font-weight:800; width:42px; height:42px; border-radius:50%; cursor:pointer; }
.tlb__tip{ position:fixed; bottom:14px; left:50%; transform:translateX(-50%); z-index:10000;
  background:rgba(255,255,255,.92); color:var(--primary-deep); font-size:12px; font-weight:700; padding:8px 14px; border-radius:20px; white-space:nowrap; }

.vtree { --conn: color-mix(in srgb, var(--primary) 32%, var(--line)); }
.vtree__hub { display: flex; justify-content: center; }
.vtree__hubcard { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 38px; box-shadow: 0 14px 36px -22px color-mix(in srgb, var(--primary-deep) 60%, transparent); }
.vtree__logo { height: 54px; width: auto; display: block; }
.vtree__trunk { width: 2px; height: 36px; background: var(--conn); margin: 0 auto; }
.vtree__rail { display: grid; grid-template-columns: repeat(var(--n,4), 1fr); gap: 22px; height: 26px; }
.vtree__rail > span { position: relative; }
.vtree__rail > span::after { content: ""; position: absolute; top: 0; left: -11px; right: -11px; height: 2px; background: var(--conn); }
.vtree__rail > span:first-child::after { left: 50%; }
.vtree__rail > span:last-child::after { right: 50%; }
.vtree__rail > span::before { content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 2px; height: 26px; background: var(--conn); }
.vtree__rail > span.is-feat::before { background: var(--accent); }
.mgrid { display:grid; grid-template-columns: repeat(var(--n,4),1fr); gap: 16px; }
.mcard {
  position:relative; text-align:left; background: var(--surface); border:1px solid var(--line);
  border-radius: var(--radius); padding: 26px 24px 22px; display:flex; flex-direction:column; gap:16px;
  transition: transform .2s ease, box-shadow .25s ease, border-color .2s ease;
  box-shadow: 0 1px 2px rgba(20,40,80,.03);
}
.mcard:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -26px color-mix(in srgb, var(--mc) 55%, transparent); border-color: color-mix(in srgb, var(--mc) 40%, var(--line)); }
.mcard--feat { background: var(--mc-tint); border-color: color-mix(in srgb, var(--mc) 30%, var(--line)); }
.mcard--here { outline: 2.5px solid var(--accent); outline-offset: 2px; }
.mcard__here { position:absolute; top:-13px; left:24px; background: var(--primary-deep); color:#fff; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:6px 12px; border-radius:999px; }
.mcard__logo { display:flex; flex-direction:column; align-items:flex-start; gap:11px; }
.mcard__name { display:flex; flex-direction:column; gap:3px; line-height:1.18; width:100%; }
.mcard__name strong { font-family: var(--font-head); font-weight:700; font-size:14.5px; color: var(--ink); }
.mcard__name span { font-size:12px; color: var(--ink-soft); letter-spacing:.02em; }
.mcard__blurb { font-size:15px; color: var(--ink-soft); line-height:1.5; flex:1; }
.mcard__more { display:inline-flex; align-items:center; gap:7px; font-weight:700; font-size:14px; color: var(--mc); margin-top:4px; }
.mcard:hover .mcard__more svg { transform: translateX(3px); }

/* ===== Band (philosophy teaser) ======================================== */
.band { background: var(--primary-deep); color: var(--hero-ink); padding: clamp(40px,4.5vw,64px) var(--mx); }
.band__inner { max-width:1240px; margin:0 auto; display:grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,5vw,80px); align-items:start; }
.band__text .eyebrow { margin-bottom:14px; }
.band__text .h2 { margin-bottom:16px; }
.band__text .btn { margin-top:26px; }
.band__words { display:flex; flex-direction:column; gap:10px; }
.band__word { font-family: var(--font-head); font-weight: var(--head-weight); font-style: var(--head-style); font-size: clamp(34px,5vw,58px); line-height:1; color: color-mix(in srgb, var(--hero-ink) 16%, transparent); transition: color .3s, transform .3s; padding-left: 0; }
.band__word:nth-child(1) { color: color-mix(in srgb, var(--hero-ink) 92%, transparent); }
.band__word:nth-child(2) { color: var(--accent); }

/* ===== CTA strip ======================================================= */
.ctastrip { background: var(--hero-bg); color: var(--hero-ink); text-align:center; padding: clamp(30px,3.5vw,50px) var(--mx); display:flex; flex-direction:column; align-items:center; gap:22px; }
.ctastrip__btns { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; }

/* ===== Generic page ==================================================== */
.page { padding-top: clamp(48px,6vw,80px); }
.pagehead { max-width: 760px; margin: 0 auto clamp(40px,5vw,60px); padding: 0 var(--mx); text-align:center; }
.pagehead .eyebrow { margin-bottom:16px; }
.pagehead .h1 { margin-bottom:18px; }
.pagehead .lede { margin: 0 auto; }
.pagehead .lede + .lede { margin-top: 1.6em; }

/* ===== Members (Verbund page) ========================================== */
.members { max-width:1180px; margin:0 auto; padding: 0 var(--mx); display:flex; flex-direction:column; gap: 30px; }
.member { display:grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(24px,3vw,46px); align-items:center; background: var(--surface); border:1px solid var(--line); border-radius: var(--radius); padding: clamp(20px,2.4vw,32px); }
.member--teaser{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; grid-template-columns:none; padding:clamp(48px,6vw,84px) 24px; background:var(--bg-soft); }
.member__teaser{ max-width:540px; }
.member__teaser-ic{ display:grid; place-items:center; width:70px; height:70px; margin:0 auto 20px; border-radius:50%; background:var(--surface); border:1px solid var(--line); color:var(--accent); }
.member__teaser-eyebrow{ display:block; font-weight:800; font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:#c99323; margin-bottom:12px; }
.member__teaser-h{ font-family:var(--font-head); font-weight:800; font-size:clamp(28px,3.4vw,40px); color:var(--primary-deep); letter-spacing:-.01em; margin:0 0 12px; }
.member__teaser-sub{ font-size:clamp(15px,1.4vw,17px); line-height:1.6; color:var(--ink-soft); margin:0; }
.member:nth-child(even) { grid-template-columns: 1.15fr 0.85fr; }
.member:nth-child(even) .member__media { order: 2; }
.member__media { position:relative; }
.member__media .mark { position:absolute; left:18px; bottom:-18px; }
.member__kind { display:inline-block; font-weight:700; font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color: var(--mc); margin-bottom:12px; }
.member__name { font-family: var(--font-head); font-weight: var(--head-weight); font-size: clamp(24px,2.8vw,34px); letter-spacing: var(--head-spacing); margin-bottom:8px; }
.member__tag { font-size:18px; font-weight:600; color: var(--ink); margin-bottom:12px; }
.member__blurb { color: var(--ink-soft); margin-bottom:24px; max-width:56ch; }
.member__cols { display:grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.member__cols h5 { font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color: var(--ink-soft); margin-bottom:12px; }
.ticks li { position:relative; padding-left:24px; margin-bottom:9px; font-size:15px; }
.ticks li::before { content:""; position:absolute; left:0; top:8px; width:13px; height:7px; border-left:2px solid var(--mc); border-bottom:2px solid var(--mc); transform: rotate(-45deg); }
.member__meta { font-size:15px; color: var(--ink-soft); line-height:1.5; }
.member__meta--strong { color: var(--ink); font-weight:700; }

/* ===== Values + quote (Philosophie) ==================================== */
.values { max-width:1180px; margin:0 auto; padding:0 var(--mx); display:grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.value { background: var(--surface); border:1px solid var(--line); border-radius: var(--radius); padding: 34px 30px; }
.value__num { font-family: var(--font-head); font-weight: var(--head-weight); font-size: 40px; color: var(--accent); display:block; margin-bottom:14px; line-height:1; }
.value__word { font-family: var(--font-head); font-weight: var(--head-weight); font-style: var(--head-style); font-size:26px; margin-bottom:12px; color: var(--primary-deep); }
.value__text { color: var(--ink-soft); line-height:1.6; }
.quote { max-width:980px; margin: clamp(48px,6vw,76px) auto 0; padding: 0 var(--mx); }
.quote blockquote { background: var(--bg-soft); border-radius: var(--radius); padding: clamp(36px,5vw,60px); border-left: 5px solid var(--accent); }
[data-theme="region"] .quote blockquote { border-left-width: 4px; }
.quote p { font-family: var(--font-head); font-weight: var(--head-weight); font-style: var(--head-style); font-size: clamp(22px,2.6vw,32px); line-height:1.3; color: var(--ink); margin-bottom:18px; text-wrap: balance; }
.quote cite { font-style: normal; font-weight:700; color: var(--primary); }

/* ===== Contact ========================================================= */
.contact { max-width:1140px; margin:0 auto; padding: 0 var(--mx); display:grid; grid-template-columns: 1.15fr 0.85fr; gap: clamp(28px,4vw,56px); align-items:start; }
.cform { background: var(--surface); border:1px solid var(--line); border-radius: var(--radius); padding: clamp(24px,3vw,38px); display:flex; flex-direction:column; gap:18px; }
.field { display:flex; flex-direction:column; gap:7px; }
.field span { font-size:13.5px; font-weight:700; color: var(--ink); letter-spacing:.01em; }
.field input, .field select, .field textarea {
  font-family: inherit; font-size:16px; color: var(--ink); background: var(--bg); border:1.5px solid var(--line);
  border-radius: var(--radius-sm); padding: 13px 15px; transition: border-color .15s, box-shadow .15s;
}
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 16%, transparent); }
.cform .btn { align-self:flex-start; margin-top:4px; }
.cform__done { display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; padding: 40px 10px; }
.cform__check { width:60px; height:60px; border-radius:50%; background: var(--secondary); color:#fff; font-size:30px; display:grid; place-items:center; }
.cform__done p { font-size:18px; font-weight:600; color: var(--ink); }
.cinfo { display:flex; flex-direction:column; gap: 26px; }
.cinfo__central { background: var(--primary-deep); color: var(--hero-ink); border-radius: var(--radius); padding: 28px 26px; }
.cinfo__central .eyebrow { color: var(--accent); margin-bottom:14px; }
.cinfo__addr { line-height:1.5; margin-bottom:12px; color: color-mix(in srgb, var(--hero-ink) 85%, transparent); }
.cinfo__phone { font-family: var(--font-head); font-weight: var(--head-weight); font-size:22px; margin-bottom:4px; }
.cinfo__mail { color: color-mix(in srgb, var(--hero-ink) 80%, transparent); }
.cinfo__direct { background: var(--surface); border:1px solid var(--line); border-radius: var(--radius); padding: 26px; }
.cinfo__direct .eyebrow { margin-bottom:16px; }
.cinfo__list { display:flex; flex-direction:column; gap:16px; }
.cinfo__row { display:flex; align-items:center; gap:13px; }
.cinfo__row > div { display:flex; flex-direction:column; gap:2px; min-width:0; }
.cinfo__row strong { display:block; font-size:15px; line-height:1.25; }
.cinfo__row span { font-size:14px; color: var(--ink-soft); }
.cinfo__row .cinfo__num { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; border-radius:50%; background:#fff; border:1.6px solid #33404f; color:#152232; font-family:var(--font-head); font-weight:800; font-size:16px; line-height:1; }

/* ===== Footer ========================================================== */
.foot { background: var(--bg-soft); border-top:1px solid var(--line); padding: clamp(32px,3.4vw,46px) var(--mx) 16px; }
.foot__top { max-width:1240px; margin:0 auto; display:flex; align-items:flex-start; justify-content:space-between; gap:40px; flex-wrap:wrap; padding-bottom:20px; border-bottom:1px solid var(--line); }
.foot__brand { display:flex; flex-direction:column; max-width:280px; }
.foot__logoimg { height: 44px; width: auto; margin-bottom: 5px; }
.foot__brand p { font-size:11px; color: var(--ink-soft); line-height:1.45; white-space: pre-line; letter-spacing:.01em; }
.foot__cols { display:flex; gap: 44px; flex-wrap:wrap; margin-left:auto; }
.foot__col { display:flex; flex-direction:column; gap:7px; }
.foot__col h4 { font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color: var(--ink-soft); margin-bottom:3px; }
.foot__col button { text-align:left; font-size:14px; color: var(--ink); transition: color .15s; width:fit-content; }
.foot__col button:hover { color: var(--primary); }
.foot__bar { max-width:1240px; margin:13px auto 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:12.5px; color: var(--ink-soft); }
.foot__legal { display:flex; gap:20px; }
.foot__legal a { color: var(--ink-soft); text-decoration:none; }
.foot__legal a:hover { color: var(--primary); text-decoration: underline; }

/* Footer auf dem Handy: alles mittig, Rechtliches in einer Zeile */
@media (max-width:620px){
  .foot__top { flex-direction:column; align-items:center; }
  .foot__brand { max-width:none; width:100%; align-items:center; text-align:center; }
  .foot__brand > div { width:100%; text-align:center; }
  .foot__logoimg { display:block; margin:0 auto 5px; }
  .foot__cols { gap:22px; margin-left:0; justify-content:center; width:100%; }
  .foot__col { align-items:center; text-align:center; width:100%; }
  .foot__col h4 { text-align:center; }
  .foot__col button { text-align:center; }
  .foot__col--pages { display:none; }
  .foot__col--legal h4 { display:none; }
  .foot__col--legal { flex-direction:row; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px 0; }
  .foot__col--legal button { font-size:12px; color:var(--ink-soft); padding:0 8px; position:relative; }
  .foot__col--legal button + button::before { content:"·"; position:absolute; left:-2px; opacity:.45; }
  .foot__bar { justify-content:center; text-align:center; line-height:1.7; }
}
@media (min-width:621px){ .foot__br { display:none; } }

/* ===== Impressum ======================================================= */
.imp { max-width: 760px; margin: 0 auto; padding: 0 var(--mx) clamp(24px,4vw,56px); text-align: left; }
.imp__title { font-family: var(--font-head); font-weight: var(--head-weight); font-size: clamp(34px,4.4vw,52px); color: var(--primary); letter-spacing: var(--head-spacing); margin-bottom: 40px; }
.imp__sec { margin-bottom: 34px; }
.imp__sec h3 { font-family: var(--font-head); font-weight: var(--head-weight); font-size: clamp(20px,2.2vw,26px); color: var(--primary); margin-bottom: 14px; letter-spacing: var(--head-spacing); }
.imp__body { color: var(--ink-soft); line-height: 1.75; }
.imp__body p { margin: 0; max-width: 68ch; }
.imp__body strong { color: var(--ink); font-weight: 700; }
.imp__body a { color: var(--primary); text-decoration: none; word-break: break-word; }
.imp__body a:hover { text-decoration: underline; }
.imp-pending { font-style: italic; color: color-mix(in srgb, var(--ink-soft) 88%, transparent); }
.imp__note { margin-top: 10px; padding-top: 22px; border-top: 1px solid var(--line); font-style: italic; font-size: 14.5px; color: var(--ink-soft); line-height: 1.7; max-width: 72ch; }
@media (max-width: 620px) {
  .imp { padding-bottom: 32px; }
}

/* ===== animations ====================================================== */
@keyframes fade { from { transform: translateY(10px); } to { transform:none; } }
@keyframes rise { from { transform: translateY(18px) scale(.985); } to { transform:none; } }
@keyframes appin { from { transform: translateY(10px); } to { transform:none; } }
.app__page { animation: appin .35s ease; }

/* ===== responsive ====================================================== */
@media (max-width: 1080px) {
  .mgrid { grid-template-columns: repeat(2,1fr); }
  .vtree__rail, .vtree__trunk { display: none; }
  .vtree__hub { margin-bottom: 32px; }
}
@media (max-width: 900px) {
  :root { --mx: 5vw; }
  .hero__inner { grid-template-columns: 1fr; }
  .hero::after { display:none; }
  .hero__visual { max-width: 440px; }
  .band__inner, .contact { grid-template-columns: 1fr; }
  .member, .member:nth-child(even) { grid-template-columns: 1fr; }
  .member:nth-child(even) .member__media { order: 0; }
  .member__media .mark { left:14px; }
  .values { grid-template-columns: 1fr; }
  .nav__links { display:none; }
}
@media (max-width: 560px) {
  .mgrid { grid-template-columns: 1fr; }
  .member__cols { grid-template-columns: 1fr; }
}

/* --- tweaks 2026-05-30 --- */
.contact, .imp { margin-bottom: clamp(64px, 7vw, 100px); }
.cinfo a { color: inherit; text-decoration: none; }
.cinfo a:hover { text-decoration: underline; }

.field textarea { resize: vertical; min-height: 130px; }
.contact { align-items: stretch; }            /* equal-height columns */
.cinfo { justify-content: space-between; }     /* push lower card to align with form bottom */

.member__logo { background:#fff; border:1px solid var(--line); border-top:3px solid var(--mc); border-radius: var(--radius); display:flex; align-items:center; justify-content:center; padding: clamp(22px,5%,40px); width:100%; max-width:460px; margin-inline:auto; }
.member__logo img { width:100%; height:auto; object-fit:contain; display:block; }

.member__logo { cursor:pointer; transition: box-shadow .18s ease, transform .18s ease; }
.member__logo:hover { box-shadow: 0 8px 26px rgba(20,49,94,.10); transform: translateY(-2px); }
.member__name a { color: inherit; text-decoration: none; }
.member__name a:hover { color: var(--mc); }
.member__meta a { color: inherit; text-decoration: none; }
.member__meta a:hover { text-decoration: underline; }
.member__visit { display:inline-flex; align-items:center; gap:7px; margin-top:20px; font-weight:700; font-size:14.5px; color: var(--mc); text-decoration:none; }
.member__visit:hover { text-decoration: underline; }
.member__visit svg { transition: transform .15s ease; }
.member__visit:hover svg { transform: translateX(3px); }
.seo-block { max-width: 820px; margin: clamp(44px,6vw,76px) auto clamp(60px,7vw,92px); padding: 0 var(--mx); text-align:center; }
.seo-block .eyebrow { margin-bottom: 14px; }
.seo-block .h2 { margin-bottom: 16px; }

/* --- philosophie page --- */
.value { position:relative; border-top:3px solid var(--vc); }
.value__num { position:absolute; top:26px; right:28px; font-family:var(--font-head); font-weight:800; font-size:15px; letter-spacing:.14em; color: color-mix(in srgb, var(--vc) 55%, transparent); margin:0; }
.value__icon { width:58px; height:58px; border-radius:16px; display:grid; place-items:center; background: color-mix(in srgb, var(--vc) 12%, #fff); color: var(--vc); margin-bottom:22px; }
.value__icon svg { width:30px; height:30px; }
.value__word { color: var(--primary-deep); }
.practice { background: var(--bg-soft); padding: clamp(54px,7vw,88px) var(--mx); margin-top: clamp(48px,6vw,80px); }
.practice__head { max-width:760px; margin:0 auto clamp(30px,4vw,46px); text-align:center; }
.practice__head .eyebrow { margin-bottom:14px; } .practice__head .h2 { margin-bottom:14px; } .practice__head .lede { margin:0 auto; }
.practice__grid { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.practice__item { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:30px 26px; }
.practice__icon { width:50px; height:50px; border-radius:13px; display:grid; place-items:center; background: color-mix(in srgb, var(--primary) 10%, #fff); color:var(--primary); margin-bottom:18px; }
.practice__icon svg { width:26px; height:26px; }
.practice__item h3 { font-family:var(--font-head); font-weight:var(--head-weight); font-size:19px; color:var(--primary-deep); margin-bottom:9px; }
.practice__item p { color:var(--ink-soft); line-height:1.6; font-size:15.5px; }
.quote blockquote { background: var(--hero-bg); border-left:none; color: var(--hero-ink); position:relative; overflow:hidden; }
.quote p { color: var(--hero-ink); }
.quote__mark { position:absolute; top:10px; right:24px; color: color-mix(in srgb, var(--accent) 60%, transparent); pointer-events:none; }
.quote__mark svg { width:88px; height:88px; }
.quote__by { display:flex; align-items:center; gap:14px; margin-top:6px; }
.quote__avatar { width:48px; height:48px; border-radius:50%; background:var(--accent); color:#14315e; display:grid; place-items:center; font-family:var(--font-head); font-weight:800; font-size:16px; }
.quote cite { color: var(--accent); }
@media (max-width:900px){ .practice__grid { grid-template-columns:1fr; } }

/* --- philosophie editorial v2 --- */
.philo{ overflow-x:clip; }
@media (prefers-reduced-motion: no-preference){
  .philo.is-ready .rv{ opacity:0; transform:translateY(20px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
  .philo.is-ready .rv.is-in{ opacity:1; transform:none; }
}
.pl-hero{ position:relative; max-width:1180px; margin:0 auto; padding: clamp(8px,3vw,30px) var(--mx) clamp(40px,6vw,70px); }
.pl-hero__art{ position:absolute; top:-46px; right:-50px; width:min(600px,68vw); color:var(--primary); pointer-events:none; z-index:0; }
.pl-hero__art svg{ width:100%; height:auto; display:block; }
.pl-hero__in{ position:relative; z-index:1; max-width:760px; }
.pl-hero .eyebrow{ display:block; margin-bottom:18px; }
.pl-hero__h{ font-family:var(--font-display); font-weight:400; letter-spacing:-.01em; line-height:1.04; font-size:clamp(40px,6.4vw,78px); color:var(--primary-deep); margin-bottom:22px; text-wrap:balance; }
.pl-hero__lede{ font-size:clamp(17px,1.6vw,21px); line-height:1.6; color:var(--ink-soft); max-width:58ch; }
.pl-manifest{ display:flex; flex-wrap:wrap; gap:clamp(16px,3vw,44px); margin-top:clamp(28px,4vw,44px); padding-top:clamp(22px,3vw,30px); border-top:1px solid var(--line); }
.pl-manifest__w{ font-family:var(--font-head); font-weight:800; font-size:clamp(23px,3vw,37px); color:var(--primary-deep); display:flex; align-items:baseline; gap:11px; letter-spacing:-.01em; }
.pl-manifest__w i{ font-family:var(--font-body); font-style:normal; font-weight:800; font-size:12.5px; letter-spacing:.12em; color:var(--vc); transform:translateY(-.55em); }
.pl-rows{ max-width:1120px; margin:0 auto; padding:0 var(--mx); }
.pl-row{ display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:clamp(30px,5vw,72px); padding:clamp(40px,6vw,76px) 0; border-top:1px solid var(--line); }
.pl-row:first-child{ border-top:none; }
.pl-row--rev .pl-row__text{ order:2; }
.pl-row__num{ font-family:var(--font-display); font-weight:300; font-size:clamp(52px,7vw,90px); line-height:1; color:var(--vc); opacity:.22; display:block; margin-bottom:4px; }
.pl-row__word{ font-family:var(--font-head); font-weight:800; font-size:clamp(30px,4vw,50px); line-height:1.05; color:var(--primary-deep); margin:0 0 16px; letter-spacing:-.015em; }
.pl-row__word::after{ content:""; display:block; width:54px; height:3px; border-radius:2px; background:var(--vc); margin-top:18px; }
.pl-row__body{ font-size:clamp(16px,1.4vw,18px); line-height:1.7; color:var(--ink-soft); max-width:46ch; }
.pl-row__art{ color:var(--vc); display:grid; place-items:center; aspect-ratio:1/1; border-radius:24px; background:color-mix(in srgb, var(--vc) 7%, #fff); border:1px solid color-mix(in srgb, var(--vc) 16%, var(--line)); padding:clamp(22px,4vw,46px); transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.pl-row:hover .pl-row__art{ transform:translateY(-6px); }
.pl-row__art svg{ width:100%; height:auto; max-width:300px; }
.pl-row__art--photo{ padding:0; overflow:hidden; background:none; }
.pl-row__photo{ width:100%; height:100%; object-fit:cover; display:block; border-radius:inherit; }
.pl-practice{ background:var(--bg-soft); padding:clamp(56px,7vw,96px) var(--mx); margin-top:clamp(48px,7vw,90px); }
.pl-practice__head{ max-width:720px; margin:0 auto clamp(34px,4vw,52px); text-align:center; }
.pl-practice__head .eyebrow{ display:block; margin-bottom:14px; }
.pl-practice__h{ font-family:var(--font-display); font-weight:500; font-size:clamp(27px,3.4vw,42px); color:var(--primary-deep); line-height:1.1; margin-bottom:16px; text-wrap:balance; }
.pl-practice__lede{ color:var(--ink-soft); line-height:1.6; font-size:clamp(16px,1.4vw,18px); margin:0 auto; }
.pl-prom{ max-width:1040px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); }
.pl-prom__i{ padding:8px clamp(20px,3vw,40px); position:relative; }
.pl-prom__i + .pl-prom__i::before{ content:""; position:absolute; left:0; top:6px; bottom:6px; width:1px; background:var(--line); }
.pl-prom__ic{ width:50px; height:50px; border-radius:13px; display:grid; place-items:center; background:#fff; border:1px solid var(--line); color:var(--primary); margin-bottom:18px; }
.pl-prom__ic svg{ width:26px; height:26px; }
.pl-prom__i h3{ font-family:var(--font-display); font-weight:600; font-size:21px; color:var(--primary-deep); margin-bottom:9px; }
.pl-prom__i p{ color:var(--ink-soft); line-height:1.62; font-size:15.5px; }
.pl-quote{ position:relative; max-width:1040px; margin:clamp(54px,7vw,96px) auto 0; padding:clamp(40px,6vw,72px) clamp(28px,5vw,72px); background:var(--hero-bg); color:#fff; border-radius:clamp(18px,2vw,26px); overflow:hidden; }
.pl-quote__mark{ position:absolute; top:4px; right:24px; color:color-mix(in srgb, var(--accent) 62%, transparent); }
.pl-quote__mark svg{ width:120px; height:120px; }
.pl-quote blockquote{ position:relative; z-index:1; margin:0; max-width:760px; }
.pl-quote p{ font-family:var(--font-display); font-weight:400; font-style:italic; font-size:clamp(23px,3vw,38px); line-height:1.3; color:#fff; margin-bottom:26px; text-wrap:balance; }
.pl-quote footer{ display:flex; align-items:center; gap:15px; }
.pl-quote__av{ width:52px; height:52px; border-radius:50%; background:var(--accent); color:#14315e; display:grid; place-items:center; font-family:var(--font-display); font-weight:600; font-size:18px; flex:none; }
.pl-quote cite{ font-style:normal; font-weight:700; color:var(--accent); letter-spacing:.01em; }
@media (max-width:820px){
  .pl-hero__art{ top:-20px; right:-90px; opacity:.7; }
  .pl-row{ grid-template-columns:1fr; gap:26px; }
  .pl-row--rev .pl-row__text{ order:0; }
  .pl-row__art{ max-width:360px; margin-inline:auto; width:100%; }
  .pl-prom{ grid-template-columns:1fr; }
  .pl-prom__i + .pl-prom__i::before{ display:none; }
  .pl-prom__i{ padding:18px 0; border-top:1px solid var(--line); }
  .pl-prom__i:first-child{ border-top:none; }
}

/* --- mobile nav (hamburger) --- */
.nav__burger{ display:none; }
.nav__mobile{ display:none; }
@media (max-width:900px){
  .nav__burger{ display:inline-flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:46px; height:46px; padding:12px; border-radius:11px; flex:none; }
  .nav__burger:hover{ background:var(--bg-soft); }
  .nav__burger span{ display:block; width:100%; height:2px; background:var(--primary-deep); border-radius:2px; transition:transform .25s ease, opacity .2s ease; }
  .nav__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .nav__lang{ margin-left:auto; }
  .nav__mobile{ position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:3px; padding:10px 14px 16px; background:var(--bg); border-bottom:1px solid var(--line); box-shadow:0 22px 34px -20px rgba(12,30,60,.35); }
  .nav__mobile.is-open{ display:flex; }
  .nav__mlink{ padding:14px 16px; border-radius:12px; font-weight:600; font-size:17px; color:var(--primary-deep); transition:background .15s; }
  .nav__mlink:hover{ background:var(--bg-soft); }
  .nav__mlink.is-active{ background:var(--bg-soft); color:var(--primary); }
}

/* --- coming-soon (Sanitätshaus) --- */
@media (max-width:1080px){ .vtree__rail{ display:none; } }
.mcard--soon{ cursor:default; }
.mcard--teaser{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:8px; background:var(--bg-soft); border-color:var(--line); }
.mcard__teaser-ic{ display:grid; place-items:center; width:52px; height:52px; border-radius:50%; background:var(--surface); border:1px solid var(--line); color:var(--accent); margin-bottom:2px; }
.mcard__teaser-eyebrow{ font-weight:800; font-size:11.5px; letter-spacing:.15em; text-transform:uppercase; color:#c99323; }
.mcard__teaser-h{ font-family:var(--font-head); font-weight:800; font-size:22px; color:var(--primary-deep); letter-spacing:-.01em; }
.mcard--soon:hover{ transform:none; box-shadow:none; border-color:var(--line); }
.mcard__soon{ display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:13px; letter-spacing:.02em; color:var(--mc); background:var(--mc-tint); padding:6px 13px; border-radius:999px; margin-top:4px; align-self:flex-start; }
.mcard__soondot{ width:7px; height:7px; border-radius:50%; background:var(--mc); box-shadow:0 0 0 3px color-mix(in srgb, var(--mc) 22%, transparent); }
.member__logo--static{ display:flex; align-items:center; justify-content:center; }
.member__soon{ display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:14px; color:var(--mc); background:var(--mc-tint); padding:10px 17px; border-radius:999px; align-self:flex-start; width:fit-content; }
.member__soondot{ width:8px; height:8px; border-radius:50%; background:var(--mc); box-shadow:0 0 0 3px color-mix(in srgb, var(--mc) 22%, transparent); }

.mcard__name strong, .member__name{ overflow-wrap:break-word; hyphens:manual; word-break:normal; }
.member__soon--svc{ }

/* --- homepage service tier (under the pharmacies) --- */
.vtree__svc{ display:grid; grid-template-columns:repeat(var(--n,5),1fr); gap:16px; margin-top:38px; }
.svccard{ grid-column:1 / span 2; position:relative; display:flex; align-items:center; gap:14px; background:var(--mc-tint); border:1px solid color-mix(in srgb, var(--mc) 28%, var(--line)); border-radius:var(--radius); padding:16px 20px; }
.svccard__conn{ position:absolute; left:0; right:0; top:-38px; height:38px; pointer-events:none; }
.svccard__conn i{ position:absolute; background:var(--conn); }
.svccard__conn .c-bar{ left:25%; right:25%; top:50%; height:2px; }
.svccard__conn .c-stem{ left:50%; top:50%; bottom:0; width:2px; transform:translateX(-1px); }
.svccard__conn .c-left{ left:25%; top:0; height:50%; width:2px; transform:translateX(-1px); }
.svccard__conn .c-right{ left:75%; top:0; height:50%; width:2px; transform:translateX(-1px); }
.svccard__txt{ display:flex; flex-direction:column; gap:3px; line-height:1.2; margin-right:auto; }
.svccard__txt strong{ font-family:var(--font-head); font-weight:700; font-size:16px; color:var(--ink); }
.svccard__role{ font-size:12.5px; color:var(--ink-soft); letter-spacing:.02em; }
@media (max-width:1080px){ .vtree__svc{ grid-template-columns:1fr; } .svccard{ grid-column:auto; } .svccard__conn{ display:none; } }

/* --- Über uns: who-we-are + values section --- */
.pl-about{ max-width:1180px; margin:0 auto; padding:0 var(--mx); }
.pl-about__in{ max-width:760px; }
.pl-about__in p{ font-size:clamp(17px,1.55vw,20px); line-height:1.72; color:var(--ink-soft); margin-bottom:18px; text-wrap:pretty; }
.pl-about__link{ display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:15.5px; color:var(--primary); margin-top:4px; }
.pl-about__link svg{ transition:transform .2s ease; }
.pl-about__link:hover svg{ transform:translateX(3px); }
.pl-values{ max-width:1120px; margin:0 auto; padding:clamp(44px,6vw,76px) var(--mx) 0; }
.pl-values__head{ max-width:760px; margin:0 auto clamp(18px,2.5vw,26px); text-align:center; }
.pl-values__head .eyebrow{ display:block; margin-bottom:14px; }
.pl-values__h{ font-family:var(--font-display); font-weight:500; font-size:clamp(28px,3.6vw,46px); color:var(--primary-deep); line-height:1.08; margin-bottom:14px; letter-spacing:-.005em; text-wrap:balance; }
.pl-values__lede{ color:var(--ink-soft); line-height:1.6; font-size:clamp(16px,1.4vw,18px); margin:0 auto; max-width:60ch; }
.pl-values .pl-manifest{ justify-content:center; border-top:none; padding-top:0; margin-top:clamp(8px,1.6vw,16px); }
.pl-values .pl-rows{ max-width:none; padding:0; margin-top:clamp(20px,3vw,34px); }

.member__name{ hyphens:none; -webkit-hyphens:none; }

/* --- cookie consent banner --- */
.dxck{ position:fixed; left:0; right:0; bottom:0; z-index:300; display:flex; justify-content:center; padding:16px; pointer-events:none; }
.dxck[hidden]{ display:none; }
.dxck__box{ pointer-events:auto; width:min(680px,100%); max-height:calc(100vh - 32px); overflow:auto; background:var(--surface,#fff); border:1px solid var(--line); border-radius:16px; box-shadow:0 22px 54px -18px rgba(12,30,60,.42); padding:22px 24px; animation:dxckIn .35s cubic-bezier(.2,.7,.2,1); }
@keyframes dxckIn{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
.dxck__title{ font-family:var(--font-head); font-weight:800; font-size:18px; color:var(--primary-deep); margin:0 0 8px; }
.dxck__text{ color:var(--ink-soft); font-size:14.5px; line-height:1.55; margin:0 0 16px; }
.dxck__text a{ color:var(--primary); font-weight:600; }
.dxck__btns{ display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.dxck__btn{ font:inherit; font-weight:700; font-size:14px; padding:11px 18px; border-radius:10px; cursor:pointer; border:1px solid transparent; transition:background .15s ease, filter .15s ease; }
/* Kontaktformular: Einwilligung + Spam-Falle */
.cform__consent{ display:flex; gap:10px; align-items:flex-start; margin:6px 0 16px; font-size:13.5px; line-height:1.5; color:var(--ink-soft); cursor:pointer; }
.cform__consent input{ margin-top:3px; flex:none; width:17px; height:17px; accent-color:var(--primary); }
.cform__consent a{ color:var(--primary); }
.cform__trap{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.dxck__btn--accent{ background:var(--accent); color:#14315e; }
/* Ablehnen gleichwertig zu Akzeptieren (DSK: gleiche Erkennbarkeit) */
.dxck__btn--solid{ background:var(--primary-deep); color:#fff; }
.dxck__btn--solid:hover{ filter:brightness(1.12); }
.dxck__btn--accent:hover{ filter:brightness(.96); }
.dxck__btn--ghost{ background:#fff; color:var(--primary-deep); border-color:var(--line); }
.dxck__btn--ghost:hover{ background:var(--bg-soft); }
.dxck__cat{ border-top:1px solid var(--line); padding:14px 2px; margin:0; }
.dxck__cat p{ color:var(--ink-soft); font-size:13.5px; line-height:1.5; margin:6px 0 0; }
.dxck__catHead{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.dxck__catHead strong{ color:var(--primary-deep); font-size:15px; }
.dxck__always{ font-size:12.5px; color:var(--secondary); font-weight:700; white-space:nowrap; }
.dxck__cat--toggle{ display:block; cursor:pointer; }
.dxck__cat--toggle input{ width:20px; height:20px; accent-color:var(--secondary); cursor:pointer; flex:none; }
.dxck__settings .dxck__btns{ margin-top:18px; }
@media (max-width:560px){ .dxck{ padding:10px; } .dxck__btns{ justify-content:stretch; } .dxck__btn{ flex:1 1 auto; } }

/* --- datenschutz / legal lists --- */
.imp__updated{ color:var(--ink-soft); font-size:14px; margin:-8px 0 28px; }
.imp__body ul.imp__list{ margin:8px 0 6px; padding-left:20px; }
.imp__body ul.imp__list li{ color:var(--ink-soft); line-height:1.6; margin-bottom:7px; }
.imp__body .imp__notep{ color:var(--ink-soft); }

/* --- hero photo --- */
.hero__media{ position:relative; aspect-ratio:5 / 6; border-radius:var(--radius); overflow:hidden; box-shadow:0 30px 60px -30px rgba(0,0,0,.5); border:1px solid color-mix(in srgb, var(--ink) 8%, transparent); background:var(--bg-soft); }
.hero__img{ width:100%; height:100%; object-fit:cover; display:block; transition:opacity .45s ease; }

/* --- band value list (editorial, compact, SEO-rich) --- */
.band__values{ list-style:none; margin:6px 0 0; padding:0; display:flex; flex-direction:column; }
.bandval{ display:flex; gap:18px; align-items:flex-start; padding:18px 0; border-top:1px solid color-mix(in srgb, var(--hero-ink) 15%, transparent); }
.bandval:first-child{ border-top:0; padding-top:0; }
.bandval:last-child{ padding-bottom:0; }
.bandval__num{ font-family:var(--font-head); font-weight:800; font-size:13px; letter-spacing:.08em; color:var(--accent); padding-top:7px; min-width:24px; flex:none; }
.bandval__word{ display:block; font-family:var(--font-head); font-weight:var(--head-weight); font-style:var(--head-style); font-size:clamp(20px,2.3vw,27px); line-height:1.12; color:var(--hero-ink); }
.bandval__text{ margin:6px 0 0; color:color-mix(in srgb, var(--hero-ink) 74%, transparent); font-size:15px; line-height:1.55; max-width:48ch; }
.bandval__body{ transition:transform .25s ease; }
.bandval:hover .bandval__body{ transform:translateX(3px); }
@media (max-width:760px){ .bandval__text{ font-size:14.5px; } }
