:root{--motion-ease:cubic-bezier(.22,1,.36,1);--motion-quick:180ms;--motion-medium:420ms}
.button,.nav-cta,.menu,.close{transition:transform var(--motion-medium) var(--motion-ease),background-color .3s ease,box-shadow var(--motion-medium) var(--motion-ease),border-color .3s ease;transform-origin:center}
.button:active,.nav-cta:active,.menu:active,.close:active{transform:scale(.97)!important;transition-duration:var(--motion-quick)}
.service-grid article,.commercial-grid article{position:relative;isolation:isolate;transition:background-color .55s var(--motion-ease)}
.service-grid article::before,.commercial-grid article::before{content:'';position:absolute;inset:12px;z-index:-1;background:#c5a059;opacity:0;transform:scale(.98);border-radius:10px;transition:opacity .55s var(--motion-ease),transform .65s var(--motion-ease);pointer-events:none}
.service-grid article:focus-within::before,.commercial-grid article:focus-within::before{opacity:.065;transform:scale(1)}
.service-grid article h3,.commercial-grid article h3{transition:transform .55s var(--motion-ease)}
.service-grid button,.commercial-grid button,.text-link,.section-note a{position:relative;transition:transform .4s var(--motion-ease),color .3s ease,border-color .3s ease}
.service-grid button::after,.commercial-grid button::after,.text-link::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--motion-ease);pointer-events:none}
.service-grid button:focus-visible::after,.commercial-grid button:focus-visible::after,.text-link:focus-visible::after{transform:scaleX(1)}
.service-grid button:active,.commercial-grid button:active,.text-link:active{transform:translateY(1px) scale(.98)}
header nav a:not(.nav-cta){transition:color .3s ease,transform .4s var(--motion-ease)}
input,select,textarea{transition:border-color .25s ease,box-shadow .3s ease,background-color .3s ease}
dialog{border-radius:16px;box-shadow:0 32px 100px #03102340;max-height:85vh;overflow-y:auto}dialog::backdrop{backdrop-filter:blur(5px);animation:backdrop-in .35s ease both}dialog.motion-closing::backdrop{animation:backdrop-out .2s ease both}
@keyframes backdrop-in{from{background:#07142700;backdrop-filter:blur(0)}to{background:#071427b8;backdrop-filter:blur(5px)}}@keyframes backdrop-out{from{background:#071427b8;backdrop-filter:blur(5px)}to{background:#07142700;backdrop-filter:blur(0)}}
.close{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;line-height:1}.close:hover{background:#e9edf1}
header nav.open{animation:nav-in .4s var(--motion-ease) both}@keyframes nav-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover) and (pointer:fine){.button:hover,.nav-cta:hover{transform:translateY(-3px);box-shadow:0 8px 22px #03102316}.service-grid article:hover::before,.commercial-grid article:hover::before{opacity:.065;transform:scale(1)}.service-grid article:hover h3,.commercial-grid article:hover h3{transform:translateY(-3px)}.service-grid button:hover,.commercial-grid button:hover,.text-link:hover,.section-note a:hover{transform:translateY(-2px)}.service-grid button:hover::after,.commercial-grid button:hover::after,.text-link:hover::after{transform:scaleX(1)}header nav a:not(.nav-cta):hover{transform:translateY(-1px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.button,.nav-cta,.menu,.close,.service-grid button,.commercial-grid button,.text-link,.section-note a,.service-grid article h3,.commercial-grid article h3,header nav a{transform:none!important}dialog::backdrop{backdrop-filter:none}}
