/* Shared action motion, adopted from Design System 01. */
:root{--speed-response:160ms;--speed-action:320ms;--speed-enter:cubic-bezier(.16,1,.3,1)}
.lineup-all-link{margin-top:25px;min-width:245px}
html:not(.enhanced) .menu-toggle{display:none}
.footer-bottom{align-items:flex-end;gap:30px}
.footer-bottom nav.footer-groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 35px;flex:1;max-width:1020px}
.footer-groups>div{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.footer-groups>div>p{font-size:11px;color:var(--muted);margin-bottom:14px}
.footer-groups a{font-size:11px;line-height:1.7;min-height:38px}
.mobile-menu .menu-top{position:sticky;top:0;z-index:2;background:var(--ink);padding-bottom:12px}
.mobile-menu nav{margin-top:28px}
@media(max-width:1050px){.footer-bottom{display:block}.footer-bottom>p{margin-top:28px}.footer-bottom nav.footer-groups{gap:20px}}
@media(max-width:767px){.footer-bottom nav.footer-groups{grid-template-columns:1fr 1fr;gap:25px 20px}.footer-groups a{min-height:44px;font-size:11px}.footer-groups>div>p{margin-bottom:8px}.mobile-menu nav>a{font-size:16px;padding-block:18px}}
.speed-button{position:relative;overflow:hidden;isolation:isolate;transition:color var(--speed-response)}
.speed-button::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--accent);transform:translateX(-101%);transition:transform var(--speed-action) var(--speed-enter)}
.speed-button .action-label{font:inherit;transform:none}
.speed-button.button-primary,.speed-button.button-primary:focus-visible{background:var(--paper);color:var(--ink)}
.speed-button.button-outline,.speed-button.header-contact{background:transparent;color:var(--paper)}
.speed-button.button-outline::before,.speed-button.header-contact::before{background:var(--paper)}
.speed-button:active{box-shadow:inset 0 0 0 2px currentColor}
.action-arrow{position:relative;display:block;flex:none;width:28px;height:28px;overflow:hidden;font:24px/28px Arial,sans-serif!important;transform:none!important}
.action-arrow i{position:absolute;inset:0;font-style:normal;transition:transform var(--speed-action) var(--speed-enter)}
.action-arrow i+i{transform:translateX(-140%)}
.speed-button.header-contact{display:inline-flex;align-items:center}
.header-contact .action-label{display:inline}
.header-contact .action-arrow{display:none}
.speed-button.button-outline .action-arrow{color:#fff;mix-blend-mode:difference}
.speed-link{position:relative;isolation:isolate;border-bottom-color:var(--line);overflow:hidden}
.speed-link::after{content:'';position:absolute;inset:auto 0 0;height:1px;background:currentColor;transform:translateX(-101%);transition:transform var(--speed-action) var(--speed-enter)}
.speed-nav{position:relative;display:inline-flex;align-items:center;min-height:44px}
.speed-nav::after{content:'';position:absolute;inset:auto 0 8px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform var(--speed-response) var(--speed-enter)}
.mobile-menu .speed-nav::after{bottom:0}
.speed-button:focus-visible::before,.speed-link:focus-visible::after{transform:translateX(0)}
.speed-button:is(.button-outline,.header-contact):focus-visible{background:transparent;color:var(--ink)}
:is(.speed-button,.speed-link):focus-visible .action-arrow i:first-child{transform:translateX(140%)}
:is(.speed-button,.speed-link):focus-visible .action-arrow i+i{transform:translateX(0)}
.speed-nav:focus-visible::after{transform:scaleX(1);transform-origin:left}
@media(hover:hover) and (pointer:fine){
 .speed-button:hover::before,.speed-link:hover::after{transform:translateX(0)}
 .speed-button.button-primary:hover{background:var(--paper)}
 .speed-button:is(.button-outline,.header-contact):hover{background:transparent;color:var(--ink)}
 :is(.speed-button,.speed-link):hover .action-arrow i:first-child{transform:translateX(140%)}
 :is(.speed-button,.speed-link):hover .action-arrow i+i{transform:translateX(0)}
 .speed-nav:hover::after{transform:scaleX(1);transform-origin:left}
 .desktop-nav a.speed-nav:hover{opacity:1}
}
@media(hover:none),(pointer:coarse){
 .speed-button.button-primary:hover{background:var(--paper)}
 .speed-button:is(.button-outline,.header-contact):hover:not(:focus-visible){background:transparent;color:var(--paper)}
 .desktop-nav a.speed-nav:hover{opacity:1}
}
.motion-paused :is(.speed-button,.speed-link,.speed-nav),.motion-paused :is(.speed-button,.speed-link,.speed-nav)::before,.motion-paused :is(.speed-button,.speed-link,.speed-nav)::after,.motion-paused .action-arrow i{transition:none!important}
@media(prefers-reduced-motion:reduce){
 :is(.speed-button,.speed-link,.speed-nav),:is(.speed-button,.speed-link,.speed-nav)::before,:is(.speed-button,.speed-link,.speed-nav)::after,.action-arrow i{transition:none!important}
}

/* Image hover and scroll transforms live on separate layers. */
:root{--speed-media:560ms}
.vehicle-photo-link{display:block;position:relative}
.vehicle-hover-layer{display:block;width:100%;height:100%;transform:scale(1.02);transform-origin:65% 50%;transition:transform var(--speed-media) var(--speed-enter)}
.vehicle-photo-link:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}
.vehicle-photo-link:focus-visible .vehicle-hover-layer{transform:scale(1.06) translateX(-.8%)}

.journal-action{isolation:isolate;overflow:hidden;padding-left:12px;padding-right:12px}
.journal-action::after{content:'';position:absolute;inset:0;z-index:-1;background:#272824;transform:translateX(-101%);transition:transform var(--speed-action) var(--speed-enter)}
.journal-action>span:last-child,.work-action>span:last-child{transition:transform var(--speed-action) var(--speed-enter)}
.journal-action:focus-visible::after{transform:translateX(0)}
.journal-action:focus-visible>span:last-child{transform:translateX(8px)}
.journal-action:hover h3,.work-action:hover h3{text-decoration:none}
/* A bright line marks the selected consultation; its photo remains the main response. */
.work-action::after{content:'';position:absolute;inset:0 0 auto;height:1px;background:var(--paper);transform:scaleX(0);transform-origin:left;transition:transform var(--speed-action) var(--speed-enter)}
.work-action p{transition:color var(--speed-response)}
.work-action .work-thumb img{transition:transform var(--speed-media) var(--speed-enter)}
.work-motion-on .work-action.is-selected::after,.work-action:focus-visible::after{transform:scaleX(1)}
.work-motion-on .work-action.is-selected>span:last-child,.work-action:focus-visible>span:last-child{transform:translateX(5px)}
.work-action:focus-visible p{color:var(--paper)}
.work-action:focus-visible .work-thumb img{transform:scale(1.04)}
@media(hover:hover) and (pointer:fine){
 .vehicle-photo-link:hover .vehicle-hover-layer{transform:scale(1.06) translateX(-.8%)}
 .journal-action:hover::after{transform:translateX(0)}
 .journal-action:hover>span:last-child{transform:translateX(8px)}
 .work-action:hover::after{transform:scaleX(1)}
 .work-action:hover>span:last-child{transform:translateX(5px)}
 .work-action:hover p{color:var(--paper)}
 .work-action:hover .work-thumb img{transform:scale(1.04)}
}
@media(hover:none),(pointer:coarse){
 .vehicle-hover-layer{transform:none}
 .work-action:hover:not(:focus-visible) .work-thumb img{transform:none}
 :is(.work-action,.journal-action):hover:not(:focus-visible)>span:last-child{transform:none}
}
.motion-paused .vehicle-hover-layer,.motion-paused .work-action .work-thumb img{transform:none!important;transition:none!important}
.motion-paused :is(.journal-action,.work-action)::after,.motion-paused :is(.journal-action,.work-action)>span:last-child,.motion-paused .work-action p{transition:none!important}
@media(prefers-reduced-motion:reduce){
 .vehicle-hover-layer,.work-action .work-thumb img{transform:none!important;transition:none!important}
 :is(.journal-action,.work-action)::after,:is(.journal-action,.work-action)>span:last-child,.work-action p{transition:none!important}
}
