/* Homepage only, existing J.R. fonts and colours. */
.home-services-reference{padding-top:24px;padding-bottom:32px}
#aufbau.construction-section{padding-top:32px}
.home-service-cards{--service-gap:16px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:1fr;gap:var(--service-gap)}
.home-service-card{min-width:0;border:1px solid var(--line);border-radius:var(--radius-media);overflow:hidden;display:flex;flex-direction:column;background:linear-gradient(180deg,#10273566,var(--paper) 75%);transition:border-color .22s var(--ease)}
.home-service-card:focus-within,.home-service-card:hover{border-color:#5997b3}
.home-service-photo{position:relative;aspect-ratio:4/3;overflow:hidden;clip-path:polygon(0 0,100% 0,100% 100%,39% 100%,27% 79%,0 79%)}
.home-service-photo img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease)}
.home-service-card:hover .home-service-photo img{transform:scale(1.025)}
.home-service-card-copy{position:relative;display:flex;flex-direction:column;flex:1;padding:0 20px 24px}
.home-service-icon{height:48px;margin-top:-30px;margin-bottom:14px;color:var(--cyan);position:relative;z-index:1;display:flex;align-items:center}
.home-service-icon svg{width:34px;height:36px}
.home-service-card h3{font-size:1.13rem;line-height:1.25;letter-spacing:-.01em;min-height:2.5em;margin-bottom:14px;text-wrap:balance}
.home-service-card p{color:var(--muted);font-size:.86rem;line-height:1.6;flex:1;margin:0 0 22px}
.home-service-link{align-self:flex-start;display:inline-flex;align-items:center;min-height:44px;font-size:.86rem;font-weight:600;color:var(--link);text-decoration:underline;text-underline-offset:5px;text-decoration-color:transparent;transition:text-decoration-color .2s}
.home-service-link:hover{text-decoration-color:currentColor}
.home-service-link:focus-visible{outline:2px solid var(--cyan);outline-offset:4px;border-radius:2px}
.home-services-reference .section-action{margin-top:28px}
@media(max-width:1199px){
 .home-service-cards{--service-gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}
 .home-service-card-copy{padding-inline:20px}
 .home-service-card h3{font-size:1.15rem}
 .home-service-card p{font-size:.9rem}
}
@media(max-width:850px){
 .home-service-cards{--service-gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .home-service-card:last-child{grid-column:1/-1;width:calc((100% - var(--service-gap))/2);justify-self:center}
 .home-service-card-copy{padding-inline:18px}
}
@media(max-width:539px){
 .home-service-cards{--service-gap:20px;grid-template-columns:minmax(0,1fr);grid-auto-rows:auto}
 .home-service-card:last-child{width:100%;grid-column:auto}
 .home-service-photo{aspect-ratio:8/5}
 .home-service-card-copy{padding:0 24px 22px}
 .home-service-card h3{font-size:1.18rem;min-height:0;margin-bottom:12px;text-wrap:pretty}
 .home-service-card p{font-size:.94rem;line-height:1.65;margin-bottom:14px}
 .home-service-link{font-size:.9rem}
}
.construction-section .construction-card{grid-template-columns:minmax(260px,.8fr) minmax(0,1.65fr);gap:40px}
.construction-section .construction-copy h2{font-size:clamp(32px,3vw,46px);max-width:12ch}
.construction-section .construction-description{font-size:1rem;line-height:1.75}
.construction-diagram{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:12px;margin:0}
.construction-diagram-image{position:relative;align-self:start}
.construction-diagram-image img{width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.construction-callouts{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.construction-callouts path{fill:none;stroke:#6dabc3;stroke-width:1;vector-effect:non-scaling-stroke}
.construction-callouts circle{fill:var(--paper);stroke:var(--cyan);stroke-width:.5}
.construction-callouts text{fill:var(--text);font:600 2.7px var(--body);text-anchor:middle;dominant-baseline:central}
.construction-parts{list-style:none;padding:0;margin:0;position:relative;min-width:0}
.construction-parts li{position:absolute;top:var(--part-top);left:0;right:0;transform:translateY(-50%)}
.construction-parts strong{display:block;color:var(--link);font-size:.91rem;font-weight:600;line-height:1.35}
.construction-parts p{font-size:.75rem;line-height:1.55;color:var(--muted);margin-top:5px}
.construction-part-number{display:none}
.home-project-comparison{padding-top:48px}
.project-comparison{--compare-position:62%;--compare-x:714px;--compare-width:calc(100vw - 40px);--compare-aspect:1.565}
.project-comparison.is-igz{--compare-aspect:1.5}
.project-comparison-stage{position:relative;isolation:isolate;min-height:540px;border:1px solid #46606e;border-radius:var(--radius-media);overflow:hidden;background:var(--mineral)}
.project-comparison-photo{position:absolute;inset:0;overflow:hidden;margin:0;background:var(--mineral)}
.project-comparison-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;max-width:none}
.project-comparison.is-portrait .project-comparison-photo img{left:30%;width:70%;object-position:50% 46%}
.project-comparison-before{clip-path:inset(0 calc(100% - var(--compare-position)) 0 0);z-index:1}
.project-comparison-photo figcaption{position:absolute;top:22px;padding:6px 12px;font-size:.73rem;line-height:1.4;color:var(--text);background:#07151fe6;border:1px solid #ffffff32;border-radius:3px;z-index:1}
.project-comparison-before figcaption{left:50%}
.project-comparison-after figcaption{right:22px}
.project-comparison-status{display:none;position:absolute;top:22px;right:22px;width:100px;box-sizing:border-box;text-align:center;padding:6px 10px;font-size:.73rem;line-height:1.4;color:var(--text);background:#07151fe6;border:1px solid #ffffff32;border-radius:3px;z-index:6;pointer-events:none}
.project-comparison.is-ready .project-comparison-status{display:block}
.project-comparison.is-ready figcaption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.project-comparison-shade{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,#07151ffb 0%,#07151fee 23%,#07151fcc 34%,#07151f75 48%,#07151f0f 70%,transparent 100%)}
.project-comparison-copy{position:relative;z-index:4;width:44%;padding:48px 0 42px 36px;pointer-events:none}
.project-comparison.is-igz .project-comparison-copy{width:36%}
.project-comparison-copy .page-label{font-size:.73rem;margin-bottom:19px;color:#d0dce2}
.project-comparison-copy h2{font-size:clamp(1.9rem,2.5vw,2.5rem);line-height:1.16;margin:0;max-width:16ch;text-wrap:balance}
.project-comparison-lead{font-size:.91rem;line-height:1.7;max-width:36ch;color:#d0dce2;margin-top:22px}
.project-comparison-facts{display:flex;flex-wrap:wrap;gap:16px 18px;list-style:none;padding:0;margin:26px 0 0}
.project-comparison-facts li{display:flex;align-items:center;gap:8px;min-width:0;font-size:.75rem;line-height:1.5;color:#d0dce2}
.project-comparison-facts svg{width:22px;height:25px;color:var(--cyan);flex-shrink:0}
.project-comparison-copy .btn{pointer-events:auto;min-height:46px;padding:10px 22px;font-size:.83rem;border-color:#7795a4;margin-top:28px}
.project-comparison-divider{display:none;position:absolute;top:0;bottom:0;left:0;transform:translateX(var(--compare-x));width:1px;background:#f2f6f8;z-index:5;pointer-events:none}
.project-comparison-divider span{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);width:50px;height:50px;display:grid;place-items:center;border-radius:50%;background:var(--paper);color:#fff;border:2px solid #f2f6f8;box-shadow:0 2px 16px #0004}
.project-comparison.is-ready .project-comparison-divider{display:block}
.project-comparison-range{position:absolute;inset:0;z-index:3;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}
.project-comparison-range:focus-visible + .project-comparison-divider span{outline:3px solid var(--cyan);outline-offset:5px}
.project-comparison:not(.is-ready) .project-comparison-stage{display:grid;grid-template-columns:1fr 1fr;min-height:0}
.project-comparison:not(.is-ready) .project-comparison-photo{position:relative;aspect-ratio:4/3;clip-path:none}
.project-comparison:not(.is-ready) .project-comparison-photo img{inset:0;width:100%}
.project-comparison:not(.is-ready) .project-comparison-before{order:0}
.project-comparison:not(.is-ready) .project-comparison-after{order:1}
.project-comparison:not(.is-ready) .project-comparison-shade{display:none}
.project-comparison:not(.is-ready) .project-comparison-copy{grid-column:1/-1;order:2;max-width:100%;width:100%;padding:30px}
@media(min-width:1600px){.project-comparison-stage{min-height:600px}.project-comparison-copy{padding:60px 0 50px 46px}}
@media(max-width:1100px){.construction-diagram{grid-template-columns:minmax(0,1fr) 145px;gap:10px}.construction-parts strong{font-size:.82rem}.construction-parts p{font-size:.7rem}.construction-section .construction-card{grid-template-columns:.75fr 1.5fr;gap:28px}.project-comparison-copy{width:48%}.project-comparison-before figcaption{left:56%}}
@media(max-width:999px){.construction-section .construction-card{grid-template-columns:1fr;gap:32px}.construction-copy{max-width:620px}.construction-section .construction-copy h2{max-width:18ch}.construction-diagram{grid-template-columns:minmax(0,1fr) 190px;max-width:820px;width:100%;margin-inline:auto}.construction-parts strong{font-size:1rem}.construction-parts p{font-size:.82rem}.project-comparison-copy{width:51%;padding-left:26px}.project-comparison-stage{min-height:560px}.project-comparison-copy h2{font-size:1.9rem}}
@media(max-width:700px){
 .home-services-reference{padding-top:20px;padding-bottom:22px}
 #aufbau.construction-section{padding-top:22px}
 .construction-diagram{display:block;max-width:520px}
 .construction-diagram-image img{width:100%}
 .construction-callouts path{display:none}
 .construction-callouts circle{r:2.1}
 .construction-callouts text{font-size:3.4px}
 .construction-parts{display:grid;grid-template-columns:1fr 1fr;gap:19px 18px;margin-top:24px}
 .construction-parts li{position:static;transform:none;display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:start}
 .construction-parts strong{font-size:.91rem}.construction-parts p{font-size:.77rem;line-height:1.5}
 .construction-part-number{display:grid;place-items:center;width:21px;height:21px;border:1px solid var(--cyan);border-radius:50%;font-size:.72rem;color:var(--text);margin-top:1px}
 .home-project-comparison{padding-top:24px}
 .project-comparison-stage{min-height:0}
 .project-comparison-photo{background:var(--paper)}
 .project-comparison-photo img{inset:0;width:100%;height:auto;aspect-ratio:var(--compare-aspect);object-fit:cover;object-position:50% 50%}
 .project-comparison-shade{top:0;bottom:auto;height:calc(var(--compare-width)/var(--compare-aspect) + 6px);background:linear-gradient(0deg,var(--paper) 0%,#07151f00 30%)}
 .project-comparison.is-ready .project-comparison-copy{position:relative;bottom:auto;left:auto;right:auto;width:100%;margin-top:calc(var(--compare-width)/var(--compare-aspect) - 20px);padding:28px 24px}
 .project-comparison.is-igz .project-comparison-copy{width:100%}
 .project-comparison-copy .page-label{margin-bottom:13px;font-size:.7rem}
 .project-comparison-copy h2{font-size:1.75rem;max-width:19ch}
 .project-comparison-lead{font-size:.86rem;margin-top:16px;max-width:36ch}
 .project-comparison-facts{gap:14px 16px;margin-top:22px}
 .project-comparison-divider,.project-comparison.is-ready .project-comparison-range{bottom:auto;height:calc(var(--compare-width)/var(--compare-aspect))}
 .project-comparison-divider span{top:50%;width:46px;height:46px}
 .project-comparison-status{top:18px;right:18px}
 .project-comparison-before figcaption{top:18px;left:18px;max-width:42%}
 .project-comparison-after figcaption{top:18px;right:18px;max-width:42%}
}
@media(max-width:380px){.project-comparison.is-ready .project-comparison-copy{padding-inline:18px}.project-comparison-copy h2{font-size:1.6rem}}
@media(prefers-reduced-motion:reduce){.home-service-card,.home-service-photo img,.home-service-link{transition:none}.home-service-card:hover .home-service-photo img{transform:none}}
@media print{.project-comparison-stage{min-height:0;display:grid;grid-template-columns:1fr 1fr}.project-comparison .project-comparison-photo{position:relative;aspect-ratio:4/3;clip-path:none}.project-comparison .project-comparison-photo img{left:0;width:100%}.project-comparison-copy{position:static;width:100%;grid-column:1/-1}.project-comparison-range,.project-comparison-divider,.project-comparison-shade,.project-comparison-status{display:none!important}}

