/* Motion v1. Visible server-rendered content is the baseline, even without JS. */
.hero-title, .hero-sub, .hero-actions, .hero-frame, .hero-proof,
.is-ready .hero-title, .is-ready .hero-sub, .is-ready .hero-actions,
.is-ready .hero-frame, .is-ready .hero-proof { opacity:1; transform:none; animation:none; }
.motion-line { display:block; overflow:clip; padding-bottom:.12em; margin-bottom:-.12em; }
.motion-line-inner { display:block; }
.motion-heading { text-wrap:initial; }
.motion-scroll-hint { display:block; margin:24px auto 0; font-size:9px; letter-spacing:.22em; color:var(--stone); }
.motion-scroll-hint::before { content:''; display:block; width:1px; height:27px; margin:0 auto 10px; background:linear-gradient(transparent,var(--wine)); }
.motion-active .nav-links a { position:relative; }
.motion-active .nav-links a::after { content:''; position:absolute; bottom:4px; left:0; width:100%; height:1px; background:var(--wine); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
.motion-active .nav-links a:hover::after, .motion-active .nav-links a.is-active::after { transform:scaleX(1); }
.motion-active .service-row { position:relative; }
.motion-active .service-row::after { content:''; position:absolute; top:-1px; left:0; height:1px; width:100%; background:linear-gradient(90deg,var(--wine),transparent 85%); transform:scaleX(0); transform-origin:left; transition:transform 1s var(--ease); pointer-events:none; }
.motion-active .service-row.motion-service-in::after { transform:scaleX(1); }
.motion-active .field input, .motion-active .field select, .motion-active .field textarea { transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease; }
.motion-active .booking-card:focus-within { border-color:rgba(110,31,47,.28); }
.motion-active .booking-card { transition:border-color .3s ease; }
.motion-active .booking-form.is-submitting button[type=submit], .motion-active #bookingForm.is-submitting button[type=submit] { opacity:.65; cursor:progress; }
.motion-active .faq-icon { transition:transform .35s var(--ease); }
.motion-active .faq-item.is-open .faq-icon { transform:rotate(45deg); }
.motion-active .about-headline-accent { text-decoration-color:rgba(201,165,106,.65); }
@media (hover:hover) and (pointer:fine) {
    .motion-hover .btn, .motion-hover .nav-pill { transition:transform .35s var(--ease),background-color .25s ease,box-shadow .35s ease; }
    .motion-hover .btn:hover, .motion-hover .nav-pill:hover { transform:translateY(-2px); box-shadow:0 7px 18px rgba(110,31,47,.10); }
    .motion-hover .plan { transition:transform .45s var(--ease),box-shadow .45s var(--ease); }
    .motion-hover .plan:hover { transform:translateY(-5px); }
    .motion-carousel .ig-local-image img { transition:transform .8s var(--ease); }
    .motion-carousel .ig-local-image:hover img { transform:scale(1.045); }
    .motion-carousel .ig-carousel-arrow { transition:transform .3s var(--ease),background-color .25s ease,color .25s ease; }
    .motion-carousel .ig-carousel-arrow:hover:not(:disabled) { transform:translateY(-2px); }
}
@media (min-width:1024px) and (min-height:800px) {
    /* Native sticky portrait only when it fits: no spacer, pin or scroll hijack. */
    .motion-active .about-grid { align-items:start; }
    .motion-active .about-visual { position:sticky; top:calc(var(--nav-h) + 24px); }
}
@media (max-width:1023px) {
    .nav-links { visibility:hidden; transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s; }
    .nav.menu-open .nav-links { visibility:visible; }
    .motion-active .nav-links a { transform:translateY(-6px); opacity:0; transition:transform .35s var(--ease),opacity .35s var(--ease); }
    .motion-active .nav.menu-open .nav-links a { transform:none; opacity:1; transition-delay:var(--menu-delay,0ms); }
    .motion-active .nav-links a::after { bottom:7px; width:34px; }
    .motion-scroll-hint { margin-top:18px; }
}
/* Admin master switch also neutralizes inherited motion from the original CSS. */
.motion-static *, .motion-static *::before, .motion-static *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
.motion-static .btn:hover, .motion-static .plan:hover, .motion-static .extra:hover,
.motion-static .ig-local-image:hover img, .motion-static .ig-carousel-arrow:hover,
.motion-static .service-row:hover .service-row-content, .motion-static .service-row:hover .service-row-icon svg { transform:none; }
html:not(.motion-hover) .btn:hover, html:not(.motion-hover) .nav-pill:hover { transform:none; }
html:not(.motion-carousel) .ig-local-image:hover img, html:not(.motion-carousel) .ig-carousel-arrow:hover { transform:none; }
@media (prefers-reduced-motion:reduce) {
    *, *::before, *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
    .hero-frame img, .about-visual img { transform:none!important; }
    .about-visual { position:relative!important; top:auto!important; }
    .motion-scroll-hint, .scroll-progress { display:none; }
}
