/* Lightweight global polish: uses transform and opacity only for motion. */
:focus-visible{outline:3px solid #00a6ff;outline-offset:3px}
.scroll-progress{position:fixed;z-index:120;top:0;right:0;left:0;height:3px;pointer-events:none}.scroll-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,#00b8ff,#006dff,#22c55e);box-shadow:0 1px 8px rgba(0,174,255,.55);will-change:transform}
.site-header{transition:min-height .35s cubic-bezier(.2,.7,.2,1),background .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s cubic-bezier(.2,.7,.2,1)}.site-header.scrolled{background:rgba(255,255,255,.88)!important;box-shadow:0 12px 30px rgba(5,49,84,.1)!important;backdrop-filter:blur(16px)}.site-header.scrolled .nav-shell{min-height:68px}.site-nav a{position:relative}.site-nav a::after{position:absolute;right:12px;bottom:6px;left:12px;height:2px;border-radius:2px;background:linear-gradient(90deg,#00b8ff,#006dff);content:"";opacity:0;transform:scaleX(.35);transition:opacity .2s ease,transform .2s ease}.site-nav a.active::after,.site-nav a:hover::after{opacity:1;transform:scaleX(1)}
.btn{position:relative;isolation:isolate;overflow:hidden;transform:translateZ(0);transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s cubic-bezier(.2,.7,.2,1),filter .22s ease}.btn::after{position:absolute;z-index:-1;top:50%;left:50%;width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.3);content:"";opacity:0;transform:translate(-50%,-50%) scale(0);transition:transform .45s ease,opacity .45s ease}.btn:active{transform:translateY(1px) scale(.985)}.btn:active::after{opacity:1;transform:translate(-50%,-50%) scale(14);transition:transform .5s ease,opacity .1s ease}.btn-primary{box-shadow:0 9px 18px rgba(7,91,181,.15)}.btn-whatsapp{box-shadow:0 9px 18px rgba(22,163,74,.16)}
.global-reveal{opacity:1;transform:none}.js-motion .global-reveal{opacity:0;transform:translateY(16px);transition:opacity .58s cubic-bezier(.2,.7,.2,1),transform .58s cubic-bezier(.2,.7,.2,1)}.js-motion .global-reveal.is-visible{opacity:1;transform:translateY(0)}
@media (hover:hover) and (pointer:fine){.btn:hover{transform:translateY(-2px) scale(1.015)}.service-row,.pricing-card,.copy-card,.contact-detail{transition:transform .24s cubic-bezier(.2,.7,.2,1),box-shadow .24s cubic-bezier(.2,.7,.2,1),border-color .24s ease}.service-row:hover,.pricing-card:hover,.copy-card:hover,.contact-detail:hover{border-color:#7bd5f4;box-shadow:0 18px 34px rgba(7,91,181,.12)}.service-row img{transition:transform .5s cubic-bezier(.2,.7,.2,1)}.service-row:hover img{transform:scale(1.025)}}
@media (max-width:820px){.site-header.scrolled .nav-shell{min-height:66px}.scroll-progress{height:2px}}@media (prefers-reduced-motion:reduce){.scroll-progress{display:none}.global-reveal,.js-motion .global-reveal{opacity:1!important;transform:none!important}}

/* Compact, consistently aligned enquiry fields. */
.booking-form .form-field{align-content:start}.booking-form .form-field label{min-height:18px;line-height:1.25}.booking-form .form-field input,.booking-form .form-field select{min-height:48px;padding:10px 12px;line-height:1.3}.booking-form .form-field input::placeholder{color:#7890a4;opacity:1}.booking-form .form-field input:focus,.booking-form .form-field select:focus{border-color:#00a6ff;box-shadow:0 0 0 3px rgba(0,166,255,.13);outline:0}
