:root{color-scheme:dark;--green:#722B2D;--cream:#f2e9d8;--muted:#cfbdb2;--brass:#c9a56a}*{box-sizing:border-box}body{margin:0;background:var(--green);color:var(--cream);font-family:'Manrope',sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}.page{max-width:1720px;margin:auto;padding:0 5.2vw}header{height:145px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d3b77a30}.wordmark{display:flex;align-items:center;flex-direction:column;color:var(--cream);text-decoration:none;width:max-content}.het{font-size:12px;letter-spacing:.24em;line-height:1.3}.name{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:27px;letter-spacing:.04em;line-height:1.3}.type{font-size:11px;letter-spacing:.38em;margin-top:4px}.location{font-size:12px;letter-spacing:.2em;color:var(--brass)}main{display:grid;grid-template-columns:1.12fr 1fr;gap:5.7vw;padding:48px 0;align-items:stretch}.intro{padding:27px 0 14px;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:12px;letter-spacing:.18em;color:var(--brass);display:flex;align-items:center;gap:13px}.eyebrow span{width:31px;height:1px;background:var(--brass)}h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(49px,5.05vw,84px);font-weight:400;line-height:1.045;letter-spacing:-.025em;margin:31px 0 24px}h1 em{color:#caaa76;font-weight:400}.lead{font-size:16px;line-height:1.85;color:#ead6cc;margin:0}.reservation{margin:33px 0 0}.button{display:flex;justify-content:space-between;gap:44px;align-items:center;min-height:62px;padding:18px 25px;background:var(--brass);border:1px solid var(--brass);color:#722B2D;text-decoration:none;font-size:14px;font-weight:600;transition:background .2s,transform .2s}.button span{font-size:23px;line-height:1}.button:hover{background:#debd88;transform:translateY(-2px)}a:focus-visible{outline:3px solid #fff;outline-offset:5px}.hint{font-size:12px;line-height:1.65;margin:13px 0 0;color:#d3bdb4}.announcement{display:flex;gap:15px;align-items:center;margin-top:44px;padding-top:25px;border-top:1px solid #d3b77a30;width:100%}.asterisk{font-size:29px;color:var(--brass)}.announcement p{margin:0;color:#d7bdb4;font-size:13px;line-height:1.8}.announcement strong{color:#f0dfd2;font-weight:400}.atmosphere{margin:0;position:relative;min-height:595px;overflow:hidden;background:#482021}.atmosphere img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 55%;filter:brightness(.88) saturate(.95)}.image-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,#290d1014 45%,#290d10e8 100%)}figcaption{position:absolute;bottom:37px;left:38px;right:28px}figcaption>span{font-size:11px;letter-spacing:.22em;color:#ddc89f}figcaption p{font-family:'Cormorant Garamond',Georgia,serif;font-size:57px;line-height:1.03;margin:15px 0 26px;font-weight:400}figcaption em{font-weight:400}.caption-bottom{display:block;border-top:1px solid #e0d3ac60;padding-top:20px}footer{display:flex;justify-content:space-between;align-items:center;gap:22px;border-top:1px solid #d3b77a30;padding:24px 0 28px;font-size:12px;color:#d7bdb4}footer>a{color:#dedcca;text-decoration:none}footer>a:hover{text-decoration:underline}footer>a span{padding-left:10px}@media(min-width:1500px){main{gap:80px}.intro{padding-top:48px}.atmosphere{min-height:680px}}@media(max-width:900px){.page{padding:0 6vw}header{height:116px}.location{font-size:10px;max-width:110px;line-height:1.8;text-align:right}main{gap:30px;grid-template-columns:1.1fr 1fr}h1{font-size:49px}.lead{font-size:15px}.desktop{display:none}.atmosphere{min-height:580px}figcaption{left:23px;bottom:28px}figcaption p{font-size:43px}.button{gap:20px;padding:17px 20px}}@media(max-width:650px){.page{padding:0 7vw}header{height:105px}.name{font-size:22px}.het{font-size:10px}.type{font-size:10px}.location{display:none}main{display:flex;flex-direction:column;gap:34px;padding:35px 0 32px}.intro{padding:0}.eyebrow{font-size:11px;letter-spacing:.15em}h1{font-size:clamp(43px,10.8vw,67px);margin:26px 0 22px}.lead{font-size:16px;line-height:1.8}.reservation{width:100%;margin-top:28px}.button{font-size:15px}.hint{font-size:12px}.announcement{margin-top:31px;padding-top:22px}.atmosphere{min-height:370px}figcaption{left:27px;bottom:26px}figcaption p{font-size:48px}.atmosphere img{object-position:center 60%}footer{align-items:flex-start;flex-direction:column;gap:15px;padding:23px 0 28px}}@media(prefers-reduced-motion:reduce){.button{transition:none}}

button{font-family:inherit;cursor:pointer}button:focus-visible{outline:3px solid #fff;outline-offset:4px}.reservation .button{width:100%}dialog{padding:0;width:min(680px,calc(100vw - 28px));max-height:calc(100dvh - 32px);border:1px solid var(--brass);background:var(--cream);color:#482021;box-shadow:0 24px 90px #19050766}dialog::backdrop{background:#210a0cd9}body.booking-open{overflow:hidden}.booking-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 24px;background:#722b2d;color:var(--cream)}.booking-header h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:32px;font-weight:500;line-height:1.1;margin:0}.booking-close{flex-shrink:0;border:1px solid #c9a56a70;background:transparent;color:var(--cream);width:44px;height:44px;font-size:30px;line-height:1}.booking-close:hover{background:#ffffff15}#booking-frame{display:block;width:100%;height:clamp(300px,65dvh,600px);border:0;background:#fff;color-scheme:light}.booking-help{font-size:14px;line-height:1.65;padding:16px 24px;margin:0}.booking-help a{color:#722b2d;text-underline-offset:3px}.booking-help a:focus-visible{outline-color:#722b2d}@media(max-width:650px){.booking-header{padding:14px 16px}.booking-header h2{font-size:28px}.booking-help{padding:14px 16px}}

.booking-help a{overflow-wrap:anywhere}

/* Adapt to viewport height as well as width; retain natural overflow for zoom. */
.page{min-height:100svh;display:flex;flex-direction:column;padding-inline:clamp(20px,4vw,72px)}
header{height:auto;min-height:88px;padding-block:16px;flex-shrink:0}
main{flex:1;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:clamp(24px,4vw,72px);padding-block:clamp(20px,3.2vh,40px)}
.intro{padding:0;justify-content:center;min-width:0}
h1{font-size:clamp(2.8rem,min(4.8vw,8vh),5rem);margin:clamp(18px,3vh,30px) 0 18px;line-height:1.04}
.lead{font-size:1rem;line-height:1.65}
.reservation{margin-top:clamp(18px,3vh,30px)}
.button{min-height:52px;padding:14px 22px;font-size:.9375rem}
.hint{margin-top:9px;font-size:.8125rem}
.announcement{margin-top:clamp(20px,3vh,34px);padding-top:18px;gap:12px}
.announcement p{font-size:.875rem;line-height:1.6}
.atmosphere{min-height:0;align-self:stretch}
figcaption{left:clamp(22px,3vw,38px);bottom:28px}
figcaption p{font-size:clamp(2.4rem,4vw,3.5rem);margin:12px 0 20px}
figcaption>span{font-size:.75rem}.caption-bottom{padding-top:16px}
footer{padding-block:17px;flex-shrink:0;font-size:.8125rem}
.name{font-size:1.6875rem}.het,.type,.location,.eyebrow{font-size:.75rem}
/* A three-row dialog keeps the close button and phone link outside the scrollable form. */
dialog{width:min(680px,calc(100vw - 24px));height:min(720px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);overflow:hidden}
dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.booking-header{padding:12px 20px}.booking-header h2{font-size:clamp(1.5rem,5vw,2rem)}
#booking-frame{height:100%;min-height:0;width:100%}
.booking-help{padding:12px 20px;line-height:1.5;font-size:.875rem}
@media(max-width:700px){
.page{padding-inline:22px}header{min-height:76px;padding-block:12px}
.name{font-size:1.375rem}.type{letter-spacing:.3em}.location{display:none}
main{position:relative;display:grid;grid-template-columns:1fr;padding:24px 0;gap:0;isolation:isolate}
.intro{justify-content:center;padding:0;z-index:1}
.atmosphere{position:absolute;inset:0 -22px;z-index:-1;min-height:0;opacity:.24;pointer-events:none}
.atmosphere img{object-position:center 60%;filter:saturate(.7)}
.image-shade{background:linear-gradient(90deg,#722b2df0,#722b2d70),linear-gradient(0deg,#722b2d,transparent 40%,#722b2d70)}
figcaption{display:none}
.eyebrow{font-size:.75rem;letter-spacing:.12em}
h1{font-size:clamp(2.2rem,min(9.5vw,7.5svh),3.7rem);margin:22px 0 18px}
.lead{line-height:1.6}.desktop{display:none}
.reservation{width:100%;margin-top:22px}.button{min-height:54px}
.announcement{margin-top:24px;padding-top:16px}
footer{flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px 16px;padding-block:14px;font-size:.75rem}
.booking-header{padding:10px 14px}.booking-help{padding:10px 14px}
}
@media(max-height:700px) and (min-width:701px){
header{min-height:74px;padding-block:10px}main{padding-block:18px}
h1{font-size:clamp(2.6rem,6.7vh,3.7rem);margin:16px 0}
.reservation{margin-top:16px}.announcement{margin-top:18px;padding-top:12px}
footer{padding-block:12px}
}
@media(max-height:700px) and (max-width:700px){
header{min-height:70px}main{padding-block:18px}h1{margin-block:16px;font-size:clamp(2rem,8.8vw,2.9rem)}
.reservation{margin-top:18px}.announcement{margin-top:18px;padding-top:12px}
}
