/* Decorative motion only: content and navigation work without this layer. */
:root{--ease-out:cubic-bezier(.22,1,.36,1)}
.nav-list a{position:relative;transition:color 180ms ease}
.nav-list a:after{content:'';position:absolute;left:0;right:0;bottom:8px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform 260ms var(--ease-out)}
.nav-list .current-menu-item>a:after,.nav-list a:focus-visible:after{transform:scaleX(1)}
.button{transition:background 220ms ease,color 220ms ease,box-shadow 260ms ease,transform 260ms var(--ease-out)}
.button span[aria-hidden],.text-link span[aria-hidden],.discover-link span[aria-hidden],.service-photo h3 span{transition:transform 280ms var(--ease-out)}
.service-photo{transition:box-shadow 320ms ease}
.service-photo img{transition:transform 700ms var(--ease-out)}
.enquiry-form input:not([type=hidden]),.enquiry-form select,.enquiry-form textarea{transition:border-color 180ms ease,box-shadow 180ms ease}
.enquiry-form input:focus-visible,.enquiry-form select:focus-visible,.enquiry-form textarea:focus-visible{border-color:var(--blue);box-shadow:0 0 0 4px #175abb12}
.faq-list summary{transition:color 180ms ease}
.faq-list details[open] summary{color:var(--blue)}
.menu-bars,.menu-bars:before,.menu-bars:after{transition:transform 220ms var(--ease-out),background 180ms ease,top 220ms var(--ease-out)}
.menu-toggle[aria-expanded=true] .menu-bars{background:transparent}
.menu-toggle[aria-expanded=true] .menu-bars:before{top:0;transform:rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-bars:after{top:0;transform:rotate(-45deg)}
@media(hover:hover) and (pointer:fine){
 .nav-list a:hover:after{transform:scaleX(1)}
 .button:hover{transform:translateY(-3px);box-shadow:0 8px 22px #071d3220}
 .button:hover span[aria-hidden]{transform:translate(3px,-2px)}
 .button:active{transform:translateY(0);box-shadow:none}
 .text-link:hover span[aria-hidden]{transform:translateX(5px)}
 .discover-link:hover span[aria-hidden]{transform:translateY(4px)}
 .service-photo:hover{box-shadow:0 14px 32px #071d3228}
 .service-photo:hover img{transform:scale(1.045)}
 .service-photo:hover h3 span{transform:translate(3px,-3px)}
 .faq-list summary:hover{color:var(--blue)}
}
@media(max-width:1000px){.nav-list a:after{right:auto;width:32px;bottom:6px}}
@keyframes tatua-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes tatua-page-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
 /* Runs once per document, including direct opens and refreshes.
    No delayed restart, nested banner entrance or browser snapshot animation. */
 #main{animation:tatua-page-enter 650ms var(--ease-out) backwards;}
 .faq-list details[open]>p{animation:tatua-rise 280ms var(--ease-out) both}
}
@media(prefers-reduced-motion:reduce){
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}
