:root{--ink:#17302e;--cream:#f5f1e9;--paper:#fbf9f4;--sage:#aeb9a5;--clay:#b86f50;--line:#d8d2c8;--serif:'Gilda Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 var(--sans)}img{display:block;width:100%}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}.site-header{height:88px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;background:var(--paper);position:relative;z-index:20;border-bottom:1px solid rgba(23,48,46,.1)}.wordmark{display:flex;align-items:center;gap:14px;font:19px var(--serif);letter-spacing:.02em}.monogram{width:43px;height:43px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font:13px var(--serif);letter-spacing:-.08em}.site-header nav{display:flex;align-items:center;gap:34px;font-size:13px}.site-header nav a:not(.nav-book):hover{opacity:.55}.nav-book{border:1px solid var(--ink);padding:12px 20px;transition:.2s}.nav-book:hover{background:var(--ink);color:#fff}.menu-toggle{display:none;background:none;border:0}.hero{height:calc(100vh - 88px);min-height:650px;background:linear-gradient(90deg,rgba(7,24,25,.65),rgba(7,24,25,.05) 60%),url('/static/images/hotel-exterior.png') center/cover;position:relative;color:#fff;display:flex;align-items:center;padding:8vw}.hero-copy{max-width:650px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:10px;font-weight:600;margin:0 0 22px}.eyebrow.light{color:#dfe3d8}.hero h1,.booking-hero h1{font:clamp(65px,8vw,126px)/.86 var(--serif);letter-spacing:-.04em;margin:0 0 36px;font-weight:400}.hero h1 em,.booking-hero h1 em,.intro h2 em,.breakfast-copy h2 em,.quote em{font-weight:400;color:#cbd0bd}.hero-copy>p:last-child{font-size:17px;max-width:430px;color:rgba(255,255,255,.8)}.hero-note{position:absolute;right:4vw;bottom:4vw;font-size:10px;text-transform:uppercase;letter-spacing:.16em;text-align:right}.availability-bar{height:132px;background:var(--cream);display:grid;grid-template-columns:1fr 1fr .75fr 1.2fr;padding:0 7vw;align-items:center;border-bottom:1px solid var(--line)}.availability-bar label{height:62px;padding:0 35px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.availability-bar label:first-child{border-left:1px solid var(--line)}.availability-bar label span,.date-grid label span,.details-grid label span{font-size:9px;text-transform:uppercase;letter-spacing:.18em;font-weight:600}.availability-bar input,.availability-bar select{border:0;background:transparent;padding:4px 0;outline:0}.availability-bar button{height:62px;border:0;background:var(--ink);color:white;margin-left:28px;padding:0 30px;text-transform:uppercase;letter-spacing:.12em;font-size:11px;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.section-pad{padding:120px 8vw}.intro{display:grid;grid-template-columns:1fr 2.2fr;gap:6vw;background:var(--paper)}.intro h2,.section-heading h2,.breakfast-copy h2,.neighbourhood h2{font:clamp(46px,5vw,78px)/1.03 var(--serif);font-weight:400;letter-spacing:-.025em;margin:0}.intro>div>p{max-width:620px;font-size:17px;color:#52605e;margin:30px 0}.text-link{font-size:11px;text-transform:uppercase;letter-spacing:.16em;border-bottom:1px solid var(--ink);padding-bottom:8px;display:inline-flex;gap:25px}.rooms-section{background:var(--cream)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:56px}.section-heading>p{max-width:450px;color:#66706e}.room-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px 28px}.room-card{background:var(--paper)}.room-card>a{display:block;overflow:hidden;aspect-ratio:1.42}.room-card img{height:100%;object-fit:cover;transition:transform .7s}.room-card:hover img{transform:scale(1.025)}.room-card-copy{padding:28px 30px 30px;display:grid;grid-template-columns:1fr auto;position:relative}.room-card-copy p{grid-column:1/-1;margin:0;text-transform:uppercase;letter-spacing:.15em;font-size:9px;color:#6c7471}.room-card-copy h3{font:34px var(--serif);margin:5px 0}.room-card-copy span{grid-column:1;font-size:12px;color:#69726f}.room-card-copy strong{grid-column:2;grid-row:2/4;font:22px var(--serif);align-self:center}.room-card-copy strong small{font:10px var(--sans);font-weight:400}.room-card-copy>a{position:absolute;right:0;top:0;transform:translateY(-100%);width:60px;height:60px;background:var(--paper);display:grid;place-items:center;font-size:22px}.room-wide{grid-column:1/-1}.room-wide>a{aspect-ratio:2.4}.breakfast-story{display:grid;grid-template-columns:1.3fr 1fr;min-height:700px}.breakfast-image img{height:100%;object-fit:cover}.breakfast-copy{background:var(--ink);color:#fff;padding:10vw 8vw;display:flex;flex-direction:column;justify-content:center}.breakfast-copy h2{margin-bottom:30px}.breakfast-copy>p:not(.eyebrow){color:#bbc5c0;max-width:440px;margin-bottom:35px}.breakfast-copy .text-link{border-color:#fff}.neighbourhood{background:#637168;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:8vw}.distance-list p{display:grid;grid-template-columns:35px 1fr auto;padding:20px 0;margin:0;border-bottom:1px solid rgba(255,255,255,.2);align-items:center}.distance-list span{font-size:9px;opacity:.6}.distance-list strong{font:24px var(--serif);font-weight:400}.distance-list em{font-style:normal;font-size:11px;opacity:.7}.quote{text-align:center;background:var(--paper)}.quote p{font:clamp(36px,4vw,64px)/1.15 var(--serif);margin:0 0 30px}.quote em{color:var(--clay)}.quote span{font-size:10px;text-transform:uppercase;letter-spacing:.18em}.site-footer{padding:90px 7vw 30px;background:#102624;color:#d9dfd9;display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:50px}.footer-mark{display:flex;gap:25px;align-items:flex-start}.footer-mark h2{font:33px/1.15 var(--serif);font-weight:400;margin:4px 0}.footer-label{text-transform:uppercase;letter-spacing:.18em;font-size:9px;color:#94a29c}.site-footer p{font-size:12px}.site-footer a{text-decoration:underline;text-underline-offset:5px;font-size:12px}.footer-bottom{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.14);padding-top:22px;margin-top:40px;opacity:.5}.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}
.booking-page{background:var(--cream)}.booking-hero{background:var(--ink);color:#fff;padding:90px 8vw 100px}.booking-hero h1{font-size:88px;margin-bottom:25px}.booking-hero>p:last-child{color:#aebbb5}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:70px;max-width:1440px;margin:auto;padding:80px 6vw 120px}.booking-main{min-width:0}.booking-step{padding:0 0 70px;margin-bottom:70px;border-bottom:1px solid var(--line)}.step-title{display:flex;gap:25px;margin-bottom:35px}.step-title>span{font:15px var(--serif);color:var(--clay);padding-top:7px}.step-title h2{font:38px var(--serif);font-weight:400;margin:0}.step-title p{margin:3px 0;color:#75807c;font-size:13px}.date-grid{display:grid;grid-template-columns:1fr 1fr .7fr;background:var(--paper);border:1px solid var(--line)}.date-grid label{padding:20px 22px;border-right:1px solid var(--line)}.date-grid label:last-child{border:0}.date-grid input,.date-grid select,.details-grid input{display:block;width:100%;border:0;background:transparent;padding:7px 0 0;outline:none}.booking-rooms{display:grid;gap:14px}.select-room{display:grid;grid-template-columns:180px 1fr;position:relative;background:var(--paper);border:1px solid transparent;cursor:pointer;transition:.2s}.select-room>input{position:absolute;opacity:0}.select-room>img{height:150px;object-fit:cover}.room-info{display:flex;flex-direction:column;padding:20px 24px}.room-info small{text-transform:uppercase;letter-spacing:.14em;font-size:8px;color:#69746e}.room-info strong{font:26px var(--serif);font-weight:400}.room-info em{font-style:normal;font-size:11px;color:#75807c}.room-info b{margin-top:auto;font:19px var(--serif);font-weight:400}.room-info b i{font:10px var(--sans);font-style:normal}.room-check{position:absolute;right:20px;top:20px;width:24px;height:24px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:transparent;font-size:11px}.select-room:has(input:checked){border-color:var(--ink)}.select-room:has(input:checked) .room-check{background:var(--ink);color:#fff}.extra{display:grid;grid-template-columns:130px 1fr auto 28px;gap:22px;align-items:center;background:var(--paper);padding:14px;cursor:pointer}.extra>img{height:90px;object-fit:cover}.extra span{display:flex;flex-direction:column}.extra span strong{font:20px var(--serif);font-weight:400}.extra span small{color:#75807c}.extra>b{font:18px var(--serif);font-weight:400}.extra>b small{font:9px var(--sans)}.extra input{position:absolute;opacity:0}.extra>i{width:24px;height:24px;border:1px solid var(--line);display:grid;place-items:center;font-style:normal}.extra:has(input:checked)>i{background:var(--ink)}.extra:has(input:checked)>i:after{content:'✓';color:#fff;font-size:11px}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.details-grid label{background:var(--paper);border:1px solid var(--line);padding:14px 18px}.details-grid .full{grid-column:1/-1}.booking-summary{position:sticky;top:30px;background:var(--paper);padding:30px;height:max-content;box-shadow:0 15px 50px rgba(22,44,42,.08)}.booking-summary>img{height:190px;object-fit:cover;margin-bottom:20px}.booking-summary h2{font:31px var(--serif);font-weight:400;margin:0 0 25px}.summary-line{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:14px 0;font-size:11px}.summary-line strong{font-weight:500;text-align:right}.summary-price{border-top:1px solid var(--ink);padding:20px 0;display:grid;grid-template-columns:1fr auto}.summary-price strong{font:31px var(--serif);font-weight:400}.summary-price small{grid-column:1/-1;color:#77817e}.booking-summary button,.button-dark{display:flex;width:100%;align-items:center;justify-content:space-between;background:var(--ink);color:#fff;border:0;padding:18px 20px;text-transform:uppercase;letter-spacing:.12em;font-size:10px;cursor:pointer}.booking-summary button:disabled{opacity:.6}.booking-error{color:#9d3c2b;font-size:11px}.summary-perks{display:flex;flex-direction:column;gap:7px;margin-top:22px;font-size:10px;color:#66736e}.result-page{min-height:70vh;text-align:center;padding:130px 20px;max-width:720px;margin:auto}.result-page h1{font:62px var(--serif);font-weight:400}.result-page .button-dark{display:inline-flex;width:auto;margin-top:30px;gap:30px}.result-tick{width:62px;height:62px;border-radius:50%;background:var(--sage);display:grid;place-items:center;margin:auto;font-size:24px}
@media(max-width:900px){.site-header{height:70px}.menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--paper);padding:25px;flex-direction:column;align-items:stretch}.site-header nav.open{display:flex}.hero{height:75vh;min-height:580px;padding:8vw}.availability-bar{height:auto;padding:20px;grid-template-columns:1fr 1fr}.availability-bar label{padding:0 15px}.availability-bar button{grid-column:1/-1;margin:16px 0 0}.intro,.neighbourhood{grid-template-columns:1fr}.section-pad{padding:80px 7vw}.section-heading{display:block}.section-heading>p{margin-top:20px}.breakfast-story{grid-template-columns:1fr;min-height:0}.breakfast-image{height:450px}.site-footer{grid-template-columns:1fr 1fr}.footer-mark{grid-column:1/-1}.booking-layout{grid-template-columns:1fr}.booking-summary{position:static;grid-row:1}.booking-hero h1{font-size:65px}}@media(max-width:600px){.hero h1{font-size:60px}.hero-copy{margin-top:auto;margin-bottom:80px}.hero-note{display:none}.availability-bar{grid-template-columns:1fr}.availability-bar label,.availability-bar label:first-child{border:0;border-bottom:1px solid var(--line)}.room-grid{grid-template-columns:1fr}.room-wide{grid-column:auto}.room-wide>a,.room-card>a{aspect-ratio:1.25}.section-heading h2,.intro h2,.breakfast-copy h2,.neighbourhood h2{font-size:43px}.breakfast-image{height:350px}.site-footer{grid-template-columns:1fr}.footer-mark{grid-column:auto}.footer-bottom{grid-column:auto}.booking-hero{padding:70px 7vw}.booking-hero h1{font-size:54px}.booking-layout{padding:50px 5vw}.date-grid{grid-template-columns:1fr}.date-grid label{border-right:0;border-bottom:1px solid var(--line)}.select-room{grid-template-columns:120px 1fr}.select-room>img{height:170px}.room-info{padding:17px}.room-info strong{font-size:22px}.room-check{right:12px;top:12px}.extra{grid-template-columns:80px 1fr 24px}.extra>img{height:80px}.extra>b{grid-column:2}.details-grid{grid-template-columns:1fr}.details-grid .full{grid-column:auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
