/* Independent interaction layer — keeps Fixonic-inspired layout CSS separate. */
@media (prefers-reduced-motion: no-preference) {
  @keyframes royal-hero-enter {from{opacity:.15;transform:scale(1.095) translate3d(0,-12px,0)}to{opacity:.88;transform:scale(1.05) translate3d(0,var(--hero-shift,0px),0)}}
  @keyframes royal-title-reveal {from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(42px)}to{opacity:1;clip-path:inset(0 0 0 0);transform:translateY(0)}}
  @keyframes royal-detail-fade {from{opacity:0;transform:translateY(19px)}to{opacity:1;transform:translateY(0)}}
  @keyframes royal-page-fade {from{opacity:0}to{opacity:1}}
  @keyframes royal-marquee {to{transform:translateX(-50%)}}
  .hero-image img {will-change:transform;animation:royal-hero-enter 1.5s cubic-bezier(.22,1,.36,1) both;transform:scale(1.05) translate3d(0,var(--hero-shift,0px),0)}
  .hero-title .headline-top {animation:royal-title-reveal .98s .12s cubic-bezier(.18,.9,.2,1) both}
  .hero-title .headline-bottom {animation:royal-title-reveal 1.12s .28s cubic-bezier(.18,.9,.2,1) both}
  .hero-topline,.hero-lead,.hero-side-caption {animation:royal-detail-fade .85s .52s both}
  .hero-lead {animation-delay:.64s}
  .hero-side-caption {animation-delay:.77s}
  .page-is-leaving main {opacity:.35;filter:blur(2px);transition:opacity .16s ease,filter .16s ease}
  .service-card:hover img,.gallery-tile:hover img,.mosaic-large:hover img,.mosaic-side>div:hover img {transform:scale(1.07)}
  [data-hover-tilt] {transition:transform .5s cubic-bezier(.2,.8,.2,1);transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(0);will-change:transform}
  .is-in-view .quick-service-row {animation:royal-detail-fade .55s both;animation-delay:calc(var(--item-index) * 80ms)}
  .parallax-photo img {transform:translate3d(0,var(--photo-shift,0px),0) scale(1.055)}
  .service-card,.value-card,.process-card,.gallery-tile {transition:transform .36s cubic-bezier(.2,.8,.2,1),box-shadow .36s,background .3s}
  .process-card:hover,.value-card:hover {transform:translateY(-6px)}
}
.scroll-progress {position:fixed;top:0;left:0;right:0;height:3px;z-index:140;pointer-events:none}
.scroll-progress span{width:100%;height:100%;background:#e00606;display:block;transform:scaleX(var(--scroll-progress,0));transform-origin:left center;box-shadow:0 0 12px #e006066a}
.service-card-media img,.gallery-tile img,.mosaic-large img,.mosaic-side img {transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus {outline:2px solid rgba(224,6,6,.25);outline-offset:2px}
[data-slider] {scrollbar-width:none}
[data-slider]::-webkit-scrollbar {display:none}
@media (prefers-reduced-motion: reduce) {
 .hero-image img,.hero-title .headline-top,.hero-title .headline-bottom,.hero-topline,.hero-lead,.hero-side-caption {animation:none!important;opacity:1!important;clip-path:none!important;transform:none!important}
 .scroll-progress span{transition:none!important}
}
