@font-face { font-family: "Source Sans 3"; src: url("../fonts/source-sans-3-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Source Sans 3"; src: url("../fonts/source-sans-3-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Source Sans 3"; src: url("../fonts/source-sans-3-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }

:root {
  --ink: #1f1e1e;
  --ink-2: #4f4b46;
  --mute: #877e75;          /* große Überschriftenteile, mind. 3:1 */
  --mute-text: #6b635b;     /* kleiner grauer Text, mind. 4,5:1 */
  --bg: #fbf9f6;
  --beige: #ede7e1;
  --beige-2: #f4f0eb;
  --line: #ddd5cd;
  --green: #184f43;
  --green-2: #123d34;
  --green-3: #2a6457;
  --orange: #ea6440;
  --orange-2: #b3401c;      /* oranger Text und Hover, mind. 4,5:1 */
  --orange-ink: #c4461e;    /* Buttons und aktive Flächen mit weißer Schrift, 4,9:1 */
  --white: #fefefe;

  --f: "Source Sans 3", Helvetica, Arial, sans-serif;
  --fs-h1: clamp(3.4rem, 8vw, 8.2rem);
  --fs-h2: clamp(2.5rem, 5.2vw, 4.7rem);
  --fs-h3: clamp(1.35rem, 1.6vw, 1.6rem);
  --fs-body: 1.0625rem;
  --gutter: clamp(16px, 2.8vw, 40px);
  --radius: 26px;
  --radius-s: 16px;
  --ease: cubic-bezier(.22,.8,.26,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font: 400 var(--fs-body)/1.55 var(--f); letter-spacing: -0.01em;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  hyphens: auto; overflow-x: clip;
}
img, video, svg { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3, p { margin: 0; }
h1, h2 { font-weight: 400; text-wrap: balance; hyphens: manual; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--orange-ink); outline-offset: 3px; border-radius: 6px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.skip { position: fixed; left: 12px; top: -60px; z-index: 100; background: var(--ink); color: var(--white); padding: 10px 16px; border-radius: 10px; }
.skip:focus { top: 12px; }

.wrap { width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 var(--gutter); }
.bg-beige { background: var(--beige); }
.mute { color: var(--mute); }
.accent { color: var(--orange-ink); }
.h2 { font-size: var(--fs-h2); line-height: 1.06; letter-spacing: -0.025em; }

/* Buttons */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  height: 50px; padding: 0 26px; border-radius: 18px; border: 1px solid transparent;
  font-size: 1rem; text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.btn__arrow { transition: transform .2s var(--ease); }
.btn:hover .btn__arrow { transform: translateX(3px); }
.btn--orange { background: var(--orange-ink); color: var(--white); }
.btn--orange:hover { background: var(--orange-2); }
.btn--white { background: var(--white); color: var(--ink); }
.btn--white:hover { background: var(--beige); }
.btn--ghost { border-color: rgba(255,255,255,.75); color: var(--white); }
.btn--ghost:hover { background: rgba(255,255,255,.12); }
.btn--beige { background: var(--beige); color: var(--ink); }
.btn--beige:hover { background: var(--line); }
.btn--dim { background: rgba(255,255,255,.1); color: var(--white); height: 44px; font-size: .95rem; }
.btn--dim:hover { background: rgba(255,255,255,.18); }
.round-btn {
  width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--line); background: var(--white);
  display: grid; place-items: center; cursor: pointer; font-size: 1.1rem; transition: background-color .2s var(--ease);
}
.round-btn:hover { background: var(--beige-2); }
.round-btn:disabled { opacity: .35; cursor: default; }

/* Header */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  display: flex; align-items: center; gap: 32px;
  height: 88px; padding: 0 var(--gutter);
  color: var(--ink); transition: transform .35s var(--ease), background-color .3s var(--ease), color .3s var(--ease);
}
.site-header.is-on-dark { color: var(--white); }
.site-header.is-solid { background: rgba(251,249,246,.92); backdrop-filter: saturate(1.2) blur(10px); -webkit-backdrop-filter: saturate(1.2) blur(10px); }
.site-header.is-hidden { transform: translateY(-100%); }
.logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; }
.logo__mark { width: 36px; height: 36px; }
.logo__word { display: flex; flex-direction: column; font-size: 1.45rem; line-height: .9; font-weight: 600; letter-spacing: -0.03em; }
.logo__word small { font-size: .82rem; letter-spacing: .02em; color: var(--orange-ink); font-weight: 600; margin-top: 3px; }
.nav { display: flex; gap: 30px; margin-left: auto; }
.nav a { text-decoration: none; font-size: .98rem; opacity: .92; position: relative; }
.nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .25s var(--ease); }
.nav a:hover::after { transform: scaleX(1); }
.header__cta { margin-left: 8px; }
.burger { display: none; margin-left: auto; width: 46px; height: 46px; border: 0; background: none; cursor: pointer; position: relative; }
.burger span:not(.sr) { position: absolute; left: 11px; right: 11px; height: 2px; background: currentColor; transition: transform .25s var(--ease), top .25s var(--ease); }
.burger span:nth-child(1) { top: 18px; } .burger span:nth-child(2) { top: 27px; }
.burger[aria-expanded="true"] span:nth-child(1) { top: 22px; transform: rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { top: 22px; transform: rotate(-45deg); }
.mobile-nav {
  position: fixed; inset: 0; z-index: 45; background: var(--bg); padding: 110px var(--gutter) 40px;
  display: flex; flex-direction: column; gap: 6px;
}
.mobile-nav[hidden] { display: none; }
.mobile-nav a:not(.btn) { font-size: 2rem; text-decoration: none; padding: 6px 0; border-bottom: 1px solid var(--line); letter-spacing: -0.02em; }
.mobile-nav .btn { margin-top: 24px; align-self: flex-start; }

/* HERO */
.hero { position: relative; height: 100vh; height: 100svh; background: var(--bg); }
.hero__stage { position: relative; height: 100%; overflow: hidden; }
.hero__media {
  position: absolute; inset: 0; margin: 0; z-index: 2;
  clip-path: inset(0px 0px 0px 0px round 0px); will-change: clip-path;
}
.hero__media { background: #33413b; }
.hero__media video, .hero__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; background: transparent; }
.hero__sub { margin: clamp(16px, 2.4vh, 24px) auto 0; max-width: 36ch; font-size: clamp(1.1rem, 1.6vw, 1.4rem); line-height: 1.35; color: rgba(255, 255, 255, .94); text-shadow: 0 1px 18px rgba(0, 0, 0, .35); }
.hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,20,17,.45), rgba(10,20,17,.2) 40%, rgba(10,20,17,.5)); pointer-events: none; }
.hero__fan { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.fan-m { position: absolute; inset: 0; will-change: transform; }
.hero__fan img {
  position: absolute;
  width: var(--fan-w, 230px); height: calc(var(--fan-w, 230px) * 1.1);
  left: calc(50% - var(--fan-w, 230px) / 2); top: calc(var(--card-cy, 30vh) - var(--fan-w, 230px) * .55);
  object-fit: cover; border-radius: 26px; transform: scale(.6); opacity: 0;
}
.hero__intro {
  position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; color: var(--white); padding: 0 var(--gutter);
}
.hero__title { font-size: var(--fs-h1); line-height: 1; letter-spacing: -0.03em; }
.hero__title .line { display: block; }
.pill {
  display: inline-block; vertical-align: middle; position: relative; top: -0.06em;
  width: .72em; height: .72em; border-radius: .2em; overflow: hidden; margin: 0 .04em;
}
.pill__track { display: flex; flex-direction: column; animation: pill 10s var(--ease) infinite; }
.pill__track img { width: .72em; height: .72em; object-fit: cover; flex: none; }
@keyframes pill {
  0%, 18% { transform: translateY(0); }
  25%, 43% { transform: translateY(-.72em); }
  50%, 68% { transform: translateY(-1.44em); }
  75%, 93% { transform: translateY(-2.16em); }
  100% { transform: translateY(-2.88em); }
}
.hero__buttons { display: flex; gap: 16px; margin-top: clamp(28px, 3.4vw, 46px); flex-wrap: wrap; justify-content: center; }
.hero__desc {
  position: absolute; z-index: 3; left: 50%; top: var(--desc-top, 62%);
  width: min(1040px, calc(100% - 2 * var(--gutter))); transform: translateX(-50%);
  text-align: center; opacity: 0; visibility: hidden;
}
.hero__desc-title { font-size: clamp(2rem, 3.9vw, 3.7rem); line-height: 1.08; letter-spacing: -0.025em; }
.hero__desc p { max-width: 64ch; margin: 18px auto 0; color: var(--ink-2); }
.hero__scrollhint {
  position: absolute; z-index: 3; left: 50%; bottom: 26px; transform: translateX(-50%);
  color: rgba(255,255,255,.85); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.hero__scrollhint span { width: 1px; height: 42px; background: currentColor; transform-origin: top; animation: hint 2.2s var(--ease) infinite; }
@keyframes hint { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

/* Section scaffolding */
.section-head { padding-bottom: clamp(36px, 4vw, 64px); }
.section-head--center { text-align: center; }
.section-head--split { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }

/* LEISTUNGEN */
.services { padding: clamp(80px, 9vw, 130px) 0 clamp(60px, 6vw, 90px); }
.slider__track {
  display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  padding: 0 var(--gutter) 6px; scroll-padding: 0 var(--gutter);
}
.slider__track::-webkit-scrollbar { display: none; }
@media (min-width: 1440px) { .slider__track { padding-left: calc((100vw - 1440px) / 2 + var(--gutter)); scroll-padding-left: calc((100vw - 1440px) / 2 + var(--gutter)); } }
.slider__nav { display: flex; gap: 12px; margin-top: 30px; }
.slider__nav--inline { margin-top: 0; }
.svc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.svc {
  position: relative; aspect-ratio: 3 / 4.1;
  background: var(--beige-2); border-radius: var(--radius); padding: 26px; overflow: hidden;
  display: flex; flex-direction: column; justify-content: space-between; isolation: isolate;
}
.svc__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; opacity: 0; transform: scale(1.06); transition: opacity .45s var(--ease), transform .8s var(--ease); }
.svc::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(12,30,26,.1) 20%, rgba(12,30,26,.78)); opacity: 0; transition: opacity .45s var(--ease); }
.svc__icon { width: 46px; height: 46px; fill: none; stroke: var(--orange); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: stroke .3s var(--ease); }
.svc h3 { font-size: var(--fs-h3); font-weight: 400; line-height: 1.18; letter-spacing: -0.015em; }
.svc h3 span { color: var(--mute-text); transition: color .3s var(--ease); }
.svc p { margin-top: 12px; font-size: .96rem; color: var(--ink-2); max-height: 0; opacity: 0; overflow: hidden; transition: max-height .45s var(--ease), opacity .3s var(--ease), color .3s; }
.svc:hover .svc__img, .svc:focus-within .svc__img { opacity: 1; transform: scale(1); }
.svc:hover::after, .svc:focus-within::after { opacity: 1; }
.svc:hover, .svc:focus-within { color: var(--white); }
.svc:hover h3 span, .svc:focus-within h3 span { color: rgba(255,255,255,.7); }
.svc:hover p, .svc:focus-within p { max-height: 10em; opacity: 1; color: rgba(255,255,255,.88); }
.svc:hover .svc__icon, .svc:focus-within .svc__icon { stroke: var(--white); }
@media (hover: none) {
  .svc p { max-height: none; opacity: 1; }
}

/* ZAHLEN */
.stats { padding: clamp(60px, 7vw, 110px) 0; }
.stats__grid { display: grid; grid-template-columns: 1.05fr 1fr 1fr; grid-template-rows: auto auto; gap: 22px; }
.stats__lead {
  grid-row: span 2; position: relative; overflow: hidden; min-height: 560px;
  background: var(--green); color: var(--white); border-radius: var(--radius); padding: 40px;
  display: flex; flex-direction: column; align-items: flex-start; gap: 28px;
}
.stats__title { font-size: clamp(2.4rem, 4vw, 3.9rem); line-height: 1.02; letter-spacing: -0.025em; max-width: 7ch; }
.stats__lead > :not(.stats__rays) { position: relative; z-index: 1; }
.stats__rays { position: absolute; z-index: 0; right: -10%; bottom: -8%; width: 90%; color: var(--green-3); pointer-events: none; }
.stat {
  background: var(--white); border: 1px solid #eee8e2; border-radius: var(--radius); padding: 34px;
  display: flex; flex-direction: column; justify-content: flex-end; min-height: 268px; position: relative;
}
.stat__icon { position: absolute; top: 30px; right: 30px; width: 40px; height: 40px; fill: none; stroke: var(--orange); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.stat__num { font-size: clamp(3rem, 5vw, 4.8rem); line-height: 1; letter-spacing: -0.035em; font-variant-numeric: tabular-nums; }
.stat__label { margin-top: 10px; color: var(--ink-2); max-width: 26ch; }

/* ABLAUF */
.process { padding: clamp(80px, 9vw, 140px) 0; }
.process__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(40px, 7vw, 120px); align-items: center; }
.process__text p { margin: 28px 0 34px; max-width: 52ch; color: var(--ink-2); }
.steps {
  list-style: none; margin: 0; padding: 0; display: grid; gap: 10px;
  height: clamp(380px, 54vh, 480px);
  grid-template-rows: 3.2fr 1fr 1fr 1fr 1fr;
  transition: grid-template-rows .5s var(--ease);
}
.step { min-height: 0; }
.step button {
  width: 100%; height: 100%; text-align: left; border: 0; cursor: pointer; overflow: hidden;
  display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto 1fr; column-gap: 16px; align-content: start;
  background: var(--beige-2); border-radius: var(--radius-s); padding: 0 22px;
  transition: background-color .45s var(--ease);
}
.step__no, .step__name { align-self: center; line-height: 1.2; padding: 16px 0; }
.step__no { font-size: 1rem; color: var(--mute-text); font-variant-numeric: tabular-nums; transition: color .3s; }
.step__name { font-size: clamp(1.2rem, 1.5vw, 1.45rem); font-weight: 500; letter-spacing: -0.01em; transition: font-size .45s var(--ease); }
.step__txt { grid-column: 2; font-size: clamp(1.05rem, 1.3vw, 1.25rem); line-height: 1.45; opacity: 0; transition: opacity .2s var(--ease); }
.step.is-active button { background: #f2a58f; background: color-mix(in srgb, var(--orange) 55%, white); color: var(--ink); }
.step.is-active .step__name { font-size: clamp(1.6rem, 2.2vw, 2.1rem); font-weight: 600; letter-spacing: -0.02em; }
.step.is-active .step__no { color: var(--ink); }
.step.is-active .step__txt { opacity: 1; transition: opacity .35s var(--ease) .2s; }
.step:not(.is-active) button:hover { background: var(--beige); }

/* REGION */
.region { padding: clamp(80px, 9vw, 130px) 0; overflow: hidden; }
.region__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(30px, 5vw, 80px); align-items: center; }
.region__sub { margin-top: 26px; font-size: clamp(1.5rem, 2.4vw, 2.3rem); line-height: 1.15; letter-spacing: -0.02em; max-width: 18ch; }
.region__counts { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 34px; margin: clamp(28px, 5vh, 56px) 0 0; }
.region__counts dt { font-size: .9rem; color: var(--ink-2); }
.region__counts dd { margin: 2px 0 0; font-size: 2.4rem; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.map { display: flex; flex-direction: column; align-items: center; gap: clamp(14px, 3vh, 30px); }
.map svg { width: 100%; height: auto; display: block; }
.map .th circle { fill: var(--white); }
.map .nb circle { fill: #d2c6ba; }
.map .hot circle { fill: var(--orange); transition: opacity .45s var(--ease); }
.map .jena-ring { fill: none; stroke: var(--ink); stroke-width: 1.6; }
.map .lbl-main { font: 600 22px var(--f); fill: var(--ink); letter-spacing: -0.01em; }
.map .lbl-town { font: 500 15px var(--f); fill: var(--ink-2); }
.map .lbl-nb { font: 600 13px var(--f); fill: #a79c91; letter-spacing: .14em; }
.filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.chip {
  display: inline-flex; align-items: center; height: 44px; padding: 0 18px; border-radius: 14px;
  border: 0; background: var(--white); color: var(--ink-2); cursor: pointer; transition: background-color .2s, color .2s;
}
.chip:hover { background: var(--beige-2); color: var(--ink); }
.chip.is-active { background: var(--orange-ink); color: var(--white); }

/* LÖSUNGEN */
.solutions { padding: clamp(80px, 9vw, 140px) 0; }
.solutions__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(30px, 5vw, 80px); align-items: center; }
.solutions__title { font-size: clamp(2.2rem, min(4.4vw, 7.5vh), 4.2rem); }
.solutions__switch { color: var(--mute); display: block; white-space: nowrap; }
.solutions__left { align-self: center; }
.panels { display: grid; }
.panels > .panel { grid-area: 1 / 1; }
.tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: clamp(18px, 3.5vh, 34px) 0 clamp(18px, 3.5vh, 34px); }
.tabs button { height: 42px; padding: 0 16px; border-radius: 14px; border: 1px solid var(--line); background: transparent; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; }
.tabs button:hover { background: var(--beige-2); }
.tabs button[aria-selected="true"] { background: var(--orange-ink); border-color: var(--orange-ink); color: var(--white); }
.panel[hidden] { display: block; visibility: hidden; }
.panel__lead { font-size: clamp(1.25rem, min(1.8vw, 3vh), 1.7rem); line-height: 1.22; letter-spacing: -0.02em; margin-bottom: 14px; }
.panel > p:not(.panel__lead) { color: var(--ink-2); max-width: 56ch; }
.ticks { list-style: none; padding: 0; margin: clamp(14px, 2.5vh, 24px) 0 0; border-top: 1px solid var(--line); }
.ticks li { padding: clamp(8px, 1.4vh, 12px) 0 clamp(8px, 1.4vh, 12px) 30px; border-bottom: 1px solid var(--line); position: relative; }
.ticks li::before { content: ""; position: absolute; left: 2px; top: 50%; margin-top: -6px; width: 12px; height: 7px; border-left: 2px solid var(--orange); border-bottom: 2px solid var(--orange); transform: rotate(-45deg); }
.panel.is-entering { animation: panelIn .5s var(--ease); }
@keyframes panelIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.solutions__media { position: relative; aspect-ratio: 4 / 4.4; border-radius: var(--radius); overflow: hidden; background: var(--beige-2); }
.sol-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity .6s var(--ease), transform 1.2s var(--ease); }
.sol-img.is-active { opacity: 1; transform: none; }

/* PROJEKTE */
.projects { padding: clamp(80px, 9vw, 130px) 0; }
.slider__track--projects { gap: 24px; }
.proj { flex: 0 0 clamp(280px, 31vw, 440px); scroll-snap-align: start; }
.proj__img { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 5; background: var(--beige-2); }
.proj__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.proj:hover .proj__img img { transform: scale(1.04); }
.proj__tag { margin-top: 18px; font-size: .85rem; color: var(--orange-2); letter-spacing: .02em; }
.proj h3 { font-size: var(--fs-h3); font-weight: 400; letter-spacing: -0.015em; margin-top: 4px; line-height: 1.2; }
.proj__meta { color: var(--ink-2); font-size: .96rem; margin-top: 6px; }

/* WISSEN */
.knowledge { padding: clamp(80px, 9vw, 130px) 0; }
.knowledge__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
.note img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); }
.note__cat { margin-top: 18px; font-size: .85rem; color: var(--orange-2); letter-spacing: .02em; }
.note h3 { font-size: var(--fs-h3); font-weight: 400; line-height: 1.2; letter-spacing: -0.015em; margin-top: 4px; }
.note h3 + p { margin-top: 10px; color: var(--ink-2); max-width: 52ch; }

/* KONTAKT */
.contact { padding: 0 var(--gutter) clamp(20px, 3vw, 40px); }
.contact__card {
  position: relative; overflow: hidden; max-width: 1440px; margin: 0 auto;
  background: var(--green); color: var(--white); border-radius: var(--radius);
  padding: clamp(40px, 6vw, 90px) clamp(24px, 5vw, 80px);
}
.contact__lines { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--green-2); opacity: .7; pointer-events: none; }
.contact__grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 100px); align-items: start; }
.contact__title { font-size: clamp(2.4rem, 4.6vw, 4.4rem); line-height: 1.04; letter-spacing: -0.03em; }
.contact__text > p { margin-top: 24px; max-width: 46ch; color: rgba(255,255,255,.82); }
.contact__facts { list-style: none; margin: 40px 0 0; padding: 0; }
.contact__facts li { display: grid; grid-template-columns: 90px 1fr; padding: 12px 0; border-top: 1px solid rgba(255,255,255,.16); }
.contact__facts span { color: rgba(255,255,255,.6); font-size: .92rem; }
.contact__facts a { text-decoration: none; }
.contact__facts a:hover { text-decoration: underline; }
.form { background: var(--white); color: var(--ink); border-radius: 22px; padding: clamp(22px, 3vw, 36px); display: grid; gap: 16px; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form label { display: grid; gap: 6px; font-size: .9rem; color: var(--ink-2); }
.form .opt { color: var(--mute-text); }
.form input:not([type="checkbox"]), .form select, .form textarea {
  font: inherit; font-size: 1rem; color: var(--ink); background: var(--beige-2); border: 1px solid transparent; border-radius: 12px;
  padding: 12px 14px; width: 100%; transition: border-color .2s, background-color .2s;
}
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--orange); background: var(--white); }
.form textarea { resize: vertical; min-height: 90px; }
.form .check { display: flex; gap: 12px; align-items: flex-start; font-size: .88rem; line-height: 1.45; }
.form .check input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--orange); flex: none; }
.form .is-invalid { border-color: var(--orange-2) !important; }
.form__submit { justify-self: start; border: 0; }
.form__msg { font-size: .92rem; color: var(--green); min-height: 1.4em; }
.form__msg.is-error { color: var(--orange-2); }

/* FOOTER */
.footer { background: var(--green); color: var(--white); margin-top: -1px; padding: clamp(50px, 6vw, 80px) 0 30px; }
.contact + .footer { margin-top: 0; }
body { background: var(--bg); }
.footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 30px; }
.footer h3 { font-size: .9rem; font-weight: 500; color: rgba(255,255,255,.6); margin-bottom: 14px; }
.footer nav a { display: block; text-decoration: none; padding: 4px 0; }
.footer nav a:hover, .footer p a:hover { text-decoration: underline; }
.footer p { line-height: 1.7; margin-bottom: 12px; }
.footer p a { text-decoration: none; }
.logo--light { color: var(--white); }
.footer__bottom { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-top: 60px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.14); font-size: .88rem; color: rgba(255,255,255,.7); }
.footer__bottom a { margin-left: 22px; text-decoration: none; }
.footer__bottom a:hover { text-decoration: underline; }

/* Rechtsseiten */
.legal { padding: 150px 0 100px; }
.legal .wrap { max-width: 820px; }
.legal h1 { font-size: clamp(2.6rem, 5vw, 4rem); letter-spacing: -0.03em; line-height: 1.05; margin-bottom: 36px; }
.legal h2 { font-size: 1.4rem; margin: 36px 0 10px; letter-spacing: -0.01em; }
.legal p { margin-bottom: 12px; color: var(--ink-2); }
.legal .note-box { background: var(--beige); border-radius: 16px; padding: 18px 22px; margin-bottom: 30px; color: var(--ink); }

/* Responsive */
@media (max-width: 1180px) {
  .svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nav { display: none; }
  .burger { display: block; }
  .header__cta { margin-left: auto; }
  .header__cta + .burger { margin-left: 0; }
  .stats__grid { grid-template-columns: 1fr 1fr; }
  .stats__lead { grid-row: auto; grid-column: 1 / -1; min-height: 320px; }
  .knowledge__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .process__grid, .region__grid, .solutions__grid, .contact__grid { grid-template-columns: 1fr; }
  .solutions__media { aspect-ratio: 4 / 3; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .footer__grid > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .svc-grid { grid-template-columns: 1fr; }
  .svc { aspect-ratio: 4 / 3.4; }
  .steps { height: 440px; }
  .site-header { height: 72px; gap: 12px; }
  .header__cta { display: none; }
  .burger { margin-left: auto !important; }
  .stats__grid { grid-template-columns: 1fr; }
  .stat { min-height: 200px; }
  .knowledge__grid { grid-template-columns: 1fr; }
  .form__row { grid-template-columns: 1fr; }
  .section-head--split { flex-direction: column; align-items: flex-start; }
  .region__counts { gap: 18px; }
  .region__counts dd { font-size: 1.9rem; }
  .footer__bottom a { margin: 0 18px 0 0; }
  .hero__buttons .btn { height: 46px; padding: 0 20px; }
}


/* Vollbild-Sektionen: am Desktop passt jede Sektion auf einen Bildschirm */
@media (min-width: 901px) and (min-height: 560px) {
  :root { --pad-y: clamp(40px, 9vh, 110px); --pad-t: max(var(--pad-y), 96px); --pad-sum: calc(var(--pad-y) + var(--pad-t)); --fs-h2: clamp(2.2rem, min(5.2vw, 8.4vh), 4.7rem); }
  .screen {
    min-height: 100vh; min-height: 100svh; padding-top: var(--pad-t) !important; padding-bottom: var(--pad-y) !important;
    display: flex; flex-direction: column; justify-content: center;
  }
  .screen > * { width: 100%; }
  .section-head { padding-bottom: clamp(20px, 4.5vh, 56px); }

  .svc-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 20px); }
  .svc { padding: clamp(18px, 1.8vw, 26px); }
  .svc { aspect-ratio: auto; height: clamp(260px, calc(100svh - var(--pad-sum) - 8rem), 480px); }

  .stats__grid { height: min(calc(100svh - var(--pad-sum)), 720px); grid-template-rows: 1fr 1fr; }
  .stats__lead { min-height: 0; }
  .stat { min-height: 0; padding: clamp(20px, 3.4vh, 34px); }
  .stat__icon { top: clamp(18px, 3vh, 30px); right: clamp(18px, 3vh, 30px); }
  .stat__num { font-size: clamp(2.6rem, min(5vw, 8vh), 4.8rem); }

  .map svg { max-height: calc(100svh - var(--pad-sum) - 80px); width: auto; max-width: 100%; }

  .solutions__media { aspect-ratio: auto; height: min(calc(100svh - var(--pad-sum)), 720px); }

  .proj__img { aspect-ratio: auto; height: clamp(170px, calc(100svh - var(--pad-sum) - 18rem), 540px); }
  .proj { flex: none; width: calc(clamp(170px, calc(100svh - var(--pad-sum) - 18rem), 540px) * .8); }

  .note img { aspect-ratio: auto; height: clamp(160px, calc(100svh - var(--pad-sum) - 20rem), 440px); }
  .knowledge__grid { align-items: start; grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .contact { padding-left: var(--gutter); padding-right: var(--gutter); padding-top: clamp(16px, 3vh, 40px) !important; padding-bottom: clamp(16px, 3vh, 40px) !important; }
  .contact__card { padding: clamp(28px, 6vh, 80px) clamp(28px, 5vw, 80px); max-height: calc(100svh - 2 * clamp(16px, 3vh, 40px)); width: 100%; display: flex; align-items: center; }
  .contact__grid { width: 100%; align-items: center; }
  .contact__title { font-size: clamp(2.2rem, min(4.4vw, 7.5vh), 4.2rem); }
  .contact__facts { margin-top: clamp(18px, 4vh, 40px); }
  .contact__facts li { padding: clamp(6px, 1.2vh, 12px) 0; }
  .form { gap: clamp(8px, 1.6vh, 16px); padding: clamp(18px, 3vh, 34px); }
  .form input:not([type="checkbox"]), .form select, .form textarea { padding: clamp(8px, 1.2vh, 12px) 14px; }
  .form textarea { min-height: 0; }
  .form__msg:empty { display: none; }
}
@media (min-width: 901px) and (max-height: 760px) {
  .contact__text > p { display: none; }
  .panel > p:not(.panel__lead) { display: none; }
  .proj__tag { display: none; }
  .proj h3 { margin-top: 12px; }
  .note h3 + p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .form .opt { display: none; }
}


/* ---------- Menü: Leistungen als Aufklapper ---------- */
.nav { align-items: center; }
.nav__drop { position: relative; }
.nav__drop-btn { text-decoration: none; }
.nav a[aria-current="page"]::after { transform: scaleX(1); }
.drop {
  position: absolute; left: -24px; top: calc(100% + 18px); width: 360px; padding: 10px;
  background: var(--white); color: var(--ink); border-radius: 20px; box-shadow: 0 18px 50px rgba(20, 30, 25, .14);
  display: grid; gap: 2px; opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}
.drop::before { content: ""; position: absolute; left: 0; right: 0; top: -20px; height: 20px; }
.nav__drop:hover .drop { opacity: 1; visibility: visible; transform: none; }
.drop a { display: flex; gap: 14px; align-items: center; padding: 12px 14px; border-radius: 14px; text-decoration: none; opacity: 1; }
.drop a::after { display: none; }
.drop a:hover, .drop a[aria-current="page"] { background: var(--beige-2); }
.drop svg { width: 34px; height: 34px; flex: none; fill: none; stroke: var(--orange); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.drop span { display: flex; flex-direction: column; line-height: 1.25; font-size: 1rem; }
.drop small { color: var(--ink-2); font-size: .85rem; }
.mobile-nav a.mobile-nav__sub { font-size: 1.2rem; padding-left: 18px; color: var(--ink-2); }
a.svc { color: inherit; text-decoration: none; }

/* ---------- Leistungsseiten: Szene ---------- */
.scene { height: 100vh; height: 100svh; overflow: hidden; display: flex; align-items: center; }
.scene > .wrap { height: 100%; }
.scene__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(20px, 4vw, 60px); align-items: center; }
.scene__text { padding-top: 60px; }
.scene__kicker { font-size: clamp(1.8rem, 2.6vw, 2.4rem); letter-spacing: -0.02em; line-height: 1.1; }
.scene__nums { display: flex; gap: 8px; margin: 18px 0 clamp(20px, 4vh, 40px); }
.scene__num {
  width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line); background: transparent; cursor: pointer;
  font-size: .9rem; font-variant-numeric: tabular-nums; color: var(--ink-2); transition: background-color .3s var(--ease), color .3s, border-color .3s;
}
.scene__num.is-done { background: var(--beige-2); }
.scene__num.is-active { background: var(--ink); border-color: var(--ink); color: var(--white); }
.scene__steps { display: grid; }
.scene__step { grid-area: 1 / 1; opacity: 0; transform: translateY(14px); transition: opacity .45s var(--ease), transform .45s var(--ease); pointer-events: none; }
.scene__step.is-active { opacity: 1; transform: none; pointer-events: auto; }
.scene__step h3 { font-size: clamp(1.4rem, 2vw, 1.9rem); font-weight: 400; letter-spacing: -0.02em; line-height: 1.15; }
.scene__step p { margin-top: 12px; color: var(--ink-2); max-width: 44ch; }
.scene__art { height: 100%; display: flex; align-items: center; }
.scene__art svg { display: block; width: 100%; height: calc(100svh - 150px); max-height: 900px; overflow: hidden; }
.scene svg * { fill: none; stroke: #2b2927; stroke-width: calc(1.7 * var(--k, 1)); stroke-linecap: round; stroke-linejoin: round; }
.scene svg .t, .scene svg .t * { stroke-width: calc(1.15 * var(--k, 1)); }
.scene svg .w, .scene svg .w * { stroke: #fff; stroke-width: calc(2 * var(--k, 1)); }
.scene svg .o { stroke: var(--orange); stroke-width: 2; }
.scene svg .o-pulse { stroke: #ff7b4d; stroke-width: 4.5; stroke-dasharray: .02 .98; stroke-dashoffset: 1; opacity: 0; filter: drop-shadow(0 0 3px rgba(255, 140, 90, .8)); }
.scene svg .o-pulse.is-on { opacity: 1; animation: scenePulse 3.2s linear infinite; }
@keyframes scenePulse { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
.scene svg .lit { fill: #f7d9a8; stroke: none; }
.scene svg .glass { fill: #f6f2ec; stroke: none; }
.scene svg .night { fill: #2b3a4a; stroke: none; opacity: .09; }
.scene svg .lvl { fill: #f3b096; stroke: none; opacity: .8; }
.scene svg .dim, .scene svg .dim * { stroke: var(--orange); stroke-width: 1.3; stroke-dasharray: 8 7; }
.scene svg .spin { transform-box: fill-box; transform-origin: center; animation: sceneSpin 60s linear infinite; }
.scene svg .cloud > g { animation: cloudDrift var(--d, 9s) ease-in-out infinite alternate; }
@keyframes sceneSpin { to { transform: rotate(360deg); } }
@keyframes cloudDrift { from { transform: translateX(-14px); } to { transform: translateX(14px); } }
.scene svg .wind path { animation: windDrift 7s ease-in-out infinite alternate; }
@keyframes windDrift { from { transform: translateX(-10px); opacity: .55; } to { transform: translateX(12px); opacity: 1; } }
@keyframes windFlow { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .scene svg .spin, .scene svg .cloud > g, .scene svg .wind path, .scene svg .o-pulse.is-on { animation: none; } }

/* ---------- Leistungsseiten: Umfang, Text mit Bild, Abschluss ---------- */
.facts__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 6vw, 100px); align-items: center; }
.facts__intro { margin-top: 24px; color: var(--ink-2); font-size: 1.15rem; max-width: 36ch; }
.facts__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); counter-reset: f; }
.facts__list li { counter-increment: f; display: grid; grid-template-columns: 56px 1fr; padding: clamp(12px, 2.2vh, 20px) 0; border-bottom: 1px solid var(--line); font-size: 1.12rem; }
.facts__list li::before { content: counter(f, decimal-leading-zero); color: var(--orange-2); font-size: .9rem; padding-top: 3px; font-variant-numeric: tabular-nums; }
.textimg__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(30px, 6vw, 100px); align-items: center; }
.textimg img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); }
.textimg__text p { margin: 22px 0 32px; color: var(--ink-2); max-width: 48ch; }
.prefoot { padding: 0 var(--gutter) clamp(20px, 3vw, 40px); }
.prefoot__card {
  position: relative; overflow: hidden; max-width: 1440px; margin: 0 auto; background: var(--green); color: var(--white); border-radius: var(--radius);
  padding: clamp(50px, 8vw, 110px) clamp(24px, 5vw, 80px); display: flex; justify-content: space-between; align-items: center; gap: 30px; flex-wrap: wrap;
}
.prefoot__card > *:not(svg) { position: relative; }

/* ---------- Über uns ---------- */
.kicker { font-size: .9rem; letter-spacing: .08em; text-transform: uppercase; color: var(--orange-2); margin-bottom: 18px; }
.para { position: relative; height: 100vh; height: 100svh; overflow: hidden; display: grid; place-items: center; text-align: center; }
.para__text { position: relative; z-index: 2; padding: 0 var(--gutter); }
.para__title { font-size: var(--fs-h1); line-height: 1; letter-spacing: -0.03em; max-width: 11ch; margin: 0 auto; }
.para__text p { margin: 26px auto 0; max-width: 42ch; color: var(--ink-2); font-size: 1.1rem; }
.para__img { position: absolute; object-fit: cover; border-radius: var(--radius); z-index: 1; }
.para__img--1 { width: clamp(160px, 19vw, 300px); aspect-ratio: 4 / 3; left: 3vw; top: 18vh; }
.para__img--2 { width: clamp(140px, 16vw, 250px); aspect-ratio: 4 / 5; right: 4vw; top: 12vh; }
.para__img--3 { width: clamp(150px, 17vw, 270px); aspect-ratio: 4 / 5; left: 50%; margin-left: calc(clamp(150px, 17vw, 270px) / -2); bottom: -32vh; }
.mission__grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(30px, 6vw, 100px); align-items: center; }
.mission__text { hyphens: manual; font-size: clamp(2rem, min(4vw, 7vh), 3.8rem); line-height: 1.1; letter-spacing: -0.025em; max-width: 16ch; }
.mission img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); max-height: 70vh; }
.history__track { gap: 20px; align-items: stretch; }
.hist { flex: 0 0 clamp(260px, 24vw, 340px); scroll-snap-align: start; background: var(--beige-2); border-radius: var(--radius); padding: 26px; display: flex; flex-direction: column; }
.hist__year { font-size: 2.6rem; letter-spacing: -0.03em; line-height: 1; }
.hist h3 { font-size: 1.15rem; font-weight: 600; margin-top: 14px; }
.hist p { color: var(--ink-2); font-size: .98rem; margin-top: 6px; }
.hist img { margin-top: auto; padding-top: 18px; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 16px; box-sizing: content-box; }
.hist--intro { flex-basis: clamp(300px, 30vw, 440px); background: var(--beige); gap: 14px; justify-content: center; }
.hist--intro p { color: var(--ink); font-size: 1.05rem; margin: 0; }
.values { height: 100vh; height: 100svh; display: grid; place-items: center; text-align: center; background: var(--bg); }
.values__inner { padding: 0 var(--gutter); }
.values__bars { display: flex; gap: 5px; justify-content: center; margin-bottom: 26px; }
.values__bars span { width: 26px; height: 6px; border-radius: 3px; background: var(--line); transition: background-color .4s var(--ease); }
.values__bars span.is-on { background: var(--orange); }
.values__list { display: grid; margin-top: 26px; }
.value { grid-area: 1 / 1; max-width: 26ch; margin: 0 auto; font-size: clamp(1.4rem, 2.4vw, 2.2rem); line-height: 1.25; letter-spacing: -0.015em; opacity: 0; transform: translateY(16px); transition: opacity .5s var(--ease), transform .5s var(--ease); }
.value.is-active { opacity: 1; transform: none; }
.value em { font-style: normal; color: var(--orange-2); }
.team__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.member img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; border-radius: var(--radius); }
.member h3 { font-size: 1.3rem; font-weight: 400; margin-top: 14px; letter-spacing: -0.01em; }
.member p { color: var(--ink-2); font-size: .95rem; }

@media (min-width: 901px) and (min-height: 560px) {
  .team .member img { height: clamp(200px, calc(100svh - var(--pad-sum) - 13rem), 460px); aspect-ratio: auto; }
  .hist img { aspect-ratio: auto; height: clamp(100px, calc(100svh - var(--pad-sum) - 24rem), 260px); }
  .textimg img { aspect-ratio: auto; height: min(calc(100svh - var(--pad-sum)), 640px); }
}
@media (max-width: 1180px) {
  .nav__drop { display: none; }
}
@media (max-width: 900px) {
  .scene__grid { grid-template-columns: 1fr; grid-template-rows: 1fr auto; padding-bottom: 30px; }
  .scene__art { order: -1; min-height: 0; }
  .scene__art svg { height: 50svh; }
  .scene__text { padding-top: 0; }
  .facts__grid, .textimg__grid, .mission__grid { grid-template-columns: 1fr; }
  .team__grid { grid-template-columns: 1fr 1fr; }
  .para__img--1 { top: 12vh; } .para__img--2 { top: 8vh; }
  .mission img { aspect-ratio: 4 / 3; }
}


/* ---------- Seitenkopf der Unterseiten (ohne Video) ---------- */
.phead { min-height: 100vh; min-height: 100svh; display: flex; align-items: center; padding: 110px 0 clamp(40px, 7vh, 80px); }
.phead__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(30px, 5vw, 90px); align-items: center; }
.crumbs { display: flex; flex-wrap: wrap; gap: 10px; font-size: .92rem; color: var(--ink-2); margin-bottom: clamp(18px, 3.5vh, 34px); }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.crumbs span[aria-hidden] { color: var(--mute-text); }
.phead__title { font-size: clamp(3rem, min(6.4vw, 11vh), 6.6rem); line-height: 1; letter-spacing: -0.015em; max-width: 12ch; }
.phead__lead { margin-top: clamp(18px, 3vh, 28px); max-width: 48ch; color: var(--ink-2); font-size: 1.12rem; }
.phead__buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: clamp(22px, 4vh, 40px); }
.phead__media { position: relative; height: min(calc(100svh - 190px), 720px); min-height: 360px; }
.phead__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); }

/* ---------- Ablauf, Region, Projekte, Wissen ---------- */
.facts__list--time li { grid-template-columns: 56px 1fr auto; gap: 12px; align-items: baseline; }
.facts__list--time strong { font-weight: 400; color: var(--ink-2); font-size: 1rem; text-align: right; }
.places__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: 40px; border-top: 1px solid var(--line); }
.places__list li { display: flex; justify-content: space-between; align-items: baseline; padding: clamp(10px, 2vh, 16px) 0; border-bottom: 1px solid var(--line); font-size: 1.15rem; }
.places__list small { color: var(--ink-2); font-size: .95rem; }
.region__more { margin-top: clamp(22px, 4vh, 40px); }
.projgrid { padding: clamp(60px, 8vw, 110px) 0; }
.filters--left { justify-content: flex-start; margin-bottom: 36px; }
.projgrid .chip { background: var(--beige-2); }
.projgrid .chip.is-active { background: var(--orange-ink); color: var(--white); }
.projgrid__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 22px; }
.projgrid .proj__img { aspect-ratio: 4 / 5; height: auto; }
.projgrid .proj { width: auto; }
.projgrid .proj[hidden] { display: none; }
.knowledge--all { padding: clamp(60px, 8vw, 110px) 0; }
.knowledge__grid--all { gap: 50px 24px; }
.knowledge--all .note img { height: auto; aspect-ratio: 4 / 3; }

@media (max-width: 1180px) { .projgrid__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .phead { min-height: 0; padding-top: 100px; }
  .phead__grid { grid-template-columns: 1fr; }
  .phead__media { height: 60vw; min-height: 260px; }
  .places__list { grid-template-columns: 1fr; }
}
@media (max-width: 640px) { .projgrid__grid { grid-template-columns: 1fr; } .facts__list--time li { grid-template-columns: 40px 1fr; } .facts__list--time strong { grid-column: 2; text-align: left; } }


/* ---------- Team als Laufband ---------- */
.team__sub { margin-top: 14px; color: var(--ink-2); font-size: 1.1rem; }
.marquee { overflow: hidden; width: 100%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.marquee__track { --gap: 22px; display: flex; gap: var(--gap); width: max-content; animation: marquee 60s linear infinite; }
.marquee .member { flex: 0 0 clamp(200px, 17vw, 270px); }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(calc(-50% - var(--gap) / 2)); } }
@media (min-width: 901px) and (min-height: 560px) {
  .marquee .member img { height: clamp(220px, calc(100svh - var(--pad-sum) - 14.5rem), 400px); aspect-ratio: auto; }
}

/* ---------- Partnerleiste ---------- */
.partners__intro { max-width: 40ch; color: var(--ink-2); font-size: 1.1rem; }
.partners__marquee { margin-top: clamp(20px, 4vh, 50px); }
.partners__marquee--rev { margin-top: 0; }
.partners__marquee--rev .marquee__track { animation-direction: reverse; animation-duration: 55s; }
.partners__logos { --gap: clamp(60px, 7vw, 120px); list-style: none; margin: 0; padding: clamp(10px, 3vh, 30px) 0; animation-duration: 45s; }
.partners__logos li { flex: none; display: flex; align-items: center; }
.partners__logos svg { width: clamp(260px, 25vw, 380px); height: auto; filter: grayscale(1); opacity: .75; transition: filter .3s var(--ease), opacity .3s var(--ease); }
.partners__logos li:hover svg { filter: none; opacity: 1; }
.partners__note { margin-top: clamp(24px, 5vh, 50px); font-size: .85rem; color: var(--mute-text); }

/* ---------- Startseite: Kontakt-Verweis ---------- */
.cta-card {
  display: flex; flex-direction: column; gap: 22px; background: var(--white); color: var(--ink); border-radius: 22px;
  padding: clamp(24px, 3.4vw, 40px); text-decoration: none; transition: transform .3s var(--ease);
}
.cta-card:hover { transform: translateY(-4px); }
.cta-card__kicker { font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--orange-2); }
.cta-card ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.cta-card li { display: flex; gap: 14px; align-items: center; font-size: 1.2rem; letter-spacing: -0.01em; }
.cta-card b { width: 36px; height: 36px; border-radius: 50%; background: var(--beige-2); display: grid; place-items: center; font-weight: 500; font-size: .95rem; flex: none; }
.cta-card .btn { align-self: flex-start; }

/* ---------- Kontaktseite ---------- */
.kpage { position: relative; overflow: clip; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; padding: 108px 0 32px; }
.kstar { position: absolute; top: 50%; right: -30vw; width: min(78vw, 1100px); aspect-ratio: 1; margin-top: calc(min(78vw, 1100px) / -2); pointer-events: none; z-index: 0; transform: rotate(var(--kr, 0deg)); transition: transform 1.2s cubic-bezier(.65, 0, .35, 1); }
.kstar line { stroke: #ebe4dc; }
.kstar line.kstar__accent { stroke: #e6d2c6; }
.kpage__wrap { position: relative; max-width: calc(1100px + 2 * var(--gutter)); margin-left: max(0px, calc((100vw - 1440px) / 2)); margin-right: 0; }
.kpage__title { font-size: clamp(3.4rem, min(8vw, 13vh), 8rem); line-height: .95; letter-spacing: -0.045em; color: #8f867d; margin-top: 0; }
.kpage__addr { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 32px; margin: clamp(20px, 4vh, 36px) 0 0; }
.kpage__addr h2 { font-size: 1rem; font-weight: 600; margin-bottom: 4px; }
.kpage__addr p { color: var(--ink-2); line-height: 1.6; }
.kpage__addr a { text-decoration: none; }
.kpage__addr a:hover { text-decoration: underline; }
.kform { display: flex; flex-direction: column; gap: clamp(14px, 2.4vh, 22px); height: 100%; min-height: 0; }
.kq { border: 0; margin: 0; padding: 0; min-width: 0; }
.kq legend { font-size: clamp(1.3rem, 1.8vw, 1.55rem); letter-spacing: -0.015em; padding: 0; margin-bottom: 14px; }
.kq legend small, .kfield small { font-size: .78rem; color: var(--mute-text); margin-left: 6px; letter-spacing: 0; }
.kchips { display: flex; flex-wrap: wrap; gap: 8px; }
.kchip { position: relative; }
.kchip input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; pointer-events: none; }
.kchip span { display: inline-flex; align-items: center; height: 42px; padding: 0 18px; border-radius: 14px; background: var(--beige-2); cursor: pointer; transition: background-color .25s var(--ease), color .25s var(--ease), transform .25s var(--ease); }
.kchip:hover span { background: var(--beige); }
.kchip input:checked + span { background: var(--ink); color: var(--white); }
.kchip input:focus-visible + span { outline: 2px solid var(--orange); outline-offset: 3px; }
/* Rückfrage: fester Platz, darin wird nur überblendet, damit nichts verrutscht */
.kslot { display: grid; }
.kslot > * { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .35s var(--ease), transform .35s var(--ease), visibility .35s; }
.kslot > .is-active { opacity: 1; visibility: visible; transform: none; }
.kslot__hint { align-self: center; color: var(--mute-text); font-size: 1.05rem; padding: 14px 0; }
.kgrid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(12px, 2vh, 20px) 20px; }
.kfield { display: grid; gap: 8px; font-size: clamp(1rem, 1.2vw, 1.15rem); letter-spacing: -0.01em; }
.kfield--wide { grid-column: 1 / -1; }
.kfield input, .kfield select, .kfield textarea {
  font: inherit; font-size: 1rem; letter-spacing: 0; color: var(--ink); background: var(--beige-2); border: 1px solid transparent; border-radius: 18px;
  padding: 14px 18px; width: 100%; transition: border-color .2s, background-color .2s;
}
.kfield textarea { resize: none; min-height: 110px; height: clamp(110px, 22vh, 190px); }
.kfield[hidden] { display: none; }
.kfield input:focus, .kfield select:focus, .kfield textarea:focus { outline: none; border-color: var(--orange-2); background: var(--white); box-shadow: 0 0 0 3px rgba(193, 72, 32, .22); }
.kform .is-invalid, .kq.is-invalid .kchip span { border-color: var(--orange-2) !important; box-shadow: inset 0 0 0 1px var(--orange-2); }
.kcheck { display: flex; gap: 12px; align-items: flex-start; font-size: .95rem; color: var(--ink-2); max-width: 70ch; }
.kcheck input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--orange); flex: none; }
.kform__end { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.kform__end .btn { border: 0; }
.kform__msg { color: var(--green); }
.kform__msg.is-error { color: var(--orange-2); }
@media (max-width: 700px) {
  .kgrid, .kpage__addr { grid-template-columns: 1fr; }
  .kstar { opacity: .6; right: -60vw; }
}


/* ---------- Lösungen: Vorher/Nachher ---------- */
.ba { position: relative; overflow: hidden; }
.ba__layer { position: absolute; inset: 0; margin: 0; overflow: hidden; border-radius: var(--radius); }
.ba__layer img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ba:not(.ba--live) .ba__layer:not(:first-child) { display: none; }
.ba--live .ba__layer { visibility: hidden; }
.ba--live .ba__layer.is-shown { visibility: visible; }
.ba--live .ba__layer img { transform-origin: 50% 50%; }
.ba__label {
  position: absolute; left: clamp(16px, 2vw, 26px); top: clamp(16px, 2vw, 26px); pointer-events: none;
  padding: 8px 14px; border-radius: 12px; background: rgba(255, 255, 255, .9); color: var(--ink);
  font-size: .95rem; font-weight: 600; line-height: 1.2; letter-spacing: .01em;
}
.sol-img { display: none; }
.sol-pic { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity .6s var(--ease), transform 1.2s var(--ease); }
.sol-pic.is-active { opacity: 1; transform: none; }

/* ---------- Startseite: Über uns mit wachsender Kachel ---------- */
.btn--yellow { background: var(--white); color: var(--ink); }
.grow { position: relative; padding: clamp(60px, 8vw, 110px) 0; }
.grow__head { display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; align-items: end; margin-bottom: clamp(28px, 5vh, 56px); }
.grow__head p { color: var(--ink-2); font-size: 1.15rem; max-width: 42ch; }
.grow__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.grow__quote { position: relative; background: #e3d9c0; border-radius: var(--radius); padding: clamp(24px, 3vw, 40px); display: flex; flex-direction: column; overflow: hidden; min-height: 460px; }
.grow__qmark { width: 34px; color: var(--ink); }
.grow__line { position: absolute; left: 0; right: 0; top: 76px; width: 100%; height: 40px; color: rgba(31, 30, 30, .45); }
.grow__qtext { margin-top: auto; font-size: clamp(1.4rem, min(2.1vw, 3.6vh), 2.1rem); line-height: 1.25; letter-spacing: -0.015em; }
.grow__qname { margin-top: 28px; font-size: 1.1rem; }
.grow__qname span { color: var(--ink-2); font-size: .92rem; }
.grow__mid { display: grid; grid-template-rows: 1fr 1.25fr; gap: 22px; }
.grow__team { background: var(--green); color: var(--white); border-radius: var(--radius); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 26px; text-decoration: none; padding: 26px; }
.grow__avatars { display: flex; }
.grow__avatars img, .grow__avatars b { width: 66px; height: 66px; border-radius: 50%; object-fit: cover; border: 3px solid var(--green); margin-left: -14px; }
.grow__avatars img:first-child { margin-left: 0; }
.grow__avatars b { display: grid; place-items: center; background: var(--orange-ink); color: var(--white); font-weight: 600; font-size: 1.1rem; }
.grow__team:hover .btn__arrow { transform: translateX(3px); }
.grow__slot { border-radius: var(--radius); background: var(--beige-2); min-height: 220px; }
.grow__side { position: relative; margin: 0; border-radius: var(--radius); overflow: hidden; min-height: 460px; }
.grow__side img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.grow__side figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 60px 22px 20px; color: var(--white); font-size: 1rem; background: linear-gradient(180deg, transparent, rgba(10, 20, 17, .7)); }
.grow__big { position: relative; margin: 22px auto 0; width: calc(100% - 2 * var(--gutter)); max-width: calc(1440px - 2 * var(--gutter)); height: 70vh; border-radius: var(--radius); overflow: hidden; color: var(--white); }
.grow__big img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.grow__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 20, 17, .15), rgba(10, 20, 17, .55)); }
.grow__word { position: absolute; left: 0; right: 0; top: 6%; text-align: center; font-size: clamp(4rem, 15vw, 15rem); line-height: 1; font-weight: 400; letter-spacing: .06em; color: rgba(255, 255, 255, .92); }
.grow__cta { position: absolute; left: 50%; bottom: 9%; transform: translateX(-50%); width: min(860px, calc(100% - 2 * var(--gutter))); text-align: center; }
.grow__cta h2 { font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.08; letter-spacing: -0.025em; }
.grow__cta h2 span { display: block; }
.grow__cta p { margin: 16px auto 0; max-width: 52ch; color: rgba(255, 255, 255, .88); }
.grow__btns { display: flex; justify-content: center; gap: 12px; margin-top: 26px; flex-wrap: wrap; }
/* aktiv: Sektion füllt den Bildschirm, die große Kachel liegt als Ebene darüber */
.grow--live { height: 100vh; height: 100svh; padding: 0; display: flex; flex-direction: column; justify-content: center; padding-top: 70px; }
.grow--live .grow__head { margin-bottom: clamp(20px, 3.5vh, 40px); }
.grow--live .grow__grid { height: min(calc(100svh - 70px - 12rem), 620px); }
.grow--live .grow__quote, .grow--live .grow__side { min-height: 0; }
.grow--live .grow__slot { min-height: 0; }
.grow--live .grow__big { position: absolute; inset: 0; margin: 0; width: auto; max-width: none; height: auto; border-radius: 0; z-index: 6; pointer-events: none; }
.grow--live .grow__big.is-open { pointer-events: auto; }
@media (max-width: 900px) {
  .grow__head, .grow__grid { grid-template-columns: 1fr; }
  .grow__quote, .grow__side { min-height: 340px; }
  .grow__word { font-size: 18vw; }
}


/* ---------- Vollbild mit Info-Punkten ---------- */
.grow__frame { position: absolute; left: 0; top: 0; width: 100%; aspect-ratio: 2200 / 1238; transform-origin: 50% 50%; }
.grow__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.grow__shade { background: linear-gradient(180deg, rgba(10, 20, 17, .38) 0%, rgba(10, 20, 17, 0) 42%, rgba(10, 20, 17, 0) 70%, rgba(10, 20, 17, .35) 100%); pointer-events: none; }
.grow__over { position: absolute; inset: 0; padding: clamp(90px, 13vh, 130px) max(var(--gutter), 4vw) 0; pointer-events: none; display: grid; grid-template-columns: 1fr auto; align-content: start; gap: 0 40px; }
.grow__h { font-size: clamp(2.6rem, 4.8vw, 5rem); line-height: .98; letter-spacing: -0.035em; font-weight: 600; color: var(--white); text-shadow: 0 2px 24px rgba(0, 0, 0, .25); }
.grow__kick { font-size: clamp(1rem, 1.5vw, 1.35rem); letter-spacing: .08em; text-transform: uppercase; line-height: 1.5; color: var(--white); text-align: right; padding-top: 10px; text-shadow: 0 1px 12px rgba(0, 0, 0, .3); }
.grow__over .grow__btns { grid-column: 1; justify-content: flex-start; margin-top: clamp(22px, 4vh, 40px); pointer-events: auto; }
.btn--pill { background: #f4a58c; color: var(--ink); height: 62px; padding: 0 8px 0 28px; border-radius: 40px; font-size: 1.1rem; gap: 18px; }
.btn--pill:hover { background: #f19878; }
.btn__circle { width: 46px; height: 46px; border-radius: 50%; background: var(--ink); color: var(--white); display: grid; place-items: center; font-size: 1.2rem; transition: transform .2s var(--ease); }
.btn--pill:hover .btn__circle { transform: rotate(45deg); }
.grow__over .btn--white { height: 62px; border-radius: 40px; padding: 0 26px; }
.hs { position: absolute; width: 64px; height: 64px; margin: -32px 0 0 -32px; padding: 0; border: 0; background: none; cursor: pointer; z-index: 3; }
.hs__dot { position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 50% 50%, #fff 0 34%, rgba(255, 255, 255, .78) 36%, rgba(255, 255, 255, .35) 70%, rgba(255, 255, 255, .15) 100%); box-shadow: 0 6px 24px rgba(0, 0, 0, .2); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.hs__dot::before { content: ""; position: absolute; left: 50%; top: 50%; width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; border-radius: 50%; background: var(--ink); }
.hs__dot::after { content: ""; position: absolute; inset: -8px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .75); animation: hsPulse 2.2s var(--ease) infinite; }
@keyframes hsPulse { 0% { transform: scale(.7); opacity: .9; } 100% { transform: scale(1.45); opacity: 0; } }
.hs__box {
  position: absolute; right: calc(100% - 6px); bottom: calc(100% - 6px); width: 210px; padding: 14px 16px; border-radius: 16px;
  background: rgba(255, 255, 255, .94); color: var(--ink); font-size: .98rem; line-height: 1.3; text-align: left;
  box-shadow: 0 12px 34px rgba(0, 0, 0, .18); opacity: 0; transform: translateY(8px) scale(.96); transform-origin: bottom right;
  transition: opacity .25s var(--ease), transform .25s var(--ease); pointer-events: none;
}
.hs--right .hs__box { right: auto; left: calc(100% - 6px); transform-origin: bottom left; }
.hs:hover .hs__box, .hs:focus-visible .hs__box, .hs.is-open .hs__box { opacity: 1; transform: none; }
.hs:hover, .hs.is-open, .hs:focus-visible { z-index: 5; }
.grow__big:not(.is-open) .hs { pointer-events: none; }
.grow:not(.grow--live) .grow__big .hs { pointer-events: auto; }
.grow:not(.grow--live) .grow__over { padding-top: 40px; }
@media (max-width: 900px) {
  .grow__over { grid-template-columns: 1fr; }
  .grow__kick { display: none; }
  .hs { width: 48px; height: 48px; margin: -24px 0 0 -24px; }
  .hs__box { width: 170px; font-size: .9rem; }
}

/* ---------- Eigene Seitenköpfe (Ablauf, Region, Projekte, Wissen) ---------- */
.hx { padding: 120px 0 clamp(40px, 6vh, 80px); }
.hx__title { font-size: clamp(3rem, min(6vw, 10vh), 6.2rem); line-height: 1; letter-spacing: -0.015em; }
.hx__title--xl { font-size: clamp(4rem, min(9vw, 15vh), 9.5rem); line-height: .95; }
.hx__lead, .hx__side p { color: var(--ink-2); font-size: 1.12rem; max-width: 46ch; margin-top: 22px; }
.hx__side p { margin-top: 0; }
.hx__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.hx__top { display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(30px, 5vw, 90px); align-items: end; }
/* Ablauf: Bildband mit Zeitleiste */
.band { position: relative; margin: clamp(28px, 5vh, 56px) 0 0; border-radius: var(--radius); overflow: hidden; }
.band img { display: block; width: 100%; height: clamp(300px, calc(100svh - 470px), 560px); object-fit: cover; }
.band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 20, 17, 0) 45%, rgba(10, 20, 17, .72)); pointer-events: none; }
.band__steps { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; list-style: none; margin: 0; padding: 0 clamp(18px, 3vw, 40px) clamp(18px, 3vh, 30px); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; color: var(--white); }
.band__steps li { padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .45); font-size: clamp(.95rem, 1.2vw, 1.15rem); line-height: 1.25; }
.band__steps b { display: block; font-size: .8rem; color: #ffb49c; font-weight: 600; letter-spacing: .06em; margin-bottom: 6px; }
.band__line { position: absolute; z-index: 2; left: clamp(18px, 3vw, 40px); right: clamp(18px, 3vw, 40px); height: 3px; bottom: calc(clamp(18px, 3vh, 30px) + 2.9em + 16px); background: var(--orange); transform-origin: left; transform: scaleX(1); }
/* Region: Titelbild */
.hx--region { padding: 100px var(--gutter) clamp(16px, 3vh, 30px); }
.cover { position: relative; margin: 0 auto; max-width: 1440px; height: max(520px, calc(100svh - 130px)); border-radius: var(--radius); overflow: hidden; }
.cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 20, 17, .15) 20%, rgba(10, 20, 17, .75)); }
.cover__text { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: clamp(24px, 4vw, 60px); color: var(--white); }
.cover .hx__title span { display: block; color: rgba(255, 255, 255, .72); }
.cover__chip { display: inline-block; margin-bottom: 22px; padding: 8px 14px; border-radius: 12px; background: rgba(255, 255, 255, .16); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); font-size: .92rem; }
.cover__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; flex-wrap: wrap; margin-top: 26px; }
.cover__row p { max-width: 48ch; color: rgba(255, 255, 255, .88); font-size: 1.1rem; }
.cover__row .hx__btns { margin-top: 0; }
/* Projekte: Zahlen und Mosaik */
.nums { display: grid; grid-template-columns: repeat(3, auto); justify-content: end; gap: clamp(20px, 3vw, 50px); margin: 0; }
.nums dt { font-size: .9rem; color: var(--ink-2); }
.nums dd { margin: 4px 0 0; font-size: clamp(2.6rem, 4.4vw, 4.4rem); line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.hx--projekte .hx__top { grid-template-columns: 1.8fr 1fr; }
.mosaic { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 16px; height: clamp(280px, calc(100svh - 500px), 520px); margin-top: clamp(28px, 5vh, 56px); }
.mosaic img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); }
.mosaic__a { grid-row: 1 / 3; }
.mosaic__c { grid-column: 3; grid-row: 1 / 3; }
.mosaic__more { grid-column: 2; grid-row: 2; display: flex; align-items: flex-end; justify-content: space-between; padding: 22px; border-radius: var(--radius); background: var(--green); color: var(--white); text-decoration: none; font-size: 1.2rem; transition: background-color .2s var(--ease); }
.mosaic__more:hover { background: var(--green-2); }
/* Wissen: Inhaltsverzeichnis */
.hx--wissen { min-height: 100vh; min-height: 100svh; display: flex; align-items: center; }
.hx__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(30px, 6vw, 110px); align-items: center; }
.toc { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); counter-reset: none; }
.toc a { display: grid; grid-template-columns: 44px 1fr auto; gap: 14px; align-items: baseline; padding: clamp(14px, 2.4vh, 22px) 6px; border-bottom: 1px solid var(--line); text-decoration: none; font-size: clamp(1.1rem, 1.5vw, 1.4rem); letter-spacing: -0.01em; transition: background-color .2s var(--ease), padding .25s var(--ease); }
.toc a:hover { background: var(--beige-2); padding-left: 14px; }
.toc b { font-size: .85rem; color: var(--orange-2); font-weight: 600; }
.toc small { font-size: .85rem; color: var(--mute-text); }
.note { scroll-margin-top: 110px; }

/* ---------- Über uns: Geschichte nach dem Ablauf-Muster ---------- */
.hist2 { background: var(--beige-2); padding: clamp(80px, 10vh, 120px) 0 clamp(40px, 6vh, 70px); }
.hist2__head { display: flex; align-items: flex-end; gap: 32px; }
.hist2__head .h2 { flex: none; }
.hist2__bar { flex: 1; height: 2px; background: var(--line); margin-bottom: .7em; position: relative; }
.hist2__bar i { position: absolute; inset: 0 auto 0 0; width: calc(var(--p, 0) * 100%); background: var(--orange); }
.hist2__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 5vw, 96px); margin-top: clamp(20px, 4vh, 48px); }
.hist2__list { list-style: none; margin: 0; padding: 0; display: grid; align-content: start; }
.hist2__detail:not([hidden]) { display: flex; flex-direction: column; animation: panelIn .5s var(--ease) both; }
.hist2--live { height: 100vh; height: 100svh; padding-top: 100px; }

@media (max-width: 900px) {
  .hx__top, .hx__grid, .hist2__grid { grid-template-columns: 1fr; }
  .nums { justify-content: start; }
  .band__steps { grid-template-columns: 1fr 1fr; }
  .band__steps li:nth-child(n+5) { display: none; }
  .band__line { display: none; }
  .mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 220px 160px; height: auto; }
  .mosaic__a { grid-column: 1 / 3; grid-row: 1; }
  .mosaic__c { grid-column: 2; grid-row: 2; }
  .mosaic__b { grid-column: 1; grid-row: 2; }
  .mosaic__more { display: none; }
  .hist2__head .hist2__bar { display: none; }
  .hist2__list { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
}

@media (prefers-reduced-motion: reduce) { .hs__dot::after { animation: none; } }

@media (prefers-reduced-motion: reduce) {
  .marquee__track { animation: none !important; }
  .marquee { overflow-x: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}

/* ---------- Startseite Ablauf: nummerierte Zeilen statt Kacheln ---------- */
.process__wrap { display: flex; flex-direction: column; gap: clamp(18px, 3.4vh, 44px); }
.process__wrap .process__text { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; flex-wrap: wrap; }
.process__wrap .process__text h2 { max-width: 22ch; }
.srows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line, rgba(31, 30, 30, .14)); }
.srow { display: grid; grid-template-columns: clamp(40px, min(4.4vw, 6.4vh), 60px) minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(18px, 3vw, 48px); align-items: center; padding: clamp(6px, 1.7vh, 24px) 0; border-bottom: 1px solid var(--line, rgba(31, 30, 30, .14)); }
.srow__no { display: grid; place-items: center; width: clamp(40px, min(4.4vw, 6.4vh), 60px); aspect-ratio: 1; border-radius: 50%; background: var(--orange-ink); color: var(--white); font-weight: 600; font-size: clamp(1.05rem, 1.5vw, 1.35rem); font-variant-numeric: tabular-nums; }
.srow__t { margin: 0; font-size: clamp(1.3rem, min(2.4vw, 3.8vh), 2.3rem); font-weight: 600; line-height: 1.1; letter-spacing: -0.02em; }
.srow__x { margin: 0; color: var(--ink-2); font-size: clamp(.95rem, 1.1vw, 1.08rem); }
@media (max-width: 900px) {
  .srow { grid-template-columns: 44px minmax(0, 1fr); row-gap: 6px; align-items: start; }
  .srow__x { grid-column: 2; }
  .srow__no { width: 44px; }
}

/* ---------- Ruhige Seitenköpfe mit Kennzeile ---------- */
.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 clamp(18px, 3vh, 30px); font-size: .92rem; color: var(--ink-2); letter-spacing: .02em; }
.eyebrow i { width: 42px; height: 1px; background: currentColor; opacity: .5; }
.eyebrow span:first-child { color: var(--orange-ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.eyebrow a { color: var(--orange-ink); font-weight: 600; text-decoration: none; }
.eyebrow a:hover { text-decoration: underline; }
.hy { padding: clamp(120px, 17vh, 170px) 0 clamp(50px, 8vh, 100px); }
.hy--compact { padding-bottom: clamp(30px, 5vh, 60px); }
.hy__title { font-size: clamp(3rem, min(7vw, 11vh), 7.4rem); line-height: .98; letter-spacing: -0.03em; font-weight: 400; max-width: 16ch; }
.hy__title--m { font-size: clamp(2.6rem, min(4.6vw, 8vh), 4.8rem); }
.hy__title--xl { font-size: clamp(4rem, min(11vw, 17vh), 11rem); line-height: .9; }
.hy__title .mute { display: block; }
.hy__lead { color: var(--ink-2); font-size: 1.15rem; max-width: 46ch; margin: 22px 0 0; }
.hy__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; flex-wrap: wrap; margin-top: clamp(24px, 4vh, 44px); }
.hy__row p { color: var(--ink-2); font-size: 1.15rem; max-width: 52ch; margin: 0; flex: 1 1 280px; min-width: 0; }
.hy__row .hx__btns { margin-top: 0; }
.hy__split { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(30px, 6vw, 110px); }
.hy__split--end { align-items: end; }
.hy__split > .hy__lead { margin-top: 0; }
.hy--region .region__counts { margin-top: clamp(22px, 4vh, 40px); }
.hy--region .hx__btns { margin-top: clamp(22px, 4vh, 36px); }
.hy.hy--region { padding: clamp(100px, 13vh, 130px) 0 clamp(30px, 5vh, 60px); }

.tline { position: relative; list-style: none; margin: clamp(40px, 8vh, 90px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.tline::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 1px; background: rgba(31, 30, 30, .18); }
.tline__line { position: absolute; left: 0; right: 0; top: 6px; height: 3px; background: var(--orange); transform-origin: left; }
.tline li { position: relative; padding-top: 34px; }
.tline li i { position: absolute; top: 0; left: 0; width: 15px; height: 15px; border-radius: 50%; background: var(--bg); border: 2px solid var(--orange); z-index: 1; }
.tline small { display: block; font-size: .85rem; color: var(--ink-2); margin-bottom: 6px; }
.tline span { display: block; font-size: clamp(1.1rem, 1.6vw, 1.45rem); line-height: 1.2; letter-spacing: -0.01em; }
@media (max-width: 900px) {
  .hy__split { grid-template-columns: 1fr; }
  .tline { grid-template-columns: 1fr; gap: 0; }
  .tline::before, .tline__line { left: 7px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
  .tline__line { width: 3px; left: 6px; transform-origin: top; }
  .tline li { padding: 0 0 22px 34px; }
}

/* ---------- Wissen: Beitragsliste ---------- */
.posts { padding: 0 0 clamp(80px, 10vw, 140px); }
.posts__list { border-top: 1px solid rgba(31, 30, 30, .14); }
.post { display: grid; grid-template-columns: 60px 140px minmax(0, 1.2fr) minmax(0, 1fr) 40px; gap: clamp(16px, 2.5vw, 40px); align-items: baseline; padding: clamp(22px, 3.5vh, 34px) 0; border-bottom: 1px solid rgba(31, 30, 30, .14); color: inherit; text-decoration: none; transition: padding .4s var(--ease), background .4s var(--ease); }
.post__no { color: var(--ink-2); font-variant-numeric: tabular-nums; font-size: .95rem; }
.post__cat { color: var(--orange-ink); font-weight: 600; font-size: .95rem; }
.post__title { font-size: clamp(1.4rem, 2.3vw, 2.2rem); line-height: 1.12; letter-spacing: -0.02em; }
.post__teaser { color: var(--ink-2); font-size: 1rem; }
.post__arrow { font-size: 1.5rem; justify-self: end; transition: transform .4s var(--ease); }
.post:hover, .post:focus-visible { padding-left: 14px; padding-right: 14px; background: var(--beige); }
.post:hover .post__arrow, .post:focus-visible .post__arrow { transform: translateX(6px); color: var(--orange-ink); }
.post--small { grid-template-columns: 130px minmax(0, 1fr) 40px; }
@media (max-width: 900px) {
  .post { grid-template-columns: 1fr 30px; gap: 6px 12px; }
  .post__no { display: none; }
  .post__cat, .post__title, .post__teaser { grid-column: 1; }
  .post__arrow { grid-column: 2; grid-row: 1 / 4; align-self: center; }
  .post--small { grid-template-columns: 1fr 30px; }
}
.note__link { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .4s var(--ease); }
.note__link::after { content: ""; position: absolute; inset: 0; }
.note { position: relative; }
.note:hover .note__link { background-size: 100% 1px; }

/* ---------- Wissen: Artikelseite ---------- */
.art__head { padding-top: clamp(120px, 17vh, 170px); }
.art__title { font-size: clamp(2.6rem, min(5.6vw, 9vh), 5.8rem); line-height: 1; letter-spacing: -0.03em; font-weight: 400; max-width: 17ch; }
.art__meta { margin: 22px 0 0; color: var(--ink-2); }
.art__img { margin: clamp(30px, 5vh, 56px) 0 0; border-radius: var(--radius); overflow: hidden; }
.art__img img { display: block; width: 100%; height: clamp(300px, 62vh, 620px); object-fit: cover; }
.art__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); grid-template-areas: 'side lead' 'side body'; column-gap: clamp(30px, 6vw, 110px); row-gap: 10px; align-items: start; padding-top: clamp(50px, 8vh, 90px); padding-bottom: clamp(60px, 9vw, 120px); }
.art__grid > .art__lead { grid-area: lead; max-width: 68ch; }
.art__grid > .art__side { grid-area: side; }
.art__grid > .art__body { grid-area: body; }
.art__side { position: sticky; top: 110px; align-self: start; grid-row: 1 / 3; display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.art__box { background: var(--beige); border-radius: var(--radius); padding: 26px 28px; }
.art__boxtitle { margin: 0 0 14px; font-weight: 600; }
.art__box ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.art__box li { position: relative; padding-left: 22px; color: var(--ink-2); line-height: 1.45; }
.art__box li::before { content: ""; position: absolute; left: 0; top: .55em; width: 8px; height: 8px; border-radius: 50%; background: var(--orange); }
.art__body { max-width: 68ch; }
.art__lead { font-size: clamp(1.3rem, 1.8vw, 1.6rem); line-height: 1.4; letter-spacing: -0.01em; margin: 0 0 10px; }
.art__body h2 { font-size: clamp(1.45rem, 2vw, 1.9rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; margin: 44px 0 12px; }
.art__body p { color: var(--ink-2); font-size: 1.1rem; line-height: 1.65; margin: 0; }
.art__body blockquote { margin: 44px 0 0; padding: 4px 0 4px 26px; border-left: 3px solid var(--orange); font-size: clamp(1.35rem, 2vw, 1.8rem); line-height: 1.3; letter-spacing: -0.015em; }
.art__note { margin-top: 44px !important; padding-top: 22px; border-top: 1px solid rgba(31, 30, 30, .14); font-size: .95rem !important; }
.more { padding: clamp(60px, 8vw, 110px) 0; background: var(--beige); }
.more .post:hover, .more .post:focus-visible { background: var(--bg); }
.more__list { border-top: 1px solid rgba(31, 30, 30, .14); margin-top: 30px; }
@media (max-width: 900px) {
  .art__grid { grid-template-columns: 1fr; grid-template-areas: 'lead' 'side' 'body'; row-gap: 26px; padding-top: 34px; }
  .art__side { position: static; grid-row: auto; }
  .art__img img { height: min(56vw, 300px); }
  .art__head { padding-top: 110px; }
}
@media (min-width: 901px) and (max-height: 650px) {
  .srow { padding: 4px 0; }
  .srow__x { font-size: .92rem; line-height: 1.4; }
}

/* ---------- Leistungen-Menü ohne eigene Seite ---------- */
.nav__drop-btn { border: 0; background: none; padding: 0; font: inherit; font-size: .98rem; color: inherit; opacity: .92; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; position: relative; }
.nav__drop-btn svg { width: 11px; height: 8px; transition: transform .25s var(--ease); }
.nav__drop:hover .nav__drop-btn svg, .nav__drop.is-open .nav__drop-btn svg { transform: rotate(180deg); }
.nav__drop-btn[data-current]::after { content: ""; position: absolute; left: 0; right: 18px; bottom: -4px; height: 1px; background: currentColor; }
.nav__drop.is-open .drop { opacity: 1; visibility: visible; transform: none; }
.mobile-nav__label { margin: 0; padding: 6px 0 2px; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }

/* ---------- Seitenkopf nach Virya ---------- */
.shero { position: relative; background: var(--bg); }
.shero__band { text-align: center; padding: clamp(130px, 19vh, 190px) var(--gutter) clamp(34px, 6vh, 70px); }
.shero__title { font-size: clamp(2.8rem, min(6vw, 10vh), 6.4rem); line-height: 1; letter-spacing: -0.03em; font-weight: 400; margin: 0 auto; max-width: 20ch; text-wrap: balance; }
.shero__title span { color: var(--mute); }
.shero__media { max-width: 1200px; margin: 0 auto; border-radius: 28px; overflow: hidden; }
@media (max-width: 1279px) { .shero__media { margin: 0 var(--gutter); } }
.shero__media img { display: block; width: 100%; aspect-ratio: 1.7; height: auto; object-fit: cover; }
.shero__fan { display: none; }
.shero__desc { text-align: center; max-width: 62rem; margin: 0 auto; padding: clamp(60px, 9vw, 110px) var(--gutter) clamp(30px, 5vw, 60px); }
.shero__dtitle { font-size: clamp(1.9rem, min(3.6vw, 5.4vh), 3.4rem); line-height: 1.08; letter-spacing: -0.025em; font-weight: 400; }
.shero__desc p { max-width: 62ch; margin: 16px auto 0; color: var(--ink-2); }
.shero__btns { display: flex; justify-content: center; gap: 12px; margin-top: 22px; }
.shero.is-anim { height: 100vh; height: 100svh; }
.shero.is-anim .shero__stage { position: relative; height: 100%; overflow: hidden; }
.shero.is-anim .shero__band { position: absolute; left: 0; right: 0; top: 0; padding-bottom: 0; z-index: 2; }
.shero.is-anim .shero__media { position: absolute; inset: 0; margin: 0; max-width: none; border-radius: 0; z-index: 1; will-change: clip-path; }
.shero.is-anim .shero__media img { height: 100%; aspect-ratio: auto; }
.shero.is-anim .shero__fan { display: block; position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.shero__m { position: absolute; inset: 0; will-change: transform; }
.shero__fan img {
  position: absolute; width: var(--fan-w, 230px); height: calc(var(--fan-w, 230px) * 1.1);
  left: calc(50% - var(--fan-w, 230px) / 2); top: calc(var(--card-cy, 30vh) - var(--fan-w, 230px) * .55);
  object-fit: cover; border-radius: 22px; opacity: 0;
}
.shero.is-anim .shero__desc { position: absolute; left: 0; right: 0; top: var(--desc-top, 60%); padding-top: 0; padding-bottom: 0; z-index: 3; }

/* ---------- Karten mit animiertem Symbol ---------- */
.appr__title { text-align: center; }
.appr__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: clamp(30px, 5vh, 60px); }
.appr__card { position: relative; overflow: hidden; background: var(--white); border-radius: var(--radius); padding: 26px; min-height: clamp(300px, calc(100svh - var(--pad-sum, 200px) - 9rem), 460px); display: flex; flex-direction: column; justify-content: space-between; outline: none; isolation: isolate; }
.appr__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.08); transition: opacity .5s var(--ease), transform .8s var(--ease); z-index: -1; }
.appr__card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 20, 17, .2), rgba(10, 20, 17, .78)); opacity: 0; transition: opacity .5s var(--ease); z-index: -1; }
.appr__icon { width: 64px; height: 64px; fill: none; stroke: var(--orange); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: stroke .4s var(--ease); }
.appr__text h3 { font-size: clamp(1.3rem, 1.7vw, 1.6rem); font-weight: 600; letter-spacing: -0.015em; line-height: 1.15; transition: color .4s var(--ease); }
.appr__text p { margin-top: 10px; color: var(--ink-2); transition: color .4s var(--ease); }
.appr__card:hover .appr__img, .appr__card:focus-visible .appr__img { opacity: 1; transform: none; }
.appr__card:hover::after, .appr__card:focus-visible::after { opacity: 1; }
.appr__card:hover .appr__icon, .appr__card:focus-visible .appr__icon { stroke: var(--white); }
.appr__card:hover h3, .appr__card:focus-visible h3 { color: var(--white); }
.appr__card:hover p, .appr__card:focus-visible p { color: rgba(255, 255, 255, .88); }
.appr__card:focus-visible { box-shadow: 0 0 0 3px var(--orange); }
.ai-sun { animation: aiSun 3.2s ease-in-out infinite; }
.ai-sun path { transform-origin: 40px 22px; animation: aiSpin 8s linear infinite; }
@keyframes aiSun { 0%, 100% { transform: translateY(6px); } 50% { transform: translateY(-2px); } }
@keyframes aiSpin { to { transform: rotate(360deg); } }
.ai-draw { stroke-dasharray: 30; animation: aiDraw 3s ease-in-out infinite; }
.ai-check { stroke-dasharray: 24; animation: aiCheck 3s ease-in-out infinite; }
@keyframes aiDraw { 0% { stroke-dashoffset: 30; } 40%, 100% { stroke-dashoffset: 0; } }
@keyframes aiCheck { 0%, 45% { stroke-dashoffset: 24; } 70%, 100% { stroke-dashoffset: 0; } }
.ai-bolt { animation: aiBolt 1.8s ease-in-out infinite; transform-origin: 40px 40px; }
@keyframes aiBolt { 0%, 100% { opacity: .35; transform: scale(.92); } 50% { opacity: 1; transform: scale(1.05); } }
.ai-gear { transform-origin: 40px 40px; animation: aiGear 4s ease-in-out infinite; }
@keyframes aiGear { 0%, 60%, 100% { transform: rotate(0); } 70% { transform: rotate(-18deg); } 80% { transform: rotate(10deg); } 90% { transform: rotate(-6deg); } }
@media (prefers-reduced-motion: reduce) { .ai-sun, .ai-sun path, .ai-draw, .ai-check, .ai-bolt, .ai-gear { animation: none; stroke-dasharray: none; } }
@media (max-width: 1100px) { .appr__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .appr__card { min-height: 280px; } }
@media (max-width: 600px) { .appr__grid { grid-template-columns: 1fr; } }

/* ---------- Wissen: Kopf und klickbare Karten ---------- */
.whead { padding: clamp(130px, 18vh, 180px) 0 clamp(30px, 5vh, 60px); text-align: center; }
.whead__title { font-size: clamp(3.4rem, min(9vw, 14vh), 9rem); line-height: .92; letter-spacing: -0.035em; font-weight: 600; }
.whead__title .mute { font-weight: 400; }
.whead__lead { max-width: 52ch; margin: 22px auto 0; color: var(--ink-2); font-size: 1.12rem; }
.knowledge--all { padding-top: clamp(30px, 5vh, 60px); }
.note img { transition: transform .6s var(--ease); }
.note--link, .knowledge .note { cursor: pointer; }
.note > img { display: block; }
.note:has(.note__link) { border-radius: var(--radius); }
.note:has(.note__link) img { clip-path: inset(0 round var(--radius)); }
.note:hover img { transform: scale(1.02); }
.note__more { display: inline-flex; gap: 8px; margin-top: 14px; color: var(--orange-2); font-weight: 600; font-size: .95rem; }
.note:hover .note__more .btn__arrow { transform: translateX(4px); }
.note__more .btn__arrow { transition: transform .3s var(--ease); }

/* ---------- Über uns: Geschichte ---------- */
.hist2__list button { width: 100%; border: 0; border-bottom: 1px solid var(--line); background: none; cursor: pointer; text-align: left; padding: clamp(10px, 1.9vh, 18px) 0; display: grid; grid-template-columns: 4.2em minmax(0, 1fr); align-items: baseline; gap: 12px; color: var(--mute-text); font-size: clamp(1.15rem, 1.6vw, 1.5rem); letter-spacing: -0.015em; transition: color .25s var(--ease), padding .3s var(--ease); }
.hist2__list li:first-child button { border-top: 1px solid var(--line); }
.hist2__list b { font-weight: 600; font-variant-numeric: tabular-nums; color: inherit; }
.hist2__list button:hover { color: var(--ink); }
.hist2__list button[aria-pressed="true"] { color: var(--ink); padding-left: 12px; }
.hist2__list button[aria-pressed="true"] b { color: var(--orange-ink); }
.hist2__detail figure { position: relative; margin: 0; border-radius: var(--radius); overflow: hidden; }
.hist2__detail figure img { display: block; width: 100%; height: clamp(220px, calc(100svh - 500px), 520px); object-fit: cover; }
.hist2__detail figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 20, 17, 0) 50%, rgba(10, 20, 17, .55)); }
.hist2__detail figcaption { position: absolute; left: clamp(18px, 2.4vw, 32px); bottom: clamp(8px, 1.6vh, 18px); z-index: 1; color: var(--white); font-size: clamp(3.6rem, min(7vw, 11vh), 7rem); line-height: 1; font-weight: 600; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.hist2__copy { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(20px, 3vw, 50px); margin-top: clamp(16px, 3vh, 28px); }
.hist2__copy h3 { font-size: clamp(1.5rem, 2.2vw, 2.1rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.12; margin: 0; }
.hist2__copy p { margin: 0; color: var(--ink-2); font-size: 1.05rem; line-height: 1.55; }
.hist2__copy .hist2__fact { margin-top: 12px; display: inline-flex; align-items: center; gap: 10px; color: var(--ink); font-weight: 600; font-size: .95rem; }
.hist2__fact::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--orange); }
@media (max-width: 900px) {
  .hist2__list button, .hist2__list li:first-child button { display: inline-flex; width: auto; gap: 8px; white-space: nowrap; font-size: 1rem; border: 1px solid var(--line); border-radius: 14px; padding: 10px 14px; background: var(--white); }
  .hist2__list button[aria-pressed="true"] { background: var(--ink); color: var(--white); border-color: var(--ink); padding-left: 14px; }
  .hist2__copy { grid-template-columns: 1fr; }
  .hist2__detail figure img { height: 56vw; }
}
.art__back { display: inline-flex; gap: 8px; margin-bottom: clamp(18px, 3vh, 30px); color: var(--ink-2); text-decoration: none; font-size: .95rem; }
.art__back:hover { color: var(--orange-ink); }
.art__meta b { color: var(--orange-ink); font-weight: 600; }
.hist2__detail figure::after { display: none; }
.hist2__text { margin: clamp(16px, 3vh, 28px) 0 0; max-width: 58ch; font-size: clamp(1.1rem, 1.4vw, 1.3rem); line-height: 1.5; color: var(--ink-2); }

/* ---------- Ziehbare Reihen nach Virya (Karten und Galerie) ---------- */
.irow, .gal { padding: clamp(80px, 9vw, 130px) 0; overflow: hidden; }
.irow__title { text-align: center; }
.irow__track {
  display: flex; gap: 24px; overflow-x: auto; scrollbar-width: none; cursor: grab; user-select: none;
  padding: 0 max(var(--gutter), calc((100vw - 1440px) / 2 + var(--gutter))); margin-top: clamp(30px, 5vh, 60px);
  scroll-padding-inline: max(var(--gutter), calc((100vw - 1440px) / 2 + var(--gutter)));
}
.irow__track::-webkit-scrollbar { display: none; }
.irow__track.is-drag { cursor: grabbing; }
.irow__track:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
.irow__card { flex: none; width: clamp(280px, 30vw, 440px); min-height: clamp(260px, calc(100svh - var(--pad-sum, 200px) - 12rem), 400px); background: var(--beige); border-radius: 28px; padding: clamp(28px, 3vw, 44px); display: flex; flex-direction: column; justify-content: space-between; gap: 30px; }
.irow__card h3 { margin: 0; color: var(--mute-text); font-size: clamp(1.3rem, 1.8vw, 1.7rem); font-weight: 400; letter-spacing: -0.015em; line-height: 1.15; }
.irow__card p { margin: 0; font-size: clamp(1.15rem, 1.5vw, 1.4rem); line-height: 1.35; letter-spacing: -0.01em; color: var(--ink); }
.irow__bar { position: relative; height: 3px; margin-top: clamp(24px, 4vh, 40px); background: var(--line); border-radius: 3px; }
.irow__bar i { position: absolute; top: 0; bottom: 0; left: 0; width: 30%; background: var(--ink); border-radius: 3px; transform: translateX(var(--x, 0)); }
.gal__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; flex-wrap: wrap; }
.gal__head p { max-width: 44ch; color: var(--ink-2); margin: 0; }
.gal__track { gap: 32px; }
.gal__item { flex: none; margin: 0; }
.gal__item img { display: block; height: clamp(260px, calc(100svh - var(--pad-sum, 200px) - 12rem), 520px); width: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 28px; pointer-events: none; }
.gal__item:nth-child(3n+2) img { aspect-ratio: 4 / 5; }
.gal__item:nth-child(3n) img { aspect-ratio: 16 / 9; }
.gal__item figcaption { margin-top: 12px; color: var(--ink-2); font-size: .95rem; }
@media (max-width: 700px) { .irow__card { width: 78vw; min-height: 240px; } .gal__item img { height: 60vw; } }

/* ---------- Über uns: Einstieg auf kleinen Bildschirmen als Text mit Collage darunter ---------- */
.para__imgs { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
@media (max-width: 700px) {
  .para { height: auto; min-height: 0; display: flex; flex-direction: column; align-items: stretch; padding: 118px 0 clamp(40px, 8vw, 60px); overflow: visible; }
  .para__text { order: -1; }
  .para__title { max-width: 12ch; }
  .para__imgs { position: relative; inset: auto; height: min(92vw, 420px); margin: 34px var(--gutter) 0; }
  .para__img { height: auto; margin: 0; bottom: auto; object-fit: cover; }
  .para__img--1 { left: 0; top: 14%; width: 50%; aspect-ratio: 4 / 3; }
  .para__img--2 { right: 0; left: auto; top: 0; width: 40%; aspect-ratio: 4 / 5; }
  .para__img--3 { left: 30%; top: auto; bottom: 0; width: 38%; aspect-ratio: 4 / 5; margin-left: 0; }
  .marquee .member { flex: 0 0 min(62vw, 250px); }
}

/* Akzent auf dunkelgrünen Flächen: helles Orange, damit der Kontrast reicht */
.prefoot .accent, .contact__card .accent, .footer .accent { color: #ffb49c; }

/* ---------- Cookie-Hinweis (Muster) ---------- */
.consent { position: fixed; z-index: 90; left: max(16px, var(--gutter)); bottom: max(16px, var(--gutter)); width: min(440px, calc(100vw - 32px)); max-height: calc(100svh - 32px); overflow: auto; background: var(--white); color: var(--ink); border-radius: 24px; padding: 24px 24px 20px; box-shadow: 0 24px 60px rgba(20, 30, 25, .18); opacity: 0; transform: translateY(20px); transition: opacity .35s var(--ease), transform .35s var(--ease); }
.consent.is-in { opacity: 1; transform: none; }
.consent[hidden] { display: none; }
.consent__title { margin: 0 0 8px; font-size: 1.15rem; font-weight: 600; letter-spacing: -0.01em; }
.consent__text { margin: 0; font-size: .95rem; line-height: 1.5; color: var(--ink-2); }
.consent__text a { color: var(--orange-2); }
.consent__opts { display: grid; gap: 12px; margin: 18px 0 0; padding: 16px 0 0; border-top: 1px solid var(--line); }
.consent__opts[hidden] { display: none; }
.consent__opts label { display: flex; gap: 12px; align-items: flex-start; font-size: .92rem; color: var(--ink-2); }
.consent__opts input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--orange-ink); flex: none; }
.consent__opts b { display: block; color: var(--ink); font-weight: 600; }
.consent__btns { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 18px; }
.consent__btns .btn { border: 0; padding: 12px 18px; font-size: .95rem; }
.consent__more { border: 0; background: none; padding: 8px 4px; font: inherit; font-size: .95rem; color: var(--ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.footer__consent { border: 0; background: none; padding: 0; margin-left: 20px; font: inherit; color: inherit; opacity: .8; cursor: pointer; }
.footer__consent:hover { opacity: 1; text-decoration: underline; }
.shero__media img { object-position: 50% 78%; }

.irow__card { gap: 18px; }
.irow__img { display: block; width: 100%; flex: 1 1 auto; min-height: 90px; height: 0; object-fit: cover; border-radius: 18px; pointer-events: none; }

/* ---------- Kontakt: Dank nach dem Absenden ---------- */
.kform { transition: opacity .45s var(--ease), transform .45s var(--ease); }
.kform.is-leaving { opacity: 0; transform: translateY(-16px); }
.ksuccess { position: absolute; inset: 0; z-index: 1; padding: clamp(24px, 4vw, 48px); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; outline: none; }
.ksuccess[hidden] { display: none; }
.ksuccess__env { width: 170px; height: 142px; margin: 0 auto 6px; display: block; overflow: visible; }
.ksuccess .env-back { fill: #ddd6ce; }
.ksuccess .env-card rect { fill: var(--green); }
.ksuccess .env-check { fill: none; stroke: var(--white); stroke-width: 10; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.ksuccess .env-front { fill: #eae4dd; }
.ksuccess .env-fold { fill: none; stroke: #d6cec5; stroke-width: 2; }
.ksuccess__title { font-size: clamp(2.6rem, 4.6vw, 4.2rem); font-weight: 600; letter-spacing: -0.03em; line-height: 1; margin: 14px 0 12px; }
.ksuccess__text { color: var(--ink-2); font-size: 1.15rem; line-height: 1.5; margin: 0 auto; max-width: 34ch; }
.ksuccess__small { margin: 8px 0 0; color: var(--mute-text); }
.ksuccess__small a { color: var(--ink); }
.ksuccess__note { margin: 8px 0 12px; font-size: .85rem; color: var(--mute-text); }
.ksuccess .env-card { transform: translateY(36px); }
.ksuccess > :not(svg) { opacity: 0; transform: translateY(16px); }
.ksuccess__env { opacity: 0; transform: scale(.8); }
.ksuccess.is-in .ksuccess__env { animation: envIn .5s var(--ease) forwards; }
.ksuccess.is-in .env-card { animation: cardUp .7s cubic-bezier(.2, .8, .2, 1.15) .35s forwards; }
.ksuccess.is-in .env-check { animation: checkDraw .45s ease-out 1s forwards; }
.ksuccess.is-in > :not(svg) { animation: fadeUp .6s var(--ease) forwards; }
.ksuccess.is-in > .ksuccess__title { animation-delay: 1.15s; }
.ksuccess.is-in > .ksuccess__text { animation-delay: 1.3s; }
.ksuccess.is-in > .ksuccess__small { animation-delay: 1.4s; }
.ksuccess.is-in > .ksuccess__note { animation-delay: 1.5s; }
.ksuccess.is-in > .btn { animation-delay: 1.6s; }
@keyframes envIn { to { opacity: 1; transform: none; } }
@keyframes cardUp { to { transform: translateY(0); } }
@keyframes checkDraw { to { stroke-dashoffset: 0; } }
@keyframes fadeUp { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .ksuccess .env-card, .ksuccess > :not(svg), .ksuccess__env { opacity: 1; transform: none; }
  .ksuccess .env-check { stroke-dashoffset: 0; }
}

.art__source { margin-top: 14px !important; font-size: .9rem !important; color: var(--mute-text) !important; }
.art__source a { color: var(--ink-2); }

/* Formular und Dank teilen sich einen Bereich: das Formular wird nur unsichtbar, die Höhe bleibt */
.kform.is-gone, .kform.is-gone * { visibility: hidden !important; pointer-events: none; }

/* Was Sie davon haben: Foto füllt die Karte, Verlauf für lesbaren Text */
.irow__card:has(.irow__img) { position: relative; overflow: hidden; isolation: isolate; background: #2b2927; }
.irow__card:has(.irow__img) .irow__img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; border-radius: 0; z-index: -2; transition: transform .8s var(--ease); }
.irow__card:has(.irow__img)::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20, 22, 20, .7) 0%, rgba(20, 22, 20, .18) 34%, rgba(20, 22, 20, .22) 52%, rgba(20, 22, 20, .85) 100%); }
.irow__card:has(.irow__img) h3 { color: #fff; text-shadow: 0 1px 14px rgba(0, 0, 0, .35); }
.irow__card:has(.irow__img) p { color: #fff; text-shadow: 0 1px 12px rgba(0, 0, 0, .25); }
.irow__card:has(.irow__img):hover .irow__img { transform: scale(1.04); }

/* ---------- Kontakt als Karte mit drei Schritten ---------- */
.kpage__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(30px, 5vw, 90px); align-items: center; width: 100%; max-width: 1440px; margin: 0 auto; }
.kpage__wrap.kpage__grid { max-width: 1440px; margin-left: auto; margin-right: auto; }
.kpage__lead { margin: clamp(14px, 2.4vh, 24px) 0 0; max-width: 34ch; color: var(--ink-2); font-size: 1.1rem; line-height: 1.5; }
.kcard { position: relative; z-index: 1; background: var(--white); border-radius: 28px; padding: clamp(22px, 3vw, 40px); box-shadow: 0 30px 80px rgba(40, 30, 20, .08); height: min(680px, calc(100svh - 150px)); min-height: 520px; }
.ksteps__text { margin: 0; display: flex; gap: 12px; align-items: baseline; font-size: .92rem; }
.ksteps__text span:first-child { color: var(--orange-ink); font-weight: 600; }
.ksteps__text span:last-child { color: var(--mute-text); }
.ksteps__bar { position: relative; height: 3px; margin-top: 10px; border-radius: 3px; background: var(--line); overflow: hidden; }
.ksteps__bar i { position: absolute; inset: 0 auto 0 0; width: 33%; background: var(--orange-ink); border-radius: 3px; transition: width .5s var(--ease); }
.kstep { flex: 1 1 auto; min-height: 0; overflow: auto; display: flex; flex-direction: column; gap: clamp(14px, 2.6vh, 26px); padding: 4px 2px 2px; }
.kstep:not([hidden]) { animation: panelIn .45s var(--ease) both; }
.kstep[hidden] { display: none; }
.kstep .kq legend { font-size: clamp(1.25rem, 1.7vw, 1.5rem); }
.knav { display: flex; align-items: center; gap: 12px; padding-top: clamp(12px, 2vh, 18px); border-top: 1px solid var(--line); }
.knav .btn { border: 0; }
.knav .btn[hidden] { display: none; }
.knav .kform__msg { flex: 1; margin: 0; font-size: .92rem; }
.knav [data-knext], .knav [data-ksend] { margin-left: auto; }
.kcard .kform.is-gone { visibility: hidden; }
@media (max-width: 900px) {
  .kpage { min-height: 0; display: block; padding: 100px 0 40px; }
  .kpage__grid { grid-template-columns: 1fr; gap: 26px; }
  .kpage__addr { grid-template-columns: 1fr 1fr; gap: 18px; }
  .kcard { height: auto; min-height: min(640px, calc(100svh - 110px)); display: flex; }
  .kcard .kform { width: 100%; }
  .kgrid { grid-template-columns: 1fr; }
}
