/* Small, shared interactions. Content stays visible without JavaScript.
   Individual translate/rotate preserve the layouts and decorative transforms. */
:root{--svs-motion-ease:cubic-bezier(.2,.7,.2,1)}

body[data-page] :is(.button,.spring-button,.summer-button,.autumn-button,.adult-button,.trip-button,.news-button,.shell-cta,.care-popup-action,.rt-zoom){
  transition:background-color 180ms ease,color 180ms ease,translate 180ms var(--svs-motion-ease),box-shadow 180ms ease;
}
body[data-page] :is(.button,.adult-button):hover{
  transform:none;
}
body[data-page] #application .lead-submit{
  transition:background-color 180ms ease,translate 180ms var(--svs-motion-ease);
}
body[data-page] #application .lead-submit:hover{
  transform:none;
}
body[data-page] :is(.hp-season,.home-care-card,.hp-news-card,.season-card,.parents-guide-card){
  transition:translate 220ms var(--svs-motion-ease),box-shadow 220ms ease,border-color 180ms ease;
}
body[data-page] .parents-guide-card:hover{
  transform:none;
}
/* Keep the photographs at their intended crop and resolution. */
body[data-page] .hp-season:hover .hp-season-photo img,
body[data-page] .home-care-card:hover :is(.home-care-photo,.home-care-topic-image)>img,
body[data-page] .season-card:hover img,
body[data-page] #seasons .season-panel:hover>img{
  transform:none;
}
body[data-page] :is(.button,.spring-button,.summer-button,.autumn-button,.trip-button,.news-button,.text-link,.hp-text-link,.spring-text-link,.autumn-text-link,.care-popup-link,.hp-news-card) .arrow{
  transition:translate 220ms var(--svs-motion-ease);
}
body[data-page] :is(.home-care-plus,.hp-season-arrow){
  transition:background-color 180ms ease,color 180ms ease,rotate 260ms var(--svs-motion-ease),translate 220ms var(--svs-motion-ease);
}
body[data-page] :is(.icon-button,.circle-button,.rt-nav,.rt-close,.home-room-close,.home-menu-close,.care-popup-close,.trip-modal-close,.news-dialog__close,.document-close){
  transition:background-color 180ms ease,color 180ms ease,translate 150ms var(--svs-motion-ease);
}
body[data-page] :is(.news-filters,.rt-filters,.plain-tabs,.meal-tabs) button{
  transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease;
}
body[data-page] :is(.hp-news-card,.hp-format-links>a,.shell-footer-column nav>a,.shell-mobile-sections a){
  text-decoration-color:currentColor;
  transition:color 180ms ease,translate 220ms var(--svs-motion-ease);
}
/* Keyboard focus has the same clear affordance, without moving its target. */
body[data-page] :is(.button,.spring-button,.summer-button,.autumn-button,.adult-button,.trip-button,.news-button,.care-popup-action,.home-care-card,.hp-season,.hp-news-card):focus-visible{
  outline:3px solid #c77c18;
  outline-offset:5px;
}
body[data-page] .home-care-card:focus-visible .home-care-plus,
body[data-page] .hp-season:focus-visible .hp-season-arrow{
  background:#063f30;
  color:#fff;
}

@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  body[data-page] :is(.button,.spring-button,.summer-button,.autumn-button,.adult-button,.trip-button,.news-button,.shell-cta,.care-popup-action,.rt-zoom):not(:disabled):not([aria-disabled="true"]):hover,
  body[data-page] #application .lead-submit:not(:disabled):hover{
    translate:0 -2px;
  }
  body[data-page] :is(.hp-season,.home-care-card,.hp-news-card,.season-card,.parents-guide-card):hover{
    translate:0 -3px;
  }
  body[data-page] :is(.hp-season,.home-care-card,.parents-guide-card):hover{
    box-shadow:0 8px 22px #123f2e12;
  }
  body[data-page] :is(.button,.spring-button,.summer-button,.autumn-button,.trip-button,.news-button,.text-link,.spring-text-link,.autumn-text-link,.care-popup-link,.hp-news-card):not(:disabled):not([aria-disabled="true"]):hover .arrow{
    translate:3px 0;
  }
  body[data-page] .hp-text-link:hover .arrow{
    translate:2px -2px;
  }
  body[data-page] .home-care-card:hover .home-care-plus{
    rotate:90deg;
  }
  body[data-page] .hp-season:hover .hp-season-arrow{
    translate:2px 0;
  }
  body[data-page] :is(.shell-footer-column nav>a,.shell-mobile-sections a):hover{
    translate:2px 0;
  }
}

/* Tap feedback also works on phones; nothing depends on a lingering hover. */
@media(prefers-reduced-motion:no-preference){
  body[data-page] :is(.button,.spring-button,.summer-button,.autumn-button,.adult-button,.trip-button,.news-button,.shell-cta,.care-popup-action,.rt-zoom,.icon-button,.circle-button,.rt-nav,.rt-close,.home-room-close,.home-menu-close,.care-popup-close,.trip-modal-close,.news-dialog__close,.document-close):not(:disabled):not([aria-disabled="true"]):active,
  body[data-page] #application .lead-submit:not(:disabled):active{
    translate:0 1px;
    transition-duration:80ms;
  }
  body[data-page] :is(.hp-season,.home-care-card,.hp-news-card,.season-card,.parents-guide-card):active{
    translate:0 1px;
    transition-duration:80ms;
  }

  /* Native dialogs retain their immediate close and focus behavior. */
  body[data-page] :is(.care-popup,.trip-dialog,.home-menu-dialog,.home-room-dialog,.news-dialog,.doctor-document-dialog)[open]{
    animation:svs-dialog-in 220ms var(--svs-motion-ease);
  }
  body[data-page] :is(.rt-dialog,.document-viewer)[open]{
    animation:svs-fade-in 180ms ease-out;
  }
  body[data-page] .shell-mobile-menu[open]{
    animation:svs-menu-in 240ms var(--svs-motion-ease);
  }
  body[data-page] :is(.care-popup,.trip-dialog,.home-menu-dialog,.home-room-dialog,.news-dialog,.doctor-document-dialog,.rt-dialog,.document-viewer,.shell-mobile-menu)[open]::backdrop{
    animation:svs-backdrop-in 180ms ease-out;
  }
  body[data-page] .nav-dropdown[open]>.nav-dropdown-panel,
  body[data-page] :is(.spring-faq,.summer-faq,.autumn-faq,.faq,.spring-activity,.winter-activity,.care-popup-rule)[open]>:not(summary){
    animation:svs-panel-in 200ms var(--svs-motion-ease);
  }
}

@keyframes svs-dialog-in{
  from{opacity:.6;translate:0 8px}
  to{opacity:1;translate:0 0}
}
@keyframes svs-menu-in{
  from{opacity:.65;translate:16px 0}
  to{opacity:1;translate:0 0}
}
@keyframes svs-panel-in{
  from{opacity:.6;translate:0 4px}
  to{opacity:1;translate:0 0}
}
@keyframes svs-fade-in{
  from{opacity:.65}
  to{opacity:1}
}
@keyframes svs-backdrop-in{
  from{opacity:0}
  to{opacity:1}
}

@media(prefers-reduced-motion:reduce){
  /* Keep meaningful disclosure rotations, but stop decorative movement. */
  body[data-page] :is(.button,.spring-button,.summer-button,.autumn-button,.adult-button,.trip-button,.news-button,.shell-cta,.care-popup-action,.rt-zoom,.hp-season,.home-care-card,.hp-news-card,.season-card,.parents-guide-card,.home-care-plus,.hp-season-arrow,.hp-format-arrow,.arrow){
    transition:none;
    translate:none;
    rotate:none;
  }
  body[data-page] .hp-format-links>a:hover .hp-format-arrow{
    transform:none;
  }
  body[data-page] .memory-thumb:hover{
    transform:rotate(var(--tilt));
  }
}
