/* Expressive, single-pass motion. Photo frames and browser chrome stay stable. */
:root { --motion-fast:180ms; --motion-ease:cubic-bezier(.22,1,.36,1); }

/* The hero only fades at load: no movement can compete with native scrolling. */
.hero-copy>.eyebrow,.hero-copy>h1,.hero-copy>.hero-description,.hero-copy>.hero-cta {
  animation:hero-text-enter 420ms ease-out backwards;
}
.hero-copy>h1 { animation-delay:40ms; }
.hero-copy>.hero-description { animation-delay:80ms; }
.hero-copy>.hero-cta { animation-delay:120ms; }
[data-motion-reveal] {
  transition:opacity 580ms ease-out,transform 640ms var(--motion-ease);
}
[data-motion-reveal='pending'] { opacity:0;transform:translate3d(0,18px,0); }
[data-motion-reveal='shown'] { opacity:1;transform:translate3d(0,0,0); }
@keyframes hero-text-enter {
  from { opacity:0; }
  to { opacity:1; }
}


.hero-cta,.card-booking,.privacy-button,.reviews-widget-button,
.guest-photos-cover>button,.scroll-cue,.menu-toggle,
.guest-photos-controls button,.reviews-scroll-controls button,
.card-gallery-controls button,.dialog-close,.dialog-prev,.dialog-next,
.privacy-close,.booking-dialog-close {
  transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease,
    border-color var(--motion-fast) ease,opacity var(--motion-fast) ease;
  -webkit-tap-highlight-color:transparent;
}
.hero-cta:active,.card-booking:not(:disabled):active,.privacy-button:active,
.reviews-widget-button:active,.guest-photos-cover>button:active,
.guest-photos-controls button:not(:disabled):active,
.reviews-scroll-controls button:not(:disabled):active,
.card-gallery-controls button:active,.menu-toggle:active,
.dialog-close:active,.privacy-close:active,.booking-dialog-close:active { opacity:.84; }

.desktop-nav a { position:relative; }
.desktop-nav a::after {
  content:'';position:absolute;left:0;right:0;bottom:-7px;height:1px;
  background:#e0c29c;transform:scaleX(0);transform-origin:left;
  transition:transform 180ms ease-out;
}
.desktop-nav a:focus-visible::after { transform:scaleX(1); }
@media (hover:hover) and (pointer:fine) {
  .desktop-nav a:hover::after { transform:scaleX(1); }
}

/* Keep the header and gallery frames in place while the page scrolls. */
.site-header { transition:background-color 240ms ease,border-color 240ms ease; }
@media (min-width:701px) and (orientation:portrait), (min-width:951px) {
  .site-header.scrolled { height:86px;backdrop-filter:none;box-shadow:none; }
  section[id],footer[id] { scroll-margin-top:102px; }
}
.apartment-card { transition:border-color 180ms ease; }
.apartment-card:hover { box-shadow:none;border-color:#c4a98a; }
.floor-filter-options button { transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease; }
.floor-filter-options button:active { transform:none; }

/* A single short entrance per surface; links travel with the menu panel. */
.photo-dialog[open],.booking-dialog[open],.privacy-dialog[open] {
  animation:surface-enter 280ms var(--motion-ease);
}
.photo-dialog[open]::backdrop,.privacy-dialog[open]::backdrop,
.booking-dialog[open]::backdrop { animation:surface-fade-in 180ms ease-out; }
.cookie-notice:not([hidden]) { animation:surface-fade-in 200ms ease-out; }
@media (max-width:700px), (max-width:950px) and (orientation:landscape) {
  .mobile-menu { transform:translate3d(0,-10px,0);transition:opacity 180ms ease-out,transform 180ms ease-out; }
  .mobile-menu[data-open='true'] { transform:translate3d(0,0,0); }
  .mobile-menu a,.mobile-menu[data-open='false'] a,.mobile-menu[data-open='true'] a {
    opacity:1;transform:none;transition:none;
  }
}
@keyframes surface-enter { from { opacity:0;transform:translate3d(0,10px,0); } to { opacity:1;transform:translate3d(0,0,0); } }
@keyframes surface-fade-in { from { opacity:0; } to { opacity:1; } }

@media (prefers-reduced-motion:reduce) {
  .hero-copy>.eyebrow,.hero-copy>h1,.hero-copy>.hero-description,.hero-copy>.hero-cta {
    animation:none!important;opacity:1;transform:none;
  }
  [data-motion-reveal] { opacity:1!important;transform:none!important;transition:none!important; }
  .mobile-menu,.mobile-menu[data-open='true'] { transform:none!important; }
  .photo-dialog[open],.privacy-dialog[open],.booking-dialog[open],
  .photo-dialog[open]::backdrop,.privacy-dialog[open]::backdrop,
  .booking-dialog[open]::backdrop,.cookie-notice:not([hidden]) { animation:none!important; }
  .site-header,.apartment-card,.floor-filter-options button,.hero-cta,
  .card-booking,.privacy-button,.reviews-widget-button,.guest-photos-cover>button,
  .scroll-cue,.menu-toggle,.menu-toggle span,.guest-photos-controls button,
  .reviews-scroll-controls button,.card-gallery-controls button,.dialog-close,
  .dialog-prev,.dialog-next,.privacy-close,.booking-dialog-close,
  .desktop-nav a::after,.mobile-menu,.mobile-menu a { transition:none!important; }
}
