:root{
  --paper:#F5F6F4;
  --panel:#EBEEE9;
  --ink:#14181A;
  --ink-soft:#4B534E;
  --pine:#0E5C4F;
  --pine-dark:#0A4A3F;
  --line:#CBD2CB;
  --cream:#FBFCFA;
  --max:1120px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.brand{
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  letter-spacing:-0.01em;
  color:var(--ink);
}
a{color:inherit;text-decoration:none;}
img,svg{display:block;max-width:100%;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px;}
:focus-visible{outline:2px solid var(--pine);outline-offset:3px;}
@media (prefers-reduced-motion: reduce){
  *{animation:none !important;transition:none !important;}
}

/* ---------- NAV ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(245,246,244,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
  box-shadow:0 2px 8px rgba(20,24,26,0.03);
}
nav.wrap{
  display:flex;align-items:center;justify-content:space-between;
  height:76px;
}
.brand{font-size:1.15rem;display:flex;align-items:center;gap:10px;}
.brand span{color:var(--pine);}
.brand-mark{flex-shrink:0;}
.nav-links{display:flex;gap:32px;font-size:0.95rem;}
.nav-links a{color:var(--ink-soft);transition:color .15s;padding:6px 0;}
.nav-links a:hover{color:var(--pine);}
.nav-links a.active{color:var(--pine);font-weight:600;border-bottom:2px solid var(--pine);}
.nav-cta{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--ink);color:var(--cream);
  padding:11px 20px;border-radius:2px;font-size:0.9rem;font-weight:500;
  transition:background .15s;
}
.nav-cta:hover{background:var(--pine-dark);}

.mobile-toggle{
  display:none;
  width:40px;height:40px;
  border:1px solid var(--line);
  background:var(--cream);
  align-items:center;justify-content:center;
  cursor:pointer;
}
.mobile-toggle span,.mobile-toggle span::before,.mobile-toggle span::after{
  content:'';display:block;width:18px;height:2px;background:var(--ink);
  position:relative;transition:transform .2s,opacity .2s;
}
.mobile-toggle span::before{position:absolute;top:-6px;}
.mobile-toggle span::after{position:absolute;top:6px;}
.mobile-toggle.open span{background:transparent;}
.mobile-toggle.open span::before{transform:translateY(6px) rotate(45deg);}
.mobile-toggle.open span::after{transform:translateY(-6px) rotate(-45deg);}

.mobile-menu{
  display:none;
  flex-direction:column;
  background:var(--cream);
  border-bottom:1px solid var(--line);
}
.mobile-menu.open{display:flex;}
.mobile-menu a{
  padding:16px 24px;border-bottom:1px solid var(--line);
  font-size:1rem;color:var(--ink-soft);
}
.mobile-menu a.active{color:var(--pine);font-weight:600;}
.mobile-menu a:last-child{border-bottom:none;}

@media (max-width:820px){
  .mobile-toggle{display:flex;}
  .nav-cta{display:none;}
}

@media (max-width:820px){
  .nav-links{display:none;}
  nav.wrap{height:64px;}
}

/* ---------- PAGE HEADER (used on subpages) ---------- */
.page-head{border-bottom:1px solid var(--line);background:var(--cream);padding:56px 0;}
.page-head .eyebrow{font-size:0.9rem;color:var(--ink-soft);margin-bottom:12px;}
.page-head h1{font-size:clamp(2rem,4vw,2.8rem);}
.page-head p{margin-top:14px;color:var(--ink-soft);max-width:52ch;}

/* ---------- HERO (home only) ---------- */
.hero{border-bottom:1px solid var(--line);position:relative;overflow:hidden;}
.hero .wrap{
  display:grid;grid-template-columns:1.15fr 0.85fr;gap:48px;
  padding-top:88px;padding-bottom:88px;
  align-items:end;
}
.hero-eyebrow{font-size:0.9rem;color:var(--ink-soft);margin-bottom:18px;}
.hero h1{font-size:clamp(2.3rem,5vw,3.6rem);line-height:1.05;max-width:12ch;}
.hero-lead{margin-top:22px;max-width:44ch;color:var(--ink-soft);font-size:1.05rem;}
.hero-actions{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap;}
.btn-primary{
  background:var(--pine);color:var(--cream);
  padding:14px 26px;border-radius:2px;font-size:0.95rem;font-weight:500;
  display:inline-block;transition:background .15s;
}
.btn-primary:hover{background:var(--pine-dark);}
.btn-secondary{
  border:1px solid var(--ink);color:var(--ink);
  padding:13px 25px;border-radius:2px;font-size:0.95rem;font-weight:500;
  display:inline-block;transition:background .15s,color .15s;
}
.btn-secondary:hover{background:var(--ink);color:var(--cream);}

.hero-panel{
  background:var(--panel);
  border:1px solid var(--line);
  box-shadow:0 4px 16px rgba(20,24,26,0.06);
  padding:28px;
  align-self:stretch;
  display:flex;flex-direction:column;justify-content:space-between;
}
.hero-panel svg{width:100%;height:auto;margin-bottom:24px;}
.hero-panel dl{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.hero-panel dt{font-size:0.8rem;color:var(--ink-soft);}
.hero-panel dd{font-family:'Space Grotesk',sans-serif;font-size:1.5rem;font-weight:600;margin-top:2px;}

@media (max-width:820px){
  .hero .wrap{grid-template-columns:1fr;padding-top:56px;padding-bottom:56px;gap:32px;}
  .hero h1{max-width:none;}
}

/* ---------- TRUST BAR ---------- */
.trust{border-bottom:1px solid var(--line);background:var(--cream);}
.trust .wrap{display:flex;flex-wrap:wrap;gap:0;padding-top:0;padding-bottom:0;}
.trust-item{flex:1 1 200px;padding:22px 24px;border-right:1px solid var(--line);font-size:0.88rem;color:var(--ink-soft);}
.trust-item:last-child{border-right:none;}
.trust-item b{display:block;font-family:'Space Grotesk',sans-serif;font-size:1.05rem;color:var(--ink);margin-bottom:2px;}

/* ---------- SECTION HEADS ---------- */
section{padding:88px 0;border-bottom:1px solid var(--line);}
section:last-of-type{border-bottom:none;}
section#leistungen-teaser{background:var(--cream);}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:48px;align-items:end;}
.section-head h2{font-size:clamp(1.7rem,3vw,2.3rem);}
.section-head p{color:var(--ink-soft);max-width:42ch;}
@media (max-width:720px){.section-head{grid-template-columns:1fr;}}

/* ---------- SERVICES (spec-sheet list) ---------- */
.service-list{border-top:1px solid var(--line);box-shadow:0 1px 3px rgba(20,24,26,0.04);}
.service-row{
  display:grid;grid-template-columns:56px 1fr auto;gap:24px;
  align-items:center;padding:26px 0;border-bottom:1px solid var(--line);
  transition:background .15s;
}
.service-row:hover{background:var(--panel);}
.service-num{font-family:'Space Grotesk',sans-serif;color:var(--pine);font-size:0.9rem;}
.service-name{font-family:'Space Grotesk',sans-serif;font-size:1.15rem;font-weight:500;}
.service-desc{color:var(--ink-soft);font-size:0.92rem;margin-top:4px;max-width:52ch;}
.service-tag{font-size:0.78rem;color:var(--ink-soft);border:1px solid var(--line);padding:5px 12px;white-space:nowrap;}
@media (max-width:640px){
  .service-row{grid-template-columns:32px 1fr;}
  .service-tag{grid-column:2;margin-top:10px;width:fit-content;}
}

/* teaser cards on home */
.teaser-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);box-shadow:0 2px 10px rgba(20,24,26,0.05);}
.teaser-card{background:var(--cream);padding:28px 24px;}
.teaser-card h3{font-size:1rem;margin-top:14px;}
.teaser-card p{font-size:0.88rem;color:var(--ink-soft);margin-top:8px;}
@media (max-width:820px){.teaser-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){.teaser-grid{grid-template-columns:1fr;}}

/* ---------- PROCESS ---------- */
.process-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);border-left:1px solid var(--line);
  background:var(--cream);box-shadow:0 2px 10px rgba(20,24,26,0.05);
}
.process-step{
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:28px 24px;min-height:190px;
  display:flex;flex-direction:column;justify-content:space-between;
}
.process-step .n{font-family:'Space Grotesk',sans-serif;color:var(--pine);font-size:1.4rem;}
.process-step h3{font-size:1rem;font-weight:600;margin-top:20px;}
.process-step p{font-size:0.88rem;color:var(--ink-soft);margin-top:8px;}
@media (max-width:820px){.process-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){.process-grid{grid-template-columns:1fr;}}

/* ---------- ABOUT ---------- */
.about .wrap{display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;}
.about-figure{background:var(--panel);border:1px solid var(--line);aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;}
.about-body p{color:var(--ink-soft);margin-top:16px;max-width:56ch;}
.about-body p:first-of-type{margin-top:0;}
@media (max-width:820px){
  .about .wrap{grid-template-columns:1fr;}
  .about-figure{aspect-ratio:16/9;}
}

/* ---------- TESTIMONIALS ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);box-shadow:0 2px 10px rgba(20,24,26,0.05);}
.testi{background:var(--cream);padding:28px;display:flex;flex-direction:column;justify-content:space-between;min-height:200px;}
.testi p{font-size:0.95rem;}
.testi footer{margin-top:20px;font-size:0.82rem;color:var(--ink-soft);border:none;padding:0;}
@media (max-width:820px){.testi-grid{grid-template-columns:1fr;}}

/* ---------- CONTACT ---------- */
.contact{border-bottom:none;}
.contact .wrap{display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;}
.contact-info dl{margin-top:28px;}
.contact-info dt{font-size:0.82rem;color:var(--ink-soft);margin-top:18px;}
.contact-info dd{font-family:'Space Grotesk',sans-serif;font-size:1.05rem;margin-top:2px;}
.contact-info dd:first-of-type,.contact-info dt:first-of-type{margin-top:0;}

form{display:flex;flex-direction:column;gap:18px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
label{font-size:0.82rem;color:var(--ink-soft);display:block;margin-bottom:6px;}
input,select,textarea{
  width:100%;background:var(--cream);border:1px solid var(--line);
  padding:12px 14px;font-family:'Inter',sans-serif;font-size:0.95rem;color:var(--ink);
  border-radius:2px;
}
input:focus,select:focus,textarea:focus{border-color:var(--pine);}
textarea{resize:vertical;min-height:110px;}
.form-submit{
  background:var(--ink);color:var(--cream);border:none;
  padding:15px 26px;font-size:0.95rem;font-weight:500;cursor:pointer;
  border-radius:2px;align-self:flex-start;transition:background .15s;
}
.form-submit:hover{background:var(--pine-dark);}
@media (max-width:820px){
  .contact .wrap{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
}

/* ---------- CTA BANNER ---------- */
.cta-banner{background:var(--ink);color:var(--cream);}
.cta-banner .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:56px;padding-bottom:56px;}
.cta-banner h2{color:var(--cream);font-size:clamp(1.5rem,3vw,2rem);}
.cta-banner p{color:#C9CFC9;margin-top:8px;}
.cta-banner .btn-primary{background:var(--cream);color:var(--ink);}
.cta-banner .btn-primary:hover{background:var(--panel);}

/* ---------- FOOTER ---------- */
footer.site{padding:36px 0;}
footer.site .wrap{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
  font-size:0.82rem;color:var(--ink-soft);
}
