/* Short, purposeful motion; no content depends on animation to become visible. */
.header{transition:box-shadow .25s ease}
.header.is-scrolled{box-shadow:0 5px 24px #052c4310}
.header::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--orange);transform:scaleX(var(--reading-progress,0));transform-origin:left;pointer-events:none}
.desktop-nav a{position:relative;padding:8px 0;transition:color .2s ease}
.desktop-nav a::after{content:'';position:absolute;left:0;right:0;bottom:1px;height:1px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.desktop-nav a:focus-visible::after{transform:scaleX(1)}
.button{position:relative;isolation:isolate;overflow:hidden;transition:background .2s ease,transform .25s ease,box-shadow .25s ease}
.button::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,#ffffff45 50%,transparent 70%);transform:translateX(-130%);pointer-events:none}
.button>span,.text-link>span,.service-content>a span{display:inline-block;transition:transform .25s ease}
.button:active{transform:translateY(0) scale(.985)}
.service summary{transition:background-color .25s ease}
.service h3,.service-number{transition:color .25s ease}
.plus{transition:transform .3s ease,color .25s ease,border-color .25s ease,background .25s ease}
.focus-cards article{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.card-icon{display:inline-block;transition:transform .35s ease}
.faq summary>span{transition:transform .25s ease,color .25s ease}
.menu-toggle span{transition:transform .25s ease}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.75px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
input,textarea,select{transition:border-color .25s ease,background .25s ease}
.request-form label:focus-within{color:#fff}
.request-form input:focus,.request-form textarea:focus,.request-form select:focus{border-bottom-color:var(--orange)}
@keyframes panel-reveal{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes button-sheen{to{transform:translateX(130%)}}
@media(prefers-reduced-motion:no-preference){
  .service[open] .service-content,.faq details[open] p{animation:panel-reveal .35s cubic-bezier(.22,1,.36,1) both}
  .mobile-nav:not([hidden]){animation:panel-reveal .22s ease both}
}
@media(hover:hover) and (pointer:fine){
  .desktop-nav a:hover::after{transform:scaleX(1)}
  .orange:hover{box-shadow:0 8px 22px #f5912926}
  .button:hover::after{animation:button-sheen .65s ease}
  .button:hover>span,.text-link:hover>span,.service-content>a:hover span{transform:translate(3px,-3px)}
  .service summary:hover{background-color:#ffffff05}
  .service summary:hover h3,.service summary:hover .service-number{color:var(--orange)}
  .service summary:hover .plus{border-color:var(--orange);background:#f5912912}
  .focus-cards article:hover{transform:translateY(-6px);box-shadow:0 14px 30px #062e4910;border-color:#a6b9b2}
  .focus-cards article:hover .card-icon{transform:translate(3px,-3px) rotate(-5deg)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .button:hover,.button:active,.focus-cards article:hover,.focus-cards article:hover .card-icon,.button:hover>span,.text-link:hover>span,.service-content>a:hover span{transform:none}
}
