.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[data-carousel]{position:relative;isolation:isolate}.carousel-viewport{display:grid}.carousel-slide{grid-area:1/1;min-width:0;position:relative;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .7s ease,visibility .7s}.carousel-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:1}.carousel-slide .slide-heading{margin:0}.carousel-slide:not(.is-active) img{animation-play-state:paused!important}.carousel-slide img{animation:service-image-drift 7.2s ease-out both}.carousel-slide.is-active .slide-heading,.carousel-slide.is-active .hero-description,.carousel-slide.is-active .renew-hero-copy>p,.carousel-slide.is-active .showcase-content>p{animation:service-copy-enter .65s ease-out both}.carousel-slide.is-active .hero-description,.carousel-slide.is-active .renew-hero-copy>p,.carousel-slide.is-active .showcase-content>p{animation-delay:.12s}.carousel-footer{position:relative;display:flex;align-items:center;justify-content:space-between;gap:25px;z-index:4}.carousel-controls{display:flex;gap:16px;align-items:center;flex-shrink:0}.carousel-controls[hidden]{display:none}.carousel-arrows{display:flex;gap:7px}.carousel-controls button{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;background:transparent;color:inherit;border:1px solid currentColor;border-radius:50%;padding:0;line-height:1;font-size:1.3rem;transition:color .2s,background .2s,border-color .2s}.carousel-controls button:hover{background:var(--red-fill);color:#fff;border-color:var(--red-fill)}.carousel-controls button:focus-visible{outline:3px solid var(--red);outline-offset:4px}.carousel-dots{display:flex;align-items:center;gap:1px}.carousel-dots .carousel-dot{width:25px;height:42px;border:0;background:transparent;border-radius:2px}.carousel-dot>span{display:block;width:6px;height:6px;background:currentColor;border-radius:50%;opacity:.45;transition:width .25s,opacity .25s}.carousel-dot[aria-current=true]>span{width:19px;border-radius:5px;opacity:1;background:var(--red)}.carousel-count{font-size:.875rem;font-variant-numeric:tabular-nums;letter-spacing:.03em;white-space:nowrap}.carousel-count>span+span{opacity:.55}.carousel-controls .carousel-play{border-color:transparent;font-size:1.125rem}.carousel-image-note{font-size:.75rem;line-height:1.5;opacity:.8;text-align:right}.carousel-scroll{font-size:.8125rem;display:flex;gap:18px;align-items:center}.carousel-scroll>span{font-size:1.2rem}.carousel-scroll:hover{color:var(--red)}.carousel-v1 .hero-frame{min-height:700px;isolation:isolate;overflow:hidden}.carousel-v1 .hero-inner{min-height:700px;padding-bottom:147px}.carousel-v1 .slide-heading{font-size:clamp(3.2rem,6.3vw,6.25rem);font-weight:500;line-height:1.06;letter-spacing:-.065em;margin-left:-5px}.carousel-v1 .slide-heading .eyebrow{font-size:.8125rem;letter-spacing:.1em;line-height:1.6}.carousel-v1 .carousel-footer{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);color:white}.carousel-v1 .hero-mark{bottom:128px}.carousel-v1 .carousel-image-note{max-width:155px}.carousel-v2{padding-top:34px;background:var(--soft)}.carousel-v2 .carousel-footer{padding-block:20px;color:var(--ink)}.carousel-v2 .slide-heading .eyebrow{font-size:.75rem;line-height:1.7;letter-spacing:.065em}.carousel-v2 .renew-hero-media{border-radius:10px;isolation:isolate}.carousel-v2 .renew-hero-media:after{z-index:1}.carousel-v2 .renew-media-label{z-index:2}.carousel-v2 .renew-media-label>span{text-transform:uppercase}.renew-motion{padding-top:0}.renew-motion .renew-trust{margin-top:0}.carousel-v3 .showcase-hero{padding-bottom:135px;display:block;min-height:800px}.carousel-v3 .slide-heading{font-size:inherit;line-height:1.15;font-weight:500}.carousel-v3 .showcase-photo{z-index:-2}.carousel-v3 .showcase-kicker{text-transform:uppercase}.carousel-v3 .showcase-content>p{max-width:610px;min-height:65px}.carousel-v3 .carousel-footer{position:absolute;bottom:31px;left:50%;transform:translateX(-50%);color:#fff}.carousel-v3 .showcase-hero:after{background:linear-gradient(180deg,#10191dcc 0%,#111b207f 53%,#10181c3d 77%,#10171bc7 100%)}.carousel-v3 .carousel-image-note{max-width:150px}.page-hero-image{position:relative}.service-visual-note{position:absolute;bottom:11px;right:12px;color:white;background:#171d20c4;padding:4px 9px;font-size:.75rem;line-height:1.5;z-index:2}.service-photo-note{display:block;font-size:.75rem;color:var(--muted);margin-top:12px}.showcase-other-services .service-thumb{height:175px;overflow:hidden;margin-bottom:24px;background:#e0e3dc}.showcase-other-services .service-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.showcase-other-services a:hover .service-thumb img{transform:scale(1.035)}.selector-panel>img{object-position:center}.selector-panel-text{display:block;background:#f7f8f9;color:var(--ink)}.selector-panel-text .selector-content{padding:27px 32px 32px}.selector-panel-text .panel-label{color:var(--red-dark)}.selector-panel-text h3{font-size:1.7rem;margin-bottom:14px}.selector-panel-text p{color:#646c76}.selector-panel-text .text-link{border-color:var(--ink)}
@keyframes service-image-drift{from{transform:scale(1.045)}to{transform:scale(1)}}
@keyframes service-copy-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(min-width:1650px){.carousel-v1 .hero-frame,.carousel-v1 .hero-inner{min-height:760px}.carousel-v1 .slide-heading{font-size:6.4rem}.carousel-v3 .showcase-hero{min-height:880px}}
@media(max-width:1150px){.carousel-v1 .slide-heading{font-size:clamp(3.7rem,6.8vw,5.7rem)}.carousel-v3 .showcase-hero{min-height:745px}.carousel-v3 .carousel-scroll{display:none}.showcase-other-services .service-thumb{height:150px}}
@media(max-width:930px){.carousel-v1 .hero-frame,.carousel-v1 .hero-inner{min-height:725px}.carousel-v1 .slide-heading{font-size:clamp(3.8rem,8.6vw,5.5rem)}.carousel-v1 .hero-inner{padding-bottom:150px}.carousel-v2 .slide-heading .eyebrow{letter-spacing:0;max-width:285px}.carousel-v2 .renew-media-label>span{font-size:.75rem}.carousel-v3 .showcase-hero{min-height:740px}.showcase-other-services .service-thumb{height:125px;margin-bottom:20px}}
@media(max-width:680px){.carousel-controls{gap:10px;max-width:100%}.carousel-arrows{gap:5px}.carousel-controls button{width:40px;height:40px}.carousel-dots .carousel-dot{width:22px;height:40px}.carousel-count{display:none}.carousel-footer{gap:13px;flex-wrap:wrap}.carousel-image-note{font-size:.75rem}.carousel-v1 .hero-frame,.carousel-v1 .hero-inner{min-height:765px}.carousel-v1 .hero-inner{padding-bottom:158px}.carousel-v1 .slide-heading{font-size:clamp(3rem,11.8vw,4.7rem);line-height:1.09;margin-left:-2px}.carousel-v1 .slide-heading .eyebrow{font-size:.75rem;letter-spacing:.035em;gap:10px}.carousel-v1 .hero-title{margin-top:22px}.carousel-v1 .hero-actions{gap:15px}.carousel-v1 .carousel-footer{bottom:23px;align-items:flex-start}.carousel-v1 .carousel-image-note{max-width:none;text-align:left;width:100%}.carousel-v2{padding-top:14px}.carousel-v2 .carousel-footer{padding-block:16px 23px;gap:10px}.carousel-v2 .carousel-image-note{width:100%;text-align:left}.carousel-v2 .slide-heading .eyebrow{max-width:none;line-height:1.65;letter-spacing:.015em}.carousel-v2 .renew-hero-grid{gap:25px}.carousel-v2 .renew-hero-media{min-height:345px}.carousel-v2 .renew-media-label{bottom:26px}.carousel-v2 .renew-title{font-size:clamp(2.35rem,8.6vw,3.75rem)}.carousel-v2 .renew-actions{gap:14px}.carousel-v2 .renew-actions .button{font-size:.8125rem;gap:15px}.carousel-v3 .showcase-hero{min-height:760px;padding-top:145px;padding-bottom:168px}.carousel-v3 .showcase-title{font-size:clamp(2.2rem,8.1vw,3.5rem)}.carousel-v3 .showcase-content>p{min-height:0}.carousel-v3 .carousel-footer{bottom:25px;display:grid;grid-template-columns:1fr;gap:13px}.carousel-v3 .carousel-image-note{text-align:left;max-width:none}.carousel-v3 .showcase-photo{object-position:center}.carousel-v3 .showcase-hero:after{background:linear-gradient(180deg,#121d24c9,#121d2391 56%,#111c226a 78%,#101a22ce)}.showcase-other-services .service-thumb{grid-column:1/-1;grid-row:1;height:215px;margin:0 0 6px}.showcase-other-services .showcase-other-top>span:first-child{grid-row:2}.showcase-other-services h3{grid-row:2}.showcase-other-services .showcase-other-top>span:last-child{top:auto;bottom:31px}.selector-panel-text .selector-content{padding:25px 24px}.selector-panel-text h3{font-size:1.55rem}.service-visual-note{font-size:.75rem}}
@media(max-width:370px){.carousel-controls{gap:7px}.carousel-controls button{width:38px;height:38px}.carousel-dots .carousel-dot{width:21px}.carousel-v1 .slide-heading{font-size:clamp(2.75rem,11.8vw,3.3rem)}.carousel-v2 .renew-title{font-size:2.35rem}.carousel-v3 .showcase-title{font-size:2.2rem}}
@media(prefers-reduced-motion:reduce){.carousel-slide{transition:none!important}.carousel-slide img,.carousel-slide .slide-heading,.carousel-slide p{animation:none!important;transform:none!important}}

[data-carousel]:not(.is-playing) .carousel-slide.is-active img{animation-play-state:paused}

.carousel-v1 .slide-heading .accent{color:var(--red)}

.carousel-v2 .carousel-slide{display:flex;flex-direction:column}.carousel-v2 .renew-hero-grid{flex:1}

/* Deliberate crossfades and a visibly moving steel-construction opening. */
.carousel-slide{transition:opacity .95s cubic-bezier(.22,.61,.36,1),visibility .95s}
.carousel-slide[data-featured-motion] img{animation:steel-hero-pan 9s ease-in-out infinite alternate;transform-origin:50% 50%}
.carousel-v1 .carousel-slide[data-featured-motion] img{transform-origin:58% 45%}
.carousel-v2 .carousel-slide[data-featured-motion] img{transform-origin:48% 52%}
.carousel-v3 .carousel-slide[data-featured-motion] img{transform-origin:52% 42%}
@keyframes steel-hero-pan{from{transform:scale(1.04) translate3d(-.8%,.4%,0)}to{transform:scale(1.14) translate3d(.8%,-.4%,0)}}

/* V1: image-led architectural cover with daylight, expressive type and quiet controls. */
.cover-carousel{background:#eef3f7;color:#20282d;overflow:hidden}
.cover-carousel .cover-slide{display:flex;align-items:stretch;min-height:clamp(640px,76svh,800px);overflow:hidden;isolation:isolate}
.cover-media{position:absolute;inset:0;z-index:-1;overflow:hidden;background:#eaf0f4}
.cover-media .cover-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center;filter:none}
.cover-scrim{position:absolute;inset:0;background:linear-gradient(90deg,#f4f6f8f5 0%,#f4f6f8db 28%,#f4f6f86b 48%,#f4f6f800 72%)}
.cover-slide[data-featured-motion] .cover-scrim{background:linear-gradient(90deg,#f5f8fa70 0%,#f5f8fa28 30%,#f5f8fa00 57%)}
.cover-stage{display:flex;align-items:center;padding-block:64px 155px;min-width:0}
.cover-copy{max-width:675px;width:55%}
.cover-kicker{display:flex;align-items:center;gap:14px;font-size:.875rem;font-weight:800;line-height:1.55;letter-spacing:.065em;text-transform:uppercase;color:#353c43;max-width:510px;margin-bottom:27px}
.cover-kicker-mark{display:block;width:7px;height:23px;background:var(--red-dark);transform:skew(-23deg);box-shadow:12px 0 0 var(--red-dark);margin-right:12px;flex-shrink:0}
.cover-carousel .slide-heading{font-size:clamp(3.8rem,5.65vw,6rem);font-weight:600;line-height:1.055;letter-spacing:-.058em;color:#20282d;margin:0}
.cover-carousel .slide-heading>span{color:#b5382d}
.cover-description{font-size:1.0625rem;line-height:1.8;max-width:470px;margin-top:28px;color:#353e46}
.cover-actions{display:flex;align-items:center;flex-wrap:wrap;gap:17px 27px;margin-top:31px}
.cover-actions .button{min-height:57px;padding:15px 23px;gap:32px;font-size:.9375rem;background:var(--red-fill);border-color:var(--red-fill);color:#fff;box-shadow:0 9px 22px #90332b12}
.cover-actions .button:hover{background:var(--red-fill-hover);border-color:var(--red-fill-hover)}
.cover-contact{display:inline-flex;align-items:center;justify-content:center;min-height:57px;padding:15px 23px;font-size:.9375rem;font-weight:800;line-height:1.5;color:#fff;background:#20282d;border:1px solid #20282d;transition:background .2s,border-color .2s}
.cover-contact:hover{color:#fff;background:#35434d;border-color:#35434d}
.cover-contact:focus-visible{outline:3px solid var(--red-dark);outline-offset:4px}
.cover-footer{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);z-index:5;display:flex;justify-content:space-between;align-items:flex-end;gap:28px}
.cover-service-links{display:flex;flex-wrap:wrap;gap:20px;padding-block:16px 13px;max-width:550px}
.cover-service-links a{font-size:.875rem;font-weight:700;color:#29323a;line-height:1.5;padding:6px 0;border-bottom:1px solid #707f895c}
.cover-service-links a:hover{color:var(--red-dark);border-color:var(--red-dark)}
.cover-controller{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.cover-carousel .carousel-controls{background:#ffffffeb;border:1px solid #ffffffd9;box-shadow:0 8px 32px #23303c13;padding:11px 15px;gap:15px;backdrop-filter:blur(10px);color:#28323b}
.cover-carousel .carousel-controls button{border-radius:0;border-color:#8c989d;width:42px;height:42px}
.cover-carousel .carousel-dots .carousel-dot{width:24px;border:0;background:transparent}
.cover-carousel .carousel-dot>span{background:#596973}
.cover-carousel .carousel-dot[aria-current=true]>span{background:var(--red-dark)}
.cover-carousel .carousel-controls .carousel-play{border-color:transparent}
.cover-image-note{font-size:.8125rem;line-height:1.5;color:#2f3c44;background:#ffffffcf;padding:3px 8px}
.cover-slide.is-active .cover-kicker{animation:service-copy-enter .65s ease-out both}
.cover-slide.is-active .cover-description{animation:service-copy-enter .75s ease-out .12s both}
.cover-slide.is-active .cover-actions{animation:service-copy-enter .8s ease-out .2s both}
@media(min-width:1650px){.cover-copy{max-width:735px}.cover-carousel .slide-heading{font-size:6.2rem}.cover-stage{padding-block:80px 160px}}
@media(max-width:1150px){
 .cover-carousel .cover-slide{min-height:660px}
 .cover-copy{width:61%;max-width:600px}
 .cover-carousel .slide-heading{font-size:clamp(3.3rem,5.8vw,4.5rem)}
 .cover-kicker{font-size:.875rem;letter-spacing:.035em;margin-bottom:22px;max-width:440px}
 .cover-stage{padding-block:52px 160px}
 .cover-description{font-size:1rem;max-width:430px;margin-top:24px}
 .cover-actions{gap:14px 22px;margin-top:25px}
 .cover-service-links{gap:16px}
 .cover-controller{gap:8px}
 .cover-carousel .carousel-controls{gap:10px;padding:10px 12px}
}
@media(max-width:800px){
 .cover-carousel .cover-slide{min-height:730px}
 .cover-stage{align-items:flex-start;padding-block:40px 215px}
 .cover-copy{width:100%;max-width:560px}
 .cover-carousel .slide-heading{font-size:clamp(3.05rem,7.5vw,4.6rem)}
 .cover-description{max-width:470px}
 .cover-media .cover-photo{object-position:65% center}
 .cover-scrim,.cover-slide[data-featured-motion] .cover-scrim{background:linear-gradient(180deg,#f2f6faef 0%,#f2f6fac9 37%,#f2f6fa52 66%,#f2f6fa00 100%)}
 .cover-footer{bottom:23px;align-items:flex-start;flex-direction:column;gap:13px}
 .cover-service-links{gap:20px;background:#ffffffde;padding:10px 16px;max-width:100%}
 .cover-service-links a{font-size:.875rem}
 .cover-controller{align-items:flex-start}
 .cover-image-note{font-size:.8125rem}
}
@media(max-width:480px){
 .cover-carousel .cover-slide{min-height:750px}
 .cover-stage{padding-block:32px 225px}
 .cover-carousel .slide-heading{font-size:clamp(2.75rem,10.4vw,3.7rem);letter-spacing:-.05em;line-height:1.08}
 .cover-kicker{font-size:.875rem;max-width:315px;letter-spacing:0;gap:12px;margin-bottom:22px}
 .cover-kicker-mark{height:20px;width:6px;box-shadow:10px 0 0 var(--red-dark);margin-right:9px}
 .cover-description{font-size:1rem;line-height:1.75;margin-top:22px;max-width:340px}
 .cover-actions{margin-top:24px;gap:11px 18px}
 .cover-actions .button{font-size:.875rem;padding:14px 18px;min-height:52px;gap:27px}
 .cover-contact{font-size:.875rem;min-height:52px;padding:14px 18px}
 .cover-service-links{padding:8px 12px;gap:12px}
 .cover-service-links a{font-size:.875rem}
 .cover-carousel .carousel-controls{padding:8px 10px;gap:9px;max-width:100%}
 .cover-carousel .carousel-controls button{width:39px;height:40px}
 .cover-carousel .carousel-dots .carousel-dot{width:22px}
 .cover-footer{bottom:20px;gap:10px}
}
@media(max-width:370px){.cover-carousel .carousel-controls{padding:8px;gap:7px}.cover-carousel .carousel-dots .carousel-dot{width:21px}}
@media(prefers-reduced-motion:reduce){.cover-slide.is-active .cover-kicker,.cover-slide.is-active .cover-actions{animation:none!important}}
