:root{
  --bg:#f7f4ee;
  --paper:#fffdfa;
  --ink:#111820;
  --muted:#6e655d;
  --green:#006451;
  --green-dark:#0f4b40;
  --sand:#efe8dc;
  --line:#e6ded3;
  --shadow:0 12px 30px rgba(0,0,0,.05);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;max-width:100%;overflow-x:hidden}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55;max-width:100%;overflow-x:hidden}
img{display:block;width:100%;height:auto;object-fit:cover}
a{color:inherit}
.site-header{height:96px;background:#faf8f3;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 7vw;position:sticky;top:0;z-index:20}
.brand{text-decoration:none;color:var(--ink);display:block}.brand-main{font-size:22px;font-weight:800;letter-spacing:-.04em;display:block;line-height:1}.brand-main span{color:var(--green)}.brand-sub{display:block;font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.04em;margin-top:4px}.nav{display:flex;gap:28px;align-items:center}.nav a{color:#333;text-decoration:none;font-weight:700;border-radius:999px;padding:11px 0}.nav a.active{background:var(--green);color:white!important;padding:11px 18px}.nav a:hover{color:var(--green)}.nav-cta{border:1px solid var(--green);padding:11px 18px!important;color:var(--green)!important}.nav-cta:hover{background:var(--green);color:#fff!important}.nav-toggle{display:none;border:1px solid var(--line);background:var(--paper);border-radius:999px;color:var(--green);font-weight:800;font-size:1.2rem;padding:9px 13px}
.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;border-radius:999px;padding:13px 20px;text-decoration:none;font-weight:800;width:max-content}.primary{background:var(--green);color:white!important}.ghost{background:transparent;border:1px solid rgba(255,255,255,.7);color:white!important}.hero{display:grid;grid-template-columns:.9fr 1.1fr;min-height:620px;background:var(--sand);position:relative;overflow:hidden}.hero>img{position:static;inset:auto;height:100%;min-height:620px;order:2;filter:none}.hero-overlay{display:none}.hero-content{order:1;color:var(--ink);padding:8vw 6vw 6vw 7vw;display:flex;flex-direction:column;justify-content:center;max-width:none}.hero .eyebrow{color:var(--green)}.hero h1{font-size:clamp(42px,6vw,84px);line-height:.95;letter-spacing:-.06em;margin:16px 0 24px}.hero-text{font-size:1.15rem;color:var(--muted);max-width:690px;margin:0}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px}.hero .ghost{border-color:var(--green);color:var(--green)!important;background:transparent}.eyebrow,.section-kicker{margin:0 0 16px;text-transform:uppercase;letter-spacing:.16em;font-size:13px;font-weight:800;color:var(--green)}h1,h2,h3,h4,p{overflow-wrap:anywhere}h2{font-size:clamp(34px,4.8vw,64px);line-height:1;letter-spacing:-.05em;margin:14px 0 24px}h3{font-size:26px;line-height:1.12;margin:0 0 12px}.lead{font-size:1.18rem;color:var(--muted);max-width:760px}.intro{padding:7vw;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,7vw,100px);background:var(--paper)}.intro h2{margin:14px 0 0}.intro-copy{align-self:center;font-size:1.08rem;color:var(--muted)}.visual-story{padding:7vw;background:var(--sand)}.visual-story .story-head{max-width:980px;margin:0 auto 34px}.visual-story .story-head h2{margin:14px 0 18px}.visual-story .story-head p{max-width:760px;color:var(--muted);font-size:1.05rem}.process-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:24px}.process-gallery figure{margin:0;position:relative;border-radius:28px;overflow:hidden;background:white;border:1px solid var(--line);box-shadow:var(--shadow)}.process-gallery img{height:260px}.process-gallery figcaption{position:absolute;left:16px;bottom:14px;background:rgba(255,255,255,.9);padding:9px 13px;border-radius:999px;font-weight:800;font-size:.9rem}.statement{background:var(--green);color:white;padding:7vw}.statement p{font-size:clamp(36px,5.2vw,72px);line-height:1.05;letter-spacing:-.055em;max-width:1100px;margin:0}.offers{padding:7vw;background:var(--paper)}.section-head{max-width:980px;margin-bottom:34px}.section-head h2{margin:14px 0 0}.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.offer-card{background:white;border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.offer-card img{height:270px}.offer-card>div{padding:24px;display:flex;flex-direction:column;flex:1}.offer-card p{color:var(--muted);margin:0 0 22px}.offer-card h3 span{display:block;font-size:1rem;color:var(--muted);font-weight:700;margin-top:4px;line-height:1.25}.offer-card a{margin-top:auto;text-decoration:none;color:var(--green);font-weight:800}.split{display:grid;grid-template-columns:1fr 1fr;min-height:560px;background:var(--bg)}.split.reverse{grid-template-columns:1fr 1fr}.split.reverse .split-image{order:2}.split.reverse .split-content{order:1}.split-content{padding:7vw;display:flex;flex-direction:column;justify-content:center}.split-content p{color:var(--muted);font-size:1.05rem}.split-image img{height:100%;min-height:560px}.contact{padding:8vw 7vw;background:var(--green);color:white}.contact .section-kicker{color:#dceeea}.contact h2{color:white;margin:14px 0 20px;max-width:1100px}.contact p:not(.section-kicker){color:rgba(255,255,255,.88);font-size:1.08rem}.contact .primary,.subpage-cta .primary{background:white;color:var(--green)!important}.footer{padding:30px 7vw;background:var(--green-dark);color:white}.footer-rich{display:flex;justify-content:space-between;align-items:center;gap:28px}.footer-brand strong{font-size:1.25rem;letter-spacing:-.04em}.footer-brand strong span{color:#fff}.footer-brand p{margin:.35rem 0 0;color:rgba(255,255,255,.78)}.footer-links{display:flex;flex-wrap:wrap;gap:18px}.footer-links a{color:rgba(255,255,255,.82);text-decoration:none}.detail-section{padding:clamp(80px,9vw,130px) 7vw;background:var(--paper)}.detail-header{max-width:980px;margin:0 0 42px}.detail-header h1{font-size:clamp(40px,5.4vw,76px);line-height:.98;letter-spacing:-.055em;margin:14px 0 18px}.detail-media-row,.about-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:34px;align-items:stretch}.detail-content{background:white;border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:var(--shadow)}.detail-content p,.detail-content li{color:var(--muted)}.detail-content h3{margin-bottom:14px}.detail-image-card,.about-photo{margin:0;border-radius:28px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:white}.detail-image-card img,.about-photo img{height:100%;min-height:420px}.mini-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px}.mini-cards article{background:var(--bg);border:1px solid var(--line);border-radius:22px;padding:22px}.mini-cards h4{margin:0 0 8px;font-size:1.1rem}.mini-cards p{margin:0;color:var(--muted)}.subpage-cta{background:var(--green);color:#fff;padding:7vw}.cta-card{display:flex;justify-content:space-between;align-items:center;gap:28px}.cta-card h2{color:#fff;margin:14px 0 16px}.cta-card p{color:rgba(255,255,255,.88)}.download-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.download-card{background:#fff;border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:var(--shadow)}.download-card img{height:240px}.download-card div{padding:24px}.download-card p{color:var(--muted)}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:34px}.contact-form{background:#fff;border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:var(--shadow)}.contact-form label{display:block;font-weight:800;margin-top:12px}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:13px;margin-top:6px;font:inherit;background:var(--paper)}.contact-form select{width:100%;border:1px solid var(--line);border-radius:14px;padding:13px;margin-top:6px;font:inherit;background:var(--paper);color:var(--ink)}.contact-form button{border:0;margin-top:18px}.legal-page{padding:clamp(80px,9vw,130px) 7vw;background:var(--paper)}.legal-box{max-width:980px;background:white;border:1px solid var(--line);border-radius:28px;padding:clamp(28px,4vw,48px);box-shadow:var(--shadow)}.legal-box p,.legal-box li{color:var(--muted)}
@media(max-width:950px){.site-header{height:auto;min-height:82px;padding:20px 24px}.nav-toggle{display:inline-flex;margin-left:auto}.nav{display:none;position:absolute;left:18px;right:18px;top:calc(100% + 10px);background:#faf8f3;border:1px solid var(--line);box-shadow:0 20px 60px rgba(0,0,0,.12);border-radius:24px;padding:14px;flex-direction:column;align-items:stretch;gap:8px}.nav.open{display:flex}.nav a{display:block;padding:12px 14px!important}.nav-cta{text-align:center}.hero,.intro,.split,.split.reverse,.detail-media-row,.about-layout,.contact-layout,.download-grid{grid-template-columns:1fr}.hero-content{padding:52px 28px}.hero>img{height:430px;min-height:0}.process-gallery,.offer-grid,.mini-cards{grid-template-columns:1fr 1fr}.split.reverse .split-image,.split.reverse .split-content{order:initial}.split-image img,.detail-image-card img,.about-photo img{min-height:0;height:360px}.footer-rich{align-items:flex-start;flex-direction:column}.cta-card{flex-direction:column;align-items:flex-start}.detail-section,.intro,.visual-story,.offers,.statement,.contact,.subpage-cta{padding:54px 28px}}
@media(max-width:640px){.brand-main{font-size:20px}.brand-sub{font-size:11px}.hero h1{font-size:clamp(42px,14vw,64px)}h2{font-size:clamp(34px,12vw,54px)}.process-gallery,.offer-grid,.mini-cards{grid-template-columns:1fr}.process-gallery img,.offer-card img,.download-card img{height:220px}.detail-content{padding:24px}.footer-links{flex-direction:column;gap:10px}.button{width:100%}.hero-actions{width:100%}}

/* V21: Startseite ruhiger Übergang mit Collage statt grünem Statement-Balken */
.ansatz-collage{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:560px;
  background:var(--paper);
  border-top:1px solid var(--line);
}
.ansatz-image{min-height:560px;overflow:hidden;background:var(--sand)}
.ansatz-image img{height:100%;min-height:560px;object-fit:cover}
.ansatz-panel{
  padding:7vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:var(--paper);
}
.ansatz-panel h2{margin:14px 0 24px;max-width:780px}
.ansatz-panel p:not(.section-kicker){color:var(--muted);font-size:1.05rem;max-width:720px;margin:0 0 18px}
.ansatz-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.ansatz-tags span{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:9px 13px;font-weight:800;color:var(--green)}

@media(max-width:950px){
  .ansatz-collage{grid-template-columns:1fr}
  .ansatz-image,.ansatz-image img{min-height:0;height:360px}
  .ansatz-panel{padding:54px 28px}
}

/* V25: Farbflächen und Übergänge wie in der Bildertest-Webseite */
.hero{
  background:var(--sand);
  border-bottom:0;
}
.hero-content{
  background:var(--sand);
}
.ansatz-collage{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:560px;
  background:var(--paper);
  border-top:0;
  margin:0;
}
.ansatz-image{
  min-height:560px;
  overflow:hidden;
  background:var(--sand);
}
.ansatz-image img{
  width:100%;
  height:100%;
  min-height:560px;
  object-fit:cover;
}
.ansatz-panel{
  padding:7vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:var(--paper);
}
.ansatz-panel h2{
  margin:14px 0 24px;
  max-width:780px;
}
.ansatz-panel p:not(.section-kicker){
  color:var(--muted);
  font-size:1.05rem;
  max-width:720px;
  margin:0 0 18px;
}
.offers{
  background:var(--paper);
  border-top:0;
}
.section-head .lead{
  max-width:760px;
  color:var(--muted);
  font-size:1.08rem;
  margin-top:0;
}
@media(max-width:950px){
  .ansatz-collage{grid-template-columns:1fr}
  .ansatz-image,.ansatz-image img{min-height:0;height:360px}
  .ansatz-panel{padding:54px 28px}
}

/* V29: Tablet- und Smartphone-Ansicht beruhigen – Desktop bleibt unverändert */
@media (max-width: 950px){
  .hero{
    display:block;
    position:relative;
    min-height:720px;
    background:var(--sand);
    overflow:hidden;
  }
  .hero>img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    min-height:0;
    object-fit:cover;
    object-position:center center;
    order:initial;
    filter:none;
  }
  .hero-overlay{
    display:block;
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(239,232,220,.94) 0%, rgba(239,232,220,.82) 34%, rgba(239,232,220,.30) 68%, rgba(239,232,220,.10) 100%);
    pointer-events:none;
  }
  .hero-content{
    position:relative;
    z-index:2;
    background:transparent;
    color:var(--ink);
    padding:56px 28px 38px;
    min-height:0;
    justify-content:flex-start;
  }
  .hero .eyebrow{color:var(--green)}
  .hero h1{
    font-size:clamp(42px,7.2vw,64px);
    line-height:1.03;
    letter-spacing:-.055em;
    max-width:760px;
    margin:16px 0 24px;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  .hero-text{
    color:var(--muted);
    max-width:680px;
    font-size:1.08rem;
  }
  .hero-actions{margin-top:24px}
  .hero .ghost{
    border-color:var(--green);
    color:var(--green)!important;
    background:rgba(247,244,238,.35);
  }

  .ansatz-collage{
    display:flex;
    flex-direction:column;
    background:var(--paper);
  }
  .ansatz-panel{
    order:1;
    padding:58px 28px 44px;
  }
  .ansatz-image{
    order:2;
    min-height:0;
    height:auto;
    background:var(--paper);
  }
  .ansatz-image img{
    min-height:0;
    height:auto;
    object-fit:contain;
  }
  h1,h2,h3,h4,p{
    word-break:normal;
  }
}

@media (max-width: 640px){
  .hero{
    min-height:700px;
  }
  .hero-content{
    padding:52px 28px 32px;
  }
  .hero h1{
    font-size:clamp(36px,10.2vw,48px);
    line-height:1.08;
    letter-spacing:-.05em;
  }
  .hero-text{font-size:1.02rem}
  .ansatz-panel h2,
  .section-head h2{
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  .ansatz-panel{padding:54px 28px 40px}
}

/* V30: letzte Feinkorrekturen für Mobil/Tablet und CTA-Typografie */
/* Bereichs-Kicker im Haltung-Abschnitt wieder grün darstellen */
.split-content .section-kicker{
  color:var(--green);
}

@media (max-width: 950px){
  /* Fließtext im Hero-Bild besser lesbar, ohne das Bild dunkler zu machen */
  .hero-text{
    color:#1f2a2f;
    font-weight:500;
    text-shadow:0 1px 2px rgba(247,244,238,.75);
  }

  /* Ansatz-Überschrift mobil/tablet etwas ruhiger skalieren */
  .ansatz-panel h2{
    font-size:clamp(38px,6.2vw,54px);
    line-height:1.04;
  }

  /* Haltung & Arbeitsweise konsistenter und ohne harte Wortumbrüche */
  .split-content h2{
    font-size:clamp(38px,6.2vw,54px);
    line-height:1.04;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }

  /* Kontakt-CTA auf Unterseiten etwas kleiner als Hauptüberschriften */
  .subpage-cta h2{
    font-size:clamp(36px,6vw,52px);
    line-height:1.05;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
}

@media (max-width: 640px){
  .hero-text{
    color:#1b2529;
    font-size:1rem;
  }

  .ansatz-panel h2{
    font-size:clamp(34px,9.2vw,42px);
    line-height:1.06;
  }

  .split-content h2{
    font-size:clamp(30px,8.5vw,40px);
    line-height:1.07;
  }

  .subpage-cta h2{
    font-size:clamp(32px,8.5vw,40px);
    line-height:1.08;
  }
}

/* V31: mobile Überschriften-Hierarchie weiter beruhigen */
@media (max-width: 950px){
  /* Angebotsüberschrift auf Startseite kleiner */
  .section-head h2{
    font-size:clamp(32px,5.6vw,48px);
    line-height:1.06;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }

  /* Kontaktbereich auf der Startseite kleiner als Hauptüberschriften */
  .contact h2{
    font-size:clamp(34px,5.8vw,48px);
    line-height:1.07;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }

  /* Haltung & Arbeitsweise ruhiger und näher an der übrigen mobilen Hierarchie */
  .split-content h2{
    font-size:clamp(32px,5.6vw,46px);
    line-height:1.08;
  }
  .split-content .section-kicker{
    font-size:12px;
    letter-spacing:.16em;
  }
}

@media (max-width: 640px){
  .section-head h2{
    font-size:clamp(30px,8.2vw,38px);
    line-height:1.08;
  }
  .contact h2{
    font-size:clamp(30px,8.2vw,38px);
    line-height:1.08;
  }
  .split-content h2{
    font-size:clamp(28px,7.6vw,36px);
    line-height:1.1;
  }
  .split-content .section-kicker{
    font-size:12px;
  }
}

/* V32: kleine grüne Bereichsüberschrift „Haltung & Arbeitsweise“ exakt wie „Angebote“ */
.split-content .section-kicker{
  margin:0 0 16px;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:13px;
  font-weight:800;
  line-height:normal;
  color:var(--green);
}
@media (max-width:950px){
  .split-content .section-kicker{
    margin:0 0 16px;
    text-transform:uppercase;
    letter-spacing:.16em;
    font-size:13px;
    font-weight:800;
    line-height:normal;
    color:var(--green);
  }
}
@media (max-width:640px){
  .split-content .section-kicker{
    font-size:13px;
  }
}

/* V33: Desktop-Hero wieder wie in der Referenzversion ausbalancieren */
@media (min-width: 951px){
  .hero{
    grid-template-columns:1fr 1fr;
  }
  .hero h1{
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
}

/* V35: Test nur für Smartphone/Tablet – Hero-Text oben, Bild darunter. Desktop bleibt unverändert. */
@media (max-width: 950px){
  .hero{
    display:flex;
    flex-direction:column;
    min-height:0;
    background:var(--sand);
    overflow:visible;
  }
  .hero-content{
    order:1;
    position:relative;
    z-index:1;
    background:var(--sand);
    color:var(--ink);
    padding:52px 28px 44px;
    min-height:0;
    justify-content:flex-start;
  }
  .hero>img{
    order:2;
    position:static;
    inset:auto;
    width:100%;
    height:auto;
    min-height:0;
    object-fit:cover;
    object-position:center center;
    filter:none;
  }
  .hero-overlay{
    display:none;
  }
  .hero-text{
    color:var(--muted);
    text-shadow:none;
    font-weight:400;
  }
  .hero .ghost{
    border-color:var(--green);
    color:var(--green)!important;
    background:transparent;
  }
}

@media (max-width: 640px){
  .hero{
    min-height:0;
  }
  .hero-content{
    padding:46px 28px 42px;
  }
  .hero h1{
    font-size:clamp(36px,10.2vw,48px);
    line-height:1.08;
  }
}


/* V36: Mobile Hero-Kicker einzeilig halten */
@media (max-width: 640px){
  .hero .eyebrow{
    font-size:11px;
    letter-spacing:.11em;
    line-height:1.35;
    white-space:nowrap;
  }
}
@media (max-width: 380px){
  .hero .eyebrow{
    font-size:10px;
    letter-spacing:.07em;
  }
}
