/* Small, bounded transitions preserve the pace of everyday work. */
:root{--motion-ease:cubic-bezier(.2,.75,.25,1)}
.tab-motion-ready{position:relative;isolation:isolate;overflow-anchor:none}
.tab-motion-ready>a,.tab-motion-ready>button{position:relative;z-index:1}
.tab-sliding-highlight{position:absolute;z-index:0;pointer-events:none;transform-origin:left center}
.tab-motion-ready>.tab-highlight-moving{background:transparent!important;box-shadow:none!important;transition:none!important}
:where(button,.btn,.cp-button,.ex-button,.qp-button,.vv-button,[role="tab"],.eh-tabs a,.fin-tabs a,.portal-nav a,.studio-nav-group a){transition:background-color 160ms,color 160ms,border-color 160ms,box-shadow 180ms,scale 140ms var(--motion-ease);-webkit-tap-highlight-color:transparent;touch-action:manipulation}
:where(button,.btn,.cp-button,.ex-button,.qp-button,.vv-button,[role="tab"]):active:not(:disabled){scale:.975}
:where(input,select,textarea){transition:border-color 160ms,box-shadow 160ms}
:where(.sales-card,.eh-card,.ex-family,.ex-offer,.cp-next){transition:box-shadow 180ms,border-color 180ms}
dialog[data-motion="opening"]::backdrop{animation:vv-backdrop-in 220ms ease-out both}
dialog[data-motion="closing"]::backdrop{animation:vv-backdrop-out 180ms ease-in both}
dialog[data-motion="closing"]{pointer-events:none}
@keyframes vv-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes vv-backdrop-out{from{opacity:1}to{opacity:0}}
@keyframes vv-detail-in{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}
#price-detail.open{animation:vv-detail-in 200ms var(--motion-ease)}
/* Retain the public menu in layout while it slides, including its closing state. */
@media(max-width:760px){
  .vv-header nav,.vv-header.menu-open nav{display:flex;position:absolute;top:73px;left:0;right:0;background:#14281ffb;padding:20px;flex-direction:column;font-size:14px;gap:22px;border-bottom:1px solid #42583d;transform:translateY(-10px);opacity:0;visibility:hidden;pointer-events:none;transition:transform 220ms var(--motion-ease),opacity 180ms,visibility 220ms}
  .vv-header.menu-open nav{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}
}
@media(prefers-reduced-motion:reduce){
  :where(button,.btn,.cp-button,.ex-button,.qp-button,.vv-button,[role="tab"],.eh-tabs a,.fin-tabs a,.portal-nav a,.studio-nav-group a,input,select,textarea){transition:none}
  :where(button,.btn,[role="tab"]):active{scale:1}
  dialog[data-motion]::backdrop,#price-detail.open{animation:none}
  .vv-header nav,.vv-header.menu-open nav{transition:none}
}
@media print{dialog[data-motion]::backdrop{animation:none}}

/* Progressive enhancement; other browsers retain native, accessible details. */
@supports (interpolate-size:allow-keywords){
  @media(prefers-reduced-motion:no-preference){
    details{interpolate-size:allow-keywords}
    details::details-content{height:0;overflow:clip;transition:height 220ms var(--motion-ease),content-visibility 220ms allow-discrete}
    details[open]::details-content{height:auto}
  }
}
