/* Quick, restrained feedback. No loading overlays or delayed navigation. */
:root{--motion-ease:cubic-bezier(.2,.7,.2,1)}
@keyframes jays-arrive{from{opacity:.65;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes jays-page-in{from{opacity:0}to{opacity:1}}
@keyframes jays-page-out{from{opacity:1}to{opacity:0}}

@media(prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation:jays-page-out 120ms ease-out both;mix-blend-mode:normal}
  ::view-transition-new(root){animation:jays-page-in 360ms var(--motion-ease) both;mix-blend-mode:normal}
  ::view-transition-group(root){animation-duration:360ms}

  :is(.button,.btn,.film-open,.menu-toggle,.icon-button,.privacy-actions button,.privacy-save){transition:transform 180ms var(--motion-ease),background-color 180ms ease,border-color 180ms ease,box-shadow 180ms ease}
  :is(.button,.btn,.film-open,.menu-toggle,.icon-button,.privacy-actions button,.privacy-save):not(:disabled):active{transform:translateY(1px) scale(.985);transition-duration:90ms}
  :is(.text-link,.header-contact,.whatsapp-alternative,.inline-link,.back-site) svg{transition:transform 220ms var(--motion-ease)}
  :is(.desktop-nav a,.mobile-nav a,.footer-links a,.footer-local a,.section-nav button,.planning-section,.guide-related-links>a,summary){transition:color 180ms ease,background-color 180ms ease,border-color 180ms ease}
  :is(.contact-form,.login-form,.question) :is(input,textarea,select){transition:border-color 180ms ease,box-shadow 180ms ease,background-color 180ms ease}
  .contact-form :is(input,textarea):focus{border-color:#657b24;box-shadow:0 0 0 3px #657b2414}
  .choice-grid label{transition:background-color 180ms ease,border-color 180ms ease}
  .choice-grid label:has(input:checked){background:#657b2412}
  .advice-card-photo img{transition:transform 400ms var(--motion-ease)}
  .advice-card{transition:border-color 180ms ease}
  :is(.privacy-panel[open],.film-dialog[open],.modal,.contact-status:not([hidden]),.nav-open .section-nav){animation:jays-arrive 220ms var(--motion-ease)}

  .mobile-nav:not([hidden]){animation:jays-arrive 320ms var(--motion-ease)}
  .mobile-nav:not([hidden]) a{animation:jays-arrive 340ms var(--motion-ease) backwards}
  .mobile-nav a:nth-child(2){animation-delay:25ms}.mobile-nav a:nth-child(3){animation-delay:50ms}.mobile-nav a:nth-child(n+4){animation-delay:75ms}
  details[open]>:not(summary){animation:jays-arrive 220ms var(--motion-ease)}
  @supports (interpolate-size:allow-keywords) and selector(details::details-content){
    details{interpolate-size:allow-keywords}
    details::details-content{height:0;opacity:0;overflow:clip;overflow-clip-margin:6px;transition:height 260ms var(--motion-ease),opacity 180ms ease,content-visibility 260ms allow-discrete}
    details[open]::details-content{height:auto;opacity:1}
    details[open]>:not(summary){animation:none}
  }
  @media(hover:hover) and (pointer:fine){
    :is(.button,.btn,.film-open):not(:disabled):hover{transform:translateY(-2px)}
    :is(.button,.btn,.film-open):not(:disabled):active{transform:translateY(1px) scale(.985)}
    :is(.text-link,.header-contact,.whatsapp-alternative,.inline-link,.back-site):hover svg{transform:translate(2px,-2px)}
    .advice-card:hover{border-color:var(--wine)}
    .advice-card:hover .advice-card-photo img{transform:scale(1.025)}
    .guide-related-links>a:hover{border-color:var(--wine)}
  }
}

/* The footer choice applies immediately, also when returning with Back. */
html[data-motion=reduce]{scroll-behavior:auto!important}
html[data-motion=reduce] *,html[data-motion=reduce] *::before,html[data-motion=reduce] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html[data-motion=reduce] :is(.button,.btn,.film-open,.menu-toggle,.icon-button,.privacy-actions button,.privacy-save):is(:hover,:active),html[data-motion=reduce] :is(.text-link,.header-contact,.whatsapp-alternative,.inline-link,.back-site) svg,html[data-motion=reduce] .advice-card-photo img,html[data-motion=reduce] .entertainment figure img{transform:none!important}
html[data-motion=reduce]::view-transition-old(root),html[data-motion=reduce]::view-transition-new(root){animation:none!important}
@media(prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none!important}
}
@media print{*,*::before,*::after{animation:none!important;transition:none!important}}
