/* Real interactions earn a small response; contact and native booking controls stay still. */
@keyframes vb-template-arrive{from{opacity:.15;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes vb-template-press{0%{box-shadow:0 0 0 0 #a67c2c55}100%{box-shadow:0 0 0 8px #a67c2c00}}
@keyframes vb-template-line{from{transform:scaleX(.1)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:no-preference){
 body.vb-atelier .is-vb-revealing{animation:vb-template-arrive 620ms cubic-bezier(.2,.7,.2,1) both}
 body.vb-atelier .is-vb-pressed{animation:vb-template-press 320ms ease-out}
 body.vb-atelier :is(.vb-btn,.vb-header-cta,.vb-text-link){transition:background-color 160ms ease,transform 160ms ease,box-shadow 160ms ease}
 body.vb-atelier :is(.vb-btn,.vb-header-cta):active{transform:translateY(1px) scale(.985)}
 body.vb-atelier .vb-text-link:hover{transform:translateX(3px)}
 body.vb-atelier :is(.vb-nav-group,.vb-home-faq) summary{transition:color 160ms ease}
 body.vb-atelier :is(.vb-nav-group,.vb-phone-group)[open]>summary{color:#806026}
 body.vb-atelier .vb-home-faq summary span{transition:transform 180ms ease}
 body.vb-atelier .vb-home-faq details[open]>summary span{transform:rotate(45deg)}
 body.vb-templates .vb-template-rule.is-vb-revealing::before{animation:vb-template-line 520ms ease-out both;transform-origin:left}
}
body.vb-atelier :is(a,button,summary,input,textarea,select):focus-visible{outline:3px solid #8e6f29;outline-offset:4px}
body.vb-atelier :is(.vb-sticky a,.vb-native-booking *){scroll-margin-bottom:100px}
@media(prefers-reduced-motion:reduce){body.vb-atelier *,body.vb-atelier *::before,body.vb-atelier *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
