:root{--ink:#0b2a5b;--charcoal:#071a36;--ivory:#f7f6f1;--paper:#fff;--stone:#aab4c2;--muted:#667083;--line:rgba(11,42,91,.14);--white:#fff;--ease:cubic-bezier(.16,1,.3,1);--serif:"Instrument Serif",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--page:min(100% - 48px,1440px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--ivory)}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.55;overflow-x:hidden}body.locked{overflow:hidden}button,input,select,textarea{font:inherit}button,a{color:inherit}a{text-decoration:none}img,video{display:block;width:100%;height:100%;object-fit:cover}button{border:0;background:none;cursor:pointer}::selection{background:#24231f;color:#fff}.skip-link{position:fixed;z-index:9999;left:16px;top:16px;transform:translateY(-150%);background:#fff;padding:12px 18px;border-radius:30px}.skip-link:focus{transform:none}.noscript{padding:30px}.container{width:var(--page);margin-inline:auto}.serif{font-family:var(--serif);font-weight:400}.eyebrow{font-size:.69rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500}.display{font:400 clamp(3.8rem,8.4vw,8rem)/.86 var(--serif);letter-spacing:-.045em}.section-title{font:400 clamp(3.2rem,6vw,6.2rem)/.93 var(--serif);letter-spacing:-.035em;margin:0}.page-title{font:400 clamp(4rem,9vw,9rem)/.82 var(--serif);letter-spacing:-.05em;margin:0}.lead{font-size:clamp(1.06rem,1.5vw,1.32rem);line-height:1.6;color:var(--muted);max-width:620px}.muted{color:var(--muted)}.tiny{font-size:.75rem}.pill{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:50px;padding:0 24px;border:1px solid currentColor;border-radius:999px;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;font-weight:500;transition:background .35s var(--ease),color .35s var(--ease),transform .35s var(--ease)}.pill:hover{transform:translateY(-2px)}.pill.dark{background:var(--ink);color:#fff;border-color:var(--ink)}.pill.dark:hover{background:#34322e}.pill.light{background:#fff;color:var(--ink);border-color:#fff}.pill.ghost-light{color:#fff;border-color:rgba(255,255,255,.5)}.text-link{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:5px}.arrow{display:inline-block;transition:transform .3s var(--ease)}a:hover .arrow,button:hover .arrow{transform:translateX(5px)}
.announcement{height:32px;position:relative;z-index:70;background:#262520;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.67rem;letter-spacing:.12em;text-transform:uppercase}.announcement button:first-child{color:#fff}.announcement-close{position:absolute;right:18px;color:#fff;font-size:1rem;line-height:1}.site-header{position:fixed;z-index:60;top:32px;left:0;right:0;color:#fff;transition:background .5s var(--ease),color .5s var(--ease),top .4s var(--ease);border-bottom:1px solid transparent}.site-header.scrolled{background:rgba(244,241,234,.92);color:var(--ink);backdrop-filter:blur(14px);border-color:var(--line)}.site-header.no-banner{top:0}.nav{height:82px;width:min(100% - 48px,1540px);margin:auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.wordmark{font-size:.78rem;letter-spacing:.16em;font-weight:500;white-space:nowrap}.nav-links{display:flex;gap:34px;align-items:center}.nav-links a{position:relative;font-size:.76rem}.nav-links a:after{content:"";position:absolute;left:0;bottom:-8px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}.nav-links a:hover:after,.nav-links a.active:after{transform:scaleX(1);transform-origin:left}.nav-cta{justify-self:end}.menu-toggle{display:none;justify-self:end;color:inherit;width:48px;height:48px;border:1px solid currentColor;border-radius:50%;align-items:center;justify-content:center}.menu-lines{width:17px;height:9px;position:relative}.menu-lines:before,.menu-lines:after{content:"";position:absolute;left:0;width:100%;height:1px;background:currentColor}.menu-lines:before{top:1px}.menu-lines:after{bottom:1px}.mobile-menu{position:fixed;inset:0;z-index:80;background:var(--ivory);padding:26px 24px 38px;display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:.5s var(--ease)}.mobile-menu.open{opacity:1;visibility:visible}.mobile-menu-top{display:flex;align-items:center;justify-content:space-between}.menu-close{width:48px;height:48px;border:1px solid var(--line);border-radius:50%;font-size:1.4rem}.mobile-menu nav{display:flex;flex-direction:column;margin:auto 0;gap:10px}.mobile-menu nav a{font:400 clamp(3.2rem,13vw,5.5rem)/1 var(--serif);letter-spacing:-.035em;transform:translateY(20px);opacity:0}.mobile-menu.open nav a{animation:rise .7s var(--ease) forwards;animation-delay:calc(var(--i)*70ms)}.mobile-menu-bottom{display:flex;align-items:center;justify-content:space-between}.mobile-menu .book-link{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
.hero{min-height:100svh;position:relative;background:var(--charcoal);color:#fff;overflow:hidden}.hero-media-wrap{position:absolute;inset:0;transform-origin:center top;will-change:transform,border-radius}.hero-media{position:absolute;inset:0}.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.52),rgba(0,0,0,.12) 60%,rgba(0,0,0,.3)),linear-gradient(0deg,rgba(0,0,0,.42),transparent 48%)}.hero video{background:#222}.hero-content{position:relative;z-index:2;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:190px 0 82px}.hero-copy{max-width:960px}.hero .display{max-width:900px;margin:16px 0 24px}.hero .lead{color:rgba(255,255,255,.82);max-width:520px}.hero-actions{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}.hero-scroll{position:absolute;z-index:3;right:36px;bottom:42px;writing-mode:vertical-rl;font-size:.61rem;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:12px}.hero-scroll:after{content:"";height:48px;width:1px;background:rgba(255,255,255,.55)}.hero .intro{opacity:0;animation:rise .9s var(--ease) forwards}.hero .intro:nth-child(1){animation-delay:.15s}.hero .intro:nth-child(2){animation-delay:.28s}.hero .intro:nth-child(3){animation-delay:.42s}.hero .intro:nth-child(4){animation-delay:.56s}@keyframes rise{to{opacity:1;transform:translateY(0)}}
.booking-shell{position:relative;z-index:5;margin-top:-34px}.booking-bar{background:var(--paper);border:1px solid var(--line);border-radius:20px;box-shadow:0 20px 60px rgba(26,23,18,.1);padding:10px;display:grid;grid-template-columns:1.1fr 1.1fr .8fr 1fr auto;gap:0}.booking-field{min-height:76px;padding:14px 20px;border-right:1px solid var(--line);position:relative}.booking-field label{display:block;font-size:.62rem;letter-spacing:.15em;font-weight:500;margin-bottom:9px}.booking-field input,.booking-field select{width:100%;border:0;background:transparent;color:var(--ink);outline:0;padding:0;font-size:.88rem}.booking-field:focus-within{box-shadow:inset 0 -2px var(--ink)}.booking-bar .pill{align-self:stretch;border-radius:14px;margin-left:10px}.guest-pop{position:absolute;z-index:20;top:calc(100% + 12px);left:0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;width:290px;box-shadow:0 20px 50px rgba(0,0,0,.12);display:none}.guest-pop.open{display:block}.counter{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.counter:last-child{border:0}.counter-controls{display:flex;align-items:center;gap:14px}.counter-controls button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%}
.section{padding:clamp(90px,11vw,180px) 0}.section-sm{padding:clamp(70px,8vw,120px) 0}.intro-section{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:end}.intro-section .lead{margin:0}.room-editorial{display:grid;gap:clamp(100px,13vw,200px);margin-top:90px}.room-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr);gap:clamp(40px,7vw,110px);align-items:center}.room-row:nth-child(even){grid-template-columns:minmax(320px,.6fr) minmax(0,1.4fr)}.room-row:nth-child(even) .room-image{order:2}.room-image{height:min(72vw,780px);border-radius:28px;overflow:hidden;background:#ddd}.room-image img{transition:transform 1s var(--ease)}.room-image:hover img{transform:scale(1.03)}.room-copy h3{font:400 clamp(3rem,5vw,5.5rem)/.9 var(--serif);margin:16px 0 24px}.room-meta{display:flex;gap:22px;margin:25px 0;color:var(--muted);font-size:.78rem}.room-actions{display:flex;gap:20px;align-items:center;margin-top:30px}.data-note{font-size:.68rem;color:var(--muted);margin-top:18px}.dark-section{background:var(--charcoal);color:#fff}.dark-section .lead,.dark-section .muted{color:rgba(255,255,255,.64)}.story{display:grid;grid-template-columns:.65fr 1.35fr;gap:10vw}.story-copy{position:sticky;top:150px;height:max-content}.story-stage{display:grid;gap:18vh}.story-step{min-height:68vh;display:flex;flex-direction:column;justify-content:center}.story-image{height:56vh;border-radius:28px;overflow:hidden;margin-bottom:32px;opacity:.62;transition:opacity .6s var(--ease),transform .8s var(--ease);transform:scale(.985)}.story-step.active .story-image{opacity:1;transform:scale(1)}.story-step h3{font:400 clamp(2.5rem,4vw,4.2rem)/1 var(--serif);margin:10px 0}.story-number{font-size:.69rem;letter-spacing:.16em}.experience-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:70px}.experience-card{min-height:420px;border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;transition:background .4s var(--ease),transform .4s var(--ease)}.experience-card:hover{background:rgba(255,255,255,.06);transform:translateY(-5px)}.experience-card h3{font:400 2.6rem/1 var(--serif);margin:0}.london-feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,120px);align-items:center}.london-image{height:min(75vw,820px);border-radius:30px;overflow:hidden}.london-copy .section-title{margin:18px 0 30px}.gallery-editorial{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:70px}.gallery-column{display:grid;gap:18px}.gallery-button{padding:0;border-radius:25px;overflow:hidden;position:relative;height:560px}.gallery-column .gallery-button{height:360px}.gallery-column .gallery-button:last-child{height:520px}.gallery-button img{transition:transform .8s var(--ease)}.gallery-button:hover img{transform:scale(1.03)}.map-shell{position:relative;margin-top:60px;height:600px;border-radius:30px;overflow:hidden;background:#ddd;border:1px solid var(--line)}.map-shell iframe{border:0;width:100%;height:100%;filter:grayscale(1) contrast(.85) sepia(.12)}.map-panel{position:absolute;left:24px;bottom:24px;background:var(--ivory);border-radius:18px;padding:24px;width:min(330px,calc(100% - 48px));box-shadow:0 14px 50px rgba(0,0,0,.15)}.map-panel strong{display:block;letter-spacing:.12em;font-size:.72rem}.map-panel p{font-family:var(--serif);font-size:1.7rem;margin:9px 0 20px}.final-cta{min-height:70vh;position:relative;color:#fff;display:flex;align-items:end;overflow:hidden}.final-cta:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.08)),url("https://images.unsplash.com/photo-1513635269975-59663e0ac1ad?auto=format&fit=crop&w=2200&q=84") center/cover}.final-cta-inner{position:relative;z-index:1;padding:80px 0}.final-cta .section-title{margin:10px 0}.final-actions{display:flex;gap:18px;align-items:center;margin-top:30px}.footer{background:var(--ink);color:#fff;padding:90px 0 24px}.footer-wordmark{font:400 clamp(3rem,7vw,7.2rem)/.85 var(--serif);letter-spacing:-.04em;margin-bottom:80px}.footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:50px}.footer-col h3{font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);margin:0 0 18px}.footer-col a,.footer-col button{display:block;color:#fff;margin:9px 0;font-size:.88rem}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.16);margin-top:70px;padding-top:22px;font-size:.69rem;color:rgba(255,255,255,.55)}
.page-hero{min-height:76svh;position:relative;color:#fff;display:flex;align-items:flex-end;overflow:hidden;background:#222}.page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.62),transparent 62%)}.page-hero img{position:absolute;inset:0}.page-hero-content{position:relative;z-index:1;padding:190px 0 70px}.page-hero .eyebrow{margin-bottom:18px}.page-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw}.page-intro h2{margin:0}.room-index-list{display:grid;gap:80px}.room-index-card{display:grid;grid-template-columns:1.2fr .8fr;gap:6vw;align-items:center}.room-index-card:nth-child(even){grid-template-columns:.8fr 1.2fr}.room-index-card:nth-child(even) .room-index-image{order:2}.room-index-image{height:600px;border-radius:28px;overflow:hidden}.room-index-card h2{font:400 clamp(3.5rem,5vw,6rem)/.9 var(--serif);margin:14px 0}.details-list{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);margin:35px 0}.details-list div{padding:15px 0;border-bottom:1px solid var(--line);font-size:.8rem}.room-detail-intro{display:grid;grid-template-columns:1.25fr .75fr;gap:10vw}.room-facts{border-top:1px solid var(--line)}.room-fact{padding:20px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;font-size:.8rem}.room-gallery{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.room-gallery button{padding:0;height:680px;border-radius:28px;overflow:hidden}.room-gallery-side{display:grid;gap:18px}.room-gallery-side button{height:331px}.amenity-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:50px}.amenity{border-top:1px solid var(--line);padding:20px 0;font-size:.85rem}.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:50px}.related-card{border-radius:20px;overflow:hidden;background:#ebe6dc}.related-card img{height:360px}.related-card div{padding:20px}.related-card h3{font:400 2rem/1 var(--serif);margin:5px 0 12px}
.editorial-split{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:center}.editorial-split.reverse .editorial-media{order:2}.editorial-media{height:700px;border-radius:28px;overflow:hidden}.chapter{padding:60px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:.3fr .7fr;gap:8vw}.chapter h2{font:400 clamp(2.8rem,5vw,5rem)/.95 var(--serif);margin:0}.chapter-copy{max-width:660px}.contact-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:10vw}.contact-details{border-top:1px solid var(--line)}.contact-detail{padding:20px 0;border-bottom:1px solid var(--line)}.contact-detail span{display:block;font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:7px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:8px}.field.full{grid-column:1/-1}.field label{font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;font-weight:500}.field input,.field select,.field textarea{border:1px solid var(--line);background:rgba(255,255,255,.5);border-radius:12px;padding:15px 16px;outline:0;min-height:52px}.field textarea{min-height:150px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.form-status{margin-top:18px;font-family:var(--serif);font-size:1.6rem}
.booking-page{padding:160px 0 100px}.booking-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:55px}.progress{display:flex;gap:8px;margin:35px 0 55px}.progress-item{flex:1;border-top:1px solid var(--line);padding-top:12px;font-size:.65rem;letter-spacing:.13em;color:var(--muted)}.progress-item.active{border-color:var(--ink);color:var(--ink)}.booking-panel{background:var(--paper);border:1px solid var(--line);border-radius:26px;padding:clamp(24px,4vw,54px)}.search-form{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.booking-actions{display:flex;justify-content:space-between;align-items:center;margin-top:35px}.error{color:#7a2f28;font-size:.78rem;margin-top:12px}.results-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.result-card{border:1px solid var(--line);border-radius:20px;overflow:hidden;display:grid;grid-template-columns:.8fr 1.2fr;background:#fff}.result-card img{min-height:280px}.result-content{padding:24px}.result-content h3{font:400 2.3rem/1 var(--serif);margin:7px 0 12px}.price{font-family:var(--serif);font-size:1.6rem;margin:18px 0}.rate-list{display:grid;gap:12px}.rate-option{width:100%;text-align:left;border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;grid-template-columns:1fr auto;gap:12px;background:#fff;transition:border .3s}.rate-option:hover,.rate-option.selected{border-color:var(--ink)}.rate-option h3{margin:0 0 5px}.discount-tag{display:inline-block;padding:5px 9px;border:1px solid var(--line);border-radius:30px;font-size:.62rem;letter-spacing:.12em}.summary-layout{display:grid;grid-template-columns:1fr .7fr;gap:6vw}.summary-card{background:#eae5da;border-radius:20px;padding:26px;height:max-content}.summary-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(0,0,0,.12);font-size:.85rem}.summary-row.total{font-family:var(--serif);font-size:1.5rem;border:0;padding-top:22px}.discount-row{color:#3d5b49}
.modal-backdrop{position:fixed;z-index:100;inset:0;background:rgba(0,0,0,.34);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:22px;opacity:0;visibility:hidden;transition:.45s var(--ease)}.modal-backdrop.open{opacity:1;visibility:visible}.offer-modal{width:min(900px,100%);max-height:min(760px,calc(100svh - 44px));overflow:auto;background:var(--ivory);border-radius:28px;display:grid;grid-template-columns:.95fr 1.05fr;position:relative;transform:translateY(12px) scale(.96);transition:.6s var(--ease);box-shadow:0 35px 100px rgba(0,0,0,.22)}.modal-backdrop.open .offer-modal{transform:none}.offer-image{min-height:590px}.offer-content{padding:clamp(30px,5vw,58px);display:flex;flex-direction:column;justify-content:center}.offer-content h2{font:400 clamp(3rem,5vw,5rem)/.85 var(--serif);letter-spacing:-.035em;margin:16px 0 12px}.offer-content h3{font:400 1.8rem/1.1 var(--serif);margin:0 0 18px}.offer-close{position:absolute;z-index:2;right:18px;top:18px;width:44px;height:44px;border:1px solid var(--line);background:rgba(244,241,234,.8);border-radius:50%;font-size:1.2rem}.offer-form{margin-top:24px}.offer-form input{width:100%;height:54px;padding:0 16px;border:1px solid var(--line);border-radius:12px;background:#fff;outline:0}.offer-form .pill{width:100%;margin-top:10px}.continue-link{margin-top:18px;font-size:.72rem;text-decoration:underline}.promo-code{display:flex;justify-content:space-between;align-items:center;border:1px dashed var(--ink);padding:15px 17px;border-radius:12px;margin:24px 0;font-weight:500;letter-spacing:.1em}.demo-modal{width:min(560px,100%);background:var(--ivory);border-radius:25px;padding:45px;position:relative;transform:translateY(12px) scale(.96);transition:.6s var(--ease)}.modal-backdrop.open .demo-modal{transform:none}.demo-modal h2{font:400 3.5rem/1 var(--serif);margin:10px 0}.lightbox{position:fixed;z-index:120;inset:0;background:#0e0e0e;color:#fff;display:none}.lightbox.open{display:block}.lightbox-stage{position:absolute;inset:70px 70px 90px}.lightbox img{object-fit:contain}.lightbox-close{position:absolute;z-index:2;right:24px;top:20px;color:#fff;font-size:.75rem;letter-spacing:.15em}.lightbox-nav{position:absolute;left:0;right:0;bottom:26px;display:flex;justify-content:center;gap:30px}.lightbox-nav button{color:#fff;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s var(--ease),transform .85s var(--ease)}.reveal.visible{opacity:1;transform:none}.image-reveal{overflow:hidden}.image-reveal img{transform:scale(1.04);transition:transform 1.2s var(--ease)}.image-reveal.visible img{transform:scale(1)}.mobile-book-dock{display:none}
@media(max-width:1024px){:root{--page:min(100% - 36px,1440px)}.nav-links{display:none}.nav{grid-template-columns:1fr auto}.nav-cta{display:none}.menu-toggle{display:flex}.booking-bar{grid-template-columns:repeat(2,1fr)}.booking-field:nth-child(2){border-right:0}.booking-field:nth-child(3),.booking-field:nth-child(4){border-top:1px solid var(--line)}.booking-bar .pill{grid-column:1/-1;height:60px;margin:8px 0 0}.experience-grid{grid-template-columns:repeat(2,1fr)}.room-row,.room-row:nth-child(even){grid-template-columns:1.2fr .8fr;gap:50px}.room-index-card,.room-index-card:nth-child(even){grid-template-columns:1.1fr .9fr}.results-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:repeat(3,1fr)}.footer-brand{grid-column:1/-1}}
@media(max-width:720px){:root{--page:min(100% - 28px,1440px)}.announcement{justify-content:flex-start;padding-left:14px;font-size:.56rem}.announcement-close{right:10px}.site-header{top:32px}.nav{height:68px;width:calc(100% - 28px)}.wordmark{font-size:.67rem}.hero-content{padding:150px 0 76px}.hero .display{font-size:clamp(3.8rem,17vw,6rem);line-height:.87}.hero .lead{font-size:.98rem;max-width:90%}.hero-actions{gap:9px}.hero-actions .pill{padding-inline:17px;font-size:.62rem}.hero-scroll{display:none}.booking-shell{margin-top:0;background:var(--paper);padding:18px 0}.booking-bar{display:block;border-radius:18px;box-shadow:none}.booking-field{border-right:0!important;border-top:1px solid var(--line);min-height:68px}.booking-field:first-child{border-top:0}.booking-bar .pill{width:100%;margin:8px 0 0}.guest-pop{position:fixed;left:14px;right:14px;bottom:14px;top:auto;width:auto}.section{padding:90px 0}.section-sm{padding:70px 0}.intro-section,.page-intro,.room-detail-intro,.contact-layout,.summary-layout{grid-template-columns:1fr;gap:42px}.room-row,.room-row:nth-child(even),.room-index-card,.room-index-card:nth-child(even){display:flex;flex-direction:column;gap:28px;align-items:stretch}.room-row:nth-child(even) .room-image,.room-index-card:nth-child(even) .room-index-image{order:0}.room-image,.room-index-image{height:115vw;max-height:600px;border-radius:20px}.room-copy h3{font-size:3.8rem}.story{grid-template-columns:1fr}.story-copy{position:static}.story-stage{gap:70px}.story-step{min-height:auto}.story-image{height:110vw;max-height:560px;border-radius:20px}.experience-grid{grid-template-columns:1fr}.experience-card{min-height:300px}.london-feature,.editorial-split{grid-template-columns:1fr}.editorial-split.reverse .editorial-media{order:0}.london-image,.editorial-media{height:120vw;max-height:650px;border-radius:20px}.gallery-editorial,.room-gallery{grid-template-columns:1fr}.gallery-button,.gallery-column .gallery-button,.gallery-column .gallery-button:last-child,.room-gallery button,.room-gallery-side button{height:105vw;max-height:520px;border-radius:20px}.map-shell{height:430px;border-radius:20px}.map-panel{left:14px;bottom:14px;width:calc(100% - 28px)}.final-cta{min-height:72svh}.final-actions{align-items:flex-start;flex-direction:column}.footer{padding-top:70px}.footer-wordmark{margin-bottom:55px}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-bottom{align-items:flex-start;gap:20px;flex-direction:column}.page-hero{min-height:72svh}.page-hero-content{padding:150px 0 50px}.page-title{font-size:clamp(4rem,20vw,7rem)}.chapter{grid-template-columns:1fr;gap:25px}.amenity-grid,.related-grid{grid-template-columns:1fr}.related-card img{height:95vw}.form-grid,.search-form{grid-template-columns:1fr}.booking-page{padding-top:130px}.booking-head{display:block}.progress{overflow:auto}.progress-item{min-width:100px}.booking-panel{padding:22px}.result-card{grid-template-columns:1fr}.result-card img{height:70vw}.booking-actions{align-items:stretch;flex-direction:column-reverse;gap:14px}.booking-actions .pill{width:100%}.offer-modal{grid-template-columns:1fr;max-height:calc(100svh - 24px);border-radius:22px}.offer-image{height:190px;min-height:0}.offer-content{padding:28px}.offer-content h2{font-size:3rem}.offer-close{top:10px;right:10px}.demo-modal{padding:30px}.lightbox-stage{inset:65px 14px 80px}.mobile-book-dock{display:flex;position:fixed;z-index:50;left:14px;right:14px;bottom:14px;background:var(--ink);color:#fff;height:56px;border-radius:999px;align-items:center;justify-content:center;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;box-shadow:0 15px 40px rgba(0,0,0,.25)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hero video{display:none}.reveal{opacity:1;transform:none}.image-reveal img{transform:none}}
@media print{.announcement,.site-header,.mobile-book-dock,.hero video,.modal-backdrop{display:none!important}}
.map-shell{background:#d5d2ca}.map-tiles{position:absolute;left:50%;top:50%;width:1536px;height:1024px;display:grid;grid-template-columns:repeat(6,256px);grid-template-rows:repeat(4,256px);transform:translate(-50%,-50%);filter:grayscale(1) contrast(.82) sepia(.12)}.map-tiles img{width:256px;height:256px}.map-shell:after{content:"";position:absolute;inset:0;pointer-events:none;background:rgba(225,219,205,.14)}.map-attribution{position:absolute;z-index:2;right:10px;bottom:8px;background:rgba(255,255,255,.8);padding:3px 7px;font-size:.58rem}.map-attribution a{text-decoration:underline}.map-panel{z-index:3}
.editorial-hero{padding:clamp(160px,14vw,220px) 0 0;background:var(--ivory);color:var(--ink)}.editorial-hero-copy{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);column-gap:7vw;align-items:end}.editorial-hero-copy>.eyebrow{grid-column:1/-1;margin-bottom:20px}.editorial-hero .display{margin:0;max-width:920px}.editorial-hero .lead{align-self:end;margin:0 0 86px;max-width:460px}.editorial-hero .hero-actions{grid-column:1/-1;margin-top:30px}.editorial-hero .intro{opacity:0;transform:translateY(24px);animation:rise .9s var(--ease) forwards}.editorial-hero .intro:nth-child(1){animation-delay:.08s}.editorial-hero .intro:nth-child(2){animation-delay:.18s}.editorial-hero .intro:nth-child(3){animation-delay:.28s}.editorial-hero .intro:nth-child(4){animation-delay:.38s}.hero-banner{width:min(1360px,calc(100% - 64px));aspect-ratio:2.05/1;margin:44px auto 0;border-radius:26px;overflow:hidden;background-position:center;background-size:cover;box-shadow:0 20px 60px rgba(0,0,0,.08)}.hero-banner video{width:100%;height:100%;display:block;object-fit:cover;object-position:center;transform:scale(1);background:transparent}.home-booking-shell{margin-top:26px}.mobile-booking-title{display:none}.inline-availability{opacity:0;transform:translateY(20px);transition:opacity .62s var(--ease),transform .62s var(--ease);scroll-margin-top:120px}.inline-availability[hidden]{display:none}.inline-availability.open{opacity:1;transform:none}.availability-panel{margin-top:18px;padding:clamp(26px,4vw,52px);background:var(--paper);border:1px solid var(--line);border-radius:26px}.availability-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:36px}.availability-head h2{font-size:clamp(2.6rem,4vw,4.6rem);line-height:.95;margin:10px 0 0;letter-spacing:-.03em}.availability-head p{text-align:right;color:var(--muted);margin:0}.inline-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.inline-room-card{display:grid;grid-template-columns:minmax(180px,.72fr) minmax(0,1.28fr);min-height:290px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}.inline-room-image{overflow:hidden}.inline-room-image img{transition:transform .8s var(--ease)}.inline-room-image:hover img{transform:scale(1.025)}.inline-room-copy{padding:24px;display:flex;flex-direction:column}.inline-room-copy h3{font:400 clamp(2.1rem,3vw,3.1rem)/.95 var(--serif);margin:8px 0 12px}.inline-room-copy>p{font-size:.78rem;margin:0}.inline-room-price{display:grid;align-items:start;justify-items:start;gap:6px;margin-top:auto;padding-top:18px}.inline-room-price s{font-size:.78rem;color:var(--muted)}.inline-room-price strong{font-family:var(--serif);font-size:1.35rem;font-weight:400}.inline-room-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px}.inline-room-actions .pill{min-height:44px;padding-inline:18px}.availability-panel>.data-note{margin-bottom:0}
@media(max-width:1024px){.editorial-hero-copy{grid-template-columns:1fr}.editorial-hero .lead{margin:28px 0 0}.editorial-hero .hero-actions{margin-top:28px}.hero-banner{width:calc(100% - 36px);aspect-ratio:1.9/1}.inline-room-grid{grid-template-columns:1fr}.inline-room-card{grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr)}}
@media(max-width:720px){.editorial-hero{padding:136px 0 0}.editorial-hero-copy>.eyebrow{margin-bottom:14px}.editorial-hero .display{font-size:clamp(3.65rem,16.5vw,5rem);line-height:.88}.editorial-hero .lead{font-size:.98rem;margin-top:22px;max-width:95%}.editorial-hero .hero-actions{gap:8px;margin-top:24px}.editorial-hero .hero-actions .pill{padding-inline:16px;font-size:.61rem}.hero-banner{width:calc(100% - 32px);aspect-ratio:16/10;margin-top:34px;border-radius:18px;box-shadow:0 14px 40px rgba(0,0,0,.07)}.hero-banner video{object-position:center}.home-booking-shell{width:calc(100% - 32px);margin-top:16px;padding:0;background:transparent}.mobile-booking-title{display:block;padding:16px 10px 12px}.home-booking-shell .booking-bar{border:1px solid var(--line);background:var(--paper);padding:8px}.inline-availability{width:calc(100% - 32px);scroll-margin-top:88px}.availability-panel{margin-top:12px;padding:24px 16px;border-radius:20px}.availability-head{display:block;margin-bottom:24px}.availability-head p{text-align:left;margin-top:15px}.inline-room-card{grid-template-columns:1fr;min-height:0}.inline-room-image{height:220px}.inline-room-copy{padding:20px}.inline-room-actions{align-items:stretch}.inline-room-actions .pill{min-width:108px}.inline-room-price strong{font-size:1.25rem}.editorial-hero+.home-booking-shell+.inline-availability+.section{padding-top:86px}}
@media(prefers-reduced-motion:reduce){.hero-banner video{display:none}.editorial-hero .intro{opacity:1;transform:none}.inline-availability{opacity:1;transform:none}}

/* Homepage cinematic hero */
.announcement.home-chrome{position:absolute;top:8px;left:8px;right:8px;border-radius:24px 24px 0 0;background:rgba(20,20,18,.84);backdrop-filter:blur(10px)}
.site-header.home-chrome{top:40px}
.site-header.home-chrome.no-banner{top:8px}
.site-header.home-chrome.scrolled{top:0}
.homepage-hero{height:calc(100svh - 16px);height:calc(100dvh - 16px);min-height:620px;margin:8px;border-radius:24px;background-color:#222;background-position:center;background-size:cover;isolation:isolate}
.homepage-hero>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;transform:none;background:transparent}
.homepage-hero>video{pointer-events:none;-webkit-user-select:none;user-select:none}
.homepage-hero>video::-webkit-media-controls,.homepage-hero>video::-webkit-media-controls-panel,.homepage-hero>video::-webkit-media-controls-start-playback-button,.homepage-hero>video::-webkit-media-controls-overlay-play-button{display:none!important;-webkit-appearance:none}
.homepage-hero-shade{position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.06) 42%,rgba(0,0,0,.24) 100%)}
.homepage-hero-copy{position:absolute;z-index:2;inset:0;display:grid;place-items:center;padding:120px 32px 190px;text-align:center;pointer-events:none}
.homepage-hero-copy h1{max-width:1000px;margin:0;color:#fff;font:300 clamp(56px,5vw,78px)/.98 var(--sans);letter-spacing:-.045em;opacity:0;transform:translateY(20px);animation:home-hero-rise 1.05s var(--ease) .08s forwards;text-shadow:0 2px 28px rgba(0,0,0,.2)}
.homepage-hero-copy h1 span{display:block;white-space:nowrap}
.homepage-hero-copy h1 em{font:inherit;font-style:normal}
.homepage-hero .home-booking-shell{position:absolute;z-index:10;left:50%;bottom:24px;width:min(1180px,calc(100% - 64px));margin:0;padding:0;transform:translate(-50%,20px);opacity:0;animation:home-booking-rise 1s var(--ease) .28s forwards}
.homepage-hero .booking-bar{position:relative;background:rgba(251,250,246,.96);color:var(--ink);border-color:rgba(255,255,255,.46);border-radius:19px;box-shadow:0 20px 54px rgba(0,0,0,.18);backdrop-filter:blur(14px);padding:8px}
.homepage-hero .booking-field{min-height:76px;padding:13px 18px}
.homepage-hero .booking-field label{font-size:.59rem;margin-bottom:7px}
.homepage-hero .booking-field input,.homepage-hero .booking-field select,.homepage-hero #quick-guests{font-size:.82rem}
.homepage-hero #quick-guests{width:100%;padding:0;text-align:left;white-space:nowrap}
.homepage-hero .booking-bar>.pill{min-width:192px;border-radius:13px;margin-left:8px}
.homepage-hero .guest-pop{top:auto;bottom:calc(100% + 12px)}
.homepage-hero #quick-error:not(:empty){position:absolute;left:10px;bottom:calc(100% + 10px);margin:0;padding:8px 12px;border-radius:10px;background:#fff;color:#7a2f28;box-shadow:0 10px 30px rgba(0,0,0,.16)}
body.home-page .mobile-book-dock{display:none}
body.home-page .inline-availability{padding-top:10px}
body.home-page .inline-availability+.section{padding-top:clamp(90px,10vw,160px)}
@keyframes home-hero-rise{to{opacity:1;transform:translateY(0)}}
@keyframes home-booking-rise{to{opacity:1;transform:translate(-50%,0)}}

@media(max-width:1024px){
  .homepage-hero-copy{padding-bottom:260px}
  .homepage-hero .home-booking-shell{width:calc(100% - 48px);bottom:20px}
  .homepage-hero .booking-bar>.pill{min-width:0;margin:8px 0 0}
}

@media(max-width:720px){
  .announcement.home-chrome{left:8px;right:8px;padding-left:12px;border-radius:18px 18px 0 0;font-size:.52rem}
  .site-header.home-chrome{top:40px}
  .site-header.home-chrome.no-banner{top:8px}
  .site-header.home-chrome.scrolled{top:0}
  .site-header.home-chrome .nav{width:calc(100% - 32px);height:66px}
  .homepage-hero{height:calc(100svh - 16px);height:calc(100dvh - 16px);min-height:700px;border-radius:18px}
  .homepage-hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.2) 0%,rgba(0,0,0,.08) 42%,rgba(0,0,0,.3) 100%)}
  .homepage-hero-copy{padding:104px 14px 224px}
  .homepage-hero-copy h1{font-size:clamp(36px,10vw,46px);line-height:1;letter-spacing:-.04em}
  .homepage-hero .home-booking-shell{bottom:14px;width:calc(100% - 28px)}
  .homepage-hero .mobile-booking-title{display:none}
  .homepage-hero .booking-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:6px;border-radius:16px}
  .homepage-hero .booking-field{min-width:0;min-height:58px;padding:8px 10px;border-top:0}
  .homepage-hero .booking-field:nth-child(odd){border-right:1px solid var(--line)!important}
  .homepage-hero .booking-field:nth-child(3),.homepage-hero .booking-field:nth-child(4){border-top:1px solid var(--line)}
  .homepage-hero .booking-field:nth-child(4){border-right:0!important}
  .homepage-hero .booking-field label{font-size:.52rem;line-height:1;margin-bottom:5px}
  .homepage-hero .booking-field input,.homepage-hero .booking-field select,.homepage-hero #quick-guests{font-size:.69rem;line-height:1.2}
  .homepage-hero .booking-bar>.pill{grid-column:1/-1;height:48px;min-height:48px;margin:6px 0 0;border-radius:11px;font-size:.62rem}
  .homepage-hero .guest-pop{position:absolute;left:0;right:auto;top:auto;bottom:calc(100% + 10px);width:min(290px,calc(200% + 8px))}
  .homepage-hero #quick-error:not(:empty){left:6px;right:6px;bottom:calc(100% + 8px)}
  body.home-page .inline-availability{width:calc(100% - 32px);padding-top:8px}
}

@media(max-width:380px){
  .homepage-hero-copy h1{font-size:35px}
  .homepage-hero .booking-field{padding-inline:8px}
}

@media(prefers-reduced-motion:reduce){
  .homepage-hero-copy h1{opacity:1;transform:none;animation:none}
  .homepage-hero .home-booking-shell{opacity:1;transform:translateX(-50%);animation:none}
}

/* Sapphire brand system */
::selection{background:#0b2a5b;color:#fff}
.announcement{background:#0b2a5b}
.announcement.home-chrome{background:rgba(7,26,54,.88)}
.site-header.scrolled{background:rgba(247,246,241,.94)}
.wordmark{display:inline-flex;align-items:center;width:max-content;line-height:1}
.brand-mark{display:grid;justify-items:center;width:172px;line-height:1}
.brand-mark img{width:100%;height:auto;object-fit:contain;transition:filter .4s var(--ease)}
.brand-mark>span{margin-top:-5px;color:currentColor;font-size:.46rem;font-weight:500;letter-spacing:.31em;text-transform:uppercase;white-space:nowrap}
.site-header:not(.scrolled) .brand-mark img{filter:brightness(0) invert(1)}
.site-header.scrolled .brand-mark img,.mobile-menu .brand-mark img{filter:none}
.homepage-hero-shade{background:linear-gradient(180deg,rgba(2,16,39,.28) 0%,rgba(4,21,48,.08) 42%,rgba(2,16,39,.34) 100%)}
.footer-wordmark{display:grid;justify-items:start;gap:8px}
.footer-wordmark img{width:min(560px,72vw);height:auto;object-fit:contain;filter:brightness(0) invert(1)}
.footer-wordmark span{font:500 clamp(.65rem,1vw,.9rem)/1 var(--sans);letter-spacing:.38em;text-transform:uppercase}
.promo-code{border-color:#0b2a5b;background:rgba(11,42,91,.04)}
.discount-row{color:#0b2a5b}

@media(max-width:720px){
  .brand-mark{width:142px}
  .brand-mark>span{font-size:.4rem;letter-spacing:.26em;margin-top:-4px}
  .footer-wordmark img{width:min(430px,86vw)}
}
