/* ONIRION immersive motion — progressive enhancement only. */
:root{--motion-soft:cubic-bezier(.22,.7,.24,1);--motion-swift:cubic-bezier(.2,.75,.25,1)}
.reveal{opacity:1;transform:none}
.motion-ready .reveal{opacity:0;transform:translate3d(0,18px,0);transition:opacity 640ms var(--motion-soft),transform 640ms var(--motion-soft);transition-delay:var(--reveal-delay,0ms);will-change:opacity,transform}
.motion-ready .reveal.is-visible{opacity:1;transform:translate3d(0,0,0);will-change:auto}
.motion-ready .hero-content>*,.motion-ready .page-hero>.container>*,.motion-ready .week-hero-content>*{animation:hero-content-in 620ms var(--motion-soft) both}
.motion-ready .hero-content>:nth-child(2),.motion-ready .page-hero>.container>:nth-child(2),.motion-ready .week-hero-content>:nth-child(2){animation-delay:55ms}
.motion-ready .hero-content>:nth-child(3),.motion-ready .page-hero>.container>:nth-child(3),.motion-ready .week-hero-content>:nth-child(3){animation-delay:105ms}
.motion-ready .hero-content>:nth-child(4),.motion-ready .page-hero>.container>:nth-child(4),.motion-ready .week-hero-content>:nth-child(4){animation-delay:155ms}
.motion-ready .hero-content>:nth-child(n+5),.motion-ready .page-hero>.container>:nth-child(n+5),.motion-ready .week-hero-content>:nth-child(n+5){animation-delay:205ms}
.motion-ready .hero::before,.motion-ready .page-hero::before,.motion-ready .week-hero-media::before{animation:hero-cinematic 18s ease-in-out alternate infinite}
@keyframes hero-content-in{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes hero-cinematic{from{transform:scale(1.015)}to{transform:scale(1.035)}}
.site-header{transition:background-color 320ms ease,border-color 320ms ease,box-shadow 320ms ease,backdrop-filter 320ms ease}
.site-header:not(.is-scrolled){box-shadow:0 8px 30px rgba(0,0,0,.14)}
.site-nav a{transition:color 260ms ease,text-shadow 260ms ease}
.language-selector summary::after{transition:transform 240ms var(--motion-swift)}
.language-selector[open] ul{animation:language-menu-in 220ms var(--motion-swift) both;transform-origin:top right}
@keyframes language-menu-in{from{opacity:0;transform:translate3d(0,-6px,0) scale(.99)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
.button{overflow:hidden;position:relative;isolation:isolate}
.button::after{background:linear-gradient(105deg,transparent 20%,rgba(255,235,190,.16) 48%,transparent 76%);content:"";inset:0;pointer-events:none;position:absolute;transform:translate3d(-120%,0,0);transition:transform 520ms var(--motion-soft);z-index:0}
.button:active{transform:translateY(0)}
input,select,textarea{transition:border-color 240ms ease,box-shadow 240ms ease,background-color 240ms ease}
input:focus,select:focus,textarea:focus{border-color:rgba(227,194,122,.72)!important;box-shadow:0 0 0 3px rgba(200,166,106,.08),0 8px 24px rgba(0,0,0,.18)}
.dinner-booking-status,.booking-result,.test-message{transition:opacity 260ms ease,border-color 260ms ease,background-color 260ms ease}
.age-gate,.event-popup{transition:opacity 300ms ease,visibility 300ms ease}
.age-gate-panel,.event-popup-panel,.test-dialog,.dinner-dialog{transition:opacity 320ms var(--motion-soft),transform 320ms var(--motion-soft),border-color 240ms ease}
.age-gate:not(.is-visible) .age-gate-panel,.event-popup:not(.is-visible) .event-popup-panel{opacity:0;transform:scale(.985)}
.age-gate.is-visible .age-gate-panel,.event-popup.is-visible .event-popup-panel{opacity:1;transform:scale(1)}
.week-hours-row,.week-day-card{transition:transform 320ms var(--motion-soft),border-color 320ms ease,background-color 320ms ease,box-shadow 320ms ease}
.events-slider-track{scroll-behavior:smooth}
.events-slider-arrow,.events-slider-dot{transition:transform 260ms var(--motion-swift),border-color 260ms ease,background-color 260ms ease,opacity 260ms ease}
.events-slider .event-poster-card,.test-card{transition:transform 340ms var(--motion-soft),border-color 340ms ease,box-shadow 340ms ease,background-color 340ms ease}
.events-slider .event-poster-image img,.test-poster img,.image-card img,.club-space-image img{transition:transform 520ms var(--motion-soft),filter 520ms ease}
@media (hover:hover) and (pointer:fine){
 .button:hover,.button:focus-visible{transform:translateY(-2px)}.button:hover::after,.button:focus-visible::after{transform:translate3d(120%,0,0)}.button:active{transform:translateY(0)}
 .image-card:hover,.home-pillar-premium:hover,.club-choice:hover,.club-spa-item:hover,.sauna-atmosphere-card:hover,.sauna-essence-card:hover,.sauna-wellbeing-card:hover,.contact-card:hover,.contact-link-card:hover,.test-card:hover,.events-slider .event-poster-card:hover{border-color:rgba(227,194,122,.36);box-shadow:var(--shadow-lg),0 0 28px rgba(143,16,36,.08);transform:translateY(-4px)}
 .image-card:hover img,.test-card:hover .test-poster img,.events-slider .event-poster-card:hover .event-poster-image img,.club-space:hover .club-space-image img{transform:scale(1.025)}
 .week-hours-row:hover,.week-day-card:hover{border-color:rgba(227,194,122,.34);background-color:rgba(104,19,38,.08);transform:translateY(-2px)}
 .events-slider-arrow:hover{transform:translateY(-1px) scale(1.035)}.events-slider-dot:hover{transform:scale(1.12)}
}
@media (max-width:700px){.motion-ready .reveal{transform:translate3d(0,12px,0);transition-duration:520ms}.motion-ready .reveal.is-visible{transform:translate3d(0,0,0)}.motion-ready .hero::before,.motion-ready .page-hero::before,.motion-ready .week-hero-media::before{animation:none}}
@media (prefers-reduced-motion:reduce){.motion-ready .reveal,.motion-ready .reveal.is-visible,.motion-ready .hero-content>*,.motion-ready .page-hero>.container>*,.motion-ready .week-hero-content>*{animation:none!important;opacity:1!important;transform:none!important;transition:none!important}.motion-ready .hero::before,.motion-ready .page-hero::before,.motion-ready .week-hero-media::before{animation:none!important}.events-slider-track{scroll-behavior:auto}}
