/* One responsive anchor for Home, menu, interiors and recovery. */
:root{--h-book-bottom:20px;--h-header-height:86px;--h-dock-height:calc(64px + var(--h-book-bottom) + env(safe-area-inset-bottom,0px));--h-page-height:calc(100dvh - var(--h-header-height) - var(--h-dock-height))}
@media(min-width:1280px){:root{--h-book-bottom:32px}}
@media(min-width:1920px){:root{--h-book-bottom:44px}}
@media(max-width:767px){:root{--h-header-height:76px}}
@media(orientation:landscape) and (max-height:600px){:root{--h-header-height:70px;--h-book-bottom:10px}}
.h-bookbar .h-book-fixed{bottom:calc(var(--h-book-bottom) + env(safe-area-inset-bottom,0px));min-height:54px}
.h-bookbar-home,.h-bookbar-menu,.h-bookbar-page{height:var(--h-dock-height)}
#detail-panel[data-view]{grid-template-rows:var(--h-header-height) minmax(0,1fr) var(--h-dock-height)}
#detail-panel[data-view] .detail-header{height:var(--h-header-height)}
.heritage-page,.h-about .h-house-hero,.h-contacts .h-arrival{min-height:var(--h-page-height)}
.h-services .h-service-hero{min-height:max(670px,var(--h-page-height))}
.v-booking-portrait{height:var(--h-page-height)}
body.h-recovery{grid-template-rows:minmax(0,1fr) var(--h-dock-height)!important}
body.h-recovery,body.h-recovery *{box-sizing:border-box}body.h-recovery .h-bookbar-page{height:var(--h-dock-height)}
@media(max-width:767px){.h-services .h-service-hero{min-height:max(600px,var(--h-page-height))}.v-booking-portrait{height:160px}}
@media(orientation:landscape) and (max-height:600px){.h-about .h-house-hero,.h-contacts .h-arrival{min-height:570px}}

/* Decode the destination first, then crossfade the existing menu into its scene. */
#detail-panel.h-route-enter{background:transparent}
#detail-panel.h-route-enter .detail-content{animation:h-scene-enter .42s var(--h-ease) both}
@keyframes h-scene-enter{from{opacity:0}to{opacity:1}}
.h-hero-waiting{opacity:0}
.h-entry-photo-reveal{animation:h-photo-ready .65s var(--h-ease) both}
.link-menu-list{position:relative}
@keyframes h-photo-ready{from{opacity:0;scale:1.02}to{opacity:1;scale:1}}
.link-menu-list[data-route-pending]::after{content:'';position:absolute;left:10%;right:10%;bottom:-5px;height:1px;background:currentColor;transform-origin:left;animation:h-route-loading .8s ease-in-out infinite alternate}
@keyframes h-route-loading{from{scale:.15 1;opacity:.4}to{scale:1 1;opacity:1}}
.h-route-status{position:fixed;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(prefers-reduced-motion:reduce){#detail-panel.h-route-enter .detail-content,.h-entry-photo-reveal,.link-menu-list[data-route-pending]::after{animation:none!important}}
