/* Enhanced motion only takes over when the progressive JS layer is available. */
.hero-image-frame{height:100%;width:100%;overflow:hidden;border-radius:inherit;background:var(--navy)}
.hero-image-frame>img{height:100%;width:100%;object-fit:cover;object-position:76% center;border-radius:inherit}
.hero h1>.motion-word{color:inherit}
.expressive-motion .motion-word{display:inline-block;max-width:100%;white-space:normal;overflow-wrap:anywhere;transform-origin:50% 90%;vertical-align:baseline}
.expressive-motion .hero h1,.expressive-motion .hero-visual{animation:none}
.expressive-motion .service.entering .service-photo{animation:none}
.expressive-motion .hero-image-frame.motion-photo>img,
.expressive-motion .service .service-photo.motion-photo>img{
  transform:translate3d(var(--photo-x,0px),calc(var(--photo-scroll,0px) + var(--photo-y,0px)),0) scale(1.12);
  transition:transform .36s cubic-bezier(.2,.65,.35,1);
}
.expressive-motion .hero:focus-within .hero-image-frame.motion-photo>img,
.expressive-motion .service:focus-within .service-photo.motion-photo>img{transform:none;transition:none}
.hero-keyword,.hero-keyword .motion-word{text-decoration:underline;text-decoration-color:var(--amber);text-decoration-thickness:.065em;text-underline-offset:.1em}
.btn{position:relative;isolation:isolate;overflow:hidden}
.btn:before{content:'';position:absolute;inset-block:-20%;left:-65%;width:40%;background:linear-gradient(100deg,transparent,#ffffff55,transparent);transform:skewX(-18deg);pointer-events:none;z-index:-1}
.btn:hover:before,.btn:focus-visible:before{animation:cta-light-pass .8s ease-out}
.review-card{transition:border-color .25s,box-shadow .3s,translate .3s}
.contact-form{transition:border-color .25s,box-shadow .3s}
.contact-form:focus-within{border-color:#a4bcdf;box-shadow:0 20px 54px #102b4e12}
.service-menu[open]>.service-menu-panel{animation:menu-appear .22s cubic-bezier(.2,.8,.2,1)}
@media(hover:hover) and (pointer:fine){
  .review-card:hover{translate:0 -4px;box-shadow:0 12px 24px #102b4e10}
  .service-photo{cursor:default}
}
@keyframes cta-light-pass{from{left:-65%}to{left:135%}}
@keyframes menu-appear{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
  .expressive-motion .motion-word{display:inline;transform:none!important;opacity:1!important;filter:none!important}
  .expressive-motion .hero-image-frame.motion-photo>img,
  .expressive-motion .service .service-photo.motion-photo>img{transform:none;transition:none}
  .btn:before{display:none}
  .review-card:hover{translate:none}
  .contact-form,.review-card{transition:none}
  .service-menu[open]>.service-menu-panel{animation:none}
}
