/* A warm paper palette belongs to Hospitality's light appearance only. */
:root:not([data-theme=dark]) body[data-page=hospitality] {
  --surface:#f2ede5; --paper:#e9e2d7; --panel:#f5f0e8; --control:#f5f0e8;
  --ink:#353029; --muted:#70665c; --accent:#8a603e; --line:#d5cbbd;
  --soft:#e6ddcf; --glass:rgba(246,241,233,.8); --glass-border:#d5cbbd;
  background:var(--surface); color:var(--ink);
}
:root:not([data-theme=dark]) body[data-page=hospitality] .site-header { background:var(--surface); }
body[data-page=hospitality] .stay-arrival { padding-block:56px 0; }
.stay-masthead { display:grid; grid-template-columns:1.6fr 1fr; gap:40px; align-items:end; margin-bottom:38px; }
.stay-masthead h1,.stay-property-heading h2,.stay-details h3 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.055em; }
.stay-masthead h1 { font-size:clamp(48px,5.5vw,84px); line-height:1.03; }
.stay-masthead h1 em { font-weight:400; color:var(--accent); }
.stay-masthead .eyebrow { margin-bottom:22px; }
.stay-intro { justify-self:end; padding-bottom:8px; }
.stay-intro p { color:var(--muted); font-size:13px; line-height:1.9; }
.stay-scroll { display:flex; justify-content:space-between; align-items:center; gap:50px; margin-top:25px; padding-bottom:12px; border-bottom:1px solid var(--line); font-size:11px; }
.stay-scroll span { font-size:23px; color:var(--accent); }
.stay-cover-pair { display:grid; grid-template-columns:1.7fr 1fr; gap:24px; }
.stay-cover-pair figure { margin:0; min-width:0; }
.stay-cover-pair a { display:block; overflow:hidden; }
.stay-cover-pair img { display:block; width:100%; height:clamp(300px,35vw,510px); object-fit:cover; transition:transform 1.2s ease; }
.stay-cover-pair a:hover img { transform:scale(1.025); }
.stay-cover-pair figure:first-child img { object-position:57% center; }
.stay-cover-pair figure:last-child img { object-position:69% center; }
.stay-cover-pair figcaption { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:15px; }
.stay-cover-pair figcaption span:first-child { color:var(--ink); }
.stay-cover-pair figcaption i { padding-left:12px; font-style:normal; color:var(--accent); }
body[data-page=hospitality] .stay-index { padding-block:28px; margin-top:28px; gap:16px 35px; }
.stay-index .stay-film { margin-left:auto; }
.stay-property { padding-top:110px; scroll-margin-top:70px; }
.stay-property-heading { display:grid; grid-template-columns:1.15fr 1fr; gap:12%; align-items:end; padding-bottom:52px; }
.stay-property-heading h2 { font-size:clamp(43px,5.4vw,78px); line-height:1.03; max-width:11ch; }
.stay-property-heading .eyebrow { margin-bottom:20px; }
.stay-property-heading > div:last-child { max-width:390px; }
.stay-tagline { font-family:Georgia,'Times New Roman',serif; font-size:24px; font-style:italic; margin-bottom:16px; line-height:1.3; }
.stay-property-heading p:not(.eyebrow):not(.stay-tagline) { color:var(--muted); font-size:13px; line-height:1.85; }
.stay-residence { background:var(--paper); margin-top:70px; padding-bottom:1px; }
.room-journey { position:relative; }
.room-heading { display:flex; justify-content:space-between; gap:20px; align-items:center; padding-block:16px 20px; }
.room-heading .eyebrow { margin:0; }
.room-hint { font-size:10px; color:var(--muted); }
.room-hint span { margin-left:12px; }
.room-track { display:flex; gap:28px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; padding-inline:max(56px,calc((100vw - 1280px)/2)); }
.room-track::-webkit-scrollbar { display:none; }
.room-track:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.room-frame { flex:0 0 86%; min-width:0; margin:0; scroll-snap-align:center; }
.room-frame .photo-button { border-radius:0; background:var(--paper); }
.room-frame img { display:block; width:100%; height:clamp(320px,59svh,680px); object-fit:cover; }
.room-frame figcaption { display:flex; justify-content:space-between; gap:20px; padding-top:14px; }
.room-frame figcaption span:first-child { color:var(--ink); }
.room-footer { display:flex; gap:30px; align-items:center; padding-block:23px; }
.room-progress { width:100px; height:2px; background:var(--line); overflow:hidden; }
.room-progress span { display:block; height:100%; width:100%; background:var(--accent); transform:scaleX(var(--room-progress,.2)); transform-origin:left; }
.room-controls { display:flex; align-items:center; gap:12px; }
.room-controls[hidden] { display:none; }
.room-count { min-width:50px; font-size:10px; font-variant-numeric:tabular-nums; }
.room-controls .arrow-button { width:37px; height:37px; border-radius:50%; background:transparent; }
.room-controls button:disabled { opacity:.3; cursor:default; }
.room-play { border:0; padding:10px 5px; background:transparent; color:var(--ink); font:inherit; font-size:10px; cursor:pointer; }
.room-play[hidden] { display:none; }
.room-skip { margin-left:auto; font-size:11px; border-bottom:1px solid var(--line); padding-bottom:7px; }
.room-skip span { padding-left:20px; }
.is-scroll-room { height:310svh; }
.is-scroll-room .room-stage { position:sticky; top:94px; }
.is-scroll-room .room-track { overflow-x:hidden; scroll-snap-type:none; }
.is-scroll-room .photo-button img { transition:none; }
.is-scroll-room .photo-button:hover img { transform:none; }
.stay-details { display:grid; grid-template-columns:.8fr 1fr; gap:12%; align-items:center; padding-block:60px 100px; scroll-margin-top:100px; }
.stay-details figure { margin:0; }
.stay-details img { width:100%; height:380px; object-fit:cover; }
.stay-details figcaption { padding-top:12px; }
.stay-details h3 { font-size:clamp(32px,3.2vw,48px); max-width:15ch; line-height:1.1; margin-bottom:22px; }
.stay-details p:not(.eyebrow) { max-width:45ch; color:var(--muted); font-size:14px; line-height:1.85; }
.stay-links { display:flex; flex-wrap:wrap; gap:16px 30px; margin-top:25px; }
.stay-links .text-link { font-size:11px; }
body[data-page=hospitality] #oxford { border-bottom:1px solid var(--line); }
body[data-page=hospitality] #oxford h2,body[data-page=hospitality] #experience h2,body[data-page=hospitality] #developments h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.035em; }
body[data-page=hospitality] #experience { background:transparent; }
body[data-page=hospitality] #experience .editorial-card { border:0; border-radius:0; background:transparent; }
body[data-page=hospitality] #experience .editorial-card-copy { padding:25px 0 0; }
body[data-page=hospitality] #experience .editorial-card > figure > figcaption { padding-inline:0; }
body[data-page=hospitality] #experience .photo-button { border-radius:0; }
@media(min-width:1600px) { .room-frame { flex-basis:80%; } }
@media(max-width:900px) {
 .stay-masthead { grid-template-columns:1fr; gap:25px; }
 .stay-intro { justify-self:stretch; display:flex; justify-content:space-between; align-items:center; gap:25px; }
 .stay-scroll { margin:0; }
 .stay-property-heading { gap:6%; }
 .room-track { padding-inline:28px; gap:18px; }
 .room-frame { flex-basis:94%; }
 .room-frame img { height:56svh; max-height:560px; }
 .stay-details { gap:7%; }
 .stay-index .stay-film { margin-left:0; }
}
@media(max-width:600px) {
 body[data-page=hospitality] .stay-arrival { padding-top:34px; }
 .stay-masthead { margin-bottom:26px; }
 .stay-masthead h1 { font-size:clamp(39px,10.8vw,60px); }
 .stay-masthead .eyebrow { font-size:8px; margin-bottom:20px; }
 .stay-intro p { font-size:11px; }
 .stay-scroll { gap:16px; font-size:10px; }
 .stay-cover-pair { grid-template-columns:1fr; gap:25px; }
 .stay-cover-pair img { height:290px; }
 .stay-cover-pair figure:last-child { width:83%; margin-left:auto; }
 .stay-cover-pair figure:last-child img { height:225px; }
 .stay-cover-pair figcaption { font-size:10px; gap:8px; }
 body[data-page=hospitality] .stay-index { gap:10px 22px; padding-block:24px; }
 .stay-index a { font-size:10px; }
 .stay-property { padding-top:65px; }
 .stay-property-heading { grid-template-columns:1fr; gap:24px; padding-bottom:25px; }
 .stay-property-heading h2 { font-size:48px; }
 .stay-tagline { font-size:23px; margin-bottom:12px; }
 .stay-property-heading > div:last-child { max-width:none; }
 .room-heading { align-items:start; gap:15px; padding-bottom:18px; }
 .room-heading .eyebrow { font-size:8px; max-width:160px; }
 .room-hint { max-width:110px; font-size:9px; text-align:right; }
 .room-track { padding-inline:20px; gap:14px; }
 .room-frame { flex-basis:96%; }
 .room-frame img { height:390px; max-height:58svh; }
 .room-frame figcaption { font-size:10px; }
 .room-frame figcaption span:last-child { display:none; }
 .room-footer { gap:16px; flex-wrap:wrap; padding-block:18px; }
 .room-progress { width:45px; }
 .room-controls { gap:8px; }
 .room-count { min-width:40px; }
 .room-skip { font-size:10px; }
 .room-skip span { padding-left:6px; }
 .stay-details { grid-template-columns:1fr; gap:32px; padding-block:30px 55px; }
 .stay-details img { height:300px; }
 .stay-details h3 { font-size:38px; }
 .stay-residence { margin-top:0; }
}
@media(prefers-reduced-motion:reduce) { .stay-cover-pair img { transition:none; } }
