:root{--ccs-ease:cubic-bezier(.22,1,.36,1)}
/* Content remains visible when JavaScript or observers are unavailable. */
@media(prefers-reduced-motion:no-preference){
.ccs-reveal{opacity:0;transform:translate3d(0,28px,0);transition:opacity .8s var(--ccs-ease),transform .9s var(--ccs-ease);transition-delay:var(--reveal-delay,0ms)}
.ccs-reveal.is-visible{opacity:1;transform:translateZ(0)}
.theme-hero .hero-copy{animation:ccs-hero-enter 1s var(--ccs-ease) both}.theme-hero-bg{animation:ccs-image-enter 1.5s var(--ccs-ease) both}
.theme-hero .eyebrow{animation:ccs-hero-enter .9s .1s var(--ccs-ease) both}.theme-hero h1{animation:ccs-hero-enter 1.1s .17s var(--ccs-ease) both}.theme-hero .hero-copy p{animation:ccs-hero-enter 1s .28s var(--ccs-ease) both}.theme-hero .hero-copy>.button{animation:ccs-hero-enter 1s .38s var(--ccs-ease) both}
@keyframes ccs-hero-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes ccs-image-enter{from{opacity:.6;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
@keyframes ccs-menu-enter{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.nav-toggle[aria-expanded=true]+div{animation:ccs-menu-enter .27s var(--ccs-ease)}
.nav-toggle span{transition:transform .3s var(--ccs-ease)}.nav-toggle[aria-expanded=true] span{transform:rotate(180deg)}
.service-card{transition:transform .4s var(--ccs-ease),box-shadow .4s var(--ccs-ease),opacity .7s var(--ccs-ease)}.service-card-image{transition:transform .8s var(--ccs-ease)}
.service-card:hover{transform:translateY(-7px);box-shadow:0 18px 35px #253e5616}.service-card:hover .service-card-image{transform:scale(1.035)}
.insight,.related-service,.steps article{transition:transform .4s var(--ccs-ease),box-shadow .4s var(--ccs-ease)}.insight:hover,.related-service:hover{transform:translateY(-5px);box-shadow:0 14px 28px #253e5610}
.button{position:relative;overflow:hidden;transition:background .25s,border-color .25s,transform .3s var(--ccs-ease),box-shadow .3s}.button:hover{transform:translateY(-2px);box-shadow:0 8px 18px #087fbd25}.button:active{transform:translateY(0) scale(.98)}.button>span{transition:transform .3s var(--ccs-ease)}.button:hover>span{transform:translate(3px,-3px)}
.about-photo,.facade-photo,.people{overflow:hidden}.about-photo>img,.facade-photo>img,.people>img{transition:transform 1.1s var(--ccs-ease)}.about-photo:hover>img,.facade-photo:hover>img{transform:scale(1.025)}
header{transition:box-shadow .3s,background .3s}header.ccs-scrolled{box-shadow:0 5px 25px #16243213}
nav>a,.text-link,.mega-group a,.service-menu-family a{transition:color .2s,background .2s}.text-link{position:relative}.text-link:after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ccs-ease)}.text-link:hover:after{transform:scaleX(1)}
input,textarea,select{transition:background .2s,border-color .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{box-shadow:0 3px 0 #087fbd18;border-color:#087fbd}
.service-hero>div{animation:ccs-hero-enter .9s var(--ccs-ease) both}.service-hero>img{animation:ccs-image-enter 1.2s var(--ccs-ease) both}.service-hero{overflow:hidden}
}
.ccs-scroll-progress{position:fixed;top:0;left:0;height:3px;width:100%;transform:scaleX(0);transform-origin:left;z-index:100;background:#168fce;pointer-events:none}
@media(prefers-reduced-motion:reduce){.ccs-reveal{opacity:1!important;transform:none!important}.ccs-scroll-progress{display:none}html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
