/*
Theme Name: Holzbau Ballmann
Version: 0.1.0
Text Domain: holzbau-ballmann
*/
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0}a{color:inherit;text-underline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid #252724;outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:500;line-height:1.12;letter-spacing:-.045em}h1{font-size:clamp(42px,4.7vw,72px);margin-bottom:28px}h2{font-size:clamp(32px,3.3vw,48px);margin-bottom:24px}h3{font-size:24px;line-height:1.25;margin-bottom:16px}p{margin-bottom:16px}.wrap{width:calc(100% - 112px);max-width:1320px;margin-inline:auto}.section{padding-block:104px}.section-label,.eyebrow{font-size:11px;font-weight:700;letter-spacing:.11em;line-height:1.6}.section-label{margin-bottom:38px}.lead{font-size:18px;line-height:1.7;color:#565955;max-width:560px}.site-header{position:sticky;top:0;background:#fffffff5;border-bottom:1px solid #e7e8e4;z-index:20}.header-inner{min-height:108px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:flex;align-items:center;gap:15px;text-decoration:none;flex-shrink:0}.brand img{width:68px;height:auto}.brand strong{font-size:28px;letter-spacing:-.055em;line-height:1.1;display:block}.brand small{font-size:11px;display:block;letter-spacing:.035em;margin-top:5px}#primary-nav{display:flex;align-items:center;gap:26px}#primary-nav a{font-size:12px;text-decoration:none;font-weight:600}#primary-nav a:hover{text-decoration:underline}.nav-cta{border-bottom:1px solid #252724;padding:10px 0}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:7%;padding-block:76px 88px;align-items:stretch}.hero-copy{padding-block:12px}.hero .eyebrow{margin-bottom:26px}.hero .lead{font-size:17px}.wp-block-button__link{border-radius:0;background:#eac378;color:#252724;font-weight:650;font-size:13px;padding:17px 22px;text-decoration:none}.wp-block-button__link span{margin-left:25px}.wp-block-button__link:hover{background:#e1b665}.hero .wp-block-buttons{margin-top:30px}.hero-trust{display:flex;gap:28px;border-top:1px solid #d9d9d9;margin-top:44px;padding-top:22px;align-items:center}.hero-trust p{font-size:11px;margin:0;line-height:1.6}.hero-trust strong{font-size:30px;font-weight:500;margin-right:7px}.image-placeholder{background:#efefeb;min-height:260px;display:flex;flex-direction:column;justify-content:flex-end;padding:24px;border:1px solid #e3e4de;position:relative}.image-placeholder:before{content:'';position:absolute;inset:22px;border:1px solid #d6d8cf;pointer-events:none}.image-placeholder>*{position:relative;margin-inline:14px}.image-placeholder .todo{margin-top:auto}.placeholder-label{font-size:19px;line-height:1.5;max-width:280px}.placeholder-note{font-size:11px;color:#62655e}.hero-image{min-height:500px}.todo{font-size:11px;letter-spacing:.015em;color:#62655e;line-height:1.7}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:start;margin-bottom:45px}.section-heading h2{max-width:520px}.section-heading .lead{margin-top:6px}.three-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}.principle{padding-top:22px;border-top:1px solid #bfc1b9}.index{font-size:12px;color:#676a61;margin-bottom:28px}.principle p:last-child{font-size:14px;color:#62655e;max-width:320px}.references{border-block:1px solid #d9d9d9;padding-block:65px}.references h2{font-size:30px}.references .three-grid{margin-top:32px}.reference{padding:20px 0;border-top:1px solid #e4e4df}.reference p{font-size:14px;margin-bottom:0}.reference .index{font-size:10px;margin-bottom:10px}.service-row{display:grid;grid-template-columns:70px 1fr 40px;gap:20px;border-top:1px solid #d9d9d9;padding:28px 0}.service-row:last-child{border-bottom:1px solid #d9d9d9}.service-row h3{font-size:23px;margin:0 0 9px}.service-row p{margin-bottom:0}.service-row div p{font-size:12px;color:#62655e}.service-arrow{font-size:25px}.project .image-placeholder{min-height:310px;margin-bottom:22px}.project h3{font-size:23px}.project>p:last-child{font-size:13px;color:#62655e}.owner{display:grid;grid-template-columns:1fr 1fr;gap:9%;border-top:1px solid #d9d9d9;align-items:center}.owner-image{min-height:430px}.owner-copy .todo{margin-top:28px}.contact{background:#f1f1ed;border-top:4px solid #eac378}.contact h2{font-size:clamp(36px,4.5vw,66px);max-width:780px}.contact-sub{font-size:27px;color:#62655e;margin-bottom:52px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:850px;margin-bottom:38px}.contact-value{font-size:clamp(15px,1.6vw,22px);overflow-wrap:anywhere}.footer{display:flex;flex-wrap:wrap;align-items:start;justify-content:space-between;gap:28px;padding-block:50px 28px}.footer strong{font-size:28px;letter-spacing:-.05em}.footer p{font-size:12px}.footer small{font-size:10px;color:#62655e}.footer-links{display:flex;gap:26px;font-size:12px;padding-top:12px}.draft-note{width:100%;border-top:1px solid #e3e3df;padding-top:20px;color:#62655e;font-size:10px!important}.skip-link{position:fixed;top:-100px;left:20px;padding:15px;background:white;z-index:100}.skip-link:focus{top:10px}.legal{min-height:65vh}.legal h1{font-size:48px}.wp-site-blocks>*,main>.wp-block-post-content>*{margin-block-start:0} .wp-block-template-part{margin:0}
@media(max-width:1000px){.wrap{width:calc(100% - 56px)}.header-inner{min-height:88px}.brand img{width:54px}.brand strong{font-size:25px}.menu-toggle{display:flex;align-items:center;gap:18px;background:transparent;border:1px solid #c9cbc3;padding:10px 15px;font:inherit;font-size:13px}#primary-nav{display:none;position:absolute;inset:88px 0 auto;background:white;padding:25px 28px;border-bottom:1px solid #d9d9d9;flex-direction:column;align-items:stretch;gap:0}#primary-nav.is-open{display:flex}#primary-nav a{padding:14px 0;font-size:16px}.hero{gap:5%;padding-top:50px}.hero-image{min-height:450px}.hero-trust{display:block}.hero-trust p+p{margin-top:15px}.section{padding-block:75px}.three-grid{gap:22px}.project .image-placeholder{min-height:250px;padding:15px}.placeholder-label{font-size:16px}.owner{gap:6%}}
@media(max-width:650px){.wrap{width:calc(100% - 40px)}h1{font-size:44px}.hero{grid-template-columns:1fr;padding-block:40px 55px;gap:32px}.hero-image{min-height:310px}.hero-trust{display:flex;margin-top:30px}.hero-trust p+p{margin-top:0}.hero .eyebrow{font-size:9px}.section{padding-block:58px}.section-label{margin-bottom:27px}.section-heading,.three-grid,.owner,.contact-grid{grid-template-columns:1fr;gap:28px}.section-heading{margin-bottom:25px}.section-heading h2{margin-bottom:0}.principle{padding-top:18px}.principle .index{margin-bottom:18px}.references .three-grid{gap:12px}.reference{display:flex;align-items:center;gap:25px}.reference .index{margin:0}.service-row{grid-template-columns:28px 1fr;gap:14px}.service-arrow{display:none}.service-row h3{font-size:20px}.project .image-placeholder{min-height:310px}.owner-image{min-height:350px}.contact-sub{font-size:22px;margin-bottom:35px}.contact-grid{gap:20px}.footer-links{flex-wrap:wrap;gap:20px}.legal h1{font-size:38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Keep the full template-part wrapper sticky, not only its child. */
.wp-site-blocks > .wp-block-template-part:first-child { position: sticky; top: 0; z-index: 20; }
.site-header { position: relative; }


/* Restrained interaction layer: readable by default, no layout animation. */
.site-header { transition: box-shadow 240ms ease, background-color 240ms ease; }
.site-header.is-scrolled { background: #fff; box-shadow: 0 5px 22px rgb(37 39 36 / .055); }
#primary-nav a { position: relative; transition: color 180ms ease; }
#primary-nav a:not(.nav-cta)::after { content: ''; position: absolute; bottom: -8px; left: 0; width: 100%; height: 2px; background: #eac378; transform: scaleX(0); transform-origin: left; transition: transform 220ms ease; }
#primary-nav a:hover { text-decoration: none; }
#primary-nav a:hover::after, #primary-nav a:focus-visible::after, #primary-nav a[aria-current="location"]::after { transform: scaleX(1); }
#primary-nav .nav-cta { transition: border-color 200ms ease, background-color 200ms ease; }
#primary-nav .nav-cta:hover, #primary-nav .nav-cta[aria-current="location"] { border-color: #c49a4c; background: #eac37824; }
.wp-block-button__link { transition: background-color 200ms ease, box-shadow 200ms ease; }
.wp-block-button__link:hover, .wp-block-button__link:focus-visible { box-shadow: 0 5px 14px rgb(37 39 36 / .10); }
.wp-block-button__link span { display: inline-block; transition: transform 220ms ease; }
.wp-block-button__link:hover span, .wp-block-button__link:focus-visible span { transform: translate(3px,-3px); }
.wp-block-button__link:active { box-shadow: none; }
.menu-toggle { transition: background-color 180ms ease, border-color 180ms ease; }
.menu-toggle:hover, .menu-toggle[aria-expanded="true"] { background: #eac37826; border-color: #b99960; }
.menu-toggle span { display: inline-block; transition: transform 200ms ease; }
.menu-toggle[aria-expanded="true"] span { transform: rotate(45deg); }
.footer-links a { text-decoration-color: #bfc1b9; transition: text-decoration-color 180ms ease; }
.footer-links a:hover { text-decoration-color: #a77720; }
/* These rows are informative placeholders, not links. */
.service-arrow { display: none; }
@media(max-width:1000px) { #primary-nav.is-open { animation: wood-menu-in 200ms ease-out; } #primary-nav a:not(.nav-cta)::after { bottom: 6px; width: 28px; } }
@keyframes wood-menu-in { from { opacity: .5; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media(prefers-reduced-motion:reduce) { .site-header, #primary-nav a, #primary-nav a::after, .wp-block-button__link, .wp-block-button__link span, .menu-toggle, .menu-toggle span, .footer-links a { transition: none !important; } #primary-nav.is-open { animation: none; } .wp-block-button__link:hover span,.wp-block-button__link:focus-visible span { transform: none; } }

/* Logo-derived hero. Fully visible static fallback before JS and for small screens. */
.plane-hero{--header-height:108px;--plane-size:clamp(86px,10vw,150px);position:relative;background:#fff}
.plane-stage{min-height:calc(100svh - var(--header-height));display:flex;align-items:center;background:#fff}
.plane-inner{padding-block:70px 35px}.plane-inner>.eyebrow{margin-bottom:72px}
.plane-track{position:relative;min-height:160px;display:flex;align-items:center;border-bottom:1px solid #d9d9d9;padding-block:22px 35px}
.plane-track h1{font-size:clamp(28px,4.65vw,70px);font-weight:500;letter-spacing:-.055em;line-height:1.2;margin:0;width:calc(100% - var(--plane-size) - 24px);white-space:nowrap}
.plane-tool{position:absolute;right:0;top:50%;width:var(--plane-size);height:auto;transform:translateY(-50%);pointer-events:none}
.plane-after{padding-top:35px;display:flex;justify-content:space-between;align-items:start;gap:32px}.plane-after .lead{max-width:530px;font-size:17px;margin:0}
.plane-cta{display:inline-flex;gap:32px;align-items:center;background:#eac378;padding:16px 22px;text-decoration:none;font-size:13px;font-weight:650;white-space:nowrap;transition:background 200ms ease,box-shadow 200ms ease}
.plane-cta span{transition:transform 200ms ease}.plane-cta:hover,.plane-cta:focus-visible{background:#e1b665;box-shadow:0 5px 14px #25272418}.plane-cta:hover span{transform:translate(3px,-3px)}
.plane-caption{display:flex;justify-content:space-between;gap:20px;margin-top:90px;font-size:11px;color:#62655e}.plane-caption:before{content:'';height:2px;width:28px;background:#eac378;align-self:center}.plane-caption>span:first-child{margin-right:auto}.plane-scroll-hint{display:none}
@media(min-width:761px) and (prefers-reduced-motion:no-preference){
 .plane-hero.is-motion{height:calc(240svh - var(--header-height))}
 .is-motion .plane-stage{position:sticky;top:var(--header-height);height:calc(100svh - var(--header-height));min-height:0}
 .is-motion .plane-tool{left:0;right:auto;transform:translate(var(--tool-x,0px),-50%);will-change:transform}
 .is-motion #plane-claim{clip-path:inset(-.25em var(--claim-cut,100%) -.35em 0)}
 .is-motion .plane-scroll-hint{display:block;opacity:var(--hint-opacity,1)}
}
@media(max-width:1000px){.plane-hero{--header-height:88px}.plane-after .lead{font-size:15px;max-width:410px}.plane-inner>.eyebrow{margin-bottom:50px}}
@media(max-width:760px){.plane-stage{min-height:0}.plane-inner{padding-block:45px 40px}.plane-inner>.eyebrow{font-size:9px;margin-bottom:35px}.plane-track{display:block;padding-top:100px;padding-bottom:28px}.plane-tool{top:0;left:0;right:auto;transform:none;width:100px}.plane-track h1{white-space:normal;width:100%;font-size:clamp(36px,7vw,52px);max-width:600px;line-height:1.18}.plane-after{display:block;padding-top:28px}.plane-after .lead{font-size:16px;margin-bottom:25px}.plane-caption{margin-top:45px}.plane-caption>span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){.plane-cta,.plane-cta span{transition:none}.plane-cta:hover span{transform:none}}

/* Original gold curl emerges from the mouth and settles into its exact logo position. */
span.plane-tool{display:block;aspect-ratio:965 / 614}
span.plane-tool>img{display:block;width:100%;height:100%}
span.plane-tool>.plane-shaving{position:absolute;inset:0;transform-origin:48.5% 21.2%}
@media(min-width:761px) and (prefers-reduced-motion:no-preference){
 .is-motion .plane-shaving{opacity:var(--shaving-opacity,0);transform:translateY(var(--shaving-rise,24%)) rotate(var(--shaving-rotate,-180deg)) scale(var(--shaving-scale,.04));will-change:transform,opacity}
}

/* Hero hierarchy: supporting text aligned to the same editorial rhythm. */
.plane-inner{padding-block:56px 40px}
.plane-inner>.eyebrow{font-size:14px;font-weight:500;letter-spacing:.045em;line-height:1.6;color:#565955;margin-bottom:48px}
.plane-after{padding-top:32px;align-items:center}
.plane-caption{justify-content:flex-start;margin-top:28px;min-height:22px;font-size:13px;line-height:1.6;color:#565955}
.plane-caption::before,.plane-caption>span:first-child{display:none}
.plane-scroll-hint{padding-left:12px;border-left:2px solid #eac378}
@media(max-width:1000px){.plane-inner>.eyebrow{font-size:13px;margin-bottom:40px}}
@media(max-width:760px){.plane-inner{padding-block:40px}.plane-inner>.eyebrow{font-size:12px;letter-spacing:.025em;margin-bottom:30px}.plane-caption{display:none}}
@media(prefers-reduced-motion:reduce){.plane-caption{display:none}}
/* Differentiate positioning from company proof: editorial statement / open logo field. */
#anspruch .section-heading{display:block;margin-bottom:48px}
#anspruch .section-heading h2{max-width:740px}
.reference-band{width:100%;max-width:none;background:#f5f5f2;border:0;padding-block:64px 48px;text-align:center}
.reference-band .section-label{margin-bottom:16px}
.reference-band h2{font-size:clamp(25px,2.5vw,36px);max-width:650px;margin:0 auto;line-height:1.2}
.logo-collection{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:5%;row-gap:36px;align-items:center;margin-block:48px}
.logo-slot{min-height:86px;display:flex;align-items:center;justify-content:center;padding:16px}
.logo-slot p{margin:0;color:#74786e;font-size:clamp(19px,2vw,26px);font-weight:500;letter-spacing:-.035em}
.logo-slot img{display:block;max-width:100%;max-height:72px;width:auto;height:auto;object-fit:contain}
.reference-status{max-width:650px;margin:0 auto;font-size:11px}
@media(max-width:650px){#anspruch .section-heading{margin-bottom:32px}.reference-band{padding-block:44px 36px}.logo-collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;margin-block:28px}.logo-slot{min-height:72px;padding:12px}}

/* Project stories: one generous image with three selectable alternatives. */
.project-stories{display:flex;flex-direction:column;gap:76px}
.project-story{padding-bottom:52px;border-bottom:1px solid #d9d9d9}
.project-gallery{display:grid;grid-template-columns:minmax(0,3.5fr) minmax(0,1fr);gap:20px;height:clamp(380px,43vw,600px)}
.project-view{min-width:0;min-height:0}
.project-thumbs{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:16px;min-height:0}
.gallery-image{width:100%;height:100%;min-height:0;background:#efefeb;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;overflow:hidden;position:relative}
.gallery-image p{margin:0}.gallery-image .todo{margin-bottom:8px}.gallery-caption{font-size:22px;line-height:1.3;letter-spacing:-.025em}.gallery-note{font-size:12px;color:#62655e;margin-top:10px!important}
.gallery-choice{display:block;width:100%;height:100%;border:0;padding:0;background:transparent;text-align:left;color:inherit;font:inherit;cursor:pointer;position:relative;min-height:0}
.gallery-choice::after{content:'↗';position:absolute;right:12px;top:8px;font-size:20px;color:#62655e;transition:transform 180ms ease}
.gallery-choice:hover::after{transform:translate(2px,-2px)}
.project-thumbs .gallery-image{padding:18px;transition:background 180ms ease}.project-thumbs .gallery-caption{font-size:14px}.project-thumbs .gallery-note{display:none}.project-thumbs .todo{font-size:9px}
.gallery-choice:hover .gallery-image,.gallery-choice:focus-visible .gallery-image{background:#e8e6df}.gallery-choice:focus-visible{outline:2px solid #252724;outline-offset:3px}
.gallery-image:has(img){padding:0;background:#efefeb}.gallery-image figure{margin:0;width:100%;height:100%}.gallery-image img{display:block;width:100%;height:100%;object-fit:cover}.project-view .gallery-image img{object-fit:contain}
.project-description{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:end;align-items:last baseline;padding-top:28px}.project-description h3{font-size:clamp(24px,2.6vw,36px);margin-bottom:0}.project-description>p{font-size:15px;color:#62655e;max-width:none;margin:0}.project-description .todo{margin-bottom:12px}
.gallery-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:650px){.project-stories{gap:46px}.project-story{padding-bottom:36px}.project-gallery{height:auto;display:flex;flex-direction:column;gap:12px}.project-view{height:280px}.project-thumbs{grid-template-rows:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;height:94px}.project-thumbs .gallery-image{padding:10px}.project-thumbs .gallery-caption{font-size:11px}.project-thumbs .todo{font-size:8px}.gallery-choice::after{display:none}.gallery-image{padding:22px}.project-description{grid-template-columns:1fr;gap:18px;padding-top:22px}}
@media(prefers-reduced-motion:reduce){.gallery-choice::after,.project-thumbs .gallery-image{transition:none}.gallery-choice:hover::after{transform:none}}

/* One closing divider, supplied by the following company section. */
.project-story:last-child{border-bottom:0;padding-bottom:0}
#projekte .section-heading{display:block}

/* Customer voices: quiet typography beneath the company logos. */
.customer-quotes{max-width:1040px;margin:58px auto 0;padding-top:42px;border-top:1px solid #d9d9d9;text-align:center;position:relative}
.quote-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#62655e;margin:0 0 24px}
.quote-stage{display:grid;margin:0 76px}
.customer-quote{grid-area:1/1;margin:0;min-width:0;visibility:hidden;opacity:0;transition:opacity 280ms ease}
.customer-quote.is-current{visibility:visible;opacity:1}
.customer-quote blockquote{margin:0;border:0;padding:0;font-size:clamp(18px,1.65vw,22px);line-height:1.6;letter-spacing:-.01em;font-weight:400}
.customer-quote blockquote p{margin:0}
.customer-quote figcaption{font-size:13px;color:#62655e;margin-top:22px;line-height:1.6}
.customer-quote figcaption::before{content:'— ';color:#b48d43}
.quote-controls{margin-top:28px}
.quote-controls[hidden]{display:none}
.quote-arrow{position:absolute;top:50%;width:48px;height:48px;border:1px solid #c7c8c2;background:transparent;border-radius:50%;font:inherit;font-size:24px;cursor:pointer;color:#252724;transition:background 180ms,border-color 180ms}
.quote-prev{left:0}.quote-next{right:0}
.quote-arrow:hover{background:#eac378;border-color:#eac378}
.quote-arrow:focus-visible{outline:2px solid #252724;outline-offset:4px}
.quote-count{font-size:11px;letter-spacing:.12em;color:#62655e}
.quote-toggle{display:none}
@media(max-width:650px){.customer-quotes{margin-top:36px;padding-top:30px}.quote-stage{margin:0 42px}.quote-arrow{width:34px;height:34px;font-size:20px}.customer-quote blockquote{font-size:18px}}
@media(prefers-reduced-motion:reduce){.customer-quote,.quote-arrow{transition:none}}

/* Local refinement: approved project photo can be set with --hero-project-image: url(...). */
.plane-stage{isolation:isolate;position:relative}
.plane-stage::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--hero-project-image,none);background-size:cover;background-position:center;filter:grayscale(1);opacity:.07}
#anspruch .section-heading{display:block}
.position-intro{max-width:710px;font-size:17px;line-height:1.65;color:#565955;margin:20px 0 0}
.contact-sub{font-size:18px;line-height:1.6;max-width:620px;margin-bottom:40px}
.contact-address{font-size:15px;line-height:1.9;color:#565955}
.contact-address a{display:inline-block;margin-top:10px}
.contact-value a{text-decoration-thickness:1px}
@media(max-width:650px){.position-intro{font-size:16px}.contact-sub{font-size:16px}.plane-after .lead{max-width:100%}}
/* Provisional real project photography, originals retained. */
.project-gallery-two .project-thumbs{grid-template-rows:minmax(0,1fr)}
.project-film{margin-top:26px;color:#565955;font-size:14px}.project-film summary{cursor:pointer;text-decoration:underline;text-underline-offset:5px;padding:12px 0}.project-film video{display:block;width:100%;max-height:560px;margin-top:16px;background:#202220}.project-film p{font-size:12px;margin-top:12px}
.plane-hero{--hero-project-image:url('assets/project-media/porsche-raum.webp')}
@media(max-width:650px){.project-gallery-two .project-thumbs{grid-template-columns:1fr;height:110px}.project-gallery-two .project-thumbs img{object-fit:contain}}

/* Leistungen: Überschrift gestapelt, lesbare Beschreibungen */
#leistungen .section-heading{display:block;margin-bottom:40px}#leistungen .section-heading h2{max-width:none}#leistungen .section-heading .lead{max-width:640px;margin:18px 0 0}#leistungen .service-row div p{font-size:16px;line-height:1.6;color:#565955}

/* Projekt mit vier Vorschaubildern + Videogruppe */
.project-gallery-four .project-thumbs{grid-template-rows:repeat(4,minmax(0,1fr))}
.project-film .film-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:16px}.project-film .film-grid figure{margin:0}.project-film .film-grid video{margin-top:0;height:420px;object-fit:contain}.project-film .film-grid figcaption{font-size:13px;line-height:1.5;margin-top:10px;color:#565955}
@media(max-width:650px){.project-gallery-four .project-thumbs{grid-template-rows:none;grid-template-columns:repeat(4,minmax(0,1fr))}.project-film .film-grid{grid-template-columns:1fr}.project-film .film-grid video{height:auto;max-height:70vh}}

/* Unternehmen: Textversion ohne Bild (Inhaberporträt folgt) */
.owner-solo{grid-template-columns:minmax(0,1fr)}.owner-solo .owner-copy{max-width:780px}.owner-name{font-size:15px;letter-spacing:.01em;color:#565955;margin:28px 0 0;padding-top:16px;border-top:2px solid #eac378;display:inline-block}

/* Unternehmen: Inhaberfoto links, Text rechts */
.owner-photo{margin:0}.owner-photo img{display:block;width:100%;height:auto;max-height:600px;object-fit:cover;object-position:50% 25%}
@media(max-width:650px){.owner-photo img{max-height:420px}}

/* Leistungen: dunkles Band als Kontrast zum hellen Anspruch-Abschnitt */
#leistungen{background:#252724;color:#f4f4f0;box-shadow:0 0 0 100vmax #252724;clip-path:inset(0 -100vmax)}
#leistungen .section-label{color:#eac378}
#leistungen h2,#leistungen h3{color:#fff}
#leistungen .section-heading .lead{color:#c9cbc4}
#leistungen .service-row{border-top-color:#41443f}
#leistungen .service-row:last-child{border-bottom-color:#41443f}
#leistungen .service-row .index{color:#eac378}
#leistungen .service-row div p{color:#b9bbb4}

/* Projekte: kleine Kontextzeile über dem Titel */
.project-description .project-meta{font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;line-height:1.6;color:#7c7c7c;margin:0 0 12px}

/* Hero: Baustellenfoto, in dem OSB-Platten an die Wand fliegen (assets/hero-wall.js) */
.plane-stage.has-wall::before{display:none}
/* Prinzipien ohne Nummer: Überschrift näher an die Linie, mehr Luft zwischen den Spalten */
.principle{padding-top:18px}.principle h3{margin-top:0}.three-grid{gap:56px}
@media(max-width:1000px){.three-grid{gap:32px}}
@media(max-width:650px){.three-grid{gap:30px}.principle{padding-top:14px}}
.plane-stage.has-wall .plane-track{border-bottom-color:transparent}
.hero-wall{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:#e9e7e1}
.hero-wall-photo{position:absolute;left:0;top:0;width:1600px;height:900px;transform-origin:0 0}
.hero-wall-photo>img{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-wall-backing,.hero-wall-boards{position:absolute;left:0;top:0;transform-origin:0 0}
.hero-wall-board{position:absolute;background-size:64px auto;box-shadow:inset 0 0 0 1.2px #7a5a2e99;will-change:transform,opacity}
.hero-wall-veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.82) 45%,rgba(255,255,255,.68) 100%)}
@media(max-width:760px){.hero-wall-veil{background:rgba(255,255,255,.84)}}
