/* Home-only motion. Layout and the complete framing of every photograph stay intact. */
body.home.hm-enabled {
  --hm-ease: cubic-bezier(.2, .74, .24, 1);
}

/* Supersede the older heading observer, without animating positioned parent headings. */
body.home.hm-enabled [data-text-reveal] {
  opacity: 1;
  transform: none;
  clip-path: none;
  transition: none;
}
body.home.hm-enabled .hero-copy .title-line { animation: none; }

body.home.hm-enabled .hm-heading-rule { position: relative; }
body.home.hm-enabled .hm-heading-rule::after {
  content: '';
  position: absolute;
  width: 52px;
  height: 1px;
  left: calc(50% - 26px);
  bottom: -12px;
  background: #a29977;
  transform-origin: left center;
}
body.home.hm-enabled .intro-heading .hm-heading-rule::after,
body.home.hm-enabled .visit-guides .hm-heading-rule::after { left: 0; }
body.home.hm-enabled .hero-rates { position: relative; }
body.home.hm-enabled .hero-rates::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: -8px;
  height: 1px;
  background: #86917e80;
  transform-origin: left center;
}

/* Avoid a layout change or a permanent GPU layer: only animate opacity and transform. */
@media (prefers-reduced-motion: no-preference) {
  body.home.hm-enabled .hm-enter.hm-reveal {
    animation: verona-hm-rise .72s var(--hm-ease) var(--hm-delay, 0ms) both;
  }
  body.home.hm-enabled .hm-enter.hm-sequence > .hm-child {
    animation: verona-hm-rise .72s var(--hm-ease) var(--hm-delay, 0ms) both;
  }
  body.home.hm-enabled .hm-enter.hm-photo {
    animation: verona-hm-photo .9s var(--hm-ease) both;
    transform-origin: center center;
  }
  body.home.hm-enabled .hm-enter .hm-hero-item {
    animation: verona-hm-rise .48s var(--hm-ease) var(--hm-delay, 0ms) both;
  }
  body.home.hm-enabled .hm-enter .hm-hero-title {
    animation: verona-hm-title .68s var(--hm-ease) var(--hm-delay, 0ms) both;
  }
  body.home.hm-enabled .hm-enter .hm-heading-rule::after {
    animation: verona-hm-rule .85s var(--hm-ease) .12s both;
  }
  body.home.hm-enabled .hm-enter .hero-rates::before {
    animation: verona-hm-rule .65s var(--hm-ease) .23s both;
  }

  @keyframes verona-hm-rise {
    from { opacity: 0; transform: translate3d(0, 22px, 0); }
    to { opacity: 1; transform: none; }
  }
  @keyframes verona-hm-title {
    from { opacity: 0; transform: translate3d(0, 18px, 0); clip-path: inset(0 0 95% 0); }
    to { opacity: 1; transform: none; clip-path: inset(0); }
  }
  @keyframes verona-hm-photo {
    from { opacity: .22; transform: scale(.986); }
    to { opacity: 1; transform: none; }
  }
  @keyframes verona-hm-rule {
    from { opacity: .3; transform: scaleX(0); }
    to { opacity: 1; transform: scaleX(1); }
  }
}

/* A small response on deliberate interaction; photographs never zoom or crop. */
body.home .hm-arrow-glyph { display: inline-block; }
body.home .hero-book > span,
body.home .hero-browse > span,
body.home .header-actions .reserve > span,
body.home .visit-guide-links b,
body.home .hm-arrow-glyph {
  transition: transform .38s cubic-bezier(.2, .74, .24, 1);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  body.home .hero-book:hover > span,
  body.home .header-actions .reserve:hover > span,
  body.home .visit-guide-links a:hover b,
  body.home .service-copy:hover .hm-arrow-glyph { transform: translate(3px, -3px); }
  body.home .hero-browse:hover > span { transform: translateX(4px); }
}

body.home.hm-suspended .hm-group,
body.home.hm-suspended .hm-group *,
body.home.hm-suspended .hm-group *::before,
body.home.hm-suspended .hm-group *::after { animation-play-state: paused !important; }

body.home.hm-enabled .hm-complete.hm-reveal,
body.home.hm-enabled .hm-complete > .hm-child,
body.home.hm-enabled .hm-complete.hm-photo,
body.home.hm-enabled .hm-complete .hm-hero-item,
body.home.hm-enabled .hm-complete .hm-hero-title,
body.home.hm-enabled .hm-complete .hm-heading-rule::after,
body.home.hm-enabled .hm-complete .hero-rates::before {
  animation: none !important;
  opacity: 1;
}
body.home.hm-no-motion .hm-group,
body.home.hm-no-motion .hm-group *,
body.home.hm-no-motion .hm-group *::before,
body.home.hm-no-motion .hm-group *::after {
  animation: none !important;
}
body.home.hm-no-motion .hm-hero-title { clip-path: none !important; }

@media (prefers-reduced-motion: reduce) {
  body.home .hm-group,
  body.home .hm-group *,
  body.home .hm-group *::before,
  body.home .hm-group *::after {
    animation: none !important;
    transition: none !important;
  }
  body.home .hm-hero-title { clip-path: none !important; }
}
