/* TI Facility Management – Bau, Sanierung & Gebäudeservice für Gewerbe und Industrie
   Design: Petrol #336666 + Weiß (aus dem Logo) · Bebas Neue (Wortmarke) · Libre Baskerville (wie „MANAGEMENT“) · Manrope
   Leitmotiv: Bauzeichnung – Linien der Bildmarke zeichnen sich, Achsen, Maßketten, Laser-Nivellierlinie */

@font-face { font-family: "Bebas Neue"; src: url(../fonts/bebas-neue.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Manrope"; src: url(../fonts/manrope.woff2) format("woff2"); font-weight: 200 800; font-display: swap; }
@font-face { font-family: "Libre Baskerville"; src: url(../fonts/libre-baskerville.woff2) format("woff2"); font-weight: 400 700; font-display: swap; }

:root {
  --petrol: #336666; --petrol-d: #2A5656; --petrol-l: #4F8986; --petrol-xl: #9CC4C0; --petrol-50: #E6EFEE;
  --deep: #0E2627; --deep-2: #12302F; --deepest: #0A1D1E;
  --ink: #0F1E1F; --text: #33403F; --muted: #687978; --paper: #F2F6F5; --white: #fff;
  --line: rgba(15, 30, 31, .12); --line-2: rgba(15, 30, 31, .22);
  --line-l: rgba(255, 255, 255, .13); --line-l2: rgba(255, 255, 255, .26);
  --lg-mark: var(--petrol); --lg-div: var(--ink); --lg-ti: var(--petrol); --lg-sub: var(--ink);
  --ease: cubic-bezier(.2, .7, .1, 1);
  --ease-io: cubic-bezier(.65, 0, .25, 1);
  --gut: clamp(20px, 4.4vw, 64px);
  --hdr: 88px;
  --display: "Bebas Neue", "Arial Narrow", sans-serif;
  --serif: "Libre Baskerville", Georgia, serif;
  --sans: "Manrope", system-ui, -apple-system, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--white); -webkit-text-size-adjust: 100%; scroll-padding-top: 90px; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
body { margin: 0; background: var(--white); color: var(--text); font: 400 16.5px/1.75 var(--sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; overflow-x: clip; }
html { overflow-x: clip; }
img { max-width: 100%; height: auto; display: block; }
svg { display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0; font-weight: inherit; }
p { margin: 0 0 1em; }
figure { margin: 0; }
::selection { background: var(--petrol); color: #fff; }
:focus-visible { outline: 2px solid var(--petrol-l); outline-offset: 3px; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 300; background: var(--petrol); color: #fff; padding: 10px 16px; font-size: 14px; }
.skip:focus { top: 12px; }
.wrap { max-width: 1380px; margin: 0 auto; padding: 0 var(--gut); }
.ico { width: 18px; height: 18px; flex: none; }
.u { text-decoration: underline; text-decoration-color: var(--petrol-xl); text-underline-offset: 3px; transition: color .3s; }
.u:hover { color: var(--petrol); }
.muted { color: var(--muted); }

/* ---------- Typografie */
.eyebrow { display: flex; align-items: center; gap: 14px; margin: 0 0 22px; font: 400 11.5px/1.4 var(--serif); letter-spacing: .36em; text-transform: uppercase; color: var(--petrol); }
.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; flex: none; }
.eyebrow--light { color: var(--petrol-xl); }
.h1, .h2, .hero__display { font-family: var(--display); font-weight: 400; letter-spacing: .005em; color: var(--ink); }
.h1 { font-size: clamp(48px, 7vw, 112px); line-height: .9; }
.h2 { font-size: clamp(44px, 5.6vw, 88px); line-height: .93; }
.tc { color: var(--petrol); }
.tc-l { color: var(--petrol-xl); }
.lead { font-size: clamp(16.5px, 1.35vw, 19px); line-height: 1.7; max-width: 620px; margin: 0; }
.lead--light { color: rgba(255, 255, 255, .78); }
.sec--deep, .hero, .phero, .cta, .urgent, .ftr { color: rgba(255, 255, 255, .72); }
.sec--deep .h2, .hero .h1, .phero .h1, .cta .h2, .urgent .h2 { color: #fff; }

/* ---------- Buttons */
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 12px; height: 56px; padding: 0 28px; border: 1px solid transparent; font: 650 12.5px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; cursor: pointer; overflow: hidden; isolation: isolate; transition: color .55s var(--ease), border-color .55s var(--ease), background .55s var(--ease); background: transparent; }
.btn::before { content: ""; position: absolute; inset: 0; z-index: -1; transform: scaleX(0); transform-origin: right; transition: transform .7s var(--ease); }
.btn:hover::before { transform: scaleX(1); transform-origin: left; }
.btn .ico { width: 17px; height: 17px; }
.btn--solid { background: var(--petrol); color: #fff; }
.btn--solid::before { background: var(--deep); }
.btn--light { background: #fff; color: var(--ink); }
.btn--light::before { background: var(--petrol-50); }
.btn--ghost-light { border-color: var(--line-l2); color: #fff; }
.btn--ghost-light::before { background: rgba(255, 255, 255, .1); }
.btn--ghost { border-color: var(--line-2); color: var(--ink); }
.btn--ghost::before { background: var(--paper); }
.btn--sm { height: 44px; padding: 0 20px; font-size: 11.5px; }
.btns { display: flex; flex-wrap: wrap; gap: 12px; }
.arrow { display: inline-block; width: 22px; height: 1px; background: currentColor; position: relative; transition: width .6s var(--ease); flex: none; }
.arrow::after { content: ""; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); }
.btn:hover .arrow, .link:hover .arrow, a:hover > .arrow { width: 34px; }
.link { display: inline-flex; align-items: center; gap: 14px; font: 650 12.5px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--petrol); }
@media (max-width: 480px) { .btn { padding: 0 20px; letter-spacing: .08em; } }

/* ---------- Logo */
.logo { width: 100%; height: auto; }
.logo .lg-mark { fill: var(--lg-mark); } .logo .lg-div { fill: var(--lg-div); } .logo .lg-ti { fill: var(--lg-ti); } .logo .lg-sub { fill: var(--lg-sub); }
.logo--white { --lg-mark: #fff; --lg-div: rgba(255, 255, 255, .5); --lg-ti: #fff; --lg-sub: #fff; }

/* ---------- Preloader */
.pl { position: fixed; inset: 0; z-index: 200; background: #fff; display: none; place-items: center; clip-path: inset(0 0 0 0); }
.pl-on .pl { display: grid; }
.pl-on body { overflow: hidden; }
.pl__grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(51, 102, 102, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(51, 102, 102, .06) 1px, transparent 1px); background-size: 64px 64px; background-position: center; -webkit-mask-image: radial-gradient(ellipse at center, #000 10%, transparent 70%); mask-image: radial-gradient(ellipse at center, #000 10%, transparent 70%); opacity: 0; }
.pl__stage { position: relative; width: min(82vw, 760px); display: grid; justify-items: center; gap: clamp(26px, 4vw, 44px); }
.pl__logo { width: 100%; height: auto; overflow: visible; }
.pl__piece { fill: var(--petrol); fill-opacity: 0; stroke: var(--petrol); stroke-width: .7; stroke-dasharray: 1; stroke-dashoffset: 1; }
.pl__div { fill: var(--ink); transform-box: fill-box; transform-origin: center; transform: scaleY(0); }
.pl__ti { fill: var(--petrol); clip-path: inset(0 100% 0 0); }
.pl__letter { fill: var(--ink); opacity: 0; transform: translateY(6px); }
.pl__tag { margin: 0; padding-left: .5em; font: 400 clamp(9.5px, 1vw, 12px)/1 var(--serif); letter-spacing: .5em; text-transform: uppercase; color: var(--muted); opacity: 0; }
.pl__foot { position: absolute; left: var(--gut); right: var(--gut); bottom: clamp(28px, 6vh, 56px); display: flex; align-items: center; gap: 22px; font: 400 11px/1 var(--serif); letter-spacing: .3em; text-transform: uppercase; color: var(--muted); opacity: 0; }
.pl__count { font: 400 26px/1 var(--display); letter-spacing: .04em; color: var(--petrol); min-width: 44px; }
.pl__bar { flex: 1; height: 1px; background: var(--line); position: relative; overflow: hidden; }
.pl__bar i { position: absolute; inset: 0; background: var(--petrol); transform: scaleX(var(--p, 0)); transform-origin: left; }
.pl-run .pl__grid { animation: fadeIn 1.6s ease .1s forwards; }
.pl-run .pl__foot { animation: fadeIn 1s ease .2s forwards; }
.pl-run .pl__piece { animation: plDraw 1.5s var(--ease-io) calc(.25s + var(--i) * .07s) forwards, plFill 1s var(--ease) calc(1.55s + var(--i) * .05s) forwards; }
.pl-run .pl__div { animation: plDiv .9s var(--ease-io) 1.7s forwards; }
.pl-run .pl__ti { animation: plWipe 1.1s var(--ease-io) 2s forwards; }
.pl-run .pl__letter { animation: plLetter .8s var(--ease) calc(2.45s + var(--i) * .05s) forwards; }
.pl-run .pl__tag { animation: fadeIn 1.2s ease 2.95s forwards; }
.pl-out .pl { animation: plOut 1.1s var(--ease-io) forwards; }
.pl-out .pl__stage { animation: plStage 1s var(--ease-io) forwards; }
.pl-done .pl, .no-pl .pl { display: none; }
@keyframes plDraw { to { stroke-dashoffset: 0; } }
@keyframes plFill { to { fill-opacity: 1; stroke-opacity: 0; } }
@keyframes plDiv { to { transform: scaleY(1); } }
@keyframes plWipe { to { clip-path: inset(0 0 0 0); } }
@keyframes plLetter { to { opacity: 1; transform: none; } }
@keyframes plOut { to { clip-path: inset(0 0 100% 0); } }
@keyframes plStage { to { transform: translateY(-60px); opacity: 0; } }
@keyframes fadeIn { to { opacity: 1; } }

/* ---------- Header */
.hdr { position: fixed; inset: 0 0 auto; z-index: 100; height: var(--hdr); color: #fff; --lg-mark: #fff; --lg-div: rgba(255, 255, 255, .55); --lg-ti: #fff; --lg-sub: #fff; transition: background .5s var(--ease), color .5s var(--ease), transform .7s var(--ease), box-shadow .5s; }
.hdr__in { height: 100%; max-width: 1380px; margin: 0 auto; padding: 0 var(--gut); display: flex; align-items: center; gap: 28px; }
.hdr__logo { width: clamp(180px, 17vw, 236px); flex: none; margin-right: auto; }
.hdr .logo path { transition: fill .5s var(--ease); }
.hdr.is-solid { background: rgba(255, 255, 255, .97); color: var(--ink); box-shadow: 0 1px 0 var(--line); --lg-mark: var(--petrol); --lg-div: var(--ink); --lg-ti: var(--petrol); --lg-sub: var(--ink); }
.hdr.is-hidden { transform: translateY(-100%); }
.nav { display: flex; align-items: center; gap: 4px; height: 100%; }
.nav__link { position: relative; display: inline-flex; align-items: center; gap: 8px; height: 100%; padding: 0 14px; font: 600 14px/1 var(--sans); letter-spacing: .02em; }
.nav__link::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 28px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .5s var(--ease); }
.nav__link:hover::after, .nav__link.is-active::after { transform: scaleX(1); transform-origin: left; }
.chev { width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .4s var(--ease); }
.nav__mega { position: relative; height: 100%; display: flex; }
.mega { position: absolute; top: calc(100% - 14px); left: -40px; width: 720px; padding-top: 14px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .4s var(--ease), transform .5s var(--ease), visibility 0s .4s; }
.nav__mega:hover .mega, .nav__mega:focus-within .mega, .nav__mega.is-open .mega { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.nav__mega:hover .chev, .nav__mega.is-open .chev { transform: rotate(225deg) translateY(-1px); }
.mega__in { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; padding: 14px; background: #fff; color: var(--ink); box-shadow: 0 30px 60px -20px rgba(14, 38, 39, .35), 0 0 0 1px var(--line); }
.mega a { display: grid; grid-template-columns: 26px 40px 1fr; align-items: center; gap: 12px; padding: 16px 16px; transition: background .35s var(--ease); }
.mega a:hover, .mega a[aria-current] { background: var(--paper); }
.mega__num { font: 400 11px/1 var(--serif); color: var(--petrol); }
.mega__ico { width: 40px; height: 40px; padding: 9px; border: 1px solid var(--line); color: var(--petrol); transition: background .35s, color .35s, border-color .35s; }
.mega a:hover .mega__ico { background: var(--petrol); border-color: var(--petrol); color: #fff; }
.mega__txt b { display: block; font: 600 15px/1.3 var(--sans); }
.mega__txt small { display: block; font-size: 13px; color: var(--muted); line-height: 1.4; }
.hdr__tel { display: inline-flex; align-items: center; gap: 9px; font: 650 14px/1 var(--sans); letter-spacing: .02em; white-space: nowrap; }
.hdr__tel .ico { width: 16px; height: 16px; }
.hdr__cta { flex: none; }
.hdr:not(.is-solid) .hdr__cta { background: #fff; color: var(--ink); }
.hdr:not(.is-solid) .hdr__cta::before { background: var(--petrol-50); }
.burger { display: none; width: 46px; height: 46px; border: 0; background: none; cursor: pointer; position: relative; flex: none; margin-right: -10px; }
.burger span { position: absolute; left: 11px; right: 11px; height: 1.5px; background: currentColor; transition: transform .5s var(--ease), top .5s var(--ease); }
.burger span:first-child { top: 18px; } .burger span:last-child { top: 27px; }
.menu-open .burger span:first-child { top: 22.5px; transform: rotate(45deg); }
.menu-open .burger span:last-child { top: 22.5px; transform: rotate(-45deg); }
.menu-open .hdr { background: transparent; box-shadow: none; color: #fff; --lg-mark: #fff; --lg-div: rgba(255, 255, 255, .55); --lg-ti: #fff; --lg-sub: #fff; transform: none; }
.menu { position: fixed; inset: 0; z-index: 90; background: var(--deep); color: #fff; overflow-y: auto; clip-path: inset(0 0 100% 0); transition: clip-path .7s var(--ease-io); }
.menu-open .menu { clip-path: inset(0 0 0 0); }
.menu__in { min-height: 100%; padding: calc(var(--hdr) + 24px) var(--gut) 40px; display: flex; flex-direction: column; gap: 30px; }
.menu__svc a { display: flex; align-items: baseline; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--line-l); font: 400 clamp(30px, 8vw, 44px)/1 var(--display); letter-spacing: .01em; }
.menu__svc span { font: 400 11px/1 var(--serif); color: var(--petrol-xl); min-width: 22px; }
.menu__nav { display: flex; flex-wrap: wrap; gap: 8px 26px; }
.menu__nav a { font: 600 17px/1.6 var(--sans); }
.menu__foot { margin-top: auto; display: grid; gap: 16px; }
.menu__foot .btn { width: 100%; justify-content: space-between; }
.menu__tel { display: inline-flex; align-items: center; gap: 12px; font: 600 16px/1 var(--sans); color: rgba(255, 255, 255, .85); }
@media (max-width: 1180px) { .hdr__tel span { display: none; } .nav__link { padding: 0 11px; } }
@media (max-width: 1040px) { .nav, .hdr__tel { display: none; } .burger { display: block; } :root { --hdr: 76px; } }
@media (max-width: 560px) { .hdr__cta { display: none; } .hdr__logo { width: 178px; } }

/* ---------- Einblendungen */
.js .reveal { opacity: 0; transform: translateY(34px); transition: opacity 1.1s var(--ease), transform 1.3s var(--ease); }
.js .reveal.in { opacity: 1; transform: none; }
/* Bild-Reveal über eine Abdeckfläche (kein clip-path: der würde Lazy-Loading und IntersectionObserver blockieren) */
.reveal-img { position: relative; overflow: hidden; }
.js .reveal-img::after { content: ""; position: absolute; inset: 0; z-index: 2; background: var(--cover, #fff); transform-origin: top; transition: transform 1.5s var(--ease-io); }
.js .reveal-img.in::after { transform: scaleY(0); }
.js .reveal-img img { transform: scale(1.16); transition: transform 2.4s var(--ease); }
.js .reveal-img.in img { transform: none; }
.js .reveal-img > :not(img) { opacity: 0; transform: translateY(16px); transition: opacity 1s var(--ease) 1.1s, transform 1.2s var(--ease) 1.1s; }
.js .reveal-img.in > :not(img) { opacity: 1; transform: none; }
.js .hero-in { opacity: 0; transform: translateY(26px); transition: opacity 1.1s var(--ease), transform 1.3s var(--ease); transition-delay: calc(var(--d) * 110ms + 150ms); }
.is-ready .hero-in { opacity: 1; transform: none; }
.kb { transform: scale(1.12); transition: transform 16s cubic-bezier(.2, .5, .2, 1); }
.is-ready .kb { transform: scale(1); }

/* ---------- Bauzeichnung (Bildmarke als Plan) */
.bp { width: 100%; height: auto; overflow: visible; }
.bp text { font: 600 4.2px/1 var(--sans); fill: rgba(255, 255, 255, .5); text-anchor: middle; letter-spacing: .04em; }
.bp__piece { fill: none; stroke: rgba(255, 255, 255, .7); stroke-width: .34; stroke-dasharray: 1; stroke-dashoffset: 1; }
.bp__axis line { stroke: rgba(255, 255, 255, .17); stroke-width: .3; stroke-dasharray: 1; stroke-dashoffset: 1; }
.bp__axis circle { fill: none; stroke: rgba(255, 255, 255, .32); stroke-width: 1; vector-effect: non-scaling-stroke; opacity: 0; }
.bp__axis text { opacity: 0; font-size: 4.4px; }
.bp__dim line, .bp__ground { stroke: rgba(156, 196, 192, .6); stroke-width: .3; stroke-dasharray: 1; stroke-dashoffset: 1; }
.bp__tick { stroke: rgba(156, 196, 192, .8); stroke-width: 1; vector-effect: non-scaling-stroke; opacity: 0; }
.bp__dim text { fill: rgba(156, 196, 192, .85); opacity: 0; font-size: 3.6px; }
.bp__level path { fill: rgba(156, 196, 192, .8); } .bp__level text { text-anchor: start; fill: rgba(156, 196, 192, .85); font-size: 3.6px; }
.bp__level { opacity: 0; }
.bp__laser { opacity: 0; }
.bp__laser line { stroke: #8FE6DC; stroke-width: 1.2; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 2px rgba(143, 230, 220, .9)); }
.bp__laser circle { fill: #8FE6DC; }
.is-ready .bp__piece { animation: plDraw 3.4s var(--ease-io) calc(.5s + var(--i) * .13s) forwards; }
.is-ready .bp__axis line { animation: plDraw 2.6s var(--ease-io) calc(.2s + var(--i) * .2s) forwards; }
.is-ready .bp__axis circle, .is-ready .bp__axis text { animation: fadeIn 1s ease calc(1.6s + var(--i) * .2s) forwards; }
.is-ready .bp__dim line, .is-ready .bp__ground { animation: plDraw 2.4s var(--ease-io) 1.2s forwards; }
.is-ready .bp__tick, .is-ready .bp__dim text, .is-ready .bp__level { animation: fadeIn 1s ease 2.8s forwards; }
.is-ready .bp__laser { animation: fadeIn 1.4s ease 3.6s forwards; }
.is-ready .bp__laser line, .is-ready .bp__laser circle { animation: laser 11s var(--ease-io) 3.6s infinite; }
@keyframes laser { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-131px); } }

/* ---------- Hero (Start) */
.hero { position: relative; min-height: max(680px, 100svh); background: var(--deep); display: flex; flex-direction: column; overflow: hidden; isolation: isolate; }
.hero__bg, .phero__bg { position: absolute; inset: 0; z-index: -3; overflow: hidden; }
.hero__bg img, .phero__bg img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.5) contrast(1.08) brightness(.85); }
.hero__bg::after, .phero__bg::after { content: ""; position: absolute; inset: 0; background: var(--petrol); mix-blend-mode: color; opacity: .65; }
.hero__shade, .phero__shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(14, 38, 39, .97) 0%, rgba(14, 38, 39, .88) 34%, rgba(14, 38, 39, .6) 66%, rgba(14, 38, 39, .5) 100%), linear-gradient(0deg, rgba(10, 29, 30, .85) 0%, transparent 34%); }
.hero__grid { position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px); background-size: 76px 76px; animation: gridDrift 60s linear infinite; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 45%, #000 100%); mask-image: linear-gradient(90deg, transparent 0%, #000 45%, #000 100%); }
@keyframes gridDrift { to { background-position: 76px 76px; } }
.hero__bp { position: absolute; z-index: -1; right: clamp(-40px, -1vw, 0px); top: 52%; width: min(50vw, 820px); transform: translateY(-50%); pointer-events: none; }
.hero__in { position: relative; flex: 1; display: flex; flex-direction: column; justify-content: center; padding-top: calc(var(--hdr) + 28px); padding-bottom: 44px; width: 100%; }
.hero__title { display: block; margin: 0 0 26px; }
.hero__kicker { display: block; max-width: 760px; margin-bottom: 18px; font: 600 clamp(14px, 1.15vw, 16px)/1.5 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: #fff; }
.hero__display { display: block; font-size: clamp(66px, min(10.6vw, 17.5vh), 184px); line-height: .86; color: #fff; }
.hero__line { display: block; overflow: hidden; padding-bottom: .02em; }
.hero__line > span { display: inline-block; transform: translateY(105%); transition: transform 1.4s var(--ease); transition-delay: calc(var(--d) * 120ms + 150ms); }
.is-ready .hero__line > span { transform: none; }
.no-js .hero__line > span, html:not(.js) .hero__line > span { transform: none; }
.hero .lead { margin-bottom: 34px; max-width: 640px; }
.hero__facts { position: relative; border-top: 1px solid var(--line-l); }
.hero__facts-in { display: grid; grid-template-columns: repeat(3, 1fr) auto; gap: 30px; padding-top: 26px; padding-bottom: 30px; }
.hero__facts p { margin: 0; display: grid; gap: 4px; }
.hero__facts strong { font: 400 clamp(28px, 2.6vw, 38px)/1 var(--display); color: #fff; letter-spacing: .02em; font-weight: 400; }
.hero__facts span { font-size: 13.5px; line-height: 1.45; color: rgba(255, 255, 255, .62); max-width: 230px; }
.hero__scroll { display: flex; align-items: center; gap: 14px; align-self: center; font: 400 10.5px/1 var(--serif); letter-spacing: .32em; text-transform: uppercase; color: rgba(255, 255, 255, .6); }
.hero__scroll i { width: 1px; height: 46px; background: var(--line-l2); position: relative; overflow: hidden; }
.hero__scroll i::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 40%; background: #fff; animation: scrollCue 2.6s var(--ease-io) infinite; }
@keyframes scrollCue { 0% { transform: translateY(-100%); } 100% { transform: translateY(260%); } }
@media (max-width: 900px) {
  .hero__bp { right: -26%; top: calc(var(--hdr) + 10px); width: 108vw; transform: none; opacity: .32; }
  .hero__facts-in { grid-template-columns: 1fr 1fr 1fr; gap: 18px; }
  .hero__scroll { display: none; }
  .hero__facts span { font-size: 12px; }
}
@media (max-width: 560px) {
  .hero__facts-in { grid-template-columns: 1fr 1fr; }
  .hero__facts p:last-of-type { grid-column: 1 / -1; }
  .hero__shade { background: linear-gradient(180deg, rgba(14, 38, 39, .7) 0%, rgba(14, 38, 39, .92) 45%, rgba(10, 29, 30, .97) 100%); }
}

/* ---------- Ticker */
.ticker { background: var(--petrol); color: #fff; overflow: hidden; padding: 20px 0; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.ticker__track { display: flex; align-items: center; gap: 34px; width: max-content; animation: ticker 70s linear infinite; }
.ticker span { font: 400 clamp(26px, 2.6vw, 36px)/1 var(--display); letter-spacing: .03em; white-space: nowrap; }
.ticker span:nth-of-type(even) { color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .75); }
.ticker i { font: 300 26px/1 var(--sans); font-style: normal; color: var(--petrol-xl); }
@keyframes ticker { to { transform: translateX(-50%); } }

/* ---------- Sektionen */
.sec { position: relative; padding: clamp(90px, 10.5vw, 160px) 0; }
.sec--paper { background: var(--paper); }
.sec--deep { background: var(--deep); overflow: hidden; }
.sec__head { margin-bottom: clamp(46px, 5.6vw, 80px); max-width: 920px; }
.sec__head--row { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px 60px; max-width: none; }
.sec__lead { max-width: 450px; margin: 0; color: var(--muted); }
@media (max-width: 900px) { .sec__head--row { flex-direction: column; align-items: flex-start; } }

/* ---------- Leistungen (Liste) */
.svc-list { border-top: 1px solid var(--line); }
.svc { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr) minmax(0, 1.05fr) 58px; align-items: center; gap: 30px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.svc::before { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--petrol); transform: scaleX(0); transform-origin: right; transition: transform .8s var(--ease); }
.svc:hover::before { transform: scaleX(1); transform-origin: left; }
.svc__num { font: 400 12px/1 var(--serif); letter-spacing: .1em; color: var(--petrol); }
.svc__thumb { display: none; }
.svc__title { font: 400 clamp(36px, 4.3vw, 66px)/.95 var(--display); color: var(--ink); letter-spacing: .005em; transition: transform .8s var(--ease), color .5s; }
.svc:hover .svc__title { transform: translateX(14px); color: var(--petrol); }
.svc__text { font-size: 15.5px; line-height: 1.65; color: var(--muted); max-width: 470px; }
.svc__go { width: 58px; height: 58px; border: 1px solid var(--line-2); border-radius: 50%; display: grid; place-items: center; color: var(--ink); transition: background .5s var(--ease), color .5s, border-color .5s; }
.svc__go .arrow { width: 16px; }
.svc:hover .svc__go { background: var(--petrol); border-color: var(--petrol); color: #fff; }
.svc-preview { position: fixed; left: 0; top: 0; z-index: 60; width: 300px; height: 210px; pointer-events: none; overflow: hidden; clip-path: inset(50% 0 50% 0); transition: clip-path .6s var(--ease-io); will-change: transform; }
.svc-preview img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.15); transition: transform .9s var(--ease); }
.svc-preview.is-on { clip-path: inset(0 0 0 0); }
.svc-preview.is-on img { transform: none; }
@media (hover: none), (max-width: 900px) { .svc-preview { display: none; } }
@media (max-width: 900px) {
  .svc { grid-template-columns: 96px minmax(0, 1fr) 46px; grid-template-areas: "thumb num go" "thumb title go" "text text text"; gap: 6px 18px; padding: 26px 0; }
  .svc__thumb { display: block; grid-area: thumb; width: 96px; height: 96px; overflow: hidden; align-self: start; }
  .svc__thumb img { width: 100%; height: 100%; object-fit: cover; }
  .svc__num { grid-area: num; align-self: end; }
  .svc__title { grid-area: title; font-size: clamp(30px, 7.6vw, 42px); align-self: start; }
  .svc__text { grid-area: text; margin-top: 14px; font-size: 15px; }
  .svc__go { grid-area: go; width: 46px; height: 46px; align-self: center; }
}

/* ---------- Unternehmen */
.about__grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 120px); align-items: center; }
.about__img { position: relative; }
.about__img img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(.25); }
.about { --cover: var(--paper); }
.about__badge { position: absolute; z-index: 3; left: 24px; bottom: 24px; display: flex; align-items: center; gap: 16px; padding: 20px 26px 20px 20px; background: #fff; color: var(--ink); box-shadow: 0 30px 60px -30px rgba(14, 38, 39, .45); }
.about__badge .mk { width: 46px; height: 46px; color: var(--petrol); flex: none; }
.about__badge b { display: block; font: 400 26px/1 var(--display); letter-spacing: .02em; font-weight: 400; }
.about__badge span { font-size: 13.5px; line-height: 1.4; color: var(--muted); }
.about__lead { font: 500 clamp(18px, 1.55vw, 21px)/1.6 var(--sans); color: var(--ink); }
.about__text .h2 { margin-bottom: 34px; }
.about__sign { margin-top: 34px; padding-top: 26px; border-top: 1px solid var(--line); display: grid; gap: 6px; }
.about__name { font: 400 24px/1.2 var(--serif); color: var(--ink); }
.about__role { font: 400 11px/1.4 var(--serif); letter-spacing: .3em; text-transform: uppercase; color: var(--muted); }
@media (max-width: 900px) { .about__grid { grid-template-columns: 1fr; } .about__badge { left: 16px; bottom: 16px; padding: 16px 20px 16px 16px; } }

/* ---------- Vorteile */
.why__bp { position: absolute; left: -8vw; bottom: -12vw; width: 52vw; color: #fff; opacity: .035; pointer-events: none; }
.why__bp svg { width: 100%; height: auto; }
.why__grid { position: relative; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(40px, 8vw, 130px); align-items: start; }
.why__head { position: sticky; top: 130px; }
.why__head .h2 { margin-bottom: 26px; }
.why__lead { margin-bottom: 36px; max-width: 440px; }
.why__list li { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: 10px; padding: 30px 0 32px; }
.why__list li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--line-l); transform: scaleX(0); transform-origin: left; transition: transform 1.4s var(--ease-io) .1s; }
.why__list li.in::before { transform: none; }
.why__n { font: 400 22px/1.2 var(--display); letter-spacing: .04em; color: var(--petrol-xl); }
.why__list h3 { font: 650 clamp(18px, 1.5vw, 21px)/1.35 var(--sans); color: #fff; margin-bottom: 8px; }
.why__list p { margin: 0; font-size: 15.5px; color: rgba(255, 255, 255, .62); max-width: 520px; }
@media (max-width: 900px) { .why__grid { grid-template-columns: 1fr; } .why__head { position: static; } .why__list li { grid-template-columns: 48px 1fr; } }

/* ---------- Branchen */
.br__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 1.6vw, 24px); }
.br__img { overflow: hidden; aspect-ratio: 3 / 4; background: var(--deep); }
.br__img img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.3); transition: transform 1.4s var(--ease), filter .8s; }
.br:hover .br__img img { transform: scale(1.06); filter: grayscale(0); }
.br__body { padding-top: 24px; }
.br__n { font: 400 11.5px/1 var(--serif); color: var(--petrol); letter-spacing: .1em; }
.br h3 { margin: 12px 0 12px; font: 400 clamp(26px, 2.2vw, 32px)/1 var(--display); color: var(--ink); letter-spacing: .01em; }
.br p { margin: 0; font-size: 15px; color: var(--muted); }
.br.reveal:nth-child(2) { transition-delay: .1s; } .br.reveal:nth-child(3) { transition-delay: .2s; } .br.reveal:nth-child(4) { transition-delay: .3s; }
.br__clients { margin: clamp(56px, 6vw, 80px) 0 0; padding-top: 28px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 24px; font: 600 15px/1.6 var(--sans); color: var(--ink); }
.br__clients span { font: 400 11px/1 var(--serif); letter-spacing: .3em; text-transform: uppercase; color: var(--petrol); }
@media (max-width: 1100px) { .br__grid { grid-template-columns: 1fr 1fr; row-gap: 46px; } .br__img { aspect-ratio: 4 / 3; } }
@media (max-width: 600px) { .br__grid { grid-template-columns: 1fr; } }

/* ---------- Ablauf */
.steps__line { position: relative; height: 22px; margin-bottom: 44px; }
.steps__line span { position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: var(--petrol); transform: scaleX(0); transform-origin: left; transition: transform 2.2s var(--ease-io) .2s; }
.steps__line i { position: absolute; top: 0; left: calc(var(--p) * 25% + var(--p) * 10px); width: 1px; height: 22px; background: var(--petrol); opacity: 0; transition: opacity .6s ease calc(.5s + var(--p) * .45s); }
.steps__line i::after { content: ""; position: absolute; left: -4px; top: 7px; width: 9px; height: 9px; border-radius: 50%; background: var(--paper); border: 1px solid var(--petrol); }
.steps__line.in span { transform: scaleX(1); }
.steps__line.in i { opacity: 1; }
.steps__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; counter-reset: s; }
.steps__n { display: block; margin-bottom: 18px; font: 400 clamp(64px, 6vw, 92px)/.9 var(--display); color: transparent; -webkit-text-stroke: 1px var(--petrol); }
.steps__grid h3 { margin-bottom: 12px; font: 650 19px/1.35 var(--sans); color: var(--ink); }
.steps__grid p { margin: 0; font-size: 15.5px; color: var(--muted); }
.steps__grid li.reveal:nth-child(2) { transition-delay: .12s; } .steps__grid li.reveal:nth-child(3) { transition-delay: .24s; } .steps__grid li.reveal:nth-child(4) { transition-delay: .36s; }
@media (max-width: 1000px) { .steps__grid { grid-template-columns: 1fr 1fr; row-gap: 50px; } .steps__line { display: none; } }
@media (max-width: 560px) { .steps__grid { grid-template-columns: 1fr; } .steps__grid li { padding-left: 24px; border-left: 1px solid var(--petrol); } .steps__n { font-size: 58px; } }

/* ---------- Notfall-Band */
.urgent { background: var(--petrol); padding: clamp(60px, 7vw, 96px) 0; }
.urgent__in { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(28px, 4vw, 64px); }
.urgent__icon { position: relative; width: 92px; height: 92px; border-radius: 50%; background: rgba(255, 255, 255, .12); display: grid; place-items: center; color: #fff; }
.urgent__icon .ico { width: 30px; height: 30px; }
.urgent__icon span { position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .5); animation: ring 3.6s var(--ease) infinite; }
.urgent__icon span + span { animation-delay: 1.8s; }
@keyframes ring { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(1.9); opacity: 0; } }
.urgent .h2 { font-size: clamp(40px, 4.4vw, 68px); margin-bottom: 16px; }
.urgent__text p:last-child { margin: 0; max-width: 620px; color: rgba(255, 255, 255, .82); }
.urgent__btns { display: grid; gap: 12px; }
.urgent .eyebrow--light { color: #CFE5E2; }
@media (max-width: 1000px) { .urgent__in { grid-template-columns: auto 1fr; } .urgent__btns { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .urgent__in { grid-template-columns: 1fr; } .urgent__icon { width: 72px; height: 72px; } .urgent__btns { grid-template-columns: 1fr; } }

/* ---------- Einsatzgebiet */
.area__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 100px); align-items: center; }
.area__text .h2 { margin-bottom: 26px; }
.area__text p { max-width: 520px; }
.area__list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 34px; }
.area__list li { padding: 8px 14px; border: 1px solid var(--line-l); font-size: 13.5px; color: rgba(255, 255, 255, .78); }
.area__list li:first-child { background: var(--petrol); border-color: var(--petrol); color: #fff; }
.area__map { width: 100%; max-width: 620px; justify-self: center; }
.map { width: 100%; height: auto; overflow: visible; }
.map__grid { stroke: rgba(255, 255, 255, .045); stroke-width: 1; vector-effect: non-scaling-stroke; }
.map__ring { fill: none; stroke: rgba(156, 196, 192, .45); stroke-width: .6; stroke-dasharray: 1; stroke-dashoffset: 1; }
.map__km { font: 400 7px/1 var(--serif); letter-spacing: .12em; fill: var(--petrol-xl); opacity: 0; }
.map__city line { stroke: rgba(255, 255, 255, .16); stroke-width: .6; stroke-dasharray: 1; stroke-dashoffset: 1; }
.map__city circle { fill: #fff; opacity: 0; }
.map__city text { font: 600 9px/1 var(--sans); fill: rgba(255, 255, 255, .78); opacity: 0; }
.map__dot { fill: var(--petrol); stroke: rgba(255, 255, 255, .7); stroke-width: 1; vector-effect: non-scaling-stroke; }
.map__home path { fill: #fff; }
.map__home-label { font: 400 11px/1 var(--display); letter-spacing: .08em; fill: #fff; }
.map__pulse { fill: none; stroke: var(--petrol-xl); stroke-width: 1; vector-effect: non-scaling-stroke; opacity: 0; transform-box: fill-box; transform-origin: center; }
.area__map.in .map__ring { animation: plDraw 2.6s var(--ease-io) calc(var(--i) * .35s) forwards; }
.area__map.in .map__km { animation: fadeIn 1s ease calc(1.2s + var(--i) * .35s) forwards; }
.area__map.in .map__city line { animation: plDraw 1.2s var(--ease-io) calc(1s + var(--i) * .12s) forwards; }
.area__map.in .map__city circle, .area__map.in .map__city text { animation: fadeIn .8s ease calc(1.6s + var(--i) * .12s) forwards; }
.area__map.in .map__pulse { animation: pulse 5s var(--ease) 1s infinite; }
.area__map.in .map__pulse--2 { animation-delay: 3.5s; }
@keyframes pulse { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(17); opacity: 0; } }
@media (max-width: 900px) { .area__grid { grid-template-columns: 1fr; } .map__city text { font-size: 11px; } .map__km { font-size: 9px; } }

/* ---------- FAQ */
.faq__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(40px, 7vw, 120px); align-items: start; }
.faq__head { position: sticky; top: 130px; }
.faq__head .h2 { margin-bottom: 22px; }
.faq__list { border-top: 1px solid var(--line); }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px 0; cursor: pointer; list-style: none; font: 650 clamp(16.5px, 1.35vw, 19px)/1.45 var(--sans); color: var(--ink); transition: color .3s; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary:hover { color: var(--petrol); }
.faq__plus { position: relative; width: 36px; height: 36px; flex: none; border: 1px solid var(--line-2); border-radius: 50%; transition: background .4s, border-color .4s, transform .5s var(--ease); }
.faq__plus::before, .faq__plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; margin: -.75px 0 0 -6px; background: currentColor; transition: transform .5s var(--ease); }
.faq__plus::after { transform: rotate(90deg); }
.faq__item[open] .faq__plus { background: var(--petrol); border-color: var(--petrol); color: #fff; transform: rotate(180deg); }
.faq__item[open] .faq__plus::after { transform: rotate(0); }
.faq__a { overflow: hidden; }
.faq__a p { margin: 0; padding: 0 60px 28px 0; color: var(--muted); max-width: 720px; }
@media (max-width: 900px) { .faq__grid { grid-template-columns: 1fr; } .faq__head { position: static; } .faq__a p { padding-right: 0; } }

/* ---------- CTA-Band */
.cta { position: relative; padding: clamp(100px, 11vw, 170px) 0; overflow: hidden; isolation: isolate; background: var(--deep); }
.cta__bg { position: absolute; inset: 0; z-index: -2; }
.cta__bg img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.6) brightness(.7); }
.cta__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14, 38, 39, .96) 0%, rgba(14, 38, 39, .85) 55%, rgba(51, 102, 102, .7) 100%); }
.cta__in { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px 80px; align-items: end; }
.cta .h2 { margin-bottom: 22px; }
.cta__text { margin: 0; max-width: 520px; color: rgba(255, 255, 255, .75); }
.cta__btns { display: grid; gap: 12px; min-width: 300px; }
.cta__btns .btn { justify-content: space-between; }
@media (max-width: 900px) { .cta__in { grid-template-columns: 1fr; } .cta__btns { min-width: 0; } }

/* ---------- Footer */
.ftr { background: var(--deepest); padding: clamp(70px, 8vw, 110px) 0 32px; font-size: 15px; }
.ftr__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 60px; padding-bottom: 60px; border-bottom: 1px solid var(--line-l); }
.ftr__logo { display: block; width: min(280px, 80%); margin-bottom: 28px; }
.ftr__brand p { max-width: 400px; color: rgba(255, 255, 255, .58); }
.ftr__b2b { display: inline-flex; align-items: center; gap: 10px; margin-top: 8px; padding: 9px 14px; border: 1px solid var(--line-l); font-size: 13px; color: rgba(255, 255, 255, .78) !important; }
.ftr__b2b .ico { color: var(--petrol-xl); width: 16px; height: 16px; }
.ftr__cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr) minmax(0, 1.3fr); gap: 30px; }
.ftr__cols .eyebrow { color: var(--petrol-xl); margin-bottom: 18px; letter-spacing: .26em; }
.ftr__cols .eyebrow::before { display: none; }
.ftr__cols a { display: flex; align-items: center; gap: 10px; padding: 5px 0; color: rgba(255, 255, 255, .72); transition: color .3s; }
.ftr__cols a:hover { color: #fff; }
.ftr__cols .ico { width: 16px; height: 16px; color: var(--petrol-xl); }
.ftr__addr { display: flex; gap: 10px; margin-top: 10px; color: rgba(255, 255, 255, .6); line-height: 1.6; }
.ftr__addr .ico { margin-top: 4px; }
.ftr__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px 30px; padding-top: 28px; font-size: 13px; color: rgba(255, 255, 255, .45); }
.ftr__legal { display: flex; gap: 22px; }
.ftr__legal a:hover, .ftr__credit a:hover { color: #fff; }
.ftr__credit { display: flex; align-items: center; gap: 16px; }
.ftr__ig { display: inline-flex; align-items: center; gap: 10px; }
.ftr__ig .arrow { width: 16px; }
@media (max-width: 1000px) { .ftr__top { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) { .ftr__cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .ftr__cols > div:last-child { grid-column: 1 / -1; } .ftr__bottom { flex-direction: column; } }

/* ---------- WhatsApp-Button */
.wa-fab { position: fixed; right: 20px; bottom: 20px; z-index: 80; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--petrol); color: #fff; box-shadow: 0 14px 34px -10px rgba(14, 38, 39, .6); transform: scale(0); transition: transform .7s var(--ease), background .4s; }
.wa-fab .ico { width: 26px; height: 26px; }
.wa-fab:hover { background: #1FA855; }
.is-ready .wa-fab { transform: scale(1); transition-delay: 1.2s; }
.menu-open .wa-fab { transform: scale(0); transition-delay: 0s; }

/* ---------- Seiten-Hero (Leistungen, Kontakt) */
.phero { position: relative; min-height: max(620px, 86svh); display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; background: var(--deep); }
.phero--short { min-height: max(480px, 62svh); }
.phero__bp { position: absolute; z-index: -1; right: 4vw; top: calc(var(--hdr) + 20px); width: min(36vw, 560px); opacity: .55; pointer-events: none; }
.phero__in { position: relative; width: 100%; padding-top: calc(var(--hdr) + 60px); padding-bottom: clamp(56px, 7vw, 96px); }
.phero .h1 { max-width: 980px; margin-bottom: 28px; }
.phero .lead { margin-bottom: 38px; }
.phero__num { position: absolute; right: -1vw; bottom: -6vw; z-index: -1; font: 400 clamp(220px, 36vw, 560px)/1 var(--display); color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .08); pointer-events: none; }
.crumbs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px; font-size: 13px; color: rgba(255, 255, 255, .55); }
.crumbs a:hover { color: #fff; }
.crumbs [aria-current] { color: #fff; }
@media (max-width: 900px) { .phero__bp { right: -20vw; width: 90vw; opacity: .25; } }

/* ---------- Leistungsseite */
.intro2__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(40px, 7vw, 120px); }
.intro2__text p { font-size: 17px; }
.intro2__text p:first-child { font: 500 clamp(18px, 1.5vw, 21px)/1.6 var(--sans); color: var(--ink); }
.b2b-note { display: inline-flex; align-items: center; gap: 12px; margin-top: 10px; padding: 13px 18px; background: var(--paper); border-left: 2px solid var(--petrol); font-size: 14.5px !important; color: var(--ink); }
.b2b-note .ico { color: var(--petrol); }
.scope__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.scope__item { position: relative; padding: 30px 26px 30px; background: #fff; border: 1px solid var(--line); transition: border-color .5s, transform .6s var(--ease), box-shadow .6s; }
.scope__item:hover { border-color: var(--petrol); transform: translateY(-4px); box-shadow: 0 24px 40px -28px rgba(14, 38, 39, .4); }
.scope__n { font: 400 11.5px/1 var(--serif); letter-spacing: .1em; color: var(--petrol); }
.scope__item h3 { margin: 22px 0 10px; font: 650 18px/1.35 var(--sans); color: var(--ink); }
.scope__item p { margin: 0; font-size: 14.5px; line-height: 1.65; color: var(--muted); }
.scope__grid .reveal:nth-child(4n+2) { transition-delay: .08s; } .scope__grid .reveal:nth-child(4n+3) { transition-delay: .16s; } .scope__grid .reveal:nth-child(4n+4) { transition-delay: .24s; }
@media (max-width: 1100px) { .scope__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .scope__grid { grid-template-columns: 1fr; } }
.split__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 120px); align-items: center; }
.split__img { position: relative; }
.split__img img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.split__tag { position: absolute; z-index: 3; left: 0; bottom: 0; padding: 14px 20px; background: var(--petrol); color: #fff; font: 400 20px/1 var(--display); letter-spacing: .04em; }
.split__text .h2 { margin-bottom: 30px; }
.checks { margin-bottom: 36px; border-top: 1px solid var(--line); }
.checks li { display: flex; align-items: center; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line); font: 550 16.5px/1.45 var(--sans); color: var(--ink); }
.checks .ico { width: 30px; height: 30px; padding: 6px; border-radius: 50%; background: var(--petrol-50); color: var(--petrol); }
@media (max-width: 900px) { .split__grid, .intro2__grid { grid-template-columns: 1fr; } .split__img { margin-right: 8vw; } }
.trust__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; }
.trust__grid li { padding-top: 26px; border-top: 1px solid var(--line-l); }
.trust__n { font: 400 22px/1 var(--display); color: var(--petrol-xl); letter-spacing: .04em; }
.trust__grid h3 { margin: 18px 0 10px; font: 650 19px/1.35 var(--sans); color: #fff; }
.trust__grid p { margin: 0; font-size: 15px; color: rgba(255, 255, 255, .62); }
.trust__grid .reveal:nth-child(2) { transition-delay: .1s; } .trust__grid .reveal:nth-child(3) { transition-delay: .2s; } .trust__grid .reveal:nth-child(4) { transition-delay: .3s; }
@media (max-width: 1000px) { .trust__grid { grid-template-columns: 1fr 1fr; row-gap: 44px; } }
@media (max-width: 560px) { .trust__grid { grid-template-columns: 1fr; } }
.more__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.more__card { position: relative; display: flex; flex-direction: column; gap: 18px; min-height: 230px; padding: 26px 24px 24px; background: #fff; border: 1px solid var(--line); color: var(--ink); overflow: hidden; isolation: isolate; transition: color .5s var(--ease), border-color .5s; }
.more__card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--petrol); transform: scaleY(0); transform-origin: bottom; transition: transform .7s var(--ease); }
.more__card:hover { color: #fff; border-color: var(--petrol); }
.more__card:hover::before { transform: none; }
.more__num { font: 400 11.5px/1 var(--serif); color: var(--petrol); transition: color .5s; }
.more__card:hover .more__num, .more__card:hover .more__ico { color: #fff; }
.more__ico { width: 34px; height: 34px; color: var(--petrol); transition: color .5s; }
.more__title { margin-top: auto; font: 400 clamp(24px, 2vw, 30px)/1 var(--display); letter-spacing: .01em; }
.more__card .arrow { width: 22px; }
.more__grid .reveal:nth-child(2) { transition-delay: .06s; } .more__grid .reveal:nth-child(3) { transition-delay: .12s; } .more__grid .reveal:nth-child(4) { transition-delay: .18s; } .more__grid .reveal:nth-child(5) { transition-delay: .24s; }
@media (max-width: 1100px) { .more__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px) { .more__grid { grid-template-columns: 1fr 1fr; } .more__card { min-height: 190px; padding: 22px 18px; } }

/* ---------- Kontakt */
.contact__grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: clamp(30px, 5vw, 80px); align-items: start; }
.contact__info { position: sticky; top: 120px; padding: clamp(30px, 3.4vw, 48px); background: var(--deep); color: rgba(255, 255, 255, .7); }
.contact__info .h2 { color: #fff; font-size: clamp(38px, 3.6vw, 54px); margin-bottom: 20px; }
.contact__lines { margin: 30px 0; border-top: 1px solid var(--line-l); }
.contact__lines a, .contact__lines p { display: flex; align-items: center; gap: 16px; margin: 0; padding: 18px 0; border-bottom: 1px solid var(--line-l); color: #fff; font: 600 16px/1.45 var(--sans); overflow-wrap: anywhere; }
.contact__lines small { display: block; font: 400 10.5px/1.4 var(--serif); letter-spacing: .26em; text-transform: uppercase; color: var(--petrol-xl); margin-bottom: 3px; }
.contact__lines .ico { width: 42px; height: 42px; padding: 11px; border: 1px solid var(--line-l2); border-radius: 50%; color: var(--petrol-xl); flex: none; transition: background .4s, color .4s; }
.contact__lines a:hover .ico { background: var(--petrol); color: #fff; border-color: var(--petrol); }
.contact__note { display: flex; gap: 12px; font-size: 14px; margin: 0; }
.contact__note .ico { color: var(--petrol-xl); margin-top: 3px; }
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 18px; }
.form__full { grid-column: 1 / -1; }
.field { display: grid; gap: 8px; }
.field > span, .form__label { font: 400 10.5px/1.4 var(--serif); letter-spacing: .24em; text-transform: uppercase; color: var(--ink); }
.field input, .field select, .field textarea { width: 100%; height: 56px; padding: 0 18px; border: 1px solid var(--line-2); border-radius: 0; background: #fff; font: 500 16px/1.4 var(--sans); color: var(--ink); transition: border-color .3s, box-shadow .3s; -webkit-appearance: none; appearance: none; }
.field select { background-image: linear-gradient(45deg, transparent 50%, var(--petrol) 50%), linear-gradient(135deg, var(--petrol) 50%, transparent 50%); background-position: calc(100% - 22px) 25px, calc(100% - 17px) 25px; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 44px; }
.field textarea { height: auto; min-height: 170px; padding: 16px 18px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--petrol); box-shadow: 0 0 0 3px rgba(51, 102, 102, .12); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { position: relative; cursor: pointer; }
.chip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.chip span { display: inline-flex; align-items: center; height: 42px; padding: 0 16px; border: 1px solid var(--line-2); font: 600 14px/1 var(--sans); color: var(--ink); transition: background .3s, color .3s, border-color .3s; }
.chip input:checked + span { background: var(--petrol); border-color: var(--petrol); color: #fff; }
.chip input:focus-visible + span { outline: 2px solid var(--petrol-l); outline-offset: 2px; }
.consent { display: flex; gap: 14px; align-items: flex-start; font-size: 14px; line-height: 1.6; color: var(--muted); cursor: pointer; }
.consent input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--petrol); flex: none; }
.form__btns { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.form__hint { margin: 0; font-size: 13px; color: var(--muted); }
.hp { position: absolute; left: -9999px; }
@media (max-width: 1000px) { .contact__grid { grid-template-columns: 1fr; } .contact__info { position: static; } }
@media (max-width: 600px) { .form { grid-template-columns: 1fr; } .form__btns .btn { width: 100%; } }

/* ---------- Rechtliches / Einfache Seiten */
.phead { background: var(--deep); padding: calc(var(--hdr) + clamp(60px, 8vw, 110px)) 0 clamp(50px, 6vw, 80px); }
.phead .h1 { color: #fff; }
.sec--tight { padding: clamp(60px, 7vw, 100px) 0 clamp(90px, 10vw, 140px); }
.legal { max-width: 860px; }
.legal h2 { margin: 54px 0 16px; font: 400 clamp(28px, 2.6vw, 36px)/1.05 var(--display); color: var(--ink); letter-spacing: .01em; }
.legal h3 { margin: 28px 0 10px; font: 650 17px/1.4 var(--sans); color: var(--ink); }
.legal a { color: var(--petrol); text-decoration: underline; text-underline-offset: 3px; }
.legal ul { margin: 0 0 1em; padding-left: 20px; list-style: disc; }
.legal li { margin-bottom: 6px; }
.simple { min-height: 100svh; display: grid; place-items: center; text-align: center; background: var(--deep); color: rgba(255, 255, 255, .72); padding: calc(var(--hdr) + 40px) var(--gut) 60px; }
.simple .h1 { color: #fff; margin-bottom: 22px; }
.simple .lead { margin: 0 auto 36px; }
.simple .btns { justify-content: center; }
.simple__mark { width: 84px; margin: 0 auto 34px; color: var(--petrol-xl); }

/* ---------- Bewegung reduzieren */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .ticker__track { animation: none; }
  .bp__laser { display: none; }
}
