/* Evidence arriving into view: a single, restrained motion, never a scroll loop. */
.editorial .company-reveal{opacity:.65;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,.65,.35,1)}
.editorial .company-reveal.is-seen{opacity:1;transform:none}
.company-reveal .evidence-heading{position:relative}
.company-reveal .evidence-heading::after{content:'';position:absolute;left:0;bottom:-12px;width:48px;height:3px;background:linear-gradient(90deg,var(--blue) 0 68%,transparent 68% 74%,var(--blue) 74% 82%,transparent 82% 90%,var(--red) 90%);transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.22,.65,.35,1) .12s}
.company-reveal.is-seen .evidence-heading::after{transform:scaleX(1)}
.service-index>a{background-image:linear-gradient(90deg,var(--blue) 0 88%,var(--red) 88%);background-repeat:no-repeat;background-position:left bottom;background-size:0 1px;transition:background-size .75s ease,color .2s}
.service-index>a.is-seen{background-size:100% 1px}
.home-hero .hero-stage{touch-action:pan-y pinch-zoom}
.home-hero{--slide-entry:16px}
.home-hero[data-slide-direction="previous"]{--slide-entry:-16px}
.home-hero .hero-slide.is-active{animation:company-slide-arrive .6s cubic-bezier(.22,.65,.35,1) both}
.home-hero .carousel-actions button{position:relative;display:grid;place-items:center;width:44px;height:44px;transition:background-color .2s,border-color .2s,box-shadow .2s,transform .2s}
.home-hero .carousel-actions button svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s cubic-bezier(.22,.65,.35,1)}
.home-hero [data-carousel="next"]{background:var(--navy);color:white;border-color:var(--navy)}
.home-hero .carousel-actions button:is(:hover,:focus-visible){border-color:var(--blue);box-shadow:0 0 0 5px #0098da12;transform:translateY(-2px)}
.home-hero [data-carousel="next"]:is(:hover,:focus-visible){background:#005374}
.home-hero [data-carousel="next"]:is(:hover,:focus-visible) svg{transform:translateX(3px)}
.home-hero [data-carousel="previous"]:is(:hover,:focus-visible) svg{transform:translateX(-3px)}
.next-slide-preview{position:absolute;bottom:calc(100% + 15px);right:0;display:grid;gap:5px;width:max-content;max-width:240px;padding:13px 16px;text-align:left;color:var(--navy);background:white;border:1px solid var(--border);border-radius:9px;box-shadow:0 10px 30px #00304812;opacity:0;visibility:hidden;transform:translateY(5px);pointer-events:none;transition:opacity .2s,transform .25s,visibility .25s;z-index:5}
.next-slide-preview::after{content:'';position:absolute;right:16px;bottom:-5px;width:8px;height:8px;background:white;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:rotate(45deg)}
.next-slide-preview small{font-size:9px;line-height:1.4;color:#0077ae;text-transform:uppercase;letter-spacing:.09em}
.next-slide-preview b{font-size:12px;line-height:1.4;font-weight:600;letter-spacing:0}
.home-hero [data-carousel="next"]:focus-visible .next-slide-preview{opacity:1;visibility:visible;transform:none}
@media(hover:hover) and (pointer:fine){.home-hero [data-carousel="next"]:hover .next-slide-preview{opacity:1;visibility:visible;transform:none}.service-gallery:hover .service-photo.is-current img{transform:scale(1.025)}}
.service-gallery .service-photo img{transition:transform 1s cubic-bezier(.22,.65,.35,1)}
.service-gallery-actions button svg{transition:transform .25s ease}
.service-gallery-actions button:is(:hover,:focus-visible){background:#0077ae;border-color:#a9ddf4}
.service-gallery-actions [data-photo-next]:is(:hover,:focus-visible) svg{transform:translateX(2px)}
.service-gallery-actions [data-photo-previous]:is(:hover,:focus-visible) svg{transform:translateX(-2px)}
.home-hero .carousel-actions button:active{transform:translateY(0);box-shadow:none}
.home-hero .carousel-tabs button>span{transition:height .2s,background-color .2s}
.home-hero .carousel-tabs button:is(:hover,:focus-visible)>span{height:3px;background:var(--blue)}
@keyframes company-slide-arrive{from{opacity:.8;transform:translateX(var(--slide-entry))}to{opacity:1;transform:none}}
@media(max-width:600px){.home-hero .carousel-actions{gap:6px}}
@media(prefers-reduced-motion:reduce){.editorial .company-reveal{opacity:1;transform:none;transition:none}.company-reveal .evidence-heading::after{transform:scaleX(1);transition:none}.home-hero .hero-slide.is-active{animation:none}.service-index>a{transition:none}.next-slide-preview{transition:none;transform:none}.service-gallery:hover .service-photo.is-current img,.service-gallery-actions button:is(:hover,:focus-visible) svg,.home-hero .carousel-actions button:is(:hover,:focus-visible),.home-hero .carousel-actions button:is(:hover,:focus-visible) svg{transform:none}}
