:root { --motion-micro:140ms; --motion-ui:220ms; --motion-component:300ms; --motion-panel:360ms; --motion-page:440ms; --motion-ease:cubic-bezier(.22,.8,.25,1); }
.hp-motion [data-reveal],.hp-motion.reveal-ready [data-reveal]:not(.is-visible) { opacity:1;transform:none;transition:none; }
.hp-motion .button,.hp-motion button,.hp-motion .experience-chips > a,.hp-motion .property-card,.hp-motion .similar-card { transition:background-color var(--motion-micro),color var(--motion-micro),box-shadow var(--motion-ui); }
.hp-motion .button:hover,.hp-motion .property-card:hover,.hp-motion .similar-card:hover { transform:none; }
.hp-motion .property-card.is-motion-hover,.hp-motion .similar-card.is-motion-hover { box-shadow:0 18px 44px rgba(5,43,66,.16); }
.hp-motion .main-nav { isolation:isolate; }
@media(min-width:861px){.hp-motion .main-nav{position:relative;}}
.motion-indicator { position:absolute;left:0;top:0;pointer-events:none;transform-origin:0 50%;z-index:-1;background:linear-gradient(90deg,var(--turquoise) 70%,var(--yellow) 70%);border-radius:99px; }
.hp-motion .main-nav > a::after,.hp-motion .nav-rentals > summary::after { display:none; }
.hp-motion .nav-rentals > summary > span::after,.hp-motion .booking-options > summary i { transition:transform var(--motion-ui) var(--motion-ease); }
.hp-motion .nav-rentals.is-motion-closing > summary > span::after { transform:rotate(45deg); }
.hp-motion details.is-motion-closing > summary i { transform:rotate(0); }
.hp-motion .main-nav { transition:none; }
.hp-motion .toast { transition:opacity var(--motion-ui),transform var(--motion-ui); }
.hp-motion :is(input,select,textarea) { transition:border-color var(--motion-micro),box-shadow var(--motion-micro); }
.hp-motion :is(input,select,textarea):focus-visible { outline:2px solid var(--turquoise-dark);outline-offset:3px; }
@media(max-width:860px){.main-nav>.motion-indicator{display:none;}}
@media(pointer:coarse){.hp-motion :is(button,.button,.mobile-dock>a,summary){min-height:44px;}.hp-motion .calendar-day{min-height:34px;}}
@media(prefers-reduced-motion:reduce){.hp-motion *, .hp-motion *::before,.hp-motion *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}.hp-motion .motion-indicator{transition:none;}}
/* Motion owns transforms; CSS keeps the same geometry and the native fallback. */
.hp-motion .booking-popover { transition: none; transform: none; }
.hp-motion .booking-layer__backdrop { transition: none; }
.hp-motion .booking-layer:not(.is-open) .booking-popover { opacity: 0; }
.hp-motion .booking-layer.is-open .booking-popover { opacity: 1; }
.hp-motion .guest-stepper output { position: relative; overflow: hidden; }
.hp-motion .guest-stepper output > span { display: inline-block; }
.motion-number-old { position: absolute; inset: 0; }
.hp-motion .theme-two .mobile-reserve-sheet[open] { animation: none; }
.hp-motion :is(.mobile-reserve-sheet,.motion-filter-sheet)::backdrop { animation: hp-backdrop-in var(--motion-ui) var(--motion-ease) both; }
.hp-motion :is(.mobile-reserve-sheet,.motion-filter-sheet).is-motion-closing::backdrop { animation: hp-backdrop-out var(--motion-ui) var(--motion-ease) both; }
@keyframes hp-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes hp-backdrop-out { from { opacity: 1; } to { opacity: 0; } }
.motion-filter-sheet { position: fixed; inset: auto 0 0; margin: 0; width: 100%; max-width: none; max-height: calc(100dvh - 16px); border: 0; border-radius: 24px 24px 0 0; padding: 22px 20px calc(20px + env(safe-area-inset-bottom)); background: white; color: var(--ink); overflow: auto; overscroll-behavior: contain; }
.motion-filter-sheet::backdrop { background: rgb(7 50 74 / .34); }
.motion-filter-sheet > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.motion-filter-sheet h2 { font-size: 1.3rem; margin: 0; }
.motion-filter-sheet header button { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: white; color: var(--ink); }
.motion-filter-sheet header svg { width: 20px; height: 20px; }
.motion-filter-sheet form { display: grid; gap: 18px; }
.motion-filter-sheet form > label { display: grid; gap: 8px; }
.motion-filter-sheet select { width: 100%; min-height: 46px; border: 1px solid var(--line); border-radius: 12px; background: white; padding: 10px; font: inherit; color: var(--ink); }
.motion-filter-sheet fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.motion-filter-sheet legend { margin-bottom: 10px; }
.hp-motion .amenity-filter-options input { accent-color: var(--turquoise-dark); }
.hp-motion .amenity-filter-options label:has(input:checked) { background: var(--turquoise-soft); border-color: var(--turquoise-dark); }
.hp-motion .filter-pills > a.is-active::before { content: '✓'; display: inline-block; margin-right: 5px; }
.hp-motion .mobile-dock { isolation: isolate; }
.hp-motion .mobile-dock > :is(a,button).is-active,
.hp-motion .mobile-dock > button[aria-pressed="true"] { background: transparent; box-shadow: none; }
.hp-motion .mobile-dock .motion-indicator { display: block; background: var(--turquoise-soft); border-radius: 18px; }
.hp-motion .mobile-dock > :is(a,button) > span { transition: transform var(--motion-ui) var(--motion-ease); }
.hp-motion .mobile-dock > .is-active > span { transform: translateY(-2px); }
@media (max-width: 860px) {
  .hp-motion .nav-rentals__menu { transform: none !important; }
}
.hp-motion ::view-transition-group(*) { animation-duration: var(--motion-page); animation-timing-function: var(--motion-ease); }
.hp-motion ::view-transition-old(root) { animation:none; opacity:1; mix-blend-mode:normal; }
.hp-motion ::view-transition-new(root) { animation:hp-page-in var(--motion-ui) var(--motion-ease) both; mix-blend-mode:normal; }
.hp-motion ::view-transition-old(.hp-photo),
.hp-motion ::view-transition-new(.hp-photo) { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: normal; }
.hp-motion ::view-transition-image-pair(.hp-photo) { isolation: isolate; overflow: visible; }
.hp-motion [data-lightbox-image] { touch-action: pan-y pinch-zoom; }
@media (prefers-reduced-motion: reduce) {
  .hp-motion ::view-transition-group(*), .hp-motion ::view-transition-old(*), .hp-motion ::view-transition-new(*) { animation: none; }
  .hp-motion :is(.mobile-reserve-sheet,.motion-filter-sheet)::backdrop { animation: none; }
}
.hp-motion .filter-pills .catalog-favorites { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap; border: 1px solid var(--line); background: white; color: var(--ink); border-radius: 999px; padding: 8px 14px; }
.hp-motion .filter-pills .catalog-favorites.is-active { background: var(--turquoise-soft); border-color: var(--turquoise-dark); }
.catalog-favorites svg { width: 18px; height: 18px; }
.hp-motion .theme-two .hero__media { will-change: auto; transition: none; }
.hp-motion .coast-story__sun { animation: none; }
.hp-motion .button.is-prepared { border-color: var(--turquoise-dark); background: var(--turquoise-soft); color: var(--ink); }

/* Stable header geometry on both pages and on scroll. */
.theme-two .site-header, .theme-two.has-scrolled .site-header {
  height: 84px; min-height: 84px; background: rgba(255,255,255,.96);
  transition: box-shadow 220ms ease;
}
.theme-two .nav-rentals > summary > small { width:64px; min-width:64px; text-align:center; }
@media(max-width:860px) {
  .theme-two .site-header, .theme-two.has-scrolled .site-header { height:72px;min-height:72px; }
}
.hero-line { overflow:hidden; overflow:clip; }
[data-hero-rise] { display:block; }
#hero-title [data-hero-write] { position:relative; }
#hero-title .hero-write-ink { display:block; padding: .08em .06em .15em 0; margin: -.08em -.06em -.15em 0; }
.stay-switch { position:relative; isolation:isolate; display:flex; align-items:stretch; padding:4px; gap:4px; border-radius:999px; background:#eef7f8; touch-action:pan-y; }
.theme-two .stay-switch > a { position:relative; display:flex; align-items:center; justify-content:center; gap:6px; border:0; border-radius:999px; padding:10px 16px; color:var(--ink); white-space:nowrap; font-weight:800; min-height:44px; text-decoration:none; user-select:none; -webkit-user-drag:none; }
.theme-two .stay-switch > a small { font-size:.65rem; font-weight:700; }
.theme-two .stay-switch > a.is-active { color:white; background:var(--turquoise-dark); }
.theme-two .stay-switch.motion-has-indicator > a.is-active { background:transparent; }
.stay-switch .motion-indicator { background:var(--turquoise-dark); border-radius:999px; }
.theme-two .filter-pills { padding:0; background:transparent; box-shadow:none; gap:8px; border:0; }
[data-catalog-results] { overflow-anchor:none; position:relative; }
.catalog-status { position:absolute; right:0; top:0; z-index:4; max-width:100%; transform:translateY(-100%); color:var(--ink-soft); font-size:.85rem; margin:0; padding:8px 12px; border-radius:12px; background:white; box-shadow:0 4px 16px rgb(7 50 74 / .08); }
.catalog-status:empty { display:none; }
.catalog-status button { margin-left:10px; color:var(--turquoise-dark); background:transparent; border:0; font:inherit; text-decoration:underline; }
@media(max-width:620px) {
 .theme-two .filter-pills { flex-wrap:wrap; overflow:visible; width:100%; }
 .stay-switch { width:100%; border-radius:24px; }
 .theme-two .stay-switch > a { flex:1; min-width:0; padding:8px 6px; gap:2px; flex-direction:column; font-size:.8rem; }
}

#hero-title .hero-write-ink { letter-spacing:inherit; }
#hero-title mark::after { transform:scaleX(var(--write-progress,1));transform-origin:left; }
.hp-motion .stay-switch > a::before { content:none; }
