/* Finite, restrained motion; native scrolling and pointer remain unchanged. */
.action-button,.nav-contact,.round-link,.card-open,.service-row .arrow{transition:background-color .22s ease,color .22s ease,border-color .22s ease,transform .32s cubic-bezier(.22,1,.36,1),box-shadow .25s ease}
.text-link span,.action-button span,.nav-contact span{display:inline-block;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.action-button:focus-visible,.nav-contact:focus-visible{box-shadow:0 0 0 5px #925f4920}
.editorial-card:focus-visible .card-open{transform:translate(2px,-2px);background:#355d6b;color:white}
.editorial-card:focus-visible .image-wrap>img:first-child{transform:scale(1.025)}
.hero-image{transition:translate .6s cubic-bezier(.22,1,.36,1)}
.geo-city{transition:background-color .2s ease,color .2s ease}
.geo-marker circle{transition:fill .2s ease}
dialog[open]{animation:trd-dialog-in .28s cubic-bezier(.22,1,.36,1)}
dialog[open]::backdrop{animation:trd-backdrop-in .22s ease}
#mobile-menu:not([hidden]){animation:trd-menu-in .23s ease-out}
@keyframes trd-dialog-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes trd-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes trd-menu-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(hover:hover) and (pointer:fine){.action-button:hover,.nav-contact:hover{transform:translateY(-2px);box-shadow:0 6px 18px #20332a13}.action-button:hover span,.nav-contact:hover span,.text-link:hover span{transform:translate(3px,-2px)}.editorial-card:hover .card-open{transform:translate(2px,-2px);background:#355d6b;color:#fff}.service-row:hover .arrow{transform:translate(3px,-3px)}.round-link:hover{transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}.hero-image{translate:none!important}.editorial-card:hover img,.editorial-card:focus-visible img,.portfolio-intro-image:hover img{transform:none!important}}
