/* =========================================================
   Boger Haustechnik – Recruiting Landingpage
   ========================================================= */

:root{
  --rot:            #c61f20;
  --rot-hell:       #d92431;

  --schwarz:        #111011;
  --dunkel:         #1a1819;
  --dunkel-panel:   #232021;
  --hell:           #f5f4f3;
  --weiss:          #ffffff;

  --text:           #1a1718;
  --text-leise:     #5c5658;
  --text-invers:    #ffffff;
  --text-invers-leise: rgba(255,255,255,.72);

  --linie:          rgba(0,0,0,.09);
  --linie-invers:   rgba(255,255,255,.16);

  --wrap:           1200px;
  --radius:         16px;
  --radius-sm:      10px;
  --radius-lg:      24px;

  --gap:            clamp(20px, 3vw, 40px);
  --section-y:      clamp(64px, 9vw, 130px);

  --shadow:         0 18px 50px -24px rgba(0,0,0,.45);
  --shadow-stark:   0 30px 80px -30px rgba(0,0,0,.65);

  --ease:           cubic-bezier(.22,.61,.36,1);

  /* --- CI-Farben aus dem Logo -------------------------------------- */
  --anthrazit:      #12161e;
  --offweiss:       #fdfcf8;
  --orange:         #ee7e1e;
  --orange-hell:    #f8d61e;

  /* Die drei Logokreise: Wasser, Sonne, Feuer */
  --ci-blau-1:      #2d92d1;
  --ci-blau-2:      #313c90;
  --ci-gelb-1:      #f8d61e;
  --ci-gelb-2:      #ee7e1e;
  --ci-rot-1:       #e14215;
  --ci-rot-2:       #c61f21;

  --ci-verlauf: linear-gradient(90deg,
     var(--ci-blau-1) 0%, var(--ci-blau-2) 22%,
     var(--ci-gelb-1) 45%, var(--ci-gelb-2) 66%,
     var(--ci-rot-1)  85%, var(--ci-rot-2) 100%);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--weiss);
  color:var(--text);
  font-family:"Albert Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size:clamp(16px, .5vw + 15px, 18px);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* height:auto ist noetig, damit die width/height-Attribute im HTML
   (gegen Layoutspruenge) das per CSS gesetzte Seitenverhaeltnis nicht ueberschreiben. */
img,video{ max-width:100%; display:block; height:auto; }

h1,h2,h3{ margin:0; line-height:1.08; letter-spacing:-.022em; font-weight:800; text-wrap:balance; }
h1{ font-size:clamp(1.95rem, 4.1vw, 3.3rem); overflow-wrap:break-word; }
h2{ font-size:clamp(1.8rem, 3.6vw, 3rem); }
h3{ font-size:clamp(1.15rem, 1.4vw + .8rem, 1.55rem); font-weight:700; letter-spacing:-.015em; }
p{ margin:0; text-wrap:pretty; }

a{ color:inherit; }

.wrap{
  width:100%;
  max-width:var(--wrap);
  margin-inline:auto;
  padding-inline:clamp(20px, 5vw, 40px);
}

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

.skip-link{
  position:absolute; left:16px; top:-100px; z-index:100;
  background:var(--rot); color:#fff; padding:12px 18px;
  border-radius:var(--radius-sm); font-weight:600; text-decoration:none;
  transition:top .2s var(--ease);
}
.skip-link:focus-visible{ top:16px; }

:focus-visible{ outline:3px solid var(--rot-hell); outline-offset:3px; border-radius:4px; }

/* --------- Roter Textmarker --------- */
.mark{
  color:inherit;
  background-image:linear-gradient(var(--rot), var(--rot));
  background-repeat:no-repeat;
  background-size:100% .22em;
  background-position:0 calc(100% - .04em);
  padding-inline:.08em;
  border-radius:.14em;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
h1 .mark{ background-size:100% .20em; }
.reason h3 .mark{ background-size:100% .26em; }

/* Der Strich wird gezogen, sobald die Zeile ins Bild kommt. */
.js .mark--malen{ background-size:0 .22em; }
.js .mark--malen.is-gemalt{
  background-size:100% .22em;
  transition:background-size .75s cubic-bezier(.16,.84,.44,1) .15s;
}
.js h2 .mark--malen.is-gemalt{ transition-duration:.85s; }

/* --------- Buttons --------- */
.btn{
  --btn-bg:var(--rot);
  --btn-fg:#fff;
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding:16px 30px;
  border:0; border-radius:999px;
  background:var(--btn-bg); color:var(--btn-fg);
  font:inherit; font-weight:700; letter-spacing:-.01em;
  text-decoration:none; cursor:pointer;
  transition:transform .18s var(--ease), box-shadow .25s var(--ease), background-color .2s var(--ease), opacity .2s;
  box-shadow:0 12px 28px -14px rgba(198,31,32,.9);
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 18px 36px -14px rgba(198,31,32,.95); }
.btn:active{ transform:translateY(0); }
.btn--lg{ padding:19px 40px; font-size:1.05em; }
.btn--ghost{
  --btn-bg:transparent; --btn-fg:currentColor;
  border:1.5px solid currentColor; box-shadow:none; opacity:.85;
}
.btn--ghost:hover{ opacity:1; box-shadow:none; background:rgba(255,255,255,.07); }
.btn:disabled{ opacity:.3; cursor:not-allowed; transform:none; box-shadow:none; }

/* =========================================================
   HERO mit Drohnenvideo
   ========================================================= */
.hero{
  position:relative;
  isolation:isolate;
  min-height:min(94svh, 900px);
  display:flex; flex-direction:column; justify-content:center;
  background:var(--schwarz);
  color:var(--text-invers);
  padding-block:clamp(28px, 5vw, 56px) clamp(72px, 9vw, 120px);
  overflow:hidden;
}

.hero__media{ position:absolute; inset:0; z-index:-2; }
.hero__media img,
.hero__media video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
}
.hero__video{ opacity:0; transition:opacity 1.1s var(--ease); }
.hero__video.is-playing{ opacity:1; }

.hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(8,8,8,.86) 0%, rgba(8,8,8,.52) 38%, rgba(8,8,8,.90) 100%),
    radial-gradient(80% 60% at 12% 40%, rgba(198,31,32,.20), transparent 62%);
}

.hero__inner{ position:relative; display:flex; flex-direction:column; }

.hero__brand{ margin-bottom:clamp(40px, 7vw, 88px); }
.hero__logo{ height:clamp(42px, 5vw, 58px); width:auto; }

.hero__text{ max-width:min(100%, 22ch); max-width:min(100%, 760px); }

.eyebrow{
  font-size:clamp(.95rem, 1.6vw, 1.2rem);
  font-weight:600; letter-spacing:.02em;
  color:var(--text-invers-leise);
  margin-bottom:.6em;
}

.h1-sub{ font-weight:600; font-size:.52em; letter-spacing:-.01em; opacity:.75; display:inline-block; }

.meta{
  list-style:none; margin:clamp(24px,3vw,34px) 0 0; padding:0;
  display:flex; flex-wrap:wrap; gap:10px 12px;
}
.meta li{
  display:inline-flex; align-items:center; gap:.5em;
  background:rgba(255,255,255,.10);
  border:1px solid var(--linie-invers);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  padding:9px 16px; border-radius:999px;
  font-size:.95rem; font-weight:500;
}

.hero__lead{
  margin-top:clamp(18px,2.4vw,26px);
  font-size:clamp(1.02rem, 1.1vw + .8rem, 1.22rem);
  line-height:1.5; max-width:48ch;
  color:var(--text-invers-leise);
}
.hero__actions{ margin-top:clamp(28px,4vw,42px); display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.hero__note{ font-size:.92rem; color:var(--text-invers-leise); }

.hero__facts{
  list-style:none; margin:clamp(44px,6vw,76px) 0 0; padding:0;
  display:flex; flex-wrap:wrap; gap:clamp(24px,4vw,64px);
}
.hero__facts li{ display:flex; flex-direction:column; gap:2px; }
.hero__facts strong{
  font-size:clamp(1.7rem,3vw,2.4rem); font-weight:800;
  letter-spacing:-.03em; line-height:1;
  color:#fff;
}
.hero__facts span{ font-size:.88rem; color:var(--text-invers-leise); max-width:16ch; }

.hero__scroll{
  position:absolute; left:50%; bottom:26px; translate:-50% 0;
  width:26px; height:42px; border:2px solid rgba(255,255,255,.35);
  border-radius:999px;
}
.hero__scroll span{
  position:absolute; left:50%; top:9px; translate:-50% 0;
  width:3px; height:8px; border-radius:2px; background:rgba(255,255,255,.8);
  animation:scrollHint 1.9s var(--ease) infinite;
}
@keyframes scrollHint{
  0%{ opacity:0; transform:translateY(0); }
  35%{ opacity:1; }
  100%{ opacity:0; transform:translateY(15px); }
}
@media (max-width:860px){ .hero__scroll{ display:none; } }

/* Auf Handys sitzt der Hero enger, damit der Haupt-CTA und die drei
   Kennzahlen nicht unter die Bildschirmkante rutschen. */
@media (max-width:600px){
  .hero{ padding-block:22px 40px; }
  .hero__brand{ margin-bottom:26px; }
  .meta{ margin-top:18px; gap:8px 8px; }
  .meta li{ padding:7px 13px; font-size:.88rem; }
  .hero__lead{ margin-top:14px; }
  .hero__actions{ margin-top:22px; }

  .hero__facts{
    margin-top:26px;
    display:grid; grid-template-columns:repeat(3, minmax(0,1fr));
    gap:14px;
  }
  .hero__facts strong{ font-size:1.5rem; }
  .hero__facts span{ font-size:.76rem; max-width:none; }
}
@media (prefers-reduced-motion: reduce){ .hero__scroll span{ animation:none; } }

/* =========================================================
   FUNNEL
   ========================================================= */
.funnel{
  position:relative; isolation:isolate;
  background:var(--dunkel);
  color:var(--text-invers);
  padding-block:clamp(56px, 7vw, 100px);
  overflow:hidden;
  scroll-margin-top:20px;
}
.funnel__bg{ position:absolute; inset:0; z-index:-2; }
.funnel__bg img{ width:100%; height:100%; object-fit:cover; }
.funnel::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(100deg, rgba(10,10,10,.95) 0%, rgba(18,18,18,.90) 55%, rgba(10,10,10,.95) 100%);
}

.funnel__card{
  max-width:820px; margin-inline:auto;
  background:var(--dunkel-panel);
  border:1px solid rgba(198,31,32,.5);
  border-radius:var(--radius-lg);
  padding:clamp(26px, 4.5vw, 56px);
  box-shadow:var(--shadow-stark);
}

.progress{ margin-bottom:clamp(28px,4vw,44px); }
.progress__label{
  display:block; font-size:.85rem; font-weight:700;
  color:var(--text-invers-leise); margin-bottom:10px; letter-spacing:.02em;
}
.progress__track{ height:6px; border-radius:999px; background:rgba(255,255,255,.12); overflow:hidden; }
.progress__bar{
  height:100%; border-radius:999px;
  background:linear-gradient(90deg, var(--rot), var(--rot-hell));
  transition:width .5s var(--ease);
}

.step{ border:0; margin:0; padding:0; min-inline-size:0; animation:stepIn .45s var(--ease) both; }
.step[hidden]{ display:none; }
.step--center{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:18px; padding-block:clamp(20px,4vw,40px); }

@keyframes stepIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .step{ animation:none; } }

.step__legend{
  display:block; padding:0;
  font-size:clamp(.8rem,1.2vw,.9rem); font-weight:700;
  text-transform:uppercase; letter-spacing:.14em;
  color:var(--rot-hell); margin-bottom:14px;
}
.step__legend--center{ text-transform:none; letter-spacing:-.01em; font-size:1.4rem; color:var(--text-invers); }

.step__question{
  font-size:clamp(1.35rem, 2.6vw, 2rem);
  font-weight:800; line-height:1.18; letter-spacing:-.02em;
  margin-bottom:clamp(22px,3vw,34px);
}
.step__question--zweit{ margin-top:clamp(26px,3.4vw,38px); }
.step__lead{ color:var(--text-invers-leise); margin-bottom:clamp(20px,3vw,30px); max-width:56ch; }
.step__lead--center{ margin:0 auto; }

.scale__items{ display:grid; grid-template-columns:repeat(10, minmax(0,1fr)); gap:8px; }
.scale__item{
  appearance:none; aspect-ratio:1; min-height:52px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.05); color:#fff;
  border-radius:var(--radius-sm);
  font:inherit; font-weight:700; font-size:1.05rem; cursor:pointer;
  transition:background-color .18s, border-color .18s, transform .18s var(--ease);
}
.scale__item:hover{ background:rgba(255,255,255,.12); transform:translateY(-2px); }
.scale__item[aria-checked="true"]{
  background:var(--rot); border-color:var(--rot);
  box-shadow:0 10px 24px -12px rgba(198,31,32,1);
}
.scale__legend{ display:flex; justify-content:space-between; margin-top:12px; font-size:.85rem; color:var(--text-invers-leise); }

@media (max-width:640px){
  .scale__items{ grid-template-columns:repeat(5, minmax(0,1fr)); }
  .scale__item{ min-height:48px; }
}

.chips{ display:flex; flex-wrap:wrap; gap:10px; }
.chip{
  appearance:none;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.05); color:#fff;
  padding:13px 20px; border-radius:999px;
  font:inherit; font-weight:500; cursor:pointer;
  transition:background-color .18s, border-color .18s, transform .18s var(--ease);
}
.chip:hover{ background:rgba(255,255,255,.12); transform:translateY(-2px); }
.chip[aria-pressed="true"]{
  background:var(--rot); border-color:var(--rot); font-weight:600;
  box-shadow:0 10px 24px -12px rgba(198,31,32,1);
}
.chip[aria-pressed="true"]::before{ content:"✓"; margin-right:.5em; font-weight:800; }
.chip[data-disabled="true"]{ opacity:.35; cursor:not-allowed; }
.chip[data-disabled="true"]:hover{ transform:none; background:rgba(255,255,255,.05); }

.fields{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field--full{ grid-column:1 / -1; }
@media (max-width:560px){ .fields{ grid-template-columns:1fr; } }

.field label{ display:block; font-size:.9rem; font-weight:600; color:var(--text-invers-leise); margin-bottom:8px; }
.field input{
  width:100%; padding:16px 18px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.05);
  border-radius:var(--radius-sm);
  color:#fff; font:inherit;
  transition:border-color .18s, background-color .18s, box-shadow .18s;
}
.field input::placeholder{ color:rgba(255,255,255,.38); }
.field input:focus{
  outline:none; border-color:var(--rot-hell);
  background:rgba(255,255,255,.09);
  box-shadow:0 0 0 3px rgba(217,36,49,.22);
}
.field input[aria-invalid="true"]{ border-color:#ff6139; }
.field input[type="date"]{ color-scheme:dark; }

.field-hint{ font-size:.82rem; color:rgba(255,255,255,.5); margin-top:7px; }
.field-error{ font-size:.85rem; color:#ff8a6b; font-weight:600; margin-top:8px; }
.field-error[hidden]{ display:none; }

.consent{
  display:flex; align-items:flex-start; gap:12px;
  margin-top:clamp(24px,3vw,32px);
  font-size:.92rem; color:var(--text-invers-leise);
}
.consent input{ flex:none; width:22px; height:22px; margin-top:2px; accent-color:var(--rot); cursor:pointer; }
.consent label{ cursor:pointer; }
.consent a{ color:#fff; text-underline-offset:3px; }

.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.step__actions{
  display:flex; flex-wrap:wrap; gap:12px;
  justify-content:space-between; align-items:center;
  margin-top:clamp(28px,4vw,40px);
}
.step__actions--center{ justify-content:center; }
.step__actions .btn--primary{ margin-left:auto; }
.step__actions--center .btn--primary{ margin-left:0; }
@media (max-width:520px){
  .step__actions{ flex-direction:column-reverse; align-items:stretch; }
  .step__actions .btn{ width:100%; margin-left:0; }
}

.loader{ display:flex; gap:10px; }
.loader span{ width:13px; height:13px; border-radius:50%; background:var(--rot-hell); animation:bounce 1.2s infinite var(--ease); }
.loader span:nth-child(2){ animation-delay:.15s; }
.loader span:nth-child(3){ animation-delay:.3s; }
@keyframes bounce{ 0%,80%,100%{ transform:translateY(0); opacity:.5; } 40%{ transform:translateY(-12px); opacity:1; } }

.done__logo{ height:56px; width:auto; }
.done__headline{ font-size:clamp(1.35rem, 2.6vw, 1.95rem); font-weight:800; letter-spacing:-.02em; line-height:1.25; max-width:22ch; }

/* =========================================================
   ÜBER UNS
   ========================================================= */
.about{ background:var(--weiss); padding-block:var(--section-y); overflow:hidden; }

.about__grid{
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  gap:clamp(32px, 5vw, 72px);
  align-items:center;
}
@media (max-width:900px){ .about__grid{ grid-template-columns:1fr; } }

.about__text{ display:flex; flex-direction:column; align-items:flex-start; gap:clamp(18px,2.4vw,26px); }
.about__lead{ font-size:clamp(1.02rem, 1.1vw + .8rem, 1.2rem); color:var(--text-leise); max-width:52ch; }
.about__lead u{ text-decoration-color:var(--rot); text-decoration-thickness:3px; text-underline-offset:4px; font-weight:700; color:var(--text); }

.about__media{
  margin:0; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow);
}
.about__media img{ width:100%; aspect-ratio:16/10; object-fit:cover; }

.marquee{
  margin-top:clamp(48px, 6vw, 80px);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.marquee__track{
  display:flex; gap:16px; width:max-content;
  animation:slide 62s linear infinite;
}
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__track img{
  height:clamp(170px, 20vw, 260px);
  width:auto; aspect-ratio:3/2; object-fit:cover;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
@keyframes slide{ to{ transform:translateX(calc(-50% - 8px)); } }
@media (prefers-reduced-motion: reduce){
  .marquee__track{ animation:none; width:100%; overflow-x:auto; }
}

/* =========================================================
   TEAM
   ========================================================= */
.team{
  background:var(--schwarz);
  color:var(--text-invers);
  padding-block:var(--section-y);
}
.team__head{ max-width:56ch; margin-bottom:clamp(36px,5vw,60px); }
.team__head p{ margin-top:18px; color:var(--text-invers-leise); }

/* 10 Porträts. Spaltenzahl und die beiden Regeln unten sind darauf
   abgestimmt, dass nirgends eine angebrochene Reihe links klebt:
   Desktop 5+5 geht glatt auf, Tablet 4+4+2 und Handy 3+3+3+1
   werden mittig gesetzt. Ändert sich die Bildanzahl, müssen die
   nth-child-Werte mit. */
.team__grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:clamp(10px, 1.2vw, 16px);
}
@media (max-width:1000px){
  .team__grid{ grid-template-columns:repeat(4, minmax(0,1fr)); }
  .team__grid figure:nth-child(9){ grid-column:2; }
}
@media (max-width:620px){
  .team__grid{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .team__grid figure:nth-child(9){ grid-column:auto; }
  .team__grid figure:nth-child(10){ grid-column:2; }
}

.team__grid figure{
  margin:0; overflow:hidden;
  border-radius:var(--radius);
  background:var(--dunkel-panel);
}
.team__grid img{
  width:100%; aspect-ratio:4/5; object-fit:cover;
  filter:grayscale(.15);
  transition:transform .5s var(--ease), filter .35s var(--ease);
}
.team__grid figure:hover img{ transform:scale(1.05); filter:grayscale(0); }

.team__cta{
  margin-top:clamp(32px,4vw,48px);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:clamp(16px,2.5vw,28px);
  text-align:center;
}
.team__cta p{
  font-size:clamp(1.15rem,2vw,1.5rem); font-weight:700;
  letter-spacing:-.02em;
}
.team__cta strong{ color:var(--rot-hell); font-weight:800; }

/* =========================================================
   4 GRÜNDE
   ========================================================= */
.reasons{ background:var(--hell); padding-block:var(--section-y); }
.reasons h2{ max-width:20ch; margin-bottom:clamp(40px,5vw,64px); }

.reasons__grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--gap); }
@media (max-width:820px){ .reasons__grid{ grid-template-columns:1fr; } }

.reason{
  background:var(--weiss);
  border:1px solid var(--linie);
  border-radius:var(--radius-lg);
  overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.reason:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }

.reason__media{ overflow:hidden; }
.reason__media img{ width:100%; aspect-ratio:16/10; object-fit:cover; transition:transform .6s var(--ease); }
.reason:hover .reason__media img{ transform:scale(1.04); }

.reason__body{ padding:clamp(24px,3vw,36px); display:flex; flex-direction:column; gap:12px; }
.reason__num{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:12px;
  background:var(--rot); color:#fff;
  font-weight:800; font-size:1.05rem; letter-spacing:-.02em;
}
.reason__body p{ color:var(--text-leise); font-size:.99rem; }

/* =========================================================
   DEINE BENEFITS
   ========================================================= */
.benefits{
  position:relative;
  background:var(--offweiss);
  padding-block:var(--section-y);
  overflow:hidden;
}

/* Das CI-Band aus dem Logo: Wasser, Sonne, Feuer */
.ci-band{
  position:absolute; left:0; right:0; height:5px;
  background:var(--ci-verlauf);
}
.benefits > .ci-band:first-of-type{ top:0; }
.benefits > .ci-band:last-of-type{ bottom:0; }

.benefits__head{ max-width:52ch; margin-bottom:clamp(36px,5vw,56px); }
.benefits__lead{
  margin-top:16px; color:var(--text-leise);
  font-size:clamp(1rem,1.1vw+.8rem,1.15rem);
}

.badge{
  display:inline-block;
  margin-bottom:18px; padding:8px 18px;
  border-radius:999px;
  background:linear-gradient(100deg, var(--ci-gelb-1), var(--orange));
  color:#3a2402;
  font-size:.8rem; font-weight:800;
  letter-spacing:.12em; text-transform:uppercase;
  box-shadow:0 10px 24px -14px rgba(238,126,30,.9);
}

/* --------- Betriebsrente --------- */
.rente{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(32px,4.5vw,64px);
  align-items:center;
  background:var(--anthrazit);
  color:var(--text-invers);
  border-radius:var(--radius-lg);
  padding:clamp(28px,4.5vw,60px);
  box-shadow:var(--shadow-stark);
  overflow:hidden;
  isolation:isolate;
}
.rente::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(75% 90% at 8% 0%, rgba(238,126,30,.20), transparent 60%),
             radial-gradient(60% 80% at 100% 100%, rgba(45,146,209,.16), transparent 62%);
}
@media (max-width:900px){ .rente{ grid-template-columns:1fr; } }

.rente__kicker,
.gesundheit__kicker{
  font-size:.82rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.14em;
  color:var(--orange);
  margin-bottom:10px;
}

/* Die Zahl: Platz fuer den Endwert ist reserviert, damit beim
   Hochzaehlen nichts springt. */
.rente__text{ container-type:inline-size; }

.zahl{
  /* An die Spaltenbreite gekoppelt, sonst laeuft das Eurozeichen
     zwischen 900 und 1250 px aus der Spalte. vw-Wert als Rueckfall. */
  font-size:clamp(3.4rem, 15vw, 6rem);
  font-size:clamp(3.4rem, 22cqw, 6.25rem);
  font-weight:800; line-height:.95; letter-spacing:-.045em;
  background:linear-gradient(92deg, var(--ci-gelb-1) 8%, var(--orange) 62%, var(--ci-rot-1) 100%);
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
  margin-bottom:.18em;
}
/* Der unsichtbare Platzhalter traegt den Endwert und reserviert damit
   exakt die spaetere Breite - waehrend des Hochzaehlens springt nichts. */
.zahl__box{ display:inline-grid; }
.zahl__box > *{ grid-area:1/1; }
.zahl__platz{ visibility:hidden; }
.zahl__wert{ justify-self:start; }
.zahl__box,
.zahl__wert{
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.rente__headline{
  font-size:clamp(1.35rem, 2.3vw, 2.05rem);
  line-height:1.15; max-width:19ch;
}
.rente__sub{
  margin-top:16px; color:var(--text-invers-leise);
  font-size:clamp(1rem,1.1vw+.8rem,1.15rem); max-width:34ch;
}
.rente__sub strong{ color:#fff; }

/* --------- Handschriftliche Notiz --------- */
.notiz{
  display:flex; align-items:flex-start; gap:6px;
  margin-top:clamp(26px,3.4vw,38px);
  color:var(--orange);
}
.notiz__pfeil{
  flex:none; width:62px; height:auto;
  transform:scaleX(-1) rotate(-6deg);
  margin-top:6px; opacity:.9;
}
.notiz__text{
  font-family:"Caveat", "Segoe Script", cursive;
  font-size:clamp(1.2rem,1.9vw,1.55rem);
  font-weight:600; line-height:1.3;
  color:#ffd9a8;
  transform:rotate(-1.6deg);
}

/* --------- Beispielrechnung --------- */
.rechnung{
  position:relative;
  margin:0;
  background:rgba(255,255,255,.045);
  border:1px solid var(--linie-invers);
  border-radius:var(--radius);
  padding:clamp(18px,2.4vw,26px);
}
.rechnung__titel{
  font-size:.82rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--text-invers-leise);
  margin-bottom:14px;
}
.rechnung__svg{ width:100%; height:auto; color:#fff; overflow:visible; }
.rechnung__achse{
  font-family:"Albert Sans", sans-serif;
  font-size:15px; font-weight:600;
  fill:currentColor; fill-opacity:.62;
}

.rechnung__betrag{
  font-family:"Albert Sans", sans-serif;
  font-size:24px; font-weight:800; letter-spacing:-.02em;
  fill:var(--orange);
}
.rechnung__betrag--klein{ font-size:18px; fill-opacity:.72; }

.rechnung__legende{
  list-style:none; margin:14px 0 0; padding:0;
  display:grid; gap:8px;
}
.rechnung__legende li{
  display:flex; align-items:center; gap:10px;
  font-size:.84rem; color:var(--text-invers-leise);
}
.punkt{
  flex:none; width:11px; height:11px; border-radius:50%;
  border:2px solid var(--orange);
}
.punkt--voll{ background:var(--orange); }

/* Auf schmalen Bildschirmen schrumpft das SVG mit - die Schrift darin
   muss dann groesser gesetzt werden, damit sie lesbar bleibt. */
@media (max-width:620px){
  .rechnung__achse{ font-size:20px; }
  .rechnung__betrag{ font-size:34px; }
  .rechnung__betrag--klein{ font-size:27px; }
}

/* --------- Gesundheitstopf --------- */
.gesundheit{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(28px,4vw,56px);
  align-items:center;
  margin-top:clamp(20px,2.6vw,28px);
  background:var(--weiss);
  border:1px solid var(--linie);
  border-radius:var(--radius-lg);
  padding:clamp(26px,4vw,48px);
}
@media (max-width:820px){ .gesundheit{ grid-template-columns:1fr; } }

.gesundheit__text h3{
  font-size:clamp(1.25rem,2.1vw,1.8rem); line-height:1.18; max-width:20ch;
}
.gesundheit__text p{ margin-top:14px; color:var(--text-leise); max-width:42ch; }

.gesundheit__liste{
  list-style:none; margin:0; padding:0;
  display:flex; gap:clamp(14px,2.4vw,28px); justify-content:center; flex-wrap:wrap;
}
.gesundheit__liste li{ display:flex; flex-direction:column; align-items:center; gap:12px; }

.icon-kreis{
  display:grid; place-items:center;
  width:clamp(72px,9vw,92px); aspect-ratio:1;
  border-radius:50%;
  background:var(--offweiss);
  border:1px solid var(--linie);
  color:var(--text);
}
.icon-kreis svg{ width:54%; height:auto; }
.gesundheit__wort{ font-size:.92rem; font-weight:700; }

/* --------- Kartenraster --------- */
.benefits__zwischen{
  margin:clamp(48px,6vw,76px) 0 clamp(24px,3vw,34px);
  font-size:clamp(1.2rem,1.9vw,1.6rem);
}

.karten{
  list-style:none; margin:0; padding:0;
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:clamp(14px,1.8vw,22px);
}
@media (max-width:900px){ .karten{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:520px){ .karten{ grid-template-columns:1fr; } }

.karte{
  background:var(--weiss);
  border:1px solid var(--linie);
  border-radius:var(--radius);
  padding:clamp(20px,2.4vw,28px);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s;
}
.karte:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 40px -26px rgba(0,0,0,.55);
  border-color:rgba(0,0,0,.14);
}
.karte--breit{ grid-column:span 2; }
@media (max-width:520px){ .karte--breit{ grid-column:span 1; } }

.karte__icon{
  display:grid; place-items:center;
  width:52px; height:52px; margin-bottom:16px;
  border-radius:14px;
  background:var(--offweiss);
  border:1px solid var(--linie);
  color:var(--text);
}
.karte__icon svg{ width:30px; height:30px; }

.karte h4{
  margin:0 0 8px;
  font-size:1.05rem; font-weight:700; letter-spacing:-.015em; line-height:1.25;
}
.karte p{ color:var(--text-leise); font-size:.94rem; }

.gesundheit__was{
  margin-top:14px;
  font-size:.93rem; line-height:1.6;
  color:var(--text-leise);
}

.benefits__cta{ margin-top:clamp(36px,5vw,56px); text-align:center; }
.benefits__cta-note{
  margin:18px auto 0; max-width:46ch;
  font-size:.92rem; color:var(--text-leise);
}

/* --------- Bewegung in der Section --------- */

/* Karten laufen gestaffelt ein statt alle auf einmal */
.js .karte{ transition-delay:calc(var(--nr, 0) * 55ms); }

/* Icons setzen sich einen Tick nach der Karte */
.js .karte .karte__icon,
.js .gesundheit__liste .icon-kreis{
  opacity:0; transform:scale(.72) rotate(-8deg);
}
.js .karte.is-in .karte__icon,
.js .gesundheit.is-in .icon-kreis{
  opacity:1; transform:none;
  transition:opacity .45s var(--ease), transform .55s cubic-bezier(.34,1.56,.64,1);
  transition-delay:calc(var(--nr, 0) * 55ms + 160ms);
}

/* Der Kurvenverlauf zeichnet sich */
.js .kurve{
  stroke-dasharray:var(--laenge, 600);
  stroke-dashoffset:var(--laenge, 600);
}
.js .rechnung.is-gezeichnet .kurve{
  stroke-dashoffset:0;
  transition:stroke-dashoffset 1.7s cubic-bezier(.33,.72,.35,1) .25s;
}
.js .rechnung.is-gezeichnet .kurve--blass{ transition-delay:.55s; }

.js .flaeche, .js .punkt-ende, .js .rechnung__betrag{ opacity:0; }
.js .rechnung.is-gezeichnet .flaeche{ opacity:1; transition:opacity 1s var(--ease) .6s; }
.js .rechnung.is-gezeichnet .flaeche--blass{ opacity:.5; transition-delay:.9s; }
.js .rechnung.is-gezeichnet .punkt-ende{
  opacity:1; transition:opacity .4s var(--ease) 1.55s;
  animation:punktPop .5s cubic-bezier(.34,1.56,.64,1) 1.55s both;
}
.js .rechnung.is-gezeichnet .punkt-ende--klein{ transition-delay:1.8s; animation-delay:1.8s; }
.js .rechnung.is-gezeichnet .rechnung__betrag{ opacity:1; transition:opacity .5s var(--ease) 1.7s; }
.js .rechnung.is-gezeichnet .rechnung__betrag--klein{ transition-delay:1.95s; }

@keyframes punktPop{
  from{ transform:scale(.2); transform-box:fill-box; transform-origin:center; }
  to{ transform:scale(1); transform-box:fill-box; transform-origin:center; }
}

/* Die Zahl kommt mit etwas Wucht herein */
.js .zahl{ opacity:0; transform:translateY(14px) scale(.94); transform-origin:left center; }
.js .rente.is-in .zahl{
  opacity:1; transform:none;
  transition:opacity .5s var(--ease), transform .75s cubic-bezier(.2,1.3,.5,1);
}

/* Die handschriftliche Notiz wird zuletzt hingekritzelt */
.js .notiz{ opacity:0; transform:translateY(10px) rotate(-3deg); }
.js .rente.is-in .notiz{
  opacity:1; transform:none;
  transition:opacity .6s var(--ease) 1.15s, transform .7s cubic-bezier(.34,1.4,.64,1) 1.15s;
}

/* Das CI-Band laeuft einmal durch */
.js .ci-band{ background-size:220% 100%; }
.js .benefits.is-sichtbar .ci-band{
  animation:bandLauf 2.2s var(--ease) both;
}
@keyframes bandLauf{
  from{ background-position:100% 0; }
  to{ background-position:0 0; }
}

@media (prefers-reduced-motion: reduce){
  .karte:hover{ transform:none; }
  .js .karte .karte__icon,
  .js .gesundheit__liste .icon-kreis,
  .js .zahl, .js .notiz,
  .js .flaeche, .js .punkt-ende, .js .rechnung__betrag{
    opacity:1; transform:none; animation:none;
  }
  .js .kurve{ stroke-dasharray:none; stroke-dashoffset:0; }
  .js .mark--malen{ background-size:100% .22em; }
  .js .ci-band{ animation:none; background-size:100% 100%; }
}

/* =========================================================
   BETRIEBSVIDEO
   ========================================================= */
.film{
  background:var(--dunkel);
  color:var(--text-invers);
  padding-block:var(--section-y);
}
.film__inner{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(32px,5vw,72px);
  align-items:center;
}
@media (max-width:900px){ .film__inner{ grid-template-columns:1fr; } }

.film__text p{ margin-top:18px; color:var(--text-invers-leise); max-width:44ch; }
.film__list{ list-style:none; margin:clamp(22px,3vw,30px) 0 0; padding:0; display:grid; gap:12px; }
.film__list li{ display:flex; gap:12px; align-items:flex-start; font-size:.98rem; color:var(--text-invers-leise); }
.film__list li::before{
  content:""; flex:none;
  width:20px; height:20px; margin-top:3px; border-radius:50%;
  background:var(--rot) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center/13px no-repeat;
}

.film__player{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-stark);
  border:1px solid var(--linie-invers);
  background:#000;
}
.film__player video{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }

.film__play{
  position:absolute; inset:0; margin:auto;
  width:82px; height:82px; border-radius:50%;
  display:grid; place-items:center;
  border:0; cursor:pointer;
  background:var(--rot); color:#fff;
  box-shadow:0 16px 40px -12px rgba(0,0,0,.7);
  transition:transform .22s var(--ease), opacity .3s;
}
.film__play:hover{ transform:scale(1.08); }
.film__play svg{ margin-left:3px; }
.film__play[hidden]{ display:none; }

/* =========================================================
   ABLAUF
   ========================================================= */
.process{ background:var(--weiss); padding-block:var(--section-y); }
.process__inner{
  display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:clamp(36px, 5vw, 80px); align-items:center;
}
@media (max-width:900px){ .process__inner{ grid-template-columns:1fr; } }

.process__media{ margin:0; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
.process__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; }

.process__steps h2{ margin-bottom:clamp(28px,4vw,40px); }
.steps{ list-style:none; margin:0 0 clamp(32px,4vw,44px); padding:0; display:grid; gap:clamp(22px,3vw,32px); }
.steps li{ display:flex; gap:20px; align-items:flex-start; }
.steps__num{
  flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  width:52px; height:52px; border-radius:50%;
  background:var(--dunkel-panel); color:#fff;
  font-weight:800; font-size:1.25rem;
}
.steps h3{ margin-bottom:6px; }
.steps p{ color:var(--text-leise); font-size:.99rem; }

/* =========================================================
   FOOTER
   ========================================================= */
.footer{
  background:var(--dunkel-panel);
  color:var(--text-invers);
  padding-block:clamp(52px,7vw,84px) 32px;
}
/* Unter 861 px liegt der Sticky-CTA (84 px) fest über dem Seitenende.
   Ohne diesen Puffer verschwindet der Rechtstext darunter – und der
   Button „Tracking-Einstellungen" wäre gar nicht erst anklickbar. */
@media (max-width:860px){
  .footer{ padding-bottom:calc(116px + env(safe-area-inset-bottom)); }
}
.footer__grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr;
  gap:clamp(32px,4vw,56px);
  padding-bottom:clamp(36px,5vw,56px);
  border-bottom:1px solid var(--linie-invers);
}
@media (max-width:760px){ .footer__grid{ grid-template-columns:1fr; } }

.footer__logo{ height:52px; width:auto; margin-bottom:18px; }
.footer__brand p{ color:var(--text-invers-leise); font-size:.95rem; max-width:32ch; }

.footer__col h2{
  font-size:.85rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.14em;
  color:var(--rot-hell); margin-bottom:16px;
}
.footer__col ul{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.footer__col li{ color:var(--text-invers-leise); font-size:.96rem; display:flex; gap:.55em; }
.footer__col a{ color:var(--text-invers-leise); text-decoration:none; transition:color .18s; }
.footer__col a:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }

/* Tap-Targets: die Rechtslinks waren nur 25px hoch und damit auf dem
   Handy kaum zu treffen. */
.footer__col ul a{
  display:inline-block;
  padding-block:10px;
  min-height:24px;
}

.footer__legal{ padding-top:28px; }
.footer__legal p{ font-size:.76rem; line-height:1.65; color:rgba(255,255,255,.42); max-width:95ch; }
/* Inline-Link im Rechtstext. Das vertikale Padding vergrößert nur die
   Trefferfläche für den Daumen – bei einem Inline-Element wächst die
   Zeilenhöhe dadurch nicht, das Layout bleibt also stehen. */
.footer__link-btn{
  background:none; border:0;
  padding:12px 0; margin:-12px 0;
  font:inherit; color:rgba(255,255,255,.62);
  text-decoration:underline; text-underline-offset:2px;
  cursor:pointer;
}
.footer__link-btn:hover{ color:var(--text-invers); }



/* =========================================================
   DER GANZ NORMALE DIENSTAG
   ========================================================= */
.alltag{
  position:relative;
  background:var(--schwarz);
  color:var(--text-invers);
  padding-block:var(--section-y);
}
.alltag::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:5px;
  background:var(--ci-verlauf);
}
.alltag__head{ max-width:60ch; margin-bottom:clamp(36px,5vw,56px); }
.alltag__lead{
  margin-top:18px; color:var(--text-invers-leise);
  font-size:clamp(1rem,1.1vw+.8rem,1.15rem);
}

.alltag__liste{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr));
  gap:clamp(14px,1.8vw,22px);
}
@media (max-width:900px){ .alltag__liste{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:560px){ .alltag__liste{ grid-template-columns:1fr; } }

.alltag__item{
  background:var(--dunkel-panel);
  border:1px solid var(--linie-invers);
  border-left:3px solid var(--rot);
  border-radius:var(--radius);
  padding:clamp(20px,2.4vw,28px);
}
.alltag__zitat{
  font-weight:800; letter-spacing:-.015em;
  font-size:1.08rem; line-height:1.3;
  margin-bottom:10px;
}
.alltag__item p:last-child{ color:var(--text-invers-leise); font-size:.95rem; }

.alltag__kippe{
  margin-top:clamp(40px,5vw,64px);
  padding:clamp(26px,3.4vw,44px);
  border-radius:var(--radius-lg);
  background:var(--dunkel);
  border:1px solid var(--linie-invers);
  max-width:70ch;
}
.alltag__kippe-frage{ color:var(--text-invers-leise); font-size:.98rem; }
.alltag__kippe-zitat{
  margin:12px 0 16px;
  font-size:clamp(1.4rem,2.6vw,2.1rem);
  font-weight:800; letter-spacing:-.022em; line-height:1.15;
  color:var(--text-invers);
}
.alltag__kippe-antwort{ color:var(--text-invers-leise); max-width:60ch; }
.alltag__kippe .btn{ margin-top:clamp(22px,3vw,30px); }

/* =========================================================
   ZWEI STELLEN
   ========================================================= */
.stellen{ background:var(--weiss); padding-block:var(--section-y); }
.stellen__head{ max-width:58ch; margin-bottom:clamp(36px,5vw,56px); }
.stellen__lead{
  margin-top:18px; color:var(--text-leise);
  font-size:clamp(1rem,1.1vw+.8rem,1.15rem);
}

.stellen__grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--gap); }
@media (max-width:860px){ .stellen__grid{ grid-template-columns:1fr; } }

.stelle{
  background:var(--offweiss);
  border:1px solid var(--linie);
  border-radius:var(--radius-lg);
  padding:clamp(24px,3vw,38px);
  position:relative; overflow:hidden;
}
.stelle::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:var(--ci-verlauf);
}
.stelle__label{
  font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:var(--rot); margin-bottom:12px;
}
.stelle h3{ margin-bottom:12px; }
.stelle__text{ color:var(--text-leise); margin-bottom:clamp(18px,2.4vw,26px); }

.stelle__liste{ list-style:none; margin:0; padding:0; display:grid; gap:13px; }
.stelle__liste li{
  display:flex; gap:12px; align-items:flex-start;
  font-size:.97rem; line-height:1.5;
}
.stelle__liste li::before{
  content:""; flex:none; width:9px; height:9px; margin-top:.5em;
  border-radius:50%; background:var(--ci-verlauf);
}

.stellen__cta{ margin-top:clamp(36px,5vw,56px); text-align:center; }
.stellen__note{ margin-top:16px; font-size:.92rem; color:var(--text-leise); }

/* =========================================================
   EINWÄNDE
   ========================================================= */
.einwaende{ background:var(--hell); padding-block:var(--section-y); }
.einwaende__head{ max-width:52ch; margin-bottom:clamp(34px,4.5vw,52px); }
.einwaende__lead{ margin-top:16px; color:var(--text-leise); font-size:clamp(1rem,1.1vw+.8rem,1.12rem); }

.einwaende__liste{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
  gap:clamp(14px,1.8vw,22px);
}
@media (max-width:780px){ .einwaende__liste{ grid-template-columns:1fr; } }

.einwand{
  background:var(--weiss);
  border:1px solid var(--linie);
  border-radius:var(--radius);
  padding:clamp(22px,2.6vw,32px);
}
.einwand__frage{
  font-size:clamp(1.1rem,1.3vw+.75rem,1.35rem);
  font-weight:800; letter-spacing:-.018em; line-height:1.25;
  margin-bottom:12px;
}
.einwand p:last-child{ color:var(--text-leise); font-size:.97rem; }

/* =========================================================
   STICKY MOBILE CTA
   ========================================================= */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:50;
  padding:12px clamp(16px,5vw,20px) calc(12px + env(safe-area-inset-bottom));
  background:rgba(18,18,18,.92);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border-top:1px solid var(--linie-invers);
  transform:translateY(110%);
  transition:transform .35s var(--ease);
}
.sticky-cta.is-visible{ transform:translateY(0); }
.sticky-cta .btn{ width:100%; }
@media (min-width:861px){ .sticky-cta{ display:none; } }

/* Solange das Tracking-Banner steht, rutscht der Sticky-CTA darüber,
   sonst verdecken sich die beiden gegenseitig. */
body.hat-trackingbar .sticky-cta{ bottom:var(--trackingbar-hoehe, 190px); }

/* =========================================================
   TRACKING-BANNER (Einwilligung Meta-Pixel)
   Achtung: NICHT .consent nennen – die Klasse gehört bereits
   der Einwilligungs-Checkbox im Formular.
   ========================================================= */
.trackingbar{
  position:fixed; left:0; right:0; bottom:0; z-index:60;
  background:rgba(14,14,14,.97);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border-top:1px solid var(--linie-invers);
  color:var(--text-invers);
  padding-block:16px calc(16px + env(safe-area-inset-bottom));
  box-shadow:0 -20px 50px -28px rgba(0,0,0,.9);
}
.trackingbar[hidden]{ display:none; }

.trackingbar__inner{
  display:flex; align-items:center; gap:clamp(14px,2.5vw,32px);
  flex-wrap:wrap;
}
.trackingbar__text{
  flex:1 1 min(46ch, 100%);
  margin:0;
  font-size:.92rem; line-height:1.5;
  color:var(--text-invers-leise);
}
.trackingbar__aktionen{
  display:flex; gap:10px; flex:0 0 auto;
}
.trackingbar__aktionen .btn{ padding:13px 22px; font-size:.93rem; }

@media (max-width:620px){
  .trackingbar__aktionen{ width:100%; }
  .trackingbar__aktionen .btn{ flex:1 1 0; padding-inline:12px; }
}

/* =========================================================
   SCROLL-REVEAL
   ========================================================= */
.js .reveal{ opacity:0; transform:translateY(22px); }
.js .reveal.is-in{
  opacity:1; transform:none;
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.js .reveal.is-in:nth-child(2){ transition-delay:.07s; }
.js .reveal.is-in:nth-child(3){ transition-delay:.14s; }
.js .reveal.is-in:nth-child(4){ transition-delay:.21s; }

@media (prefers-reduced-motion: reduce){
  .js .reveal{ opacity:1; transform:none; }
  .btn:hover, .reason:hover, .team__grid figure:hover img{ transform:none; }
}

@media print{
  .funnel, .sticky-cta, .marquee, .film, .hero__media, .trackingbar{ display:none; }
}
