/* Small, bounded motions. No layout animation, scroll loop or persistent layer promotion. */
@media (prefers-reduced-motion:no-preference){
 html:not(.motion-off){scroll-behavior:smooth}
 html:not(.motion-off) :is(.btn,.button,.book-link,.booking-btn,.booking-addon-trigger,.blog-print){transition:transform 180ms cubic-bezier(.2,.7,.2,1),background-color 180ms,border-color 180ms}
 html:not(.motion-off) :is(.btn,.button,.book-link,.booking-btn):active{transform:translateY(1px)}
 html:not(.motion-off) :is(.btn,.button,.text-link,.learn-link) span[aria-hidden]{display:inline-block;transition:transform 220ms cubic-bezier(.2,.7,.2,1)}
 html:not(.motion-off) :is(summary span,.booking-addon-trigger>svg:last-child){transition:transform 220ms cubic-bezier(.2,.7,.2,1)}
 html:not(.motion-off) details[open]>summary>span:last-child{transform:rotate(45deg)}
 html:not(.motion-off) :is(.package,.proof-gallery figure,.discovery-grid>a,.blog-card,.pcs-package,.booking-service){transition:transform 240ms cubic-bezier(.2,.7,.2,1),border-color 220ms}
 html:not(.motion-off) :is(input,select,textarea){transition:border-color 180ms,background-color 180ms}
 html:not(.motion-off) dialog[open]::backdrop{animation:maxx-backdrop-in 180ms ease-out}
 html:not(.motion-off) .pcs-checklist-items label,html:not(.motion-off) .blog-checks label>span{transition:opacity 180ms}
 html:not(.motion-off) .blog-card:hover{transform:translateY(-3px)}
 @media (hover:hover) and (pointer:fine){
  html:not(.motion-off) :is(.btn,.button,.book-link,.booking-btn):not(:disabled):hover{transform:translateY(-2px)}
  html:not(.motion-off) :is(.btn,.button,.text-link,.learn-link):hover span[aria-hidden]{transform:translateX(3px)}
  html:not(.motion-off) :is(.package,.proof-gallery figure,.discovery-grid>a,.blog-card,.pcs-package,.booking-service):hover{transform:translateY(-3px)}
  html:not(.motion-off) header nav>a:not(.button){position:relative}
  html:not(.motion-off) header nav>a:not(.button)::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 200ms ease-out}
  html:not(.motion-off) header nav>a:not(.button):hover::after,html:not(.motion-off) header nav>a:not(.button):focus-visible::after{transform:scaleX(1)}
 }
 @media(max-width:700px){html:not(.motion-off) header nav.open{animation:maxx-menu-in 200ms cubic-bezier(.2,.7,.2,1)}}
}
@keyframes maxx-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes maxx-menu-in{from{opacity:.7;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
/* Existing blog reveals also remain visible when motion is disabled or printed. */
html.motion-off *,html.motion-off *::before,html.motion-off *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.motion-off .will-reveal{opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}.will-reveal{opacity:1!important;transform:none!important}}
@media print{[data-motion-preview]{display:none!important}.will-reveal{opacity:1!important;transform:none!important}}
