:root{--navy:#08283d;--dark:#052236;--green:#38651f;--lime:#badd94;--cream:#f6f7f3;--line:#dbe3d7;--text:#445554;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--navy);background:#fff;line-height:1.5}
*{box-sizing:border-box}body{margin:0}img{display:block;max-width:100%;height:auto}a{color:inherit}a:focus-visible{outline:3px solid #679d42;outline-offset:4px}h1,h2,h3,p,figure{margin:0}ul{padding:0;margin:0;list-style:none}.wrap{width:min(1160px,calc(100% - 64px));margin-inline:auto}.sr,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{position:fixed;top:10px;left:10px;padding:10px;background:#fff;z-index:5}.top,.brand,nav,.buttons,.values .wrap,.foot{display:flex;align-items:center}.top,.foot{justify-content:space-between}.top{min-height:82px;gap:24px}.brand{gap:12px;text-decoration:none;font-size:.94rem;font-weight:850;letter-spacing:.055em}.brand img{width:66px;mix-blend-mode:multiply}nav{gap:28px;font-size:.94rem;font-weight:650}nav a{text-decoration:none}nav a:hover,.foot a:hover{text-decoration:underline}.nav-cta{border:1px solid #aebfab;border-radius:8px;padding:8px 16px}
.hero{background:var(--cream);overflow:hidden}.hero-inner{position:relative;display:grid;grid-template-columns:1.04fr 1fr;align-items:center;gap:42px;padding-block:76px}.eyebrow{display:flex;align-items:center;gap:9px;color:var(--green);font-size:.76rem;text-transform:uppercase;letter-spacing:.16em;font-weight:850}.eyebrow span{width:8px;height:8px;background:currentColor;border-radius:50%}h1{font-size:clamp(2.7rem,5.1vw,5.2rem);line-height:1.02;letter-spacing:-.073em;margin-block:18px 22px;font-weight:850}h1 em{font-style:normal;color:var(--green)}.lead{max-width:46ch;font-size:1.05rem;color:var(--text)}.buttons{gap:10px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;align-items:center;gap:10px;border-radius:8px;padding:12px 16px;border:1px solid transparent;font-size:.9rem;font-weight:750;text-decoration:none}.primary{color:white;background:var(--green)}.primary:hover{background:#2a4f17}.secondary{border-color:#c6d1c3}.secondary:hover{background:#e8eee5}.hero-photo{min-width:0;position:relative;isolation:isolate}.hero-photo::before{content:"";position:absolute;inset:16px -14px -14px 16px;border-radius:24px;background:#dce7d4;z-index:-1}.hero-photo img{width:100%;height:370px;object-fit:cover;object-position:53% center;border-radius:24px}.values{background:var(--navy);color:white}.values .wrap{justify-content:center;gap:clamp(12px,6vw,88px);min-height:59px;font-size:.9rem;font-weight:720}.values span::before{content:"";display:inline-block;vertical-align:middle;width:6px;height:6px;border-radius:50%;background:var(--lime);margin-right:9px}
.section{padding-block:72px}h2{font-size:clamp(2rem,4vw,3.3rem);letter-spacing:-.058em;line-height:1.08;margin-top:10px}.services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:27px}.services li{padding:20px;border:1px solid var(--line);border-radius:14px;background:#fbfcf9}.number{display:inline-grid;place-items:center;background:#e6eedf;color:var(--green);font-size:.78rem;font-weight:850;border-radius:50%;width:33px;height:33px;margin-bottom:14px}.services h3{font-size:1.05rem;line-height:1.26}.services p,.region p:not(.eyebrow){color:var(--text);margin-top:7px;font-size:.94rem}.region{background:#edf2e9;padding-block:48px}.region-inner{display:flex;align-items:center;gap:32px}.region img{width:134px;border-radius:50%;mix-blend-mode:multiply}.places{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.places li{background:#fff;border-radius:100px;padding:5px 11px;font-weight:720;font-size:.83rem}.contact{background:var(--navy);color:white;padding-block:64px}.contact .eyebrow{color:var(--lime)}.contact p:not(.eyebrow){color:#e2eae8;margin-top:12px}.contact-inner{display:grid;grid-template-columns:1.25fr 1fr;gap:36px;align-items:center}address{font-style:normal;min-width:0}address a{display:block;padding:13px 0;border-bottom:1px solid #617780;text-decoration:none;font-weight:750;overflow-wrap:anywhere}address a:hover{text-decoration:underline}address small{display:block;color:var(--lime);font-weight:650}address span{margin-left:5px}.foot{gap:12px;min-height:62px;color:#e0e8e9;font-size:.85rem}footer{background:var(--dark)}.foot a{text-decoration:none;white-space:nowrap}
@media(max-width:900px){.hero-inner{gap:25px}.hero-photo img{height:320px}.services{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.wrap{width:calc(100% - 36px)}.top{min-height:67px;gap:10px}.brand{gap:7px;font-size:.73rem}.brand img{width:46px}nav{gap:10px;font-size:.78rem}nav a[href="#einsatzgebiet"]{display:none}.nav-cta{padding:5px 8px}.hero-inner{grid-template-columns:1fr;padding-block:41px 33px;gap:25px}.hero-photo img{height:220px}.hero-photo::before{inset:8px -5px -6px 8px}.values .wrap{font-size:.78rem;gap:14px}.section,.contact{padding-block:43px}.services{gap:9px}.services li{padding:12px;overflow-wrap:anywhere}.services h3{font-size:.95rem}.services p{font-size:.86rem}.region-inner{gap:15px}.region img{width:69px}.contact-inner{grid-template-columns:1fr;gap:12px}.foot{font-size:.74rem}}

.workflow {
  background: #f6f7f3;
}
.steps {
  counter-reset: step;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
  padding: 0;
  margin: 28px 0 0;
  list-style: none;
}
.steps li {
  border-top: 2px solid #aac29b;
  padding: 17px 0 0;
  counter-increment: step;
}
.steps h3::before {
  content: counter(step) ". ";
  color: var(--green);
}
.steps p {
  margin-top: 6px;
  color: var(--text);
}
.contact-inner {
  grid-template-columns: minmax(220px, .85fr) minmax(0, 1.35fr);
  align-items: start;
}
.contact-inner address { grid-column: 1; }
.request {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: var(--navy);
  background: #fff;
  padding: clamp(18px, 4vw, 38px);
  border-radius: 18px;
}
.contact .form-progress,
.contact .form-status {
  color: var(--green);
  font-size: .93rem;
}
.contact .form-progress { margin-top: 0; }
.request fieldset {
  min-width: 0;
  padding: 0;
  margin: 10px 0 0;
  border: 0;
}
.request legend {
  color: var(--navy);
  font-size: clamp(1.35rem, 3vw, 1.7rem);
  font-weight: 800;
  padding: 0;
  margin-bottom: 12px;
}
.request label {
  display: block;
  font-size: .9rem;
  font-weight: 700;
  margin-bottom: 13px;
}
.request input,
.request select,
.request textarea {
  display: block;
  width: 100%;
  margin-top: 5px;
  border: 1px solid #aebbb2;
  border-radius: 7px;
  background: #fafbf9;
  color: var(--navy);
  font: inherit;
  font-weight: 450;
  padding: 9px;
}
.request textarea { resize: vertical; }
.request :focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.form-row, .form-actions { display: flex; gap: 12px; }
.form-row > * { flex: 1 1 0; min-width: 0; }
.optional { font-weight: 400; }
.form-actions { margin-top: 12px; flex-wrap: wrap; }
.form-actions button {
  border: 1px solid var(--green);
  border-radius: 8px;
  font: inherit;
  font-weight: 700;
  color: #fff;
  background: var(--green);
  padding: 9px 16px;
  cursor: pointer;
}
.form-actions button[data-back] { color: var(--green); background: #fff; }
.form-actions button:disabled { opacity: .65; cursor: wait; }
.review { margin: 0; overflow-wrap: anywhere; }
.review dt { font-weight: 750; }
.review dd { margin: 0 0 10px; white-space: pre-wrap; }
.trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 720px) {
  .steps, .contact-inner { grid-template-columns: 1fr; }
  .request { grid-column: 1; grid-row: auto; margin-top: 12px; }
  nav a[href="#ablauf"] { display: none; }
}

.request [hidden] { display: none; }
.service-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 165px), 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.service-options label, .request .read-notice {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.service-options label {
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 9px;
  margin: 0;
  cursor: pointer;
}
.service-options label:has(:checked) { border-color: var(--green); background: #edf2e9; }
.request input[type="radio"], .request input[type="checkbox"] {
  flex: none;
  width: auto;
  accent-color: var(--green);
}
.contact .request p:not(.eyebrow) { color: var(--text); }
.form-privacy { margin-bottom: 12px; font-size: .9rem; }
.review section {
  position: relative;
  border-bottom: 1px solid var(--line);
  padding: 9px 0;
}
.review h3 { padding-right: 78px; }
.review button {
  position: absolute;
  right: 0;
  top: 9px;
  color: var(--green);
  background: none;
  border: 0;
  text-decoration: underline;
  cursor: pointer;
}
.review dl { margin: 6px 0 0; }

.form-meter {
  display: block;
  width: 100%;
  height: 7px;
  margin: 8px 0 19px;
  accent-color: var(--green);
}
.step-heading {
  display: flex;
  align-items: center;
  gap: 10px;
}
.step-heading svg {
  flex: none;
  color: var(--green);
}
.service-options label {
  position: relative;
  align-items: center;
  min-height: 60px;
}
.service-options img, .other-icon {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
}
.other-icon {
  display: grid;
  place-items: center;
  background: var(--navy);
  color: #fff;
}
.request .service-options input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
}
.service-options label:has(:focus-visible) {
  outline: 2px solid var(--green);
  outline-offset: 3px;
}

.request .service-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 22px;
  gap: 9px;
}
.request .service-options label {
  display: grid;
  align-content: start;
  justify-items: start;
  gap: 12px;
  min-height: 112px;
  padding: 13px;
  border-radius: 4px;
  overflow-wrap: anywhere;
}
.request .service-options label:last-child {
  grid-column: 1 / -1;
  grid-template-columns: auto 1fr;
  align-items: center;
  align-content: center;
  min-height: 74px;
  padding-right: 35px;
}
.service-symbol {
  color: var(--navy);
}
.symbol-accent {
  stroke: var(--green);
}
.service-arrow {
  position: absolute;
  right: 12px;
  top: 12px;
  font-size: 1rem;
  font-weight: 400;
}
.request .form-actions {
  justify-content: space-between;
  margin-top: 23px;
}
.form-actions button[data-next], .form-actions button[data-send] {
  margin-left: auto;
  background: var(--navy);
  border-color: var(--navy);
}
.form-actions button[data-next] span {
  margin-left: 10px;
}
.request .form-footnote {
  font-size: .78rem;
  margin-top: 15px;
}
