
:root{
  --green:#3d684e;
  --green-dark:#294936;
  --green-soft:#eaf0eb;
  --blue-soft:#edf3f7;
  --beige:#f5f3ed;
  --violet:#3e2a8d;
  --text:#26332c;
  --muted:#67736c;
  --line:#d8dfda;
  --white:#fff;
  --max:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:#fff;line-height:1.65}
img{max-width:100%;display:block}
a{color:var(--green-dark)}
.container{width:min(var(--max),calc(100% - 40px));margin-inline:auto}
.skip-link{position:absolute;left:-9999px;top:0;background:#fff;padding:10px;z-index:999}
.skip-link:focus{left:10px}
.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}

.site-header{background:#fff;border-bottom:1px solid var(--line)}
.header-top{background:var(--green-dark);color:#fff;font-size:.88rem}
.header-top .container{display:flex;justify-content:flex-end;gap:22px;padding:7px 0}
.header-top a{color:#fff;text-decoration:none}
.header-main{min-height:112px;display:flex;align-items:center;gap:24px}
.logo{margin-right:auto;display:block}
.logo img{width:min(480px,42vw);height:auto}
.main-nav{display:flex;gap:18px;align-items:center}
.main-nav a{color:var(--text);text-decoration:none;font-weight:600;font-size:.93rem;padding:43px 0 39px;border-bottom:3px solid transparent;white-space:nowrap}
.main-nav a:hover,.main-nav a:focus,.main-nav a.active{color:var(--green);border-bottom-color:var(--green)}
.languages{display:flex;gap:4px}
.languages a{border:1px solid var(--line);padding:5px 7px;text-decoration:none;font-size:.82rem}
.languages a.active{background:var(--green);color:#fff;border-color:var(--green)}
.menu-button{display:none;border:0;background:transparent;padding:8px}
.menu-button span:not(.sr-only){display:block;width:25px;height:2px;background:var(--text);margin:5px 0}

.hero{background:linear-gradient(115deg,var(--beige),var(--green-soft));border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center;padding:62px 0}
.eyebrow,.section-label{text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--green);font-size:.78rem}
h1,h2,h3{line-height:1.2;margin-top:0}
h1{font-size:clamp(2.2rem,4vw,3.7rem);margin-bottom:22px}
h2{font-size:clamp(1.75rem,3vw,2.5rem);margin-bottom:22px}
h3{font-size:1.18rem}
.lead{font-size:1.13rem;color:#47544d;max-width:690px}
.button{display:inline-block;background:var(--green);border:1px solid var(--green);color:#fff;text-decoration:none;font-weight:700;padding:11px 18px;margin-top:10px}
.button:hover,.button:focus{background:var(--green-dark);border-color:var(--green-dark)}
.button.secondary{background:transparent;color:var(--green);margin-left:8px}
.button.catalogue{background:var(--violet);border-color:var(--violet)}

.page-hero{background:var(--green-soft);padding:48px 0;border-bottom:1px solid var(--line)}
.page-hero p{max-width:820px;font-size:1.08rem}
.breadcrumb{font-size:.88rem;color:var(--muted);margin-bottom:12px}
.breadcrumb a{color:var(--muted)}

.section{padding:72px 0}
.section-soft{background:var(--beige)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:start}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{border:1px solid var(--line);background:#fff;padding:25px}
.card p{color:var(--muted)}
.service-list{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}
.service-link{display:block;border:1px solid var(--line);padding:20px;text-decoration:none;background:#fff}
.service-link strong{display:block;color:var(--green-dark);margin-bottom:5px}
.service-link span{color:var(--muted);font-size:.93rem}
.image-frame{background:var(--green-soft);padding:16px;border:1px solid var(--line)}
.image-frame img{width:100%;height:100%;object-fit:cover}
.hero-photo{height:410px}
.hero-photo img{height:100%;object-fit:cover}
.check-list{list-style:none;padding:0}
.check-list li{position:relative;padding-left:27px;margin:10px 0}
.check-list li:before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}
.content-list{padding-left:20px}
.content-list li{margin:8px 0}
.notice{border-left:4px solid var(--green);background:var(--green-soft);padding:18px;margin:25px 0}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
.fact{border-top:3px solid var(--green);padding-top:12px}
.fact strong{display:block;color:var(--green);font-size:1.35rem}
.fact span{color:var(--muted);font-size:.9rem}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery figure{margin:0;border:1px solid var(--line);background:#fff}
.gallery img{width:100%;height:230px;object-fit:cover}
.gallery figcaption{padding:10px 12px;color:var(--muted);font-size:.88rem}
.gallery.two{grid-template-columns:repeat(2,1fr)}
.gallery.two img{height:310px}
.callout{background:var(--blue-soft);border:1px solid #d3e0e9;padding:26px}
.management{border:1px solid var(--line);background:#fff;padding:24px;margin-top:25px}
.management strong{font-size:1.1rem;color:var(--green-dark)}
.catalogue-panel{display:grid;grid-template-columns:1fr auto;align-items:center;gap:25px;background:#f0eef9;border-left:5px solid var(--violet);padding:26px}
.catalogue-panel p{margin-bottom:0}

.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:55px}
address{font-style:normal}
.contact-box{background:var(--beige);border:1px solid var(--line);padding:24px}
.contact-form{border:1px solid var(--line);padding:26px;background:#fff}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.contact-form label{display:block;font-weight:600;margin-bottom:15px}
.contact-form input,.contact-form textarea{width:100%;margin-top:5px;padding:10px;border:1px solid #b9c3bd;font:inherit}
.contact-form textarea{resize:vertical}
.consent{display:flex!important;gap:9px;font-weight:400!important;font-size:.9rem}
.consent input{width:auto;margin-top:5px}
.form-note{font-size:.83rem;color:var(--muted)}

.site-footer{background:var(--green-dark);color:#e6eee8;padding:42px 0 22px}
.footer-grid{display:grid;grid-template-columns:1.25fr .8fr .8fr;gap:35px}
.footer-logo{background:#fff;padding:8px;max-width:360px}
.site-footer h3{font-size:1rem;color:#fff}
.site-footer a{color:#fff}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:6px 0}
.copyright{border-top:1px solid rgba(255,255,255,.2);margin-top:28px;padding-top:18px;font-size:.86rem;color:#c9d6ce}

@media(max-width:1020px){
  .header-top{display:none}
  .header-main{min-height:88px}
  .logo img{width:360px;max-width:55vw}
  .menu-button{display:block}
  .main-nav{display:none;position:absolute;left:0;right:0;top:88px;background:#fff;border-bottom:1px solid var(--line);padding:18px;z-index:30;flex-direction:column;align-items:flex-start}
  .main-nav.open{display:flex}
  .main-nav a{padding:8px 0;border-bottom:0}
}
@media(max-width:820px){
  .hero-grid,.grid-2,.contact-grid{grid-template-columns:1fr}
  .grid-3,.gallery{grid-template-columns:repeat(2,1fr)}
  .service-list{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .catalogue-panel{grid-template-columns:1fr}
}
@media(max-width:600px){
  .container{width:min(var(--max),calc(100% - 28px))}
  .languages{display:none}
  .logo img{width:290px;max-width:70vw}
  .hero-grid{padding:42px 0}
  .section{padding:52px 0}
  .grid-3,.gallery,.gallery.two,.facts,.form-row{grid-template-columns:1fr}
  .gallery img,.gallery.two img{height:240px}
  .contact-form{padding:20px}
  .button.secondary{margin-left:0}
}


/* Version 4: Logo und Navigation */
.brand-row{
  background:#fff;
  border-bottom:1px solid var(--line);
}
.brand-inner{
  display:flex;
  justify-content:center;
  align-items:center;
  padding:18px 0 15px;
}
.brand-inner .logo{
  margin:0;
  width:min(820px,100%);
}
.brand-inner .logo img{
  width:100%;
  max-width:820px;
  height:auto;
  margin:0 auto;
}
.nav-bar{
  background:#fff;
  border-bottom:1px solid var(--line);
}
.nav-inner{
  min-height:56px;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  column-gap:16px;
}
.nav-inner .main-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:6px 18px;
  min-width:0;
}
.nav-inner .main-nav a{
  padding:17px 0 13px;
  font-size:.86rem;
  white-space:normal;
  text-align:center;
}
.nav-inner .languages{
  justify-self:end;
  flex-shrink:0;
}
.nav-inner .menu-button{
  display:none;
}

/* Bilder: nur proportional skalieren, niemals beschneiden */
.image-frame{
  display:flex;
  align-items:center;
  justify-content:center;
}
.image-frame img,
.hero-photo img,
.gallery img,
.gallery.two img{
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
}
.hero-photo{
  height:auto;
}
.gallery,
.gallery.two,
.gallery.three{
  align-items:center;
}
.gallery figure{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  padding:8px;
  background:#fff;
}
.gallery.three{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.gallery figcaption{
  display:none;
}

/* Der alte Geschäftsführer-Kasten wird nicht mehr dargestellt. */
.management{display:none}

/* Kein horizontales Scrollen durch Header oder Bildbereiche */
html,body{max-width:100%;overflow-x:hidden}

@media(max-width:1180px){
  .nav-inner{
    min-height:64px;
    grid-template-columns:auto 1fr auto;
  }
  .nav-inner .menu-button{
    display:block;
    grid-column:1;
  }
  .nav-inner .main-nav{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:auto;
    margin-top:64px;
    background:#fff;
    border-bottom:1px solid var(--line);
    padding:18px 24px;
    z-index:40;
    flex-direction:column;
    align-items:flex-start;
    flex-wrap:nowrap;
  }
  .nav-inner .main-nav.open{display:flex}
  .nav-inner .main-nav a{
    padding:7px 0;
    text-align:left;
  }
  .nav-inner .languages{
    grid-column:3;
  }
}
@media(max-width:700px){
  .brand-inner{padding:12px 0}
  .brand-inner .logo{width:100%}
  .gallery.three{grid-template-columns:1fr}
}


/* Version 5 – Logo kleiner und rechtsbündig */
.brand-inner-right{
  justify-content:flex-end;
  padding-top:13px;
  padding-bottom:11px;
}
.brand-inner-right .logo{
  width:min(590px,68%);
}
.brand-inner-right .logo img{
  width:100%;
  max-width:590px;
  height:auto;
  margin-left:auto;
  margin-right:0;
}

/* Version 5 – tatsächliche Neuanordnung der Leistungsseiten */
.service-detail-grid{
  display:grid;
  grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);
  gap:64px;
  align-items:start;
}
.service-primary-visual{
  border:1px solid var(--line);
  background:var(--surface-soft, var(--green-soft));
  padding:16px;
  display:flex;
  justify-content:center;
  align-items:flex-start;
}
.service-primary-visual img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.service-detail-copy h2,
.geo-detail-copy h2{
  margin-top:0;
}
.project-gallery{
  display:grid;
  gap:24px;
  align-items:center;
}
.project-gallery figure,
.geo-visual-stack figure{
  margin:0;
  border:1px solid var(--line);
  background:#fff;
  padding:14px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.project-gallery img,
.geo-visual-stack img{
  display:block;
  width:100%;
  height:auto;
  max-height:520px;
  object-fit:contain;
}
.project-gallery-assainissement{
  grid-template-columns:1.15fr 1.15fr .7fr;
}
.geo-detail-grid{
  display:grid;
  grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);
  gap:66px;
  align-items:start;
}
.geo-visual-stack{
  display:grid;
  gap:24px;
}
.geo-visual-stack img{
  max-height:360px;
}
.geo-lower-gallery{
  grid-template-columns:1fr 1fr;
}
.geo-lower-gallery img{
  max-height:500px;
}

/* Etwas ruhigere Startseite, ohne Animationen */
.hero-grid{
  grid-template-columns:1.02fr .98fr;
}
.hero-photo{
  background:#fff;
}
.hero-photo img{
  max-height:440px;
  object-fit:contain;
}

/* Schriften bleiben lokal/systembasiert, keine externen Dienste */
body{
  font-family:Arial,Helvetica,sans-serif;
}

@media(max-width:900px){
  .brand-inner-right{
    justify-content:center;
  }
  .brand-inner-right .logo{
    width:min(590px,92%);
  }
  .brand-inner-right .logo img{
    margin-inline:auto;
  }
  .service-detail-grid,
  .geo-detail-grid{
    grid-template-columns:1fr;
    gap:36px;
  }
  .service-primary-visual{
    max-width:600px;
    margin-inline:auto;
  }
  .project-gallery-assainissement{
    grid-template-columns:1fr 1fr;
  }
  .project-gallery-assainissement figure:last-child{
    grid-column:1 / -1;
    max-width:560px;
    justify-self:center;
  }
}
@media(max-width:600px){
  .project-gallery-assainissement,
  .geo-lower-gallery{
    grid-template-columns:1fr;
  }
  .project-gallery-assainissement figure:last-child{
    grid-column:auto;
  }
}


/* Version 5B – Blau/Violett passend zum Original-Logo */
:root{
  --green:#315f88;
  --green-dark:#233f6f;
  --green-soft:#edf3f8;
  --blue-soft:#edf3f8;
  --beige:#f5f6f8;
  --violet:#3e2a8d;
  --text:#253244;
  --muted:#647184;
  --line:#d7dfe8;
  --surface-soft:#edf3f8;
}
.header-top,
.site-footer{
  background:#233f6f;
}
.page-hero{
  background:#edf3f8;
}
.hero{
  background:linear-gradient(115deg,#f7f7fa,#edf3f8);
}
.button{
  background:#315f88;
  border-color:#315f88;
}
.button:hover,.button:focus{
  background:#233f6f;
  border-color:#233f6f;
}
.button.secondary{
  color:#315f88;
}
.section-label,.eyebrow,
.service-link strong,
.fact strong{
  color:#315f88;
}
.check-list li:before{
  color:#315f88;
}
.fact{
  border-top-color:#315f88;
}
.notice{
  border-left-color:#315f88;
  background:#edf3f8;
}
.contact-box,
.section-soft{
  background:#f5f6f8;
}


/* Version 6 – Fachleistungen unter einem seitlichen Services-Menü */
.services-button{
  appearance:none;border:0;background:transparent;color:inherit;
  font:inherit;font-weight:700;cursor:pointer;padding:17px 0 13px;
}
.services-button:hover,.services-button:focus{color:var(--green)}
.services-drawer{
  position:fixed;left:0;top:0;bottom:0;width:min(390px,88vw);
  background:#fff;border-right:1px solid var(--line);z-index:1001;
  padding:22px 0;transform:translateX(-105%);
}
.services-drawer.open{transform:translateX(0)}
.services-drawer-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 24px 16px;border-bottom:1px solid var(--line);
  color:var(--green-dark);font-size:1.1rem;
}
.services-close{
  border:0;background:transparent;font-size:2rem;line-height:1;cursor:pointer;color:var(--text);
}
.services-side-nav{display:flex;flex-direction:column;padding:12px 0}
.services-side-nav a{
  display:block;padding:13px 24px;border-left:4px solid transparent;
  color:var(--text);text-decoration:none;line-height:1.35;
}
.services-side-nav a:hover,.services-side-nav a:focus{
  background:var(--green-soft);border-left-color:var(--green);
}
.services-side-nav a.active{
  background:var(--green-soft);border-left-color:var(--green);font-weight:700;color:var(--green-dark);
}
.services-backdrop{
  display:none;position:fixed;inset:0;border:0;background:rgba(20,31,45,.28);z-index:1000;
}
.services-backdrop.open{display:block}

/* Gebäudeschadstoffe: vier Bilder identisch groß */
.building-layout{
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);
  gap:56px;align-items:start;
}
.building-gallery{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.building-gallery figure{
  margin:0;aspect-ratio:4/3;background:#f4f6f8;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.building-gallery img{width:100%;height:100%;object-fit:cover}

/* Autres études: drei gleich breite Bilder rechts untereinander */
.other-services-grid{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);
  gap:58px;align-items:start;
}
.other-services-gallery{display:grid;gap:22px}
.other-services-gallery figure{
  margin:0;width:100%;background:#fff;border:1px solid var(--line);padding:10px;
}
.other-services-gallery img{
  display:block;width:100%;height:auto;object-fit:contain;
}

/* Agréments */
.content-narrow{max-width:940px}
.content-narrow h2{margin-top:2.2rem}
.content-narrow h2:first-child{margin-top:0}
.content-narrow h3{margin-top:1.6rem;color:var(--green-dark)}

@media(max-width:900px){
  .building-layout,.other-services-grid{grid-template-columns:1fr;gap:34px}
  .other-services-gallery{max-width:650px}
}
@media(max-width:600px){
  .building-gallery{grid-template-columns:1fr}
}


/* Version 7 – Feinschliff */

/* Services typografisch exakt wie die übrigen Hauptmenüpunkte */
.services-button{
  font:inherit;
  font-size:.86rem;
  font-weight:400;
  line-height:inherit;
  letter-spacing:inherit;
  color:inherit;
  padding:17px 0 13px;
  text-transform:none;
}
.services-button:hover,
.services-button:focus{
  color:var(--green);
}

/* Startseite: sechs Leistungsfelder analog zum Services-Menü */
.services-grid-six{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}
.services-grid-six .service-card{
  display:flex;
  align-items:flex-start;
  min-height:118px;
  padding:24px;
  border:1px solid var(--line);
  background:#fff;
  text-decoration:none;
}
.services-grid-six .service-card h3{
  margin:0;
  font-size:1.02rem;
  line-height:1.35;
  color:var(--green-dark);
}

/* Gebäudeschadstoffe: vier größere Bilder rechts untereinander.
   Die Bildspalte läuft optisch vom Textanfang bis ungefähr zum Textende. */
.building-layout{
  grid-template-columns:minmax(0,1.28fr) minmax(360px,.72fr);
  gap:58px;
  align-items:stretch;
}
.building-gallery{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:repeat(4,minmax(0,1fr));
  gap:18px;
  align-self:stretch;
}
.building-gallery figure{
  width:100%;
  height:100%;
  min-height:190px;
  aspect-ratio:auto;
}
.building-gallery img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Autres études et services: Bilder ca. 50 % der bisherigen Breite */
.other-services-grid{
  grid-template-columns:minmax(0,1fr) minmax(180px,.34fr);
  gap:48px;
}
.other-services-gallery{
  width:50%;
  min-width:180px;
  justify-self:start;
}
.other-services-gallery figure{
  width:100%;
}
.other-services-gallery img{
  width:100%;
  height:auto;
}

@media(max-width:1000px){
  .services-grid-six{grid-template-columns:repeat(2,minmax(0,1fr))}
  .building-layout{grid-template-columns:minmax(0,1fr) minmax(300px,.62fr)}
  .other-services-gallery{width:70%}
}
@media(max-width:760px){
  .services-grid-six{grid-template-columns:1fr}
  .building-layout,.other-services-grid{grid-template-columns:1fr}
  .building-gallery{grid-template-rows:none}
  .building-gallery figure{height:auto;min-height:0}
  .building-gallery img{height:auto;object-fit:contain}
  .other-services-gallery{width:100%;max-width:420px}
}


/* Version 8 – Services exakt wie die übrigen Hauptmenüpunkte */
.nav-inner .main-nav .services-button{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  border-bottom:3px solid transparent;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  margin:0;
  color:var(--text);
  text-decoration:none;
  font-family:inherit;
  font-size:.86rem;
  font-weight:600;
  font-style:normal;
  line-height:normal;
  letter-spacing:normal;
  white-space:normal;
  text-align:center;
  padding:17px 0 13px;
  cursor:pointer;
}
.nav-inner .main-nav .services-button:hover,
.nav-inner .main-nav .services-button:focus{
  color:var(--green);
  border-bottom-color:var(--green);
  outline:none;
}
@media(max-width:900px){
  .nav-inner .main-nav .services-button{
    padding:8px 0;
    border-bottom:0;
    font-size:.86rem;
    font-weight:600;
    text-align:left;
  }
}


/* Version 9 – Hydrogeologie */
.hydrogeology-layout{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);
  gap:58px;
  align-items:start;
}
.hydrogeology-copy h2{
  margin-top:2.15rem;
  color:var(--green-dark);
}
.hydrogeology-copy h2:first-child{margin-top:0}
.hydrogeology-gallery{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  align-items:start;
}
.hydrogeology-gallery figure{
  margin:0;
  background:#fff;
  border:1px solid var(--line);
  padding:10px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hydrogeology-gallery img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
@media(max-width:900px){
  .hydrogeology-layout{grid-template-columns:1fr}
  .hydrogeology-gallery{max-width:760px}
}
@media(max-width:600px){
  .hydrogeology-gallery{grid-template-columns:1fr}
}


/* =========================================================
   VERSION 10 – BLUE SIDEBAR LAYOUT
   ========================================================= */

:root{
  --brand-blue:#0f4f8d;
  --brand-blue-dark:#0a3c71;
  --brand-blue-deep:#073464;
  --brand-blue-soft:#eef4f9;
  --ink:#13253a;
  --muted2:#647487;
  --line2:#d6e0ea;
  --sidebar-w:252px;
  --header-h:86px;
}

html,body{overflow-x:hidden}
body{background:#fff;color:var(--ink)}

/* Header */
.site-header-v10{
  position:sticky;top:0;z-index:900;
  height:var(--header-h);
  background:#fff;border-bottom:1px solid var(--line2);
}
.header-v10-inner{
  height:100%;
  display:grid;
  grid-template-columns:340px 1fr auto;
  align-items:center;
  gap:22px;
  padding:0 28px;
}
.logo-v10 img{
  width:295px;
  height:auto;
  display:block;
}
.top-nav-v10{
  display:flex;
  justify-content:center;
  gap:58px;
  align-items:center;
}
.top-nav-v10 a{
  color:var(--ink);
  text-decoration:none;
  font-size:.98rem;
  font-weight:600;
  padding:31px 0 26px;
  border-bottom:3px solid transparent;
}
.top-nav-v10 a:hover,.top-nav-v10 a.active{
  color:var(--brand-blue);
  border-bottom-color:var(--brand-blue);
}
.languages-v10{
  display:flex;align-items:center;gap:8px;
  font-size:.82rem;font-weight:700;
}
.languages-v10 a{color:var(--ink);text-decoration:none}
.languages-v10 a:not(:last-child)::after{
  content:"|";margin-left:8px;color:#a9b6c2;
}
.languages-v10 a.active{color:var(--brand-blue)}
.sidebar-toggle-v10{display:none}

/* Persistent left services navigation */
.sidebar-v10{
  position:fixed;
  left:0;top:var(--header-h);bottom:0;
  width:var(--sidebar-w);
  z-index:700;
  background:linear-gradient(180deg,var(--brand-blue-dark),var(--brand-blue-deep));
  color:#fff;
  overflow-y:auto;
}
.sidebar-v10-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 22px;
  border-bottom:1px solid rgba(255,255,255,.22);
  font-size:.88rem;letter-spacing:.025em;
}
.sidebar-close-v10{display:none}
.sidebar-nav-v10{display:block}
.sidebar-nav-v10 > a{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:17px 22px;
  color:#fff;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.18);
  font-size:.92rem;
  line-height:1.4;
}
.sidebar-nav-v10 > a:hover,
.sidebar-nav-v10 > a.active{
  background:rgba(255,255,255,.10);
}
.sidebar-nav-v10 .chev{font-size:1.5rem;font-weight:300}
.hydro-subnav-v10{
  list-style:disc;
  margin:0;
  padding:8px 20px 15px 38px;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.hydro-subnav-v10 li{color:#d7e7f7}
.hydro-subnav-v10 a{
  display:block;color:#fff;text-decoration:none;
  padding:7px 4px;font-size:.79rem;line-height:1.35;
}
.hydro-subnav-v10 a:hover{text-decoration:underline}
.sidebar-backdrop-v10{display:none}

/* Content shifted right of sidebar */
.content-v10{
  margin-left:var(--sidebar-w);
  min-height:calc(100vh - var(--header-h));
}
.footer-v10{
  margin-left:var(--sidebar-w);
}
.content-v10 .container,
.footer-v10 .container{
  width:min(1180px,calc(100% - 46px));
}

/* Headline areas */
.content-v10 .page-hero{
  padding:40px 0 34px;
  background:#fff;
  border-bottom:1px solid var(--line2);
}
.content-v10 .page-hero h1{
  color:var(--ink);
  font-size:clamp(2rem,3.2vw,3.15rem);
  margin-bottom:12px;
}
.content-v10 .page-hero p{
  color:var(--brand-blue-dark);
  font-weight:600;
}
.breadcrumb,.breadcrumbs{
  color:var(--brand-blue);
  font-size:.86rem;
  margin-bottom:10px;
}
.breadcrumb a,.breadcrumbs a{color:var(--brand-blue)}

/* Blue headings throughout */
.content-v10 h2{color:var(--brand-blue-dark)}
.content-v10 .section-label,
.content-v10 .eyebrow{color:var(--brand-blue)}

/* Start page */
.content-v10 .hero{
  background:#f7f9fb;
}
.content-v10 .hero-grid{
  grid-template-columns:1.05fr .95fr;
  padding:58px 0;
}
.services-grid-v10{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.service-card-v10{
  display:flex;
  align-items:flex-start;
  min-height:112px;
  padding:22px;
  background:#fff;
  border:1px solid var(--line2);
  text-decoration:none;
}
.service-card-v10 h3{
  margin:0;
  color:var(--brand-blue-dark);
  font-size:1rem;
  line-height:1.35;
}

/* Hydrogeology exact image treatment */
.hydrogeology-layout-v10{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);
  gap:54px;
  align-items:start;
}
.hydrogeology-gallery-v10{
  display:flex;
  flex-direction:column;
  gap:24px;
  align-items:stretch;
}
.hydrogeology-gallery-v10 figure{
  margin:0;
  padding:9px;
  border:1px solid var(--line2);
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hydrogeology-gallery-v10 img{
  width:100%;
  height:auto;
  object-fit:contain;
  display:block;
}
/* Slightly larger than v9, but not the oversized mockup */
.hydrogeology-gallery-v10 figure:nth-child(1) img{max-height:355px}
.hydrogeology-gallery-v10 figure:nth-child(2) img{max-height:355px}
.hydrogeology-gallery-v10 figure:nth-child(3) img{max-height:415px}
.hydrogeology-gallery-v10 figure:nth-child(4) img{max-height:315px}
.hydrogeology-copy h2{
  padding-top:12px;
  border-top:1px solid var(--line2);
  margin-top:30px;
}
.hydrogeology-copy h2:first-child{
  padding-top:0;border-top:0;margin-top:0;
}

/* Keep other service pages tidy */
.service-detail-grid,
.geo-detail-grid,
.building-layout,
.other-services-grid{
  gap:48px;
}
.content-v10 .section{padding:58px 0}
.content-v10 .section-soft{background:#f7f9fb}

/* Footer */
.footer-v10{
  background:var(--brand-blue-deep);
}
.footer-v10 .footer-grid{
  grid-template-columns:1.15fr .8fr .8fr;
}
.footer-v10 .footer-logo{
  max-width:320px;
}

/* Responsive */
@media(max-width:1180px){
  .header-v10-inner{
    grid-template-columns:280px 1fr auto;
  }
  .logo-v10 img{width:250px}
  .top-nav-v10{gap:34px}
}
@media(max-width:980px){
  :root{--header-h:76px}
  .site-header-v10{height:var(--header-h)}
  .header-v10-inner{
    grid-template-columns:1fr auto auto;
    padding:0 18px;
  }
  .logo-v10 img{width:230px}
  .top-nav-v10{display:none}
  .sidebar-toggle-v10{
    display:block;
    border:0;background:transparent;
    font-size:1.6rem;color:var(--brand-blue-dark);cursor:pointer;
  }
  .sidebar-v10{
    top:var(--header-h);
    transform:translateX(-105%);
    z-index:1001;
  }
  .sidebar-v10.open{transform:translateX(0)}
  .sidebar-close-v10{
    display:block;border:0;background:transparent;color:#fff;font-size:1.8rem;cursor:pointer;
  }
  .sidebar-backdrop-v10{
    display:none;position:fixed;inset:var(--header-h) 0 0 0;
    background:rgba(11,30,50,.28);border:0;z-index:1000;
  }
  .sidebar-backdrop-v10.open{display:block}
  .content-v10,.footer-v10{margin-left:0}
  .hydrogeology-layout-v10{grid-template-columns:1fr}
  .hydrogeology-gallery-v10{max-width:760px}
}
@media(max-width:700px){
  .languages-v10{display:none}
  .header-v10-inner{grid-template-columns:1fr auto}
  .services-grid-v10{grid-template-columns:1fr}
  .content-v10 .container,.footer-v10 .container{width:calc(100% - 28px)}
}


/* =========================================================
   VERSION 11 – Original-Logo + fünftes Hydrogeologie-Bild
   ========================================================= */

/* Das bestehende Original-Logo wird auf den Startseiten
   ungefähr doppelt so groß wie in Version 10 dargestellt. */
body:has(.logo-home-v11) .site-header-v10{
  height:150px;
}
body:has(.logo-home-v11) .header-v10-inner{
  min-height:150px;
  grid-template-columns:620px 1fr auto;
}
.logo-home-v11 img{
  width:590px;
  max-width:100%;
  height:auto;
}

/* Da der Header der Startseite höher ist, beginnt die feste
   Seitenleiste dort entsprechend tiefer. */
body:has(.logo-home-v11) .sidebar-v10{
  top:150px;
}

/* Fünftes Hydrogeologie-Bild wie die übrigen: volle Spaltenbreite,
   proportional und ohne Beschnitt. */
.hydrogeology-gallery-v10 figure:nth-child(5) img{
  width:100%;
  max-height:330px;
  height:auto;
  object-fit:contain;
}

/* Auf kleineren Bildschirmen wieder kompakt. */
@media(max-width:1180px){
  body:has(.logo-home-v11) .header-v10-inner{
    grid-template-columns:500px 1fr auto;
  }
  .logo-home-v11 img{
    width:470px;
  }
}
@media(max-width:980px){
  body:has(.logo-home-v11) .site-header-v10{
    height:96px;
  }
  body:has(.logo-home-v11) .header-v10-inner{
    min-height:96px;
    grid-template-columns:1fr auto auto;
  }
  .logo-home-v11 img{
    width:360px;
    max-width:70vw;
  }
  body:has(.logo-home-v11) .sidebar-v10{
    top:96px;
  }
}
@media(max-width:600px){
  .logo-home-v11 img{
    width:285px;
    max-width:72vw;
  }
}


/* VERSION 12 FINAL – fixe Kopfzeile nur auf den Startseiten */
body:has(.logo-home-v11) .site-header-v10{
  position:fixed;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:1200;
}
body:has(.logo-home-v11){
  padding-top:150px;
}
body:has(.logo-home-v11) .sidebar-v10{
  top:150px;
}
@media(max-width:980px){
  body:has(.logo-home-v11){
    padding-top:96px;
  }
  body:has(.logo-home-v11) .sidebar-v10{
    top:96px;
  }
}


/* =========================================================
   VERSION 12 GO-LIVE – letzte freigegebene Bildanpassung
   ========================================================= */

/* Autres études et services / Weitere Leistungen / Other services:
   Bildbreite gegenüber der freigegebenen Vorversion verdoppelt
   (50 % -> 100 % der vorhandenen rechten Bildspalte). */
.other-services-gallery{
  width:100%;
}
@media(max-width:1000px){
  .other-services-gallery{
    width:100%;
  }
}

/* VERSION 13 – fixe Kopfzeile auf allen Seiten */
.site-header-v10{position:fixed;top:0;left:0;right:0;width:100%;z-index:1200;}
body:not(:has(.logo-home-v11)){padding-top:96px;}
body:not(:has(.logo-home-v11)) .sidebar-v10{top:96px;}
body:has(.logo-home-v11){padding-top:150px;}
body:has(.logo-home-v11) .sidebar-v10{top:150px;}
@media(max-width:980px){
 body,body:has(.logo-home-v11),body:not(:has(.logo-home-v11)){padding-top:96px;}
 .sidebar-v10,body:has(.logo-home-v11) .sidebar-v10,body:not(:has(.logo-home-v11)) .sidebar-v10{top:96px;}
}


/* =========================================================
   VERSION 13.1 – Ankersprünge bei fixer Kopfzeile
   ========================================================= */

/* Unterseiten: Beim Klick auf einen Unterpunkt (z. B. Hydrogéologie)
   bleibt die Zielüberschrift vollständig unter der fixierten Kopfzeile sichtbar. */
html{
  scroll-padding-top:120px;
}

/* Startseite mit größerem Header benötigt mehr Abstand. */
body:has(.logo-home-v11){
  scroll-padding-top:174px;
}

/* Zusätzliche Absicherung direkt an allen Ankerzielen. */
[id]{
  scroll-margin-top:120px;
}

body:has(.logo-home-v11) [id]{
  scroll-margin-top:174px;
}

@media(max-width:980px){
  html,
  body:has(.logo-home-v11){
    scroll-padding-top:120px;
  }
  [id],
  body:has(.logo-home-v11) [id]{
    scroll-margin-top:120px;
  }
}
