/* Cinematic carousel, confined to the Services landing page. */
.asv .asv-cinematic-hero { min-height: 640px; height: min(900px,calc(100svh - 140px)); padding: 32px clamp(25px,6vw,100px) 0; background: #352c26; }
.asv-cinematic-hero .asv-hero-media { opacity: 0; transition: opacity 1.25s var(--asv-ease),transform 1.25s var(--asv-ease); transform: translate3d(var(--hero-x,0px),var(--hero-y,0px),0) scale(1.045); }
.asv-cinematic-hero .asv-hero-media.is-active { opacity: 1; }
.asv-cinematic-hero .asv-hero-media img { object-position: center; }
.asv-cinematic-hero .asv-hero-media:not(:first-child).is-active img { animation: asv-scene-drift 12s linear both; }
@keyframes asv-scene-drift { from { transform: scale(1); } to { transform: scale(1.055); } }
.asv-hero-film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .8s; }
.asv-hero-media.has-video .asv-hero-film { opacity: 1; }
.asv-cinematic-hero .asv-hero-shade { background: linear-gradient(180deg,#1c18134d,#1815107a 40%,#17130f85 100%); }
.asv-cinematic-hero .asv-hero-top { border: 0; padding: 0; }
.asv-hero-contact { display: inline-flex; align-items: center; gap: 16px; color: #fff !important; font-size: 11px; }
.asv-hero-contact svg { width: 17px; height: 17px; }
.asv-cinematic-hero .asv-hero-content { text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 65px 70px; width: 100%; max-width: 1100px; margin: auto; transition: opacity .28s,transform .6s var(--asv-ease); }
.asv-cinematic-hero.is-changing .asv-hero-content { opacity: 0; transform: translateY(12px); }
.asv-cinematic-hero .asv-hero-kicker { font-size: 12px; font-weight: 500; letter-spacing: .14em; color: #f6c89f; margin-bottom: 36px !important; }
.asv .asv-cinematic-hero h1 { font-size: clamp(38px,4.5vw,68px); font-weight: 400; line-height: 1.13; letter-spacing: -.04em; color: #fff; max-width: 930px; margin-bottom: 20px; }
.asv-cinematic-hero .asv-hero-description { font-size: clamp(15px,1.35vw,20px); line-height: 1.55; max-width: 640px; color: #fff4eb; }
.asv-cinematic-hero .asv-hero-actions { justify-content: center; margin-top: 50px; }
.asv.is-paused .asv-cinematic-hero .asv-hero-top,
.asv.is-paused .asv-cinematic-hero .asv-hero-kicker,
.asv.is-paused .asv-cinematic-hero .asv-hero-description,
.asv.is-paused .asv-cinematic-hero .asv-hero-actions { animation: none; }
.asv-cinematic-hero .asv-button { min-width: 225px; min-height: 58px; max-width: 100%; border-radius: 999px; padding: 10px 14px 10px 26px; gap: 22px; letter-spacing: .01em; text-transform: none; font-size: 13px; font-weight: 500; background: transparent; border: 1px solid #fff4e6c9; color: #fff4e6 !important; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); text-shadow: 0 1px 4px #251b1659; transition: background .3s,border-color .3s,color .3s,transform .3s var(--asv-ease); }
.asv-cinematic-hero .asv-button svg { width: 36px; height: 36px; padding: 9px; border: 1px solid #fff4e64d; border-radius: 50%; transition: transform .3s var(--asv-ease),border-color .3s; }
.asv-cinematic-hero .asv-button:focus-visible { background: var(--asv-cream); border-color: var(--asv-cream); color: var(--asv-ink) !important; text-shadow: none; }
@media (hover:hover) and (pointer:fine) {
    .asv-cinematic-hero .asv-button:hover { background: var(--asv-cream); border-color: var(--asv-cream); color: var(--asv-ink) !important; text-shadow: none; }
    .asv-cinematic-hero .asv-button:hover svg { border-color: #402d2733; transform: rotate(45deg); }
}
.asv-hero-thumbnails { position: absolute; right: clamp(24px,4vw,72px); top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; align-items: center; gap: 12px; z-index: 3; }
.asv .asv-hero-thumbnail { position: relative; width: 50px; height: 50px; padding: 3px; min-width: 0; border: 1px solid #ffffff80; border-radius: 50%; background: #ffffff10; transition: border-color .3s,transform .4s var(--asv-ease); }
.asv-hero-thumbnail > img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
.asv .asv-hero-thumbnail.is-active { border: 2px solid #f2caab; transform: scale(1.12); }
.asv-hero-thumbnail:hover { border-color: #fff; }
.asv-hero-thumbnail-label { position: absolute; right: 64px; top: 50%; transform: translate(8px,-50%); white-space: nowrap; color: #fff; font-size: 10px; background: #30251dcc; padding: 6px 10px; border-radius: 2px; pointer-events: none; opacity: 0; transition: opacity .2s,transform .2s; }
.asv-hero-thumbnail:hover .asv-hero-thumbnail-label,.asv-hero-thumbnail:focus-visible .asv-hero-thumbnail-label { opacity: 1; transform: translate(0,-50%); }
.asv-hero-play-icon { position: absolute; inset: 3px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: #20191360; font-size: 23px; line-height: 1; }
.asv-cinematic-hero .asv-hero-bottom { padding: 21px 0; border-top: 1px solid #ffffff32; }
.asv-cinematic-hero .asv-hero-bottom-center { flex: 1; text-align: center; }
.asv-cinematic-hero .asv-motion-toggle { margin-left: auto; }
.asv-hero-pagination { display: inline-flex; gap: 19px; align-items: center; color: #fff5eb; }
.asv .asv-hero-pagination button { width: 30px; height: 30px; padding: 0; background: none; border: 0; color: #fff; font-size: 19px; line-height: 1; }
.asv-hero-pagination > span { font-size: 11px; letter-spacing: .1em; color: #eadbd0; }
.asv-hero-pagination b { font-weight: 500; color: #fff; }
.asv-cinematic-hero .asv-motion-toggle { position: static; width: 34px; height: 34px; margin: 0; padding: 0; flex-shrink: 0; font-size: 12px; }
.asv-hero-video-credit { position: absolute; bottom: 85px; right: clamp(25px,6vw,100px); color: #ffffffc9 !important; font-size: 8px; letter-spacing: .04em; }
.asv-hero-progress { position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: #ffffff18; }
.asv-hero-progress span { display: block; height: 100%; width: 100%; transform: scaleX(var(--asv-progress,0)); transform-origin: left; background: #d09a70; }
.asv-cinematic-hero .asv-hero-content { touch-action: pan-y; }
@media (min-width:1500px) { .asv .asv-cinematic-hero { height: min(1000px,calc(100svh - 170px)); }.asv .asv-cinematic-hero h1 { font-size: 72px; } }
@media (max-width:849px) {
    .asv .asv-cinematic-hero { height: calc(100svh - 120px); min-height: 620px; max-height: 850px; padding: 26px 24px 0; }
    .asv-cinematic-hero .asv-hero-content { padding: 50px 55px 60px 10px; }
    .asv .asv-cinematic-hero h1 { font-size: clamp(37px,6vw,55px); }
    .asv-cinematic-hero .asv-hero-kicker { font-size: 10px; margin-bottom: 28px !important; }
    .asv-hero-contact { display: none; }
    .asv-hero-thumbnails { right: 20px; gap: 11px; }
    .asv .asv-hero-thumbnail { width: 42px; height: 42px; }
    .asv-cinematic-hero .asv-hero-actions { margin-top: 35px; }
    .asv-hero-video-credit { bottom: 88px; right: 24px; font-size: 7px; }
    .asv-cinematic-hero .asv-hero-bottom-center { display: none; }
}
@media (max-width:599px) {
    .asv .asv-cinematic-hero { min-height: 640px; height: calc(100svh - 120px); padding: 24px 22px 0; }
    .asv-cinematic-hero .asv-hero-top .asv-eyebrow { font-size: 8px; letter-spacing: .11em; }
    .asv-cinematic-hero .asv-hero-content { padding: 45px 0 122px; margin-top: auto; margin-bottom: auto; }
    .asv .asv-cinematic-hero h1 { font-size: clamp(36px,9.7vw,48px); line-height: 1.16; }
    .asv-cinematic-hero .asv-hero-description { font-size: 15px; max-width: 310px; }
    .asv-cinematic-hero .asv-hero-kicker { font-size: 9px; letter-spacing: .12em; max-width: 290px; }
    .asv-cinematic-hero .asv-hero-actions { flex-direction: row; align-items: center; margin-top: 30px; }
    .asv-cinematic-hero .asv-button { min-width: 215px; padding: 10px 12px 10px 22px; font-size: 12px; }
    .asv-hero-thumbnails { top: auto; bottom: 91px; left: 20px; right: 20px; flex-direction: row; justify-content: center; gap: 8px; transform: none; }
    .asv .asv-hero-thumbnail { width: 40px; height: 40px; flex: 0 0 40px; }
    .asv-hero-thumbnail-label { display: none; }
    .asv-cinematic-hero .asv-hero-bottom { padding: 16px 68px 16px 0; }
    .asv-cinematic-hero .asv-motion-toggle { position: static; }
    .asv-hero-pagination { gap: 14px; }
    .asv-hero-video-credit { bottom: 143px; right: auto; left: 0; width: 100%; text-align: center; font-size: 7px; }
}
@media (prefers-reduced-motion: reduce) { .asv-cinematic-hero .asv-hero-media,.asv-cinematic-hero .asv-hero-content { transition: none !important; }.asv-cinematic-hero.is-changing .asv-hero-content { opacity: 1; transform: none; } }
