/* Salutem motion layer: accessible visual polish across the static site. */
.site-header{transition:background-color .35s ease,box-shadow .35s ease,border-color .35s ease}
.site-header:hover{box-shadow:0 10px 30px rgba(13,40,52,.09)}
.brand img{transition:transform .35s cubic-bezier(.2,.8,.2,1),filter .35s ease}
.brand:hover img{transform:translateY(-2px) scale(1.025);filter:drop-shadow(0 8px 12px rgba(178,43,58,.18))}
.site-header nav a{position:relative;overflow:hidden}
.site-header nav a::after{content:"";position:absolute;left:12px;right:12px;bottom:5px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .3s ease}
.site-header nav a:hover::after,.site-header nav a:focus-visible::after,.site-header nav a.active::after{transform:scaleX(1);transform-origin:left}
.hero{background-position:center calc(50% + var(--hero-shift,0px));transition:background-position .12s linear}
.hero-shade{overflow:hidden}
.hero-shade::after{content:"";position:absolute;inset:-30% auto -30% -25%;width:22%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.11),transparent);transform:skewX(-15deg);animation:salutem-sheen 7s ease-in-out 1.2s infinite;pointer-events:none}
.hero-content>*{opacity:0;animation:salutem-enter .72s cubic-bezier(.2,.8,.2,1) forwards}
.hero-content>*:nth-child(2){animation-delay:.1s}.hero-content>*:nth-child(3){animation-delay:.2s}.hero-content>*:nth-child(4){animation-delay:.3s}
.button,.text-link,.card,.service-tile,.image-card,.contact-grid>*,.tool-card,.quick-link{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,border-color .35s ease,background-color .35s ease}
.button:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(178,43,58,.23)}
.card:hover,.service-tile:hover,.tool-card:hover,.quick-link:hover{transform:translateY(-7px);box-shadow:0 25px 48px rgba(13,40,52,.13);border-color:rgba(178,43,58,.45)}
.contact-grid>*:hover{transform:translateY(-5px);box-shadow:0 20px 38px rgba(13,40,52,.18)}
.service-tile>span,.card-index{transition:transform .35s cubic-bezier(.2,.8,.2,1),background-color .35s ease,color .35s ease}
.service-tile:hover>span,.card:hover .card-index{transform:rotate(-7deg) scale(1.08);background:var(--accent);color:#fff}
.feature-image,.split figure,.image-card{overflow:hidden;transition:transform .45s ease,box-shadow .45s ease}
.feature-image img,.split figure img,.image-card img{transition:transform .75s cubic-bezier(.2,.8,.2,1),filter .5s ease}
.feature-image:hover,.split figure:hover,.image-card:hover{transform:translateY(-4px);box-shadow:0 28px 56px rgba(13,40,52,.15)}
.feature-image:hover img,.split figure:hover img,.image-card:hover img{transform:scale(1.04);filter:saturate(1.08) contrast(1.02)}
.cta-band{position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;width:260px;height:260px;right:-130px;bottom:-170px;border-radius:50%;background:rgba(178,43,58,.12);transition:transform .6s ease}
.cta-band:hover::after{transform:scale(1.25)}
.cta-band>*{position:relative;z-index:1}
.motion-ready .reveal-item{opacity:0;transform:translateY(25px);transition:opacity .7s ease var(--reveal-delay,0ms),transform .7s cubic-bezier(.2,.8,.2,1) var(--reveal-delay,0ms)}
.motion-ready .reveal-item.is-visible{opacity:1;transform:none}
@keyframes salutem-enter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes salutem-sheen{0%,62%{left:-25%;opacity:0}70%{opacity:1}82%,100%{left:120%;opacity:0}}
@media(max-width:980px){.site-header nav a::after{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.motion-ready .reveal-item{opacity:1;transform:none}.hero{background-position:center}}
