html{scroll-behavior:smooth}
.contact-scroll{scroll-behavior:smooth}
@keyframes panel-in{from{opacity:0;transform:translateY(20px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes panel-out{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.98)}}
@keyframes backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes backdrop-out{from{opacity:1}to{opacity:0}}
@keyframes slide-in{from{opacity:.35;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@keyframes menu-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
  .contact-dialog[open],.phone-dialog[open]{animation:panel-in .34s cubic-bezier(.2,.75,.25,1) both;transform-origin:center 35%}
  .contact-dialog[open]::backdrop,.phone-dialog[open]::backdrop{animation:backdrop-in .3s ease both}
  .contact-dialog[open].is-closing,.phone-dialog[open].is-closing{animation:panel-out .2s ease both;pointer-events:none}
  .contact-dialog.is-closing::backdrop,.phone-dialog.is-closing::backdrop{animation:backdrop-out .2s ease both}
  .repair-slide:not([hidden]) img{animation:slide-in .65s cubic-bezier(.2,.7,.3,1) both}
  .button,.service-card,.service-icon,.contact-close,.slideshow-controls button{transition:transform .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease}
  .button>span,.text-link>span,.card-arrow{display:inline-block;transition:transform .25s ease}
  .button:hover>span,.text-link:hover>span,.service-card:hover .card-arrow{transform:translate(2px,-2px)}
  .service-card:hover .service-icon{transform:rotate(-5deg);background:#e5ebdd}
  .service-card:hover{box-shadow:0 12px 28px #253b300b}
  .button:active,.slideshow-controls button:active{transform:scale(.97)}
}
@media(max-width:980px) and (prefers-reduced-motion:no-preference){.main-navigation.is-open{animation:menu-in .23s ease both}}
@media(prefers-reduced-motion:reduce){
  html,.contact-scroll{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
