/* Shared editorial extensions. Existing brand motion and geometry remain authoritative. */
:root{--ink:#212227;--paper:#FFFFFF;--hairline:rgba(33,34,39,.22)}
html{scroll-padding-top:100px}body{color:var(--ink);background:var(--paper)}
button,input,textarea,summary,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid currentColor;outline-offset:5px}
[hidden]{display:none!important}p{overflow-wrap:break-word}.wrap{min-width:0}.inner-page main{padding-top:var(--navheight)}
.breadcrumbs{display:flex;gap:12px;flex-wrap:wrap;padding-top:25px;padding-bottom:25px;font-size:11px;line-height:1.6;border-bottom:1px solid var(--hairline)}.breadcrumbs a{text-decoration:underline;text-underline-offset:4px}.breadcrumbs [aria-current]{opacity:.75}
.inner-hero{padding-top:70px;padding-bottom:85px;min-height:0}.inner-hero h1{max-width:1280px;font-size:clamp(52px,7.4vw,128px);line-height:1.04;letter-spacing:-.065em;margin:70px 0 50px;font-weight:400;overflow-wrap:normal;hyphens:auto}.hero-details{gap:45px}.hero-details>p{font-size:clamp(19px,1.7vw,26px);line-height:1.55;max-width:850px}.hero-details>.text-arrow{flex-shrink:0;align-self:end}.hero-details>span{max-width:340px;font-size:10px;line-height:1.7;letter-spacing:.07em}
.inner-hero--white{background:white;color:var(--ink)}.inner-hero--green{background:var(--green);color:var(--ink)}.inner-hero--blue{background:var(--blue);color:var(--ink)}.inner-hero--cotton{background:var(--cotton);color:var(--ink)}
.preview-note{font-size:12px!important;line-height:1.6}.site-footer .footer-grid>div>span{line-height:1.6;font-size:9px}.site-footer .footer-grid>div:first-child>img{height:auto;margin-left:0}.site-footer a{width:fit-content}
.mobile-menu{max-height:calc(100svh - var(--navheight));overflow:auto;overscroll-behavior:contain}.mobile-menu nav a{font-size:clamp(26px,3vw,48px);padding-block:11px}.menu-layout{align-items:start}.mobile-menu .menu-phone{margin-top:20px}.mobile-menu a[aria-current=page]{text-decoration:underline;text-underline-offset:8px}
.cap-list{list-style:none;padding:0;margin:0}.cap-list li{margin:0}.cap-row{min-height:100px}.cap-row small{line-height:1.65}.cap-schematic img{width:100%;height:auto;aspect-ratio:1100/720;object-fit:contain}.cap-schematic{min-height:300px}
.personal-section{background:white}.home-news{padding:100px 0 130px;background:white}.home-news .split-statement{margin-top:65px}.home-news h2{font-size:clamp(40px,4.7vw,80px);letter-spacing:-.06em;line-height:1.1;font-weight:400}.home-news p{font-size:20px;line-height:1.6;margin-bottom:35px}
.editorial-section{padding:100px 0;background:white}.editorial-row{display:grid;grid-template-columns:.28fr .72fr 1fr;gap:45px;padding:55px 0;border-top:1px solid var(--hairline)}.editorial-row:first-child{border-top:1px solid var(--ink)}.editorial-row>.eyebrow{padding-top:9px}.editorial-row h2{font-size:clamp(29px,2.9vw,49px);font-weight:400;line-height:1.15;letter-spacing:-.05em;max-width:420px}.editorial-row p{font-size:18px;line-height:1.75;max-width:720px;margin:0 0 20px}.editorial-row p:last-child{margin-bottom:0}
.service-purpose{padding:90px 0 105px;background:white}.service-purpose .wrap{display:grid;grid-template-columns:.65fr 1.35fr;gap:90px}.service-purpose .eyebrow{line-height:1.9;max-width:330px}.service-purpose p{font-size:clamp(26px,3vw,45px);line-height:1.35;letter-spacing:-.035em;max-width:900px}
.service-experience{background:var(--cotton);padding:100px 0}.service-experience-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:start}.service-visual{position:sticky;top:calc(var(--navheight) + 35px);min-width:0}.technical-stage{margin-top:35px;max-width:100%;overflow:auto}.technical-stage svg{display:block;width:100%;height:auto}.technical-stage [data-phase]{opacity:.72;transition:opacity .6s}.service-experience[data-step="0"] [data-phase="0"],.service-experience[data-step="1"] [data-phase="1"],.service-experience[data-step="2"] [data-phase="2"]{opacity:1}.visual-caption{font-size:11px;line-height:1.65;padding-top:20px;max-width:600px}.visual-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;border-top:1px solid var(--ink);margin-top:30px}.visual-controls button{display:flex;flex-direction:column;gap:12px;text-align:left;border:0;border-top:3px solid transparent;background:none;padding:16px 0;color:var(--ink);font-size:13px;line-height:1.5;min-height:85px}.visual-controls button span{font-size:10px}.visual-controls button[aria-pressed=true]{border-top-color:var(--ink)}.visual-mode{font-size:11px;line-height:1.6;min-height:36px;margin-top:10px}.visual-follow{font-size:11px;padding:10px 0;background:none;border:0;border-bottom:1px solid currentColor;color:inherit}.service-method h2{font-size:clamp(40px,4vw,66px);font-weight:400;line-height:1.1;letter-spacing:-.06em;margin:30px 0 55px}.service-method article{border-top:1px solid var(--hairline);padding:35px 0 50px}.service-method h3{font-size:29px;line-height:1.2;letter-spacing:-.035em;font-weight:400;margin:20px 0}.service-method p{font-size:17px;line-height:1.7}.service-method article.is-active{border-top-color:var(--ink)}
.service-evidence,.showroom-section{padding:110px 0;background:white}.evidence-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;align-items:center}.evidence-layout h2{font-size:clamp(38px,4.5vw,75px);font-weight:400;line-height:1.1;letter-spacing:-.055em;margin:30px 0}.evidence-layout p{font-size:18px;line-height:1.7;margin-bottom:35px}.photo-brief{margin:0;min-width:0}.photo-frame{aspect-ratio:var(--photo-ratio,16/10);background:var(--cotton);padding:35px;display:flex;flex-direction:column;justify-content:space-between;position:relative;border:1px solid var(--hairline)}.photo-cross{font-size:50px;font-weight:200;line-height:1;margin:25px 0}.photo-frame p{font-size:15px;line-height:1.6;max-width:520px;margin:0 0 35px}.photo-frame .eyebrow{font-size:9px;line-height:1.7}.photo-brief figcaption{font-size:11px;line-height:1.6;margin-top:15px}
.questions-section{background:white;padding:100px 0}.questions-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:100px}.questions-layout h2{font-size:clamp(36px,4vw,66px);font-weight:400;line-height:1.1;letter-spacing:-.05em}.questions-layout details{border-top:1px solid var(--hairline);padding:0}.questions-layout details:last-child{border-bottom:1px solid var(--hairline)}.questions-layout summary{cursor:pointer;font-size:20px;line-height:1.5;padding:25px 35px 25px 0;list-style:none;position:relative}.questions-layout summary::-webkit-details-marker{display:none}.questions-layout summary span{position:absolute;right:0;top:25px;transition:transform .25s}.questions-layout details[open] summary span{transform:rotate(45deg)}.questions-layout details p{font-size:17px;line-height:1.7;max-width:700px;padding:0 20px 30px 0}
.related-section{background:white;padding:95px 0}.related-section h2{font-size:clamp(40px,4.5vw,75px);line-height:1.1;letter-spacing:-.055em;font-weight:400;margin:35px 0}.related-section>.wrap>p{font-size:19px;line-height:1.65;max-width:780px}.related-links{display:grid;margin-top:40px}.related-links a{display:grid;grid-template-columns:55px 1fr 30px;align-items:center;gap:20px;padding:25px 0;border-top:1px solid var(--hairline)}.related-links a:last-child{border-bottom:1px solid var(--hairline)}.related-links a>span:first-child{font-size:10px;letter-spacing:.1em}.related-links strong{font-size:clamp(23px,2.5vw,38px);font-weight:400;letter-spacing:-.035em;line-height:1.2}.related-links a>span:last-child{text-align:right;transition:transform .3s}.related-links a:hover>span:last-child{transform:translate(3px,-3px)}
.next-step{padding:100px 0 120px;background:var(--cotton)}.next-step h2{font-size:clamp(45px,6.5vw,108px);font-weight:400;line-height:1.08;letter-spacing:-.065em;max-width:1200px;margin:40px 0 55px}.next-step .text-arrow{min-width:240px}.text-arrow{min-height:44px;line-height:1.5}
.service-index article{border-top:1px solid var(--ink);scroll-margin-top:110px}.service-index article:last-child{border-bottom:1px solid var(--ink)}.service-index article>a{display:grid;grid-template-columns:65px .9fr 1.1fr 35px;gap:35px;padding:45px 0;align-items:start}.service-index h2{font-size:clamp(29px,3.2vw,53px);font-weight:400;letter-spacing:-.05em;line-height:1.1}.service-index p{font-size:17px;line-height:1.75}.service-link-arrow{font-size:30px}.scenarios{background:white;padding:100px 0 120px}.scenarios>.wrap>h2{font-size:clamp(45px,5vw,86px);font-weight:400;line-height:1.1;letter-spacing:-.055em;margin:60px 0 80px}.scenario-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:55px}.scenario-columns article{border-top:1px solid var(--ink);padding-top:30px}.scenario-columns h3{font-size:39px;font-weight:400;letter-spacing:-.04em;margin-bottom:25px}.scenario-columns p{font-size:17px;line-height:1.7}.scenario-columns .related-links a{grid-template-columns:28px 1fr 20px;gap:10px;padding:15px 0}.scenario-columns .related-links strong{font-size:17px;letter-spacing:-.02em}
.collection-row{display:grid;grid-template-columns:.3fr 1fr 1fr 30px;gap:40px;align-items:start;padding:55px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--hairline)}.collection-row h2{font-size:clamp(30px,3.2vw,54px);font-weight:400;line-height:1.15;letter-spacing:-.05em}.collection-row p{font-size:18px;line-height:1.7}.testimonial-slot{margin-top:90px;padding:55px 0;border-top:1px solid var(--ink);max-width:1000px}.testimonial-slot h2{font-size:clamp(35px,4vw,65px);font-weight:400;line-height:1.15;letter-spacing:-.05em;margin:30px 0}.testimonial-slot p{font-size:21px;line-height:1.6;margin-bottom:30px;max-width:780px}.category-nav{display:flex;gap:25px;flex-wrap:wrap;margin-bottom:65px}.category-nav button{font-size:16px;background:none;border:0;border-bottom:1px solid transparent;color:var(--ink);padding:12px 0;min-height:44px}.category-nav button[aria-pressed=true]{border-bottom-color:var(--ink)}.topic-slots{display:grid;grid-template-columns:1fr 1fr;gap:0 70px;margin-top:70px}.topic-slots article{border-top:1px solid var(--hairline);padding:30px 0 50px}.topic-slots h2{font-size:30px;line-height:1.2;letter-spacing:-.035em;font-weight:400;margin:25px 0}.topic-slots p{font-size:17px;line-height:1.7}
.people-section{background:white;padding:30px 0 90px}.people-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.people-grid h2{font-size:40px;letter-spacing:-.045em;font-weight:400;margin:35px 0 20px}.people-grid article>p{font-size:18px;line-height:1.65;margin-top:15px}.company-strip{background:var(--cotton);padding:100px 0}.company-strip .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}.company-strip .wrap>span{font-size:clamp(85px,12vw,195px);letter-spacing:-.07em;line-height:1}.company-strip h2{font-weight:400;font-size:clamp(38px,4vw,66px);line-height:1.1;letter-spacing:-.05em;margin-bottom:30px}.company-strip p{font-size:18px;line-height:1.7;margin-bottom:30px}.project-principle{background:var(--blue);padding:60px 0}.project-principle img{max-width:900px;width:100%;height:auto;margin:40px auto;display:block}.article-meta{padding-block:40px}.article-meta dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 50px;border-top:1px solid var(--hairline);padding-top:25px}.article-meta dt{font-size:10px;letter-spacing:.1em;margin-bottom:10px;text-transform:uppercase}.article-meta dd{font-size:14px;line-height:1.6;margin:0}.article-sources{background:white;padding:45px 0 100px}.article-sources h2{font-size:35px;font-weight:400;letter-spacing:-.04em}.article-sources li{font-size:16px;line-height:1.7;margin:20px 0;max-width:850px}.article-sources a{text-decoration:underline}.article-sources p{font-size:14px;line-height:1.65;max-width:850px;margin-top:30px}.plain-list{padding-left:22px;max-width:850px}.plain-list li{font-size:18px;line-height:1.7;margin:20px 0}.job-details h2{font-weight:400;font-size:36px;letter-spacing:-.045em;line-height:1.2;margin:45px 0 30px}.contact-copy h2{font-size:clamp(42px,5vw,82px);line-height:1.1;letter-spacing:-.055em;font-weight:400;margin-bottom:35px}.project-form input,.project-form textarea{border-radius:0}.project-form input[type=file]{font-size:13px;max-width:100%;line-height:1.8}.project-form .form-note{font-size:12px;line-height:1.7}.project-form .form-note a{text-decoration:underline}.project-form .form-status{font-size:16px;line-height:1.65}.project-form #space-input{font-family:var(--type);font-size:18px;text-align:left;line-height:1.5;min-height:48px;border-bottom:1px solid currentColor;padding:12px 0}.subject-display{overflow-wrap:anywhere;line-height:1.6}.form-submit:disabled{opacity:.6;cursor:wait}
@media(max-width:1100px){.editorial-row{grid-template-columns:100px .85fr 1.15fr;gap:30px}.service-experience-grid{gap:45px}.evidence-layout,.questions-layout{gap:55px}.scenario-columns{gap:30px}.collection-row{grid-template-columns:100px 1fr 1fr 25px;gap:25px}.service-index article>a{grid-template-columns:45px 1fr 1fr 30px;gap:25px}.hero-details{flex-wrap:wrap}}
@media(max-width:800px){.editorial-row{grid-template-columns:.8fr 1.2fr;gap:25px}.editorial-row>.eyebrow{grid-column:1/-1}.service-purpose .wrap{grid-template-columns:1fr;gap:35px}.service-experience-grid{grid-template-columns:1fr;gap:60px}.service-visual{position:relative;top:auto}.service-method{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.service-method>.eyebrow,.service-method>h2{grid-column:1/-1}.service-method>h2{margin:0 0 10px}.service-method h3{font-size:24px}.service-method p{font-size:15px}.evidence-layout,.questions-layout{grid-template-columns:1fr;gap:50px}.scenario-columns{grid-template-columns:1fr;gap:50px}.scenario-columns .related-links{margin-top:25px}.service-index article>a{grid-template-columns:40px 1fr 30px}.service-index article>a>p{grid-column:2;grid-row:2}.service-link-arrow{grid-column:3;grid-row:1}.collection-row{grid-template-columns:1fr 30px}.collection-row>.eyebrow{grid-column:1/-1}.collection-row h2,.collection-row p{grid-column:1}.collection-row>span:last-child{grid-column:2;grid-row:2}.people-grid{gap:35px}.company-strip .wrap{gap:50px}.article-meta dl{grid-template-columns:1fr 1fr}.mobile-menu nav a{font-size:31px}}
@media(max-width:520px){.breadcrumbs{font-size:10px;gap:8px;padding-block:18px}.inner-hero{padding-top:35px;padding-bottom:55px}.inner-hero h1{font-size:clamp(41px,11vw,58px);letter-spacing:-.055em;margin:45px 0 35px;line-height:1.07}.inner-hero .subheader{font-size:8px;gap:15px}.hero-details>p{font-size:18px;line-height:1.6}.hero-details{gap:30px}.hero-details>span{max-width:none}.editorial-section{padding:60px 0}.editorial-row{grid-template-columns:1fr;padding:35px 0;gap:20px}.editorial-row h2{font-size:31px;max-width:none}.editorial-row p{font-size:16px;line-height:1.8}.service-purpose{padding:60px 0}.service-purpose p{font-size:27px;line-height:1.4}.service-experience{padding:60px 0}.technical-stage{margin-top:25px}.technical-stage svg{min-width:560px}.technical-stage{padding-bottom:12px}.technical-stage::after{content:'Diagramm horizontal ansehen \2194\FE0E';display:block;font-family:var(--type);font-size:10px;padding-top:10px;position:sticky;left:0;width:fit-content}.visual-caption{font-size:11px}.visual-controls{gap:15px}.visual-controls button{font-size:12px;min-height:100px}.service-method{grid-template-columns:1fr;gap:0}.service-method article{padding:25px 0}.service-method h3{font-size:27px}.service-method p{font-size:16px}.service-method>h2{margin:25px 0 35px}.service-evidence,.showroom-section,.questions-section,.related-section{padding:65px 0}.evidence-layout h2,.questions-layout h2{font-size:39px}.photo-frame{padding:25px;aspect-ratio:auto;min-height:340px}.photo-frame p{font-size:14px;margin-bottom:30px}.photo-cross{font-size:38px}.questions-layout summary{font-size:18px;padding-block:22px}.questions-layout details p{font-size:16px}.related-links a{grid-template-columns:35px 1fr 24px;gap:13px;padding:22px 0}.related-links strong{font-size:24px}.next-step{padding:65px 0 80px}.next-step h2{font-size:44px;margin:30px 0 40px}.service-index article>a{grid-template-columns:28px 1fr 22px;padding:35px 0;gap:20px}.service-index h2{font-size:30px}.service-index p{font-size:16px;grid-column:1/3!important}.service-link-arrow{font-size:24px}.scenarios{padding:55px 0 70px}.scenarios .section-top{font-size:8px;line-height:1.7;gap:25px}.scenarios>.wrap>h2{font-size:43px;margin:40px 0 50px}.scenario-columns h3{font-size:34px}.scenario-columns p{font-size:16px}.collection-row{gap:22px;padding:35px 0}.collection-row h2{font-size:33px}.collection-row p{font-size:16px}.testimonial-slot{padding-top:35px;margin-top:60px}.testimonial-slot h2{font-size:36px}.testimonial-slot p{font-size:18px}.category-nav{gap:20px;margin-bottom:35px}.category-nav button{font-size:13px}.topic-slots{grid-template-columns:1fr;margin-top:40px}.topic-slots h2{font-size:28px}.people-grid{grid-template-columns:1fr;gap:60px}.people-grid h2{font-size:34px}.people-grid article>p{font-size:16px}.company-strip{padding:65px 0}.company-strip .wrap{grid-template-columns:1fr;gap:40px}.company-strip p{font-size:16px}.article-meta dl{grid-template-columns:1fr;gap:22px}.home-news{padding:65px 0}.home-news .split-statement{margin-top:40px}.home-news h2{font-size:39px}.home-news p{font-size:17px}.cap-row{min-height:96px}.cap-row strong{font-size:25px}.cap-schematic{min-height:220px}.mobile-menu{padding-block:20px 30px}.mobile-menu .menu-layout>.eyebrow{padding-bottom:15px}.mobile-menu nav a{font-size:28px;padding-block:9px}.mobile-menu .menu-phone{margin-top:18px}.contact-grid{gap:45px}.job-details h2{font-size:30px}.plain-list li{font-size:16px}}
body:not(.has-js) .visual-controls,body:not(.has-js) .visual-mode,body:not(.has-js) .visual-follow,body:not(.has-js) .category-nav{display:none}
.service-index article>a>*{min-width:0}.service-index h2{hyphens:auto;overflow-wrap:break-word}
.inner-hero h1{hyphens:none;overflow-wrap:anywhere}
.project-form label input,.project-form label textarea{border-bottom-color:rgba(33,34,39,.65)}
.nav-desktop a[aria-current=location]{opacity:1}.nav-desktop a[aria-current=location]::after{transform:scaleX(1)}
@media(max-height:760px){.service-visual{position:relative;top:auto}}
@media(prefers-reduced-motion:reduce){.technical-stage [data-phase]{opacity:1;transition:none}.questions-layout summary span,.related-links a>span:last-child{transition:none}.service-visual{position:relative;top:auto}}
.ref-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ref-tile{min-width:0}.ref-placeholder strong{max-width:100%;overflow-wrap:anywhere;hyphens:auto}
@media(max-width:760px){.ref-grid{grid-template-columns:minmax(0,1fr)}}
.is-home :is(h2,h3,.portrait-words),.sheet-letterhead>span{min-width:0;overflow-wrap:anywhere;hyphens:auto}
h1,h2,h3{min-width:0;overflow-wrap:anywhere}
/* Long service names and enlarged text may wrap without widening the page. */
.cap-row>span{min-width:0}.cap-row strong,.cap-row small{overflow-wrap:anywhere}.cap-row>i{flex-shrink:0}
.legacy-stamp{flex-wrap:wrap}
.section-top>span{min-width:0;overflow-wrap:anywhere}.scene-picker strong{max-width:100%;overflow-wrap:anywhere}
.cap-row{grid-template-columns:48px minmax(0,1fr) max-content}.cap-row>i{min-width:24px}
.cap-foot{flex-wrap:wrap;gap:12px}.cap-foot>span{min-width:0;overflow-wrap:anywhere}
.room-label{flex-wrap:wrap}.room-label>span{min-width:0;overflow-wrap:anywhere}
@media(max-width:720px){.cap-row{grid-template-columns:30px minmax(0,1fr) max-content}.cap-row>i{min-width:20px}}
.hero-subline{font-size:clamp(21px,2.2vw,34px);line-height:1.3;letter-spacing:-.035em;color:rgba(33,34,39,.8);max-width:900px;margin:-22px 0 55px}
/* Reflow at 320 px (400 % zoom): wide tables scroll inside their box, long file names and labels wrap */
.article-sources li{overflow-wrap:anywhere}
/* Home: "sieben bereiche. ein anspruch." keeps its two lines; below 1180 px the intro text moves under the headline */
.capabilities-heading h2{hyphens:manual;overflow-wrap:normal}
.capabilities-heading h2{flex:1 1 auto}.capabilities-heading>p{flex:0 1 450px}
@media(min-width:721px) and (max-width:1180px){.capabilities-heading{display:grid;grid-template-columns:1fr;gap:35px;align-items:start}}
/* Home: previews of the seven areas show still frames of the stage graphics (white line art on Space Black) */
.cap-visual{background:var(--black);color:var(--white)}.cap-visual .cap-schematic img{opacity:1}
/* Legal pages: calm document layout */
.legal-document{background:var(--white);padding:clamp(30px,4vw,60px) 0 clamp(90px,9vw,150px)}.legal-layout>*{max-width:1080px}
.legal-part{display:grid;grid-template-columns:.382fr .618fr;gap:clamp(20px,4vw,70px);border-top:1px solid var(--line);padding:clamp(28px,3vw,44px) 0}
.legal-part h2{font-size:clamp(20px,1.8vw,26px);font-weight:400;letter-spacing:-.03em;line-height:1.25;margin:0}.legal-part h2 span{display:block;font-size:11px;letter-spacing:.12em;color:rgba(33,34,39,.72);margin-bottom:10px}
.legal-part p,.legal-part li{font-size:16px;line-height:1.7;color:rgba(33,34,39,.85);margin:0 0 16px;overflow-wrap:anywhere}.legal-part ul{margin:0 0 16px;padding-left:20px}.legal-part li{margin:0 0 4px}
.legal-open{background:var(--cotton);color:var(--black);padding:1px 6px;font-size:.9em}
.legal-stand{border-top:1px solid var(--line);padding-top:22px;font-size:13px;color:rgba(33,34,39,.7)}
@media(max-width:800px){.legal-part{grid-template-columns:1fr;gap:14px}}
/* Home: photo slots (until approved photos exist) */
.is-slot .slot-frame{background:var(--white);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;padding:clamp(20px,2.4vw,34px);height:100%;min-height:220px}.is-slot .photo-cross{font-size:32px;margin:0;line-height:1}.is-slot .slot-frame p{font-size:14px;line-height:1.6;max-width:440px;margin:0;color:rgba(33,34,39,.8)}
.house-photo,.quality-photo{margin:0;min-width:0}.house-photo img,.quality-photo img{display:block;width:100%;height:100%;object-fit:cover}.house-photo figcaption,.quality-photo figcaption{font-size:11px;line-height:1.6;margin-top:10px;color:rgba(33,34,39,.7)}
/* Home: our building and brochure sneak preview */
.house-section{background:var(--cotton);padding:clamp(100px,10vw,170px) 0}
.house-grid{display:grid;grid-template-columns:.618fr .382fr;gap:clamp(36px,5vw,90px);align-items:end;margin-top:clamp(40px,5vw,70px)}.house-photo{aspect-ratio:16/10}.house-photo.is-slot .slot-frame{min-height:0}
.house-copy h2{margin:0 0 28px}.house-copy p{font-size:clamp(17px,1.4vw,21px);line-height:1.55;max-width:420px;margin:0}
.brochure-grid{display:grid;grid-template-columns:.382fr .618fr;gap:clamp(36px,5vw,90px);align-items:start;margin-top:clamp(80px,9vw,140px);border-top:1px solid var(--line);padding-top:clamp(40px,4vw,60px)}
.brochure-copy h3{font-size:clamp(30px,3vw,48px);font-weight:400;letter-spacing:-.055em;line-height:1.08;margin:0 0 22px}.brochure-copy p{font-size:16px;line-height:1.65;max-width:400px;margin:0 0 30px;color:rgba(33,34,39,.8)}
.brochure-actions{display:grid;gap:14px;max-width:320px}
.brochure-strip{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;overscroll-behavior-x:contain}.brochure-strip:focus-visible{outline:2px solid var(--black);outline-offset:4px}
.brochure-strip figure{margin:0;scroll-snap-align:start}.brochure-strip img{display:block;width:100%;height:auto;box-shadow:0 1px 0 var(--line)}.brochure-strip figcaption{display:flex;gap:16px;font-size:11px;letter-spacing:.06em;margin-top:12px;color:rgba(33,34,39,.75)}
.brochure-note{font-size:11px;color:rgba(33,34,39,.7);margin:8px 0 0}
/* Home: quality through project photos */
.quality-section{background:var(--white);padding:clamp(100px,10vw,170px) 0}
.quality-head{display:grid;grid-template-columns:.618fr .382fr;gap:clamp(36px,5vw,90px);align-items:end;margin:clamp(40px,5vw,70px) 0 clamp(50px,6vw,90px)}.quality-head h2{margin:0}.quality-head p{font-size:clamp(17px,1.4vw,21px);line-height:1.55;margin:0;max-width:420px}
.quality-grid{display:grid;grid-template-columns:.618fr .382fr;grid-template-rows:1fr 1fr;gap:clamp(18px,2vw,28px)}
.quality-item{display:flex;flex-direction:column;color:inherit;text-decoration:none;min-width:0}.quality-item.is-lead{grid-row:1/3}.quality-item .quality-photo{flex:1;aspect-ratio:4/3}.quality-item.is-lead .quality-photo{aspect-ratio:auto}
.quality-caption{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:14px 0}.quality-caption strong{font-weight:400;font-size:clamp(20px,1.8vw,28px);letter-spacing:-.04em}.quality-caption span{transition:transform .35s var(--ease)}
.quality-item:hover .quality-caption span,.quality-item:focus-visible .quality-caption span{transform:translate(3px,-3px)}.quality-item:focus-visible{outline:2px solid var(--black);outline-offset:6px}
@media(max-width:800px){.house-grid,.brochure-grid,.quality-head{grid-template-columns:1fr}.quality-grid{grid-template-columns:1fr;grid-template-rows:none}.quality-item.is-lead{grid-row:auto}.quality-item.is-lead .quality-photo{aspect-ratio:4/3}.house-photo{aspect-ratio:4/3}}
@media(prefers-reduced-motion:reduce){.quality-caption span{transition:none}}
.is-slot .slot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.is-slot .slot-tag{font-size:10px;letter-spacing:.12em;color:rgba(33,34,39,.72);padding-top:6px}
.house-photo:not(.is-slot){aspect-ratio:auto}.house-photo:not(.is-slot) img{height:auto}
/* Brochure preview: next spread peeks in, arrows and counter */
.brochure-strip{grid-auto-columns:100%;gap:0;scrollbar-width:none}.brochure-strip::-webkit-scrollbar{display:none}
.brochure-nav{display:flex;align-items:center;gap:18px;margin-top:6px}.brochure-nav[hidden]{display:none}
.brochure-nav button{width:44px;height:44px;border:1px solid var(--black);background:none;color:var(--black);font:inherit;font-size:18px;cursor:pointer;transition:background .25s,color .25s}.brochure-nav button:hover:not(:disabled){background:var(--black);color:var(--white)}.brochure-nav button:disabled{opacity:.3;cursor:default}.brochure-nav button:focus-visible{outline:2px solid var(--black);outline-offset:3px}
.brochure-count{font-size:12px;letter-spacing:.12em;min-width:64px;text-align:center}
@media(prefers-reduced-motion:reduce){.brochure-nav button{transition:none}}
.brochure-preview,.brochure-copy{min-width:0}
/* Menu panel: unfolds from the header, entries follow one after another */
.mobile-menu{clip-path:inset(0 0 100% 0);opacity:0;transition:clip-path .52s var(--ease),opacity .32s ease}
.mobile-menu.is-open{clip-path:inset(0 0 -120px 0);opacity:1}
.mobile-menu .menu-layout>*,.mobile-menu nav a{opacity:0;transform:translateY(14px);transition:opacity .4s ease,transform .5s var(--ease)}
.mobile-menu.is-open .menu-layout>*,.mobile-menu.is-open nav a{opacity:1;transform:none}
.mobile-menu.is-open nav a:nth-child(1){transition-delay:.08s}.mobile-menu.is-open nav a:nth-child(2){transition-delay:.12s}.mobile-menu.is-open nav a:nth-child(3){transition-delay:.16s}.mobile-menu.is-open nav a:nth-child(4){transition-delay:.2s}.mobile-menu.is-open nav a:nth-child(5){transition-delay:.24s}.mobile-menu.is-open nav a:nth-child(6){transition-delay:.28s}.mobile-menu.is-open nav a:nth-child(7){transition-delay:.32s}.mobile-menu.is-open nav a:nth-child(8){transition-delay:.36s}.mobile-menu.is-open nav a:nth-child(n+9){transition-delay:.4s}
.mobile-menu.is-open .menu-layout>:first-child{transition-delay:.04s}.mobile-menu.is-open .menu-layout>:not(nav):not(:first-child){transition-delay:.44s}
@media(prefers-reduced-motion:reduce){.mobile-menu,.mobile-menu .menu-layout>*,.mobile-menu nav a{transition:none}}
/* Photos inside figures: picture wrapper must not break sizing */
figure picture{display:contents}
.quality-photo img{object-position:50% 40%}
/* Home: team photo and reference tiles with photos */
.people-photo{margin:0}.people-photo picture,.people-photo img{display:block;width:100%;aspect-ratio:4/4.7;object-fit:cover}
.people-photo figcaption{margin-top:16px;font-size:clamp(24px,2.4vw,40px);letter-spacing:-.06em;line-height:1.08}
.ref-tile--photo{display:block;color:inherit;text-decoration:none}.ref-photo{margin:0;aspect-ratio:1.25;overflow:hidden;background:var(--cotton)}.ref-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.ref-tile--photo:hover .ref-photo img{transform:scale(1.03)}
.ref-caption{display:grid;grid-template-columns:1fr auto;gap:6px 20px;border-top:1px solid var(--line);padding-top:16px;margin-top:14px}.ref-caption span{font-size:10px;letter-spacing:.13em;grid-column:1/-1}.ref-caption strong{font-size:clamp(26px,2.6vw,44px);font-weight:400;letter-spacing:-.06em;line-height:1.1}.ref-caption small{font-size:13px;color:rgba(33,34,39,.72);grid-column:1}.ref-caption i{font-style:normal;font-size:26px;grid-column:2;grid-row:2/4;align-self:center;transition:transform .4s}.ref-tile--photo:hover .ref-caption i{transform:translate(4px,-4px)}
.ref-tile--photo:focus-visible{outline:2px solid var(--black);outline-offset:6px}
@media(prefers-reduced-motion:reduce){.ref-photo img,.ref-caption i{transition:none}}
/* Quality photos: portrait lead left (golden minor), two landscape photos right */
.quality-grid{grid-template-columns:.382fr .618fr}.quality-item .quality-photo{aspect-ratio:16/10}.quality-item.is-lead .quality-photo{aspect-ratio:auto}
@media(max-width:800px){.quality-grid{grid-template-columns:1fr}.quality-item .quality-photo,.quality-item.is-lead .quality-photo{aspect-ratio:4/3}.quality-item.is-lead .quality-photo{aspect-ratio:4/5}}
/* Cropped photo tiles: the frame sets the size, the image covers it */
.quality-photo:not(.is-slot),.ref-photo:not(.is-slot){position:relative;overflow:hidden}
.quality-photo:not(.is-slot) img,.ref-photo:not(.is-slot) img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.quality-item.is-lead .quality-photo:not(.is-slot){min-height:100%}
.project-photo{padding:0 0 clamp(40px,5vw,80px)}.project-photo .photo-brief{margin:0}.project-photo img{display:block;width:100%;height:auto}.project-photo figcaption{font-size:11px;margin-top:10px;color:rgba(33,34,39,.7)}
/* Job posting stage */
.job-stage{background:var(--black);color:var(--white);padding:clamp(90px,9vw,150px) 0}
.job-claim{display:flex;flex-wrap:wrap;align-items:center;gap:.3em .4em;font-size:clamp(44px,7vw,120px);letter-spacing:-.05em;line-height:1;margin:0}.job-box{background:var(--white);color:var(--black);padding:.08em .35em .14em;font-size:.55em;letter-spacing:-.03em;line-height:1.2}
.job-benefits{display:grid;grid-template-columns:.382fr .618fr;gap:clamp(30px,5vw,90px);margin-top:clamp(70px,8vw,130px)}.job-benefits h2{font-size:clamp(30px,3vw,48px);font-weight:400;letter-spacing:-.05em;margin:0}
.job-benefits ul{list-style:none;margin:0;padding:0}.job-benefits li{display:grid;grid-template-columns:48px 1fr;align-items:baseline;border-top:1px solid rgba(255,255,255,.2);padding:18px 0;font-size:clamp(22px,2.2vw,34px);letter-spacing:-.04em;line-height:1.2}.job-benefits li span{font-size:11px;letter-spacing:.12em;color:rgba(255,255,255,.65)}
.job-cta{display:inline-flex;gap:14px;margin-top:clamp(40px,5vw,70px);color:var(--white);font-size:18px;border-bottom:1px solid var(--white);padding-bottom:8px;text-decoration:none}.job-cta:focus-visible{outline:2px solid var(--white);outline-offset:4px}
@media(max-width:800px){.job-benefits{grid-template-columns:1fr}}
.footer-social{margin-top:14px}
/* Service badge (KNX Partner) */
.service-badge{background:var(--white);padding:0 0 clamp(40px,5vw,70px)}.service-badge-row{display:flex;align-items:center;gap:clamp(20px,3vw,40px);border-top:1px solid var(--line);padding-top:clamp(24px,3vw,36px)}
.badge-logo{margin:0;flex:0 0 auto;width:clamp(110px,10vw,150px)}.badge-logo img{display:block;width:100%;height:auto}.service-badge p{margin:0;font-size:clamp(18px,1.6vw,24px);letter-spacing:-.03em}
.job-benefits>*{min-width:0}.job-benefits li{overflow-wrap:break-word;hyphens:auto}.job-benefits li>span+*{min-width:0}
/* Quality section with one project photo: text left, portrait photo right (golden ratio) */
.quality-solo{display:grid;grid-template-columns:.618fr .382fr;gap:clamp(36px,6vw,110px);align-items:end;margin-top:clamp(40px,5vw,70px)}
.quality-solo-copy h2{margin:0 0 30px}.quality-solo-copy p{font-size:clamp(17px,1.4vw,21px);line-height:1.55;max-width:460px;margin:0 0 34px}
.quality-solo-photo .quality-photo{aspect-ratio:4/5}
@media(max-width:800px){.quality-solo{grid-template-columns:1fr}}
/* Collection feature card (e.g. reference with photo) */
.feature-card{display:grid;grid-template-columns:.618fr .382fr;gap:clamp(28px,4vw,70px);align-items:end;color:inherit;text-decoration:none;border-top:1px solid var(--line);padding:clamp(28px,3vw,44px) 0}
.feature-photo{margin:0;overflow:hidden;aspect-ratio:16/10;background:var(--cotton)}.feature-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}.feature-card:hover .feature-photo img{transform:scale(1.035)}
.feature-copy h2{font-size:clamp(32px,3.4vw,56px);font-weight:400;letter-spacing:-.055em;line-height:1.06;margin:16px 0 18px}.feature-copy p{font-size:16px;line-height:1.65;color:rgba(33,34,39,.8);margin:0 0 26px;max-width:420px}
.feature-card:hover .text-arrow span{transform:translate(3px,-3px)}.feature-card:focus-visible{outline:2px solid var(--black);outline-offset:6px}
@media(max-width:800px){.feature-card{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.feature-photo img{transition:none}}
/* Hero words in outline form: revealed by a left-to-right wipe instead of a pen stroke */
.handwriting path.ink-fill{fill:currentColor;stroke:none;stroke-dasharray:none;stroke-dashoffset:0;animation:none}
.handwriting .ink-wipe{transform-box:fill-box;transform-origin:left center;transform:scaleX(0)}
.handwriting.is-written .ink-wipe{animation:ink-wipe 1.6s cubic-bezier(.22,.53,.3,1) forwards}.handwriting.is-static .ink-wipe{transform:none}
@keyframes ink-wipe{to{transform:scaleX(1)}}
.people-photo img{height:auto}
.ref-grid--single{grid-template-columns:1fr!important}.ref-grid--single .ref-photo{aspect-ratio:16/9}
.quality-solo-caption{font-size:13px;line-height:1.55;color:rgba(33,34,39,.72);margin:12px 0 0;max-width:420px}
.team-photo-section{padding-top:clamp(40px,4vw,70px)}.team-photo-section .quality-solo{margin-top:0}.team-photo{aspect-ratio:4/5}
.quality-solo--wide{grid-template-columns:.382fr .618fr}.quality-solo--wide .quality-solo-photo .quality-photo{aspect-ratio:16/10}@media(max-width:800px){.quality-solo--wide{grid-template-columns:1fr}}
/* Wide quality layout: headline across the full width, text and link left, landscape photo right */
.quality-solo--wide{grid-template-rows:auto auto 1fr;row-gap:0}.quality-solo--wide .quality-solo-copy{display:contents}
.quality-solo--wide h2{grid-column:1/-1;margin:0 0 clamp(36px,4vw,60px);hyphens:manual}.quality-solo--wide .quality-solo-copy p{grid-column:1;grid-row:2;align-self:start}.quality-solo--wide .quality-solo-copy .text-arrow{grid-column:1;grid-row:3;align-self:start;justify-self:start}.quality-solo--wide .quality-solo-media{grid-column:2;grid-row:2/4}
@media(max-width:800px){.quality-solo--wide .quality-solo-copy p,.quality-solo--wide .quality-solo-copy .text-arrow,.quality-solo--wide .quality-solo-media{grid-column:1;grid-row:auto}}
@media(max-width:800px){.quality-solo--wide .quality-solo-media{margin-top:clamp(28px,8vw,44px)}}
/* Evidence block with an approved photo: portrait crop, aligned to the golden-ratio column */
.evidence-compact .photo-brief{margin:0;max-width:560px;width:100%;justify-self:end}.evidence-compact .photo-brief img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}.evidence-compact .photo-brief figcaption{font-size:11px;line-height:1.6;margin-top:10px;color:rgba(33,34,39,.7)}
/* News: square tiles (Instagram and own news), three columns on desktop */
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,36px)}
.news-tile{display:flex;flex-direction:column;color:inherit;text-decoration:none;min-width:0}.news-tile:focus-visible{outline:2px solid var(--black);outline-offset:6px}
.news-photo{margin:0;aspect-ratio:1/1;overflow:hidden;background:var(--cotton);position:relative;display:grid;place-items:center}.news-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.news-tile:hover .news-photo img{transform:scale(1.03)}
.news-copy{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.news-copy p{font-size:16px;line-height:1.55;margin:10px 0 14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.news-more{font-size:13px}
.news-empty{border:1px solid var(--line);background:var(--cotton);padding:clamp(28px,4vw,56px);display:grid;gap:30px;max-width:620px}.news-empty p{margin:0;font-size:18px}
.news-follow{margin-top:clamp(40px,5vw,70px)}
@media(max-width:1100px){.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.news-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.news-photo img{transition:none}}
/* News: 16:9 article images */
.news-card-photo{aspect-ratio:16/9;position:relative;display:grid;place-items:center}.news-card-photo img{position:absolute;inset:0}.article-hero{padding:0 0 clamp(30px,4vw,60px)}.article-hero .photo-brief{margin:0}.article-hero img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.article-hero figcaption{font-size:11px;line-height:1.6;margin-top:10px;color:rgba(33,34,39,.7)}.article-hero--inline{padding-top:clamp(20px,3vw,40px)}

/* News cards: image type label (Symbolbild / Projektbild) on the photo */
.news-card-label{position:absolute;left:12px;bottom:12px;z-index:1;background:var(--white);color:var(--black);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:6px 9px;line-height:1}
.news-list{padding-top:clamp(20px,3vw,40px)}
/* News article body (safe Markdown): calm reading column on the golden-section grid */
.news-body{padding:clamp(40px,5vw,80px) 0 clamp(60px,7vw,110px)}
.md{max-width:760px;margin-left:calc(38.2% - 0px);font-size:18px;line-height:1.7}
.md h2{font-size:clamp(28px,2.8vw,44px);font-weight:400;letter-spacing:-.05em;line-height:1.12;margin:clamp(56px,6vw,90px) 0 22px;padding-top:22px;border-top:1px solid var(--black)}
.md h2:first-child{margin-top:0}
.md h3{font-size:22px;font-weight:400;letter-spacing:-.03em;margin:36px 0 10px}
.md p{margin:0 0 18px}.md strong{font-weight:500}
.md ul,.md ol{margin:0 0 22px;padding:0;list-style:none;border-top:1px solid var(--line)}
.md li{padding:13px 0 13px 34px;border-bottom:1px solid var(--line);position:relative}
.md ul>li::before{content:'';position:absolute;left:4px;top:1.32em;width:13px;height:1px;background:var(--black)}
.md ol{counter-reset:md}.md ol>li{counter-increment:md}.md ol>li::before{content:counter(md,decimal-leading-zero);position:absolute;left:0;top:15px;font-size:11px;letter-spacing:.1em}
.md a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;overflow-wrap:anywhere}
.md-table{overflow-x:auto;margin:6px 0 22px;background:var(--cotton);padding:clamp(14px,2vw,26px)}
.md table{border-collapse:collapse;width:100%;min-width:520px;font-size:15px;line-height:1.5}
.md th,.md td{text-align:left;vertical-align:top;padding:12px 14px 12px 0;border-bottom:1px solid var(--line)}
.md thead th{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:400;border-bottom:1px solid var(--black)}
.md tbody th{font-weight:500}.md tr:last-child>*{border-bottom:0}
.md-faq details{border-top:1px solid var(--line)}.md-faq details:last-child{border-bottom:1px solid var(--line)}
.md-faq summary{cursor:pointer;list-style:none;position:relative;font-size:20px;line-height:1.45;padding:22px 40px 22px 0}
.md-faq summary::-webkit-details-marker{display:none}.md-faq summary span{position:absolute;right:0;top:22px;transition:transform .25s}
.md-faq details[open] summary span{transform:rotate(45deg)}.md-faq details>div{padding:0 30px 14px 0}
.md-note{font-size:14px;line-height:1.6;color:rgba(33,34,39,.75);margin-top:40px!important}
.article-meta dd{overflow-wrap:anywhere}
@media(max-width:1100px){.md{margin-left:0}}
@media(max-width:520px){.md{font-size:17px}.md-faq summary{font-size:18px}}
@media(prefers-reduced-motion:reduce){.md-faq summary span{transition:none}}
.badge-logos{display:flex;align-items:center;gap:clamp(24px,3.5vw,56px);flex:0 0 auto}.badge-logo--wide{width:clamp(150px,14vw,210px)}
@media(max-width:600px){.service-badge-row{flex-direction:column;align-items:flex-start}}
/* Home: news band with the three newest headlines, very slow, pauses on hover and keyboard focus */
.news-ticker{margin-top:clamp(55px,6vw,90px);border-top:1px solid var(--black);border-bottom:1px solid var(--line);overflow:hidden}
.ticker-track{display:flex;width:max-content;animation:ticker var(--ticker-duration,80s) linear infinite}
.news-ticker:hover .ticker-track,.news-ticker:focus-within .ticker-track{animation-play-state:paused}
.ticker-list{display:flex;flex-shrink:0;min-width:100vw;margin:0;padding:0;list-style:none}
.ticker-list li{flex-shrink:0}
.ticker-list a{display:flex;align-items:baseline;gap:18px;padding:24px clamp(40px,5vw,80px) 24px 0;white-space:nowrap;color:inherit;text-decoration:none}
.ticker-list a::after{content:'';align-self:center;width:7px;height:7px;border:1px solid var(--black);margin-left:clamp(22px,3vw,50px)}
.ticker-text{font-size:clamp(20px,1.9vw,30px);letter-spacing:-.04em}
.ticker-list a>span:last-of-type{font-size:20px;font-weight:300;transition:transform .3s}
.ticker-list a:hover .ticker-text{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.ticker-list a:hover>span:last-of-type{transform:translate(3px,-3px)}
.ticker-list a:focus-visible{outline:2px solid var(--black);outline-offset:-6px}
@keyframes ticker{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none;width:auto;display:block}.ticker-list{display:block;min-width:0}.ticker-list[aria-hidden]{display:none}.ticker-list li+li{border-top:1px solid var(--line)}.ticker-list a{white-space:normal;padding-right:0}.ticker-list a::after{display:none}}
@media(max-width:600px){.ticker-list a{gap:12px;padding-block:18px}.ticker-list .eyebrow{font-size:10px}}
.footer-consent{background:none;border:0;padding:0;font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;text-decoration:inherit}
/* Cookiebot banner in the Gerhards CD: system font stack, Space Black on white, square corners, fine lines.
   All three choices look the same so declining is as easy as accepting. Cookiebot's own styles need !important. */
#CybotCookiebotDialog,#CybotCookiebotDialog *{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;letter-spacing:-.01em}
#CybotCookiebotDialog{border-radius:0!important;color:#212227!important;box-shadow:0 30px 80px rgba(33,34,39,.28)!important}
#CybotCookiebotDialog .CybotCookiebotDialogBodyButton,#CybotCookiebotDialog #CybotCookiebotDialogBodyButtonDecline,#CybotCookiebotDialog #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection,#CybotCookiebotDialog #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll,#CybotCookiebotDialog #CybotCookiebotDialogBodyButtonAccept{background:#fff!important;color:#212227!important;border:1px solid #212227!important;border-radius:0!important;font-weight:400!important;font-size:15px!important;transition:background .2s,color .2s}
#CybotCookiebotDialog .CybotCookiebotDialogBodyButton:hover,#CybotCookiebotDialog .CybotCookiebotDialogBodyButton:focus-visible{background:#212227!important;color:#fff!important}
#CybotCookiebotDialog .CybotCookiebotDialogBodyButton:focus-visible,#CybotCookiebotDialog a:focus-visible,#CybotCookiebotDialog input:focus-visible+.CybotCookiebotDialogBodyLevelButtonSlider{outline:2px solid #212227!important;outline-offset:3px}
#CybotCookiebotDialog .CybotCookiebotDialogNavItemLink{color:#212227!important;font-weight:400!important}
#CybotCookiebotDialog .CybotCookiebotDialogNavItemLink.CybotCookiebotDialogActive{color:#212227!important;border-bottom-color:#212227!important;font-weight:500!important}
#CybotCookiebotDialog .CybotCookiebotDialogNavItemLink.CybotCookiebotDialogActive::after,#CybotCookiebotDialog .CybotCookiebotDialogNavItemLink.CybotCookiebotDialogActive::before{background:#212227!important}
#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButtonSlider{background:#C9D2D6!important;box-shadow:inset 0 0 0 1px #212227}
#CybotCookiebotDialog input:checked+.CybotCookiebotDialogBodyLevelButtonSlider{background:#212227!important}
#CybotCookiebotDialog .CybotCookiebotDialogBodyContentHeading,#CybotCookiebotDialog h2{font-weight:500!important;color:#212227!important}
#CybotCookiebotDialog a:not(.CybotCookiebotDialogNavItemLink):not(#CybotCookiebotDialogPoweredbyCybot){color:#212227!important;text-decoration:underline!important}
#CybotCookiebotDialog .CybotCookiebotDialogDetailBulkConsentCount,#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieTabsAdvanced{background:#EEE6E0!important;color:#212227!important}
@media(prefers-reduced-motion:reduce){#CybotCookiebotDialog .CybotCookiebotDialogBodyButton{transition:none}}
/* Header: g-check after "projekt anfragen", before the menu button. Lockup sized to the menu type (x-height of the
   logo = x-height of 14 px Helvetica). At rest the final frame "g‾check"; hover or keyboard focus plays "gerhards‾" →
   "g‾check"; shortly after page load and then every 10 s a band of light runs across it. No JavaScript; reduced motion keeps it still. */
.header-gcheck{order:2;position:relative;display:inline-flex;align-items:center;padding:12px 0;line-height:0;font-size:14px;color:inherit;flex-shrink:0}
.header-gcheck .gc-logo,.header-gcheck .gc-shine svg{display:block;height:.915em;width:auto;overflow:visible;color:currentColor}
.header-gcheck .gc-shine{position:absolute;left:0;top:50%;transform:translateY(-50%);color:var(--blue);pointer-events:none;opacity:0;
 -webkit-mask-image:linear-gradient(105deg,transparent 0 40%,#000 50%,transparent 60% 100%);mask-image:linear-gradient(105deg,transparent 0 40%,#000 50%,transparent 60% 100%);
 -webkit-mask-size:300% 100%;mask-size:300% 100%;animation:gc-shine 10s linear .9s infinite both}
/* One sweep of 1.4 s, then rest; the cycle repeats every 10 s. */
@keyframes gc-shine{0%{opacity:1;-webkit-mask-position:100% 0;mask-position:100% 0;animation-timing-function:cubic-bezier(.45,0,.55,1)}14%{opacity:1;-webkit-mask-position:0 0;mask-position:0 0}14.1%,100%{opacity:0;-webkit-mask-position:0 0;mask-position:0 0}}
.header-gcheck:hover .gc-shine,.header-gcheck:focus-visible .gc-shine{visibility:hidden}
.header-gcheck .gc-l{opacity:0}.header-gcheck .gc-bar{transform:translateX(-839.3px)}
.header-gcheck:hover .gc-l,.header-gcheck:focus-visible .gc-l{animation:gcn-fade .22s linear var(--d) both}
.header-gcheck:hover .gc-bar,.header-gcheck:focus-visible .gc-bar{animation:gcn-bar 1.4s linear .5s both}
.header-gcheck:hover .gc-word,.header-gcheck:focus-visible .gc-word{animation:gcn-word .95s var(--ease) 2s both}
.header-gcheck:focus-visible{outline:2px solid currentColor;outline-offset:4px}
@keyframes gcn-fade{from{opacity:1}to{opacity:0}}
@keyframes gcn-bar{from{transform:none}to{transform:translateX(-839.3px)}}
@keyframes gcn-word{from{transform:translateX(-760px)}to{transform:none}}
/* Spacing: one rhythm from "leistungen" to "projekt anfragen"; g-check sits a little apart on both sides. */
.header-row{--g:clamp(25px,3vw,50px)}
@media(min-width:901px){.header-row{gap:0}.nav-desktop{gap:var(--g);margin:0 var(--g) 0 0}.header-gcheck{margin:0 calc(var(--g) * 1.4)}}
@media(max-width:1100px){.header-row{--g:24px}.header-gcheck{font-size:13px}}
@media(max-width:970px){.header-row{--g:20px}}
@media(max-width:900px){.header-gcheck{display:none}}
@media(prefers-reduced-motion:reduce){.header-gcheck .gc-logo *,.header-gcheck .gc-shine{animation:none!important}.header-gcheck .gc-shine{display:none}}
/* Career: photo collage (one tall picture, two cropped beside it) */
.photo-collage{background:var(--white);padding:clamp(20px,3vw,40px) 0 clamp(60px,7vw,110px)}
.collage-grid{display:grid;grid-template-columns:.618fr .382fr;grid-template-rows:1fr 1fr;gap:clamp(10px,1.4vw,22px);aspect-ratio:1.45}
.collage-grid figure{margin:0;overflow:hidden;background:var(--cotton);position:relative}
.collage-main{grid-row:1/3}
.collage-grid img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.collage-caption{font-size:11px;line-height:1.6;margin:12px 0 0;color:rgba(33,34,39,.7)}
@media(max-width:800px){.collage-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;aspect-ratio:auto}.collage-main{grid-column:1/3;grid-row:auto;aspect-ratio:4/5}.collage-side{aspect-ratio:1}}
.brochure-section .brochure-grid{margin-top:clamp(40px,5vw,70px)}
/* Page photos (Unternehmen, Partner, Karriere): keep the natural aspect ratio at any width */
.editorial-section .photo-brief img{display:block;width:100%;height:auto;max-height:82vh;object-fit:cover}
/* Home, seven areas: the faint arrow is decoration only, drawn by CSS (text variant, no emoji on iOS) */
.cap-row .cap-arrow::before{content:'\2197\FE0E'}
/* Claim on narrow screens (≤ 640 px): the original two-line claim from the CD (space for above the rectangle, both the same
   width). The writing box sits exactly on the rectangle of that artwork. Camera, timing, handwriting and the finale are
   unchanged; the camera measures the rectangle wherever it sits. */
.claim-lockup>img.claim-two-line{display:none}
@media(max-width:640px){
 .claim-lockup{width:86vw;aspect-ratio:639.8 / 336.7}
 .claim-lockup>img:not(.claim-two-line){display:none}
 .claim-lockup>img.claim-two-line{display:block;width:100%;height:100%}
 .claim-lockup .claim-box{left:.2032%;top:58.3903%;width:99.1873%;height:41.6097%}
}

/* Home: header background blends with the camera (gerhards.js sets --hdr-mix 0 = space black … 1 = white). Text and logo
   switch at the midpoint with a short fade, so they stay readable; browsers without color-mix keep the previous switch. */
body.hdr-blend .site-header{transition:color .25s,border-color .25s;background:color-mix(in srgb,var(--hdr-light) calc(var(--hdr-mix) * 100%),var(--black));color:var(--white);border-color:rgba(255,255,255,.15)}
body.hdr-blend.hdr-light .site-header{color:var(--black);border-color:var(--line)}
body.hdr-blend .header-brand img{display:block;transition:opacity .25s}
body.hdr-blend .header-brand .brand-light{opacity:1}
body.hdr-blend .header-brand .brand-dark{position:absolute;left:0;top:0;opacity:0}
body.hdr-blend.hdr-light .header-brand .brand-light{opacity:0}
body.hdr-blend.hdr-light .header-brand .brand-dark{opacity:1}
@media(prefers-reduced-motion:reduce){body.hdr-blend .site-header,body.hdr-blend .header-brand img{transition:none}}
