:root{--ink:#222;--muted:#777;--line:#e6e6e6;--soft:#f4f4f2;--warm:#b7afa5;--content:1080px;--wide:1440px;--ease:cubic-bezier(.23,1,.32,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;font-weight:300;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%}button,input,textarea{font:inherit}.skip-link{position:fixed;left:10px;top:-60px;z-index:9999;background:#111;color:#fff;padding:8px 12px}.skip-link:focus{top:10px}.site-header{position:relative;z-index:100;background:#fff}.header-inner{width:80%;max-width:var(--content);height:92px;margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{display:block;line-height:1}.brand-name{display:block;font-size:29px;letter-spacing:.205em;font-weight:500}.brand-sub{display:block;margin-top:8px;font-size:7.3px;letter-spacing:.175em;color:#777;white-space:nowrap}.main-nav{display:flex;align-items:center;gap:29px}.main-nav a{position:relative;font-size:12px;font-weight:400;letter-spacing:.035em;color:#555;transition:color .25s}.main-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:#333;transition:right .3s var(--ease)}.main-nav a:hover,.main-nav a.is-active{color:#111}.main-nav a:hover:after,.main-nav a.is-active:after{right:0}.menu-toggle{display:none;border:0;background:transparent;width:34px;height:30px;padding:5px}.menu-toggle span{height:1px;background:#222;display:block;margin:5px 0;transition:.25s}
.site-footer{border-top:1px solid #efefef;color:#777;background:#fff}.footer-inner{width:80%;max-width:var(--content);margin:auto;min-height:68px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:10px;letter-spacing:.015em}.footer-inner a:hover{color:#222}
/* shared editorial */
.page-shell{width:80%;max-width:var(--content);margin:auto}.section-title{font-size:36px;line-height:1.16;font-weight:300;margin:0 0 30px}.copy{font-size:14px;line-height:1.9;color:#4f4f4f}.copy p{margin:0 0 20px}.thin-link{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-size:11px;text-transform:uppercase;letter-spacing:.105em;border-bottom:1px solid #999;padding-bottom:3px;transition:border-color .25s,color .25s}.thin-link:hover{border-color:#111;color:#111}.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s var(--ease),transform .75s var(--ease)}.reveal.is-visible{opacity:1;transform:none}.image-placeholder{background:#d9d6d1;min-height:300px;display:grid;place-items:center;color:#6d6861;text-transform:uppercase;letter-spacing:.11em;font-size:10px;text-align:center;padding:20px}
/* home: deliberately spare, like the existing site */
.home-intro{width:80%;max-width:var(--content);margin:0 auto;padding:82px 0 108px}.home-kicker{text-align:center;margin:0 0 76px;font-size:13px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:#555}.home-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:56px}.home-columns h1,.home-columns h2{font-size:25px;line-height:1.25;font-weight:300;margin:0 0 22px}.home-columns p{margin:0;color:#505050;line-height:1.9}.home-project-link{margin:50px auto 0;text-align:center}.round-icon-link{display:inline-flex;flex-direction:column;align-items:center;gap:10px;font-size:11px;letter-spacing:.07em}.round-icon{width:38px;height:38px;border:1px solid #aaa;border-radius:50%;display:grid;place-items:center;font-size:18px;transition:.3s var(--ease)}.round-icon-link:hover .round-icon{background:#222;color:#fff;border-color:#222;transform:translateY(-3px)}
/* projects */
.project-index{width:80%;max-width:var(--content);margin:0 auto;padding:35px 0 95px}.filterbar{display:flex;justify-content:center;gap:26px;margin:0 0 38px}.filterbar button{border:0;background:none;padding:0 0 5px;cursor:pointer;color:#777;font-size:11px;letter-spacing:.045em;position:relative}.filterbar button:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:#333;transition:right .25s}.filterbar button:hover,.filterbar button.active{color:#222}.filterbar button.active:after,.filterbar button:hover:after{right:0}.project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 20px}.project-card{min-width:0;transition:opacity .25s,transform .25s}.project-card.is-hiding{opacity:0;transform:scale(.985);pointer-events:none}.project-card.hidden{display:none}.project-thumb{position:relative;overflow:hidden;background:#ecebe8;aspect-ratio:1.35/1}.project-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ease),filter .65s var(--ease)}.project-overlay{position:absolute;inset:0;background:rgba(255,255,255,0);display:grid;place-items:center;transition:background .42s var(--ease)}.project-plus{width:42px;height:42px;border-radius:50%;border:1px solid rgba(30,30,30,0);color:transparent;display:grid;place-items:center;font-size:24px;font-weight:200;transform:scale(.8);transition:.42s var(--ease)}.project-card:hover .project-thumb img{transform:scale(1.055);filter:saturate(.88)}.project-card:hover .project-overlay{background:rgba(255,255,255,.32)}.project-card:hover .project-plus{border-color:rgba(30,30,30,.72);color:#222;transform:scale(1)}.project-card h2{font-size:14px;font-weight:300;line-height:1.3;margin:10px 0 0;color:#444;transition:color .25s}.project-card:hover h2{color:#111}.project-empty{grid-column:1/-1;padding:80px 20px;text-align:center;color:#777;background:#f5f5f3}
/* project detail: stacked parallax fields */
.project-detail{padding:0 0 80px}.project-image-section{width:100%;height:min(75vh,820px);min-height:470px;position:relative;overflow:hidden;background:#ecebe8}.project-image-media{position:absolute;inset:-10% 0;will-change:transform}.project-image-media img{width:100%;height:100%;display:block;object-fit:cover}.project-heading{width:80%;max-width:var(--content);margin:0 auto;padding:46px 0 50px;text-align:center}.project-heading h1{margin:0;font-size:31px;font-weight:300;letter-spacing:.01em}.project-image-section+.project-image-section{margin-top:18px}.project-back{display:flex;flex-direction:column;align-items:center;width:max-content;margin:48px auto 0;font-size:11px;letter-spacing:.045em}.project-back .round-icon{margin-bottom:8px}.project-back:hover .round-icon{background:#222;color:#fff;border-color:#222;transform:translateY(-2px)}
/* services: quotation / text rhythm like the current editorial site */
.services-page{padding:28px 0 45px}.service-block{width:80%;max-width:var(--content);margin:0 auto;padding:72px 0 84px;border-bottom:1px solid #efefef}.service-quote{text-align:center;max-width:850px;margin:0 auto 56px}.service-quote blockquote{font-size:26px;line-height:1.55;font-weight:300;margin:0;color:#505050}.service-quote cite{display:block;margin-top:14px;font-style:normal;font-size:11px;letter-spacing:.08em;color:#8a8a8a}.service-copy{max-width:760px;margin:0 auto}.service-copy h1,.service-copy h2{font-size:35px;font-weight:300;margin:0 0 25px}.service-copy p,.service-copy li{line-height:1.9;color:#505050}.service-copy ul{padding-left:20px}
/* Team */
.team-intro{width:80%;max-width:var(--content);margin:0 auto;text-align:center;padding:72px 0 70px}.team-intro h1{font-size:37px;font-weight:300;margin:0 0 4px}.team-intro h6{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:400;color:#777;margin:0 0 30px}.team-intro p{max-width:890px;margin:0 auto;color:#555;line-height:1.9}.team-pairs{width:80%;max-width:var(--content);margin:0 auto 95px;display:grid;grid-template-columns:1fr 1fr;gap:0}.person-pair{display:grid;grid-template-columns:1fr 1fr;min-width:0}.team-photo{aspect-ratio:1/1;overflow:hidden;background:#ddd}.team-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease),filter .5s}.person-pair:hover .team-photo img{transform:scale(1.025);filter:saturate(.9)}.team-copy{padding:24px 22px;display:flex;flex-direction:column;justify-content:center;min-width:0}.team-copy h2{font-size:14px;text-transform:uppercase;font-weight:400;letter-spacing:.035em;margin:0 0 6px}.team-copy h6{font-size:9.5px;line-height:1.55;font-weight:400;color:#777;margin:0 0 15px}.team-copy p{font-size:11px;line-height:1.65;color:#555;margin:0}.person-pair.pair-alt .team-photo{order:2}.person-pair.pair-alt .team-copy{order:1}.partner-block{background:#f5f5f3;padding:76px 0}.partner-inner{width:80%;max-width:760px;margin:auto;text-align:center}.partner-inner h2{font-size:31px;font-weight:300;margin:0 0 5px}.partner-inner h6{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:400;color:#777;margin:0 0 22px}.partner-inner p{color:#555;line-height:1.9;margin:0}
/* Festpreis */
.fixed-hero{width:80%;max-width:850px;margin:auto;text-align:center;padding:72px 0 85px}.fixed-hero h1{font-size:43px;font-weight:300;line-height:1.18;margin:0 0 8px}.fixed-hero h2{font-size:26px;font-weight:300;margin:0 0 33px}.fixed-hero p{line-height:1.9;color:#555;margin:0 0 18px}.fixed-hero strong{font-weight:400;display:block;margin-top:28px}.fixed-section{padding:78px 0}.fixed-section.alt{background:#f5f5f3}.fixed-inner{width:80%;max-width:var(--content);margin:auto}.fixed-inner>h2{text-align:center;font-size:35px;font-weight:300;margin:0 0 55px}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}.process-num{font-size:61px;line-height:1;color:#b7b7b7;font-weight:200}.process-grid h3{font-size:20px;font-weight:300;margin:14px 0 12px}.process-grid p{color:#555;line-height:1.85;margin:0}.price-block{background:#333;color:#fff;padding:85px 0}.price-inner{width:80%;max-width:820px;margin:auto;text-align:center}.price-inner h2{font-size:32px;font-weight:300;margin:0 0 30px}.price{font-size:82px;font-weight:200;line-height:1}.price-sub{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#ccc;margin:10px 0 35px}.price-inner ul{text-align:left;max-width:700px;margin:0 auto;padding-left:21px}.price-inner li{margin:8px 0}.option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.option-card{background:#fff}.option-image{aspect-ratio:16/10;overflow:hidden;background:#d9d6d1}.option-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s var(--ease)}.option-card:hover .option-image img{transform:scale(1.03)}.option-copy{padding:22px 22px 26px}.option-copy h3{font-size:19px;font-weight:300;margin:0 0 10px}.option-copy p,.option-copy li{font-size:13px;line-height:1.7;color:#555}.option-copy ul{padding-left:18px}.option-price{display:block;margin-top:18px;font-size:18px;font-weight:300}.plain-list{max-width:760px;margin:0 auto}.plain-list p,.plain-list li{line-height:1.9;color:#555}.plain-list ul{padding-left:20px}.showcase{width:80%;max-width:var(--content);margin:auto;padding:78px 0}.showcase h2{text-align:center;font-size:35px;font-weight:300;margin:0 0 15px}.showcase>p{text-align:center;max-width:720px;margin:0 auto 36px;color:#555}.showcase-image{margin:0 auto 36px;max-width:1000px;overflow:hidden}.showcase-image img{width:100%;display:block}.download-row{display:flex;justify-content:center;gap:15px;flex-wrap:wrap}.outline-button{border:1px solid #555;padding:11px 18px;text-transform:uppercase;letter-spacing:.08em;font-size:10px;transition:.25s}.outline-button:hover{background:#222;color:#fff;border-color:#222}.info-columns{display:grid;grid-template-columns:1fr 1fr;gap:65px}.info-columns h3{font-size:18px;font-weight:300}.info-columns li{color:#555;line-height:1.85}.fixed-cta{width:80%;max-width:var(--content);margin:0 auto 80px;border-top:1px solid #ddd;border-bottom:1px solid #ddd;display:grid;grid-template-columns:1fr 1fr}.fixed-cta a{padding:32px;text-align:center;font-size:11px;letter-spacing:.06em;text-transform:uppercase;transition:.25s}.fixed-cta a+a{border-left:1px solid #ddd}.fixed-cta a:hover{background:#222;color:#fff}
/* contact */
.contact-page{width:80%;max-width:var(--content);margin:auto;padding:68px 0 88px}.contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:75px}.contact-form h1{font-size:34px;font-weight:300;margin:0 0 34px}.field{margin-bottom:17px}.field label{display:block;font-size:11px;color:#666;margin-bottom:5px}.field input,.field textarea{width:100%;border:1px solid #d7d7d7;background:#f8f8f8;padding:10px 12px;border-radius:0;outline:none;transition:.2s}.field textarea{min-height:175px;resize:vertical}.field input:focus,.field textarea:focus{border-color:#999;background:#fff}.contact-form button{border:0;background:#666;color:#fff;padding:10px 22px;cursor:pointer;font-size:11px;transition:.25s}.contact-form button:hover{background:#222}.contact-details{padding-top:48px}.contact-details h2{font-size:20px;font-weight:300;margin:0 0 12px}.contact-details p{color:#555;margin:0 0 22px}.contact-map{margin-top:60px;background:#ecebe8;min-height:300px;display:flex;align-items:center;justify-content:center;text-align:center;color:#666}.form-status{padding:12px 14px;border:1px solid #bbb;margin-bottom:20px}.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.privacy-note{font-size:10px;color:#888;margin-top:15px;line-height:1.5}
/* legal */
.legal-page{width:80%;max-width:850px;margin:auto;padding:65px 0 90px}.legal-page h1{font-size:31px;font-weight:300;margin:0 0 30px}.legal-page h2{font-size:20px;font-weight:300;margin:38px 0 13px}.legal-page p,.legal-page li{color:#555;line-height:1.8}.legal-page ul{padding-left:20px}
/* lightbox */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.965);z-index:999;display:none;align-items:center;justify-content:center}.lightbox.open{display:flex}.lightbox img{max-width:calc(100vw - 130px);max-height:calc(100vh - 80px);object-fit:contain}.lb-close,.lb-prev,.lb-next{position:absolute;background:none;border:0;color:#fff;cursor:pointer;font-weight:200}.lb-close{right:24px;top:14px;font-size:35px}.lb-prev,.lb-next{top:50%;transform:translateY(-50%);font-size:48px}.lb-prev{left:22px}.lb-next{right:22px}
@media(max-width:980px){.header-inner,.page-shell,.home-intro,.project-index,.service-block,.team-intro,.team-pairs,.fixed-inner,.price-inner,.showcase,.fixed-cta,.contact-page,.legal-page,.footer-inner{width:88%}.project-grid{grid-template-columns:repeat(3,1fr)}.home-columns{gap:32px}.main-nav{gap:19px}.project-image-section{height:62vh;min-height:420px}.fixed-hero{width:88%}}
@media(max-width:760px){.person-pair.pair-alt .team-photo{order:1}.person-pair.pair-alt .team-copy{order:2}.header-inner{height:74px}.brand-name{font-size:23px}.brand-sub{font-size:6px;margin-top:6px}.menu-toggle{display:block}.main-nav{position:absolute;left:0;right:0;top:74px;background:#fff;border-top:1px solid #eee;border-bottom:1px solid #eee;display:block;padding:16px 6%;opacity:0;visibility:hidden;transform:translateY(-8px);transition:.25s;box-shadow:0 12px 24px rgba(0,0,0,.05)}.site-header.menu-open .main-nav{opacity:1;visibility:visible;transform:none}.main-nav a{display:block;padding:10px 0;font-size:12px}.main-nav a:after{display:none}.site-header.menu-open .menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}.site-header.menu-open .menu-toggle span:nth-child(2){opacity:0}.site-header.menu-open .menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.home-intro{padding:55px 0 76px}.home-kicker{margin-bottom:48px}.home-columns{grid-template-columns:1fr;gap:42px}.home-columns h1,.home-columns h2{font-size:24px}.project-grid{grid-template-columns:repeat(2,1fr);gap:28px 12px}.filterbar{justify-content:flex-start;overflow:auto;gap:20px}.project-thumb{aspect-ratio:4/5}.project-card h2{font-size:12px}.project-image-section{height:65vh;min-height:390px}.project-image-media{inset:-6% 0}.project-heading{width:88%;padding:35px 0}.project-heading h1{font-size:23px}.service-block{padding:54px 0 60px}.service-quote{margin-bottom:38px}.service-quote blockquote{font-size:21px}.service-copy h1,.service-copy h2{font-size:29px}.team-pairs{grid-template-columns:1fr}.person-pair{grid-template-columns:1fr 1fr}.process-grid,.option-grid,.info-columns,.contact-grid{grid-template-columns:1fr}.process-grid{gap:38px}.fixed-hero h1{font-size:36px}.fixed-inner>h2,.showcase h2{font-size:30px}.contact-details{padding-top:0}.fixed-cta{grid-template-columns:1fr}.fixed-cta a+a{border-left:0;border-top:1px solid #ddd}.footer-inner{padding:18px 0;min-height:0;display:block;text-align:center;line-height:1.8}.footer-inner span{margin:0 4px}.lightbox img{max-width:100vw;max-height:84vh}.lb-prev,.lb-next{font-size:38px}}
@media(max-width:430px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card h2{font-size:11px}.brand-sub{display:none}.fixed-hero h1{font-size:31px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.project-thumb img,.project-overlay,.project-plus,.team-photo img,.option-image img{transition:none}.project-image-media{transform:none!important}}

/* HOME V7.5 — rebuilt directly from the supplied original/test screenshots */
:root{
  --home-dark:#444444;
  --home-red:#b51f29;
  --home-footer:#333333;
  --home-outer:#e5e5e5;
}

body.page-home{
  background:var(--home-outer);
}
.page-home .site-frame{
  width:81.25%;
  margin:0 auto;
  background:#fff;
  box-shadow:0 0 14px rgba(0,0,0,.26);
}
.page-home .site-header{
  height:260px;
  background:#fff;
  position:relative;
  z-index:5;
  box-shadow:0 18px 22px -17px rgba(0,0,0,.52);
}
.page-home .header-inner{
  width:90%;
  max-width:none;
  height:70px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.page-home .brand{
  line-height:1;
  transform:none;
}
.page-home .brand-name{
  display:block;
  font-size:40px;
  line-height:1;
  letter-spacing:.155em;
  font-weight:500;
  color:#303030;
}
.page-home .brand-sub{
  display:block;
  margin-top:7px;
  font-size:6.5px;
  line-height:1;
  letter-spacing:.22em;
  color:#777;
  white-space:nowrap;
}
.page-home .main-nav{
  display:flex;
  align-items:center;
  gap:31px;
}
.page-home .main-nav a{
  font-size:12.5px;
  line-height:1.2;
  font-weight:600;
  letter-spacing:.135em;
  text-transform:uppercase;
  color:#5b5b5b;
}
.page-home .main-nav a:after{display:none}
.page-home .home-header-claim{
  position:absolute;
  left:0;
  right:0;
  top:181px;
  text-align:center;
  font-size:21px;
  line-height:1.2;
  letter-spacing:.025em;
  font-weight:500;
  color:#616161;
}

.home-original{background:#fff}
.home-split{
  height:479px;
  display:grid;
  grid-template-columns:1fr 1fr;
  position:relative;
  z-index:1;
}
.home-slider{
  position:relative;
  width:100%;
  height:479px;
  overflow:hidden;
  background:#d7d7d7;
}
.home-slide{
  position:absolute;
  inset:0;
  display:block;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 1.5s ease, visibility 1.5s ease;
}
.home-slide.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  z-index:2;
}
.home-slide img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.home-slide-placeholder{
  display:grid;
  place-items:center;
  background:#d7d7d7;
  color:#777;
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.home-copy-panel{
  background:var(--home-dark);
  color:#fff;
  height:479px;
  padding:30px 34px 22px 33px;
  overflow:hidden;
}
.home-copy-block{
  margin:0 0 14px;
}
.home-copy-block:last-child{margin-bottom:0}
.home-copy-block h1,
.home-copy-block h2{
  margin:0 0 8px;
  color:#fff;
  font-size:18px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.home-copy-block p{
  margin:0;
  max-width:100%;
  color:#fff;
  font-size:12px;
  line-height:1.52;
  font-weight:300;
}

.page-home .home-project-cta{
  height:125px;
  min-height:125px;
  background:var(--home-red);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:inset 0 19px 20px -20px rgba(0,0,0,.82);
}
.page-home .home-project-link{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:400;
  letter-spacing:0;
  text-align:center;
}
.home-grid-icon{
  display:grid;
  grid-template-columns:repeat(3,10px);
  grid-template-rows:repeat(3,10px);
  gap:4px;
  width:38px;
  height:38px;
}
.home-grid-icon i{
  display:block;
  width:10px;
  height:10px;
  border-radius:2px;
  background:#fff;
  transition:transform .22s ease,opacity .22s ease;
}
.home-project-link:hover .home-grid-icon i{transform:scale(.82);opacity:.82}

.page-home .site-footer{
  height:18px;
  min-height:18px;
  border:0;
  background:var(--home-footer);
  color:#a9a9a9;
}
.page-home .footer-inner{
  width:100%;
  max-width:none;
  height:18px;
  min-height:18px;
  padding:0;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  font-size:8px;
  line-height:1;
  letter-spacing:0;
  white-space:nowrap;
}
.page-home .footer-inner a:hover{color:#fff}

/* Keep the boxed original appearance on large desktop screens. */
@media(max-width:1250px){
  .page-home .site-frame{width:100%;box-shadow:none}
  .page-home .site-header{height:220px}
  .page-home .home-header-claim{top:154px;font-size:16px}
  .home-split,.home-slider,.home-copy-panel{height:430px}
  .home-copy-panel{padding:28px 28px 22px}
  .home-copy-block h1,.home-copy-block h2{font-size:14px}
  .home-copy-block p{font-size:9.5px}
}
@media(max-width:760px){
  body.page-home{background:#fff}
  .page-home .site-frame{width:100%}
  .page-home .site-header{height:150px;box-shadow:0 12px 18px -16px rgba(0,0,0,.5)}
  .page-home .header-inner{width:88%;height:72px}
  .page-home .brand-name{font-size:27px}
  .page-home .brand-sub{font-size:5px}
  .page-home .home-header-claim{
    top:110px;
    width:88%;
    margin:0 auto;
    font-size:11px;
  }
  .home-split{
    height:auto;
    display:block;
  }
  .home-slider{height:auto;aspect-ratio:1.7/1}
  .home-copy-panel{
    height:auto;
    min-height:0;
    padding:34px 6% 38px;
  }
  .home-copy-block{margin-bottom:22px}
  .home-copy-block h1,.home-copy-block h2{font-size:15px}
  .home-copy-block p{font-size:11px;line-height:1.6}
  .page-home .home-project-cta{height:118px;min-height:118px}
  .page-home .site-footer{height:auto;min-height:30px}
  .page-home .footer-inner{
    height:auto;
    min-height:30px;
    padding:7px 4%;
    white-space:normal;
    flex-wrap:wrap;
    font-size:7px;
  }
}
@media(prefers-reduced-motion:reduce){
  .home-slide{transition:none}
}


/* V7.6 – slightly larger visual scale + project slideshow */
.page-home .brand-name{font-size:40px}
.page-home .brand-sub{font-size:6.5px}
.page-home .main-nav a{font-size:12.5px}
.page-home .home-header-claim{font-size:21px}
.home-copy-block h1,
.home-copy-block h2{font-size:18px}
.home-copy-block p{font-size:12px;line-height:1.55}
.page-home .home-project-link{font-size:12px;gap:19px}
.home-grid-icon{
  grid-template-columns:repeat(3,10px);
  grid-template-rows:repeat(3,10px);
  gap:4px;
  width:38px;
  height:38px;
}
.home-grid-icon i{width:10px;height:10px;border-radius:2px}
.page-home .footer-inner{font-size:8px}

@media(max-width:1250px){
  .page-home .brand-name{font-size:36px}
  .page-home .main-nav a{font-size:11.5px}
  .page-home .home-header-claim{font-size:18px}
  .home-copy-block h1,.home-copy-block h2{font-size:16px}
  .home-copy-block p{font-size:10.8px}
}
@media(max-width:760px){
  .page-home .brand-name{font-size:30px}
  .page-home .brand-sub{font-size:5.5px}
  .page-home .home-header-claim{font-size:12px}
  .home-copy-block h1,.home-copy-block h2{font-size:17px}
  .home-copy-block p{font-size:12px}
  .page-home .home-project-link{font-size:11px}
}


/* V7.7 – echtes LEHNES-Logo im gemeinsamen Header */
.brand-logo{display:flex;align-items:center;line-height:1}
.brand-logo-img{
  display:block;
  width:190px;
  max-width:100%;
  height:auto;
  object-fit:contain;
}
.page-home .brand-logo-img{width:200px}

@media(max-width:980px){
  .brand-logo-img{width:175px}
  .page-home .brand-logo-img{width:185px}
}
@media(max-width:760px){
  .brand-logo-img,.page-home .brand-logo-img{width:160px}
}
@media(max-width:430px){
  .brand-logo-img,.page-home .brand-logo-img{width:145px}
}


/* V8.1 – Landingpage Galerie / Footer */
.home-slider-arrow{
  position:absolute;
  z-index:6;
  top:50%;
  transform:translateY(-50%);
  width:52px;
  height:82px;
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:54px;
  font-weight:200;
  line-height:1;
  text-shadow:0 1px 8px rgba(0,0,0,.42);
  opacity:.72;
  cursor:pointer;
  transition:opacity .2s ease, transform .2s ease;
}
.home-slider-prev{left:8px}
.home-slider-next{right:8px}
.home-slider-arrow:hover,
.home-slider-arrow:focus-visible{
  opacity:1;
  transform:translateY(-50%) scale(1.06);
}
.home-slider-arrow:focus-visible{
  outline:1px solid rgba(255,255,255,.8);
  outline-offset:-8px;
}

/* Untere Impressumszeile bewusst etwas größer als zuvor. */
.page-home .site-footer{
  height:30px;
  min-height:30px;
}
.page-home .footer-inner{
  height:30px;
  min-height:30px;
  font-size:10px;
  gap:6px;
}

@media(max-width:760px){
  .home-slider-arrow{
    width:42px;
    height:64px;
    font-size:44px;
    opacity:.82;
  }
  .home-slider-prev{left:2px}
  .home-slider-next{right:2px}
  .page-home .site-footer{height:auto;min-height:38px}
  .page-home .footer-inner{
    min-height:38px;
    height:auto;
    font-size:9px;
    padding:7px 4%;
  }
}

/* V8.4 – minimaler, zentrierter Beschnitt der Landingpage-Bilder.
   Eine Bildkante passt immer exakt in die Galerie; die andere darf nur
   aufgrund des Seitenverhältnisses überstehen. Kein zusätzlicher Zoom. */
.home-slider,
.home-slide{
  overflow:hidden;
}
.home-slide img{
  position:absolute;
  left:50%;
  top:50%;
  display:block;
  max-width:none;
  max-height:none;
  object-fit:unset;
  object-position:unset;
  transform:translate(-50%,-50%);
}
.home-slide img.fit-width{
  width:100%;
  height:auto;
}
.home-slide img.fit-height{
  width:auto;
  height:100%;
}


/* ==========================================================
   V8.7 – Landingpage: sauberer Neuaufbau der Anpassungen
   ========================================================== */

/* HEADER:
   LEHNES als eigenständige Marke, danach klar getrennt die
   drei Berufsgruppen. */
.page-home .home-header-claim{
  position:absolute;
  left:0;
  right:0;
  top:181px;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  white-space:nowrap;
  line-height:1;
  color:#595959;
}

.page-home .claim-lehnes{
  display:block;
  font-size:19px;
  line-height:1;
  font-weight:600;
  letter-spacing:.13em;
  color:#353535;
}

.page-home .claim-rule{
  display:block;
  flex:0 0 1px;
  width:1px;
  height:28px;
  background:#999;
}

.page-home .claim-professions{
  display:flex;
  align-items:center;
  gap:13px;
  font-size:12px;
  line-height:1;
  font-weight:400;
  letter-spacing:.13em;
  color:#666;
}

.page-home .claim-professions i{
  font-style:normal;
  font-size:13px;
  font-weight:300;
  color:#aaa;
}


/* SCHATTEN:
   Galerie + graue Textbox sind eine gemeinsame Ebene.
   Die beiden Schatten liegen ausschließlich AUSSERHALB:
   oben auf Weiß, unten auf Rot. */
.page-home .site-header{
  z-index:1;
  box-shadow:none;
}

.page-home .home-split{
  position:relative;
  z-index:10;
  overflow:visible;
  box-shadow:none;
}

.page-home .home-split::before,
.page-home .home-split::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:18px;
  pointer-events:none;
  z-index:20;
}

.page-home .home-split::before{
  top:-18px;
  background:linear-gradient(
    to top,
    rgba(0,0,0,.28) 0%,
    rgba(0,0,0,.13) 38%,
    rgba(0,0,0,0) 100%
  );
}

.page-home .home-split::after{
  bottom:-18px;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,.28) 0%,
    rgba(0,0,0,.13) 38%,
    rgba(0,0,0,0) 100%
  );
}


/* HAUPTTEXT:
   keine typografische Spielerei, sondern mehr Ruhe und Lesbarkeit. */
.page-home .home-copy-panel{
  padding:30px 40px 28px;
}

.page-home .home-copy-block{
  margin:0;
}

.page-home .home-copy-block + .home-copy-block{
  margin-top:17px;
  padding-top:17px;
  border-top:1px solid rgba(255,255,255,.13);
}

.page-home .home-copy-block h1,
.page-home .home-copy-block h2{
  margin:0 0 8px;
  font-size:17px;
  line-height:1.22;
  font-weight:500;
  letter-spacing:.075em;
  text-transform:none;
  color:#fff;
}

.page-home .home-copy-block p{
  margin:0;
  max-width:98%;
  font-size:12.5px;
  line-height:1.62;
  font-weight:300;
  letter-spacing:.003em;
  color:rgba(255,255,255,.90);
}


/* ROTE PROJEKTFLÄCHE:
   Inhalt bewusst etwas oberhalb der Mitte, damit unter dem Text
   sichtbar mehr rote Fläche verbleibt. */
.page-home .home-project-cta{
  position:relative;
  z-index:1;
  height:138px;
  min-height:138px;
  padding:0;
  background:var(--home-red);
  display:flex;
  align-items:flex-start;
  justify-content:center;
  box-shadow:none;
  overflow:hidden;
}

.page-home .home-project-link{
  margin:21px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:11px;
  color:#fff;
  font-size:11.5px;
  line-height:1;
  font-weight:400;
  letter-spacing:.015em;
  text-align:center;
}


/* Eigenständiges 5×5-Icon.
   Neue Klasse verhindert Konflikte mit den früheren 3×3-Regeln. */
.page-home .project-grid-5{
  display:grid;
  grid-template-columns:repeat(5,5px);
  grid-template-rows:repeat(5,5px);
  gap:3px;
  width:37px;
  height:37px;
  margin:0;
  padding:0;
  flex:0 0 37px;
}

.page-home .project-grid-5 > span{
  display:block;
  width:5px;
  height:5px;
  margin:0;
  padding:0;
  border:0;
  border-radius:1px;
  background:#fff;
  opacity:1;
  transform:none;
}


/* FOOTER:
   nur die Schrift etwas vergrößert, ohne einen klobigen Footer zu erzeugen. */
.page-home .site-footer{
  height:30px;
  min-height:30px;
}

.page-home .footer-inner{
  height:30px;
  min-height:30px;
  font-size:10.5px;
  line-height:1;
  gap:7px;
  color:#bdbdbd;
}


/* Mittlere Desktop-/Tabletbreiten */
@media(max-width:1250px) and (min-width:761px){
  .page-home .home-header-claim{
    top:154px;
    gap:20px;
  }

  .page-home .claim-lehnes{
    font-size:17px;
  }

  .page-home .claim-rule{
    height:24px;
  }

  .page-home .claim-professions{
    gap:10px;
    font-size:10.5px;
    letter-spacing:.11em;
  }

  .page-home .home-copy-panel{
    padding:27px 31px 24px;
  }

  .page-home .home-copy-block + .home-copy-block{
    margin-top:14px;
    padding-top:14px;
  }

  .page-home .home-copy-block h1,
  .page-home .home-copy-block h2{
    margin-bottom:6px;
    font-size:15px;
  }

  .page-home .home-copy-block p{
    font-size:10.5px;
    line-height:1.55;
  }

  .page-home .home-project-cta{
    height:132px;
    min-height:132px;
  }

  .page-home .home-project-link{
    margin-top:20px;
  }
}


/* Mobile */
@media(max-width:760px){
  .page-home .home-header-claim{
    top:108px;
    width:92%;
    gap:9px;
    white-space:normal;
  }

  .page-home .claim-lehnes{
    font-size:12px;
    letter-spacing:.09em;
  }

  .page-home .claim-rule{
    height:20px;
  }

  .page-home .claim-professions{
    gap:5px;
    font-size:7.6px;
    letter-spacing:.055em;
    flex-wrap:wrap;
  }

  .page-home .home-split::before,
  .page-home .home-split::after{
    height:13px;
  }

  .page-home .home-split::before{
    top:-13px;
  }

  .page-home .home-split::after{
    bottom:-13px;
  }

  .page-home .home-copy-panel{
    padding:32px 7% 36px;
  }

  .page-home .home-copy-block + .home-copy-block{
    margin-top:20px;
    padding-top:20px;
  }

  .page-home .home-copy-block h1,
  .page-home .home-copy-block h2{
    font-size:17px;
  }

  .page-home .home-copy-block p{
    max-width:100%;
    font-size:12px;
    line-height:1.65;
  }

  .page-home .home-project-cta{
    height:136px;
    min-height:136px;
  }

  .page-home .home-project-link{
    margin-top:23px;
  }

  .page-home .site-footer{
    height:auto;
    min-height:40px;
  }

  .page-home .footer-inner{
    height:auto;
    min-height:40px;
    font-size:9.5px;
    padding:7px 4%;
  }
}


/* ==========================================================
   V8.8 – Landingpage Feinschliff
   ========================================================== */

/* Kopfzeile: LEHNES deutlich kräftiger, danach drei gleichwertige
   Berufsgruppen mit Punkten als Trennung. */
.page-home .home-header-claim{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  color:#666;
  white-space:nowrap;
  line-height:1;
}

.page-home .claim-lehnes{
  font-size:18px;
  font-weight:700;
  letter-spacing:.14em;
  color:#333;
}

.page-home .claim-profession{
  font-size:12px;
  font-weight:400;
  letter-spacing:.11em;
  color:#666;
}

.page-home .claim-dot{
  font-size:13px;
  font-weight:300;
  color:#aaa;
  transform:translateY(-.5px);
}

/* Alte V8.7-Trennlinie/Containerregeln neutralisieren. */
.page-home .claim-rule,
.page-home .claim-professions{
  display:none;
}


/* Schatten:
   unten bleibt die kräftigere Wirkung auf Rot erhalten.
   oben deutlich weicher und schmaler, damit auf Weiß kein grauer Balken entsteht. */
.page-home .home-split::before{
  top:-11px;
  height:11px;
  background:linear-gradient(
    to top,
    rgba(0,0,0,.14) 0%,
    rgba(0,0,0,.065) 36%,
    rgba(0,0,0,.018) 68%,
    rgba(0,0,0,0) 100%
  );
}

.page-home .home-split::after{
  bottom:-18px;
  height:18px;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,.28) 0%,
    rgba(0,0,0,.13) 38%,
    rgba(0,0,0,0) 100%
  );
}


/* Rote Fläche:
   Icon + Text bilden eine Gruppe und stehen exakt vertikal mittig. */
.page-home .home-project-cta{
  display:flex;
  align-items:center;
  justify-content:center;
}

.page-home .home-project-link{
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:11px;
  transform:none;
  transition:transform .28s ease, opacity .28s ease;
}


/* Hover wie früher, aber auf das neue 5×5-Icon übertragen. */
.page-home .project-grid-5 > span{
  transition:transform .24s ease, opacity .24s ease;
  transform-origin:center;
}

.page-home .home-project-link:hover{
  transform:translateY(-2px);
}

.page-home .home-project-link:hover .project-grid-5 > span{
  transform:scale(.76);
  opacity:.78;
}


/* Footer noch etwas größer, ohne die Leiste unnötig hoch zu machen. */
.page-home .footer-inner{
  font-size:11.5px;
}


/* Mittlere Desktop-/Tabletbreiten */
@media(max-width:1250px) and (min-width:761px){
  .page-home .home-header-claim{
    gap:10px;
  }

  .page-home .claim-lehnes{
    font-size:16px;
  }

  .page-home .claim-profession{
    font-size:10.5px;
    letter-spacing:.095em;
  }

  .page-home .claim-dot{
    font-size:11px;
  }

  .page-home .home-project-link{
    margin:0;
  }

  .page-home .footer-inner{
    font-size:10.8px;
  }
}


/* Mobile */
@media(max-width:760px){
  .page-home .home-header-claim{
    gap:5px;
    white-space:normal;
    flex-wrap:wrap;
  }

  .page-home .claim-lehnes{
    font-size:12px;
    letter-spacing:.09em;
  }

  .page-home .claim-profession{
    font-size:7.7px;
    letter-spacing:.055em;
  }

  .page-home .claim-dot{
    font-size:8px;
  }

  .page-home .home-split::before{
    top:-8px;
    height:8px;
  }

  .page-home .home-project-link{
    margin:0;
  }

  .page-home .footer-inner{
    font-size:10px;
  }
}


/* ==========================================================
   V8.9 – Einheitlicher Header + einheitliche Seitenbreite
   ========================================================== */

/* Gesamte Website auf dieselbe Breite wie die Landingpage setzen. */
.site-frame{
  width:81.25%;
  max-width:none;
  margin:0 auto;
}

/* Einheitlicher Header auf allen Seiten */
.site-header{
  width:100%;
}

.site-header .header-inner{
  width:90%;
  margin:0 auto;
}

/* Einheitliche Navigation inkl. feiner Hover-Linie */
.main-nav a{
  position:relative;
  display:inline-block;
  padding-bottom:7px;
  text-decoration:none;
}

.main-nav a::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:0;
  height:1px;
  background:currentColor;
  transform:translateX(-50%);
  transition:width .28s ease;
}

.main-nav a:hover::after,
.main-nav a:focus-visible::after,
.main-nav a.active::after{
  width:100%;
}

/* Projekt-CTA: Text bleibt stehen, nur Icon reagiert */
.page-home .home-project-link{
  transform:none !important;
}

.page-home .home-project-link:hover{
  transform:none !important;
}

.page-home .project-grid-5{
  transition:transform .28s ease, opacity .28s ease;
}

.page-home .home-project-link:hover .project-grid-5{
  transform:translateY(-2px);
}

.page-home .home-project-link:hover .project-grid-5 > span{
  transform:scale(.76);
  opacity:.78;
}

/* Unterseiten nicht mehr breiter/schmaler als die Landingpage */
body:not(.page-home) .site-frame{
  width:81.25%;
  max-width:none;
  margin-left:auto;
  margin-right:auto;
}

@media(max-width:980px){
  .site-frame,
  body:not(.page-home) .site-frame{
    width:92%;
  }

  .site-header .header-inner{
    width:90%;
  }
}

@media(max-width:760px){
  .site-frame,
  body:not(.page-home) .site-frame{
    width:100%;
  }
}


/* ==========================================================
   V9.1 – Hauptheader exakt wie auf der Leistungen-Seite
   ========================================================== */

/*
 * WICHTIG:
 * Der eigentliche .site-header ist jetzt auf ALLEN Seiten identisch.
 * Die Landingpage-Berufszeile liegt außerhalb des Headers und hat
 * eine neue Klasse, damit keine alten .home-header-claim-Regeln greifen.
 */

/* Desktop – exakt die Werte des normalen Unterseiten-Headers */
body.page-home .site-header{
  position:relative;
  z-index:100;
  width:100%;
  height:auto;
  min-height:0;
  background:#fff;
  box-shadow:none;
}

body.page-home .site-header .header-inner{
  width:90%;
  max-width:var(--content);
  height:92px;
  min-height:0;
  margin:0 auto;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

body.page-home .site-header .brand,
body.page-home .site-header .brand-logo{
  display:block;
  margin:0;
  padding:0;
  line-height:1;
}

body.page-home .site-header .brand-logo-img{
  display:block;
  width:190px;
  max-width:100%;
  height:auto;
  object-fit:contain;
}

body.page-home .site-header .main-nav{
  position:static;
  display:flex;
  align-items:center;
  gap:29px;
  margin:0;
  padding:0;
  opacity:1;
  visibility:visible;
  transform:none;
  background:transparent;
  border:0;
  box-shadow:none;
}

body.page-home .site-header .main-nav a{
  position:relative;
  display:inline-block;
  padding:0 0 7px;
  font-size:12px;
  line-height:1.7;
  font-weight:400;
  letter-spacing:.035em;
  text-transform:none;
  color:#555;
  transition:color .25s;
}

/* Gleiche feine Hover-Linie wie bei den Unterseiten */
body.page-home .site-header .main-nav a::after{
  content:"";
  display:block;
  position:absolute;
  left:50%;
  right:auto;
  bottom:0;
  width:0;
  height:1px;
  background:currentColor;
  transform:translateX(-50%);
  transition:width .28s ease;
}

body.page-home .site-header .main-nav a:hover,
body.page-home .site-header .main-nav a.is-active{
  color:#111;
}

body.page-home .site-header .main-nav a:hover::after,
body.page-home .site-header .main-nav a:focus-visible::after{
  width:100%;
}


/* Separate Landingpage-Zeile UNTER dem identischen Hauptheader */
.page-home .home-identity-line{
  width:100%;
  height:168px;
  margin:0;
  padding:0 5%;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  white-space:nowrap;
  line-height:1;
  background:#fff;
  color:#666;
}

.page-home .identity-lehnes{
  font-size:18px;
  font-weight:700;
  letter-spacing:.14em;
  color:#333;
}

.page-home .identity-profession{
  font-size:12px;
  font-weight:400;
  letter-spacing:.11em;
  color:#666;
}

.page-home .identity-dot{
  font-size:13px;
  font-weight:300;
  color:#aaa;
}


/* Tablet: exakt dem normalen Header folgen */
@media(max-width:980px){
  body.page-home .site-header .header-inner{
    width:90%;
    max-width:var(--content);
    height:92px;
  }

  body.page-home .site-header .brand-logo-img{
    width:175px;
  }

  body.page-home .site-header .main-nav{
    gap:19px;
  }

  .page-home .home-identity-line{
    height:128px;
    gap:10px;
  }

  .page-home .identity-lehnes{
    font-size:16px;
  }

  .page-home .identity-profession{
    font-size:10.5px;
    letter-spacing:.095em;
  }

  .page-home .identity-dot{
    font-size:11px;
  }
}


/* Mobil: exakt das normale Hamburger-Header-Verhalten */
@media(max-width:760px){
  body.page-home .site-header .header-inner{
    width:90%;
    height:74px;
  }

  body.page-home .site-header .brand-logo-img{
    width:160px;
  }

  body.page-home .site-header .main-nav{
    position:absolute;
    left:0;
    right:0;
    top:74px;
    display:block;
    padding:16px 6%;
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    background:#fff;
    border-top:1px solid #eee;
    border-bottom:1px solid #eee;
    box-shadow:0 12px 24px rgba(0,0,0,.05);
    transition:.25s;
  }

  body.page-home .site-header.menu-open .main-nav{
    opacity:1;
    visibility:visible;
    transform:none;
  }

  body.page-home .site-header .main-nav a{
    display:block;
    padding:10px 0;
    font-size:12px;
  }

  body.page-home .site-header .main-nav a::after{
    display:none;
  }

  .page-home .home-identity-line{
    height:76px;
    padding:0 4%;
    gap:5px;
    white-space:normal;
    flex-wrap:wrap;
  }

  .page-home .identity-lehnes{
    font-size:12px;
    letter-spacing:.09em;
  }

  .page-home .identity-profession{
    font-size:7.7px;
    letter-spacing:.055em;
  }

  .page-home .identity-dot{
    font-size:8px;
  }
}

@media(max-width:430px){
  body.page-home .site-header .brand-logo-img{
    width:145px;
  }
}


/* ==========================================================
   V9.2 – horizontale Ausrichtung Landingpage + Projekte
   ========================================================== */

/* Nur die äußere Seitenbox ausrichten, sonst nichts verändern. */
body.page-home .site-frame,
body.page-projekte .site-frame{
  width:81.25%;
  margin-left:auto !important;
  margin-right:auto !important;
  transform:none !important;
  left:auto !important;
  right:auto !important;
}

@media(max-width:980px){
  body.page-home .site-frame,
  body.page-projekte .site-frame{
    width:92%;
  }
}

@media(max-width:760px){
  body.page-home .site-frame,
  body.page-projekte .site-frame{
    width:100%;
  }
}


/* ==========================================================
   V9.3 – gleiche äußere Website-Box auf allen Seiten
   ========================================================== */

/* Hellgrauer Hintergrund außerhalb der eigentlichen Website */
body{
  background:#e5e5e5;
}

/* Weiße, zentrierte Seitenbox wie auf der Landingpage */
.site-frame{
  background:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.20);
}

/* Landingpage nutzt dieselben allgemeinen Werte */
body.page-home{
  background:#e5e5e5;
}

body.page-home .site-frame{
  background:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.20);
}


/* ==========================================================
   V9.4 – Footer auf allen Seiten wie auf der Landingpage
   ========================================================== */

.site-footer{
  width:100%;
  height:30px;
  min-height:30px;
  background:#333333;
  color:#bdbdbd;
  margin:0;
  padding:0;
}

.footer-inner{
  width:100%;
  height:30px;
  min-height:30px;
  margin:0;
  padding:0 4%;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  font-size:11.5px;
  line-height:1;
  font-weight:400;
  color:#bdbdbd;
  text-align:center;
}

.footer-inner a{
  color:inherit;
  text-decoration:none;
}

.footer-inner a:hover,
.footer-inner a:focus-visible{
  color:#fff;
}

@media(max-width:760px){
  .site-footer{
    height:auto;
    min-height:40px;
  }

  .footer-inner{
    height:auto;
    min-height:40px;
    padding:7px 4%;
    font-size:10px;
    line-height:1.35;
    flex-wrap:wrap;
  }
}


/* ==========================================================
   V9.5 – Filterbare Projektgalerie wie Referenz
   ========================================================== */

/* Galerie über die volle innere Seitenbreite; exakt 5 Spalten,
   ohne jede Fuge zwischen den Projektbildern. */
.projects-grid,
.project-grid,
.projects-list,
.project-list{
  display:grid !important;
  grid-template-columns:repeat(5, minmax(0,1fr)) !important;
  gap:0 !important;
  column-gap:0 !important;
  row-gap:0 !important;
  padding:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* Falls die Seite einen zusätzlichen Galerie-Wrapper besitzt */
.projects-gallery,
.project-gallery,
.projects-wrap,
.projects-container{
  padding-left:0 !important;
  padding-right:0 !important;
}

/* Projektkachel ohne Außenabstand / weißen Rand */
.project-card,
.project-item,
.project-tile{
  position:relative;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden;
  background:#ddd;
}

.project-card a,
.project-item a,
.project-tile a{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  overflow:hidden;
  text-decoration:none;
}

/* Einheitliche Bildkacheln; Bild füllt die Kachel vollständig. */
.project-card img,
.project-item img,
.project-tile img{
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  object-fit:cover;
  object-position:center;
  margin:0;
  padding:0;
  border:0;
}

/* Normalzustand: keinerlei Text über/unter dem Bild sichtbar */
.project-card .project-meta,
.project-card .project-caption,
.project-card .project-info,
.project-card .project-name,
.project-card .project-title,
.project-item .project-meta,
.project-item .project-caption,
.project-item .project-info,
.project-item .project-name,
.project-item .project-title,
.project-tile .project-meta,
.project-tile .project-caption,
.project-tile .project-info,
.project-tile .project-name,
.project-tile .project-title{
  display:none !important;
}

/* Titel ausschließlich als schmale weiße Leiste am unteren Bildrand.
   Die Höhe ergibt sich nur aus Schrift + kleinem Innenabstand. */
.project-hover-title{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:8;
  width:100%;
  box-sizing:border-box;
  margin:0;
  padding:7px 10px 6px;
  background:rgba(255,255,255,.96);
  color:#333;
  font-size:11px;
  line-height:1.2;
  font-weight:400;
  letter-spacing:.02em;
  text-align:left;
  opacity:0;
  transform:translateY(100%);
  transition:opacity .28s ease, transform .28s ease;
  pointer-events:none;
}

.project-card:hover .project-hover-title,
.project-item:hover .project-hover-title,
.project-tile:hover .project-hover-title,
.project-card a:hover .project-hover-title,
.project-item a:hover .project-hover-title,
.project-tile a:hover .project-hover-title{
  opacity:1;
  transform:translateY(0);
}

/* Existing hover image effect remains; make transitions smooth and restrained. */
.project-card img,
.project-item img,
.project-tile img{
  transition:transform .45s ease, filter .45s ease, opacity .45s ease;
}

/* Keep five columns on desktop; reduce only where the viewport cannot reasonably hold five. */
@media(max-width:1100px){
  .projects-grid,
  .project-grid,
  .projects-list,
  .project-list{
    grid-template-columns:repeat(4, minmax(0,1fr)) !important;
  }
}

@media(max-width:820px){
  .projects-grid,
  .project-grid,
  .projects-list,
  .project-list{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  }
}

@media(max-width:520px){
  .projects-grid,
  .project-grid,
  .projects-list,
  .project-list{
    grid-template-columns:1fr !important;
  }
}

/* ==========================================================
   Projektseite – Bild-/Galerieeffekte 1,5 Sekunden
   ========================================================== */

.project-page img,
.project-detail img,
.project-hero img,
.project-gallery img,
.lightbox img,
[data-lightbox] img,
.project-image{
  transition-duration:1.5s !important;
}

/* Falls Opacity-/Transform-Übergänge separat definiert sind */
.project-page .is-active,
.project-detail .is-active,
.project-hero .is-active,
.project-gallery .is-active,
.lightbox .is-active{
  transition-duration:1.5s !important;
}


/* ==========================================================
   V9.6 – Projektübersicht korrigiert nach Referenz
   ========================================================== */

/* Die Projektseite selbst nutzt die volle Breite der weißen Website-Box. */
.project-index{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:48px 0 0 !important;
}

/* Filter wie im Vorbild: kompakt und mittig oberhalb der Galerie. */
.project-index .filterbar{
  width:63%;
  max-width:780px;
  margin:0 auto 28px !important;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0 !important;
  border:1px solid #e7e7e7;
}

.project-index .filterbar button{
  min-height:27px;
  padding:0 10px !important;
  border:0;
  border-left:1px solid #e7e7e7;
  background:#fff;
  color:#888;
  font-size:10.5px;
  font-weight:400;
  line-height:27px;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.project-index .filterbar button:first-child{
  border-left:0;
}

.project-index .filterbar button::after{
  display:none !important;
}

.project-index .filterbar button:hover,
.project-index .filterbar button.active{
  color:#ad3b3b;
}

/* Galerie: exakt 5 Spalten, ohne jegliche Fuge. */
.project-index .project-grid{
  width:100% !important;
  max-width:none !important;
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:0 !important;
  column-gap:0 !important;
  row-gap:0 !important;
  margin:0 !important;
  padding:0 !important;
}

/* Kachel ist ausschließlich das Bild. */
.project-index .project-card{
  position:relative;
  display:block;
  min-width:0;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden;
  background:#ddd;
  text-decoration:none;
}

.project-index .project-thumb{
  position:relative;
  width:100%;
  aspect-ratio:1.4 / 1;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden;
  background:#ddd;
}

.project-index .project-thumb picture{
  display:block;
  width:100%;
  height:100%;
}

.project-index .project-thumb img{
  display:block;
  width:100%;
  height:100%;
  margin:0 !important;
  padding:0 !important;
  object-fit:cover;
  object-position:center;
  border:0;
  transition:transform .65s var(--ease), filter .65s var(--ease);
}

/* Vorhandenen Hover-Effekt beibehalten. */
.project-index .project-overlay{
  position:absolute;
  inset:0;
  z-index:3;
}

.project-index .project-plus{
  z-index:4;
}

/* Projekttitel im Normalzustand vollständig unsichtbar. */
.project-index .project-hover-title{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:6;
  box-sizing:border-box;
  margin:0;
  padding:5px 8px 4px;
  background:#fff;
  color:#444;
  font-size:11px;
  font-weight:400;
  line-height:1.2;
  letter-spacing:.01em;
  text-align:left;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  opacity:0;
  transform:translateY(100%);
  transition:opacity .28s ease, transform .28s ease;
  pointer-events:none;
}

/* Titel nur beim Hover direkt aus dem unteren Bildrand einblenden. */
.project-index .project-card:hover .project-hover-title,
.project-index .project-card:focus-visible .project-hover-title{
  opacity:1;
  transform:translateY(0);
}

/* Sicherheitsregel: kein alter Titel unter dem Bild. */
.project-index .project-card > h2{
  display:none !important;
}

/* Desktop bleibt 5-spaltig – auch bei etwas kleineren Fenstern. */
@media(max-width:760px){
  .project-index{
    padding-top:28px !important;
  }

  .project-index .filterbar{
    width:90%;
    max-width:none;
    margin-bottom:20px !important;
  }

  .project-index .filterbar button{
    font-size:8.5px;
    letter-spacing:.05em;
  }

  .project-index .project-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .project-index .project-thumb{
    aspect-ratio:1.25 / 1;
  }
}

@media(max-width:430px){
  .project-index .project-grid{
    grid-template-columns:1fr !important;
  }
}


/* ==========================================================
   V9.6 – Projekt-Einzelansicht: Bildwechsel 1,5 Sekunden
   ========================================================== */

.lightbox img{
  opacity:1;
  transition:opacity .75s ease !important;
}

.lightbox img.lb-fading{
  opacity:0;
}


/* V9.8 – Filterzustand darf nicht von Reveal-/Grid-Regeln überschrieben werden. */
.project-index .project-card.hidden,
.project-index .project-card[hidden]{
  display:none !important;
}


/* ==========================================================
   V10.3 – Mobile Projektübersicht
   ========================================================== */
@media(max-width:760px){
  .project-index .project-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}
@media(max-width:430px){
  .project-index .project-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}


/* ==========================================================
   V10.4 – VERBINDLICHER EINHEITLICHER HEADER
   ----------------------------------------------------------
   Dieser Block steht absichtlich am Ende der CSS-Datei und
   überschreibt ältere Landingpage-Sonderregeln.
   Der eigentliche Header ist auf ALLEN Seiten identisch.
   Die zusätzliche Berufszeile der Landingpage liegt AUSSERHALB
   des Headers und bleibt landingpage-spezifisch.
   ========================================================== */

/* Desktop – identisch auf Startseite und Unterseiten */
body .site-header,
body.page-home .site-header{
  position:relative;
  z-index:100;
  width:100%;
  height:auto;
  min-height:0;
  background:#fff;
  box-shadow:none;
}

body .site-header .header-inner,
body.page-home .site-header .header-inner{
  width:90%;
  max-width:var(--content);
  height:92px;
  min-height:0;
  margin:0 auto;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

body .site-header .brand,
body .site-header .brand-logo,
body.page-home .site-header .brand,
body.page-home .site-header .brand-logo{
  display:block;
  margin:0;
  padding:0;
  line-height:1;
}

body .site-header .brand-logo-img,
body.page-home .site-header .brand-logo-img{
  display:block;
  width:190px;
  max-width:100%;
  height:auto;
  object-fit:contain;
}

body .site-header .menu-toggle,
body.page-home .site-header .menu-toggle{
  display:none;
}

body .site-header .main-nav,
body.page-home .site-header .main-nav{
  position:static;
  display:flex;
  align-items:center;
  gap:29px;
  margin:0;
  padding:0;
  opacity:1;
  visibility:visible;
  transform:none;
  background:transparent;
  border:0;
  box-shadow:none;
}

body .site-header .main-nav a,
body.page-home .site-header .main-nav a{
  position:relative;
  display:inline-block;
  padding:0 0 7px;
  font-size:12px;
  line-height:1.7;
  font-weight:400;
  letter-spacing:.035em;
  text-transform:none;
  color:#555;
  transition:color .25s;
}

body .site-header .main-nav a::after,
body.page-home .site-header .main-nav a::after{
  content:"";
  display:block;
  position:absolute;
  left:50%;
  right:auto;
  bottom:0;
  width:0;
  height:1px;
  background:currentColor;
  transform:translateX(-50%);
  transition:width .28s ease;
}

body .site-header .main-nav a:hover,
body .site-header .main-nav a.is-active,
body.page-home .site-header .main-nav a:hover,
body.page-home .site-header .main-nav a.is-active{
  color:#111;
}

body .site-header .main-nav a:hover::after,
body .site-header .main-nav a:focus-visible::after,
body .site-header .main-nav a.is-active::after,
body.page-home .site-header .main-nav a:hover::after,
body.page-home .site-header .main-nav a:focus-visible::after,
body.page-home .site-header .main-nav a.is-active::after{
  width:100%;
}

/* Tablet */
@media(max-width:980px){
  body .site-header .header-inner,
  body.page-home .site-header .header-inner{
    width:90%;
    max-width:var(--content);
    height:92px;
  }

  body .site-header .brand-logo-img,
  body.page-home .site-header .brand-logo-img{
    width:175px;
  }

  body .site-header .main-nav,
  body.page-home .site-header .main-nav{
    gap:19px;
  }
}

/* Mobil – überall exakt dasselbe Hamburger-/Dropdown-Verhalten */
@media(max-width:760px){
  body .site-header .header-inner,
  body.page-home .site-header .header-inner{
    width:90%;
    height:74px;
  }

  body .site-header .brand-logo-img,
  body.page-home .site-header .brand-logo-img{
    width:160px;
  }

  body .site-header .menu-toggle,
  body.page-home .site-header .menu-toggle{
    display:block;
    border:0;
    background:transparent;
    width:34px;
    height:30px;
    padding:5px;
    cursor:pointer;
  }

  body .site-header .menu-toggle span,
  body.page-home .site-header .menu-toggle span{
    height:1px;
    background:#222;
    display:block;
    margin:5px 0;
    transition:.25s;
  }

  body .site-header .main-nav,
  body.page-home .site-header .main-nav{
    position:absolute;
    left:0;
    right:0;
    top:74px;
    z-index:20;
    display:block;
    padding:16px 6%;
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    background:#fff;
    border-top:1px solid #eee;
    border-bottom:1px solid #eee;
    box-shadow:0 12px 24px rgba(0,0,0,.05);
    transition:opacity .25s ease, transform .25s ease, visibility .25s ease;
  }

  body .site-header.menu-open .main-nav,
  body.page-home .site-header.menu-open .main-nav{
    opacity:1;
    visibility:visible;
    transform:none;
  }

  body .site-header .main-nav a,
  body.page-home .site-header .main-nav a{
    display:block;
    padding:10px 0;
    font-size:12px;
    line-height:1.7;
  }

  body .site-header .main-nav a::after,
  body.page-home .site-header .main-nav a::after{
    display:none;
  }

  body .site-header.menu-open .menu-toggle span:nth-child(1),
  body.page-home .site-header.menu-open .menu-toggle span:nth-child(1){
    transform:translateY(6px) rotate(45deg);
  }

  body .site-header.menu-open .menu-toggle span:nth-child(2),
  body.page-home .site-header.menu-open .menu-toggle span:nth-child(2){
    opacity:0;
  }

  body .site-header.menu-open .menu-toggle span:nth-child(3),
  body.page-home .site-header.menu-open .menu-toggle span:nth-child(3){
    transform:translateY(-6px) rotate(-45deg);
  }
}

@media(max-width:430px){
  body .site-header .brand-logo-img,
  body.page-home .site-header .brand-logo-img{
    width:145px;
  }
}

/* Projektübersicht: Titel beim Hover minimal größer */
.project-index .project-hover-title{
  font-size:12px;
}


/* ==========================================================
   V10.6 – Landingpage: gesamte rote Projektfläche als Link
   ========================================================== */
.page-home .home-project-cta{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  text-decoration:none;
  color:inherit;
  cursor:pointer;
}

.page-home .home-project-cta .home-project-link{
  pointer-events:none;
}

/* Hover über irgendeinen Punkt der roten Fläche löst den bisherigen Icon-Effekt aus. */
.page-home .home-project-cta:hover .project-grid-5,
.page-home .home-project-cta:focus-visible .project-grid-5{
  transform:translateY(-2px);
}

.page-home .home-project-cta:hover .project-grid-5 > span,
.page-home .home-project-cta:focus-visible .project-grid-5 > span{
  transform:scale(.76);
  opacity:.78;
}

.page-home .home-project-cta:focus-visible{
  outline:1px solid rgba(255,255,255,.85);
  outline-offset:-5px;
}


/* ==========================================================
   V10.7 – Landingpage CTA: dezentes Aufhellen beim Hover
   ========================================================== */
.page-home .home-project-cta{
  transition:background-color .35s ease;
}

.page-home .home-project-cta:hover,
.page-home .home-project-cta:focus-visible{
  background-color:#be3039;
}


/* ==========================================================
   V10.9 – Typografie etwas größer / besser lesbar
   ========================================================== */

/* Desktop-Navigation oben */
body .site-header .main-nav a,
body.page-home .site-header .main-nav a{
  font-size:13px;
}

/* Landingpage: Überschriften und Fließtext näher an der übrigen Seitentypografie */
.page-home .home-copy-block h1,
.page-home .home-copy-block h2{
  font-size:18px;
}

.page-home .home-copy-block p{
  font-size:14px;
  line-height:1.62;
}

/* Roter Projekt-CTA ebenfalls leicht größer */
.page-home .home-project-link{
  font-size:12.5px;
}

/* Projektübersicht: Filter oben */
.project-index .filterbar button{
  font-size:12px;
}

/* Footer auf allen Seiten */
.footer-inner,
.page-home .footer-inner{
  font-size:12.5px;
}

/* Tablet – nicht zu stark verkleinern */
@media(max-width:1250px) and (min-width:761px){
  .page-home .home-copy-block h1,
  .page-home .home-copy-block h2{
    font-size:17px;
  }

  .page-home .home-copy-block p{
    font-size:12.5px;
  }

  body .site-header .main-nav a,
  body.page-home .site-header .main-nav a{
    font-size:12.5px;
  }

  .project-index .filterbar button{
    font-size:11px;
  }
}

/* Mobile: Dropdown-Menü, Filter, Footer und Landingpage-Text */
@media(max-width:760px){
  body .site-header .main-nav a,
  body.page-home .site-header .main-nav a{
    font-size:13.5px;
    padding:11px 0;
  }

  .project-index .filterbar button{
    font-size:10.5px;
    letter-spacing:.045em;
  }

  .page-home .home-copy-block h1,
  .page-home .home-copy-block h2{
    font-size:18px;
  }

  .page-home .home-copy-block p{
    font-size:13px;
    line-height:1.65;
  }

  .page-home .home-project-link{
    font-size:12px;
  }

  .footer-inner,
  .page-home .footer-inner{
    font-size:11.5px;
  }
}


/* ==========================================================
   V11.0 – Projekt-Einzelansicht nach Originalprinzip
   ========================================================== */

.project-detail-v11{
  position:relative;
  margin:0;
  padding:0;
  background:#fff;
}

/*
 * Das Hero bleibt im Hintergrund "kleben".
 * Da es sticky innerhalb der gesamten project-parallax-stage ist,
 * schiebt sich der nachfolgende weiße Bereich beim Scrollen darüber.
 */
.project-parallax-stage{
  position:relative;
  width:100%;
}

.project-hero-sticky{
  position:sticky;
  top:0;
  z-index:0;
  width:100%;
  height:min(76vh,820px);
  min-height:500px;
  overflow:hidden;
  background:#e7e7e5;
}

.project-hero-sticky picture,
.project-hero-sticky img{
  display:block;
  width:100%;
  height:100%;
}

.project-hero-sticky img{
  object-fit:cover;
  object-position:center center;
}

/* Weißer Vordergrund, der über das feststehende Hero läuft. */
.project-detail-foreground{
  position:relative;
  z-index:2;
  width:100%;
  background:#fff;
  box-shadow:0 -12px 28px rgba(0,0,0,.035);
}

.project-detail-title{
  width:100%;
  margin:0;
  padding:52px 6% 54px;
  text-align:center;
  background:#fff;
}

.project-detail-title h1{
  margin:0;
  color:#333;
  font-size:30px;
  line-height:1.25;
  font-weight:300;
  letter-spacing:.01em;
}

/* Projektgalerie – fünf Bilder ohne Zwischenraum pro Zeile. */
.project-detail-gallery{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0;
  width:100%;
  margin:0;
  padding:0;
  background:#fff;
}

.project-detail-gallery-item{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:1.25 / 1;
  margin:0;
  padding:0;
  overflow:hidden;
  border:0;
  border-radius:0;
  background:#ddd;
  cursor:pointer;
}

.project-detail-gallery-item img{
  display:block;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  object-fit:cover;
  object-position:center;
  transform:scale(1);
  transition:transform .42s ease, opacity .42s ease;
}

.project-detail-gallery-item:hover img,
.project-detail-gallery-item:focus-visible img{
  transform:scale(1.025);
  opacity:.94;
}

.project-detail-gallery-item:focus-visible{
  outline:2px solid rgba(255,255,255,.95);
  outline-offset:-3px;
}

/* Roter Rücksprungblock – gleiche Formsprache wie die Landingpage. */
.project-return-cta{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:138px;
  min-height:138px;
  background:#b51f29;
  color:#fff;
  text-decoration:none;
  cursor:pointer;
  transition:background-color .35s ease;
}

.project-return-link{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:11px;
  color:#fff;
  font-size:12.5px;
  line-height:1;
  font-weight:400;
  letter-spacing:.015em;
  text-align:center;
  pointer-events:none;
}

.project-return-cta .project-grid-5{
  display:grid;
  grid-template-columns:repeat(5,5px);
  grid-template-rows:repeat(5,5px);
  gap:3px;
  transition:transform .28s ease;
}

.project-return-cta .project-grid-5 > span{
  display:block;
  width:5px;
  height:5px;
  background:#fff;
  transition:transform .24s ease, opacity .24s ease;
  transform-origin:center;
}

.project-return-cta:hover,
.project-return-cta:focus-visible{
  background:#be3039;
}

.project-return-cta:hover .project-grid-5,
.project-return-cta:focus-visible .project-grid-5{
  transform:translateY(-2px);
}

.project-return-cta:hover .project-grid-5 > span,
.project-return-cta:focus-visible .project-grid-5 > span{
  transform:scale(.76);
  opacity:.78;
}

.project-return-cta:focus-visible{
  outline:1px solid rgba(255,255,255,.85);
  outline-offset:-5px;
}

/* Lightbox:
   Originaldatei wird geladen, kleine Bilder werden nicht künstlich vergrößert;
   große Bilder werden nur auf die verfügbare Bildschirmfläche verkleinert. */
.project-detail-v11 + .lightbox img,
.lightbox img{
  width:auto;
  height:auto;
  max-width:calc(100vw - 130px);
  max-height:calc(100vh - 80px);
  object-fit:contain;
}

/* Tablet */
@media(max-width:980px){
  .project-hero-sticky{
    height:70vh;
    min-height:440px;
  }

  .project-detail-title{
    padding:44px 5% 46px;
  }

  .project-detail-title h1{
    font-size:27px;
  }
}

/* Smartphone:
   Hero nutzt das mobile-Bild; Galerie wie Projektübersicht 3-spaltig. */
@media(max-width:760px){
  .project-hero-sticky{
    height:64vh;
    min-height:390px;
  }

  .project-detail-title{
    padding:35px 5% 38px;
  }

  .project-detail-title h1{
    font-size:23px;
  }

  .project-detail-gallery{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .project-detail-gallery-item{
    aspect-ratio:1.15 / 1;
  }

  .project-return-cta{
    height:118px;
    min-height:118px;
  }

  .project-return-link{
    font-size:12px;
  }

  .lightbox img{
    max-width:100vw;
    max-height:84vh;
  }
}


/* ==========================================================
   V11.5 – Projektseite: korrigierte Lightbox + Schatten
   ========================================================== */

/* Header bleibt beim normalen Scrollen sichtbar. */
body .site-header,
body.page-home .site-header{
  position:sticky;
  top:0;
  z-index:1000;
}

/* Hero klebt direkt unter dem Desktop-Header. */
.project-detail-v11 .project-hero-sticky{
  position:sticky;
  top:92px;
  overflow:hidden;
}

/* Alte Schatten ausdrücklich deaktivieren. */
.project-detail-v11 .project-parallax-stage::before,
.project-detail-v11 .project-parallax-stage::after{
  content:none !important;
  display:none !important;
}

.project-detail-v11 .project-detail-foreground,
.project-detail-v11 .project-detail-gallery{
  box-shadow:none !important;
}

/*
 * Alle drei Schatten verwenden exakt dieselben Werte:
 * 8 px hoch, kompakt und etwas kräftiger als zuvor.
 */
.project-detail-v11{
  --project-shadow-height:8px;
  --project-shadow-dark:rgba(0,0,0,.27);
  --project-shadow-mid:rgba(0,0,0,.12);
}

/* 1. Schatten unmittelbar unter dem Header.
   Er liegt INNERHALB des Hero-Containers und kann deshalb niemals
   breiter sein als das tatsächliche Hintergrundbild / die Projektseite. */
.project-detail-v11 .project-hero-sticky::before{
  content:"";
  position:absolute;
  z-index:10;
  top:0;
  left:0;
  right:0;
  width:100%;
  height:var(--project-shadow-height);
  pointer-events:none;
  background:linear-gradient(
    to bottom,
    var(--project-shadow-dark) 0%,
    var(--project-shadow-mid) 50%,
    rgba(0,0,0,0) 100%
  );
}

/* 2. Schatten oberhalb des weißen Projektblocks auf dem Hero. */
.project-detail-v11 .project-detail-foreground::before{
  content:"";
  position:absolute;
  z-index:10;
  left:0;
  right:0;
  top:calc(-1 * var(--project-shadow-height));
  width:100%;
  height:var(--project-shadow-height);
  pointer-events:none;
  background:linear-gradient(
    to top,
    var(--project-shadow-dark) 0%,
    var(--project-shadow-mid) 50%,
    rgba(0,0,0,0) 100%
  );
}

/* 3. Schatten unter der Galerie auf dem roten Block. */
.project-detail-v11 .project-detail-gallery{
  position:relative;
  z-index:3;
}

.project-detail-v11 .project-detail-gallery::after{
  content:"";
  position:absolute;
  z-index:10;
  left:0;
  right:0;
  bottom:calc(-1 * var(--project-shadow-height));
  width:100%;
  height:var(--project-shadow-height);
  pointer-events:none;
  background:linear-gradient(
    to bottom,
    var(--project-shadow-dark) 0%,
    var(--project-shadow-mid) 50%,
    rgba(0,0,0,0) 100%
  );
}

/*
 * Lightbox liegt bewusst ÜBER dem Header.
 * Damit ist der Header auch dann unsichtbar, falls JavaScript oder
 * ein Browser-Cache die zusätzliche body-Klasse einmal verzögert.
 */
.lightbox{
  z-index:5000 !important;
}

/* Zusätzliche Absicherung: Header bei offener Lightbox ausblenden. */
body.lightbox-open .site-header{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* Mobil: gleiche Schattenwerte, nur andere Headerhöhe. */
@media(max-width:760px){
  .project-detail-v11 .project-hero-sticky{
    top:74px;
  }

  .project-detail-v11{
    --project-shadow-height:8px;
    --project-shadow-dark:rgba(0,0,0,.27);
    --project-shadow-mid:rgba(0,0,0,.12);
  }
}


/* ==========================================================
   V11.6 – Lightbox-Bildwechsel ohne Fade
   ========================================================== */

.lightbox img,
.project-detail-v11 + .lightbox img{
  transition:none !important;
  animation:none !important;
  opacity:1 !important;
}


/* ==========================================================
   V12.0 – Leistungen
   Originalprinzip: Bild/Zitat + klarer weißer Textbereich
   ========================================================== */

.services-page-v12{
  width:100%;
  margin:0;
  padding:0;
  background:#fff;
}

.services-page-v12 .service-section{
  width:100%;
  margin:0;
  padding:0;
}

/* -----------------------------------------
   Bildbereiche
   ----------------------------------------- */
.services-page-v12 .service-image-panel{
  position:relative;
  width:100%;
  height:440px;
  min-height:440px;
  overflow:hidden;
  background:#555;
}

.services-page-v12 .service-background-image{
  position:absolute;
  inset:-8%;
  width:116%;
  height:116%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
  transform:translateZ(0);
}

/* leichte Abdunklung nur für gute Lesbarkeit des Zitats */
.services-page-v12 .service-image-overlay{
  position:absolute;
  z-index:1;
  inset:0;
  background:rgba(0,0,0,.20);
}

/* dezenter Schatten an der oberen Bildkante wie bei den übrigen
   räumlichen Übergängen der Website */
.services-page-v12 .service-image-panel::before{
  content:"";
  position:absolute;
  z-index:3;
  top:0;
  left:0;
  right:0;
  height:8px;
  pointer-events:none;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,.20) 0%,
    rgba(0,0,0,.08) 50%,
    rgba(0,0,0,0) 100%
  );
}

.services-page-v12 .service-quote-panel{
  position:absolute;
  z-index:2;
  top:50%;
  left:50%;
  width:min(820px,82%);
  transform:translate(-50%,-50%);
  text-align:center;
  color:#fff;
}

.services-page-v12 .service-quote-panel blockquote{
  margin:0;
  padding:0;
  border:0;
  font-size:27px;
  line-height:1.52;
  font-weight:300;
  letter-spacing:.005em;
  text-shadow:0 1px 5px rgba(0,0,0,.32);
}

.services-page-v12 .service-quote-panel cite{
  display:block;
  margin-top:17px;
  color:rgba(255,255,255,.92);
  font-size:12px;
  line-height:1.4;
  font-style:normal;
  letter-spacing:.075em;
  text-shadow:0 1px 4px rgba(0,0,0,.25);
}

.services-page-v12 .service-quote-panel-long blockquote{
  font-size:23px;
  line-height:1.48;
}

/* -----------------------------------------
   Weiße Textbereiche
   ----------------------------------------- */
.services-page-v12 .service-content-panel{
  position:relative;
  z-index:4;
  width:100%;
  background:#fff;
}

/* kurzer Schatten oben auf der weißen Fläche */
.services-page-v12 .service-content-panel::before{
  content:"";
  position:absolute;
  z-index:1;
  top:-8px;
  left:0;
  right:0;
  height:8px;
  pointer-events:none;
  background:linear-gradient(
    to top,
    rgba(0,0,0,.16) 0%,
    rgba(0,0,0,.06) 50%,
    rgba(0,0,0,0) 100%
  );
}

.services-page-v12 .service-content{
  width:80%;
  max-width:780px;
  margin:0 auto;
  padding:70px 0 82px;
}

.services-page-v12 .service-content h1,
.services-page-v12 .service-content h2{
  margin:0 0 29px;
  color:#343434;
  font-size:35px;
  line-height:1.2;
  font-weight:300;
  letter-spacing:.005em;
}

.services-page-v12 .service-content p,
.services-page-v12 .service-content li{
  color:#505050;
  font-size:14px;
  line-height:1.88;
  font-weight:400;
}

.services-page-v12 .service-content p{
  margin:0 0 20px;
}

.services-page-v12 .service-content ul{
  margin:4px 0 0;
  padding:0 0 0 20px;
}

.services-page-v12 .service-content li{
  margin:0 0 12px;
  padding-left:4px;
}

.services-page-v12 .service-more-link{
  display:inline-block;
  margin-top:7px;
  font-size:13px;
}

/* -----------------------------------------
   sehr dezenter Bild-Parallax-Effekt Desktop
   ----------------------------------------- */
@media(min-width:981px){
  .services-page-v12 .service-image-panel{
    height:470px;
  }

  .services-page-v12 .service-background-image{
    transform:translate3d(0,0,0) scale(1.02);
  }
}

/* -----------------------------------------
   Tablet
   ----------------------------------------- */
@media(max-width:980px){
  .services-page-v12 .service-image-panel{
    height:400px;
    min-height:400px;
  }

  .services-page-v12 .service-quote-panel{
    width:84%;
  }

  .services-page-v12 .service-quote-panel blockquote{
    font-size:24px;
  }

  .services-page-v12 .service-quote-panel-long blockquote{
    font-size:21px;
  }

  .services-page-v12 .service-content{
    width:82%;
    max-width:760px;
    padding:60px 0 70px;
  }

  .services-page-v12 .service-content h1,
  .services-page-v12 .service-content h2{
    font-size:32px;
  }
}

/* -----------------------------------------
   Smartphone
   ----------------------------------------- */
@media(max-width:760px){
  .services-page-v12 .service-image-panel{
    height:340px;
    min-height:340px;
  }

  .services-page-v12 .service-background-image{
    inset:0;
    width:100%;
    height:100%;
  }

  .services-page-v12 .service-image-overlay{
    background:rgba(0,0,0,.24);
  }

  .services-page-v12 .service-quote-panel{
    width:86%;
  }

  .services-page-v12 .service-quote-panel blockquote{
    font-size:20px;
    line-height:1.5;
  }

  .services-page-v12 .service-quote-panel-long{
    width:90%;
  }

  .services-page-v12 .service-quote-panel-long blockquote{
    font-size:17px;
    line-height:1.48;
  }

  .services-page-v12 .service-quote-panel cite{
    margin-top:13px;
    font-size:10.5px;
  }

  .services-page-v12 .service-content{
    width:86%;
    padding:48px 0 56px;
  }

  .services-page-v12 .service-content h1,
  .services-page-v12 .service-content h2{
    margin-bottom:24px;
    font-size:29px;
  }

  .services-page-v12 .service-content p,
  .services-page-v12 .service-content li{
    font-size:13px;
    line-height:1.78;
  }

  .services-page-v12 .service-more-link{
    font-size:12px;
  }
}


/* ==========================================================
   V12.1 – Footer auf allen Seiten exakt zentriert
   ========================================================== */

body .site-footer,
body.page-home .site-footer{
  width:100%;
  margin:0;
  padding:0;
}

body .site-footer .footer-inner,
body.page-home .site-footer .footer-inner{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}

@media(max-width:760px){
  body .site-footer .footer-inner,
  body.page-home .site-footer .footer-inner{
    padding-left:4% !important;
    padding-right:4% !important;
    justify-content:center;
    text-align:center;
  }
}


/* ==========================================================
   V12.2 – Leistungen zweispaltig / alternierend
   ========================================================== */

.services-page-v122{
  width:100%;
  margin:0;
  padding:0;
  background:#fff;
}

.services-page-v122 .service-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  width:100%;
  min-height:560px;
  margin:0;
  padding:0;
  background:#fff;
}

/* Weißes Textfeld */
.services-page-v122 .service-text-cell{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  background:#fff;
}

.services-page-v122 .service-text-inner{
  width:76%;
  max-width:620px;
  padding:72px 0;
}

.services-page-v122 .service-text-inner h1,
.services-page-v122 .service-text-inner h2{
  margin:0 0 30px;
  color:#343434;
  font-size:35px;
  line-height:1.18;
  font-weight:300;
  letter-spacing:.005em;
}

.services-page-v122 .service-text-inner p,
.services-page-v122 .service-text-inner li{
  color:#505050;
  font-size:14px;
  line-height:1.86;
  font-weight:400;
}

.services-page-v122 .service-text-inner p{
  margin:0 0 20px;
}

.services-page-v122 .service-text-inner ul{
  margin:4px 0 0;
  padding-left:20px;
}

.services-page-v122 .service-text-inner li{
  margin:0 0 12px;
  padding-left:4px;
}

.services-page-v122 .service-more-link{
  display:inline-block;
  margin-top:7px;
  font-size:13px;
}

/* Bildfeld */
.services-page-v122 .service-image-cell{
  position:relative;
  min-width:0;
  min-height:560px;
  overflow:hidden;
  background:#555;
}

.services-page-v122 .service-row-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
  transform:scale(1.01);
}

.services-page-v122 .service-row-overlay{
  position:absolute;
  z-index:1;
  inset:0;
  background:rgba(0,0,0,.20);
}

.services-page-v122 .service-row-quote{
  position:absolute;
  z-index:2;
  top:50%;
  left:50%;
  width:76%;
  transform:translate(-50%,-50%);
  color:#fff;
  text-align:center;
}

.services-page-v122 .service-row-quote blockquote{
  margin:0;
  padding:0;
  border:0;
  font-size:25px;
  line-height:1.5;
  font-weight:300;
  letter-spacing:.004em;
  text-shadow:0 1px 5px rgba(0,0,0,.30);
}

.services-page-v122 .service-row-quote cite{
  display:block;
  margin-top:17px;
  color:rgba(255,255,255,.93);
  font-size:12px;
  line-height:1.4;
  font-style:normal;
  letter-spacing:.075em;
  text-shadow:0 1px 4px rgba(0,0,0,.25);
}

.services-page-v122 .service-row-quote-long{
  width:82%;
}

.services-page-v122 .service-row-quote-long blockquote{
  font-size:20px;
  line-height:1.48;
}

/* feine Trennung zwischen den drei Blöcken */
.services-page-v122 .service-row + .service-row{
  border-top:1px solid rgba(0,0,0,.045);
}

/* Tablet */
@media(max-width:1100px){
  .services-page-v122 .service-row{
    min-height:520px;
  }

  .services-page-v122 .service-image-cell{
    min-height:520px;
  }

  .services-page-v122 .service-text-inner{
    width:80%;
    padding:58px 0;
  }

  .services-page-v122 .service-text-inner h1,
  .services-page-v122 .service-text-inner h2{
    font-size:31px;
  }

  .services-page-v122 .service-text-inner p,
  .services-page-v122 .service-text-inner li{
    font-size:13px;
    line-height:1.78;
  }

  .services-page-v122 .service-row-quote blockquote{
    font-size:22px;
  }

  .services-page-v122 .service-row-quote-long blockquote{
    font-size:18px;
  }
}

/* Mobil: beide Spalten untereinander.
   Reihenfolge bleibt entsprechend des Desktop-Aufbaus erhalten. */
@media(max-width:760px){
  .services-page-v122 .service-row{
    display:flex;
    flex-direction:column;
    min-height:0;
  }

  .services-page-v122 .service-text-cell{
    order:1;
  }

  .services-page-v122 .service-image-cell{
    order:2;
    min-height:330px;
  }

  /* Beim mittleren Block bleibt die gespiegelte Reihenfolge erhalten:
     zuerst Bild, danach Text. */
  .services-page-v122 .service-row-image-text .service-image-cell{
    order:1;
  }

  .services-page-v122 .service-row-image-text .service-text-cell{
    order:2;
  }

  .services-page-v122 .service-text-inner{
    width:86%;
    max-width:none;
    padding:46px 0 54px;
  }

  .services-page-v122 .service-text-inner h1,
  .services-page-v122 .service-text-inner h2{
    margin-bottom:24px;
    font-size:29px;
  }

  .services-page-v122 .service-text-inner p,
  .services-page-v122 .service-text-inner li{
    font-size:13px;
    line-height:1.78;
  }

  .services-page-v122 .service-row-quote{
    width:86%;
  }

  .services-page-v122 .service-row-quote blockquote{
    font-size:19px;
    line-height:1.48;
  }

  .services-page-v122 .service-row-quote-long{
    width:90%;
  }

  .services-page-v122 .service-row-quote-long blockquote{
    font-size:16.5px;
  }

  .services-page-v122 .service-row-quote cite{
    margin-top:13px;
    font-size:10.5px;
  }
}


/* ==========================================================
   V12.3 – Leistungen editorial / asymmetrisch
   ========================================================== */

.services-page-v123{
  width:100%;
  margin:0;
  padding:0;
  background:#fff;
}

/* Grundraster: 42/58 bzw. gespiegelt */
.services-page-v123 .service-row{
  display:grid;
  width:100%;
  margin:0;
  padding:0;
  background:#fff;
  overflow:hidden;
}

.services-page-v123 .service-row-architecture{
  grid-template-columns:42% 58%;
  min-height:560px;
}

.services-page-v123 .service-row-expertise{
  grid-template-columns:58% 42%;
  min-height:520px;
}

.services-page-v123 .service-row-realestate{
  grid-template-columns:42% 58%;
  min-height:620px;
}

/* Textzelle */
.services-page-v123 .service-text-cell{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  background:#fff;
}

.services-page-v123 .service-text-inner{
  width:72%;
  max-width:560px;
  padding:68px 0;
}

.services-page-v123 .service-kicker{
  display:flex;
  align-items:center;
  gap:13px;
  margin:0 0 17px;
}

.services-page-v123 .service-number{
  color:#b8b8b8;
  font-size:11px;
  line-height:1;
  font-weight:400;
  letter-spacing:.12em;
}

.services-page-v123 .service-red-line{
  display:block;
  width:42px;
  height:1px;
  background:#b51f29;
}

.services-page-v123 .service-text-inner h1,
.services-page-v123 .service-text-inner h2{
  margin:0 0 29px;
  color:#343434;
  font-size:36px;
  line-height:1.15;
  font-weight:300;
  letter-spacing:.002em;
}

.services-page-v123 .service-text-inner p,
.services-page-v123 .service-text-inner li{
  color:#505050;
  font-size:14px;
  line-height:1.86;
  font-weight:400;
}

.services-page-v123 .service-text-inner p{
  margin:0 0 20px;
}

.services-page-v123 .service-text-inner ul{
  margin:4px 0 0;
  padding-left:20px;
}

.services-page-v123 .service-text-inner li{
  margin:0 0 12px;
  padding-left:4px;
}

.services-page-v123 .service-more-link{
  display:inline-block;
  margin-top:7px;
  font-size:13px;
}

/* Bildzelle */
.services-page-v123 .service-image-cell{
  position:relative;
  min-width:0;
  min-height:100%;
  overflow:hidden;
  background:#444;
}

.services-page-v123 .service-row-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
  transform:scale(1.005);
}

/* Nur unten dunkler Verlauf für das Zitat */
.services-page-v123 .service-image-gradient{
  position:absolute;
  z-index:1;
  inset:auto 0 0 0;
  height:42%;
  background:linear-gradient(
    to top,
    rgba(0,0,0,.46) 0%,
    rgba(0,0,0,.20) 52%,
    rgba(0,0,0,0) 100%
  );
  pointer-events:none;
}

/* Zitat klein unten links */
.services-page-v123 .service-row-quote{
  position:absolute;
  z-index:2;
  left:7%;
  bottom:7%;
  width:min(520px,78%);
  color:#fff;
  text-align:left;
}

.services-page-v123 .service-row-quote blockquote{
  margin:0;
  padding:0;
  border:0;
  font-size:18px;
  line-height:1.52;
  font-weight:300;
  letter-spacing:.003em;
  text-shadow:0 1px 4px rgba(0,0,0,.24);
}

.services-page-v123 .service-row-quote cite{
  display:block;
  margin-top:11px;
  color:rgba(255,255,255,.88);
  font-size:10.5px;
  line-height:1.4;
  font-style:normal;
  letter-spacing:.075em;
  text-shadow:0 1px 3px rgba(0,0,0,.2);
}

.services-page-v123 .service-row-quote-long{
  width:min(560px,82%);
}

.services-page-v123 .service-row-quote-long blockquote{
  font-size:16px;
  line-height:1.48;
}

/* extrem feine horizontale Trennung */
.services-page-v123 .service-row + .service-row{
  border-top:1px solid rgba(0,0,0,.045);
}

/* Tablet */
@media(max-width:1100px){
  .services-page-v123 .service-row-architecture{
    grid-template-columns:44% 56%;
    min-height:540px;
  }

  .services-page-v123 .service-row-expertise{
    grid-template-columns:56% 44%;
    min-height:500px;
  }

  .services-page-v123 .service-row-realestate{
    grid-template-columns:44% 56%;
    min-height:600px;
  }

  .services-page-v123 .service-text-inner{
    width:78%;
    padding:56px 0;
  }

  .services-page-v123 .service-text-inner h1,
  .services-page-v123 .service-text-inner h2{
    font-size:32px;
  }

  .services-page-v123 .service-text-inner p,
  .services-page-v123 .service-text-inner li{
    font-size:13px;
    line-height:1.78;
  }

  .services-page-v123 .service-row-quote blockquote{
    font-size:16.5px;
  }

  .services-page-v123 .service-row-quote-long blockquote{
    font-size:15px;
  }
}

/* Mobile */
@media(max-width:760px){
  .services-page-v123 .service-row{
    display:flex;
    flex-direction:column;
    min-height:0;
  }

  .services-page-v123 .service-text-cell{
    order:1;
  }

  .services-page-v123 .service-image-cell{
    order:2;
    min-height:330px;
  }

  /* Gutachten bleibt gespiegelt: Bild vor Text */
  .services-page-v123 .service-row-expertise .service-image-cell{
    order:1;
  }

  .services-page-v123 .service-row-expertise .service-text-cell{
    order:2;
  }

  .services-page-v123 .service-text-inner{
    width:86%;
    max-width:none;
    padding:44px 0 52px;
  }

  .services-page-v123 .service-kicker{
    margin-bottom:14px;
  }

  .services-page-v123 .service-number{
    font-size:10px;
  }

  .services-page-v123 .service-red-line{
    width:34px;
  }

  .services-page-v123 .service-text-inner h1,
  .services-page-v123 .service-text-inner h2{
    margin-bottom:23px;
    font-size:29px;
  }

  .services-page-v123 .service-text-inner p,
  .services-page-v123 .service-text-inner li{
    font-size:13px;
    line-height:1.78;
  }

  .services-page-v123 .service-row-quote{
    left:6%;
    bottom:6%;
    width:84%;
  }

  .services-page-v123 .service-row-quote blockquote{
    font-size:16px;
    line-height:1.47;
  }

  .services-page-v123 .service-row-quote-long{
    width:88%;
  }

  .services-page-v123 .service-row-quote-long blockquote{
    font-size:14px;
  }

  .services-page-v123 .service-row-quote cite{
    margin-top:9px;
    font-size:10px;
  }

  .services-page-v123 .service-image-gradient{
    height:50%;
  }
}


/* ==========================================================
   V12.4 – Leistungen Feinschliff
   ========================================================== */

/* Schatten direkt unter dem Header auf der Leistungsseite */
body:has(.services-page-v123) .site-header{
  position:sticky;
  top:0;
  z-index:1000;
  box-shadow:0 7px 12px rgba(0,0,0,.16);
}

/* Zwischen den drei Leistungszeilen keinerlei Linie / Abstand */
.services-page-v123 .service-row,
.services-page-v123 .service-row + .service-row{
  border:0 !important;
  border-top:0 !important;
  margin:0 !important;
  padding:0 !important;
  gap:0 !important;
}

/* Bildfelder bündig ohne mögliche Inline-/Raster-Lücken */
.services-page-v123 .service-image-cell,
.services-page-v123 .service-text-cell{
  margin:0 !important;
  border:0 !important;
}

.services-page-v123 .service-row-image{
  display:block;
}

/* Bild nicht mehr flächig abdunkeln; nur sehr dezente Lesbarkeitshilfe */
.services-page-v123 .service-image-gradient{
  inset:0;
  height:100%;
  background:rgba(0,0,0,.15);
}

/* Zitate exakt horizontal + vertikal zentriert und größer */
.services-page-v123 .service-row-quote,
.services-page-v123 .service-row-quote-long{
  top:50%;
  left:50%;
  bottom:auto;
  width:76%;
  max-width:720px;
  transform:translate(-50%,-50%);
  text-align:center;
}

.services-page-v123 .service-row-quote blockquote{
  font-size:24px;
  line-height:1.50;
  font-weight:300;
  text-shadow:0 1px 5px rgba(0,0,0,.32);
}

.services-page-v123 .service-row-quote-long blockquote{
  font-size:21px;
  line-height:1.50;
}

.services-page-v123 .service-row-quote cite{
  margin-top:16px;
  font-size:11.5px;
  text-align:center;
}

/* Tablet */
@media(max-width:1100px){
  .services-page-v123 .service-row-quote,
  .services-page-v123 .service-row-quote-long{
    width:80%;
  }

  .services-page-v123 .service-row-quote blockquote{
    font-size:21px;
  }

  .services-page-v123 .service-row-quote-long blockquote{
    font-size:18px;
  }
}

/* Mobil */
@media(max-width:760px){
  body:has(.services-page-v123) .site-header{
    box-shadow:0 5px 9px rgba(0,0,0,.15);
  }

  .services-page-v123 .service-row-quote,
  .services-page-v123 .service-row-quote-long{
    top:50%;
    left:50%;
    bottom:auto;
    width:86%;
    transform:translate(-50%,-50%);
    text-align:center;
  }

  .services-page-v123 .service-row-quote blockquote{
    font-size:19px;
    line-height:1.48;
  }

  .services-page-v123 .service-row-quote-long blockquote{
    font-size:16.5px;
    line-height:1.48;
  }

  .services-page-v123 .service-row-quote cite{
    margin-top:12px;
    font-size:10.5px;
  }
}


/* ==========================================================
   V12.5 – Leistungen ohne Nummerierung
   ========================================================== */

.services-page-v123 .service-kicker{
  gap:0;
}

.services-page-v123 .service-number{
  display:none !important;
}


/* ==========================================================
   V13.0 – temporäre Startseiten-Varianten
   ========================================================== */

/* Alternativen verwenden ihre eigene Identität statt der bisherigen Zusatzzeile */
.home-variant-a .home-identity-line,
.home-variant-b .home-identity-line,
.home-variant-c .home-identity-line{
  display:none;
}

.home-alt{
  width:100%;
  margin:0;
  padding:0;
  background:#fff;
}

/* ---------- temporärer Varianten-Footer ---------- */
.style-preview-switcher{
  width:100%;
  min-height:54px;
  padding:12px 4%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:9px 20px;
  box-sizing:border-box;
  background:#232323;
  color:#aaa;
  font-size:11px;
  letter-spacing:.035em;
}

.style-preview-switcher .style-preview-label{
  color:#777;
  font-size:9.5px;
  letter-spacing:.12em;
}

.style-preview-switcher a{
  color:#eee;
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:border-color .2s ease,color .2s ease;
}

.style-preview-switcher a:hover{
  color:#fff;
  border-bottom-color:#b51f29;
}

/* ==========================================================
   A – DUAL
   ========================================================== */
.home-variant-a .site-header{
  box-shadow:0 6px 12px rgba(0,0,0,.10);
}

.ha-hero{
  display:grid;
  grid-template-columns:62% 38%;
  min-height:620px;
}

.ha-project-stage{
  position:relative;
  min-height:620px;
  overflow:hidden;
  background:#ddd;
}

.ha-project-stage .home-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease;
}

.ha-project-stage .home-slide.is-active{
  opacity:1;
  visibility:visible;
}

.ha-project-stage .home-slide img{
  position:absolute;
  left:50%;
  top:50%;
  display:block;
  max-width:none;
  transform:translate(-50%,-50%);
}

.ha-project-stage .home-slide img.fit-height{height:100%;width:auto;}
.ha-project-stage .home-slide img.fit-width{width:100%;height:auto;}

.ha-intro{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:70px 12%;
  background:#353535;
  color:#fff;
}

.ha-eyebrow{
  margin-bottom:28px;
  color:#d5d5d5;
  font-size:10px;
  letter-spacing:.18em;
}

.ha-intro h1{
  margin:0 0 28px;
  font-size:41px;
  line-height:1.16;
  font-weight:300;
}

.ha-intro p{
  margin:0 0 30px;
  color:#e4e4e4;
  font-size:14px;
  line-height:1.75;
}

.ha-intro-links{
  display:flex;
  flex-direction:column;
  gap:9px;
}

.ha-intro-links a,
.ha-text-link{
  color:inherit;
  text-decoration:none;
  font-size:12px;
}

.ha-intro-links a{
  display:flex;
  justify-content:space-between;
  padding:12px 0;
  border-top:1px solid rgba(255,255,255,.20);
}

.ha-dual{
  display:grid;
  grid-template-columns:1fr 1fr;
  background:#fff;
}

.ha-company{
  min-height:410px;
  padding:66px 8%;
  border-right:1px solid #e7e7e7;
}

.ha-company-expert{
  border-right:0;
  background:#f5f5f3;
}

.ha-company-no{
  margin-bottom:18px;
  color:#b51f29;
  font-size:10px;
  letter-spacing:.14em;
}

.ha-company h2{
  margin:0 0 9px;
  color:#777;
  font-size:12px;
  line-height:1.4;
  font-weight:400;
  letter-spacing:.04em;
}

.ha-company h3{
  margin:0 0 26px;
  color:#333;
  font-size:31px;
  font-weight:300;
}

.ha-company p{
  max-width:580px;
  margin:0 0 25px;
  color:#555;
  font-size:14px;
  line-height:1.82;
}

.ha-text-link{
  color:#333;
  border-bottom:1px solid #b51f29;
}

.ha-trust{
  display:grid;
  grid-template-columns:45% 55%;
  gap:6%;
  padding:62px 8%;
  background:#fff;
  border-top:1px solid #eee;
}

.ha-trust-kicker{
  color:#b51f29;
  font-size:10px;
  letter-spacing:.16em;
}

.ha-trust h2{
  max-width:520px;
  margin:15px 0 0;
  color:#333;
  font-size:28px;
  line-height:1.35;
  font-weight:300;
}

.ha-trust p{
  max-width:620px;
  margin:24px 0 0;
  color:#555;
  font-size:14px;
  line-height:1.82;
}

/* ==========================================================
   B – EDITORIAL
   ========================================================== */
.home-variant-b .site-header{
  box-shadow:none;
  border-bottom:1px solid #eeeeec;
}

.hb-intro{
  display:grid;
  grid-template-columns:58% 42%;
  grid-template-rows:auto auto;
  padding:82px 7% 75px;
  background:#f7f7f5;
}

.hb-kicker{
  grid-column:1 / -1;
  margin-bottom:28px;
  color:#9c9c9c;
  font-size:10px;
  letter-spacing:.16em;
}

.hb-intro h1{
  margin:0;
  color:#2d2d2d;
  font-size:58px;
  line-height:1.05;
  font-weight:300;
  letter-spacing:-.018em;
}

.hb-intro-bottom{
  align-self:end;
  padding:0 0 4px 13%;
}

.hb-intro-bottom p{
  margin:0 0 22px;
  color:#555;
  font-size:14px;
  line-height:1.82;
}

.hb-intro-bottom a{
  color:#333;
  font-size:12px;
  text-decoration:none;
  border-bottom:1px solid #b51f29;
}

.hb-fields{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  min-height:510px;
}

.hb-field{
  position:relative;
  min-height:510px;
  overflow:hidden;
  color:#fff;
  text-decoration:none;
}

.hb-field img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .55s ease;
}

.hb-field:hover img{transform:scale(1.025);}

.hb-field-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.54),rgba(0,0,0,.04) 62%);
}

.hb-field-content{
  position:absolute;
  z-index:2;
  left:9%;
  right:9%;
  bottom:8%;
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:end;
  gap:8px 15px;
}

.hb-field-content small{
  grid-row:1 / 3;
  color:rgba(255,255,255,.65);
  font-size:10px;
}

.hb-field-content strong{
  font-size:27px;
  font-weight:300;
}

.hb-field-content em{
  color:rgba(255,255,255,.82);
  font-size:11px;
  font-style:normal;
  letter-spacing:.03em;
}

.hb-projects{
  padding:72px 7% 0;
  background:#fff;
}

.hb-project-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  margin-bottom:28px;
}

.hb-project-head span{
  color:#a2a2a2;
  font-size:10px;
  letter-spacing:.12em;
}

.hb-project-head h2{
  margin:8px 0 0;
  color:#333;
  font-size:36px;
  font-weight:300;
}

.hb-project-head a{
  color:#333;
  font-size:12px;
  text-decoration:none;
  border-bottom:1px solid #b51f29;
}

.hb-project-slider{
  position:relative;
  height:600px;
  overflow:hidden;
  background:#ddd;
}

.hb-project-slider .home-slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease;
}

.hb-project-slider .home-slide.is-active{
  opacity:1;
  visibility:visible;
}

.hb-project-slider .home-slide img{
  position:absolute;
  left:50%;
  top:50%;
  max-width:none;
  transform:translate(-50%,-50%);
}

.hb-project-slider .home-slide img.fit-height{height:100%;width:auto;}
.hb-project-slider .home-slide img.fit-width{width:100%;height:auto;}

.hb-slide-title{
  position:absolute;
  z-index:3;
  left:24px;
  bottom:20px;
  padding:7px 10px;
  background:rgba(255,255,255,.92);
  color:#333;
  font-size:11px;
}

.hb-companies{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:25px;
  padding:46px 6%;
  background:#fff;
  color:#666;
  font-size:12px;
}

.hb-companies p{margin:0;}
.hb-companies strong{color:#333;font-weight:400;}
.hb-companies > span{width:1px;height:20px;background:#ddd;}

/* ==========================================================
   C – PROJEKTFOKUS
   ========================================================== */
.home-variant-c .site-header{
  box-shadow:0 6px 12px rgba(0,0,0,.11);
}

.hc-stage{
  display:grid;
  grid-template-columns:68% 32%;
  min-height:650px;
}

.hc-slider{
  position:relative;
  min-height:650px;
  overflow:hidden;
  background:#ddd;
}

.hc-slider .home-slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease;
}

.hc-slider .home-slide.is-active{
  opacity:1;
  visibility:visible;
}

.hc-slider .home-slide img{
  position:absolute;
  left:50%;
  top:50%;
  max-width:none;
  transform:translate(-50%,-50%);
}

.hc-slider .home-slide img.fit-height{height:100%;width:auto;}
.hc-slider .home-slide img.fit-width{width:100%;height:auto;}

.hc-image-label{
  position:absolute;
  z-index:4;
  left:25px;
  bottom:21px;
  padding:7px 10px;
  background:rgba(255,255,255,.91);
  color:#444;
  font-size:9.5px;
  letter-spacing:.10em;
}

.hc-focus{
  display:flex;
  flex-direction:column;
  background:#fff;
}

.hc-focus-head{
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:55px 10%;
}

.hc-focus-head > span{
  margin-bottom:18px;
  color:#b51f29;
  font-size:10px;
  letter-spacing:.16em;
}

.hc-focus-head h1{
  margin:0;
  color:#333;
  font-size:34px;
  line-height:1.24;
  font-weight:300;
}

.hc-focus > a{
  position:relative;
  display:grid;
  grid-template-columns:1fr auto;
  gap:4px 15px;
  padding:22px 10%;
  border-top:1px solid #e5e5e5;
  color:#333;
  text-decoration:none;
  transition:background .25s ease;
}

.hc-focus > a:hover{
  background:#f4f4f2;
}

.hc-focus > a strong{
  font-size:14px;
  font-weight:400;
}

.hc-focus > a span{
  color:#888;
  font-size:10px;
  grid-column:1;
}

.hc-focus > a b{
  grid-column:2;
  grid-row:1 / 3;
  align-self:center;
  color:#b51f29;
  font-weight:300;
}

.hc-statement{
  display:grid;
  grid-template-columns:50% 50%;
  padding:70px 7%;
  background:#333;
  color:#fff;
}

.hc-statement h2{
  max-width:610px;
  margin:0;
  font-size:34px;
  line-height:1.28;
  font-weight:300;
}

.hc-statement p{
  max-width:600px;
  margin:6px 0 0 10%;
  color:#ddd;
  font-size:14px;
  line-height:1.82;
}

.hc-project-strip{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  width:100%;
}

.hc-project-strip a{
  position:relative;
  aspect-ratio:1.23 / 1;
  overflow:hidden;
  color:#fff;
}

.hc-project-strip img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s ease;
}

.hc-project-strip a:hover img{transform:scale(1.025);}

.hc-project-strip span{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:9px 10px;
  background:rgba(0,0,0,.52);
  color:#fff;
  font-size:10px;
  opacity:0;
  transition:opacity .25s ease;
}

.hc-project-strip a:hover span{opacity:1;}

.hc-bottom-actions{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  min-height:90px;
  background:#fff;
}

.hc-bottom-actions a{
  display:flex;
  align-items:center;
  justify-content:center;
  border-right:1px solid #e5e5e5;
  color:#333;
  font-size:11px;
  text-decoration:none;
}

.hc-bottom-actions a:last-child{border-right:0;}

.hc-bottom-actions .hc-bottom-main{
  justify-content:space-between;
  padding:0 5%;
  background:#b51f29;
  color:#fff;
  font-size:12px;
  transition:background .35s ease;
}

.hc-bottom-actions .hc-bottom-main:hover{background:#be3039;}

/* ---------- responsive variants ---------- */
@media(max-width:980px){
  .ha-hero,
  .hc-stage{grid-template-columns:58% 42%;}

  .ha-intro h1{font-size:34px;}
  .hb-intro h1{font-size:48px;}
  .hb-project-slider{height:500px;}
  .hc-focus-head h1{font-size:29px;}
}

@media(max-width:760px){
  .style-preview-switcher{
    padding:12px 5%;
    gap:8px 13px;
    font-size:10.5px;
  }
  .style-preview-switcher .style-preview-label{
    width:100%;
    text-align:center;
  }

  .ha-hero,
  .hc-stage{
    display:flex;
    flex-direction:column;
  }

  .ha-project-stage,
  .hc-slider{
    min-height:58vh;
    height:58vh;
  }

  .ha-intro{
    padding:45px 8%;
  }

  .ha-intro h1{
    font-size:32px;
  }

  .ha-dual{
    grid-template-columns:1fr;
  }

  .ha-company{
    min-height:0;
    padding:48px 8%;
    border-right:0;
    border-bottom:1px solid #e7e7e7;
  }

  .ha-trust{
    grid-template-columns:1fr;
    gap:10px;
    padding:48px 8%;
  }

  .hb-intro{
    display:block;
    padding:52px 7%;
  }

  .hb-intro h1{
    font-size:41px;
  }

  .hb-intro-bottom{
    padding:33px 0 0;
  }

  .hb-fields{
    grid-template-columns:1fr;
  }

  .hb-field{
    min-height:360px;
  }

  .hb-projects{
    padding:50px 0 0;
  }

  .hb-project-head{
    padding:0 7%;
  }

  .hb-project-slider{
    height:58vh;
    min-height:380px;
  }

  .hb-companies{
    display:block;
    padding:34px 7%;
    text-align:center;
  }

  .hb-companies > span{
    display:block;
    width:34px;
    height:1px;
    margin:14px auto;
  }

  .hc-focus-head{
    min-height:260px;
    padding:45px 8%;
  }

  .hc-focus > a{
    padding:20px 8%;
  }

  .hc-statement{
    grid-template-columns:1fr;
    padding:50px 8%;
  }

  .hc-statement h2{
    font-size:29px;
  }

  .hc-statement p{
    margin:26px 0 0;
  }

  .hc-project-strip{
    grid-template-columns:repeat(3,1fr);
  }

  .hc-project-strip a:nth-child(n+4){
    display:none;
  }

  .hc-bottom-actions{
    grid-template-columns:1fr;
  }

  .hc-bottom-actions a{
    min-height:65px;
    border-right:0;
    border-bottom:1px solid #e5e5e5;
  }

  .hc-bottom-actions .hc-bottom-main{
    min-height:82px;
  }
}


/* ==========================================================
   V13.1 – LEHNES als gemeinsame Marke / weniger GmbH-Trennung
   ========================================================== */

/* Variante A: drei verbundene Kompetenzfelder statt zwei Unternehmen */
.home-variant-a .ha-competence-grid{
  grid-template-columns:repeat(3,1fr);
}

.home-variant-a .ha-competence-grid .ha-company{
  min-height:395px;
  border-right:1px solid #e7e7e7;
  background:#fff;
}

.home-variant-a .ha-competence-grid .ha-company:nth-child(2){
  background:#f8f8f6;
}

.home-variant-a .ha-competence-grid .ha-company:last-child{
  border-right:0;
  background:#f1f1ef;
}

.home-variant-a .ha-competence-grid .ha-company-no{
  color:#b51f29;
  font-size:9.5px;
  letter-spacing:.15em;
}

.home-variant-a .ha-competence-grid h3{
  font-size:27px;
}

/* Variante B: nur noch eine gemeinsame LEHNES-Zeile */
.home-variant-b .hb-one-brand{
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:78px;
  padding:26px 6%;
  text-align:center;
}

.home-variant-b .hb-one-brand p{
  margin:0;
  color:#666;
  font-size:12px;
  letter-spacing:.025em;
}

.home-variant-b .hb-one-brand strong{
  color:#333;
  font-weight:500;
  letter-spacing:.08em;
}

/* Mobil */
@media(max-width:760px){
  .home-variant-a .ha-competence-grid{
    grid-template-columns:1fr;
  }

  .home-variant-a .ha-competence-grid .ha-company{
    min-height:0;
    border-right:0;
    border-bottom:1px solid #e7e7e7;
  }

  .home-variant-a .ha-competence-grid .ha-company:last-child{
    border-bottom:0;
  }
}


/* ==========================================================
   V13.2 – B Editorial: Kompetenzfelder + Architektur-Slideshow
   ========================================================== */

/* Die drei Felder bekommen mehr Tiefe für die Kurztexte. */
.home-variant-b .hb-fields-v132{
  min-height:570px;
}

.home-variant-b .hb-fields-v132 .hb-field{
  min-height:570px;
}

/* Architekturfeld: Slider belegt das komplette Bildfeld */
.home-variant-b .hb-field-architecture{
  background:#bbb;
}

.home-variant-b .hb-field-slider{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  overflow:hidden;
}

.home-variant-b .hb-field-slider .home-slide{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease;
}

.home-variant-b .hb-field-slider .home-slide.is-active{
  opacity:1;
  visibility:visible;
}

.home-variant-b .hb-field-slider .home-slide img{
  position:absolute;
  left:50%;
  top:50%;
  display:block;
  max-width:none;
  transform:translate(-50%,-50%);
  transition:none;
}

.home-variant-b .hb-field-slider .home-slide img.fit-height{
  width:auto;
  height:100%;
}

.home-variant-b .hb-field-slider .home-slide img.fit-width{
  width:100%;
  height:auto;
}

/* Das Feld selbst zoomt nicht mehr beim Hover; die Bilder sollen ruhig bleiben. */
.home-variant-b .hb-field-architecture:hover .hb-field-slider img{
  transform:translate(-50%,-50%);
}

/* Inhalt der drei Kompetenzfelder neu ordnen. */
.home-variant-b .hb-fields-v132 .hb-field-content{
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto auto;
  align-items:start;
}

.home-variant-b .hb-fields-v132 .hb-field-content small{
  grid-row:1 / 4;
  padding-top:5px;
}

.home-variant-b .hb-fields-v132 .hb-field-content strong{
  grid-column:2;
  font-size:28px;
}

.home-variant-b .hb-fields-v132 .hb-field-content em{
  grid-column:2;
  margin-bottom:8px;
}

.home-variant-b .hb-field-description{
  grid-column:2;
  display:block;
  max-width:430px;
  color:rgba(255,255,255,.92);
  font-size:12px;
  line-height:1.58;
  font-style:normal;
  font-weight:400;
  letter-spacing:0;
}

/* Verlauf unten etwas höher, damit auch der zusätzliche Text gut lesbar bleibt. */
.home-variant-b .hb-fields-v132 .hb-field-shade{
  background:linear-gradient(
    to top,
    rgba(0,0,0,.62) 0%,
    rgba(0,0,0,.33) 46%,
    rgba(0,0,0,.05) 78%,
    rgba(0,0,0,0) 100%
  );
}

/* Große untere Slideshow entfällt – stattdessen ruhiger Editorial-Abschluss. */
.home-variant-b .hb-editorial-statement{
  display:grid;
  grid-template-columns:40% 44% 16%;
  align-items:center;
  gap:4%;
  padding:62px 7%;
  background:#fff;
  border-top:1px solid #ededeb;
}

.home-variant-b .hb-editorial-statement > div > span{
  color:#b51f29;
  font-size:10px;
  letter-spacing:.16em;
}

.home-variant-b .hb-editorial-statement h2{
  margin:12px 0 0;
  color:#333;
  font-size:31px;
  line-height:1.25;
  font-weight:300;
}

.home-variant-b .hb-editorial-statement p{
  margin:0;
  color:#555;
  font-size:14px;
  line-height:1.82;
}

.home-variant-b .hb-editorial-statement > a{
  justify-self:end;
  color:#333;
  font-size:12px;
  text-decoration:none;
  white-space:nowrap;
  border-bottom:1px solid #b51f29;
}

@media(max-width:1100px){
  .home-variant-b .hb-fields-v132,
  .home-variant-b .hb-fields-v132 .hb-field{
    min-height:540px;
  }

  .home-variant-b .hb-field-description{
    font-size:11.5px;
    line-height:1.55;
  }

  .home-variant-b .hb-editorial-statement{
    grid-template-columns:38% 46% 16%;
    padding:54px 6%;
  }
}

@media(max-width:760px){
  .home-variant-b .hb-fields-v132{
    min-height:0;
  }

  .home-variant-b .hb-fields-v132 .hb-field{
    min-height:430px;
  }

  .home-variant-b .hb-fields-v132 .hb-field-content{
    left:7%;
    right:7%;
    bottom:7%;
  }

  .home-variant-b .hb-fields-v132 .hb-field-content strong{
    font-size:25px;
  }

  .home-variant-b .hb-field-description{
    max-width:none;
    font-size:11.5px;
  }

  .home-variant-b .hb-editorial-statement{
    display:block;
    padding:48px 7%;
  }

  .home-variant-b .hb-editorial-statement h2{
    font-size:28px;
  }

  .home-variant-b .hb-editorial-statement p{
    margin:25px 0 23px;
  }

  .home-variant-b .hb-editorial-statement > a{
    display:inline-block;
  }
}


/* ==========================================================
   V13.3 – Editorial als Hauptdesign
   ========================================================== */

/* Frühere Home-Variant-Klassen spielen keine Rolle mehr. */
.design-editorial .home-identity-line,
.design-atelier .home-identity-line,
.design-precision .home-identity-line{
  display:none;
}

/* 01/02/03 entfernt: Inhaltsraster jetzt ohne leere erste Spalte */
.design-editorial .hb-fields-v132 .hb-field-content,
.design-atelier .hb-fields-v132 .hb-field-content,
.design-precision .hb-fields-v132 .hb-field-content{
  grid-template-columns:1fr;
  grid-template-rows:auto auto auto;
}

.design-editorial .hb-fields-v132 .hb-field-content strong,
.design-editorial .hb-fields-v132 .hb-field-content em,
.design-editorial .hb-field-description,
.design-atelier .hb-fields-v132 .hb-field-content strong,
.design-atelier .hb-fields-v132 .hb-field-content em,
.design-atelier .hb-field-description,
.design-precision .hb-fields-v132 .hb-field-content strong,
.design-precision .hb-fields-v132 .hb-field-content em,
.design-precision .hb-field-description{
  grid-column:1;
}

/* ==========================================================
   DESIGN A – ATELIER
   warm, ruhig, magazinartig
   ========================================================== */

.design-atelier{
  --atelier-bg:#eeeae2;
  --atelier-paper:#f8f6f1;
  --atelier-ink:#292927;
  --atelier-muted:#68655f;
  --atelier-line:#d9d4ca;
}

.design-atelier,
.design-atelier .site-frame{
  background:var(--atelier-bg);
}

.design-atelier .site-header{
  background:rgba(248,246,241,.98);
  box-shadow:none;
  border-bottom:1px solid var(--atelier-line);
}

.design-atelier .site-header .header-inner{
  height:104px;
}

.design-atelier .main-nav a{
  font-size:12.5px;
  letter-spacing:.035em;
}

.design-atelier .home-alt{
  background:var(--atelier-paper);
}

/* Homepage Atelier */
.design-atelier .hb-intro{
  display:block;
  padding:92px 9% 88px;
  background:var(--atelier-paper);
}

.design-atelier .hb-kicker{
  margin-bottom:35px;
  color:#a19c92;
}

.design-atelier .hb-intro h1{
  max-width:920px;
  font-size:68px;
  line-height:1.02;
  color:var(--atelier-ink);
}

.design-atelier .hb-intro-bottom{
  display:grid;
  grid-template-columns:minmax(0,660px) auto;
  gap:45px;
  align-items:end;
  margin-top:48px;
  padding:0;
}

.design-atelier .hb-intro-bottom p{
  margin:0;
  color:var(--atelier-muted);
  font-size:15px;
  line-height:1.85;
}

.design-atelier .hb-fields-v132{
  grid-template-columns:1.22fr .89fr .89fr;
  min-height:610px;
  gap:1px;
  background:var(--atelier-line);
}

.design-atelier .hb-fields-v132 .hb-field{
  min-height:610px;
}

.design-atelier .hb-field-content{
  left:8%;
  right:8%;
  bottom:8%;
}

.design-atelier .hb-fields-v132 .hb-field-content strong{
  font-size:30px;
}

.design-atelier .hb-field-description{
  font-size:12.5px;
  line-height:1.62;
}

.design-atelier .hb-editorial-statement{
  grid-template-columns:36% 46% 18%;
  padding:76px 9%;
  background:var(--atelier-paper);
  border-top:0;
}

.design-atelier .hb-editorial-statement h2{
  color:var(--atelier-ink);
  font-size:35px;
}

.design-atelier .hb-editorial-statement p{
  color:var(--atelier-muted);
}

.design-atelier .hb-one-brand{
  background:#e3ded4;
  border-top:1px solid var(--atelier-line);
}

/* Leistungen Atelier – drei große "Blätter" auf warmem Grund */
.design-atelier .services-page-v123{
  padding:42px 4%;
  background:var(--atelier-bg);
}

.design-atelier .services-page-v123 .service-row{
  margin:0 0 28px !important;
  min-height:570px;
  box-shadow:0 8px 28px rgba(30,28,24,.06);
}

.design-atelier .services-page-v123 .service-row-architecture,
.design-atelier .services-page-v123 .service-row-realestate{
  grid-template-columns:45% 55%;
}

.design-atelier .services-page-v123 .service-row-expertise{
  grid-template-columns:55% 45%;
}

.design-atelier .services-page-v123 .service-text-cell{
  background:var(--atelier-paper);
}

.design-atelier .services-page-v123 .service-text-inner{
  width:74%;
}

.design-atelier .services-page-v123 .service-text-inner h1,
.design-atelier .services-page-v123 .service-text-inner h2{
  font-size:38px;
  color:var(--atelier-ink);
}

.design-atelier .services-page-v123 .service-text-inner p,
.design-atelier .services-page-v123 .service-text-inner li{
  color:var(--atelier-muted);
}

/* Festpreis Atelier */
.design-atelier #main > .fixed-hero{
  width:82%;
  max-width:1040px;
  padding:92px 0 95px;
  text-align:left;
}

.design-atelier .fixed-hero h1{
  max-width:760px;
  font-size:56px;
  color:var(--atelier-ink);
}

.design-atelier .fixed-hero h2{
  color:#b51f29;
  font-size:24px;
}

.design-atelier .fixed-hero p{
  max-width:790px;
  color:var(--atelier-muted);
}

.design-atelier .fixed-section{
  background:var(--atelier-paper);
}

.design-atelier .fixed-section.alt{
  background:var(--atelier-bg);
}

.design-atelier .process-grid{
  gap:18px;
}

.design-atelier .process-grid article{
  padding:34px 30px;
  background:var(--atelier-paper);
  border:1px solid var(--atelier-line);
}

.design-atelier .process-num{
  color:#b51f29;
  font-size:42px;
}

.design-atelier .price-block{
  background:#b51f29;
}

.design-atelier .option-card{
  border:1px solid var(--atelier-line);
  background:var(--atelier-paper);
}

/* Team Atelier – Portraitkarten */
.design-atelier .team-intro{
  width:82%;
  max-width:1040px;
  padding:88px 0 72px;
  text-align:left;
}

.design-atelier .team-intro h1{
  font-size:52px;
  color:var(--atelier-ink);
}

.design-atelier .team-intro p{
  max-width:820px;
  margin:0;
  color:var(--atelier-muted);
}

.design-atelier .team-pairs{
  width:92%;
  max-width:1500px;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.design-atelier .person-pair{
  display:block;
  background:var(--atelier-paper);
  border:1px solid var(--atelier-line);
}

.design-atelier .person-pair .team-photo,
.design-atelier .person-pair.pair-alt .team-photo{
  order:initial;
  aspect-ratio:1/1.08;
}

.design-atelier .person-pair .team-copy,
.design-atelier .person-pair.pair-alt .team-copy{
  order:initial;
  min-height:180px;
  padding:25px 24px 28px;
  justify-content:flex-start;
}

.design-atelier .team-copy h2{
  font-size:15px;
}

.design-atelier .partner-block{
  background:#e3ded4;
}

/* Kontakt Atelier */
.design-atelier .contact-page{
  width:92%;
  max-width:1450px;
  padding:66px 0 80px;
}

.design-atelier .contact-grid{
  grid-template-columns:1.45fr .55fr;
  gap:22px;
}

.design-atelier .contact-form,
.design-atelier .contact-details{
  padding:52px 8%;
  background:var(--atelier-paper);
  border:1px solid var(--atelier-line);
}

.design-atelier .contact-details{
  padding-top:52px;
}

.design-atelier .field input,
.design-atelier .field textarea{
  background:#fff;
  border-color:#d5d0c6;
}

.design-atelier .contact-map{
  margin-top:22px;
  background:#e3ded4;
}

/* Footer Atelier */
.design-atelier .site-footer{
  background:var(--atelier-paper);
  border-top:1px solid var(--atelier-line);
}

/* ==========================================================
   DESIGN B – PRÄZISION
   technisch, kontrastreich, rasterbetont
   ========================================================== */

.design-precision{
  --precision-dark:#272727;
  --precision-line:#d2d2d2;
  --precision-red:#b51f29;
}

.design-precision .site-header{
  background:#fff;
  border-bottom:2px solid var(--precision-dark);
  box-shadow:none;
}

.design-precision .main-nav a{
  font-size:13px;
  letter-spacing:.055em;
}

.design-precision .main-nav a::after{
  height:2px;
  background:var(--precision-red);
}

/* Homepage Präzision */
.design-precision .hb-intro{
  padding:78px 7%;
  background:var(--precision-dark);
}

.design-precision .hb-kicker{
  color:#aaa;
}

.design-precision .hb-intro h1{
  color:#fff;
  font-size:60px;
  letter-spacing:-.02em;
}

.design-precision .hb-intro-bottom p{
  color:#d6d6d6;
}

.design-precision .hb-intro-bottom a{
  color:#fff;
  border-bottom-color:var(--precision-red);
}

.design-precision .hb-fields-v132{
  gap:2px;
  background:#fff;
  min-height:590px;
}

.design-precision .hb-fields-v132 .hb-field{
  min-height:590px;
}

.design-precision .hb-field-content{
  left:0;
  right:0;
  bottom:0;
  padding:25px 7% 28px;
  background:rgba(20,20,20,.80);
}

.design-precision .hb-field-shade{
  background:linear-gradient(to top,rgba(0,0,0,.26),rgba(0,0,0,0) 50%);
}

.design-precision .hb-fields-v132 .hb-field-content strong{
  font-size:26px;
  text-transform:uppercase;
  letter-spacing:.035em;
}

.design-precision .hb-field-description{
  font-size:12px;
  line-height:1.55;
}

.design-precision .hb-editorial-statement{
  grid-template-columns:34% 48% 18%;
  padding:58px 7%;
  border-top:2px solid var(--precision-dark);
  border-bottom:1px solid var(--precision-line);
}

.design-precision .hb-editorial-statement h2{
  font-size:32px;
  text-transform:uppercase;
  letter-spacing:.025em;
}

.design-precision .hb-one-brand{
  background:#f2f2f2;
  border-top:0;
}

/* Leistungen Präzision */
.design-precision .services-page-v123{
  background:#fff;
}

.design-precision .services-page-v123 .service-row{
  border-bottom:2px solid var(--precision-dark) !important;
}

.design-precision .services-page-v123 .service-text-cell{
  position:relative;
  background:#fff;
}

.design-precision .services-page-v123 .service-text-cell::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:5px;
  background:var(--precision-red);
}

.design-precision .services-page-v123 .service-row-architecture .service-text-cell::before,
.design-precision .services-page-v123 .service-row-realestate .service-text-cell::before{
  left:0;
}

.design-precision .services-page-v123 .service-row-expertise .service-text-cell::before{
  right:0;
}

.design-precision .services-page-v123 .service-text-inner{
  width:72%;
}

.design-precision .services-page-v123 .service-text-inner h1,
.design-precision .services-page-v123 .service-text-inner h2{
  font-size:40px;
  text-transform:uppercase;
  letter-spacing:.015em;
}

.design-precision .services-page-v123 .service-red-line{
  width:68px;
  height:2px;
}

.design-precision .services-page-v123 .service-row-image{
  filter:saturate(.82) contrast(1.03);
}

/* Festpreis Präzision */
.design-precision .fixed-hero{
  max-width:1050px;
  padding:82px 0 88px;
}

.design-precision .fixed-hero h1{
  font-size:52px;
  text-transform:uppercase;
  letter-spacing:-.01em;
}

.design-precision .fixed-section.alt{
  background:#f2f2f2;
  border-top:1px solid var(--precision-line);
  border-bottom:1px solid var(--precision-line);
}

.design-precision .process-grid{
  gap:0;
  border:2px solid var(--precision-dark);
}

.design-precision .process-grid article{
  padding:34px 30px;
  border-right:1px solid var(--precision-dark);
}

.design-precision .process-grid article:last-child{
  border-right:0;
}

.design-precision .process-num{
  color:var(--precision-red);
  font-size:50px;
}

.design-precision .price-block{
  background:var(--precision-red);
}

.design-precision .option-grid{
  gap:0;
  border:1px solid var(--precision-dark);
}

.design-precision .option-card{
  border-right:1px solid var(--precision-dark);
}

.design-precision .option-card:last-child{
  border-right:0;
}

.design-precision .outline-button{
  border:2px solid var(--precision-dark);
}

/* Team Präzision – klare horizontale Datensätze */
.design-precision .team-intro{
  text-align:left;
  max-width:1100px;
  padding:76px 0 65px;
}

.design-precision .team-intro h1{
  font-size:48px;
  text-transform:uppercase;
}

.design-precision .team-intro p{
  max-width:900px;
  margin:0;
}

.design-precision .team-pairs{
  width:86%;
  max-width:1200px;
  grid-template-columns:1fr;
  gap:0;
  border-top:2px solid var(--precision-dark);
}

.design-precision .person-pair,
.design-precision .person-pair.pair-alt{
  grid-template-columns:260px 1fr;
  border-bottom:1px solid var(--precision-dark);
}

.design-precision .person-pair .team-photo,
.design-precision .person-pair.pair-alt .team-photo{
  order:1;
  aspect-ratio:1/1;
  border-right:1px solid var(--precision-dark);
}

.design-precision .person-pair .team-copy,
.design-precision .person-pair.pair-alt .team-copy{
  order:2;
  padding:34px 40px;
}

.design-precision .team-copy h2{
  font-size:17px;
  letter-spacing:.055em;
}

.design-precision .partner-block{
  background:var(--precision-dark);
  color:#fff;
}

.design-precision .partner-inner p,
.design-precision .partner-inner h6{
  color:#ccc;
}

/* Kontakt Präzision */
.design-precision .contact-page{
  width:86%;
  max-width:1250px;
}

.design-precision .contact-grid{
  grid-template-columns:1.15fr .85fr;
  gap:0;
  border:2px solid var(--precision-dark);
}

.design-precision .contact-form{
  padding:48px;
}

.design-precision .contact-details{
  padding:48px;
  background:var(--precision-dark);
  color:#fff;
}

.design-precision .contact-details h2,
.design-precision .contact-details a{
  color:#fff;
}

.design-precision .contact-details p{
  color:#d3d3d3;
}

.design-precision .field input,
.design-precision .field textarea{
  border:1px solid #888;
  background:#fff;
}

.design-precision .contact-form button{
  background:var(--precision-red);
  text-transform:uppercase;
  letter-spacing:.08em;
}

.design-precision .contact-map{
  margin-top:0;
  border:2px solid var(--precision-dark);
  border-top:0;
  background:#f2f2f2;
}

/* Projekte: Funktion/Layout beibehalten, nur Umfeld der Designs angleichen */
.design-atelier .project-index,
.design-precision .project-index{
  width:100%;
  max-width:none;
}

.design-atelier .project-index .filterbar{
  background:var(--atelier-paper);
  padding:24px 4%;
  margin-bottom:0;
  border-bottom:1px solid var(--atelier-line);
}

.design-precision .project-index .filterbar{
  justify-content:flex-start;
  padding:22px 4%;
  margin-bottom:0;
  border-bottom:2px solid var(--precision-dark);
}

.design-precision .project-index .filterbar button{
  text-transform:uppercase;
  letter-spacing:.08em;
}

/* Footer Präzision */
.design-precision .site-footer{
  background:var(--precision-dark);
  border-top:0;
  color:#aaa;
}

.design-precision .site-footer a{
  color:#eee;
}

/* Design-Switcher */
.style-preview-switcher{
  background:#171717;
}

@media(max-width:980px){
  .design-atelier .hb-intro h1{font-size:56px;}
  .design-atelier .hb-fields-v132{grid-template-columns:1.1fr .95fr .95fr;}
  .design-atelier .team-pairs{grid-template-columns:repeat(2,minmax(0,1fr));}

  .design-precision .hb-intro h1{font-size:50px;}
}

@media(max-width:760px){
  .design-atelier .site-header .header-inner{height:74px;}

  .design-atelier .hb-intro,
  .design-precision .hb-intro{
    padding:52px 7%;
  }

  .design-atelier .hb-intro h1,
  .design-precision .hb-intro h1{
    font-size:40px;
  }

  .design-atelier .hb-intro-bottom{
    display:block;
    margin-top:30px;
  }

  .design-atelier .hb-intro-bottom a{
    display:inline-block;
    margin-top:22px;
  }

  .design-atelier .hb-fields-v132,
  .design-precision .hb-fields-v132{
    grid-template-columns:1fr;
  }

  .design-atelier .hb-editorial-statement,
  .design-precision .hb-editorial-statement{
    display:block;
    padding:48px 7%;
  }

  .design-atelier .services-page-v123{
    padding:18px 3%;
  }

  .design-atelier .services-page-v123 .service-row{
    margin-bottom:18px !important;
  }

  .design-atelier .team-pairs{
    grid-template-columns:1fr;
    width:90%;
  }

  .design-precision .person-pair,
  .design-precision .person-pair.pair-alt{
    grid-template-columns:42% 58%;
  }

  .design-precision .person-pair .team-copy,
  .design-precision .person-pair.pair-alt .team-copy{
    padding:22px 20px;
  }

  .design-atelier .contact-grid,
  .design-precision .contact-grid{
    grid-template-columns:1fr;
  }

  .design-precision .process-grid{
    grid-template-columns:1fr;
  }

  .design-precision .process-grid article{
    border-right:0;
    border-bottom:1px solid var(--precision-dark);
  }

  .design-precision .process-grid article:last-child{
    border-bottom:0;
  }

  .design-precision .option-grid{
    grid-template-columns:1fr;
  }

  .design-precision .option-card{
    border-right:0;
    border-bottom:1px solid var(--precision-dark);
  }

  .design-precision .option-card:last-child{
    border-bottom:0;
  }
}


/* ==========================================================
   V13.4 – Team aus Atelier übernommen, kompakter
   ========================================================== */

body.page-inner .team-intro{
  width:78%;
  max-width:980px;
  padding:72px 0 58px;
  text-align:left;
}

body.page-inner .team-intro h1{
  font-size:44px;
  color:#2f2f2d;
}

body.page-inner .team-intro p{
  max-width:800px;
  margin:0;
  color:#5f5d58;
}

body.page-inner .team-pairs{
  width:78%;
  max-width:1120px;
  margin:0 auto 78px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

body.page-inner .person-pair,
body.page-inner .person-pair.pair-alt{
  display:block;
  min-width:0;
  background:#f8f6f1;
  border:1px solid #ddd8cf;
}

body.page-inner .person-pair .team-photo,
body.page-inner .person-pair.pair-alt .team-photo{
  order:initial;
  aspect-ratio:1/1.02;
}

body.page-inner .person-pair .team-copy,
body.page-inner .person-pair.pair-alt .team-copy{
  order:initial;
  min-height:142px;
  padding:18px 18px 20px;
  justify-content:flex-start;
}

body.page-inner .team-copy h2{
  font-size:13.5px;
  margin-bottom:5px;
}

body.page-inner .team-copy h6{
  font-size:9px;
  margin-bottom:11px;
}

body.page-inner .team-copy p{
  font-size:10.5px;
  line-height:1.55;
}

/* bei sieben Personen letzte Karte mittig */
body.page-inner .team-pairs .person-pair:last-child:nth-child(3n+1){
  grid-column:2;
}

body.page-inner .partner-block{
  background:#e9e5dc;
}

/* ==========================================================
   V13.4 – Editorial: Architektur-Slider sauber zentriert
   ========================================================== */

.home-concept-editorial .home-identity-line,
.home-concept-panorama .home-identity-line,
.home-concept-mosaic .home-identity-line{
  display:none;
}

.home-concept-editorial .hb-fields-v132{
  min-height:570px;
}

.home-concept-editorial .hb-fields-v132 .hb-field{
  min-height:570px;
}

.home-concept-editorial .hb-field-architecture{
  background:#bbb;
}

.home-concept-editorial .hb-field-slider{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  overflow:hidden;
}

.home-concept-editorial .hb-field-slider .home-slide{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease;
}

.home-concept-editorial .hb-field-slider .home-slide.is-active{
  opacity:1;
  visibility:visible;
}

/* WICHTIG: kein alter Hover-Transform mehr; immer vollflächig + mittig */
.home-concept-editorial .hb-field-architecture .hb-field-slider .home-slide img,
.home-concept-editorial .hb-field-architecture:hover .hb-field-slider .home-slide img{
  position:absolute !important;
  inset:0 !important;
  left:0 !important;
  top:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:cover !important;
  object-position:center center !important;
  transform:none !important;
  transition:none !important;
}

.home-concept-editorial .hb-fields-v132 .hb-field-content{
  grid-template-columns:1fr;
  grid-template-rows:auto auto auto;
  align-items:start;
}

.home-concept-editorial .hb-fields-v132 .hb-field-content strong,
.home-concept-editorial .hb-fields-v132 .hb-field-content em,
.home-concept-editorial .hb-field-description{
  grid-column:1;
}

.home-concept-editorial .hb-fields-v132 .hb-field-content strong{
  font-size:28px;
}

.home-concept-editorial .hb-fields-v132 .hb-field-content em{
  margin-bottom:8px;
}

.home-concept-editorial .hb-field-description{
  display:block;
  max-width:430px;
  color:rgba(255,255,255,.92);
  font-size:12px;
  line-height:1.58;
  font-style:normal;
  font-weight:400;
}

.home-concept-editorial .hb-fields-v132 .hb-field-shade{
  background:linear-gradient(to top,rgba(0,0,0,.62) 0%,rgba(0,0,0,.33) 46%,rgba(0,0,0,.05) 78%,rgba(0,0,0,0) 100%);
}

.home-concept-editorial .hb-editorial-statement{
  display:grid;
  grid-template-columns:40% 44% 16%;
  align-items:center;
  gap:4%;
  padding:62px 7%;
  background:#fff;
  border-top:1px solid #ededeb;
}

.home-concept-editorial .hb-editorial-statement > div > span{color:#b51f29;font-size:10px;letter-spacing:.16em;}
.home-concept-editorial .hb-editorial-statement h2{margin:12px 0 0;color:#333;font-size:31px;line-height:1.25;font-weight:300;}
.home-concept-editorial .hb-editorial-statement p{margin:0;color:#555;font-size:14px;line-height:1.82;}
.home-concept-editorial .hb-editorial-statement > a{justify-self:end;color:#333;font-size:12px;text-decoration:none;white-space:nowrap;border-bottom:1px solid #b51f29;}

/* ==========================================================
   HOMEPAGE A – PANORAMA
   Vollbild-Projekt + ruhige Kompetenzebene + redaktioneller Split
   ========================================================== */

.home-panorama{
  background:#fff;
}

.pan-hero{
  position:relative;
  height:72vh;
  min-height:620px;
  overflow:hidden;
  background:#cfcfcf;
}

.pan-slider{
  position:absolute;
  inset:0;
  overflow:hidden;
}

.pan-slider .home-slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease;
}

.pan-slider .home-slide.is-active{
  opacity:1;
  visibility:visible;
}

.pan-slider .home-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.pan-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(90deg,rgba(0,0,0,.48) 0%,rgba(0,0,0,.18) 42%,rgba(0,0,0,0) 72%);
  pointer-events:none;
}

.pan-hero-overlay{
  position:absolute;
  z-index:4;
  left:7%;
  top:50%;
  width:min(590px,44%);
  transform:translateY(-50%);
  color:#fff;
}

.pan-hero-overlay > span{
  font-size:10px;
  letter-spacing:.17em;
  color:rgba(255,255,255,.78);
}

.pan-hero-overlay h1{
  margin:18px 0 24px;
  font-size:55px;
  line-height:1.05;
  font-weight:300;
}

.pan-hero-overlay p{
  max-width:530px;
  margin:0 0 27px;
  font-size:14px;
  line-height:1.82;
  color:rgba(255,255,255,.92);
}

.pan-hero-overlay a{
  color:#fff;
  text-decoration:none;
  font-size:12px;
  border-bottom:1px solid #fff;
}

.pan-competences{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  background:#fff;
}

.pan-competences > a{
  min-height:340px;
  padding:52px 8%;
  color:#333;
  text-decoration:none;
  border-right:1px solid #e4e4e2;
  transition:background .25s ease;
}

.pan-competences > a:last-child{border-right:0;}
.pan-competences > a:hover{background:#f5f5f2;}
.pan-competences span{color:#b51f29;font-size:9.5px;letter-spacing:.14em;}
.pan-competences h2{margin:18px 0 19px;font-size:27px;font-weight:300;}
.pan-competences p{margin:0 0 24px;color:#5a5a5a;font-size:13px;line-height:1.78;}
.pan-competences b{font-size:11px;font-weight:400;border-bottom:1px solid #b51f29;}

.pan-focus{
  display:grid;
  grid-template-columns:52% 48%;
  min-height:560px;
  background:#303030;
}

.pan-focus-image{
  min-height:560px;
  overflow:hidden;
}

.pan-focus-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.pan-focus-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:65px 11%;
  color:#fff;
}

.pan-focus-copy > span{
  color:#c9c9c9;
  font-size:9.5px;
  letter-spacing:.15em;
}

.pan-focus-copy h2{
  margin:19px 0 27px;
  font-size:34px;
  line-height:1.3;
  font-weight:300;
}

.pan-focus-copy p{
  margin:0 0 27px;
  color:#ddd;
  font-size:14px;
  line-height:1.82;
}

.pan-focus-copy div{
  display:flex;
  gap:24px;
}

.pan-focus-copy a{
  color:#fff;
  text-decoration:none;
  font-size:11px;
  border-bottom:1px solid #b51f29;
}

.pan-project-strip{
  padding:62px 0 0;
  background:#fff;
}

.pan-strip-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  width:86%;
  margin:0 auto 24px;
}

.pan-strip-head span{font-size:25px;font-weight:300;color:#333;}
.pan-strip-head a{color:#333;text-decoration:none;font-size:11px;border-bottom:1px solid #b51f29;}

.pan-strip-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
}

.pan-strip-grid a{
  position:relative;
  aspect-ratio:1.22/1;
  overflow:hidden;
  color:#fff;
}

.pan-strip-grid img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.pan-strip-grid a:hover img{transform:scale(1.025);}
.pan-strip-grid span{
  position:absolute;
  left:0;right:0;bottom:0;
  padding:9px 10px;
  background:rgba(0,0,0,.52);
  font-size:10px;
  opacity:0;
  transition:opacity .25s ease;
}
.pan-strip-grid a:hover span{opacity:1;}

/* ==========================================================
   HOMEPAGE B – MOSAIK
   Ein integriertes Informations-/Bildraster statt linearer Landingpage
   ========================================================== */

.home-mosaic{
  padding:34px;
  background:#ececea;
}

.mos-grid{
  display:grid;
  grid-template-columns:40% 30% 30%;
  grid-template-rows:330px 330px;
  gap:2px;
  min-height:662px;
  background:#fff;
}

.mos-intro{
  grid-column:1;
  grid-row:1 / 3;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:62px 11%;
  background:#fff;
}

.mos-kicker{
  margin-bottom:26px;
  color:#9a9a9a;
  font-size:9.5px;
  letter-spacing:.16em;
}

.mos-intro h1{
  margin:0 0 27px;
  color:#2f2f2f;
  font-size:54px;
  line-height:1.04;
  font-weight:300;
}

.mos-intro p{
  margin:0;
  color:#555;
  font-size:14px;
  line-height:1.82;
}

.mos-intro-links{
  display:flex;
  gap:22px;
  margin-top:28px;
}

.mos-intro-links a{
  color:#333;
  text-decoration:none;
  font-size:11px;
  border-bottom:1px solid #b51f29;
}

.mos-architecture{
  grid-column:2 / 4;
  grid-row:1;
}

.mos-expertise{
  grid-column:2;
  grid-row:2;
}

.mos-valuation{
  grid-column:3;
  grid-row:2;
}

.mos-architecture,
.mos-expertise,
.mos-valuation{
  position:relative;
  overflow:hidden;
  color:#fff;
  text-decoration:none;
  background:#777;
}

.mos-architecture > img,
.mos-expertise > img,
.mos-valuation > img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.mos-slider{
  position:absolute;
  inset:0;
  overflow:hidden;
}

.mos-slider .home-slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease;
}

.mos-slider .home-slide.is-active{
  opacity:1;
  visibility:visible;
}

.mos-slider .home-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.mos-card-overlay{
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(to top,rgba(0,0,0,.60),rgba(0,0,0,.03) 72%);
}

.mos-card-copy{
  position:absolute;
  z-index:3;
  left:6%;
  right:6%;
  bottom:8%;
  display:flex;
  flex-direction:column;
}

.mos-card-copy small{
  margin-bottom:8px;
  color:rgba(255,255,255,.72);
  font-size:9px;
  letter-spacing:.13em;
}

.mos-card-copy strong{
  font-size:24px;
  font-weight:300;
}

.mos-card-copy em{
  margin-top:5px;
  color:rgba(255,255,255,.84);
  font-size:10.5px;
  font-style:normal;
}

.mos-seo{
  display:grid;
  grid-template-columns:46% 54%;
  gap:7%;
  padding:68px 8%;
  background:#fff;
}

.mos-seo span{
  color:#b51f29;
  font-size:9.5px;
  letter-spacing:.14em;
}

.mos-seo h2{
  max-width:590px;
  margin:15px 0 0;
  color:#333;
  font-size:32px;
  line-height:1.3;
  font-weight:300;
}

.mos-seo p{
  max-width:640px;
  margin:5px 0 22px;
  color:#555;
  font-size:14px;
  line-height:1.82;
}

.mos-seo a{
  color:#333;
  text-decoration:none;
  font-size:11px;
  border-bottom:1px solid #b51f29;
}

.mos-actions{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  background:#303030;
}

.mos-actions a{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:5px 17px;
  min-height:130px;
  padding:31px 8%;
  align-content:center;
  color:#fff;
  text-decoration:none;
  border-right:1px solid rgba(255,255,255,.14);
  transition:background .25s ease;
}

.mos-actions a:last-child{border-right:0;}
.mos-actions a:hover{background:#3a3a3a;}
.mos-actions span{grid-row:1 / 3;color:#b51f29;font-size:10px;}
.mos-actions strong{font-size:17px;font-weight:400;}
.mos-actions em{color:#bbb;font-size:10.5px;font-style:normal;}

/* ==========================================================
   V13.4 – Responsive
   ========================================================== */
@media(max-width:1100px){
  body.page-inner .team-pairs{width:84%;}

  .pan-hero-overlay h1{font-size:47px;}
  .pan-focus-copy h2{font-size:30px;}

  .home-mosaic{padding:20px;}
  .mos-grid{grid-template-columns:42% 29% 29%;grid-template-rows:310px 310px;}
  .mos-intro h1{font-size:46px;}
}

@media(max-width:760px){
  body.page-inner .team-intro{
    width:86%;
    padding:52px 0 42px;
  }

  body.page-inner .team-intro h1{font-size:35px;}

  body.page-inner .team-pairs{
    width:86%;
    grid-template-columns:1fr;
    gap:16px;
  }

  body.page-inner .team-pairs .person-pair:last-child:nth-child(3n+1){
    grid-column:auto;
  }

  body.page-inner .person-pair .team-photo,
  body.page-inner .person-pair.pair-alt .team-photo{
    aspect-ratio:1.12/1;
  }

  .home-concept-editorial .hb-fields-v132{min-height:0;}
  .home-concept-editorial .hb-fields-v132 .hb-field{min-height:430px;}
  .home-concept-editorial .hb-editorial-statement{display:block;padding:48px 7%;}
  .home-concept-editorial .hb-editorial-statement p{margin:24px 0 22px;}

  .pan-hero{
    height:66vh;
    min-height:520px;
  }

  .pan-hero::after{
    background:linear-gradient(to top,rgba(0,0,0,.58),rgba(0,0,0,.02) 70%);
  }

  .pan-hero-overlay{
    left:7%;
    right:7%;
    top:auto;
    bottom:9%;
    width:auto;
    transform:none;
  }

  .pan-hero-overlay h1{font-size:38px;}
  .pan-hero-overlay p{font-size:13px;}

  .pan-competences{
    grid-template-columns:1fr;
  }

  .pan-competences > a{
    min-height:0;
    padding:42px 8%;
    border-right:0;
    border-bottom:1px solid #e4e4e2;
  }

  .pan-focus{
    grid-template-columns:1fr;
    min-height:0;
  }

  .pan-focus-image{min-height:360px;}
  .pan-focus-copy{padding:48px 8%;}

  .pan-strip-grid{
    grid-template-columns:repeat(3,1fr);
  }

  .pan-strip-grid a:nth-child(n+4){display:none;}

  .home-mosaic{
    padding:10px;
  }

  .mos-grid{
    display:flex;
    flex-direction:column;
    min-height:0;
    gap:2px;
  }

  .mos-intro{
    padding:48px 8%;
  }

  .mos-intro h1{font-size:39px;}

  .mos-architecture{height:390px;}
  .mos-expertise,.mos-valuation{height:320px;}

  .mos-seo{
    grid-template-columns:1fr;
    gap:24px;
    padding:50px 8%;
  }

  .mos-seo h2{font-size:28px;}

  .mos-actions{
    grid-template-columns:1fr;
  }

  .mos-actions a{
    min-height:96px;
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.14);
  }
}


/* ==========================================================
   V14.0 – Team: 4 Personen pro Reihe auf Desktop
   ========================================================== */
body.page-inner .team-pairs{
  width:86%;
  max-width:1320px;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
}

body.page-inner .person-pair .team-copy,
body.page-inner .person-pair.pair-alt .team-copy{
  min-height:132px;
  padding:16px 16px 18px;
}

body.page-inner .team-pairs .person-pair:last-child:nth-child(3n+1){
  grid-column:auto !important;
}

@media(max-width:1150px){
  body.page-inner .team-pairs{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}

@media(max-width:820px){
  body.page-inner .team-pairs{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:520px){
  body.page-inner .team-pairs{
    grid-template-columns:1fr !important;
  }
}

/* ==========================================================
   V14.0 – Full-width Grundlagen
   Editorial bleibt unverändert
   ========================================================== */
.home-concept-onepager .site-frame,
.home-concept-fullwidth .site-frame{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  box-shadow:none !important;
}

.home-concept-onepager,
.home-concept-fullwidth{
  background:#fff;
}

/* ==========================================================
   A – ONEPAGER
   ========================================================== */
.home-onepager{
  position:relative;
  width:100%;
}

.op-section-nav{
  position:fixed;
  z-index:900;
  right:18px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  gap:8px;
}

.op-section-nav a{
  display:block;
  padding:6px 8px;
  background:rgba(255,255,255,.87);
  color:#444;
  font-size:9px;
  text-decoration:none;
  letter-spacing:.05em;
}

.op-panel{
  position:relative;
  width:100%;
  min-height:calc(100svh - 92px);
}

.op-hero{
  overflow:hidden;
  background:#222;
}

.op-hero-slider,
.op-architecture-slider{
  position:absolute;
  inset:0;
  overflow:hidden;
}

.op-hero-slider .home-slide,
.op-architecture-slider .home-slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease;
}

.op-hero-slider .home-slide.is-active,
.op-architecture-slider .home-slide.is-active{
  opacity:1;
  visibility:visible;
}

.op-hero-slider img,
.op-architecture-slider img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.op-darken{
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.08) 65%);
}

.op-darken-light{
  background:linear-gradient(90deg,rgba(0,0,0,.18),rgba(0,0,0,.03));
}

.op-hero-copy{
  position:absolute;
  z-index:3;
  left:7%;
  top:50%;
  width:min(630px,46%);
  transform:translateY(-50%);
  color:#fff;
}

.op-hero-copy > span,
.op-service-copy > span,
.op-floating-card > span,
.op-festpreis span,
.op-contact span{
  font-size:9.5px;
  letter-spacing:.16em;
}

.op-hero-copy h1{
  margin:20px 0 26px;
  font-size:66px;
  line-height:1.0;
  font-weight:300;
}

.op-hero-copy p{
  max-width:540px;
  font-size:15px;
  line-height:1.8;
}

.op-hero-copy div{
  display:flex;
  gap:25px;
  margin-top:28px;
}

.op-hero-copy a,
.op-service-copy a,
.op-floating-card a,
.op-festpreis a,
.op-contact a{
  color:inherit;
  text-decoration:none;
  font-size:11.5px;
  border-bottom:1px solid #b51f29;
}

.op-service{
  display:grid;
  grid-template-columns:60% 40%;
}

.op-service-media{
  position:relative;
  min-height:calc(100svh - 92px);
  overflow:hidden;
}

.op-service-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:8vw;
  background:#fff;
}

.op-service-copy span{color:#b51f29;}

.op-service-copy h2,
.op-floating-card h2{
  margin:18px 0 24px;
  color:#303030;
  font-size:39px;
  line-height:1.22;
  font-weight:300;
}

.op-service-copy p,
.op-floating-card p{
  color:#555;
  font-size:14px;
  line-height:1.86;
}

.op-service-copy a{
  align-self:flex-start;
  margin-top:20px;
  color:#333;
}

.op-background-service{
  overflow:hidden;
}

.op-background-service > img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.op-floating-card{
  position:absolute;
  z-index:3;
  top:50%;
  width:min(540px,40%);
  padding:48px 50px;
  transform:translateY(-50%);
  background:rgba(255,255,255,.94);
  color:#333;
}

.op-card-right{right:7%;}
.op-card-left{left:7%;}

.op-floating-card span{color:#b51f29;}
.op-floating-card a{color:#333;}

.op-festpreis{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  align-items:center;
  padding:9vw;
  background:#292929;
  color:#fff;
}

.op-festpreis h2,
.op-contact h2{
  margin:18px 0 0;
  font-size:46px;
  line-height:1.15;
  font-weight:300;
}

.op-festpreis > div:last-child{
  padding-left:12%;
}

.op-festpreis p{
  margin:0 0 28px;
  color:#ddd;
  font-size:15px;
  line-height:1.82;
}

.op-contact{
  min-height:58vh;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8%;
  padding:8vw;
  background:#b51f29;
  color:#fff;
}

.op-contact h2{
  max-width:760px;
}

.op-contact p{
  font-size:15px;
}

.op-contact > a{
  flex:0 0 auto;
  font-size:14px;
  border-bottom-color:#fff;
}

/* ==========================================================
   B – FULLWIDTH / CINEMATIC
   ========================================================== */
.home-fullwidth{
  width:100%;
  overflow:hidden;
}

.fw-intro{
  display:grid;
  grid-template-columns:42% 58%;
  align-items:end;
  min-height:460px;
  padding:70px 5% 58px;
  background:#fff;
}

.fw-wordmark{
  font-size:118px;
  line-height:.78;
  font-weight:300;
  letter-spacing:-.055em;
  color:#d4d4d1;
}

.fw-intro-copy{
  padding-left:5%;
}

.fw-intro h1{
  margin:0 0 24px;
  font-size:48px;
  line-height:1.13;
  font-weight:300;
  color:#2e2e2e;
}

.fw-intro p{
  max-width:620px;
  margin:0;
  color:#5a5a5a;
  font-size:14px;
  line-height:1.8;
}

.fw-project-film{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-auto-rows:330px;
  gap:2px;
  background:#fff;
}

.fw-film-item{
  position:relative;
  overflow:hidden;
  color:#fff;
  text-decoration:none;
}

.fw-film-wide{
  grid-row:span 2;
}

.fw-film-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}

.fw-film-item:hover img{
  transform:scale(1.02);
}

.fw-film-item span{
  position:absolute;
  left:18px;
  bottom:16px;
  padding:6px 9px;
  background:rgba(0,0,0,.5);
  font-size:10px;
}

.fw-manifesto{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8%;
  padding:92px 7%;
  background:#f2f2ef;
}

.fw-manifesto-title span,
.fw-feature-copy > span{
  color:#b51f29;
  font-size:9.5px;
  letter-spacing:.16em;
}

.fw-manifesto h2{
  margin:16px 0 0;
  font-size:39px;
  line-height:1.25;
  font-weight:300;
}

.fw-manifesto-text p{
  margin:25px 0 0;
  max-width:650px;
  color:#555;
  font-size:15px;
  line-height:1.85;
}

.fw-service-bands{
  background:#fff;
}

.fw-service-bands a{
  display:grid;
  grid-template-columns:27% 1fr auto;
  align-items:center;
  min-height:108px;
  padding:0 6%;
  border-top:1px solid #dedede;
  color:#333;
  text-decoration:none;
  transition:background .2s ease;
}

.fw-service-bands a:last-child{
  border-bottom:1px solid #dedede;
}

.fw-service-bands a:hover{
  background:#f6f6f4;
}

.fw-service-bands span{
  font-size:22px;
  font-weight:300;
}

.fw-service-bands strong{
  color:#777;
  font-size:12px;
  font-weight:400;
}

.fw-service-bands b{
  color:#b51f29;
  font-weight:300;
  font-size:20px;
}

.fw-feature{
  display:grid;
  grid-template-columns:62% 38%;
  min-height:620px;
}

.fw-feature-light{
  grid-template-columns:38% 62%;
}

.fw-feature-image{
  min-height:620px;
  overflow:hidden;
}

.fw-feature-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.fw-feature-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:70px 12%;
}

.fw-feature-dark{
  background:#2d2d2d;
  color:#fff;
}

.fw-feature-light{
  background:#fff;
  color:#333;
}

.fw-feature-copy h2{
  margin:18px 0 25px;
  font-size:35px;
  line-height:1.28;
  font-weight:300;
}

.fw-feature-copy p{
  margin:0 0 26px;
  font-size:14px;
  line-height:1.82;
  color:inherit;
  opacity:.84;
}

.fw-feature-copy a{
  align-self:flex-start;
  color:inherit;
  text-decoration:none;
  font-size:11px;
  border-bottom:1px solid #b51f29;
}

.fw-final{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}

.fw-final a{
  min-height:110px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-right:1px solid #ddd;
  color:#333;
  text-decoration:none;
  font-size:12px;
}

.fw-final a:hover{
  background:#b51f29;
  color:#fff;
}

/* ==========================================================
   C – STUDIO INDEX
   ========================================================== */
.home-index{
  display:grid;
  grid-template-columns:34% 66%;
  width:100%;
  min-height:100vh;
  background:#fff;
}

.idx-rail{
  position:relative;
  background:#f2f2ef;
  border-right:1px solid #d8d8d5;
}

.idx-rail-inner{
  position:sticky;
  top:92px;
  min-height:calc(100vh - 92px);
  display:flex;
  flex-direction:column;
  padding:68px 11%;
}

.idx-kicker{
  color:#b51f29;
  font-size:10px;
  letter-spacing:.16em;
}

.idx-rail h1{
  margin:28px 0;
  font-size:50px;
  line-height:1.06;
  font-weight:300;
  color:#303030;
}

.idx-rail p{
  max-width:390px;
  color:#565656;
  font-size:13.5px;
  line-height:1.8;
}

.idx-links{
  display:flex;
  flex-direction:column;
  margin-top:37px;
}

.idx-links a{
  padding:12px 0;
  border-top:1px solid #d1d1ce;
  color:#333;
  font-size:12px;
  text-decoration:none;
}

.idx-meta{
  margin-top:auto;
  display:flex;
  flex-direction:column;
  gap:5px;
  color:#999;
  font-size:9.5px;
}

.idx-stream{
  min-width:0;
}

.idx-projects,
.idx-services,
.idx-note{
  padding:54px 5%;
}

.idx-section-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:22px;
}

.idx-section-head span{
  color:#999;
  font-size:9px;
  letter-spacing:.14em;
}

.idx-section-head a{
  color:#333;
  font-size:10.5px;
  text-decoration:none;
  border-bottom:1px solid #b51f29;
}

.idx-project-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-auto-rows:170px;
  gap:6px;
}

.idx-project{
  position:relative;
  overflow:hidden;
  color:#fff;
}

.idx-project-1{grid-column:span 4;grid-row:span 2;}
.idx-project-2{grid-column:span 2;grid-row:span 2;}
.idx-project-3{grid-column:span 2;}
.idx-project-4{grid-column:span 2;}
.idx-project-5{grid-column:span 2;}
.idx-project-6{grid-column:span 3;}
.idx-project-7{grid-column:span 3;}

.idx-project img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}

.idx-project:hover img{
  transform:scale(1.02);
}

.idx-project span{
  position:absolute;
  left:10px;
  bottom:9px;
  padding:5px 7px;
  background:rgba(0,0,0,.50);
  font-size:9.5px;
}

.idx-services{
  background:#2f2f2f;
  color:#fff;
}

.idx-services .idx-section-head span{
  color:#888;
}

.idx-services .idx-section-head a{
  color:#fff;
}

.idx-service-row{
  display:grid;
  grid-template-columns:18% 32% 1fr auto;
  gap:3%;
  align-items:center;
  min-height:145px;
  border-top:1px solid rgba(255,255,255,.15);
  color:#fff;
  text-decoration:none;
}

.idx-service-row:last-child{
  border-bottom:1px solid rgba(255,255,255,.15);
}

.idx-service-row > span{
  color:#b51f29;
  font-size:9.5px;
  letter-spacing:.12em;
}

.idx-service-row strong{
  font-size:19px;
  line-height:1.35;
  font-weight:300;
}

.idx-service-row p{
  color:#c9c9c9;
  font-size:12px;
  line-height:1.65;
}

.idx-service-row b{
  font-size:18px;
  font-weight:300;
}

.idx-note{
  min-height:400px;
  display:grid;
  grid-template-columns:18% 1fr;
  gap:5%;
  align-content:center;
  background:#fff;
}

.idx-note > span{
  color:#999;
  font-size:9px;
  letter-spacing:.14em;
}

.idx-note blockquote{
  margin:0;
  max-width:790px;
  font-size:32px;
  line-height:1.35;
  font-weight:300;
  color:#333;
}

.idx-note > div{
  grid-column:2;
  display:flex;
  gap:25px;
  margin-top:26px;
}

.idx-note a{
  color:#333;
  font-size:11px;
  text-decoration:none;
  border-bottom:1px solid #b51f29;
}

/* ==========================================================
   Responsive radical concepts
   ========================================================== */
@media(max-width:1050px){
  .op-hero-copy h1{font-size:54px;}
  .op-service-copy h2,.op-floating-card h2{font-size:34px;}
  .fw-wordmark{font-size:92px;}
  .fw-intro h1{font-size:40px;}
  .home-index{grid-template-columns:38% 62%;}
  .idx-rail h1{font-size:42px;}
}

@media(max-width:760px){
  .home-concept-onepager .site-frame,
  .home-concept-fullwidth .site-frame{
    width:100% !important;
  }

  .op-section-nav{display:none;}

  .op-panel{
    min-height:0;
  }

  .op-hero{
    height:74svh;
    min-height:520px;
  }

  .op-darken{
    background:linear-gradient(to top,rgba(0,0,0,.62),rgba(0,0,0,.04) 72%);
  }

  .op-hero-copy{
    left:7%;
    right:7%;
    top:auto;
    bottom:8%;
    width:auto;
    transform:none;
  }

  .op-hero-copy h1{font-size:43px;}
  .op-hero-copy p{font-size:13px;}

  .op-service{
    display:flex;
    flex-direction:column;
  }

  .op-service-media{
    min-height:55svh;
  }

  .op-service-copy{
    padding:48px 8%;
  }

  .op-service-copy h2,.op-floating-card h2{font-size:30px;}

  .op-background-service{
    height:75svh;
    min-height:560px;
  }

  .op-floating-card{
    left:6%;
    right:6%;
    top:auto;
    bottom:6%;
    width:auto;
    padding:30px 28px;
    transform:none;
  }

  .op-festpreis{
    display:block;
    padding:58px 8%;
  }

  .op-festpreis h2{font-size:35px;}
  .op-festpreis > div:last-child{padding:35px 0 0;}

  .op-contact{
    min-height:55svh;
    display:block;
    padding:58px 8%;
  }

  .op-contact h2{font-size:34px;}
  .op-contact > a{display:inline-block;margin-top:28px;}

  .fw-intro{
    display:block;
    min-height:0;
    padding:55px 7%;
  }

  .fw-wordmark{
    margin-bottom:40px;
    font-size:73px;
  }

  .fw-intro-copy{padding:0;}
  .fw-intro h1{font-size:35px;}

  .fw-project-film{
    grid-template-columns:1fr 1fr;
    grid-auto-rows:230px;
  }

  .fw-film-wide{
    grid-column:span 2;
    grid-row:span 2;
  }

  .fw-manifesto{
    display:block;
    padding:55px 8%;
  }

  .fw-manifesto h2{font-size:32px;}
  .fw-manifesto-text p{margin-top:30px;}

  .fw-service-bands a{
    grid-template-columns:1fr auto;
    padding:22px 7%;
  }

  .fw-service-bands strong{
    grid-column:1;
    margin-top:5px;
  }

  .fw-service-bands b{
    grid-column:2;
    grid-row:1/3;
  }

  .fw-feature,
  .fw-feature-light{
    display:flex;
    flex-direction:column;
    min-height:0;
  }

  .fw-feature-light .fw-feature-copy{order:2;}
  .fw-feature-light .fw-feature-image{order:1;}

  .fw-feature-image{min-height:390px;}
  .fw-feature-copy{padding:48px 8%;}

  .fw-final{
    grid-template-columns:1fr 1fr;
  }

  .fw-final a{
    min-height:82px;
    border-bottom:1px solid #ddd;
  }

  .home-index{
    display:block;
  }

  .idx-rail-inner{
    position:relative;
    top:auto;
    min-height:0;
    padding:50px 8%;
  }

  .idx-rail h1{font-size:40px;}

  .idx-meta{margin-top:35px;}

  .idx-projects,
  .idx-services,
  .idx-note{
    padding:42px 5%;
  }

  .idx-project-grid{
    grid-template-columns:repeat(2,1fr);
    grid-auto-rows:190px;
  }

  .idx-project-1,
  .idx-project-2,
  .idx-project-3,
  .idx-project-4,
  .idx-project-5,
  .idx-project-6,
  .idx-project-7{
    grid-column:span 1;
    grid-row:span 1;
  }

  .idx-project-1{
    grid-column:span 2;
    grid-row:span 2;
  }

  .idx-service-row{
    grid-template-columns:1fr auto;
    gap:6px 15px;
    padding:22px 0;
  }

  .idx-service-row > span,
  .idx-service-row strong,
  .idx-service-row p{
    grid-column:1;
  }

  .idx-service-row b{
    grid-column:2;
    grid-row:1/4;
  }

  .idx-note{
    display:block;
  }

  .idx-note blockquote{
    margin-top:28px;
    font-size:27px;
  }

  .idx-note > div{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
  }
}


/* ==========================================================
   V14.1 – Editorial final: ruhiger Abschlussbereich
   ========================================================== */

.home-concept-editorial .hb-editorial-statement{
  display:grid !important;
  grid-template-columns:38% 45% 17% !important;
  align-items:center !important;
  gap:0 !important;
  width:100%;
  padding:64px 7% !important;
  margin:0 !important;
  box-sizing:border-box;
  background:#fff !important;
  border-top:1px solid #ededeb !important;
}

.home-concept-editorial .hb-editorial-statement > div{
  padding-right:12%;
}

.home-concept-editorial .hb-editorial-statement > div > span{
  display:block;
  margin:0 0 12px;
  color:#b51f29;
  font-size:10px;
  line-height:1;
  letter-spacing:.16em;
}

.home-concept-editorial .hb-editorial-statement h2{
  margin:0 !important;
  color:#333;
  font-size:31px;
  line-height:1.25;
  font-weight:300;
}

.home-concept-editorial .hb-editorial-statement > p{
  margin:0 !important;
  padding-right:10%;
  color:#555;
  font-size:14px;
  line-height:1.82;
}

.home-concept-editorial .hb-editorial-statement > a{
  justify-self:end;
  align-self:center;
  color:#333;
  font-size:12px;
  line-height:1.4;
  text-decoration:none;
  white-space:nowrap;
  border-bottom:1px solid #b51f29;
}

/* Die frühere zusätzliche LEHNES-Markenbox darf nicht mehr erscheinen. */
.home-concept-editorial .hb-one-brand,
.home-concept-editorial .hb-companies{
  display:none !important;
}

/* Der temporäre Varianten-Umschalter ist endgültig entfernt. */
.style-preview-switcher{
  display:none !important;
}

@media(max-width:900px){
  .home-concept-editorial .hb-editorial-statement{
    grid-template-columns:40% 60% !important;
    padding:54px 7% !important;
  }

  .home-concept-editorial .hb-editorial-statement > a{
    grid-column:2;
    justify-self:start;
    margin-top:20px;
  }
}

@media(max-width:760px){
  .home-concept-editorial .hb-editorial-statement{
    display:block !important;
    padding:46px 7% !important;
  }

  .home-concept-editorial .hb-editorial-statement > div{
    padding-right:0;
  }

  .home-concept-editorial .hb-editorial-statement > p{
    margin-top:23px !important;
    padding-right:0;
  }

  .home-concept-editorial .hb-editorial-statement > a{
    display:inline-block;
    margin-top:23px;
  }
}


/* ==========================================================
   V14.2 – Teamseite mit Bildblöcken
   ========================================================== */

.team-page-v142{
  width:100%;
  margin:0;
  padding:0;
  background:#fff;
}

/* Große Bildboxen oben und unten */
.team-page-v142 .team-story{
  position:relative;
  width:100%;
  min-height:520px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:#777;
}

.team-page-v142 .team-story-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
}

.team-page-v142 .team-story-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(0,0,0,.17);
}

/* kurzer Schatten direkt unter dem Header */
.team-page-v142 .team-story-intro::before{
  content:"";
  position:absolute;
  z-index:4;
  top:0;
  left:0;
  right:0;
  height:8px;
  pointer-events:none;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,.24) 0%,
    rgba(0,0,0,.10) 50%,
    rgba(0,0,0,0) 100%
  );
}

.team-page-v142 .team-story-card{
  position:relative;
  z-index:3;
  width:min(800px,78%);
  padding:48px 54px 50px;
  box-sizing:border-box;
  background:rgba(255,255,255,.93);
  color:#333;
  text-align:center;
}

.team-page-v142 .team-story-card h1,
.team-page-v142 .team-story-card h2{
  margin:0 0 6px;
  color:#333;
  font-size:36px;
  line-height:1.2;
  font-weight:300;
}

.team-page-v142 .team-story-card h6{
  margin:0 0 27px;
  color:#777;
  font-size:10px;
  line-height:1.45;
  font-weight:400;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.team-page-v142 .team-story-card p{
  margin:0 0 18px;
  color:#505050;
  font-size:14px;
  line-height:1.86;
}

.team-page-v142 .team-story-card p:last-child{
  margin-bottom:0;
}

/* Mitarbeiterbereich */
.team-page-v142 .team-members-section{
  padding:62px 0 72px;
  background:#fff;
}

.team-page-v142 .team-pairs{
  width:88% !important;
  max-width:1320px !important;
  margin:0 auto !important;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
}

.team-page-v142 .person-pair,
.team-page-v142 .person-pair.pair-alt{
  display:block !important;
  min-width:0;
  background:#f8f6f1;
  border:1px solid #ddd8cf;
}

.team-page-v142 .person-pair .team-photo,
.team-page-v142 .person-pair.pair-alt .team-photo{
  order:initial !important;
  width:100%;
  aspect-ratio:1 / 1.02;
  overflow:hidden;
  background:#ddd;
}

.team-page-v142 .person-pair .team-photo img,
.team-page-v142 .person-pair.pair-alt .team-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}

.team-page-v142 .person-pair .team-copy,
.team-page-v142 .person-pair.pair-alt .team-copy{
  order:initial !important;
  min-height:132px;
  padding:16px 16px 18px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  box-sizing:border-box;
}

.team-page-v142 .team-copy h2{
  margin:0 0 5px;
  font-size:13.5px;
  line-height:1.3;
  font-weight:400;
  letter-spacing:.035em;
  text-transform:uppercase;
}

.team-page-v142 .team-copy h6{
  margin:0 0 11px;
  color:#777;
  font-size:9px;
  line-height:1.5;
  font-weight:400;
}

.team-page-v142 .team-copy p{
  margin:0;
  color:#555;
  font-size:10.5px;
  line-height:1.55;
}

/* Partnerbild etwas anders beschneiden */
.team-page-v142 .team-story-partner{
  min-height:500px;
}

.team-page-v142 .team-story-partner .team-story-bg{
  object-position:center center;
}

.team-page-v142 .team-story-partner .team-story-shade{
  background:rgba(0,0,0,.20);
}

.team-page-v142 .team-partner-claim{
  margin-top:23px !important;
  color:#333 !important;
  font-weight:500;
}

/* Unterkante Teamkarten -> Partnerbild: leichter Schatten */
.team-page-v142 .team-members-section{
  position:relative;
  z-index:3;
  box-shadow:0 8px 12px rgba(0,0,0,.10);
}

/* Responsive */
@media(max-width:1150px){
  .team-page-v142 .team-pairs{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}

@media(max-width:820px){
  .team-page-v142 .team-story{
    min-height:500px;
  }

  .team-page-v142 .team-story-card{
    width:84%;
    padding:39px 38px 41px;
  }

  .team-page-v142 .team-story-card h1,
  .team-page-v142 .team-story-card h2{
    font-size:32px;
  }

  .team-page-v142 .team-pairs{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:520px){
  .team-page-v142 .team-story{
    min-height:560px;
  }

  .team-page-v142 .team-story-card{
    width:88%;
    padding:32px 25px 35px;
  }

  .team-page-v142 .team-story-card h1,
  .team-page-v142 .team-story-card h2{
    font-size:28px;
  }

  .team-page-v142 .team-story-card h6{
    margin-bottom:21px;
    font-size:9px;
  }

  .team-page-v142 .team-story-card p{
    font-size:12.5px;
    line-height:1.72;
  }

  .team-page-v142 .team-members-section{
    padding:42px 0 50px;
  }

  .team-page-v142 .team-pairs{
    width:88% !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
  }

  .team-page-v142 .person-pair .team-photo,
  .team-page-v142 .person-pair.pair-alt .team-photo{
    aspect-ratio:1.12 / 1;
  }

  .team-page-v142 .team-story-partner{
    min-height:520px;
  }
}


/* ==========================================================
   V14.3 – Teamseite Feinschliff
   mehr Bildwirkung, asymmetrische Textboxen, neutrale Karten
   ========================================================== */

/* Oberes Bild deutlich höher, damit Fränkische.jpg mehr Raum bekommt. */
.team-page-v142 .team-story-intro{
  min-height:670px;
  justify-content:flex-start;
  padding-left:7%;
  padding-right:7%;
  box-sizing:border-box;
}

/* Partnerbereich etwas großzügiger, Box auf die Gegenseite. */
.team-page-v142 .team-story-partner{
  min-height:590px;
  justify-content:flex-end;
  padding-left:7%;
  padding-right:7%;
  box-sizing:border-box;
}

/* Hintergrundbilder bewusster sichtbar lassen. */
.team-page-v142 .team-story-intro .team-story-shade{
  background:rgba(0,0,0,.10);
}

.team-page-v142 .team-story-partner .team-story-shade{
  background:rgba(0,0,0,.12);
}

/* Textboxen nicht mehr mittig und deutlich transparenter. */
.team-page-v142 .team-story-card{
  width:min(690px,48%);
  margin:0;
  padding:43px 48px 46px;
  background:rgba(255,255,255,.80);
  text-align:left;
  backdrop-filter:blur(1.5px);
  -webkit-backdrop-filter:blur(1.5px);
}

/* Bei Partner dieselbe Boxbreite, aber rechts ausgerichtet. */
.team-page-v142 .team-story-partner .team-story-card{
  width:min(690px,48%);
}

/* Typografie in den Bildboxen linksbündig und etwas ruhiger. */
.team-page-v142 .team-story-card h1,
.team-page-v142 .team-story-card h2{
  text-align:left;
}

.team-page-v142 .team-story-card h6{
  text-align:left;
}

.team-page-v142 .team-story-card p{
  text-align:left;
}

/* Personenkarten: warmes Beige vollständig durch neutrales Grau ersetzen. */
.team-page-v142 .person-pair,
.team-page-v142 .person-pair.pair-alt{
  background:#f5f5f5 !important;
  border-color:#dddddd !important;
}

.team-page-v142 .team-copy{
  background:#f5f5f5;
}

/* Mitarbeiterbereich ebenfalls rein neutral halten. */
.team-page-v142 .team-members-section{
  background:#ffffff;
}

/* Partner-Claim etwas klarer, aber nicht fett/plakativ. */
.team-page-v142 .team-partner-claim{
  margin-top:24px !important;
  font-weight:500;
}

/* Tablet */
@media(max-width:1050px){
  .team-page-v142 .team-story-intro{
    min-height:620px;
    padding-left:6%;
    padding-right:6%;
  }

  .team-page-v142 .team-story-partner{
    min-height:550px;
    padding-left:6%;
    padding-right:6%;
  }

  .team-page-v142 .team-story-card,
  .team-page-v142 .team-story-partner .team-story-card{
    width:min(650px,58%);
  }
}

/* Mobil: Boxen bleiben leicht vom Rand versetzt, nicht wieder streng zentriert. */
@media(max-width:820px){
  .team-page-v142 .team-story-intro,
  .team-page-v142 .team-story-partner{
    min-height:590px;
    justify-content:flex-start;
    padding-left:6%;
    padding-right:6%;
  }

  .team-page-v142 .team-story-partner{
    justify-content:flex-end;
  }

  .team-page-v142 .team-story-card,
  .team-page-v142 .team-story-partner .team-story-card{
    width:78%;
    padding:36px 36px 39px;
    background:rgba(255,255,255,.84);
  }
}

@media(max-width:520px){
  .team-page-v142 .team-story-intro{
    min-height:680px;
  }

  .team-page-v142 .team-story-partner{
    min-height:590px;
  }

  .team-page-v142 .team-story-card,
  .team-page-v142 .team-story-partner .team-story-card{
    width:88%;
    padding:30px 24px 33px;
    background:rgba(255,255,255,.87);
  }
}


/* ==========================================================
   V14.4 – roter Strich als wiederkehrendes LEHNES-Element
   ========================================================== */

/* Leistungen:
   bisherigen Strich vor der Überschrift ausblenden */
.services-page-v123 .service-kicker{
  display:none !important;
}

/* Strich jetzt direkt NACH Architektur / Gutachten / Immobilienberatung */
.services-page-v123 .service-text-inner h1::after,
.services-page-v123 .service-text-inner h2::after{
  content:"";
  display:block;
  width:54px;
  height:1px;
  margin-top:16px;
  background:#b51f29;
}

/* Überschriftenabstand nach unten leicht ausbalancieren */
.services-page-v123 .service-text-inner h1,
.services-page-v123 .service-text-inner h2{
  margin-bottom:27px;
}


/* ----------------------------------------------------------
   Team Lehnes + Partner
   ---------------------------------------------------------- */
.team-page-v142 .team-story-card h1::after,
.team-page-v142 .team-story-card h2::after{
  content:"";
  display:block;
  width:54px;
  height:1px;
  margin-top:14px;
  background:#b51f29;
}

/* durch die neue Linie etwas mehr Abstand zur Unterzeile */
.team-page-v142 .team-story-card h1,
.team-page-v142 .team-story-card h2{
  margin-bottom:15px;
}


/* ----------------------------------------------------------
   Personenkarten
   kleineres Format desselben Gestaltungselements
   ---------------------------------------------------------- */
.team-page-v142 .team-copy h2::after{
  content:"";
  display:block;
  width:38px;
  height:1px;
  margin-top:8px;
  background:#b51f29;
}

.team-page-v142 .team-copy h2{
  margin-bottom:10px;
}


/* Mobil etwas kompakter */
@media(max-width:520px){
  .services-page-v123 .service-text-inner h1::after,
  .services-page-v123 .service-text-inner h2::after,
  .team-page-v142 .team-story-card h1::after,
  .team-page-v142 .team-story-card h2::after{
    width:48px;
  }

  .team-page-v142 .team-copy h2::after{
    width:34px;
  }
}


/* ==========================================================
   V14.5 – Team Personenkarten
   Namen deutlicher, Qualifikationen größer/zeilenweise
   ========================================================== */

.team-page-v142 .team-copy h2{
  margin:0 0 12px !important;
  color:#2f2f2f;
  font-size:15.5px !important;
  line-height:1.28;
  font-weight:600 !important;
  letter-spacing:.025em;
  text-transform:uppercase;
}

.team-page-v142 .team-copy h2::after{
  margin-top:9px;
}

/* Berufsbezeichnungen / Qualifikationen */
.team-page-v142 .team-copy .team-qualifications{
  margin:0 !important;
  color:#606060;
  font-size:10.5px !important;
  line-height:1.48;
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
}

.team-page-v142 .team-copy .team-qualifications span{
  display:block;
}

.team-page-v142 .team-copy .team-qualifications span + span{
  margin-top:3px;
}

/* Da der Tätigkeitsbereich entfällt, Kartenhöhe etwas kompakter */
.team-page-v142 .person-pair .team-copy,
.team-page-v142 .person-pair.pair-alt .team-copy{
  min-height:118px;
  padding:17px 16px 19px;
}

@media(max-width:820px){
  .team-page-v142 .team-copy h2{
    font-size:15px !important;
  }

  .team-page-v142 .team-copy .team-qualifications{
    font-size:10.5px !important;
  }
}


/* ==========================================================
   V14.6 – Team Qualifikationen / Typografie
   ========================================================== */

/* Namen: etwas mehr Laufweite */
.team-page-v142 .team-copy h2{
  letter-spacing:.055em !important;
}

/* Eine zusammengehörige Berufsbezeichnung darf bei automatischem
   Zeilenumbruch enger stehen. */
.team-page-v142 .team-copy .team-qualifications{
  line-height:1.28 !important;
}

.team-page-v142 .team-copy .team-qualification{
  display:block;
  line-height:1.28;
}

/* Nächste eigenständige Berufsbezeichnung deutlich absetzen */
.team-page-v142 .team-copy .team-qualification + .team-qualification{
  margin-top:8px;
}

/* Hervorhebungen innerhalb der Qualifikationen */
.team-page-v142 .team-copy .team-qualification strong{
  font-weight:600;
  color:#484848;
}

.team-page-v142 .team-copy .team-qualification em{
  font-style:italic;
  color:#777;
}

/* Lange Qualifikationen etwas angenehmer lesbar */
.team-page-v142 .team-copy .team-qualifications{
  font-size:10.8px !important;
}


/* ==========================================================
   V14.7 – Qualifikationen aktualisiert
   ========================================================== */

/* Keine zusätzliche Fetthervorhebung in den Qualifikationstexten nötig. */
.team-page-v142 .team-copy .team-qualification strong{
  font-weight:400;
  color:inherit;
}


/* ==========================================================
   V14.8 – Team Typografie
   ========================================================== */

/* Berufs-/Qualifikationsbezeichnungen etwas größer */
.team-page-v142 .team-copy .team-qualifications,
.team-page-v142 .team-copy .team-qualification{
  font-size:11.5px !important;
}

/* Unterzeilen in Team- und Partner-Box ebenfalls deutlicher */
.team-page-v142 .team-story-card h6{
  font-size:11.5px !important;
  line-height:1.48;
  letter-spacing:.10em;
}


/* ==========================================================
   V14.8 – Festpreis im Editorial-/Team-Design
   ========================================================== */

.festpreis-page-v148{
  width:100%;
  margin:0;
  padding:0;
  background:#fff;
  color:#333;
}

.festpreis-page-v148 .fp-red-line{
  width:54px;
  height:1px;
  background:#b51f29;
}

.festpreis-page-v148 .fp-card-red-line{
  width:38px;
  height:1px;
  margin:10px 0 15px;
  background:#b51f29;
}

/* ---------- Hero wie Team-Seite ---------- */
.fp-hero{
  position:relative;
  min-height:690px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding:60px 7%;
  box-sizing:border-box;
  overflow:hidden;
  background:#777;
}

.fp-hero::before{
  content:"";
  position:absolute;
  z-index:5;
  top:0;
  left:0;
  right:0;
  height:8px;
  background:linear-gradient(to bottom,rgba(0,0,0,.24),rgba(0,0,0,.08) 55%,rgba(0,0,0,0));
  pointer-events:none;
}

.fp-hero-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center;
}

.fp-hero-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(0,0,0,.10);
}

.fp-hero-card{
  position:relative;
  z-index:3;
  width:min(720px,52%);
  padding:45px 50px 47px;
  box-sizing:border-box;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(1.5px);
  -webkit-backdrop-filter:blur(1.5px);
}

.fp-hero-card h1{
  margin:0;
  font-size:38px;
  line-height:1.18;
  font-weight:300;
}

.fp-hero-card .fp-red-line{
  margin:16px 0 18px;
}

.fp-hero-card h2{
  margin:0 0 25px;
  font-size:22px;
  line-height:1.35;
  font-weight:400;
}

.fp-hero-card p{
  margin:0 0 16px;
  color:#4e4e4e;
  font-size:13.5px;
  line-height:1.82;
}

.fp-hero-card strong{
  display:block;
  margin-top:23px;
  font-size:13px;
  line-height:1.5;
  font-weight:500;
}

/* ---------- allgemeine Sektionen ---------- */
.fp-section{
  padding:74px 0;
}

.fp-inner{
  width:86%;
  max-width:1320px;
  margin:0 auto;
}

.fp-section-heading h2{
  margin:0;
  font-size:34px;
  line-height:1.25;
  font-weight:300;
}

.fp-section-heading .fp-red-line{
  margin:15px 0 23px;
}

.fp-section-heading > p{
  max-width:680px;
  margin:0;
  color:#555;
  font-size:13.5px;
  line-height:1.82;
}

/* ---------- Ablauf ---------- */
.fp-process-section{
  background:#fff;
}

.fp-process-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:42px;
}

.fp-process-grid article{
  min-height:285px;
  padding:31px 29px 34px;
  box-sizing:border-box;
  background:#f5f5f5;
  border:1px solid #dedede;
}

.fp-step{
  display:block;
  margin-bottom:24px;
  color:#b51f29;
  font-size:10px;
  line-height:1;
  letter-spacing:.12em;
}

.fp-process-grid h3{
  margin:0 0 15px;
  font-size:20px;
  line-height:1.35;
  font-weight:400;
}

.fp-process-grid p{
  margin:0;
  color:#555;
  font-size:12.5px;
  line-height:1.78;
}

/* ---------- Leistungsumfang + Grundrisse ---------- */
.fp-scope-section{
  padding:0;
  background:#f2f2f2;
}

.fp-scope-inner{
  display:grid;
  grid-template-columns:46% 54%;
  min-height:610px;
}

.fp-plan-slider{
  position:relative;
  min-height:610px;
  overflow:hidden;
  background:#ededed;
}

.fp-plan-slide{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:42px;
  box-sizing:border-box;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease;
}

.fp-plan-slide.is-active{
  opacity:1;
  visibility:visible;
}

.fp-plan-slide img,
.fp-plan-slide img.fit-height,
.fp-plan-slide img.fit-width{
  position:absolute !important;
  inset:42px !important;
  left:42px !important;
  top:42px !important;
  width:calc(100% - 84px) !important;
  height:calc(100% - 84px) !important;
  max-width:none !important;
  object-fit:contain !important;
  object-position:center !important;
  transform:none !important;
}

.fp-plan-label{
  position:absolute;
  z-index:4;
  left:22px;
  bottom:18px;
  padding:6px 8px;
  background:rgba(255,255,255,.90);
  color:#555;
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.fp-scope-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:65px 10%;
  box-sizing:border-box;
  background:#333;
  color:#fff;
}

.fp-scope-copy .fp-section-heading h2{
  color:#fff;
}

.fp-scope-copy .fp-red-line{
  background:#c52b35;
}

.fp-price-line{
  display:flex;
  align-items:flex-end;
  gap:14px;
  margin:4px 0 27px;
}

.fp-price-line strong{
  font-size:64px;
  line-height:.9;
  font-weight:200;
}

.fp-price-line span{
  max-width:180px;
  padding-bottom:5px;
  color:#cfcfcf;
  font-size:10px;
  line-height:1.45;
  letter-spacing:.055em;
  text-transform:uppercase;
}

.fp-scope-copy ul{
  margin:0;
  padding-left:18px;
}

.fp-scope-copy li{
  margin:8px 0;
  color:#e1e1e1;
  font-size:12.5px;
  line-height:1.65;
}

/* ---------- Optionen wie Teamkarten ---------- */
.fp-options-section{
  background:#fff;
}

.fp-option-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:42px;
}

.fp-option-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  background:#f5f5f5;
  border:1px solid #ddd;
}

.fp-option-image{
  aspect-ratio:1.25 / 1;
  overflow:hidden;
  background:#e2e2e2;
}

.fp-option-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  transition:transform .45s ease;
}

.fp-option-card:hover .fp-option-image img{
  transform:scale(1.02);
}

.fp-option-copy{
  flex:1;
  display:flex;
  flex-direction:column;
  padding:22px 22px 24px;
}

.fp-option-copy h3{
  margin:0;
  font-size:17px;
  line-height:1.35;
  font-weight:500;
  letter-spacing:.025em;
}

.fp-option-copy p,
.fp-option-copy li{
  color:#555;
  font-size:12px;
  line-height:1.68;
}

.fp-option-copy p{
  margin:0;
}

.fp-option-copy ul{
  margin:0;
  padding-left:17px;
}

.fp-option-price{
  display:block;
  margin-top:auto;
  padding-top:22px;
  color:#333;
  font-size:17px;
  line-height:1.2;
  font-weight:400;
}

/* ---------- Nicht enthalten ---------- */
.fp-excluded-section{
  background:#f5f5f5;
}

.fp-excluded-layout{
  display:grid;
  grid-template-columns:40% 60%;
  gap:8%;
  align-items:start;
}

.fp-clean-list{
  margin:4px 0 0;
  padding:0;
  list-style:none;
}

.fp-clean-list li{
  position:relative;
  padding:12px 0 12px 20px;
  border-top:1px solid #d9d9d9;
  color:#555;
  font-size:12.5px;
  line-height:1.6;
}

.fp-clean-list li:last-child{
  border-bottom:1px solid #d9d9d9;
}

.fp-clean-list li::before{
  content:"–";
  position:absolute;
  left:0;
  color:#b51f29;
}

/* ---------- Wie kann das aussehen ---------- */
.fp-showcase-section{
  padding:0;
  background:#fff;
}

.fp-showcase-inner{
  display:grid;
  grid-template-columns:42% 58%;
  min-height:560px;
}

.fp-showcase-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:60px 12%;
}

.fp-showcase-copy > p{
  margin:0;
  color:#555;
  font-size:13.5px;
  line-height:1.82;
}

.fp-showcase-links{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:13px;
  margin-top:28px;
}

.fp-showcase-links a{
  color:#333;
  font-size:11.5px;
  line-height:1.5;
  text-decoration:none;
  border-bottom:1px solid #b51f29;
}

.fp-showcase-image{
  min-height:560px;
  overflow:hidden;
}

.fp-showcase-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}

/* ---------- vorbereitende Informationen ---------- */
.fp-info-section{
  background:#fff;
}

.fp-info-section .fp-section-heading{
  max-width:760px;
}

.fp-info-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:42px;
}

.fp-info-grid article{
  padding:30px 30px 32px;
  background:#f5f5f5;
  border:1px solid #dedede;
}

.fp-info-grid h3{
  margin:0 0 17px;
  font-size:18px;
  line-height:1.35;
  font-weight:400;
}

.fp-info-grid ul{
  margin:0;
  padding-left:18px;
}

.fp-info-grid li{
  margin:8px 0;
  color:#555;
  font-size:12.5px;
  line-height:1.68;
}

/* ---------- Abschluss ---------- */
.fp-final-cta{
  display:grid;
  grid-template-columns:1fr 1fr;
  background:#fff;
  border-top:1px solid #ddd;
}

.fp-final-cta a{
  min-height:126px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:25px 7%;
  box-sizing:border-box;
  color:#333;
  text-decoration:none;
  transition:background .3s ease,color .3s ease;
}

.fp-final-cta a + a{
  border-left:1px solid #ddd;
}

.fp-final-cta span{
  margin-bottom:7px;
  color:#888;
  font-size:9.5px;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.fp-final-cta strong{
  font-size:15px;
  font-weight:400;
}

.fp-final-cta a:hover{
  background:#b51f29;
  color:#fff;
}

.fp-final-cta a:hover span{
  color:rgba(255,255,255,.72);
}


/* ==========================================================
   Responsive Festpreis
   ========================================================== */
@media(max-width:1050px){
  .fp-hero-card{
    width:min(700px,60%);
  }

  .fp-scope-inner{
    grid-template-columns:48% 52%;
  }

  .fp-scope-copy{
    padding:55px 8%;
  }

  .fp-showcase-inner{
    grid-template-columns:45% 55%;
  }
}

@media(max-width:820px){
  .fp-hero{
    min-height:650px;
    padding:50px 6%;
  }

  .fp-hero-card{
    width:72%;
    padding:38px 38px 40px;
  }

  .fp-hero-card h1{
    font-size:33px;
  }

  .fp-process-grid,
  .fp-option-grid{
    grid-template-columns:1fr;
  }

  .fp-process-grid article{
    min-height:0;
  }

  .fp-scope-inner,
  .fp-showcase-inner{
    grid-template-columns:1fr;
  }

  .fp-plan-slider{
    min-height:470px;
  }

  .fp-scope-copy{
    padding:52px 8%;
  }

  .fp-option-image{
    aspect-ratio:1.7 / 1;
  }

  .fp-excluded-layout{
    grid-template-columns:1fr;
    gap:30px;
  }

  .fp-showcase-copy{
    padding:52px 8%;
  }

  .fp-showcase-image{
    min-height:430px;
  }
}

@media(max-width:560px){
  .team-page-v142 .team-copy .team-qualifications,
  .team-page-v142 .team-copy .team-qualification{
    font-size:11.5px !important;
  }

  .team-page-v142 .team-story-card h6{
    font-size:10.8px !important;
  }

  .fp-hero{
    min-height:720px;
    align-items:flex-end;
    padding:35px 5%;
  }

  .fp-hero-card{
    width:100%;
    padding:30px 25px 32px;
    background:rgba(255,255,255,.87);
  }

  .fp-hero-card h1{
    font-size:29px;
  }

  .fp-hero-card h2{
    font-size:19px;
  }

  .fp-hero-card p{
    font-size:12.5px;
    line-height:1.72;
  }

  .fp-section{
    padding:52px 0;
  }

  .fp-inner{
    width:88%;
  }

  .fp-section-heading h2{
    font-size:29px;
  }

  .fp-process-grid{
    margin-top:32px;
  }

  .fp-plan-slider{
    min-height:390px;
  }

  .fp-plan-slide img,
  .fp-plan-slide img.fit-height,
  .fp-plan-slide img.fit-width{
    inset:25px !important;
    left:25px !important;
    top:25px !important;
    width:calc(100% - 50px) !important;
    height:calc(100% - 50px) !important;
  }

  .fp-price-line strong{
    font-size:55px;
  }

  .fp-option-image{
    aspect-ratio:1.35 / 1;
  }

  .fp-info-grid{
    grid-template-columns:1fr;
  }

  .fp-showcase-image{
    min-height:330px;
  }

  .fp-final-cta{
    grid-template-columns:1fr;
  }

  .fp-final-cta a + a{
    border-left:0;
    border-top:1px solid #ddd;
  }
}


/* ==========================================================
   V14.9 – Festpreis Parallax / Leistungsumfang Slider
   ========================================================== */

.festpreis-page-v148 .fp-hero{
  position:sticky;
  top:92px;
  z-index:1;
  min-height:690px;
  height:calc(100vh - 92px);
  max-height:820px;
  padding:60px 7%;
  align-items:center;
  justify-content:flex-start;
}

.festpreis-page-v148 .fp-hero-card-title{
  width:min(620px,46%);
  padding:42px 48px 44px;
  background:rgba(255,255,255,.83);
}

.festpreis-page-v148 .fp-hero-card-title h1{
  font-size:38px;
}

.festpreis-page-v148 .fp-hero-card-title h2{
  margin-bottom:0;
  font-size:23px;
}

/* Einführung schiebt sich über den Sticky-Hero */
.festpreis-page-v148 .fp-intro-text-section{
  position:relative;
  z-index:4;
  padding:68px 0 72px;
  background:#fff;
  box-shadow:0 -8px 14px rgba(0,0,0,.10);
}

.festpreis-page-v148 .fp-intro-text-box{
  width:76%;
  max-width:940px;
  margin:0 auto;
}

.festpreis-page-v148 .fp-intro-text-box p{
  margin:0 0 18px;
  color:#4f4f4f;
  font-size:14px;
  line-height:1.86;
}

.festpreis-page-v148 .fp-intro-text-box strong{
  display:block;
  margin-top:25px;
  color:#333;
  font-size:14px;
  line-height:1.5;
  font-weight:500;
}

/* Folgebereiche liegen über dem Sticky-Bild */
.festpreis-page-v148 .fp-section,
.festpreis-page-v148 .fp-final-cta{
  position:relative;
  z-index:4;
}

/* Ablaufbereich absetzen */
.festpreis-page-v148 .fp-process-section{
  background:#ededeb;
}

.festpreis-page-v148 .fp-process-grid article{
  background:#fff;
  border-color:#d8d8d6;
}

/* Leistungsumfang: Text links, breite Grundrisse rechts */
.festpreis-page-v148 .fp-scope-inner{
  grid-template-columns:40% 60%;
  min-height:520px;
}

.festpreis-page-v148 .fp-scope-copy{
  order:1;
  padding:58px 10%;
}

.festpreis-page-v148 .fp-plan-slider{
  order:2;
  position:relative;
  min-height:520px;
  overflow:hidden;
  background:#f1f1f1;
}

.festpreis-page-v148 .fp-plan-slide{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:34px 58px;
  box-sizing:border-box;
  opacity:0;
  visibility:hidden;
  transition:opacity 1.5s ease, visibility 1.5s ease;
}

.festpreis-page-v148 .fp-plan-slide.is-active{
  opacity:1;
  visibility:visible;
}

.festpreis-page-v148 .fp-plan-slide img{
  position:static !important;
  inset:auto !important;
  left:auto !important;
  top:auto !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  transform:none !important;
}

.festpreis-page-v148 .fp-plan-label{
  display:none !important;
}

.festpreis-page-v148 .fp-plan-arrow{
  position:absolute;
  z-index:8;
  top:50%;
  width:40px;
  height:54px;
  padding:0;
  transform:translateY(-50%);
  border:0;
  background:rgba(255,255,255,.88);
  color:#b51f29;
  font-family:Arial,sans-serif;
  font-size:32px;
  line-height:1;
  font-weight:300;
  cursor:pointer;
  transition:background .2s ease,color .2s ease;
}

.festpreis-page-v148 .fp-plan-arrow:hover{
  background:#b51f29;
  color:#fff;
}

.festpreis-page-v148 .fp-plan-prev{left:0;}
.festpreis-page-v148 .fp-plan-next{right:0;}

@media(max-width:1050px){
  .festpreis-page-v148 .fp-hero-card-title{
    width:min(620px,56%);
  }

  .festpreis-page-v148 .fp-scope-inner{
    grid-template-columns:43% 57%;
  }
}

@media(max-width:820px){
  .festpreis-page-v148 .fp-hero{
    position:relative;
    top:auto;
    height:auto;
    max-height:none;
    min-height:620px;
  }

  .festpreis-page-v148 .fp-hero-card-title{
    width:72%;
  }

  .festpreis-page-v148 .fp-intro-text-section{
    padding:52px 0 56px;
  }

  .festpreis-page-v148 .fp-intro-text-box{
    width:86%;
  }

  .festpreis-page-v148 .fp-scope-inner{
    display:flex;
    flex-direction:column;
  }

  .festpreis-page-v148 .fp-scope-copy{order:1;}
  .festpreis-page-v148 .fp-plan-slider{
    order:2;
    min-height:400px;
  }

  .festpreis-page-v148 .fp-plan-slide{
    padding:28px 48px;
  }
}

@media(max-width:560px){
  .festpreis-page-v148 .fp-hero{
    min-height:590px;
    align-items:flex-end;
  }

  .festpreis-page-v148 .fp-hero-card-title{
    width:100%;
    padding:29px 25px 31px;
  }

  .festpreis-page-v148 .fp-hero-card-title h1{
    font-size:29px;
  }

  .festpreis-page-v148 .fp-hero-card-title h2{
    font-size:19px;
  }

  .festpreis-page-v148 .fp-intro-text-box{
    width:88%;
  }

  .festpreis-page-v148 .fp-intro-text-box p{
    font-size:12.5px;
    line-height:1.74;
  }

  .festpreis-page-v148 .fp-plan-slider{
    min-height:300px;
  }

  .festpreis-page-v148 .fp-plan-slide{
    padding:22px 40px;
  }

  .festpreis-page-v148 .fp-plan-arrow{
    width:34px;
    height:48px;
    font-size:27px;
  }
}


/* ==========================================================
   V15.0 – Festpreis Feinschliff
   ========================================================== */

/* Hero-Box wieder mit vollständigem Introtext */
.festpreis-page-v148 .fp-hero-card-title{
  width:min(790px,61%);
  padding:42px 48px 45px;
  background:rgba(255,255,255,.84);
}

/* Überschrift darf niemals umbrechen */
.festpreis-page-v148 .fp-hero-card-title h1{
  white-space:nowrap !important;
  font-size:clamp(28px,2.7vw,38px) !important;
  letter-spacing:-.015em;
}

.festpreis-page-v148 .fp-hero-card-title h2{
  margin:0 0 24px;
}

.festpreis-page-v148 .fp-hero-intro-copy{
  margin-top:0;
}

.festpreis-page-v148 .fp-hero-intro-copy p{
  margin:0 0 15px;
  color:#4f4f4f;
  font-size:13.25px;
  line-height:1.76;
}

.festpreis-page-v148 .fp-hero-intro-copy strong{
  display:block;
  margin-top:21px;
  color:#333;
  font-size:13.5px;
  line-height:1.5;
  font-weight:500;
}

/* alter separater Introbereich wird nicht mehr benötigt */
.festpreis-page-v148 .fp-intro-text-section{
  display:none !important;
}


/* ----------------------------------------------------------
   Leistungsumfang: Grundrisse füllen die gesamte Sliderfläche
   ---------------------------------------------------------- */
.festpreis-page-v148 .fp-scope-inner{
  grid-template-columns:40% 60%;
  min-height:460px;
}

.festpreis-page-v148 .fp-plan-slider{
  min-height:460px;
  background:#fff;
}

.festpreis-page-v148 .fp-plan-slide{
  padding:0 !important;
}

.festpreis-page-v148 .fp-plan-slide img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center center !important;
  transform:none !important;
}


/* ----------------------------------------------------------
   "Wie kann das aussehen?" – dunkler grauer Bereich
   ---------------------------------------------------------- */
.festpreis-page-v148 .fp-showcase-section{
  background:#333 !important;
  color:#fff;
}

.festpreis-page-v148 .fp-showcase-copy{
  background:#333;
}

.festpreis-page-v148 .fp-showcase-copy .fp-section-heading h2{
  color:#fff;
}

.festpreis-page-v148 .fp-showcase-copy > p{
  color:#d9d9d9;
}

.festpreis-page-v148 .fp-showcase-links a{
  color:#fff;
  border-bottom-color:#c52b35;
}

.festpreis-page-v148 .fp-showcase-copy .fp-red-line{
  background:#c52b35;
}


/* Responsive */
@media(max-width:1050px){
  .festpreis-page-v148 .fp-hero-card-title{
    width:min(760px,68%);
  }
}

@media(max-width:820px){
  .festpreis-page-v148 .fp-hero-card-title{
    width:84%;
  }

  .festpreis-page-v148 .fp-hero-card-title h1{
    font-size:clamp(23px,4vw,30px) !important;
  }

  .festpreis-page-v148 .fp-plan-slider{
    min-height:360px;
  }
}

@media(max-width:560px){
  .festpreis-page-v148 .fp-hero-card-title{
    width:100%;
  }

  .festpreis-page-v148 .fp-hero-card-title h1{
    font-size:clamp(19px,5.6vw,25px) !important;
    letter-spacing:-.025em;
  }

  .festpreis-page-v148 .fp-hero-intro-copy p{
    font-size:12.1px;
    line-height:1.68;
  }

  .festpreis-page-v148 .fp-plan-slider{
    min-height:260px;
  }
}


/* ==========================================================
   V15.1 – Festpreis Flächenabfolge
   ========================================================== */

/* Leistungsumfang: weiß */
.festpreis-page-v148 .fp-scope-section{
  background:#fff !important;
}

.festpreis-page-v148 .fp-plan-slider{
  background:#fff !important;
}

/* Optionale Leistungen: grau */
.festpreis-page-v148 .fp-options-section{
  background:#ededeb !important;
}

/* Karten bleiben hell und heben sich vom grauen Bereich ab */
.festpreis-page-v148 .fp-option-card{
  background:#fff !important;
}

/* Wie kann das aussehen: wieder weiß */
.festpreis-page-v148 .fp-showcase-section{
  background:#fff !important;
  color:#333 !important;
}

.festpreis-page-v148 .fp-showcase-copy{
  background:#fff !important;
}

.festpreis-page-v148 .fp-showcase-copy .fp-section-heading h2{
  color:#333 !important;
}

.festpreis-page-v148 .fp-showcase-copy > p{
  color:#555 !important;
}

.festpreis-page-v148 .fp-showcase-links a{
  color:#333 !important;
}

/* Vorbereitende Informationen: grau */
.festpreis-page-v148 .fp-info-section{
  background:#ededeb !important;
}

/* Info-Karten bleiben weiß */
.festpreis-page-v148 .fp-info-grid article{
  background:#fff !important;
}


/* ==========================================================
   V15.2 – Team Parallax / Sticky Bildbereiche
   ========================================================== */

/* Oberer Team-Bildbereich:
   bleibt unter dem Header stehen, Mitarbeiterbereich scrollt darüber */
.team-page-v142 .team-story-intro{
  position:sticky;
  top:92px;
  z-index:1;
  min-height:670px;
  height:calc(100vh - 92px);
  max-height:820px;
}

/* Mitarbeiterbereich muss den gepinnten Hero vollständig überdecken */
.team-page-v142 .team-members-section{
  position:relative;
  z-index:4;
  background:#fff;
  box-shadow:0 -8px 14px rgba(0,0,0,.10),
             0 8px 12px rgba(0,0,0,.10);
}

/* Partnerbild ebenfalls fest unter dem Header */
.team-page-v142 .team-story-partner{
  position:sticky;
  top:92px;
  z-index:1;
  min-height:590px;
  height:calc(100vh - 92px);
  max-height:780px;
}

/* Footer schiebt sich am Ende über den gepinnten Partnerbereich */
body.page-inner .site-footer{
  position:relative;
  z-index:4;
  background:#fff;
  box-shadow:0 -8px 14px rgba(0,0,0,.09);
}

/* Der Main-Container muss den Sticky-Effekt nicht abschneiden */
.team-page-v142{
  overflow:visible !important;
}

/* Tablet / Mobil:
   wie beim Festpreis kein Sticky, damit Touch-Scrolling sauber bleibt */
@media(max-width:820px){
  .team-page-v142 .team-story-intro,
  .team-page-v142 .team-story-partner{
    position:relative;
    top:auto;
    height:auto;
    max-height:none;
  }

  .team-page-v142 .team-story-intro{
    min-height:590px;
  }

  .team-page-v142 .team-story-partner{
    min-height:550px;
  }
}

@media(max-width:520px){
  .team-page-v142 .team-story-intro{
    min-height:680px;
  }

  .team-page-v142 .team-story-partner{
    min-height:590px;
  }
}


/* ==========================================================
   V15.3 – Partner Sticky korrigiert + Festpreis Flächen
   ========================================================== */

/* ----------------------------------------------------------
   TEAM: Partner ist letzter Inhaltsblock.
   Ein längerer Wrapper schafft den nötigen Scrollweg,
   damit der Sticky-Effekt am Seitenende tatsächlich greift.
   ---------------------------------------------------------- */
.team-page-v142 .team-partner-sticky-wrap{
  position:relative;
  z-index:1;
  height:calc(135vh - 92px);
  min-height:760px;
  background:#fff;
}

.team-page-v142 .team-partner-sticky-wrap .team-story-partner{
  position:sticky !important;
  top:92px !important;
  z-index:1;
  width:100%;
  height:calc(100vh - 92px) !important;
  min-height:590px;
  max-height:none !important;
}

/* Footer liegt beim anschließenden Freigeben sauber darüber */
body.page-inner .site-footer{
  position:relative;
  z-index:5;
}


/* ----------------------------------------------------------
   FESTPREIS – LEISTUNGSUMFANG KOMPLETT WEISS
   ---------------------------------------------------------- */
.festpreis-page-v148 .fp-scope-section,
.festpreis-page-v148 .fp-scope-inner,
.festpreis-page-v148 .fp-scope-copy,
.festpreis-page-v148 .fp-plan-slider{
  background:#fff !important;
}

.festpreis-page-v148 .fp-scope-copy{
  color:#333 !important;
  border-right:1px solid #e2e2e2;
}

.festpreis-page-v148 .fp-scope-copy .fp-section-heading h2{
  color:#333 !important;
}

.festpreis-page-v148 .fp-scope-copy .fp-red-line{
  background:#b51f29 !important;
}

.festpreis-page-v148 .fp-price-line strong{
  color:#333 !important;
}

.festpreis-page-v148 .fp-price-line span{
  color:#777 !important;
}

.festpreis-page-v148 .fp-scope-copy li{
  color:#555 !important;
}


/* ----------------------------------------------------------
   FESTPREIS – OPTIONALE LEISTUNGEN DUNKELGRAU
   ---------------------------------------------------------- */
.festpreis-page-v148 .fp-options-section{
  background:#333 !important;
  color:#fff;
}

.festpreis-page-v148 .fp-options-section .fp-section-heading h2{
  color:#fff !important;
}

.festpreis-page-v148 .fp-options-section .fp-red-line{
  background:#c52b35 !important;
}

/* Karten bewusst hell auf dunkler Fläche */
.festpreis-page-v148 .fp-options-section .fp-option-card{
  background:#fff !important;
  color:#333;
  border-color:#4b4b4b;
}

.festpreis-page-v148 .fp-options-section .fp-option-copy h3{
  color:#333;
}

.festpreis-page-v148 .fp-options-section .fp-option-copy p,
.festpreis-page-v148 .fp-options-section .fp-option-copy li{
  color:#555;
}

.festpreis-page-v148 .fp-options-section .fp-option-price{
  color:#333;
}


/* Mobil / Tablet: kein Sticky-Partner */
@media(max-width:820px){
  .team-page-v142 .team-partner-sticky-wrap{
    height:auto;
    min-height:0;
  }

  .team-page-v142 .team-partner-sticky-wrap .team-story-partner{
    position:relative !important;
    top:auto !important;
    height:auto !important;
    min-height:550px;
  }

  .festpreis-page-v148 .fp-scope-copy{
    border-right:0;
    border-bottom:1px solid #e2e2e2;
  }
}

@media(max-width:520px){
  .team-page-v142 .team-partner-sticky-wrap .team-story-partner{
    min-height:590px;
  }
}


/* ==========================================================
   V15.4 – Rückstellung Partner / Festpreis / Footer
   ========================================================== */

/* ----------------------------------------------------------
   TEAM – Partner wieder wie vor der Sticky-Wrapper-Änderung
   ---------------------------------------------------------- */
.team-page-v142 .team-partner-sticky-wrap{
  display:contents !important;
  height:auto !important;
  min-height:0 !important;
}

.team-page-v142 .team-story-partner,
.team-page-v142 .team-partner-sticky-wrap .team-story-partner{
  position:relative !important;
  top:auto !important;
  z-index:1;
  height:auto !important;
  min-height:590px !important;
  max-height:none !important;
}


/* ----------------------------------------------------------
   FESTPREIS – Leistungsumfang wieder dunkelgrau
   ---------------------------------------------------------- */
.festpreis-page-v148 .fp-scope-section,
.festpreis-page-v148 .fp-scope-inner{
  background:#333 !important;
}

.festpreis-page-v148 .fp-scope-copy{
  background:#333 !important;
  color:#fff !important;
  border-right:0 !important;
}

.festpreis-page-v148 .fp-scope-copy .fp-section-heading h2{
  color:#fff !important;
}

.festpreis-page-v148 .fp-scope-copy .fp-red-line{
  background:#c52b35 !important;
}

.festpreis-page-v148 .fp-price-line strong{
  color:#fff !important;
}

.festpreis-page-v148 .fp-price-line span{
  color:#cfcfcf !important;
}

.festpreis-page-v148 .fp-scope-copy li{
  color:#e1e1e1 !important;
}

/* Slider selbst bleibt hell für die Grundrisse */
.festpreis-page-v148 .fp-plan-slider{
  background:#fff !important;
}


/* ----------------------------------------------------------
   FESTPREIS – Optionale Leistungen wieder weiß
   ---------------------------------------------------------- */
.festpreis-page-v148 .fp-options-section{
  background:#fff !important;
  color:#333 !important;
}

.festpreis-page-v148 .fp-options-section .fp-section-heading h2{
  color:#333 !important;
}

.festpreis-page-v148 .fp-options-section .fp-red-line{
  background:#b51f29 !important;
}

.festpreis-page-v148 .fp-options-section .fp-option-card{
  background:#f5f5f5 !important;
  color:#333 !important;
  border-color:#ddd !important;
}


/* ----------------------------------------------------------
   FESTPREIS – "Wie kann das aussehen?" wieder dunkelgrau
   ---------------------------------------------------------- */
.festpreis-page-v148 .fp-showcase-section{
  background:#333 !important;
  color:#fff !important;
}

.festpreis-page-v148 .fp-showcase-copy{
  background:#333 !important;
}

.festpreis-page-v148 .fp-showcase-copy .fp-section-heading h2{
  color:#fff !important;
}

.festpreis-page-v148 .fp-showcase-copy > p{
  color:#d9d9d9 !important;
}

.festpreis-page-v148 .fp-showcase-links a{
  color:#fff !important;
  border-bottom-color:#c52b35 !important;
}

.festpreis-page-v148 .fp-showcase-copy .fp-red-line{
  background:#c52b35 !important;
}


/* ----------------------------------------------------------
   FOOTER – wieder dunkelgrau
   ---------------------------------------------------------- */
body .site-footer,
body.page-home .site-footer,
body.page-inner .site-footer{
  position:relative;
  z-index:4;
  background:#333 !important;
  color:#bdbdbd !important;
  border-top:0 !important;
  box-shadow:none !important;
}

body .site-footer a,
body.page-home .site-footer a,
body.page-inner .site-footer a{
  color:#e5e5e5 !important;
}

body .site-footer .footer-inner,
body.page-home .site-footer .footer-inner,
body.page-inner .site-footer .footer-inner{
  color:#bdbdbd !important;
}


/* Mobil */
@media(max-width:820px){
  .team-page-v142 .team-story-partner,
  .team-page-v142 .team-partner-sticky-wrap .team-story-partner{
    min-height:550px !important;
  }

  .festpreis-page-v148 .fp-scope-copy{
    border-bottom:0 !important;
  }
}

@media(max-width:520px){
  .team-page-v142 .team-story-partner,
  .team-page-v142 .team-partner-sticky-wrap .team-story-partner{
    min-height:590px !important;
  }
}


/* ==========================================================
   V15.5 – Landingpage Feinschliff
   ========================================================== */

/* Klarer Schatten direkt unter dem Header */
body.page-home .site-header{
  position:sticky;
  top:0;
  z-index:1000;
  box-shadow:0 7px 12px rgba(0,0,0,.16) !important;
  border-bottom:0 !important;
}

/* Introtext rechts weiter nach links rücken */
.page-home .hb-intro-bottom{
  padding:0 7% 4px 2% !important;
}

/* ----------------------------------------------------------
   Kompetenzfelder:
   roter Strich unter dem jeweiligen Haupttitel
   ---------------------------------------------------------- */
.page-home .hb-fields-v132 .hb-field-content strong::after{
  content:"";
  display:block;
  width:54px;
  height:1px;
  margin-top:11px;
  background:#b51f29;
}

/* Untertitel etwas weiter vom roten Strich abrücken */
.page-home .hb-fields-v132 .hb-field-content em{
  margin-top:2px;
}

/* ----------------------------------------------------------
   Text auf den Bildern besser lesbar:
   halbtransparente schwarze Fläche nur hinter dem Textblock
   ---------------------------------------------------------- */
.page-home .hb-fields-v132 .hb-field-content{
  left:6%;
  right:6%;
  bottom:6%;
  padding:19px 20px 21px;
  box-sizing:border-box;
  background:rgba(0,0,0,.43);
  backdrop-filter:blur(.7px);
  -webkit-backdrop-filter:blur(.7px);
}

/* bisherigen flächigen Verlauf etwas zurücknehmen,
   damit die Bilder trotz Textbox klar sichtbar bleiben */
.page-home .hb-fields-v132 .hb-field-shade{
  background:linear-gradient(
    to top,
    rgba(0,0,0,.27) 0%,
    rgba(0,0,0,.10) 48%,
    rgba(0,0,0,0) 78%
  ) !important;
}

.page-home .hb-fields-v132 .hb-field-content strong{
  color:#fff;
}

.page-home .hb-fields-v132 .hb-field-content em{
  color:rgba(255,255,255,.84);
}

.page-home .hb-fields-v132 .hb-field-description{
  color:rgba(255,255,255,.94) !important;
}

/* Responsive */
@media(max-width:980px){
  .page-home .hb-intro-bottom{
    padding-left:0 !important;
    padding-right:3% !important;
  }
}

@media(max-width:760px){
  body.page-home .site-header{
    box-shadow:0 5px 9px rgba(0,0,0,.15) !important;
  }

  .page-home .hb-intro-bottom{
    padding:30px 0 0 !important;
  }

  .page-home .hb-fields-v132 .hb-field-content{
    left:6%;
    right:6%;
    bottom:6%;
    padding:17px 17px 19px;
  }

  .page-home .hb-fields-v132 .hb-field-content strong::after{
    width:48px;
    margin-top:9px;
  }
}


/* ==========================================================
   V15.6 – Landingpage Overlay + Introposition
   ========================================================== */

/* Intro: Textblock beginnt etwa in der Seitenmitte */
.page-home .hb-intro{
  grid-template-columns:50% 50% !important;
}

.page-home .hb-intro-bottom{
  padding:0 7% 4px 0 !important;
}

/* Dunkle Textfläche füllt die jeweilige Kachel
   links, rechts und unten vollständig aus */
.page-home .hb-fields-v132 .hb-field-content{
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:100%;
  padding:21px 7% 24px !important;
  box-sizing:border-box;
  background:rgba(0,0,0,.43);
}

/* Mobil ebenfalls bündig bis an die Kachelränder */
@media(max-width:980px){
  .page-home .hb-intro{
    grid-template-columns:52% 48% !important;
  }

  .page-home .hb-intro-bottom{
    padding-left:0 !important;
    padding-right:2% !important;
  }
}

@media(max-width:760px){
  .page-home .hb-intro{
    display:block;
  }

  .page-home .hb-intro-bottom{
    padding:30px 0 0 !important;
  }

  .page-home .hb-fields-v132 .hb-field-content{
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    padding:18px 6% 20px !important;
  }
}


/* ==========================================================
   V15.7 – Typografie insgesamt etwas größer
   ========================================================== */

/* ----------------------------------------------------------
   LANDINGPAGE – drei Kompetenzfelder deutlich besser lesbar
   ---------------------------------------------------------- */
.page-home .hb-fields-v132 .hb-field-description{
  font-size:14px !important;
  line-height:1.65 !important;
}

.page-home .hb-fields-v132 .hb-field-content strong{
  font-size:20px !important;
  line-height:1.28 !important;
}

.page-home .hb-fields-v132 .hb-field-content em{
  font-size:12.5px !important;
  line-height:1.45 !important;
}

/* Introtext Landingpage ebenfalls leicht anheben */
.page-home .hb-intro-bottom p{
  font-size:15px !important;
  line-height:1.78 !important;
}

.page-home .hb-intro-bottom a{
  font-size:13px !important;
}


/* ----------------------------------------------------------
   TEAM
   ---------------------------------------------------------- */
.team-page-v142 .team-story-card p{
  font-size:14px !important;
  line-height:1.78 !important;
}

.team-page-v142 .team-copy .team-qualifications,
.team-page-v142 .team-copy .team-qualification{
  font-size:12.25px !important;
  line-height:1.35 !important;
}

.team-page-v142 .team-story-card h6{
  font-size:12.25px !important;
}


/* ----------------------------------------------------------
   LEISTUNGEN
   ---------------------------------------------------------- */
.services-page-v123 .service-text-inner p,
.services-page-v123 .service-text-inner li{
  font-size:14px !important;
  line-height:1.75 !important;
}

.services-page-v123 .service-row-quote blockquote{
  font-size:22px !important;
}


/* ----------------------------------------------------------
   FESTPREIS
   ---------------------------------------------------------- */
.festpreis-page-v148 .fp-hero-intro-copy p{
  font-size:14px !important;
  line-height:1.78 !important;
}

.festpreis-page-v148 .fp-hero-intro-copy strong{
  font-size:14px !important;
}

.festpreis-page-v148 .fp-process-grid p,
.festpreis-page-v148 .fp-scope-copy li,
.festpreis-page-v148 .fp-option-copy p,
.festpreis-page-v148 .fp-option-copy li,
.festpreis-page-v148 .fp-clean-list li,
.festpreis-page-v148 .fp-info-grid li{
  font-size:13.25px !important;
  line-height:1.72 !important;
}

.festpreis-page-v148 .fp-section-heading > p,
.festpreis-page-v148 .fp-showcase-copy > p{
  font-size:14px !important;
  line-height:1.78 !important;
}


/* ----------------------------------------------------------
   PROJEKTSEITEN / KONTAKT / ALLGEMEINE INHALTSTEXTE
   moderat anheben
   ---------------------------------------------------------- */
.project-detail-v11 .project-detail-copy p,
.project-detail-v11 .project-detail-copy li,
.contact-page p,
.contact-page label,
.contact-page input,
.contact-page textarea,
.contact-page select{
  font-size:13.5px !important;
}


/* ----------------------------------------------------------
   Responsive
   ---------------------------------------------------------- */
@media(max-width:760px){
  .page-home .hb-fields-v132 .hb-field-description{
    font-size:13.25px !important;
    line-height:1.62 !important;
  }

  .page-home .hb-fields-v132 .hb-field-content strong{
    font-size:19px !important;
  }

  .page-home .hb-intro-bottom p{
    font-size:13.5px !important;
  }

  .team-page-v142 .team-story-card p{
    font-size:13px !important;
  }

  .team-page-v142 .team-copy .team-qualifications,
  .team-page-v142 .team-copy .team-qualification{
    font-size:11.75px !important;
  }

  .services-page-v123 .service-text-inner p,
  .services-page-v123 .service-text-inner li{
    font-size:13.25px !important;
  }

  .festpreis-page-v148 .fp-process-grid p,
  .festpreis-page-v148 .fp-scope-copy li,
  .festpreis-page-v148 .fp-option-copy p,
  .festpreis-page-v148 .fp-option-copy li,
  .festpreis-page-v148 .fp-clean-list li,
  .festpreis-page-v148 .fp-info-grid li{
    font-size:12.75px !important;
  }
}


/* ==========================================================
   V15.8 – Kontaktseite Editorial / Parallax
   ========================================================== */

.contact-page-v158{
  width:100%;
  margin:0;
  padding:0;
  background:#fff;
  color:#333;
}

body:has(.contact-page-v158) .site-header{
  position:sticky;
  top:0;
  z-index:1000;
  box-shadow:0 7px 12px rgba(0,0,0,.16) !important;
  border-bottom:0 !important;
}

.contact-page-v158 .contact-red-line{
  width:54px;
  height:1px;
  background:#b51f29;
}


/* ----------------------------------------------------------
   Hero / Parallax
   ---------------------------------------------------------- */
.contact-page-v158 .contact-hero{
  position:sticky;
  top:92px;
  z-index:1;
  min-height:720px;
  height:calc(100vh - 92px);
  max-height:880px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding:55px 7%;
  box-sizing:border-box;
  overflow:hidden;
  background:#777;
}

.contact-page-v158 .contact-hero-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center;
}

.contact-page-v158 .contact-hero-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(0,0,0,.10);
}

.contact-page-v158 .contact-form-card{
  position:relative;
  z-index:3;
  width:min(650px,50%);
  padding:40px 46px 38px;
  box-sizing:border-box;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(1.5px);
  -webkit-backdrop-filter:blur(1.5px);
}

.contact-page-v158 .contact-card-heading h1{
  margin:0;
  color:#2f2f2f;
  font-size:37px;
  line-height:1.2;
  font-weight:300;
}

.contact-page-v158 .contact-card-heading .contact-red-line{
  margin:14px 0 25px;
}


/* ----------------------------------------------------------
   Formular
   ---------------------------------------------------------- */
.contact-page-v158 .contact-field{
  margin-bottom:17px;
}

.contact-page-v158 .contact-field label{
  display:block;
  margin:0 0 6px;
  color:#555;
  font-size:12px;
  line-height:1.4;
}

.contact-page-v158 .contact-field input,
.contact-page-v158 .contact-field textarea{
  display:block;
  width:100%;
  box-sizing:border-box;
  border:1px solid #cecece;
  border-radius:0;
  outline:none;
  background:rgba(255,255,255,.90);
  color:#333;
  font:inherit;
  font-size:14px !important;
  line-height:1.55;
  transition:border-color .2s ease,background .2s ease;
}

.contact-page-v158 .contact-field input{
  height:43px;
  padding:9px 11px;
}

.contact-page-v158 .contact-field textarea{
  min-height:150px;
  padding:10px 11px;
  resize:vertical;
}

.contact-page-v158 .contact-field input:focus,
.contact-page-v158 .contact-field textarea:focus{
  border-color:#8e8e8e;
  background:#fff;
}

.contact-page-v158 .contact-submit{
  display:inline-block;
  margin-top:3px;
  padding:11px 21px;
  border:0;
  border-radius:0;
  background:#333;
  color:#fff;
  font-size:12px;
  line-height:1.3;
  letter-spacing:.025em;
  cursor:pointer;
  transition:background .25s ease;
}

.contact-page-v158 .contact-submit:hover{
  background:#b51f29;
}

.contact-page-v158 .privacy-note{
  margin:15px 0 0;
  color:#777;
  font-size:10.5px !important;
  line-height:1.55;
}

.contact-page-v158 .privacy-note a{
  color:#555;
  text-decoration:none;
  border-bottom:1px solid #b51f29;
}

.contact-page-v158 .form-status{
  margin:0 0 20px;
  padding:11px 13px;
  border:1px solid #b9b9b9;
  background:rgba(255,255,255,.80);
  color:#444;
  font-size:12px;
  line-height:1.5;
}

.contact-page-v158 .form-status-success{
  border-left:3px solid #b51f29;
}


/* ----------------------------------------------------------
   Kontaktdaten – schieben sich über den Hero
   ---------------------------------------------------------- */
.contact-page-v158 .contact-info-section{
  position:relative;
  z-index:4;
  padding:70px 0 76px;
  background:#fff;
  box-shadow:0 -8px 14px rgba(0,0,0,.10);
}

.contact-page-v158 .contact-info-inner{
  width:86%;
  max-width:1320px;
  margin:0 auto;
}

.contact-page-v158 .contact-info-heading h2{
  margin:0;
  color:#333;
  font-size:32px;
  line-height:1.25;
  font-weight:300;
}

.contact-page-v158 .contact-info-heading .contact-red-line{
  margin:15px 0 36px;
}

.contact-page-v158 .contact-info-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.contact-page-v158 .contact-info-grid article{
  min-height:142px;
  padding:27px 29px 30px;
  box-sizing:border-box;
  background:#f5f5f5;
  border:1px solid #dedede;
}

.contact-page-v158 .contact-info-grid article > span{
  display:block;
  margin-bottom:14px;
  color:#888;
  font-size:10px;
  line-height:1.3;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.contact-page-v158 .contact-info-grid p{
  margin:0;
  color:#4d4d4d;
  font-size:14px !important;
  line-height:1.75;
}

.contact-page-v158 .contact-info-grid a{
  color:#333;
  text-decoration:none;
  border-bottom:1px solid transparent;
}

.contact-page-v158 .contact-info-grid a:hover{
  border-bottom-color:#b51f29;
}


/* ----------------------------------------------------------
   Karte full width
   ---------------------------------------------------------- */
.contact-page-v158 .contact-map-section{
  position:relative;
  z-index:4;
  width:100%;
  height:480px;
  margin:0;
  padding:0;
  overflow:hidden;
  background:#ececec;
  border:0;
}

.contact-page-v158 .contact-map-section iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
  filter:grayscale(.12);
}


/* ----------------------------------------------------------
   Responsive
   ---------------------------------------------------------- */
@media(max-width:1050px){
  .contact-page-v158 .contact-form-card{
    width:min(650px,58%);
  }
}

@media(max-width:820px){
  body:has(.contact-page-v158) .site-header{
    box-shadow:0 5px 9px rgba(0,0,0,.15) !important;
  }

  .contact-page-v158 .contact-hero{
    position:relative;
    top:auto;
    height:auto;
    max-height:none;
    min-height:720px;
    padding:48px 6%;
  }

  .contact-page-v158 .contact-form-card{
    width:74%;
  }

  .contact-page-v158 .contact-info-grid{
    grid-template-columns:1fr;
  }

  .contact-page-v158 .contact-info-grid article{
    min-height:0;
  }

  .contact-page-v158 .contact-map-section{
    height:420px;
  }
}

@media(max-width:560px){
  .contact-page-v158 .contact-hero{
    min-height:700px;
    align-items:flex-end;
    padding:32px 5%;
  }

  .contact-page-v158 .contact-form-card{
    width:100%;
    padding:29px 25px 30px;
    background:rgba(255,255,255,.89);
  }

  .contact-page-v158 .contact-card-heading h1{
    font-size:30px;
  }

  .contact-page-v158 .contact-field textarea{
    min-height:135px;
  }

  .contact-page-v158 .contact-info-section{
    padding:52px 0 58px;
  }

  .contact-page-v158 .contact-info-inner{
    width:88%;
  }

  .contact-page-v158 .contact-info-heading h2{
    font-size:27px;
  }

  .contact-page-v158 .contact-map-section{
    height:360px;
  }
}


/* ==========================================================
   V15.9 – Kontaktseite Fullwidth-Korrektur
   Alte .contact-page-Begrenzung vollständig überschreiben
   ========================================================== */

main.contact-page.contact-page-v158,
.contact-page-v158{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}

/* Alle Hauptbereiche über die volle verfügbare Breite */
.contact-page-v158 .contact-hero,
.contact-page-v158 .contact-info-section,
.contact-page-v158 .contact-map-section{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/* Verhindert alte Grid-/Spaltenregeln der bisherigen Kontaktseite */
.contact-page-v158 .contact-hero{
  grid-template-columns:none !important;
}

/* Fullwidth-Karte nochmals absichern */
.contact-page-v158 .contact-map-section,
.contact-page-v158 .contact-map-section iframe{
  width:100% !important;
  max-width:none !important;
}


/* ==========================================================
   V16.1 – Kontaktseite mit lokaler statischer Lagekarte
   ========================================================== */
.contact-page-v158 .contact-map-section{
  position:relative;
  z-index:4;
  width:100%;
  height:auto !important;
  margin:0;
  padding:0;
  overflow:hidden;
  background:#ececec;
  border:0;
}

.contact-page-v158 .contact-static-map{
  display:block;
  width:100%;
  height:auto;
  border:0;
}

.contact-page-v158 .contact-map-links{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:center;
  align-items:center;
  padding:22px 18px 6px;
  background:#fff;
}

.contact-page-v158 .contact-map-link{
  display:inline-block;
  padding:10px 17px;
  background:#333;
  color:#fff;
  text-decoration:none;
  font-size:12px;
  line-height:1.3;
  letter-spacing:.025em;
  transition:background .25s ease;
}

.contact-page-v158 .contact-map-link:hover{
  background:#b51f29;
}

.contact-page-v158 .contact-map-note{
  margin:0;
  padding:0 18px 22px;
  text-align:center;
  background:#fff;
  color:#767676;
  font-size:11px !important;
  line-height:1.6;
}


/* ==========================================================
   V16.2 – Kontaktseite ohne Karte
   ========================================================== */

/* Alte Karten-/Map-Ausgabe sicher deaktivieren */
.contact-page-v158 .contact-map-section,
.contact-page-v158 .contact-static-map,
.contact-page-v158 .contact-map-links,
.contact-page-v158 .contact-map-note{
  display:none !important;
}

/* Dunkler Abschlussblock statt Karte */
.contact-page-v158 .contact-visit-section{
  position:relative;
  z-index:4;
  width:100%;
  margin:0;
  padding:0;
  background:#333;
  color:#fff;
}

.contact-page-v158 .contact-visit-inner{
  width:86%;
  max-width:1320px;
  min-height:265px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr auto;
  gap:70px;
  align-items:center;
  box-sizing:border-box;
}

.contact-page-v158 .contact-visit-kicker{
  display:block;
  margin-bottom:12px;
  color:#aaa;
  font-size:10px;
  line-height:1.3;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.contact-page-v158 .contact-visit-copy h2{
  margin:0;
  color:#fff;
  font-size:34px;
  line-height:1.25;
  font-weight:300;
}

.contact-page-v158 .contact-visit-copy .contact-red-line{
  margin:15px 0 20px;
  background:#c52b35;
}

.contact-page-v158 .contact-visit-copy p{
  margin:0;
  color:#d7d7d7;
  font-size:14px !important;
  line-height:1.72;
}

.contact-page-v158 .contact-visit-links{
  min-width:270px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:15px;
}

.contact-page-v158 .contact-visit-links a{
  color:#fff;
  font-size:13px;
  line-height:1.45;
  text-decoration:none;
  border-bottom:1px solid #b51f29;
  transition:opacity .2s ease;
}

.contact-page-v158 .contact-visit-links a:hover{
  opacity:.72;
}

@media(max-width:820px){
  .contact-page-v158 .contact-visit-inner{
    min-height:0;
    padding:52px 0 56px;
    grid-template-columns:1fr;
    gap:30px;
  }

  .contact-page-v158 .contact-visit-links{
    min-width:0;
  }
}

@media(max-width:560px){
  .contact-page-v158 .contact-visit-inner{
    width:88%;
    padding:45px 0 49px;
  }

  .contact-page-v158 .contact-visit-copy h2{
    font-size:28px;
  }
}


/* ==========================================================
   V16.4 – Kontaktseite reduziert
   ========================================================== */

/* ----------------------------------------------------------
   Formularbox: Bild stärker sichtbar
   ---------------------------------------------------------- */
.contact-page-v158 .contact-form-card{
  width:min(650px,50%);
  padding:40px 46px 38px;
  background:rgba(255,255,255,.70) !important;
  backdrop-filter:blur(1px);
  -webkit-backdrop-filter:blur(1px);
}

/* ----------------------------------------------------------
   Formular: nur feine Unterlinien, keine weißen Eingabeboxen
   ---------------------------------------------------------- */
.contact-page-v158 .contact-field{
  margin-bottom:19px;
}

.contact-page-v158 .contact-field label{
  display:none !important;
}

.contact-page-v158 .contact-field input,
.contact-page-v158 .contact-field textarea{
  width:100%;
  box-sizing:border-box;
  border:0 !important;
  border-bottom:1px solid rgba(55,55,55,.48) !important;
  border-radius:0 !important;
  outline:none;
  background:transparent !important;
  box-shadow:none !important;
  color:#2f2f2f;
  font-family:inherit;
  font-size:14px !important;
  line-height:1.55;
  padding:9px 0 10px !important;
  transition:border-color .2s ease;
}

.contact-page-v158 .contact-field input{
  height:42px;
}

.contact-page-v158 .contact-field textarea{
  min-height:112px !important;
  resize:vertical;
  padding-top:10px !important;
}

.contact-page-v158 .contact-field input::placeholder,
.contact-page-v158 .contact-field textarea::placeholder{
  color:#6f6f6f;
  opacity:1;
}

.contact-page-v158 .contact-field input:focus,
.contact-page-v158 .contact-field textarea:focus{
  border-bottom-color:#b51f29 !important;
  background:transparent !important;
}

.contact-page-v158 .contact-submit{
  margin-top:8px;
}

/* ----------------------------------------------------------
   Kontaktdaten: offen, editorial, ohne graue Innenkarten
   ---------------------------------------------------------- */
.contact-page-v158 .contact-info-section{
  padding:73px 0 80px;
  background:#fff !important;
}

.contact-page-v158 .contact-info-inner{
  width:86%;
  max-width:1320px;
}

.contact-page-v158 .contact-info-heading{
  display:none !important;
}

.contact-page-v158 .contact-info-grid-open{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
}

.contact-page-v158 .contact-info-grid-open article{
  min-height:190px;
  padding:15px 6% 22px !important;
  background:transparent !important;
  border:0 !important;
  box-sizing:border-box;
}

.contact-page-v158 .contact-info-grid-open article:first-child{
  padding-left:0 !important;
}

.contact-page-v158 .contact-info-grid-open article:last-child{
  padding-right:0 !important;
}

.contact-page-v158 .contact-info-grid-open article + article{
  border-left:1px solid #ddddda !important;
}

.contact-page-v158 .contact-info-grid-open h2{
  margin:0;
  color:#333;
  font-size:25px;
  line-height:1.25;
  font-weight:300;
}

.contact-page-v158 .contact-info-grid-open .contact-red-line{
  width:40px;
  margin:13px 0 23px;
}

.contact-page-v158 .contact-info-grid-open p{
  margin:0;
  color:#555;
  font-size:14px !important;
  line-height:1.8;
}

.contact-page-v158 .contact-info-grid-open a{
  color:#333;
  text-decoration:none;
  border-bottom:1px solid transparent;
}

.contact-page-v158 .contact-info-grid-open a:hover{
  border-bottom-color:#b51f29;
}

/* Besuchsbereich entfällt vollständig */
.contact-page-v158 .contact-visit-section{
  display:none !important;
}


/* ----------------------------------------------------------
   Responsive
   ---------------------------------------------------------- */
@media(max-width:820px){
  .contact-page-v158 .contact-form-card{
    width:76%;
    background:rgba(255,255,255,.74) !important;
  }

  .contact-page-v158 .contact-info-grid-open{
    grid-template-columns:1fr;
  }

  .contact-page-v158 .contact-info-grid-open article,
  .contact-page-v158 .contact-info-grid-open article:first-child,
  .contact-page-v158 .contact-info-grid-open article:last-child{
    min-height:0;
    padding:27px 0 30px !important;
  }

  .contact-page-v158 .contact-info-grid-open article + article{
    border-left:0 !important;
    border-top:1px solid #ddddda !important;
  }
}

@media(max-width:560px){
  .contact-page-v158 .contact-form-card{
    width:100%;
    background:rgba(255,255,255,.78) !important;
  }

  .contact-page-v158 .contact-field textarea{
    min-height:105px !important;
  }

  .contact-page-v158 .contact-info-section{
    padding:48px 0 54px;
  }

  .contact-page-v158 .contact-info-grid-open h2{
    font-size:23px;
  }
}


/* ==========================================================
   V16.5 – Seitenübergreifender Feinschliff
   ========================================================== */


/* ----------------------------------------------------------
   LANDINGPAGE – Architektur-Slider langsamer überblenden
   1,5 s Fade; JS-Intervall 4,5 s
   ---------------------------------------------------------- */
.page-home .hb-field-architecture .hb-field-slider .home-slide{
  transition:
    opacity 1.5s ease,
    visibility 1.5s ease !important;
}


/* ----------------------------------------------------------
   PROJEKTDETAIL – Titel links, mit Logo-Flucht + roter Linie
   ---------------------------------------------------------- */
.project-detail-v11 .project-detail-title{
  width:90% !important;
  max-width:var(--content) !important;
  margin:0 auto !important;
  padding:52px 0 54px !important;
  text-align:left !important;
  background:#fff;
}

.project-detail-v11 .project-detail-title h1{
  margin:0 !important;
  text-align:left !important;
}

.project-detail-v11 .project-detail-title h1::after{
  content:"";
  display:block;
  width:54px;
  height:1px;
  margin-top:15px;
  background:#b51f29;
}


/* ----------------------------------------------------------
   GRÖSSERE TEXTBLÖCKE – Blocksatz, letzte Zeile links
   ---------------------------------------------------------- */
.page-home .hb-intro-bottom p,
.page-home .hb-field-description,
.team-page-v142 .team-story-card p,
.services-page-v123 .service-text-inner p,
.festpreis-page-v148 .fp-hero-intro-copy p,
.festpreis-page-v148 .fp-process-grid p,
.festpreis-page-v148 .fp-section-heading > p,
.festpreis-page-v148 .fp-showcase-copy > p{
  text-align:justify !important;
  text-align-last:left !important;
  -webkit-hyphens:auto;
  hyphens:auto;
}


/* ----------------------------------------------------------
   LEISTUNGEN – Mobil immer: Bild/Zitat zuerst, dann Text
   ---------------------------------------------------------- */
@media(max-width:760px){
  .services-page-v123 .service-row{
    display:flex !important;
    flex-direction:column !important;
  }

  .services-page-v123 .service-row .service-image-cell{
    order:1 !important;
    width:100% !important;
  }

  .services-page-v123 .service-row .service-text-cell{
    order:2 !important;
    width:100% !important;
  }
}


/* ----------------------------------------------------------
   FESTPREIS – mobile Heroüberschrift darf umbrechen
   ---------------------------------------------------------- */
@media(max-width:560px){
  .festpreis-page-v148 .fp-hero-card-title h1{
    white-space:normal !important;
    max-width:100%;
  }
}

/* "Wie kann das aussehen?" – Links besser lesbar */
.festpreis-page-v148 .fp-showcase-links a{
  font-size:14px !important;
  line-height:1.55 !important;
}

@media(max-width:560px){
  .festpreis-page-v148 .fp-showcase-links a{
    font-size:13.5px !important;
  }
}


/* ----------------------------------------------------------
   TEAM – mobile weiße Team-/Partnerboxen mittig im Bild
   ---------------------------------------------------------- */
@media(max-width:820px){
  .team-page-v142 .team-story-intro,
  .team-page-v142 .team-story-partner{
    justify-content:center !important;
    align-items:center !important;
  }

  .team-page-v142 .team-story-intro .team-story-card,
  .team-page-v142 .team-story-partner .team-story-card{
    margin-left:auto !important;
    margin-right:auto !important;
  }
}


/* ----------------------------------------------------------
   KONTAKT – keine grauen Trennlinien zwischen Kontaktdaten
   ---------------------------------------------------------- */
.contact-page-v158 .contact-info-grid-open{
  column-gap:6%;
}

.contact-page-v158 .contact-info-grid-open article + article{
  border-left:0 !important;
  border-top:0 !important;
}

@media(max-width:820px){
  .contact-page-v158 .contact-info-grid-open{
    gap:0;
  }

  .contact-page-v158 .contact-info-grid-open article + article{
    border-left:0 !important;
    border-top:0 !important;
  }
}


/* ----------------------------------------------------------
   Projekt-Titel mobil ebenfalls links und sauber eingerückt
   ---------------------------------------------------------- */
@media(max-width:760px){
  .project-detail-v11 .project-detail-title{
    width:90% !important;
    padding:35px 0 38px !important;
  }

  .project-detail-v11 .project-detail-title h1::after{
    width:48px;
    margin-top:12px;
  }
}


/* ==========================================================
   V16.6 – Impressum
   nüchtern, aber in der neuen LEHNES-Typografie
   ========================================================== */

/* Gleiche linke Flucht wie Header / LEHNES-Logo */
.impressum-page-v166{
  width:90% !important;
  max-width:var(--content) !important;
  margin:0 auto !important;
  padding:62px 0 88px !important;
  text-align:left;
}

/* Hauptüberschrift */
.impressum-page-v166 > h1{
  margin:0 0 36px !important;
  color:#333;
  font-size:35px !important;
  line-height:1.2;
  font-weight:300 !important;
  letter-spacing:0;
}

.impressum-page-v166 > h1::after{
  content:"";
  display:block;
  width:54px;
  height:1px;
  margin-top:15px;
  background:#b51f29;
}

/* Inhalt bewusst nicht über die volle Headerbreite ziehen */
.impressum-page-v166 > p,
.impressum-page-v166 > h2{
  max-width:850px;
}

/* Rechtstexte etwas größer und ruhiger als bisher */
.impressum-page-v166 > p{
  margin:0 0 24px !important;
  color:#505050 !important;
  font-size:14.5px !important;
  line-height:1.82 !important;
  font-weight:300;
  text-align:left;
}

/* Sachliche Zwischenüberschriften */
.impressum-page-v166 > h2{
  margin:48px 0 18px !important;
  color:#333;
  font-size:22px !important;
  line-height:1.35;
  font-weight:400 !important;
}

/* Untergliederungen innerhalb der Rechtlichen Hinweise */
.impressum-page-v166 p strong{
  display:inline-block;
  margin-bottom:2px;
  color:#3d3d3d;
  font-weight:500;
}

/* Mail-Link dezent, nicht wie ein CTA */
.impressum-page-v166 a{
  color:#333;
  text-decoration:none;
  border-bottom:1px solid #bdbdbd;
  transition:border-color .2s ease;
}

.impressum-page-v166 a:hover{
  border-bottom-color:#b51f29;
}


/* Tablet */
@media(max-width:980px){
  .impressum-page-v166{
    width:90% !important;
    max-width:none !important;
    padding:54px 0 76px !important;
  }

  .impressum-page-v166 > p,
  .impressum-page-v166 > h2{
    max-width:820px;
  }
}

/* Mobil */
@media(max-width:760px){
  .impressum-page-v166{
    width:88% !important;
    padding:44px 0 62px !important;
  }

  .impressum-page-v166 > h1{
    margin-bottom:30px !important;
    font-size:29px !important;
  }

  .impressum-page-v166 > h1::after{
    width:48px;
    margin-top:12px;
  }

  .impressum-page-v166 > h2{
    margin-top:39px !important;
    font-size:19.5px !important;
  }

  .impressum-page-v166 > p{
    margin-bottom:21px !important;
    font-size:13.5px !important;
    line-height:1.76 !important;
  }
}


/* ==========================================================
   V16.7 – Vogelhaus / Immobilienberatung Bildausschnitt links
   ========================================================== */

/* Landingpage:
   relevanter Bildinhalt liegt links, daher nicht mehr mittig croppen */
.page-home .hb-field-realestate img,
.page-home .hb-field-immobilien img,
.page-home .hb-field-immobilienberatung img{
  object-position:left center !important;
}

/* Leistungen:
   Immobilienberatung / vogelhaus.jpg links ausrichten */
.services-page-v123 .service-row-realestate .service-row-image{
  object-position:left center !important;
}


/* Exakte Landingpage-Zuordnung über Ziel-Link */
.page-home .hb-fields-v132 .hb-field[href*="immobilienberatung"] > img{
  object-position:left center !important;
}


/* ==========================================================
   V16.8 – Landingpage: gestalten / prüfen / bewerten
   ========================================================== */

.page-home .hb-intro h1 .hb-verb{
  display:inline-block;
  margin-left:.18em;
  color:#b51f29;
  font-family:"Segoe Script","Bradley Hand","Brush Script MT",cursive;
  font-size:.64em;
  line-height:1;
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
  white-space:nowrap;
  transform:rotate(-2deg) translateY(-.03em);
}

/* Falls der vorhandene H1 enge Zeilenhöhen verwendet */
.page-home .hb-intro h1{
  line-height:1.12;
}

@media(max-width:760px){
  .page-home .hb-intro h1 .hb-verb{
    margin-left:.12em;
    font-size:.61em;
  }
}


/* ==========================================================
   V16.9 – Landingpage weiter reduziert
   ========================================================== */

/* Standort-Kicker und alter Teamlink sind aus dem Markup entfernt.
   Intro bekommt ohne Kicker etwas mehr Luft nach oben. */
.page-home .hb-intro{
  padding-top:58px !important;
}

/* Rote Verben: kräftiger Marker-/Edding-Charakter statt feiner Handschrift */
.page-home .hb-intro h1 .hb-verb{
  font-family:"Segoe Print","Marker Felt","Comic Sans MS",cursive !important;
  font-size:.61em !important;
  font-weight:700 !important;
  letter-spacing:-.055em !important;
  line-height:.92 !important;
  color:#b51f29 !important;
  text-transform:lowercase !important;
  transform:rotate(-3deg) skewX(-5deg) translateY(-.03em) !important;
  text-shadow:
    .35px 0 0 currentColor,
    -.35px 0 0 currentColor,
    0 .35px 0 currentColor !important;
}

/* Der alte untere Statementblock wurde vollständig entfernt. */
.page-home .hb-editorial-statement{
  display:none !important;
}

/* Längerer Introtext bleibt ruhig und gut lesbar */
.page-home .hb-intro-bottom p{
  max-width:720px;
}

@media(max-width:760px){
  .page-home .hb-intro{
    padding-top:42px !important;
  }

  .page-home .hb-intro h1 .hb-verb{
    font-size:.58em !important;
    letter-spacing:-.06em !important;
  }
}


/* Landingpage: rote Verben mit echter Permanent-Marker-Schrift */
.page-home .hb-intro h1 .hb-verb{
  font-family:"Permanent Marker", cursive !important;
  font-size:.61em !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  line-height:.95 !important;
  color:#b51f29 !important;
  text-transform:lowercase !important;
  transform:rotate(-2deg) translateY(-.02em) !important;
  text-shadow:none !important;
}

@media(max-width:760px){
  .page-home .hb-intro h1 .hb-verb{
    font-size:.58em !important;
  }
}


/* ==========================================================
   V17.2 – Landingpage Claim ruhiger / typografisch
   ========================================================== */

.page-home .hb-intro h1 .hb-verb{
  display:inline !important;
  margin-left:.04em !important;
  color:#858585 !important;
  font-family:"Helvetica Neue",Arial,sans-serif !important;
  font-size:.62em !important;
  line-height:1 !important;
  font-weight:300 !important;
  letter-spacing:.005em !important;
  text-transform:lowercase !important;
  transform:none !important;
  text-shadow:none !important;
  white-space:nowrap;
}

@media(max-width:760px){
  .page-home .hb-intro h1 .hb-verb{
    font-size:.60em !important;
  }
}


/* ==========================================================
   V17.3 – Landing Claim: Verben gleich groß + Block nach rechts
   ========================================================== */

/* Kicker + Hauptclaim gemeinsam etwas weiter nach rechts.
   Der erklärende Absatz darunter bleibt in seiner bisherigen Position. */
.page-home .hb-intro > .hb-kicker,
.page-home .hb-intro > h1{
  position:relative;
  left:4.5%;
}

/* Verben gleich groß wie die Hauptbegriffe, aber dünner und heller */
.page-home .hb-intro h1 .hb-verb{
  display:inline !important;
  margin-left:.025em !important;
  color:#8c8c8c !important;
  font-family:"Helvetica Neue",Arial,sans-serif !important;
  font-size:1em !important;
  line-height:inherit !important;
  font-weight:200 !important;
  letter-spacing:-.01em !important;
  text-transform:lowercase !important;
  transform:none !important;
  text-shadow:none !important;
  white-space:nowrap;
}

@media(max-width:980px){
  .page-home .hb-intro > .hb-kicker,
  .page-home .hb-intro > h1{
    left:3%;
  }
}

@media(max-width:760px){
  .page-home .hb-intro > .hb-kicker,
  .page-home .hb-intro > h1{
    left:0;
  }

  .page-home .hb-intro h1 .hb-verb{
    font-size:1em !important;
    font-weight:200 !important;
  }
}


/* ==========================================================
   V17.4 – Landingpage: Verben noch leichter / schlanker
   ========================================================== */
.page-home .hb-intro h1 .hb-verb{
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif !important;
  font-size:1em !important;
  font-weight:100 !important;
  color:#9a9a9a !important;
  letter-spacing:-.018em !important;
  opacity:.92;
}


/* ==========================================================
   V17.5 – Landingpage Verben sichtbar dünner
   ========================================================== */
.page-home .hb-intro h1 .hb-verb,
.page-home .hb-intro > h1 .hb-verb,
.page-home .hb-intro h1 span.hb-verb{
  font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size:1em !important;
  font-style:normal !important;
  font-weight:100 !important;
  color:#9b9b9b !important;
  letter-spacing:-0.02em !important;
  text-transform:lowercase !important;
  opacity:0.95 !important;
  text-shadow:none !important;
  -webkit-text-stroke:0 !important;
  font-variation-settings:"wght" 100 !important;
}

/* Hauptbegriffe ausdrücklich kräftiger lassen */
.page-home .hb-intro h1{
  font-weight:400 !important;
}


/* ==========================================================
   V17.6 – Landingpage: echter Light-Schnitt für die Verben
   Windows: Segoe UI Light statt künstlichem font-weight 100
   ========================================================== */
.page-home .hb-intro h1 .hb-verb,
.page-home .hb-intro > h1 .hb-verb,
.page-home .hb-intro h1 span.hb-verb{
  font-family:"Segoe UI Light","Segoe UI",Arial,sans-serif !important;
  font-size:1em !important;
  font-style:normal !important;
  font-weight:300 !important;
  color:#9b9b9b !important;
  letter-spacing:-.025em !important;
  line-height:inherit !important;
  text-transform:lowercase !important;
  opacity:.94 !important;
  text-shadow:none !important;
  -webkit-text-stroke:0 !important;
  font-synthesis:none !important;
}


/* ==========================================================
   V17.7 – Landingpage Kicker zum Introtext + Verben etwas kleiner
   ========================================================== */

/* Alte Rechtsverschiebung gilt nur noch für den großen Claim */
.page-home .hb-intro > .hb-kicker{
  left:auto !important;
}

/* Berufszeile jetzt direkt beim erklärenden Text */
.page-home .hb-intro-copy-heading{
  margin:0 0 18px;
}

.page-home .hb-intro-copy-heading .hb-kicker{
  margin:0 0 11px !important;
  color:#8f8f8f;
  font-size:10px !important;
  line-height:1.4;
  letter-spacing:.10em;
  text-transform:none;
}

.page-home .hb-intro-red-line{
  width:46px;
  height:1px;
  background:#b51f29;
}

/* Light-Verben beibehalten, aber etwas kleiner als der Hauptbegriff */
.page-home .hb-intro h1 .hb-verb,
.page-home .hb-intro > h1 .hb-verb,
.page-home .hb-intro h1 span.hb-verb{
  font-size:.88em !important;
}

@media(max-width:760px){
  .page-home .hb-intro h1 .hb-verb,
  .page-home .hb-intro > h1 .hb-verb,
  .page-home .hb-intro h1 span.hb-verb{
    font-size:.86em !important;
  }

  .page-home .hb-intro-copy-heading{
    margin-bottom:16px;
  }
}


/* ==========================================================
   V17.8 – Landingpage oberer Claim größer + mehr Abstand Header
   ========================================================== */

/* Mehr Luft zwischen Header und erstem großen Claim */
.page-home .hb-intro{
  padding-top:82px !important;
}

/* Hauptclaim etwas größer */
.page-home .hb-intro > h1{
  font-size:clamp(48px,4.1vw,66px) !important;
  line-height:1.04 !important;
  margin-top:0 !important;
}

/* Verben proportional etwas kleiner als der Hauptbegriff */
.page-home .hb-intro h1 .hb-verb,
.page-home .hb-intro > h1 .hb-verb,
.page-home .hb-intro h1 span.hb-verb{
  font-size:.87em !important;
}

@media(max-width:980px){
  .page-home .hb-intro{
    padding-top:68px !important;
  }

  .page-home .hb-intro > h1{
    font-size:clamp(43px,5.5vw,58px) !important;
  }
}

@media(max-width:760px){
  .page-home .hb-intro{
    padding-top:54px !important;
  }

  .page-home .hb-intro > h1{
    font-size:clamp(36px,9vw,48px) !important;
    line-height:1.06 !important;
  }

  .page-home .hb-intro h1 .hb-verb,
  .page-home .hb-intro > h1 .hb-verb,
  .page-home .hb-intro h1 span.hb-verb{
    font-size:.85em !important;
  }
}


/* ==========================================================
   V17.9 – Landingpage: mehr Abstand zum Header
   ========================================================== */
.page-home .hb-intro{
  padding-top:116px !important;
}

@media(max-width:980px){
  .page-home .hb-intro{
    padding-top:92px !important;
  }
}

@media(max-width:760px){
  .page-home .hb-intro{
    padding-top:68px !important;
  }
}


/* ==========================================================
   V18.0 – Landingpage: noch mehr Abstand zum Header
   ========================================================== */
.page-home .hb-intro{
  padding-top:154px !important;
}

@media(max-width:980px){
  .page-home .hb-intro{
    padding-top:118px !important;
  }
}

@media(max-width:760px){
  .page-home .hb-intro{
    padding-top:84px !important;
  }
}


/* ==========================================================
   V18.1 – Landingpage: Desktop/Tablet nochmals mehr Abstand
   Mobil bleibt unverändert
   ========================================================== */
.page-home .hb-intro{
  padding-top:231px !important;
}

@media(max-width:980px){
  .page-home .hb-intro{
    padding-top:177px !important;
  }
}

@media(max-width:760px){
  .page-home .hb-intro{
    padding-top:84px !important;
  }
}


/* ==========================================================
   V18.2 – Landingpage: Überlappung Claim / Intro verhindern
   ========================================================== */

/* Auf mittleren Desktop-/Tabletbreiten früher umschalten,
   damit Claim links und Einleitung rechts sich nicht überlagern. */
@media (max-width: 1380px){
  .page-home .hb-intro{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) minmax(320px, 0.92fr) !important;
    column-gap:88px !important;
    align-items:start !important;
  }

  .page-home .hb-intro > h1{
    max-width:7.3em !important;
  }

  .page-home .hb-intro-bottom{
    min-width:0 !important;
  }
}

/* Noch etwas schmaler: sauber untereinander statt zu eng nebeneinander */
@media (max-width: 1180px){
  .page-home .hb-intro{
    display:block !important;
    padding-top:177px !important;
  }

  .page-home .hb-intro > h1{
    left:0 !important;
    max-width:none !important;
    margin:0 0 44px !important;
  }

  .page-home .hb-intro-bottom{
    max-width:760px !important;
  }
}

/* Mobil / kleines Tablet wie bisher */
@media (max-width: 760px){
  .page-home .hb-intro{
    padding-top:84px !important;
  }

  .page-home .hb-intro > h1{
    margin-bottom:30px !important;
  }

  .page-home .hb-intro-bottom{
    max-width:none !important;
  }
}


/* ==========================================================
   V18.3 – Landingpage: Claim + Intro immer untereinander
   Architektur nur noch mit statischem mix.jpg
   ========================================================== */

/* Oberen Bereich auf allen Desktop-/Tabletbreiten untereinander */
.page-home .hb-intro{
  display:block !important;
  grid-template-columns:none !important;
  column-gap:0 !important;
}

/* Claim bleibt großzügig eingerückt */
.page-home .hb-intro > h1{
  position:relative;
  left:4.5% !important;
  max-width:none !important;
  margin:0 0 58px !important;
}

/* Introtext folgt darunter, ebenfalls in klarer linker Flucht */
.page-home .hb-intro-bottom{
  display:block !important;
  width:58% !important;
  max-width:760px !important;
  margin:0 0 0 4.5% !important;
  padding:0 !important;
}

.page-home .hb-intro-copy-heading{
  margin-bottom:18px;
}

.page-home .hb-intro-bottom p{
  max-width:none !important;
}

/* Architektur-Feld: statisches Bild statt Slideshow */
.page-home .hb-field-architecture > img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:cover !important;
  object-position:center center !important;
}

/* Tablet */
@media(max-width:1180px){
  .page-home .hb-intro > h1{
    left:3% !important;
    margin-bottom:48px !important;
  }

  .page-home .hb-intro-bottom{
    width:70% !important;
    max-width:760px !important;
    margin-left:3% !important;
  }
}

/* Mobil bleibt in der bereits gewünschten Darstellung */
@media(max-width:760px){
  .page-home .hb-intro > h1{
    left:0 !important;
    margin-bottom:30px !important;
  }

  .page-home .hb-intro-bottom{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
  }
}


/* ==========================================================
   V18.4 – Landingpage
   - Abstand eine Stufe zurück
   - Intro weiterhin untereinander
   - Architektur wieder gezielte Thumbnail-Slideshow
   ========================================================== */

/* Abstand zum Header: zurück auf V18.0-Niveau */
.page-home .hb-intro{
  padding-top:154px !important;
}

@media(max-width:980px){
  .page-home .hb-intro{
    padding-top:118px !important;
  }
}

@media(max-width:760px){
  .page-home .hb-intro{
    padding-top:84px !important;
  }
}

/* Berufszeile ist aus dem Markup entfernt */
.page-home .hb-intro-copy-heading{
  display:none !important;
}

/* Die in V18.3 eingeführte Regel für das statische Architektur-Bild
   darf den Slider nicht beeinflussen. */
.page-home .hb-field-architecture > img{
  position:static !important;
}

/* Slideshow weiterhin vollständig in der Architektur-Kachel */
.page-home .hb-field-architecture .hb-field-slider{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  overflow:hidden !important;
}

.page-home .hb-field-architecture .hb-field-slider .home-slide{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  opacity:0;
  visibility:hidden;
  transition:opacity 1.5s ease, visibility 1.5s ease !important;
}

.page-home .hb-field-architecture .hb-field-slider .home-slide.is-active{
  opacity:1;
  visibility:visible;
}

.page-home .hb-field-architecture .hb-field-slider .home-slide img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:cover !important;
  object-position:center center !important;
  transform:none !important;
}


/* ==========================================================
   V18.5 – Landingpage Feinschliff
   ========================================================== */

/* Oberen Claim wieder etwas weiter nach oben */
.page-home .hb-intro{
  padding-top:130px !important;
}

@media(max-width:980px){
  .page-home .hb-intro{
    padding-top:100px !important;
  }
}

@media(max-width:760px){
  .page-home .hb-intro{
    padding-top:76px !important;
  }
}

/* Kleiner roter Strich wieder vor dem erklärenden Text */
.page-home .hb-intro-bottom > .hb-intro-red-line{
  display:block !important;
  width:46px;
  height:1px;
  margin:0 0 22px;
  background:#b51f29;
}


/* ==========================================================
   V18.6 – Sammelanpassungen
   ========================================================== */

/* ----------------------------------------------------------
   LANDINGPAGE – Verben ohne Punkt, etwas weiter gespationiert
   ---------------------------------------------------------- */
.page-home .hb-intro h1 .hb-verb,
.page-home .hb-intro > h1 .hb-verb,
.page-home .hb-intro h1 span.hb-verb{
  margin-left:.14em !important;
  letter-spacing:.035em !important;
}


/* ----------------------------------------------------------
   PROJEKT-LIGHTBOX MOBIL – Fullscreen Viewer
   Bildfläche füllt den gesamten Viewport, Bedienelemente liegen darüber.
   ---------------------------------------------------------- */
@media(max-width:760px){
  .lightbox,
  .project-detail-v11 + .lightbox{
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    height:100vh !important;
    height:100dvh !important;
    margin:0 !important;
    padding:0 !important;
    background:#000 !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:hidden !important;
  }

  .lightbox img,
  .project-detail-v11 + .lightbox img{
    display:block !important;
    width:100vw !important;
    height:100vh !important;
    height:100dvh !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    object-fit:contain !important;
    object-position:center center !important;
  }

  .lightbox .lb-close,
  .lightbox .lb-prev,
  .lightbox .lb-next{
    z-index:3 !important;
    color:#fff !important;
    text-shadow:0 1px 5px rgba(0,0,0,.75);
  }

  .lightbox .lb-close{
    top:max(16px, env(safe-area-inset-top)) !important;
    right:18px !important;
    width:46px;
    height:46px;
    font-size:38px !important;
    line-height:1;
  }

  .lightbox .lb-prev,
  .lightbox .lb-next{
    top:50% !important;
    width:48px;
    height:64px;
    font-size:54px !important;
  }

  .lightbox .lb-prev{
    left:8px !important;
  }

  .lightbox .lb-next{
    right:8px !important;
  }
}


/* ----------------------------------------------------------
   TEAM – Mobil immer zwei Personen nebeneinander
   ---------------------------------------------------------- */
@media(max-width:820px){
  .team-page-v142 .team-pairs{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }
}

@media(max-width:520px){
  .team-page-v142 .team-pairs{
    width:94% !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
  }

  .team-page-v142 .team-copy{
    padding:16px 12px 18px !important;
  }

  .team-page-v142 .team-copy h2{
    font-size:13px !important;
    letter-spacing:.035em !important;
  }

  .team-page-v142 .team-copy .team-qualifications,
  .team-page-v142 .team-copy .team-qualification{
    font-size:10px !important;
    line-height:1.32 !important;
  }
}


/* ----------------------------------------------------------
   FESTPREIS – Hero stärker als Bild wirken lassen
   ---------------------------------------------------------- */
.festpreis-page-v148 .fp-hero{
  min-height:680px !important;
  height:calc(100vh - 92px) !important;
  max-height:860px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  padding:60px 7% !important;
}

.festpreis-page-v148 .fp-hero-card-title{
  width:min(820px,72%) !important;
  padding:34px 42px 36px !important;
  background:rgba(255,255,255,.78) !important;
  backdrop-filter:blur(1px);
  -webkit-backdrop-filter:blur(1px);
}

/* "Architektur ..." wie Hauptbegriff auf der Landingpage */
.festpreis-page-v148 .fp-hero-card-title h1{
  margin:0 !important;
  color:#2f2f2f !important;
  font-family:"Helvetica Neue",Arial,sans-serif !important;
  font-size:clamp(42px,4vw,62px) !important;
  line-height:1.04 !important;
  font-weight:400 !important;
  letter-spacing:-.03em !important;
  white-space:normal !important;
}

/* "Wir liefern ..." wie Light-Verb auf der Landingpage */
.festpreis-page-v148 .fp-hero-card-title h2{
  margin:7px 0 0 !important;
  color:#9b9b9b !important;
  font-family:"Segoe UI Light","Segoe UI",Arial,sans-serif !important;
  font-size:clamp(36px,3.5vw,54px) !important;
  line-height:1.06 !important;
  font-weight:300 !important;
  letter-spacing:.025em !important;
}

.festpreis-page-v148 .fp-hero-card-title .fp-red-line{
  width:54px;
  margin:24px 0 0 !important;
}

/* Text bewusst als eigene weiße Zeile unter dem Hero */
.festpreis-page-v148 .fp-hero-copy-row{
  position:relative;
  z-index:4;
  width:100%;
  background:#fff;
  padding:62px 7% 68px;
  box-sizing:border-box;
  box-shadow:0 -8px 14px rgba(0,0,0,.08);
}

.festpreis-page-v148 .fp-hero-copy-row .fp-hero-intro-copy{
  width:86%;
  max-width:930px;
  margin:0 auto 0 0;
}

.festpreis-page-v148 .fp-hero-copy-row .fp-hero-intro-copy p{
  margin:0 0 16px;
  color:#505050;
  font-size:14px !important;
  line-height:1.78 !important;
}

.festpreis-page-v148 .fp-hero-copy-row .fp-hero-intro-copy strong{
  display:block;
  margin-top:23px;
  color:#333;
  font-size:14px !important;
  line-height:1.5;
  font-weight:500;
}

@media(max-width:820px){
  .festpreis-page-v148 .fp-hero{
    min-height:620px !important;
    height:auto !important;
    padding:70px 6% !important;
  }

  .festpreis-page-v148 .fp-hero-card-title{
    width:88% !important;
    padding:30px 32px 32px !important;
  }

  .festpreis-page-v148 .fp-hero-card-title h1{
    font-size:clamp(34px,7vw,48px) !important;
  }

  .festpreis-page-v148 .fp-hero-card-title h2{
    font-size:clamp(29px,6vw,42px) !important;
  }

  .festpreis-page-v148 .fp-hero-copy-row{
    padding:48px 7% 54px;
  }

  .festpreis-page-v148 .fp-hero-copy-row .fp-hero-intro-copy{
    width:100%;
    max-width:none;
  }
}

@media(max-width:560px){
  .festpreis-page-v148 .fp-hero{
    min-height:540px !important;
    padding:52px 5% !important;
  }

  .festpreis-page-v148 .fp-hero-card-title{
    width:94% !important;
    padding:25px 24px 27px !important;
  }

  .festpreis-page-v148 .fp-hero-card-title h1{
    font-size:clamp(30px,9vw,40px) !important;
    line-height:1.06 !important;
  }

  .festpreis-page-v148 .fp-hero-card-title h2{
    font-size:clamp(25px,7.5vw,34px) !important;
    letter-spacing:.018em !important;
  }

  .festpreis-page-v148 .fp-hero-copy-row{
    padding:40px 6% 45px;
  }
}


/* ----------------------------------------------------------
   IMPRESSUM – zweite Gesellschaft ruhig absetzen
   ---------------------------------------------------------- */
.impressum-page-v166 > h2{
  scroll-margin-top:110px;
}


/* ==========================================================
   V18.7 – Korrekturen Team / Festpreis / Impressum
   ========================================================== */

/* ----------------------------------------------------------
   TEAM MOBIL – zweispaltig wirklich erzwingen
   ältere body.page-inner-Regeln haben zuvor auf 1 Spalte gesetzt
   ---------------------------------------------------------- */
@media(max-width:820px){
  body.page-inner .team-page-v142 .team-pairs,
  body .team-page-v142 .team-pairs,
  .team-page-v142 .team-members-section .team-pairs{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }
}

@media(max-width:520px){
  body.page-inner .team-page-v142 .team-pairs,
  body .team-page-v142 .team-pairs,
  .team-page-v142 .team-members-section .team-pairs{
    width:94% !important;
    max-width:none !important;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
  }

  .team-page-v142 .person-pair{
    min-width:0 !important;
  }

  .team-page-v142 .team-photo{
    width:100% !important;
  }
}


/* ----------------------------------------------------------
   FESTPREIS – Titelkachel kleiner und ins untere Drittel
   ---------------------------------------------------------- */
.festpreis-page-v148 .fp-hero{
  align-items:flex-end !important;
  padding:60px 7% 72px !important;
}

.festpreis-page-v148 .fp-hero-card-title{
  width:min(660px,62%) !important;
  padding:27px 34px 29px !important;
  background:rgba(255,255,255,.78) !important;
}

/* Hauptzeile kleiner als in V18.6 */
.festpreis-page-v148 .fp-hero-card-title h1{
  font-size:clamp(32px,3.2vw,46px) !important;
  line-height:1.06 !important;
}

/* Light-Zeile ebenfalls kleiner */
.festpreis-page-v148 .fp-hero-card-title h2{
  margin-top:6px !important;
  font-size:clamp(27px,2.75vw,39px) !important;
  line-height:1.08 !important;
}

.festpreis-page-v148 .fp-hero-card-title .fp-red-line{
  margin-top:19px !important;
}

@media(max-width:820px){
  .festpreis-page-v148 .fp-hero{
    align-items:flex-end !important;
    padding:62px 6% 54px !important;
  }

  .festpreis-page-v148 .fp-hero-card-title{
    width:82% !important;
    padding:25px 28px 27px !important;
  }

  .festpreis-page-v148 .fp-hero-card-title h1{
    font-size:clamp(29px,5.6vw,38px) !important;
  }

  .festpreis-page-v148 .fp-hero-card-title h2{
    font-size:clamp(24px,4.9vw,32px) !important;
  }
}

@media(max-width:560px){
  .festpreis-page-v148 .fp-hero{
    align-items:flex-end !important;
    padding:48px 5% 38px !important;
  }

  .festpreis-page-v148 .fp-hero-card-title{
    width:92% !important;
    padding:22px 22px 24px !important;
  }

  .festpreis-page-v148 .fp-hero-card-title h1{
    font-size:clamp(26px,7.3vw,34px) !important;
  }

  .festpreis-page-v148 .fp-hero-card-title h2{
    font-size:clamp(21px,6.2vw,28px) !important;
  }
}


/* ----------------------------------------------------------
   IMPRESSUM – nüchterne Unterüberschriften
   ---------------------------------------------------------- */
.impressum-page-v166 > h2{
  margin-top:40px !important;
}

.impressum-page-v166 > h1 + h2{
  margin-top:0 !important;
}


/* ==========================================================
   V18.8 – Festpreis Hero Typografie neu
   ========================================================== */

/* Im Hero nur noch die dreizeilige Idee-Komposition */
.festpreis-page-v148 .fp-hero-card-title h1{
  margin:0 !important;
  font-size:inherit !important;
  line-height:1 !important;
  letter-spacing:0 !important;
}

.festpreis-page-v148 .fp-hero-card-title .fp-hero-strong{
  display:inline-block;
  color:#2f2f2f !important;
  font-family:"Helvetica Neue",Arial,sans-serif !important;
  font-size:clamp(32px,3.2vw,46px) !important;
  line-height:1.04 !important;
  font-weight:400 !important;
  letter-spacing:-.03em !important;
}

.festpreis-page-v148 .fp-hero-card-title .fp-hero-light{
  display:inline-block;
  margin:.10em 0 .12em !important;
  color:#7f7f7f !important;
  font-family:"Segoe UI Light","Segoe UI",Arial,sans-serif !important;
  font-size:clamp(25px,2.35vw,34px) !important;
  line-height:1.06 !important;
  font-weight:300 !important;
  letter-spacing:.018em !important;
}

/* Die weiße Textzeile bekommt jetzt ihre eigene Überschrift */
.festpreis-page-v148 .fp-hero-copy-head{
  width:86%;
  max-width:930px;
  margin:0 auto 26px 0;
}

.festpreis-page-v148 .fp-hero-copy-head h2{
  margin:0 !important;
  color:#8b8b8b !important;
  font-family:"Segoe UI Light","Segoe UI",Arial,sans-serif !important;
  font-size:clamp(28px,2.7vw,40px) !important;
  line-height:1.08 !important;
  font-weight:300 !important;
  letter-spacing:.02em !important;
}

.festpreis-page-v148 .fp-hero-copy-head .fp-red-line{
  width:54px;
  margin:16px 0 0 !important;
}

@media(max-width:820px){
  .festpreis-page-v148 .fp-hero-card-title .fp-hero-strong{
    font-size:clamp(29px,5.6vw,38px) !important;
  }

  .festpreis-page-v148 .fp-hero-card-title .fp-hero-light{
    font-size:clamp(22px,4.3vw,29px) !important;
  }

  .festpreis-page-v148 .fp-hero-copy-head{
    width:100%;
    max-width:none;
    margin-bottom:22px;
  }

  .festpreis-page-v148 .fp-hero-copy-head h2{
    font-size:clamp(24px,4.8vw,32px) !important;
  }
}

@media(max-width:560px){
  .festpreis-page-v148 .fp-hero-card-title .fp-hero-strong{
    font-size:clamp(26px,7.3vw,34px) !important;
  }

  .festpreis-page-v148 .fp-hero-card-title .fp-hero-light{
    font-size:clamp(20px,5.4vw,25px) !important;
    letter-spacing:.012em !important;
  }

  .festpreis-page-v148 .fp-hero-copy-head{
    margin-bottom:18px;
  }

  .festpreis-page-v148 .fp-hero-copy-head h2{
    font-size:clamp(21px,6vw,28px) !important;
  }
}


/* ==========================================================
   V18.9 – Festpreis Hero einheitliche Typografie / passende Box
   ========================================================== */

/* Die halbtransparente Kachel richtet sich nach dem tatsächlichen Textinhalt.
   Dadurch ist rechts derselbe Innenabstand wie links, oben und unten. */
.festpreis-page-v148 .fp-hero-card-title{
  width:max-content !important;
  max-width:86% !important;
  box-sizing:border-box !important;
  padding:34px 38px !important;
  background:rgba(255,255,255,.78) !important;
}

/* Alle drei Zeilen exakt in einer Schriftoptik wie der große Landingpage-Claim */
.festpreis-page-v148 .fp-hero-card-title h1{
  margin:0 !important;
  padding:0 !important;
  font-size:inherit !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  white-space:nowrap !important;
}

.festpreis-page-v148 .fp-hero-card-title .fp-hero-line{
  display:inline-block;
  color:#2f2f2f !important;
  font-family:"Helvetica Neue",Arial,sans-serif !important;
  font-size:clamp(48px,4.1vw,66px) !important;
  line-height:1.05 !important;
  font-weight:400 !important;
  letter-spacing:-.03em !important;
  white-space:nowrap !important;
}

/* Tablet */
@media(max-width:980px){
  .festpreis-page-v148 .fp-hero-card-title{
    max-width:88% !important;
    padding:31px 34px !important;
  }

  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line{
    font-size:clamp(43px,5.5vw,58px) !important;
  }
}

/* Mobil */
@media(max-width:560px){
  .festpreis-page-v148 .fp-hero-card-title{
    width:max-content !important;
    max-width:92% !important;
    padding:25px 26px !important;
  }

  .festpreis-page-v148 .fp-hero-card-title h1{
    white-space:normal !important;
  }

  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line{
    font-size:clamp(32px,8.4vw,43px) !important;
    line-height:1.07 !important;
  }
}


/* ==========================================================
   V19.0 – Festpreis: mittlere Hero-Zeile wieder Light
   ========================================================== */

/* Architektur / Idee bleiben wie zuvor */
.festpreis-page-v148 .fp-hero-card-title .fp-hero-line-strong{
  color:#2f2f2f !important;
  font-family:"Helvetica Neue",Arial,sans-serif !important;
  font-size:clamp(48px,4.1vw,66px) !important;
  line-height:1.05 !important;
  font-weight:400 !important;
  letter-spacing:-.03em !important;
}

/* "beginnt mit einer":
   dünn, hellgrau und proportional kleiner,
   damit die Zeile optisch etwa gleich breit wie "Architektur" ist. */
.festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light{
  color:#9a9a9a !important;
  font-family:"Segoe UI Light","Segoe UI",Arial,sans-serif !important;
  font-size:clamp(33px,2.82vw,45px) !important;
  line-height:1.08 !important;
  font-weight:300 !important;
  letter-spacing:.012em !important;
}

/* Tablet */
@media(max-width:980px){
  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-strong{
    font-size:clamp(43px,5.5vw,58px) !important;
  }

  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light{
    font-size:clamp(30px,3.82vw,40px) !important;
  }
}

/* Mobil */
@media(max-width:560px){
  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-strong{
    font-size:clamp(32px,8.4vw,43px) !important;
  }

  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light{
    font-size:clamp(22px,5.78vw,30px) !important;
  }
}


/* ==========================================================
   V19.1 – Festpreis: mittlere Hero-Zeile feiner abgestimmt
   ========================================================== */

.festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light{
  color:#858585 !important;
  font-size:clamp(30px,2.55vw,41px) !important;
}

@media(max-width:980px){
  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light{
    font-size:clamp(27px,3.45vw,36px) !important;
  }
}

@media(max-width:560px){
  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light{
    font-size:clamp(20px,5.15vw,27px) !important;
  }
}


/* ==========================================================
   V19.2 – Festpreis: Fluchten + Überschrift weiße Box
   ========================================================== */

/* HERO:
   linke Kante der weißen Titelkachel exakt auf die Logo-/Header-Flucht:
   Header = 90% Breite, max. 1080 px */
.festpreis-page-v148 .fp-hero{
  padding-left:0 !important;
  padding-right:0 !important;
}

.festpreis-page-v148 .fp-hero-card-title{
  margin-left:max(5%, calc((100% - 1080px) / 2)) !important;
  margin-right:0 !important;
}


/* WEISSE TEXTBOX:
   Überschrift und kompletter Textblock beginnen exakt auf derselben
   linken Flucht wie "Die Idee beginnt hier.":
   .fp-inner = 86% Breite, max. 1320 px */
.festpreis-page-v148 .fp-hero-copy-row{
  padding-left:0 !important;
  padding-right:0 !important;
}

.festpreis-page-v148 .fp-hero-copy-head,
.festpreis-page-v148 .fp-hero-copy-row .fp-hero-intro-copy{
  margin-left:max(7%, calc((100% - 1320px) / 2)) !important;
  margin-right:0 !important;
}


/* "Wir liefern sie zum Festpreis!" exakt in der Überschriftenoptik
   von "Die Idee beginnt hier." */
.festpreis-page-v148 .fp-hero-copy-head h2{
  margin:0 !important;
  color:#333 !important;
  font-family:"Helvetica Neue",Arial,sans-serif !important;
  font-size:34px !important;
  line-height:1.25 !important;
  font-weight:300 !important;
  letter-spacing:0 !important;
}

.festpreis-page-v148 .fp-hero-copy-head .fp-red-line{
  width:54px !important;
  height:1px !important;
  margin:15px 0 23px !important;
  background:#b51f29 !important;
}


/* Tablet: dieselben relativen Fluchten wie die vorhandenen Inhalte */
@media(max-width:980px){
  .festpreis-page-v148 .fp-hero-card-title{
    margin-left:5% !important;
  }

  .festpreis-page-v148 .fp-hero-copy-head,
  .festpreis-page-v148 .fp-hero-copy-row .fp-hero-intro-copy{
    margin-left:7% !important;
  }

  .festpreis-page-v148 .fp-hero-copy-head h2{
    font-size:32px !important;
  }
}


/* Mobil */
@media(max-width:560px){
  .festpreis-page-v148 .fp-hero-card-title{
    margin-left:5% !important;
  }

  .festpreis-page-v148 .fp-hero-copy-head,
  .festpreis-page-v148 .fp-hero-copy-row .fp-hero-intro-copy{
    width:88% !important;
    max-width:none !important;
    margin-left:6% !important;
    margin-right:6% !important;
  }

  .festpreis-page-v148 .fp-hero-copy-head h2{
    font-size:29px !important;
  }

  .festpreis-page-v148 .fp-hero-copy-head .fp-red-line{
    width:48px !important;
    margin-top:12px !important;
  }
}


/* ==========================================================
   V19.3 – Festpreis: finale Hintergrundabfolge
   ========================================================== */

/* 1. DIE IDEE BEGINNT HIER – DUNKELGRAU */
.festpreis-page-v148 .fp-process-section{
  background:#333 !important;
  color:#fff !important;
}

.festpreis-page-v148 .fp-process-section .fp-section-heading h2{
  color:#fff !important;
}

.festpreis-page-v148 .fp-process-section .fp-red-line{
  background:#c52b35 !important;
}

/* Prozesskarten bewusst hell auf der dunklen Fläche */
.festpreis-page-v148 .fp-process-section .fp-process-grid article{
  background:#fff !important;
  color:#333 !important;
  border-color:#4b4b4b !important;
}

.festpreis-page-v148 .fp-process-section .fp-process-grid h3{
  color:#333 !important;
}

.festpreis-page-v148 .fp-process-section .fp-process-grid p{
  color:#555 !important;
}


/* 2. LEISTUNGSUMFANG – WEISS */
.festpreis-page-v148 .fp-scope-section{
  background:#fff !important;
  color:#333 !important;
}

.festpreis-page-v148 .fp-scope-copy{
  background:#fff !important;
}

.festpreis-page-v148 .fp-scope-section .fp-section-heading h2{
  color:#333 !important;
}

.festpreis-page-v148 .fp-scope-section .fp-red-line{
  background:#b51f29 !important;
}

.festpreis-page-v148 .fp-scope-section .fp-scope-copy li{
  color:#555 !important;
}

.festpreis-page-v148 .fp-scope-section .fp-price-line strong{
  color:#333 !important;
}

.festpreis-page-v148 .fp-scope-section .fp-price-line span{
  color:#777 !important;
}


/* 3. OPTIONALE LEISTUNGEN – WEISS */
.festpreis-page-v148 .fp-options-section{
  background:#fff !important;
  color:#333 !important;
}

.festpreis-page-v148 .fp-options-section .fp-section-heading h2{
  color:#333 !important;
}

.festpreis-page-v148 .fp-options-section .fp-red-line{
  background:#b51f29 !important;
}

.festpreis-page-v148 .fp-options-section .fp-option-card{
  background:#f5f5f5 !important;
  color:#333 !important;
  border-color:#ddd !important;
}

.festpreis-page-v148 .fp-options-section .fp-option-copy h3,
.festpreis-page-v148 .fp-options-section .fp-option-copy p,
.festpreis-page-v148 .fp-options-section .fp-option-copy li,
.festpreis-page-v148 .fp-options-section .fp-option-price{
  color:#333 !important;
}


/* 4. NICHT ENTHALTENE LEISTUNGEN – DUNKELGRAU */
.festpreis-page-v148 .fp-excluded-section{
  background:#333 !important;
  color:#fff !important;
}

.festpreis-page-v148 .fp-excluded-section .fp-section-heading h2{
  color:#fff !important;
}

.festpreis-page-v148 .fp-excluded-section .fp-section-heading > p{
  color:#d9d9d9 !important;
}

.festpreis-page-v148 .fp-excluded-section .fp-red-line{
  background:#c52b35 !important;
}

.festpreis-page-v148 .fp-excluded-section .fp-clean-list li{
  color:#e1e1e1 !important;
  border-color:#555 !important;
}

.festpreis-page-v148 .fp-excluded-section .fp-clean-list li::before{
  color:#c52b35 !important;
}


/* 5. WIE KANN DAS AUSSEHEN? – WEISS */
.festpreis-page-v148 .fp-showcase-section{
  background:#fff !important;
  color:#333 !important;
}

.festpreis-page-v148 .fp-showcase-copy{
  background:#fff !important;
}

.festpreis-page-v148 .fp-showcase-copy .fp-section-heading h2{
  color:#333 !important;
}

.festpreis-page-v148 .fp-showcase-copy .fp-red-line{
  background:#b51f29 !important;
}

.festpreis-page-v148 .fp-showcase-copy > p{
  color:#555 !important;
}

.festpreis-page-v148 .fp-showcase-links a{
  color:#333 !important;
  border-bottom-color:#b51f29 !important;
}


/* 6. VORBEREITENDE INFORMATIONEN – DUNKELGRAU */
.festpreis-page-v148 .fp-info-section{
  background:#333 !important;
  color:#fff !important;
}

.festpreis-page-v148 .fp-info-section .fp-section-heading h2{
  color:#fff !important;
}

.festpreis-page-v148 .fp-info-section .fp-section-heading > p{
  color:#d9d9d9 !important;
}

.festpreis-page-v148 .fp-info-section .fp-red-line{
  background:#c52b35 !important;
}

/* Informationskarten hell auf dunklem Grund */
.festpreis-page-v148 .fp-info-section .fp-info-grid article{
  background:#fff !important;
  color:#333 !important;
  border-color:#4b4b4b !important;
}

.festpreis-page-v148 .fp-info-section .fp-info-grid h3{
  color:#333 !important;
}

.festpreis-page-v148 .fp-info-section .fp-info-grid li{
  color:#555 !important;
}


/* ==========================================================
   V19.4 – Festpreis: zwei Bereiche hellgrau
   ========================================================== */

/* Optionale Leistungen – hellgrau */
.festpreis-page-v148 .fp-options-section{
  background:#ededeb !important;
  color:#333 !important;
}

.festpreis-page-v148 .fp-options-section .fp-section-heading h2{
  color:#333 !important;
}

.festpreis-page-v148 .fp-options-section .fp-red-line{
  background:#b51f29 !important;
}

/* Karten bleiben weiß */
.festpreis-page-v148 .fp-options-section .fp-option-card{
  background:#fff !important;
  color:#333 !important;
  border-color:#ddd !important;
}


/* Vorbereitende Informationen – hellgrau */
.festpreis-page-v148 .fp-info-section{
  background:#ededeb !important;
  color:#333 !important;
}

.festpreis-page-v148 .fp-info-section .fp-section-heading h2{
  color:#333 !important;
}

.festpreis-page-v148 .fp-info-section .fp-section-heading > p{
  color:#555 !important;
}

.festpreis-page-v148 .fp-info-section .fp-red-line{
  background:#b51f29 !important;
}

/* Karten bleiben weiß */
.festpreis-page-v148 .fp-info-section .fp-info-grid article{
  background:#fff !important;
  color:#333 !important;
  border-color:#ddd !important;
}


/* ==========================================================
   V19.7 – Landingpage: Textflächen der 3 Kacheln gleich hoch
   ========================================================== */

/* Alle drei dunklen Textflächen erhalten auf Desktop/Tablet
   exakt dieselbe Mindesthöhe. Der Inhalt beginnt jeweils oben. */
.page-home .hb-fields-v132 .hb-field-content{
  min-height:225px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
}

/* Beschreibung darf den verfügbaren Bereich sauber nutzen */
.page-home .hb-fields-v132 .hb-field-description{
  width:100% !important;
}

/* Mobil ebenfalls identische Kachelhöhe, aber kompakter */
@media(max-width:760px){
  .page-home .hb-fields-v132 .hb-field-content{
    min-height:205px !important;
  }
}


/* ==========================================================
   V20.2 – Landingpage: Kachelbereich mit Schatten nach oben
   ========================================================== */

.page-home .hb-fields-v132{
  position:relative;
  z-index:4;
  box-shadow:0 -9px 16px rgba(0,0,0,.11) !important;
}


/* ==========================================================
   V20.3 – Leistungen: Architekturtext + Titelprinzip Landingpage
   ========================================================== */

/* Haupttitel der drei Leistungsbereiche:
   Hauptbegriff kräftig, Verb wie auf der Landingpage dünn/grau */
.services-page-v123 .service-main-title{
  margin-bottom:26px !important;
  color:#2f2f2f !important;
  font-family:"Helvetica Neue",Arial,sans-serif !important;
  line-height:1.08 !important;
  font-weight:400 !important;
  letter-spacing:-.025em !important;
}

.services-page-v123 h1.service-main-title,
.services-page-v123 h2.service-main-title{
  font-size:clamp(36px,3.2vw,48px) !important;
}

.services-page-v123 .service-main-title .service-title-main{
  color:#2f2f2f !important;
  font-weight:400 !important;
}

.services-page-v123 .service-main-title .service-title-verb{
  margin-left:.12em;
  color:#858585 !important;
  font-family:"Segoe UI Light","Segoe UI",Arial,sans-serif !important;
  font-size:.87em !important;
  font-weight:300 !important;
  letter-spacing:.035em !important;
}

/* Zwischenüberschriften nur im Architekturbereich */
.services-page-v123 .service-row-architecture .service-text-inner h3{
  margin:31px 0 13px !important;
  color:#333;
  font-size:19px !important;
  line-height:1.35;
  font-weight:400 !important;
}

@media(max-width:760px){
  .services-page-v123 h1.service-main-title,
  .services-page-v123 h2.service-main-title{
    font-size:clamp(31px,8vw,40px) !important;
  }

  .services-page-v123 .service-main-title .service-title-verb{
    font-size:.85em !important;
  }

  .services-page-v123 .service-row-architecture .service-text-inner h3{
    margin-top:26px !important;
    font-size:18px !important;
  }
}



/* ==========================================================
   V20.6 – Leistungen Varianten A/B/C
   ========================================================== */

body:has(.services-page-alt) .site-header{
  position:sticky;
  top:0;
  z-index:1000;
  box-shadow:0 7px 12px rgba(0,0,0,.16);
}

.services-page-alt{
  width:100%;
  margin:0;
  padding:0 0 1px;
  background:#fff;
}

.services-page-alt .service-kicker{
  display:flex;
  align-items:center;
  gap:13px;
  margin:0 0 17px;
}

.services-page-alt .service-red-line{
  display:block;
  width:42px;
  height:1px;
  background:#b51f29;
}

.services-page-alt .service-main-title{
  margin:0 0 28px;
  color:#343434;
  font-size:36px;
  line-height:1.14;
  font-weight:300;
  letter-spacing:.002em;
}

.services-page-alt .service-title-main{
  font-weight:400;
  color:#343434;
}

.services-page-alt .service-title-verb{
  font-weight:300;
  color:#a8a8a8;
}

.services-page-alt p{
  margin:0 0 20px;
  color:#505050;
  font-size:14px;
  line-height:1.86;
  font-weight:400;
}

.services-page-alt .service-more-link{
  display:inline-block;
  margin-top:8px;
  font-size:13px;
}

/* Varianten-Umschalter */
.services-variant-switcher{
  width:100%;
  background:#2f2f2f;
  color:#fff;
  border-top:1px solid rgba(255,255,255,.08);
}

.services-variant-switcher-inner{
  width:80%;
  max-width:var(--content);
  margin:0 auto;
  padding:22px 0 24px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 18px;
}

.services-variant-label{
  color:rgba(255,255,255,.76);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.services-variant-link{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:0 16px;
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  text-decoration:none;
  font-size:13px;
  letter-spacing:.03em;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}

.services-variant-link:hover{
  background:rgba(255,255,255,.09);
  border-color:rgba(255,255,255,.42);
  transform:translateY(-2px);
}

.services-variant-link.is-active{
  background:#fff;
  color:#2f2f2f;
  border-color:#fff;
}

/* =========================
   Variante A – Split
   ========================= */
.services-page-alt-a .service-a-row{
  display:grid;
  grid-template-columns:42% 58%;
  min-height:580px;
  background:#fff;
}

.services-page-alt-a .service-a-row.is-reverse{
  grid-template-columns:58% 42%;
}

.services-page-alt-a .service-a-row.is-reverse .service-a-text-cell{
  order:2;
}
.services-page-alt-a .service-a-row.is-reverse .service-a-media-cell{
  order:1;
}

.services-page-alt-a .service-a-text-cell{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
}

.services-page-alt-a .service-a-text-inner{
  width:72%;
  max-width:560px;
  padding:72px 0;
}

.services-page-alt-a .service-a-media-cell{
  position:relative;
  min-height:100%;
  overflow:hidden;
  background:#3f3f3f;
}

.services-page-alt-a .service-a-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  max-width:none;
}

.services-page-alt-a .service-a-media-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.48), rgba(0,0,0,.14));
}

.services-page-alt-a .service-a-quote-card{
  position:absolute;
  left:7%;
  bottom:8%;
  z-index:2;
  width:min(430px,72%);
  padding:28px 28px 24px;
  background:rgba(34,34,34,.62);
  color:#fff;
  backdrop-filter:blur(3px);
  box-shadow:0 14px 28px rgba(0,0,0,.18);
}

.services-page-alt-a .service-a-quote-card.is-long{
  width:min(520px,78%);
}

.services-page-alt-a .service-a-quote-card blockquote{
  margin:0;
  font-size:22px;
  line-height:1.46;
  font-weight:300;
}

.services-page-alt-a .service-a-quote-card.is-long blockquote{
  font-size:17.5px;
  line-height:1.54;
}

.services-page-alt-a .service-a-quote-card cite{
  display:block;
  margin-top:14px;
  font-size:11px;
  line-height:1.4;
  font-style:normal;
  letter-spacing:.08em;
  color:rgba(255,255,255,.82);
}

/* =========================
   Variante B – Überlagerung
   ========================= */
.services-page-alt-b .service-b-stage{
  position:relative;
  padding:78px 0;
  background:#f6f6f6;
  overflow:hidden;
}

.services-page-alt-b .service-b-stage:nth-child(odd){
  background:#fff;
}

.services-page-alt-b .service-b-background{
  position:absolute;
  inset:0;
  overflow:hidden;
}

.services-page-alt-b .service-b-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  max-width:none;
  transform:scale(1.02);
}

.services-page-alt-b .service-b-backdrop{
  position:absolute;
  inset:0;
  background:linear-gradient(to right, rgba(255,255,255,.84) 0%, rgba(255,255,255,.58) 33%, rgba(0,0,0,.28) 100%);
}

.services-page-alt-b .service-b-stage.is-reverse .service-b-backdrop{
  background:linear-gradient(to left, rgba(255,255,255,.84) 0%, rgba(255,255,255,.58) 33%, rgba(0,0,0,.28) 100%);
}

.services-page-alt-b .service-b-shell{
  position:relative;
  z-index:2;
  width:80%;
  max-width:var(--content);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(340px, 560px) minmax(250px, 380px);
  justify-content:space-between;
  align-items:end;
  gap:40px;
}

.services-page-alt-b .service-b-stage.is-reverse .service-b-shell{
  grid-template-columns:minmax(250px, 380px) minmax(340px, 560px);
}

.services-page-alt-b .service-b-text-card{
  background:rgba(255,255,255,.95);
  padding:58px 56px;
  box-shadow:0 18px 36px rgba(0,0,0,.08);
}

.services-page-alt-b .service-b-stage.is-reverse .service-b-text-card{
  order:2;
}

.services-page-alt-b .service-b-quote-card{
  align-self:center;
  padding:34px 32px 28px;
  background:rgba(36,36,36,.74);
  color:#fff;
  backdrop-filter:blur(3px);
  box-shadow:0 16px 30px rgba(0,0,0,.18);
}

.services-page-alt-b .service-b-stage.is-reverse .service-b-quote-card{
  order:1;
}

.services-page-alt-b .service-b-quote-card blockquote{
  margin:0;
  font-size:22px;
  line-height:1.5;
  font-weight:300;
}

.services-page-alt-b .service-b-quote-card.is-long blockquote{
  font-size:17px;
  line-height:1.56;
}

.services-page-alt-b .service-b-quote-card cite{
  display:block;
  margin-top:14px;
  font-size:11px;
  line-height:1.4;
  font-style:normal;
  letter-spacing:.08em;
  color:rgba(255,255,255,.82);
}

/* =========================
   Variante C – Bühne
   ========================= */
.services-page-alt-c .service-c-block{
  padding:78px 0 0;
  background:#fff;
}

.services-page-alt-c .service-c-block:nth-child(even){
  background:#f5f5f5;
}

.services-page-alt-c .service-c-shell{
  width:80%;
  max-width:var(--content);
  margin:0 auto;
}

.services-page-alt-c .service-c-copy{
  width:min(720px, 100%);
  padding-bottom:38px;
}

.services-page-alt-c .service-c-media{
  position:relative;
  height:430px;
  overflow:hidden;
  background:#444;
  box-shadow:0 18px 36px rgba(0,0,0,.10);
}

.services-page-alt-c .service-c-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  max-width:none;
}

.services-page-alt-c .service-c-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.46), rgba(0,0,0,.12));
}

.services-page-alt-c .service-c-quote-band{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  padding:28px 6.5% 24px;
  background:linear-gradient(to top, rgba(28,28,28,.76), rgba(28,28,28,.48));
  color:#fff;
}

.services-page-alt-c .service-c-quote-band blockquote{
  margin:0;
  max-width:820px;
  font-size:25px;
  line-height:1.46;
  font-weight:300;
}

.services-page-alt-c .service-c-quote-band.is-long blockquote{
  font-size:18px;
  line-height:1.52;
  max-width:980px;
}

.services-page-alt-c .service-c-quote-band cite{
  display:block;
  margin-top:12px;
  font-size:11px;
  font-style:normal;
  letter-spacing:.08em;
  color:rgba(255,255,255,.82);
}

.services-page-alt-c .service-c-block + .service-c-block{
  padding-top:64px;
}

/* Tablet */
@media(max-width:1100px){
  .services-page-alt .service-main-title{
    font-size:32px;
  }

  .services-page-alt p{
    font-size:13px;
    line-height:1.8;
  }

  .services-page-alt-a .service-a-row{
    grid-template-columns:46% 54%;
    min-height:540px;
  }
  .services-page-alt-a .service-a-row.is-reverse{
    grid-template-columns:54% 46%;
  }
  .services-page-alt-a .service-a-text-inner{
    width:78%;
    padding:58px 0;
  }
  .services-page-alt-a .service-a-quote-card blockquote{
    font-size:19px;
  }
  .services-page-alt-a .service-a-quote-card.is-long blockquote{
    font-size:16px;
  }

  .services-page-alt-b .service-b-shell{
    width:86%;
    grid-template-columns:minmax(320px, 1fr) minmax(240px, 320px);
    gap:28px;
  }
  .services-page-alt-b .service-b-text-card{
    padding:48px 42px;
  }
  .services-page-alt-b .service-b-quote-card blockquote{
    font-size:19px;
  }
  .services-page-alt-b .service-b-quote-card.is-long blockquote{
    font-size:15px;
  }

  .services-page-alt-c .service-c-shell{
    width:86%;
  }
  .services-page-alt-c .service-c-media{
    height:370px;
  }
  .services-page-alt-c .service-c-quote-band blockquote{
    font-size:21px;
  }
  .services-page-alt-c .service-c-quote-band.is-long blockquote{
    font-size:16px;
  }
}

/* Mobile */
@media(max-width:760px){
  body:has(.services-page-alt) .site-header{
    box-shadow:0 5px 9px rgba(0,0,0,.15);
  }

  .services-page-alt .service-main-title{
    margin-bottom:23px;
    font-size:29px;
  }

  .services-page-alt .service-red-line{
    width:34px;
  }

  .services-page-alt p{
    font-size:13px;
    line-height:1.78;
  }

  .services-variant-switcher-inner{
    width:86%;
    padding:18px 0 20px;
  }

  .services-variant-link{
    min-height:36px;
    font-size:12px;
  }

  .services-page-alt-a .service-a-row,
  .services-page-alt-a .service-a-row.is-reverse{
    display:flex;
    flex-direction:column;
    min-height:0;
  }

  .services-page-alt-a .service-a-text-cell,
  .services-page-alt-a .service-a-row.is-reverse .service-a-text-cell{
    order:2;
  }

  .services-page-alt-a .service-a-media-cell,
  .services-page-alt-a .service-a-row.is-reverse .service-a-media-cell{
    order:1;
    min-height:320px;
  }

  .services-page-alt-a .service-a-text-inner{
    width:86%;
    max-width:none;
    padding:44px 0 52px;
  }

  .services-page-alt-a .service-a-quote-card,
  .services-page-alt-a .service-a-quote-card.is-long{
    left:50%;
    bottom:16px;
    width:86%;
    padding:22px 20px 18px;
    transform:translateX(-50%);
  }

  .services-page-alt-a .service-a-quote-card blockquote{
    font-size:17px;
    line-height:1.44;
  }

  .services-page-alt-a .service-a-quote-card.is-long blockquote{
    font-size:14.5px;
  }

  .services-page-alt-b .service-b-stage{
    padding:0 0 34px;
  }

  .services-page-alt-b .service-b-background{
    position:relative;
    height:320px;
  }

  .services-page-alt-b .service-b-shell,
  .services-page-alt-b .service-b-stage.is-reverse .service-b-shell{
    width:86%;
    margin-top:-38px;
    grid-template-columns:1fr;
    gap:18px;
  }

  .services-page-alt-b .service-b-text-card,
  .services-page-alt-b .service-b-stage.is-reverse .service-b-text-card{
    order:2;
    padding:38px 24px 42px;
  }

  .services-page-alt-b .service-b-quote-card,
  .services-page-alt-b .service-b-stage.is-reverse .service-b-quote-card{
    order:1;
    padding:22px 20px 18px;
  }

  .services-page-alt-b .service-b-quote-card blockquote{
    font-size:17px;
  }

  .services-page-alt-b .service-b-quote-card.is-long blockquote{
    font-size:14.5px;
  }

  .services-page-alt-c .service-c-block{
    padding:46px 0 0;
  }

  .services-page-alt-c .service-c-shell{
    width:86%;
  }

  .services-page-alt-c .service-c-copy{
    padding-bottom:24px;
  }

  .services-page-alt-c .service-c-media{
    height:310px;
  }

  .services-page-alt-c .service-c-quote-band{
    padding:22px 18px 18px;
  }

  .services-page-alt-c .service-c-quote-band blockquote{
    font-size:18px;
    line-height:1.42;
  }

  .services-page-alt-c .service-c-quote-band.is-long blockquote{
    font-size:14.5px;
    line-height:1.48;
  }

  .services-page-alt-c .service-c-block + .service-c-block{
    padding-top:42px;
  }
}



/* ==========================================================
   V20.7 – Leistungen Variante A: Zitatbox weiß
   ========================================================== */

.services-page-alt-a .service-a-quote-card{
  background:rgba(255,255,255,.92) !important;
  color:#2f2f2f !important;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  box-shadow:0 14px 28px rgba(0,0,0,.14) !important;
}

.services-page-alt-a .service-a-quote-card blockquote{
  color:#2f2f2f !important;
  text-shadow:none !important;
}

.services-page-alt-a .service-a-quote-card cite{
  color:#6f6f6f !important;
  text-shadow:none !important;
}


/* ==========================================================
   V20.8 – Leistungen Variante A: Zitatbox transparenter
   ========================================================== */

.services-page-alt-a .service-a-quote-card{
  background:rgba(255,255,255,.72) !important;
}


/* ==========================================================
   V20.9 – Leistungen Variante A: roter Strich nach Headline
   ========================================================== */

/* bisherigen Strich oberhalb der Überschrift ausblenden */
.services-page-alt-a .service-kicker{
  display:none !important;
}

/* Strich direkt nach der Headline und vor dem Fließtext */
.services-page-alt-a .service-main-title::after{
  content:"";
  display:block;
  width:42px;
  height:1px;
  margin-top:16px;
  background:#b51f29;
}

/* Abstand zum folgenden Text etwas sauberer setzen */
.services-page-alt-a .service-main-title{
  margin-bottom:24px !important;
}

@media(max-width:760px){
  .services-page-alt-a .service-main-title::after{
    width:34px;
    margin-top:13px;
  }

  .services-page-alt-a .service-main-title{
    margin-bottom:21px !important;
  }
}


/* ==========================================================
   V21.0 – Leistungen final: Split 50 / 50
   ========================================================== */

/* Keine Varianten-Umschaltung mehr */
.services-variant-switcher{
  display:none !important;
}

/* Desktop: Text und Bild exakt mittig geteilt */
.services-page-final .service-a-row,
.services-page-final .service-a-row.is-reverse{
  grid-template-columns:50% 50% !important;
}

/* Textbereich innerhalb seiner Hälfte ruhig und mittig */
.services-page-final .service-a-text-inner{
  width:72% !important;
  max-width:590px !important;
  margin:0 auto !important;
}

/* Roter Strich erst nach der Headline */
.services-page-final .service-kicker{
  display:none !important;
}

.services-page-final .service-main-title::after{
  content:"";
  display:block;
  width:42px;
  height:1px;
  margin-top:16px;
  background:#b51f29;
}

.services-page-final .service-main-title{
  margin-bottom:24px !important;
}

/* Zitatbox: weiß, deutlich transparent, schwarze Schrift */
.services-page-final .service-a-quote-card{
  background:rgba(255,255,255,.72) !important;
  color:#2f2f2f !important;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  box-shadow:0 14px 28px rgba(0,0,0,.14) !important;
}

.services-page-final .service-a-quote-card blockquote{
  color:#2f2f2f !important;
  text-shadow:none !important;
}

.services-page-final .service-a-quote-card cite{
  color:#6f6f6f !important;
  text-shadow:none !important;
}

/* Mittlere Mindesthöhe bei allen drei Blöcken harmonisieren */
.services-page-final .service-a-row{
  min-height:590px !important;
}

/* Mobil wie bisher untereinander */
@media(max-width:760px){
  .services-page-final .service-a-row,
  .services-page-final .service-a-row.is-reverse{
    display:flex !important;
    flex-direction:column !important;
    min-height:0 !important;
  }

  .services-page-final .service-a-media-cell,
  .services-page-final .service-a-row.is-reverse .service-a-media-cell{
    order:1 !important;
    min-height:320px !important;
  }

  .services-page-final .service-a-text-cell,
  .services-page-final .service-a-row.is-reverse .service-a-text-cell{
    order:2 !important;
  }

  .services-page-final .service-a-text-inner{
    width:86% !important;
    max-width:none !important;
  }

  .services-page-final .service-main-title::after{
    width:34px;
    margin-top:13px;
  }

  .services-page-final .service-main-title{
    margin-bottom:21px !important;
  }
}


/* ==========================================================
   V21.1 – Festpreis: Leistungsumfang / Beispieltext mittiger
   ========================================================== */

/* Textblöcke innerhalb ihrer linken Spalte weiter zur Seitenmitte schieben */
.festpreis-page-v148 .fp-scope-copy{
  padding-left:18% !important;
  padding-right:8% !important;
}

.festpreis-page-v148 .fp-showcase-copy{
  padding-left:20% !important;
  padding-right:8% !important;
}

/* Tablet etwas moderater */
@media(max-width:1050px) and (min-width:821px){
  .festpreis-page-v148 .fp-scope-copy{
    padding-left:14% !important;
    padding-right:8% !important;
  }

  .festpreis-page-v148 .fp-showcase-copy{
    padding-left:15% !important;
    padding-right:8% !important;
  }
}

/* Nach dem einspaltigen Umbruch wieder normal symmetrisch */
@media(max-width:820px){
  .festpreis-page-v148 .fp-scope-copy,
  .festpreis-page-v148 .fp-showcase-copy{
    padding-left:8% !important;
    padding-right:8% !important;
  }
}


/* ==========================================================
   V21.2 – Teamseite Partnertext + mehr Bildsichtbarkeit
   ========================================================== */

/* Partnerbereich großzügiger, damit beim Scrollen mehr Hintergrundbild sichtbar bleibt */
.team-page-v142 .team-story-partner{
  min-height:660px !important;
  padding-top:34px;
  padding-bottom:34px;
}

/* Bild etwas freier wirken lassen */
.team-page-v142 .team-story-partner .team-story-shade{
  background:rgba(0,0,0,.08) !important;
}

/* Textbox minimal schmaler und leicht transparenter,
   damit mehr Bildfläche sichtbar bleibt */
.team-page-v142 .team-story-partner .team-story-card{
  width:min(650px,44%) !important;
  background:rgba(255,255,255,.76) !important;
}

@media(max-width:1050px){
  .team-page-v142 .team-story-partner{
    min-height:610px !important;
  }

  .team-page-v142 .team-story-partner .team-story-card{
    width:min(620px,52%) !important;
  }
}

@media(max-width:820px){
  .team-page-v142 .team-story-partner{
    min-height:620px !important;
  }

  .team-page-v142 .team-story-partner .team-story-card{
    width:78% !important;
    background:rgba(255,255,255,.80) !important;
  }
}

@media(max-width:520px){
  .team-page-v142 .team-story-partner{
    min-height:640px !important;
  }

  .team-page-v142 .team-story-partner .team-story-card{
    width:88% !important;
    background:rgba(255,255,255,.84) !important;
  }
}


/* ==========================================================
   V21.3 – Leistungen: Fließtext im Blocksatz
   ========================================================== */

.services-page-final .service-a-text-inner p{
  text-align:justify !important;
  text-align-last:left;
  hyphens:auto;
  -webkit-hyphens:auto;
}


/* ==========================================================
   V21.4 – Wiederkehrender Seitenabschluss
   ========================================================== */

.page-end-cta{
  position:relative;
  z-index:4;
  display:grid;
  grid-template-columns:1fr 1fr;
  width:100%;
  background:#fff;
  border-top:1px solid #ddd;
}

.page-end-cta a{
  min-height:126px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:25px 7%;
  box-sizing:border-box;
  color:#333;
  text-decoration:none;
  transition:background .3s ease,color .3s ease;
}

.page-end-cta a + a{
  border-left:1px solid #ddd;
}

.page-end-cta span{
  margin-bottom:7px;
  color:#888;
  font-size:9.5px;
  line-height:1.4;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.page-end-cta strong{
  font-size:15px;
  line-height:1.45;
  font-weight:400;
}

.page-end-cta a:hover{
  background:#b51f29;
  color:#fff;
}

.page-end-cta a:hover span{
  color:rgba(255,255,255,.72);
}

@media(max-width:560px){
  .page-end-cta{
    grid-template-columns:1fr;
  }

  .page-end-cta a{
    min-height:104px;
  }

  .page-end-cta a + a{
    border-left:0;
    border-top:1px solid #ddd;
  }
}


/* ==========================================================
   V21.5 – Seitenabschlüsse ruhiger + Festpreis Hero
   ========================================================== */

/* Alle zweigeteilten Seitenabschlüsse:
   hellgrau, ohne Außenrahmen, nur eine mittige Trennlinie. */
.page-end-cta,
.festpreis-page-v148 .fp-final-cta{
  background:#ededeb !important;
  border:0 !important;
  border-top:0 !important;
}

.page-end-cta a,
.festpreis-page-v148 .fp-final-cta a{
  background:transparent !important;
  border:0 !important;
}

.page-end-cta a + a,
.festpreis-page-v148 .fp-final-cta a + a{
  border-left:1px solid #cfcfcd !important;
  border-top:0 !important;
}

/* Hover bleibt als dezente Interaktion erhalten. */
.page-end-cta a:hover,
.festpreis-page-v148 .fp-final-cta a:hover{
  background:#b51f29 !important;
  color:#fff !important;
}

.page-end-cta a:hover span,
.festpreis-page-v148 .fp-final-cta a:hover span{
  color:rgba(255,255,255,.72) !important;
}


/* Festpreis Hero:
   erste Zeile Architektur,
   zweite Zeile komplett zurückhaltend und leicht eingerückt. */
.festpreis-page-v148 .fp-hero-card-title .fp-hero-line-strong{
  font-size:clamp(42px,3.55vw,58px) !important;
}

.festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light.fp-hero-line-second{
  margin-left:1.05em !important;
  color:#858585 !important;
  font-family:"Segoe UI Light","Segoe UI",Arial,sans-serif !important;
  font-size:clamp(25px,2.18vw,34px) !important;
  line-height:1.12 !important;
  font-weight:300 !important;
  letter-spacing:.018em !important;
  white-space:nowrap !important;
}

/* Kachel etwas kompakter passend zur kleineren Typografie. */
.festpreis-page-v148 .fp-hero-card-title{
  padding:30px 34px 31px !important;
}

@media(max-width:980px){
  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-strong{
    font-size:clamp(38px,4.8vw,51px) !important;
  }

  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light.fp-hero-line-second{
    margin-left:.9em !important;
    font-size:clamp(23px,2.95vw,31px) !important;
  }
}

@media(max-width:560px){
  .page-end-cta a + a,
  .festpreis-page-v148 .fp-final-cta a + a{
    border-left:0 !important;
    border-top:1px solid #cfcfcd !important;
  }

  .festpreis-page-v148 .fp-hero-card-title{
    padding:23px 24px 25px !important;
  }

  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-strong{
    font-size:clamp(30px,7.6vw,39px) !important;
  }

  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light.fp-hero-line-second{
    margin-left:.55em !important;
    font-size:clamp(18px,4.65vw,24px) !important;
  }
}


/* ==========================================================
   V21.6 – Festpreis Hero: zweite Zeile weiter eingerückt
   ========================================================== */

.festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light.fp-hero-line-second{
  margin-left:1.55em !important;
}

@media(max-width:980px){
  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light.fp-hero-line-second{
    margin-left:1.35em !important;
  }
}

@media(max-width:560px){
  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light.fp-hero-line-second{
    margin-left:.95em !important;
  }
}


/* ==========================================================
   V21.7 – Festpreis Hero: "beginnt" unter Wortmitte
   ========================================================== */

.festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light.fp-hero-line-second{
  display:inline-block !important;
  margin-left:3.7em !important;
}

@media(max-width:980px){
  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light.fp-hero-line-second{
    margin-left:3.25em !important;
  }
}

@media(max-width:560px){
  .festpreis-page-v148 .fp-hero-card-title .fp-hero-line-light.fp-hero-line-second{
    margin-left:2.75em !important;
  }
}


/* ==========================================================
   V21.9 – Projekte: Filterfeld + 3 Gestaltungsvarianten
   ========================================================== */

/* Header bleibt der normale weiße Seitenheader. */
body:has(.project-index-v219) .site-header{
  background:#fff !important;
}

/* Projektseite beginnt unmittelbar mit einem separaten hellgrauen Filterfeld. */
.project-index-v219{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  background:#fff;
}

.project-index-v219 .project-filter-zone{
  width:100%;
  margin:0;
  padding:0;
  background:#ededeb;
}

.project-index-v219 .project-filter-zone-inner{
  width:90%;
  max-width:1080px;
  min-height:102px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
}

.project-index-v219 .project-grid{
  width:100% !important;
  margin:0 !important;
}

/* Alle alten Filterrahmen / Pseudo-Unterstreichungen neutralisieren. */
.project-index-v219 .filterbar{
  margin:0 !important;
  border:0 !important;
  background:transparent !important;
}

.project-index-v219 .filterbar button{
  cursor:pointer;
  transition:
    color .22s ease,
    background .22s ease,
    border-color .22s ease,
    transform .22s ease,
    box-shadow .22s ease;
}

.project-index-v219 .filterbar button::after{
  content:none !important;
  display:none !important;
}

/* ----------------------------------------------------------
   A – Editorial / rote Linie
   ---------------------------------------------------------- */
.project-index-v219.filter-design-a .filterbar{
  width:auto !important;
  max-width:none !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  gap:38px !important;
}

.project-index-v219.filter-design-a .filterbar button{
  position:relative;
  min-height:0 !important;
  padding:9px 0 11px !important;
  border:0 !important;
  background:transparent !important;
  color:#7b7b7b !important;
  font-size:12px !important;
  line-height:1.3 !important;
  font-weight:400;
  letter-spacing:.035em !important;
  text-transform:none !important;
}

.project-index-v219.filter-design-a .filterbar button::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:0;
  height:1px;
  background:#b51f29;
  transform:translateX(-50%);
  transition:width .22s ease;
}

.project-index-v219.filter-design-a .filterbar button:hover,
.project-index-v219.filter-design-a .filterbar button.active{
  color:#2f2f2f !important;
}

.project-index-v219.filter-design-a .filterbar button:hover::before,
.project-index-v219.filter-design-a .filterbar button.active::before{
  width:100%;
}

/* ----------------------------------------------------------
   B – einzelne helle Felder
   ---------------------------------------------------------- */
.project-index-v219.filter-design-b .filterbar{
  width:auto !important;
  max-width:none !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  gap:8px !important;
}

.project-index-v219.filter-design-b .filterbar button{
  min-height:38px !important;
  padding:0 22px !important;
  border:0 !important;
  background:rgba(255,255,255,.72) !important;
  color:#777 !important;
  box-shadow:0 1px 0 rgba(0,0,0,.04);
  font-size:10.5px !important;
  line-height:38px !important;
  font-weight:400;
  letter-spacing:.085em !important;
  text-transform:uppercase !important;
}

.project-index-v219.filter-design-b .filterbar button:hover{
  background:#fff !important;
  color:#333 !important;
  transform:translateY(-1px);
}

.project-index-v219.filter-design-b .filterbar button.active{
  background:#fff !important;
  color:#2f2f2f !important;
  box-shadow:inset 0 -2px 0 #b51f29, 0 3px 10px rgba(0,0,0,.05);
}

/* ----------------------------------------------------------
   C – minimal mit rotem Punkt
   ---------------------------------------------------------- */
.project-index-v219.filter-design-c .filterbar{
  width:auto !important;
  max-width:none !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  gap:0 !important;
}

.project-index-v219.filter-design-c .filterbar button{
  position:relative;
  min-height:0 !important;
  padding:9px 27px !important;
  border:0 !important;
  border-left:1px solid #d4d4d1 !important;
  background:transparent !important;
  color:#888 !important;
  font-size:11.5px !important;
  line-height:1.35 !important;
  font-weight:400;
  letter-spacing:.025em !important;
  text-transform:none !important;
}

.project-index-v219.filter-design-c .filterbar button:first-child{
  border-left:0 !important;
}

.project-index-v219.filter-design-c .filterbar button::before{
  content:"";
  display:inline-block;
  width:5px;
  height:5px;
  margin:0 9px 2px 0;
  border-radius:50%;
  background:transparent;
  vertical-align:middle;
}

.project-index-v219.filter-design-c .filterbar button:hover,
.project-index-v219.filter-design-c .filterbar button.active{
  color:#2f2f2f !important;
}

.project-index-v219.filter-design-c .filterbar button.active::before{
  background:#b51f29;
}

/* Temporärer Variantenumschalter nur zum Vergleichen. */
.project-filter-design-switch{
  min-height:62px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding:12px 5%;
  background:#333;
  color:#c7c7c7;
  font-size:11px;
  letter-spacing:.035em;
}

.project-filter-design-switch > span{
  color:#8f8f8f;
  margin-right:4px;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-size:9.5px;
}

.project-filter-design-switch a{
  color:#cfcfcf;
  border-bottom:1px solid transparent;
  padding-bottom:2px;
}

.project-filter-design-switch a:hover,
.project-filter-design-switch a.is-active{
  color:#fff;
  border-bottom-color:#b51f29;
}

/* Mobile */
@media(max-width:760px){
  .project-index-v219 .project-filter-zone-inner{
    width:100%;
    min-height:82px;
    padding:0 5%;
    overflow:hidden;
  }

  .project-index-v219.filter-design-a .filterbar{
    width:100% !important;
    justify-content:flex-start;
    gap:26px !important;
    overflow-x:auto;
    scrollbar-width:none;
  }

  .project-index-v219.filter-design-a .filterbar::-webkit-scrollbar{
    display:none;
  }

  .project-index-v219.filter-design-a .filterbar button{
    flex:0 0 auto;
    font-size:11px !important;
  }

  .project-index-v219.filter-design-b .filterbar{
    width:100% !important;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:6px !important;
  }

  .project-index-v219.filter-design-b .filterbar button{
    width:100%;
    padding:0 8px !important;
    font-size:9px !important;
  }

  .project-index-v219.filter-design-c .filterbar{
    width:100% !important;
    justify-content:flex-start;
    overflow-x:auto;
    scrollbar-width:none;
  }

  .project-index-v219.filter-design-c .filterbar::-webkit-scrollbar{
    display:none;
  }

  .project-index-v219.filter-design-c .filterbar button{
    flex:0 0 auto;
    padding-left:20px !important;
    padding-right:20px !important;
    font-size:10.5px !important;
  }

  .project-filter-design-switch{
    flex-wrap:wrap;
    gap:10px 14px;
  }
}


/* ==========================================================
   V22.1 – Projekte Filter final B / Bruttopreise Festpreis
   ========================================================== */

/* Filtervariante B ist final; temporärer Variantenumschalter entfällt. */
.project-filter-design-switch{
  display:none !important;
}

/* ==========================================================
   V22.2 – Projekte: Schatten unter Header vor Filterbereich
   ========================================================== */

/* Nur auf der Projektübersicht: kompakter Schatten vom weißen
   Header in das hellgraue Filterfeld. Werte entsprechen den
   bestehenden Schatten der Projekt-Detailseiten. */
body:has(.project-index-v219) .site-header::after{
  content:"";
  position:absolute;
  z-index:20;
  left:0;
  right:0;
  top:100%;
  width:100%;
  height:8px;
  pointer-events:none;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,.27) 0%,
    rgba(0,0,0,.12) 50%,
    rgba(0,0,0,0) 100%
  );
}

/* ==========================================================
   V22.3 – Schatten websiteweit vereinheitlicht
   Referenz: Schatten unter dem Header der Landingpage
   Desktop: 0 7px 12px rgba(0,0,0,.16)
   Mobil:   0 5px 9px rgba(0,0,0,.15)
   ========================================================== */

:root{
  --lehnes-shadow-down:0 7px 12px rgba(0,0,0,.16);
  --lehnes-shadow-up:0 -7px 12px rgba(0,0,0,.16);
}

/* Alle Seitenheader erhalten exakt den Landingpage-Schatten. */
body .site-header{
  box-shadow:var(--lehnes-shadow-down) !important;
  border-bottom:0 !important;
}

/* Projektübersicht: alten separaten Verlauf entfernen –
   der Schatten kommt jetzt wie auf allen Seiten direkt vom Header. */
body:has(.project-index-v219) .site-header::after{
  content:none !important;
  display:none !important;
}

/* Projektdetail: alte 8-px-Verläufe entfernen und durch denselben
   weichen Box-Shadow wie auf der Landingpage ersetzen. */
.project-detail-v11 .project-hero-sticky::before,
.project-detail-v11 .project-detail-foreground::before,
.project-detail-v11 .project-detail-gallery::after{
  content:none !important;
  display:none !important;
}

.project-detail-v11 .project-detail-foreground{
  box-shadow:var(--lehnes-shadow-up) !important;
}

.project-detail-v11 .project-detail-gallery{
  box-shadow:var(--lehnes-shadow-down) !important;
}

/* Landingpage: Kachelbereich schiebt sich mit derselben Schattenstärke
   nach oben über die vorherige Fläche. */
.page-home .hb-fields-v132{
  box-shadow:var(--lehnes-shadow-up) !important;
}

/* Team: Mitarbeiterblock liegt zwischen zwei Bildbereichen –
   deshalb derselbe Schatten gespiegelt oben und unten. */
.team-page-v142 .team-members-section{
  box-shadow:var(--lehnes-shadow-up), var(--lehnes-shadow-down) !important;
}

/* Festpreis und Kontakt: weiße Folgeflächen über Sticky-/Hero-Bereichen. */
.festpreis-page-v148 .fp-intro-text-section,
.festpreis-page-v148 .fp-hero-copy-row,
.contact-page-v158 .contact-info-section{
  box-shadow:var(--lehnes-shadow-up) !important;
}

/* Mobil exakt die bereits auf der Landingpage verwendete reduzierte Variante. */
@media(max-width:760px){
  :root{
    --lehnes-shadow-down:0 5px 9px rgba(0,0,0,.15);
    --lehnes-shadow-up:0 -5px 9px rgba(0,0,0,.15);
  }
}

/* ==========================================================
   V22.4 – Schattenkanten konsequent vereinheitlicht
   Referenz ausschließlich: Schatten unter dem Header Landingpage
   Desktop: 0 7px 12px rgba(0,0,0,.16)
   Mobil:   0 5px 9px rgba(0,0,0,.15)

   WICHTIG:
   - Abschnittsschatten werden NICHT mehr nach oben gespiegelt.
   - Jede sichtbare Trennkante wirft denselben Schatten von der
     oberen Fläche nach unten in die folgende Fläche.
   - Karten-/Buttonschatten bleiben als eigenständige UI-Effekte.
   ========================================================== */

:root{
  --lehnes-edge-shadow:0 7px 12px rgba(0,0,0,.16);
}

/* 1) Header: auf jeder Seite exakt dieselbe Referenz. */
body .site-header,
body.page-home .site-header,
body.page-inner .site-header{
  box-shadow:var(--lehnes-edge-shadow) !important;
  border-bottom:0 !important;
}

/* 2) Alte Abschnittsschatten vollständig neutralisieren.
      So können sich keine alten Up-/Down-Shadows mehr addieren. */
.page-home .hb-fields-v132,
.project-detail-v11 .project-detail-foreground,
.project-detail-v11 .project-detail-gallery,
.team-page-v142 .team-members-section,
.festpreis-page-v148 .fp-intro-text-section,
.festpreis-page-v148 .fp-hero-copy-row,
.contact-page-v158 .contact-info-section{
  box-shadow:none !important;
}

/* Alte projektspezifische Verlaufs-Schatten ebenfalls sicher aus. */
body:has(.project-index-v219) .site-header::after,
.project-detail-v11 .project-hero-sticky::before{
  content:none !important;
  display:none !important;
  box-shadow:none !important;
  background:none !important;
}

/* Gemeinsame Schattenkante: 1px unsichtbare Kante mit exakt dem
   Landingpage-Header-Schatten. Der Schatten fällt immer NACH UNTEN. */
.page-home .hb-fields-v132,
.project-detail-v11 .project-detail-foreground,
.project-detail-v11 .project-detail-gallery,
.team-page-v142 .team-members-section,
.festpreis-page-v148 .fp-intro-text-section,
.festpreis-page-v148 .fp-hero-copy-row,
.contact-page-v158 .contact-info-section{
  position:relative;
}

/* Übergang von der jeweils oberen Fläche in den folgenden Bereich. */
.page-home .hb-fields-v132::before,
.project-detail-v11 .project-detail-foreground::before,
.team-page-v142 .team-members-section::before,
.festpreis-page-v148 .fp-intro-text-section::before,
.festpreis-page-v148 .fp-hero-copy-row::before,
.contact-page-v158 .contact-info-section::before{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  z-index:30 !important;
  left:0 !important;
  right:0 !important;
  top:-1px !important;
  width:100% !important;
  height:1px !important;
  pointer-events:none !important;
  background:transparent !important;
  box-shadow:var(--lehnes-edge-shadow) !important;
}

/* Übergänge, bei denen der Schatten an der Unterkante der oberen
   Fläche liegen muss: Galerie -> roter Projektabschluss sowie
   Mitarbeiterbereich -> Partnerbild. */
.project-detail-v11 .project-detail-gallery::after,
.team-page-v142 .team-members-section::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  z-index:30 !important;
  left:0 !important;
  right:0 !important;
  bottom:-1px !important;
  width:100% !important;
  height:1px !important;
  pointer-events:none !important;
  background:transparent !important;
  box-shadow:var(--lehnes-edge-shadow) !important;
}

/* Kein alter Footer-Schatten darf eine zusätzliche, andersartige
   Trennkante erzeugen. */
body.page-inner .site-footer,
body.page-home .site-footer{
  box-shadow:none !important;
}

@media(max-width:760px){
  :root{
    --lehnes-edge-shadow:0 5px 9px rgba(0,0,0,.15);
  }
}
