@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--ink:#1c2922;--paper:#f4f6f1;--tint:#e0e8dd;--sage:#63755f;--orange:#c76343;--line:#bdc9bc;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--mono:'DM Mono',monospace}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans)}a{color:inherit;text-decoration:none}.skip-link{position:absolute;top:-3rem;left:1rem;padding:.6rem 1rem;background:#fff}.skip-link:focus{top:1rem}.site-header{position:absolute;z-index:2;display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 5vw;color:#fff}.wordmark{display:block;width:54px}.wordmark img{display:block;width:100%;height:auto}.site-header nav{display:flex;gap:21px;font:10px var(--mono);letter-spacing:.04em;text-transform:uppercase}.site-header nav a:hover{text-decoration:underline;text-underline-offset:5px}.nav-cta,.button{padding:13px 17px;background:var(--ink);color:#fff;font:10px var(--mono);letter-spacing:.06em;text-transform:uppercase}.nav-cta{border:1px solid rgba(255,255,255,.8);background:transparent}.hero{position:relative;min-height:100svh;color:#fff}.hero>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}.hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,32,25,.77),rgba(20,32,25,.1))}.hero-copy{position:relative;display:flex;min-height:100svh;max-width:740px;flex-direction:column;justify-content:center;padding:110px 10vw 50px}.label{margin:0 0 15px;font:10px var(--mono);letter-spacing:.13em;text-transform:uppercase}.hero h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.06em;line-height:.98}.hero h1{margin:0;font-size:clamp(62px,8vw,112px)}.hero h1 em{font-weight:500}.hero-copy>p:not(.label){max-width:420px;margin:28px 0;font-size:17px}.light{background:#fff;color:var(--ink);align-self:flex-start}.intro{display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw;padding:135px 14vw}.intro h2{max-width:700px;margin:0;font-size:clamp(45px,5vw,76px)}.intro div p{max-width:530px;margin:28px 0 0;font-size:18px}.route-grid{display:grid;grid-template-columns:repeat(2,1fr);max-width:1150px;margin:auto;border-top:1px solid var(--line);border-left:1px solid var(--line)}.route-grid a{min-height:285px;padding:27px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .2s}.route-grid a:hover{background:var(--tint)}.route-grid span,.route-grid b{font:10px var(--mono);letter-spacing:.08em}.route-grid h3{margin:67px 0 32px;font-size:clamp(30px,3.4vw,48px)}.placeholder-band{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:center;margin-top:130px;padding:110px 13vw;background:var(--tint)}.placeholder-band h2{margin:0;font-size:clamp(38px,4.5vw,63px)}.wire-placeholder{display:flex;min-height:280px;align-items:center;justify-content:center;border:1px dashed var(--sage);background:rgba(255,255,255,.35);padding:25px;color:var(--sage);font:11px/1.8 var(--mono);letter-spacing:.08em;text-align:center}.wire-placeholder small{font-size:9px}.visit{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(400px,1.2fr);gap:8vw;align-items:center;padding:115px 13vw;background:var(--ink);color:#fff}.visit h2{margin:0;font-size:clamp(40px,5vw,70px)}.visit>p:not(.label){margin:25px 0}.visit .button{display:inline-block;background:var(--orange)}.map-wrap{height:360px;margin:0;border:1px solid rgba(255,255,255,.35)}.map-wrap iframe{display:block;width:100%;height:100%;border:0}footer{display:grid;grid-template-columns:1fr 2fr 1fr;gap:20px;align-items:end;padding:38px 5vw;background:#c9d4c7}footer .wordmark{width:72px}footer p,footer small{font:10px var(--mono);letter-spacing:.06em;text-transform:uppercase}footer small{text-align:right}.page-header{position:relative;color:var(--ink);border-bottom:1px solid var(--line)}.page-header .nav-cta{border-color:var(--ink);background:var(--ink);color:#fff}.subhero{display:grid;grid-template-columns:1fr 1fr;min-height:570px}.subhero-copy{display:flex;flex-direction:column;justify-content:center;padding:95px 13%}.subhero-copy h1{margin:0;font:clamp(50px,5vw,76px)/.98 var(--serif);letter-spacing:-.06em}.subhero-copy p:not(.label){max-width:430px;margin:25px 0;font-size:17px}.page-placeholder{display:flex;align-items:center;justify-content:center;margin:0;background:var(--tint);color:var(--sage);font:11px var(--mono);letter-spacing:.08em;text-align:center}.page-body{max-width:1080px;margin:auto;padding:105px 5vw}.page-body h2{margin:0;font-size:55px}.content-outline{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin-top:60px}.content-outline h3{margin:0 0 13px;font-size:30px}.content-outline p{font-size:15px}.page-cta{padding:80px 10vw;background:var(--tint);text-align:center}.page-cta h2{max-width:620px;margin:0 auto;font-size:54px}.page-cta .button{display:inline-block;margin-top:27px}.contact-form{max-width:760px;margin:35px auto 0;text-align:left}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form label{display:grid;gap:7px;margin-bottom:18px;font:10px var(--mono);letter-spacing:.06em;text-transform:uppercase}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid var(--sage);border-radius:0;background:var(--paper);color:var(--ink);padding:12px;font:15px var(--sans)}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid var(--orange);outline-offset:2px}.form-status{min-height:24px;margin:17px 0 0;color:var(--sage);font-size:14px}.venue-faq{background:var(--ink);color:#fff;padding:120px 10vw}.venue-faq-heading{display:grid;grid-template-columns:.7fr 1.3fr .7fr;gap:4vw;margin:0 auto 75px;max-width:1120px}.venue-faq-heading .section-index{color:#aeb9ac}.venue-faq-heading h2{margin:0;font-size:clamp(44px,5vw,72px)}.venue-faq-heading .eyebrow{color:#c8d3c6}.venue-faq-heading>p:last-child{align-self:end;color:#c8d3c6;font-size:14px;line-height:1.6;margin:0}.venue-faq-grid{border-top:1px solid rgba(255,255,255,.28);display:grid;grid-template-columns:repeat(3,1fr);margin:0 auto;max-width:1120px}.venue-faq-item{min-height:320px;padding:28px 28px 32px 0}.venue-faq-item:not(:first-child){border-left:1px solid rgba(255,255,255,.28);padding-left:28px}.venue-faq-item .card-no{color:#aeb9ac;font:10px var(--mono);letter-spacing:.08em}.venue-faq-item h3{font:clamp(30px,3vw,43px)/1 var(--serif);letter-spacing:-.05em;margin:65px 0 18px}.venue-faq-item h3 em{font-weight:500}.venue-faq-item p{color:#d5ded3;font-size:14px;line-height:1.6;max-width:280px}@media(max-width:980px){.site-header nav{display:none}.nav-cta{display:block}.intro,.placeholder-band{padding-left:8vw;padding-right:8vw}.site-header{padding-left:6vw;padding-right:6vw}}@media(max-width:650px){.venue-faq{padding:80px 8vw}.venue-faq-heading{display:block;margin-bottom:46px}.venue-faq-heading .section-index{margin-bottom:38px}.venue-faq-heading>p:last-child{margin-top:28px}.venue-faq-grid{display:block}.venue-faq-item,.venue-faq-item:not(:first-child){border-bottom:1px solid rgba(255,255,255,.28);border-left:0;min-height:0;padding:28px 0 34px}.venue-faq-item h3{margin:36px 0 15px}.site-header{padding:12px 7vw}.nav-cta{font-size:9px}.hero-copy{padding:100px 8vw 45px}.intro,.placeholder-band,.subhero{display:block}.intro{padding:85px 8vw}.intro div{margin-top:38px}.route-grid{display:block;margin:0 6vw}.route-grid a{display:block;min-height:230px}.placeholder-band{margin-top:85px;padding-top:75px;padding-bottom:75px}.wire-placeholder{min-height:200px;margin-top:40px}.visit{padding:80px 8vw}.visit .map-wrap{margin-top:40px}footer{display:block;padding:34px 8vw}footer p{margin:20px 0}footer small{display:block;text-align:left}.subhero-copy{padding:75px 8vw}.page-placeholder{min-height:280px}.page-body{padding:75px 8vw}.content-outline{display:block;margin-top:40px}.content-outline>div{margin-bottom:36px}.form-grid{grid-template-columns:1fr}.page-cta{padding:65px 8vw}.page-cta h2{font-size:45px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.page-placeholder,.wire-placeholder{position:relative;overflow:hidden}
.subhero--image-left .page-placeholder{grid-column:1;grid-row:1}
.subhero--image-left .subhero-copy{grid-column:2;grid-row:1}
.wire-placeholder{border:0;padding:0}
.page-placeholder img,.wire-placeholder img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}

.hire-choice{padding:95px 10vw;background:var(--paper)}
.hire-choice>h2{max-width:780px;margin:0 0 42px;font-size:clamp(40px,4.5vw,66px)}
.hire-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.hire-choice-grid article{display:flex;flex-direction:column;min-height:310px;padding:27px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.hire-choice-grid span{font:10px var(--mono);letter-spacing:.08em;color:var(--sage)}
.hire-choice-grid h3{margin:55px 0 15px;font-size:clamp(29px,2.7vw,40px)}
.hire-choice-grid p{max-width:340px;margin:0 0 24px;font-size:15px}
.hire-choice-grid a,.practical-details a,.group-use aside a{margin-top:auto;font:11px var(--mono);text-decoration:underline;text-underline-offset:5px}
.practical-details{display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding:80px 13vw;background:var(--tint)}
.practical-details h2{margin:0 0 28px;font-size:clamp(34px,3.5vw,49px)}
.practical-details p{max-width:520px}
.group-use{padding:100px 13vw;background:var(--tint)}
.group-use>h2{max-width:760px;margin:0 0 45px;font-size:clamp(40px,4.5vw,66px)}
.group-use-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:8vw;align-items:start}
.group-use-grid>div p{max-width:680px;font-size:17px}
.group-use .button{display:inline-block;margin-top:20px}
.group-use aside{padding:28px;border:1px solid var(--line)}
.group-use aside h3{margin:0 0 20px;font-size:32px}
.form-intro{max-width:600px;margin:24px auto 0}
.form-intro a{text-decoration:underline;text-underline-offset:4px}
@media(max-width:800px){.hire-choice-grid{grid-template-columns:1fr}.hire-choice-grid article{min-height:0}.hire-choice-grid h3{margin-top:35px}.practical-details,.group-use-grid{grid-template-columns:1fr}}
@media(max-width:650px){.hire-choice,.group-use{padding:75px 8vw}.practical-details{padding:70px 8vw}.group-use-grid{gap:45px}}

.menu-toggle{display:none;border:1px solid currentColor;background:transparent;color:inherit;padding:10px 12px;font:10px var(--mono);letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
.site-header .mobile-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:18px 7vw 24px;background:var(--paper);color:var(--ink);box-shadow:0 12px 24px rgba(28,41,34,.15)}
.site-header .mobile-nav a{padding:9px 0;font-size:12px}
.intro-copy a,.venue-faq-item a{text-decoration:underline;text-underline-offset:4px}
@media(max-width:980px){.menu-toggle{display:flex;align-items:center;gap:7px}.site-header .mobile-nav.is-open{display:flex;flex-direction:column;gap:0}}
@media(max-width:650px){.visit{display:block}.map-wrap{min-width:0}}
footer a[href^="mailto:"]{text-decoration:underline;text-underline-offset:3px}

.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px}
.hero-actions .button{display:inline-block}
.hero-actions .text-link,.content-outline a{text-decoration:underline;text-underline-offset:5px}
.buffet-menu-promo{display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw;padding:90px 13vw;background:var(--tint)}
.buffet-menu-promo h2{max-width:650px;margin:0;font-size:clamp(38px,4.5vw,62px)}
.buffet-menu-promo p:not(.label){max-width:580px;margin:24px 0;font-size:17px}
.buffet-menu-promo .button{display:inline-block}
.buffet-menu-dialog{width:min(920px,calc(100vw - 24px));max-height:92vh;margin:auto;padding:0;border:0;background:var(--paper);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.35)}
.buffet-menu-dialog::backdrop{background:rgba(17,27,21,.78)}
.buffet-menu-dialog-inner{padding:clamp(18px,3vw,36px)}
.buffet-menu-dialog-head{position:sticky;top:0;z-index:1;display:flex;align-items:start;justify-content:space-between;gap:18px;padding:0 0 18px;background:var(--paper);border-bottom:1px solid var(--line)}
.buffet-menu-dialog-head h2{margin:0;font-size:clamp(35px,4vw,54px)}
.buffet-menu-close{flex:none;border:1px solid var(--ink);background:transparent;color:var(--ink);padding:10px 13px;font:11px var(--mono);text-transform:uppercase;cursor:pointer}
.buffet-menu-close span{font-size:16px}
.buffet-menu-note{margin:20px 0;font-size:15px}
.buffet-menu-image{display:block;width:min(100%,720px);height:auto;margin:0 auto;border:1px solid var(--line)}
.buffet-menu-fullsize{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px 24px;margin:22px 0;text-align:center}
.buffet-menu-fullsize .button{display:inline-block}
.buffet-menu-fullsize a:not(.button),.buffet-menu-transcript summary{text-decoration:underline;text-underline-offset:4px}
.buffet-menu-transcript{margin:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0}
.buffet-menu-transcript summary{cursor:pointer;font-weight:600}
.buffet-menu-transcript>div{max-width:700px;padding-top:20px}
.buffet-menu-transcript h3{margin:25px 0 10px;font-size:28px}
.buffet-menu-transcript li{margin:8px 0}
.buffet-menu-enquire{display:inline-block;margin-top:10px}
.buffet-menu-close:focus-visible,.buffet-menu-promo a:focus-visible,.hero-actions a:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
@media(max-width:650px){.buffet-menu-promo{display:block;padding:75px 8vw}.buffet-menu-promo>div{margin-top:35px}.buffet-menu-dialog{max-height:95vh}.buffet-menu-dialog-head{align-items:center}}

.contact-form .honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.contact-form .button{border:0;cursor:pointer}
.form-privacy{margin:18px 0 0;font-size:14px;line-height:1.5}
.form-privacy a,footer small a,.simple-page p a,.legal-page a{text-decoration:underline;text-underline-offset:4px}
.simple-page,.legal-page{max-width:960px;margin:0 auto;padding:clamp(90px,11vw,150px) 8vw}
.simple-page h1,.legal-page h1{margin:0 0 30px;font:clamp(48px,6vw,82px)/1 var(--serif);letter-spacing:-.06em}
.simple-page p:not(.label){max-width:650px;font-size:18px}
.simple-page .button{display:inline-block;margin-top:24px}
.legal-page{max-width:850px}
.legal-page>p:not(.label){max-width:680px}
.legal-page h2{margin:50px 0 16px;font-size:clamp(30px,3vw,40px)}
.legal-page h2+p{margin-top:0}
.legal-page .legal-updated{color:var(--sage);font:11px var(--mono);letter-spacing:.04em;text-transform:uppercase}

/* Hero media: the frame reproduces object-fit:cover so overlays can be pinned to spots in the photo (source image is 1960×1076) */
.hero-media{position:absolute;inset:0;overflow:hidden;container-type:size}
.hero-media::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(20,32,25,.77),rgba(20,32,25,.1))}
.hero-frame{--fw:max(100cqw,100cqh * 1960 / 1076);position:absolute;left:calc((100cqw - var(--fw)) / 2);top:calc((100cqh - var(--fw) * 1076 / 1960) / 2);width:var(--fw);aspect-ratio:1960/1076}
.hero-frame>img{position:absolute;inset:0;display:block;width:100%;height:100%}
.hero-hours{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:16px 8vw 20px;background:rgba(20,32,25,.82);color:#fff;font:11px/1.5 var(--mono);letter-spacing:.02em}
.hero-hours .label{margin:0 0 .7em;font-size:.9em;color:#c8d3c6}
.hero-hours dl{display:grid;grid-template-rows:repeat(4,auto);grid-auto-flow:column;justify-content:start;gap:2px 18px;margin:0}
.hero-hours dl div{display:flex;gap:.6em;white-space:nowrap}
.hero-hours dt{min-width:3em;color:#c8d3c6}
.hero-hours dd{margin:0}
.hero-hours-late{margin:8px 0 0;padding-top:8px;border-top:1px solid rgba(255,255,255,.25);color:#f0a98f;text-transform:uppercase}
/* Narrow screens crop the doorway out of view, so the hours sit as a band along the bottom of the hero */
@media(max-width:999px),(max-aspect-ratio:7/5){.hero-frame{position:static;width:auto;aspect-ratio:auto}.hero-frame>img{object-fit:cover}.hero-copy{padding-bottom:200px}}
/* Wide screens: pin the hours card to the paved path leading to the doorway */
@media(min-width:1000px) and (min-aspect-ratio:7/5){.hero-hours{left:55%;right:auto;bottom:7%;width:31%;padding:1.1em 1.4em 1.2em;font-size:calc(var(--fw) * .0074);background:rgba(20,32,25,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.22)}.hero-hours dl{gap:.15em 2em}}

/* Current page in the navigation */
.site-header nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:6px}
.site-header .mobile-nav a[aria-current="page"]{padding-left:10px;border-left:2px solid var(--orange);text-decoration:none;font-weight:600}

/* Editorial intro sections: index / copy / pull-note */
.section-grid{grid-template-columns:.55fr 1.4fr .55fr;gap:5vw;align-items:start;padding:125px 10vw}
.section-grid .section-index{margin:8px 0 0;font:10px var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--sage)}
.eyebrow.dark{margin:0 0 18px;color:var(--sage);font:italic 19px/1.3 var(--serif);letter-spacing:-.01em}
.lede{line-height:1.65}
.intro-copy .text-link{display:inline-block;margin-top:30px;font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase}
.section-grid .intro-note{align-self:end;padding-left:22px;border-left:2px solid var(--orange)}
.section-grid .intro-note p{margin:0;color:var(--sage);font:italic clamp(24px,2.2vw,32px)/1.15 var(--serif);letter-spacing:-.03em}
@media(max-width:980px){.section-grid{grid-template-columns:.6fr 1.4fr}.section-grid .intro-note{grid-column:2;align-self:start}}
@media(max-width:650px){.section-grid{padding:85px 8vw}.section-grid .intro-note{margin-top:45px}}
/* Keyword H1 is longer than the old tagline: smaller and wider so it sits on three lines */
.hero-copy{max-width:900px}
.hero h1{font-size:clamp(50px,6vw,88px)}

/* Mobile readability: 16px fields stop iOS zooming on focus */
.contact-form input,.contact-form select,.contact-form textarea{font-size:16px}
@media(max-width:650px){
  /* Lift 9–10px mono text to a readable 12px (header buttons 11px so they still fit at 320px) */
  .label,.button,.route-grid span,.route-grid b,footer p,footer small,.contact-form label,.venue-faq-item .card-no,.hire-choice-grid span,.section-grid .section-index,.hire-choice-grid a,.practical-details a,.group-use aside a,.intro-copy .text-link,.legal-page .legal-updated{font-size:12px}
  .nav-cta,.menu-toggle{font-size:11px}
  .hero-hours{font-size:11.5px}
  .hero-hours .label{font-size:11.5px}
  /* Standalone text links get a taller tap area (~40px) */
  .hire-choice-grid a,.practical-details a,.group-use aside a,.intro-copy .text-link{display:inline-block;padding:12px 0;margin-top:auto}
  .intro-copy .text-link{margin-top:18px}
  footer a:not(.wordmark){display:inline-block;padding:10px 0}
  footer p{margin:14px 0}
}
/* Smallest phones (320px): hours in one column, header buttons tightened */
@media(max-width:359px){
  .hero-hours dl{grid-template-rows:none;grid-auto-flow:row}
  .hero-copy{padding-bottom:270px}
  .site-header{gap:8px}
  .nav-cta{padding:12px 10px}
  .menu-toggle{padding:10px 8px}
}


/* Portrait screens: crop toward the doorway and sign (a little of the sign may be cut),
   keep the top of the photo clear and sit the copy lower so it doesn't cover the sign */
@media(max-aspect-ratio:1/1){
  /* Photo stops where the hours band starts, so it is less zoomed and the sign sits above the copy */
  .hero-media{background:var(--ink)}
  .hero-frame>img{top:-7svh;height:calc(100svh - var(--hours-band,150px));object-position:95% 50%}
  .hero-media::after{background:linear-gradient(180deg,rgba(20,32,25,.35) 0,rgba(20,32,25,.05) 18%,rgba(20,32,25,.15) 38%,rgba(20,32,25,.82) 58%,rgba(20,32,25,.9) 100%)}
  .hero-copy{justify-content:flex-end}
}
@media(max-aspect-ratio:1/1) and (max-width:359px){.hero-media{--hours-band:215px}.hero-copy{justify-content:flex-start;padding-top:160px}}
