/* Shared motion language. Content and controls remain usable without animation. */
:root{--ease-out:cubic-bezier(.2,.7,.2,1);--motion-fast:180ms;--motion-medium:420ms;--motion-slow:750ms}
::view-transition{pointer-events:none}
::view-transition-old(root){animation:page-out 180ms ease both}
::view-transition-new(root){animation:page-in 360ms var(--ease-out) both}
@keyframes page-out{to{opacity:0}}
@keyframes page-in{from{opacity:0}to{opacity:1}}
@keyframes rise-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.site-header{view-transition-name:site-header}
::view-transition-group(site-header){animation-duration:240ms}
.arrival-hero-copy>*,.page-intro h1,.stay-hero-copy,.stay-tour-intro h1,.experience-heading h1,.ev-opening h1{animation:rise-in 800ms var(--ease-out) both}
.arrival-hero-copy>h1{animation-delay:70ms}.arrival-hero-copy>p{animation-delay:130ms}.arrival-hero-copy>a{animation-delay:190ms}
.js-motion .reveal{transition:opacity var(--motion-slow) var(--ease-out),transform var(--motion-slow) var(--ease-out);transform:translateY(25px)}
.js-motion .reveal.is-visible{transform:none}
.home-experience:nth-child(2){transition-delay:65ms}.home-experience:nth-child(3){transition-delay:130ms}
:focus-visible{outline:2px solid var(--gold,#aa8a63);outline-offset:5px}
.button,.text-link,.gallery-tile,.lightbox button,.back-to-top{touch-action:manipulation}
.button{transition:background var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast),transform var(--motion-fast)}
.button:active{transform:translateY(1px)}
.link-arrow{transition:transform var(--motion-medium) var(--ease-out)}
a:hover>.link-arrow,a:focus-visible>.link-arrow,button:hover>.link-arrow{transform:translate(3px,-3px)}
.text-link{position:relative}
.gallery-tile img,.stay-story-main img,.home-photo img{transition:transform 900ms var(--ease-out),filter 350ms}
@media(hover:hover){.gallery-tile:hover img,.stay-story-main:hover img,.home-photo:hover img{transform:scale(1.035)}.gallery-tile:hover .stay-photo-open,.gallery-tile:hover .ev-photo-plus{background:var(--ivory);color:var(--forest)}}
.reading-progress{position:fixed;z-index:45;top:0;left:0;width:100%;height:2px;background:var(--gold,#aa8a63);transform:scaleX(0);transform-origin:left;pointer-events:none}
.back-to-top{position:fixed;bottom:26px;left:var(--gutter);z-index:17;width:44px;height:44px;border:1px solid #99836470;border-radius:50%;background:#f2efe8ed;color:var(--forest);box-shadow:0 3px 12px #14261a10;display:grid;place-items:center;backdrop-filter:blur(8px)}
.back-to-top[hidden]{display:none}.back-to-top svg{width:19px;height:19px}.menu-open .back-to-top,.lightbox-open .back-to-top{visibility:hidden}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.lightbox{border-radius:2px}
.lightbox[open],.film-dialog[open]{animation:rise-in 260ms var(--ease-out)}
.lightbox::backdrop{animation:page-in 240ms ease}
.lightbox-stage{position:relative;display:grid;place-items:center;height:min(65dvh,760px);min-height:180px;overflow:hidden;touch-action:pan-y pinch-zoom}
.lightbox .lightbox-image{width:100%;height:100%;max-height:100%;object-fit:contain;min-height:0;grid-area:1/1;transition:opacity 150ms}
.lightbox-stage[aria-busy=true] .lightbox-image,.lightbox-stage.photo-failed .lightbox-image{opacity:0}
.photo-feedback{grid-area:1/1;position:relative;z-index:1;text-align:center;max-width:440px;padding:25px;color:#e0dbcf;font-size:14px;line-height:1.65}
.photo-feedback[hidden]{display:none}.lightbox .photo-retry{display:block;width:auto;height:auto;min-height:44px;padding:8px 22px;font:inherit;margin:18px auto 0}.lightbox .photo-retry[hidden]{display:none}
.lightbox-bottom{min-height:66px}.lightbox-bottom p{margin:0}.lightbox-arrows{flex-shrink:0}
.photo-thumbnails{display:flex;gap:8px;overflow-x:auto;padding:3px 20px 16px;scrollbar-width:thin;scrollbar-color:#a5906d #233b30;flex-shrink:0;overscroll-behavior-x:contain}
.lightbox .photo-thumbnails button{width:72px;height:50px;flex:0 0 72px;padding:0;border:1px solid transparent;opacity:.55;transition:opacity 200ms,border-color 200ms}
.photo-thumbnails img{width:100%;height:100%;object-fit:cover}.lightbox .photo-thumbnails button[aria-pressed=true]{border-color:#cbb695;opacity:1}.lightbox .photo-thumbnails button:hover{opacity:1}
.gallery-tile:focus-visible{outline-offset:6px}.lightbox button:hover{background:#ffffff15}.lightbox button:focus-visible{outline-color:#dec8a8}
.connection-note{position:fixed;z-index:50;left:50%;top:12px;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);margin:0;padding:14px 20px;background:var(--forest-deep);color:var(--ivory);border:1px solid #c3a576;font-size:12px;line-height:1.5;box-shadow:0 8px 30px #0002}.connection-note[hidden]{display:none}
.image-unavailable{color:var(--forest);font:13px/1.7 var(--sans);padding:30px;background:#dddacf!important;border:1px solid var(--line);object-fit:contain}
.form-errors{padding:18px 22px;margin:0 0 28px;border-left:3px solid #975438;background:#eee4d9;color:#683c2b;font-size:14px;line-height:1.5}.form-errors[hidden]{display:none}.form-errors p{margin:0 0 8px;color:inherit;font-size:14px}.form-errors ul{margin:0;padding-left:18px}.form-errors a{text-decoration:underline;text-underline-offset:3px}.field-error{display:block;font-size:12px;line-height:1.5;color:#91482e;margin:7px 0 0}.field-error[hidden]{display:none}.enquiry-section [aria-invalid=true],.enquiry-extras [aria-invalid=true]{border-color:#a35032;background:#fff8f2}
.enquiry-result:not([hidden]){animation:rise-in 450ms var(--ease-out)}
details summary>span{transition:transform 250ms var(--ease-out)}
@supports(interpolate-size:allow-keywords){details{interpolate-size:allow-keywords}details::details-content{block-size:0;overflow:clip;transition:block-size 320ms var(--ease-out),content-visibility 320ms;transition-behavior:allow-discrete}details[open]::details-content{block-size:auto}}
@media(max-width:760px){.back-to-top{left:16px;bottom:calc(17px + env(safe-area-inset-bottom));width:42px;height:42px}.lightbox-stage{height:58dvh;min-height:150px}.lightbox .photo-thumbnails button{width:58px;flex-basis:58px;height:44px}.photo-thumbnails{padding:3px 15px 14px}.lightbox-bottom{min-height:74px}.photo-feedback{font-size:13px}.connection-note{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js-motion .reveal{opacity:1!important;transform:none!important}.gallery-tile:hover img,.home-photo:hover img,.stay-story-main:hover img{transform:none}.lightbox::backdrop{animation:none}}

.header-book .header-label-long{font:inherit}.header-book .header-label-short{display:none;font:inherit}
@media(max-width:760px){.header-book .header-label-long{display:none}.header-book .header-label-short{display:inline;font-size:11px}.header-book{min-height:44px}}
