:root{--gold:#a86c28;--ink:#32272b;--cream:#fefaf3;--paper:#f5eee4;--white:#fff;--line:rgba(50,39,43,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Mulish,sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Libre Baskerville',serif;font-weight:400;line-height:1.12;letter-spacing:-.03em}em{font-weight:400;color:var(--gold)}.site-header{height:92px;padding:0 4vw;display:flex;align-items:center;gap:38px;position:absolute;top:0;left:0;right:0;z-index:10;color:var(--cream);border-bottom:1px solid rgba(255,255,255,.22)}.brand{display:flex;flex-direction:column;line-height:1}.brand-main{font:700 22px/1 Montserrat,sans-serif;letter-spacing:.13em}.brand-sub{font:500 8px/1 Montserrat,sans-serif;letter-spacing:.22em;margin-top:8px}.site-nav{display:flex;gap:30px;margin-left:auto}.site-nav a,.header-cta{font:500 11px/1 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.12em}.site-nav a:hover{color:#d9b178}.header-cta{border:1px solid rgba(255,255,255,.65);padding:15px 19px}.menu-toggle{display:none}.hero{min-height:820px;height:100vh;position:relative;color:var(--cream);display:flex;align-items:center;overflow:hidden}.hero-media{position:absolute;inset:0;background:url('images/hero-bistro.webp') center/cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(29,20,23,.76),rgba(29,20,23,.18) 65%),linear-gradient(0deg,rgba(29,20,23,.42),transparent 48%)}.hero-content{position:relative;z-index:1;width:min(780px,88vw);margin-left:9vw;padding-top:70px}.eyebrow{font:600 10px/1.2 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.25em;color:var(--gold);margin-bottom:24px}.eyebrow.light{color:#e2b67c}.hero h1{font-size:clamp(58px,7.2vw,110px);margin-bottom:26px}.hero h1 em{color:var(--cream)}.hero-copy{font-size:19px;max-width:470px;color:rgba(255,255,255,.82)}.hero-actions{display:flex;align-items:center;gap:35px;margin-top:40px}.button{display:inline-flex;align-items:center;justify-content:center;padding:17px 25px;font:600 10px/1 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.15em;transition:.25s}.button.primary{background:var(--gold);color:#fff}.button.primary:hover{background:#8f581e}.button.outline{border:1px solid var(--ink)}.button.outline:hover{background:var(--ink);color:var(--cream)}.button.cream{background:var(--cream);color:var(--ink)}.text-link{font:600 10px/1 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.13em;border-bottom:1px solid currentColor;padding-bottom:7px}.text-link span{margin-left:8px}.text-link.light{color:var(--cream)}.hero-details{position:absolute;right:4vw;bottom:35px;display:flex;gap:32px;font:500 9px Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.18em}.scroll-hint{position:absolute;left:4vw;bottom:32px;font:500 9px Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.18em;display:flex;align-items:center;gap:12px}.scroll-hint span{width:36px;height:1px;background:currentColor}.section{padding:130px 8vw}.intro{display:grid;grid-template-columns:.55fr 1.5fr .7fr;gap:7vw;align-items:end;min-height:650px}.intro-mark{font:400 300px/1 'Libre Baskerville',serif;color:rgba(168,108,40,.08);align-self:center}.intro-copy h2,.section-heading h2,.contact h2{font-size:clamp(42px,5vw,72px);margin-bottom:28px}.intro-copy>p:last-child{max-width:590px;font-size:18px;color:#675c60}.intro-note{padding-bottom:25px}.intro-note .rule{display:block;width:42px;height:1px;background:var(--gold);margin-bottom:22px}.intro-note p{font-family:'Libre Baskerville',serif;font-style:italic;font-size:16px}.venues{padding-top:50px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:85px}.section-heading>p{max-width:400px;color:#706468}.venue-row{display:grid;grid-template-columns:1.2fr .8fr;min-height:630px;margin-bottom:120px;background:#f8f2e9}.venue-row.reverse{grid-template-columns:.8fr 1.2fr}.venue-row.reverse .venue-image{order:2}.venue-image{position:relative;min-height:580px;background-size:cover;background-position:center}.bistro-img{background-image:url('images/bistro-table.webp')}.bar-img{background-image:url('images/bar-room.webp')}.hall-img{background-image:url('images/mead-room.webp')}.image-number{position:absolute;top:25px;left:28px;color:#fff;font:500 10px Montserrat;letter-spacing:.2em}.venue-content{padding:75px 7vw;align-self:center}.venue-content h3{font-size:clamp(38px,4vw,59px)}.venue-content>p{color:#6c6064}.venue-links{display:flex;align-items:center;gap:28px;margin-top:36px}.quote-band{background:var(--ink);color:var(--cream);min-height:420px;display:grid;place-items:center;text-align:center;padding:70px 20px}.quote-band p{font:400 clamp(42px,6vw,76px)/1.2 'Libre Baskerville',serif;margin:0}.whats-on{background:var(--paper)}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.event-image{aspect-ratio:1.15;background-size:cover;background-position:center;margin-bottom:24px}.event-one{background-image:url('https://images.unsplash.com/photo-1492684223066-81342ee5ff30?auto=format&fit=crop&w=1000&q=80')}.event-two{background-image:url('https://images.unsplash.com/photo-1544025162-d76694265947?auto=format&fit=crop&w=1000&q=80')}.event-three{background-image:url('https://images.unsplash.com/photo-1603105037880-880cd4edfb0d?auto=format&fit=crop&w=1000&q=80')}.event-meta{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:18px;font:600 9px Montserrat;text-transform:uppercase;letter-spacing:.12em;color:var(--gold)}.event-card h3{font-size:27px;margin-bottom:12px}.event-card p{color:#72666a;font-size:14px}.booking{min-height:540px;background:linear-gradient(rgba(50,39,43,.72),rgba(50,39,43,.72)),url('images/bistro-table.webp') center/cover;display:grid;place-items:center;text-align:center;color:var(--cream);padding:80px 20px}.booking h2{font-size:clamp(50px,6vw,80px);margin-bottom:18px}.booking p{margin-bottom:35px}.contact{display:grid;grid-template-columns:1fr 1fr .9fr;gap:7vw;align-items:start}.contact address{font-style:normal;margin:35px 0 25px;color:#6c6064}.hours-group{margin-bottom:34px}.hours-group h4{font:600 11px Montserrat;text-transform:uppercase;letter-spacing:.15em;color:var(--gold)}.hours-group p{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:9px 0;margin:0;font-size:14px}.enquire-card{background:var(--ink);color:var(--cream);padding:55px 45px}.enquire-card h3{font-size:34px}.enquire-card p{color:rgba(255,255,255,.7);margin-bottom:30px}footer{background:#251b1e;color:var(--cream);padding:80px 6vw 35px}.footer-brand{display:flex;flex-direction:column;width:max-content}.footer-links{display:flex;gap:35px;justify-content:flex-end;margin-top:-25px;font:500 10px Montserrat;text-transform:uppercase;letter-spacing:.12em}.footer-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:70px;padding-top:25px;display:flex;justify-content:space-between;color:rgba(255,255,255,.5);font-size:11px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){.site-header{height:76px;padding:0 22px}.site-nav{position:fixed;inset:0;background:var(--ink);padding:120px 35px;display:flex;flex-direction:column;gap:25px;transform:translateX(100%);transition:.35s;z-index:-1}.site-nav.open{transform:none}.site-nav a{font:400 30px 'Libre Baskerville',serif;text-transform:none;letter-spacing:0}.header-cta{display:none}.menu-toggle{display:block;margin-left:auto;background:none;border:0;width:34px;height:30px;position:relative;z-index:2}.menu-toggle span{position:absolute;left:3px;width:27px;height:1px;background:#fff;transition:.3s}.menu-toggle span:first-child{top:10px}.menu-toggle span:last-child{top:19px}.menu-toggle.active span:first-child{transform:rotate(45deg);top:15px}.menu-toggle.active span:last-child{transform:rotate(-45deg);top:15px}.hero{min-height:740px}.hero-content{margin:0 25px;padding-top:20px}.hero h1{font-size:54px}.hero-details{display:none}.scroll-hint{left:25px}.section{padding:90px 24px}.intro{display:block;min-height:auto}.intro-mark{display:none}.intro-note{margin-top:50px;max-width:300px}.section-heading{display:block;margin-bottom:50px}.section-heading>p{margin-top:25px}.venue-row,.venue-row.reverse{display:flex;flex-direction:column;min-height:0;margin-bottom:55px}.venue-row.reverse .venue-image{order:0}.venue-image{min-height:420px}.venue-content{padding:45px 27px 50px}.venue-content h3{font-size:39px}.venue-links{flex-wrap:wrap}.event-grid{grid-template-columns:1fr;gap:55px}.contact{grid-template-columns:1fr;gap:60px}.footer-links{justify-content:flex-start;flex-wrap:wrap;margin-top:45px;gap:20px 28px}.footer-bottom{flex-direction:column;gap:8px}.quote-band{min-height:330px}.hero-actions{align-items:flex-start;flex-direction:column;gap:25px}}
@media(max-width:520px){.hero h1{font-size:46px}.hero-copy{font-size:16px}.intro-copy h2,.section-heading h2,.contact h2{font-size:39px}.venue-image{min-height:330px}.enquire-card{padding:40px 28px}.booking{min-height:460px}.brand-main{font-size:18px}.brand-sub{font-size:7px}.event-card h3{font-size:25px}}

/* Multi-page additions */
.inner-header{position:absolute;background:linear-gradient(rgba(37,27,30,.55),transparent);}.inner-page .site-header{color:var(--cream)}.page-hero{min-height:660px;position:relative;display:flex;align-items:flex-end;color:var(--cream);background-size:cover;background-position:center}.page-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(29,20,23,.8),rgba(29,20,23,.2)),linear-gradient(0deg,rgba(29,20,23,.55),transparent 55%)}.page-hero-content{position:relative;z-index:1;width:min(760px,86vw);margin:0 0 85px 9vw}.page-hero h1{font-size:clamp(58px,7vw,100px);margin-bottom:22px}.page-hero p:not(.eyebrow){max-width:590px;font-size:18px;color:rgba(255,255,255,.82)}.page-hero .button{margin-top:24px}.menus-hero{background-image:url('images/bistro-fish.webp')}.mead-page-hero{background-image:url('images/mead-love.webp')}.booking-page-hero{background-image:url('images/bistro-table.webp')}.afternoon-hero{background-image:url('images/afternoon-tea.webp')}.steak-hero{background-image:url('images/bistro-fish.webp')}.hospitality-hero{background-image:url('images/bistro-table.webp')}.narrow{max-width:980px;margin:auto;text-align:center}.page-intro h2,.menu-heading h2,.feature-copy h2,.hall-details h2,.reservation-copy h2{font-size:clamp(42px,5vw,70px)}.page-intro>p:last-child{font-size:18px;color:#6d6265}.offers{padding-top:40px}.offer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}.offer-card{min-height:400px;padding:48px 38px;background:var(--paper);display:flex;flex-direction:column;border-top:2px solid transparent;transition:.25s}.offer-card:hover{transform:translateY(-5px);border-color:var(--gold)}.offer-card>span{font:500 10px Montserrat;letter-spacing:.18em;color:#9d8e91}.offer-card h3{font-size:34px}.offer-card p:not(.eyebrow){color:#6d6265}.offer-card strong{margin-top:auto;font:600 10px Montserrat;text-transform:uppercase;letter-spacing:.12em}.menu-library{padding-top:30px;background:var(--paper)}.menu-tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:70px}.menu-tab{border:1px solid var(--line);background:transparent;padding:15px 22px;font:600 10px Montserrat;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);cursor:pointer}.menu-tab.active,.menu-tab:hover{background:var(--ink);color:var(--cream)}.menu-panel{display:none;max-width:1120px;margin:auto}.menu-panel.active{display:block}.menu-heading{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:55px}.menu-heading>p{max-width:390px;color:#6d6265}.dish-columns{display:grid;grid-template-columns:1fr 1fr;gap:80px}.dish-columns h3{font-size:28px;border-bottom:1px solid var(--gold);padding-bottom:16px}.dish{display:flex;justify-content:space-between;gap:28px;padding:22px 0;border-bottom:1px solid var(--line)}.dish h4{font:600 15px Montserrat;margin:0 0 5px}.dish p{font-size:14px;color:#766a6e;margin:0}.dish strong{font:600 13px Montserrat;white-space:nowrap}.empty-menu{min-height:250px;border:1px dashed rgba(50,39,43,.3);display:grid;place-items:center;color:#796d70}.slim{min-height:420px}.feature-story{display:grid;grid-template-columns:1.5fr .8fr;gap:8vw;align-items:start}.feature-copy>p{font-size:17px;color:#6d6265}.feature-aside,.enquiry-panel{background:var(--ink);color:var(--cream);padding:55px 45px}.feature-aside h3,.enquiry-panel h3{font-size:34px}.feature-aside>p,.enquiry-panel>p{color:rgba(255,255,255,.7)}.detail-strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:42px 0}.detail-strip div{padding:22px 15px;border-right:1px solid var(--line)}.detail-strip div:last-child{border:0}.detail-strip span{display:block;font:600 9px Montserrat;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);margin-bottom:8px}.detail-strip strong{font-family:'Libre Baskerville',serif;font-weight:400}.occasion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding-top:20px}.occasion-card>div{aspect-ratio:.95;background-size:cover;background-position:center;margin-bottom:30px}.occasion-card.wedding>div{background-image:url('images/mead-cake.webp')}.occasion-card.parties>div{background-image:url('images/mead-room.webp')}.occasion-card.events>div{background-image:url('images/mead-love.webp')}.occasion-card h3{font-size:31px}.occasion-card>p:last-child{color:#6d6265}.hall-details{display:grid;grid-template-columns:1.25fr .75fr;gap:8vw;background:var(--paper)}.hall-details-copy ul{columns:2;padding-left:18px;color:#65595d}.enquiry-panel .button{margin:18px 0 28px}.reservation-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;align-items:start}.booking-notes{border-top:1px solid var(--line);margin:35px 0;padding-top:15px}.booking-notes p{padding:14px 0;border-bottom:1px solid var(--line);color:#6d6265}.resdiary-shell{min-height:590px;background:var(--paper);padding:30px}.widget-placeholder{min-height:530px;border:1px dashed rgba(50,39,43,.32);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:40px}.widget-placeholder>span{font:600 10px Montserrat;text-transform:uppercase;letter-spacing:.2em;color:var(--gold)}.widget-placeholder h3{font-size:36px;margin:20px 0 12px}.widget-placeholder p{max-width:390px;color:#6d6265}.widget-placeholder code{font-size:11px;background:var(--cream);padding:10px 12px}.contact-strip{background:var(--ink);color:var(--cream);padding:65px 8vw;display:flex;align-items:end;justify-content:space-between;gap:40px}.contact-strip h2{font-size:clamp(30px,4vw,52px);margin:0}.contact-strip h2 a{color:#e2b67c}.contact-strip address{font-style:normal;color:rgba(255,255,255,.65)}
@media(max-width:900px){.page-hero{min-height:580px}.page-hero-content{margin:0 24px 55px}.page-hero h1{font-size:52px}.offer-grid,.occasion-grid{grid-template-columns:1fr}.offer-card{min-height:320px}.menu-heading{display:block}.menu-heading>p{margin-top:25px}.dish-columns,.feature-story,.hall-details,.reservation-section{grid-template-columns:1fr;gap:55px}.detail-strip{grid-template-columns:1fr}.detail-strip div{border-right:0;border-bottom:1px solid var(--line)}.detail-strip div:last-child{border-bottom:0}.hall-details-copy ul{columns:1}.contact-strip{align-items:flex-start;flex-direction:column}.occasion-card>div{aspect-ratio:1.4}.resdiary-shell{padding:15px}}
@media(max-width:520px){.page-hero h1{font-size:45px}.page-hero p:not(.eyebrow){font-size:16px}.offer-card{padding:38px 26px}.menu-tabs{justify-content:flex-start}.menu-tab{flex:1 1 45%;padding:14px 8px}.dish{gap:16px}.feature-aside,.enquiry-panel{padding:42px 28px}.occasion-card>div{aspect-ratio:1.05}.contact-strip{padding:50px 24px}.widget-placeholder{padding:25px 15px}}

/* Navigation dropdowns */
.site-nav{align-items:center}
.nav-group{position:relative;display:flex;align-items:center;height:92px}
.nav-parent{display:flex;align-items:center;gap:8px;background:none;border:0;padding:0;color:inherit;cursor:pointer;font:500 11px/1 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.12em}
.nav-parent:hover,.nav-group:hover>.nav-parent,.nav-group:focus-within>.nav-parent{color:#d9b178}
.nav-chevron{width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease}
.nav-dropdown{position:absolute;top:calc(100% - 1px);left:-22px;width:240px;padding:15px;background:var(--cream);color:var(--ink);box-shadow:0 18px 45px rgba(28,18,21,.18);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s ease,transform .2s ease,visibility .2s;display:flex;flex-direction:column;gap:0}
.nav-dropdown::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.site-nav .nav-dropdown a{display:block;padding:12px 13px;border-bottom:1px solid rgba(50,39,43,.09);color:var(--ink);font:500 10px/1.3 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.1em}
.site-nav .nav-dropdown a:last-child{border-bottom:0}
.site-nav .nav-dropdown a:hover{background:var(--paper);color:var(--gold)}
.nav-group:hover>.nav-dropdown,.nav-group:focus-within>.nav-dropdown,.nav-group.dropdown-open>.nav-dropdown{opacity:1;visibility:visible;transform:none}
.nav-group.dropdown-open .nav-chevron{transform:rotate(225deg) translate(-1px,-1px)}

@media(max-width:900px){
  body.menu-open{overflow:hidden}
  .site-nav{align-items:stretch;overflow-y:auto;padding:105px 30px 50px;gap:0}
  .site-nav>a{padding:20px 5px;border-bottom:1px solid rgba(255,255,255,.12)}
  .nav-group{display:block;height:auto;border-bottom:1px solid rgba(255,255,255,.12)}
  .nav-parent{width:100%;justify-content:space-between;padding:20px 5px;color:var(--cream);font:400 30px/1.2 'Libre Baskerville',serif;text-transform:none;letter-spacing:0;text-align:left}
  .nav-parent:hover,.nav-group:hover>.nav-parent,.nav-group:focus-within>.nav-parent{color:var(--cream)}
  .nav-chevron{width:10px;height:10px;margin-right:5px}
  .nav-dropdown{position:static;width:auto;padding:0 0 15px;background:transparent;color:var(--cream);box-shadow:none;opacity:1;visibility:visible;transform:none;display:none;transition:none}
  .nav-group.dropdown-open>.nav-dropdown{display:flex}
  .site-nav .nav-dropdown a{padding:12px 5px 12px 20px;border:0;color:rgba(254,250,243,.72);font:500 11px/1.35 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.12em}
  .site-nav .nav-dropdown a:hover{background:transparent;color:#d9b178}
}


/* Homepage events and Sundays */
.event-grid-single{grid-template-columns:minmax(0,1fr);max-width:720px}
.events-empty{border:1px solid var(--line);padding:70px;max-width:760px;background:var(--cream)}
.events-empty h3{font-size:clamp(32px,4vw,52px);margin-bottom:18px}
.events-empty>p:last-child{max-width:560px;color:#706468;margin-bottom:0}
.sundays{display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;align-items:center}
.sundays-image{min-height:620px;background:url('images/sunday-roast.webp') center/cover}
.sundays-copy h2{font-size:clamp(42px,5vw,72px)}
.sundays-copy>p:not(.eyebrow){max-width:560px;color:#6c6064;font-size:18px}
@media(max-width:900px){.sundays{grid-template-columns:1fr;gap:48px}.sundays-image{min-height:440px}.event-grid-single{max-width:none}.events-empty{padding:48px 28px}}
@media(max-width:520px){.sundays-image{min-height:340px}}

@media(min-width:901px){
  .whats-on{padding-top:90px;padding-bottom:90px}
  .whats-on .section-heading{margin-bottom:55px}
  .event-grid-single{max-width:660px}
  .event-grid-single .event-image{aspect-ratio:1.65;margin-bottom:20px}
}


/* Multiple homepage events preview */
@media(min-width:901px){
  .whats-on .event-grid{gap:24px}
  .whats-on .event-image{aspect-ratio:1.5;margin-bottom:18px}
  .whats-on .event-card h3{font-size:24px}
  .whats-on .event-card p{margin-bottom:18px}
}


/* Brand assets */
.brand-logo{display:block;flex:0 0 auto;line-height:0}.brand-logo img{display:block;width:184px;height:auto}.footer-brand{position:relative;display:flex;align-items:center;min-height:90px}.footer-wordmark{display:block;width:245px;height:auto}.footer-flamingo{position:absolute;width:92px;height:auto;left:270px;top:-18px;opacity:.16;filter:sepia(1) saturate(.75)}.intro-flamingo{display:flex;align-items:center;justify-content:center}.intro-flamingo img{display:block;width:min(260px,100%);height:auto;opacity:.12;filter:sepia(1) saturate(.8)}.mead-hall-hero-logo{display:block;width:min(620px,82vw);height:auto;margin:0 0 30px}.mead-hero-content>.eyebrow{margin-top:0}.mead-hall-mark{display:block;width:92px;height:auto;margin:0 0 26px;opacity:.92}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:1100px){.brand-logo img{width:158px}.site-header{gap:25px}.site-nav{gap:22px}}
@media(max-width:900px){.brand-logo img{width:148px}.footer-wordmark{width:210px}.footer-flamingo{left:225px;width:76px}.mead-hall-hero-logo{width:min(500px,88vw)}.mead-hall-mark{width:76px}}
@media(max-width:520px){.brand-logo img{width:136px}.footer-brand{min-height:75px}.footer-wordmark{width:185px}.footer-flamingo{left:194px;width:62px;top:-8px}.mead-hall-hero-logo{width:88vw;margin-bottom:24px}}


/* V11 mobile navigation and footer refinements */
.mobile-menu-cta{display:none}
.footer-flamingo{opacity:1;filter:none}

@media(max-width:900px){
  .site-nav .mobile-menu-cta{
    display:flex;
    align-items:center;
    justify-content:center;
    margin-top:28px;
    padding:17px 22px;
    border:0;
    background:var(--gold);
    color:#fff;
    font:600 11px/1 Montserrat,sans-serif;
    text-transform:uppercase;
    letter-spacing:.15em;
  }
  .site-nav .mobile-menu-cta:hover{background:#8f581e;color:#fff}

  .intro-flamingo{
    width:86px;
    height:86px;
    margin:0 0 24px;
    justify-content:flex-start;
  }
  .intro-flamingo img{width:76px;max-height:82px;object-fit:contain;opacity:.16}

  footer{
    padding:62px 24px 28px;
    text-align:center;
  }
  .footer-brand{
    width:100%;
    min-height:auto;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:22px;
  }
  .footer-wordmark{width:min(220px,72vw)}
  .footer-flamingo{
    position:static;
    width:72px;
    height:auto;
    opacity:1;
    filter:none;
  }
  .footer-links{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    max-width:340px;
    margin:42px auto 0;
    gap:0;
    border-top:1px solid rgba(255,255,255,.13);
    border-bottom:1px solid rgba(255,255,255,.13);
  }
  .footer-links a{
    padding:15px 8px;
    border-bottom:1px solid rgba(255,255,255,.1);
  }
  .footer-links a:nth-child(odd){border-right:1px solid rgba(255,255,255,.1)}
  .footer-links a:last-child{grid-column:1/-1;border-bottom:0;border-right:0}
  .footer-bottom{
    align-items:center;
    margin-top:34px;
    padding-top:0;
    border-top:0;
    gap:10px;
    line-height:1.5;
  }
}

@media(max-width:520px){
  .intro-flamingo{width:72px;height:72px;margin-bottom:20px}
  .intro-flamingo img{width:64px;max-height:68px}
  .footer-wordmark{width:min(195px,72vw)}
  .footer-flamingo{width:62px}
}


/* V12 menus, forms, contact page and mobile footer */
.menu-document{display:block;max-width:1500px;margin:0 auto;background:#fff;box-shadow:0 22px 65px rgba(50,39,43,.14);line-height:0;overflow:hidden}.menu-document img{display:block;width:100%;height:auto}.menu-document-note{max-width:860px;margin:28px auto 0;text-align:center;color:#75686c;font-size:14px}.venue-enquiry-form{margin-top:34px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label{display:flex;flex-direction:column;gap:9px}.form-grid label>span{font:600 9px/1 Montserrat,sans-serif;letter-spacing:.14em;text-transform:uppercase}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid rgba(50,39,43,.22);background:var(--cream);color:var(--ink);padding:15px 16px;font:400 15px/1.4 Mulish,sans-serif;border-radius:0}.enquiry-panel .form-grid input,.enquiry-panel .form-grid select,.enquiry-panel .form-grid textarea{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.2);color:var(--cream)}.enquiry-panel select option{color:var(--ink)}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:2px solid var(--gold);outline-offset:1px}.form-full{grid-column:1/-1}.form-note{font-size:12px!important;opacity:.7;margin:18px 0 0!important}.contact-page-hero{background-image:url('images/bistro-table.webp')}.contact-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;align-items:start}.contact-copy h2{font-size:clamp(42px,5vw,72px)}.contact-copy>p:not(.eyebrow){max-width:620px;color:#6b5f63;font-size:17px}.contact-form{margin-top:40px}.location-card{background:var(--ink);color:var(--cream);padding:55px 46px;position:sticky;top:125px}.location-card>img{display:block;width:92px;height:auto;margin-bottom:28px}.location-card h3{font-size:38px}.location-card address{font-style:normal;font-size:17px;line-height:1.8;color:rgba(255,255,255,.72);margin:0 0 30px}.location-card .button{color:var(--cream);border-color:rgba(255,255,255,.35)}.location-details{margin-top:36px;border-top:1px solid rgba(255,255,255,.15)}.location-details>div{padding:18px 0;border-bottom:1px solid rgba(255,255,255,.15)}.location-details span{display:block;font:600 9px Montserrat;text-transform:uppercase;letter-spacing:.14em;color:#d6a86c;margin-bottom:7px}.location-details a{color:var(--cream)}
@media(max-width:900px){.contact-layout{grid-template-columns:1fr;gap:55px}.location-card{position:static}.form-grid{grid-template-columns:1fr}.form-full{grid-column:auto}.menu-document{overflow-x:auto}.menu-document img{min-width:920px}.menu-document-note{text-align:left}.venue-enquiry-form .button,.contact-form .button{width:100%}footer{text-align:left;display:grid;grid-template-columns:minmax(0,1fr) minmax(135px,.65fr);column-gap:28px;align-items:start}.footer-brand{width:auto;align-items:flex-start;justify-content:flex-start;gap:18px}.footer-wordmark{width:min(210px,100%)}.footer-flamingo{width:68px}.footer-links{display:flex;flex-direction:column;width:auto;max-width:none;margin:0;border:0;align-items:flex-start}.footer-links a{width:100%;padding:10px 0;border:0!important;text-align:left}.footer-bottom{grid-column:1/-1;align-items:flex-start;text-align:left;margin-top:38px;padding-top:24px;border-top:1px solid rgba(255,255,255,.13)}}
@media(max-width:520px){footer{grid-template-columns:minmax(0,1fr) 120px;column-gap:20px;padding-left:22px;padding-right:22px}.footer-wordmark{width:170px}.footer-flamingo{width:58px}.location-card{padding:42px 28px}.menu-library{padding-left:18px;padding-right:18px}}

/* Text-based main menu */
.dietary-key{display:flex;gap:22px;flex-wrap:wrap;margin:-25px 0 45px;padding:18px 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:600 10px Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.1em}.dietary-key b{display:inline-grid;place-items:center;min-width:28px;height:28px;margin-right:7px;border:1px solid var(--gold);color:var(--gold);font-size:9px}.full-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px}.menu-category{background:var(--cream);padding:34px 34px 20px;border-top:2px solid var(--gold)}.menu-category-wide{grid-column:1/-1}.menu-category h3{text-align:center;font-size:30px;color:var(--gold);margin-bottom:12px}.category-note{text-align:center;color:#8a642f;font-family:'Libre Baskerville',serif;font-style:italic;font-size:13px;margin:0 auto 20px;max-width:680px}.menu-category .dish{padding:16px 0}.menu-category .dish h4{font-size:14px;line-height:1.45}.menu-category .dish p{line-height:1.45}.menu-category .dish em{font-family:Mulish,sans-serif;font-size:12px}.diet-tag{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:19px;padding:0 5px;margin-left:3px;border:1px solid rgba(168,108,40,.45);color:var(--gold);font:600 8px Montserrat,sans-serif;letter-spacing:.05em;vertical-align:2px}.tapas-grid,.sides-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:50px}.menu-extra{margin:24px 0 5px;padding:18px;border:1px solid rgba(168,108,40,.45);text-align:center}.menu-extra strong{font:600 12px Montserrat,sans-serif}.menu-extra p{margin:7px 0 0;color:#766a6e;font-size:12px;line-height:1.45}.dish.compact{padding:13px 0}.dish.compact h4{margin-bottom:0}.menu-allergen-note{max-width:920px;margin:42px auto 0;text-align:center;color:#766a6e;font-size:13px;font-style:italic}
@media(max-width:900px){.full-menu-grid{grid-template-columns:1fr}.menu-category-wide{grid-column:auto}.tapas-grid,.sides-grid{grid-template-columns:1fr}.menu-category{padding:30px 26px 16px}.dietary-key{margin-top:-15px}}
@media(max-width:520px){.menu-category{padding:27px 20px 12px}.menu-category h3{font-size:25px}.menu-category .dish{gap:14px}.menu-category .dish h4{font-size:13px}.menu-category .dish p{font-size:13px}.dietary-key{gap:10px;padding:15px 12px}.dietary-key span{flex:1 1 30%;font-size:8px}.dietary-key b{display:flex;margin:0 0 6px}}


/* Editorial text menu - styled to match supplied reference */
.editorial-menu{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:76px 64px}
.editorial-menu-section{min-width:0}
.editorial-menu-section h3{font:400 clamp(32px,3vw,43px)/1.15 'Libre Baskerville',serif;color:var(--ink);margin:0 0 38px;padding:0 0 20px;border-bottom:1px solid var(--gold);text-align:left}
.editorial-section-note{margin:-22px 0 22px;color:#776a6e;font-size:14px;line-height:1.6}
.editorial-dish{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding:20px 0 28px;border-bottom:1px solid var(--line)}
.editorial-dish>div{min-width:0}
.editorial-dish h4{font:600 16px/1.45 Montserrat,sans-serif;margin:0 0 7px;color:var(--ink)}
.editorial-dish p{font:400 16px/1.55 Mulish,sans-serif;margin:0;color:#786b70}
.editorial-dish>strong{flex:0 0 auto;font:600 15px/1.45 Montserrat,sans-serif;color:var(--ink);white-space:nowrap}
.editorial-menu-extra{margin-top:24px;padding:24px 26px;border:1px solid rgba(168,108,40,.48)}
.editorial-menu-extra h4{font:600 15px/1.4 Montserrat,sans-serif;margin:0 0 10px}
.editorial-menu-extra p{font-size:14px;line-height:1.55;color:#766a6e;margin:6px 0}
@media(max-width:900px){.editorial-menu{grid-template-columns:1fr;gap:64px}.editorial-menu-section h3{margin-bottom:28px}.editorial-dish{padding:18px 0 24px}}
@media(max-width:520px){.editorial-menu{gap:52px}.editorial-menu-section h3{font-size:31px;padding-bottom:16px}.editorial-dish{gap:18px}.editorial-dish h4{font-size:14px}.editorial-dish p{font-size:14px}.editorial-dish>strong{font-size:14px}.editorial-section-note{font-size:13px}}

/* Additional Bistro offer pages */
.lunch-hero{background-image:url('images/bistro-fish.webp')}
.market-menu-hero{background-image:url('images/hero-bistro.webp')}
@media(min-width:1100px){.offers .offer-grid{grid-template-columns:repeat(6,1fr)}.offers .offer-card{grid-column:span 2}.offers .offer-card:nth-child(4){grid-column:2/span 2}.offers .offer-card:nth-child(5){grid-column:4/span 2}}


/* V17 corrected footer branding */
.footer-brand{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  width:max-content;
  min-height:0;
  gap:12px;
}
.footer-flamingo{
  position:static;
  order:-1;
  display:block;
  width:76px;
  height:auto;
  opacity:1;
  filter:none;
}
.footer-wordmark{
  display:block;
  width:245px;
  height:auto;
}
@media(max-width:900px){
  .footer-brand{
    width:min(210px,100%);
    align-items:center;
    justify-self:start;
    gap:10px;
  }
  .footer-flamingo{width:64px}
  .footer-wordmark{width:min(210px,100%)}
}
@media(max-width:520px){
  .footer-brand{
    width:170px;
    align-items:center;
    justify-self:start;
    gap:9px;
  }
  .footer-flamingo{width:56px}
  .footer-wordmark{width:170px}
}

/* Local venue photography — optimised WebP assets */
.hero-media{background-position:center 48%}
.bistro-img{background-position:center 50%}
.bar-img{background-position:center 58%}
.hall-img{background-position:center 52%}
.mead-page-hero{background-position:center 46%}
.afternoon-hero{background-position:center 48%}
.sundays-image{background-position:center 50%}
.booking{background-position:center 48%}
.menus-hero{background-position:center 48%}
.steak-hero{background-position:center 45%}
.hospitality-hero{background-position:center 50%}
.lunch-hero{background-position:center 55%}
.market-menu-hero{background-position:center 50%}
.contact-page-hero{background-position:center 50%}
@media(max-width:700px){
 .hero-media{background-position:58% center}
 .bistro-img{background-position:55% center}
 .bar-img{background-position:58% center}
 .hall-img{background-position:54% center}
 .mead-page-hero{background-position:58% center}
 .afternoon-hero{background-position:52% center}
 .sundays-image{background-position:48% center}
}

/* Venue photography strip */
.venue-gallery{display:grid;grid-template-columns:1.05fr .8fr .8fr 1.05fr;min-height:420px;background:var(--ink)}
.venue-gallery-item{min-height:420px;background-size:cover;background-position:center}
.gallery-bistro-detail{background-image:url('images/bistro-flowers.webp');background-position:center 45%}
.gallery-bar-cocktail{background-image:url('images/bar-gin.webp');background-position:center 52%}
.gallery-bar-stairs{background-image:url('images/bar-stairs.webp');background-position:center 50%}
.gallery-bar-martini{background-image:url('images/bar-martini.webp');background-position:center 45%}
@media(max-width:900px){.venue-gallery{grid-template-columns:1fr 1fr}.venue-gallery-item{min-height:360px}}
@media(max-width:520px){.venue-gallery{grid-template-columns:1fr 1fr}.venue-gallery-item{min-height:260px}.gallery-bar-stairs{background-position:center 44%}}


/* Parkside Bar page */
.bar-page-hero{background-image:url('images/bar-room.webp');background-position:center 58%}
.bar-offer small{display:block;color:rgba(255,255,255,.55);font-size:12px;line-height:1.55;margin-top:22px}
.bar-late{display:grid;grid-template-columns:1.05fr .95fr;gap:8vw;align-items:center}
.bar-late-image{min-height:620px;background:url('images/bar-martini.webp') center 44%/cover}
.bar-late-copy h2{font-size:clamp(42px,5vw,72px)}
.bar-late-copy>p:not(.eyebrow){max-width:560px;color:#6c6064;font-size:18px}
.bar-pizza-feature{display:grid;grid-template-columns:1.15fr .85fr;background:var(--ink);color:var(--cream)}
.bar-pizza-feature-image{min-height:650px;background:url('images/bar-pizzas.webp') center/cover}
.bar-pizza-feature-copy{padding:9vw 8vw;align-self:center}
.bar-pizza-feature-copy h2{font-size:clamp(42px,5vw,70px);color:var(--cream)}
.bar-pizza-feature-copy p:not(.eyebrow){color:rgba(255,255,255,.68);font-size:18px;max-width:520px}
.bar-menu-section{background:var(--paper)}
.bar-editorial-menu .menu-category-wide{grid-column:1/-1}
.bar-gallery{display:grid;grid-template-columns:1fr 1fr 1fr;min-height:480px}
.bar-gallery-item{min-height:480px;background-size:cover;background-position:center}
.bar-gallery-pizza{background-image:url('images/bar-pizza-close.webp')}
.bar-gallery-cocktail{background-image:url('images/bar-gin.webp');background-position:center 48%}
.bar-gallery-room{background-image:url('images/bar-stairs.webp')}
.sunday-detail-image{width:min(420px,100%);aspect-ratio:1.6;margin-top:34px;background:url('images/sunday-trimmings.webp') center/cover}
@media(max-width:900px){.bar-late,.bar-pizza-feature{grid-template-columns:1fr}.bar-late{gap:48px}.bar-late-image,.bar-pizza-feature-image{min-height:460px}.bar-pizza-feature-copy{padding:75px 8vw}.bar-gallery{grid-template-columns:1fr 1fr}.bar-gallery-item{min-height:360px}.bar-gallery-item:last-child{grid-column:1/-1}.bar-editorial-menu .menu-category-wide{grid-column:auto}}
@media(max-width:520px){.bar-page-hero{background-position:58% center}.bar-late-image,.bar-pizza-feature-image{min-height:340px}.bar-gallery{grid-template-columns:1fr}.bar-gallery-item,.bar-gallery-item:last-child{min-height:300px;grid-column:auto}.sunday-detail-image{aspect-ratio:1.35}}

/* V21 footer navigation and header CTA refinements */
@media(min-width:901px){
  .header-cta{transition:background-color .22s ease,border-color .22s ease,color .22s ease}
  .header-cta:hover,.header-cta:focus-visible{background:var(--gold);border-color:var(--gold);color:#fff}
}
.footer-links>.nav-group{display:none}


/* V23 Steak Night and Lunch menus */
.steak-hero{background-image:url('images/steak-night.webp');background-position:center 52%}
.steak-menu-section{background:var(--paper)}
.choice-block{padding:22px 0 26px;border-bottom:1px solid var(--line)}
.choice-block span{display:block;font:600 15px/1.4 Montserrat,sans-serif;margin-bottom:8px;color:var(--ink)}
.choice-block p{margin:0;color:#786b70;font-size:15px;line-height:1.65}
.choice-block b{color:var(--gold);font-weight:600}
.lunch-key{max-width:1120px;margin:55px auto 0}
@media(max-width:700px){.steak-hero{background-position:58% center}.lunch-key{margin-top:40px}}

.menu-panel>.text-link{display:inline-flex;margin-top:34px}

/* Sunday menu additions */
.sunday-price-strip{margin:0 0 54px}
.sunday-roast-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:26px;padding-top:24px;border-top:1px solid var(--line)}
.sunday-roast-choice h4{font:600 16px Montserrat,sans-serif;margin:0}
@media(max-width:700px){.sunday-roast-grid{grid-template-columns:1fr;gap:0}.sunday-roast-choice{padding:18px 0;border-bottom:1px solid var(--line)}.sunday-roast-choice:last-child{border-bottom:0}}


/* Dedicated What's On page */
.whats-on-page-hero{background-image:url('images/mead-love.webp');background-position:center 46%}
.whats-on-intro{display:grid;grid-template-columns:1.25fr .75fr;gap:8vw;align-items:start}
.whats-on-intro-copy h2{font-size:clamp(42px,5vw,72px)}
.whats-on-intro-copy>p:last-child{max-width:650px;color:#6b5f63;font-size:18px}
.whats-on-note{background:var(--ink);color:var(--cream);padding:52px 44px}
.whats-on-note h3{font-size:34px}
.whats-on-note>p:last-child{color:rgba(255,255,255,.7);margin-bottom:0}
.ticket-section{background:var(--paper);padding-top:95px}
.ticket-widget-shell{max-width:1120px;margin:0 auto;background:var(--cream);padding:34px;min-height:320px;box-shadow:0 18px 50px rgba(50,39,43,.08)}
.ticket-widget-shell .tt-widget{min-height:250px}
.tt-widget-fallback{text-align:center;padding:55px 20px}
.tt-widget-fallback>a,.tt-widget-fallback p>a:first-child{display:inline-block;background:var(--gold);color:#fff;padding:16px 24px;font:600 10px/1 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.14em}
.tt-widget-powered{font-size:11px;color:#75686c}
.whats-on-heading-copy{max-width:420px}
.whats-on-heading-copy p{color:#706468}
.whats-on-heading-copy .text-link{display:inline-block;margin-top:12px}
@media(max-width:900px){.whats-on-intro{grid-template-columns:1fr;gap:50px}.ticket-widget-shell{padding:18px}.whats-on-heading-copy{max-width:none}}
@media(max-width:520px){.whats-on-page-hero{background-position:56% center}.whats-on-note{padding:40px 28px}.ticket-section{padding-top:70px}.ticket-widget-shell{padding:10px}}


/* V27 Midweek popup, Hospitality Wednesdays and Trust Revaro footer credit */
.trust-revaro-credit{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:var(--cream);
  opacity:.82;
  transition:opacity .2s ease;
  white-space:nowrap;
}
.trust-revaro-credit:hover,.trust-revaro-credit:focus-visible{opacity:1}
.trust-revaro-credit>span:first-child{
  font:500 10px/1 Montserrat,sans-serif;
  text-transform:none;
  letter-spacing:0;
  color:var(--cream);
}
.trust-revaro-logo{
  display:block;
  width:112px;
  height:auto;
  object-fit:contain;
  flex:0 0 auto;
}

.midweek-popup-overlay{
  position:fixed;
  inset:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(26,18,21,.58);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  opacity:0;
  visibility:hidden;
  transition:opacity .28s ease,visibility .28s ease;
}
.midweek-popup-overlay.is-open{opacity:1;visibility:visible}
.midweek-popup{
  position:relative;
  width:min(610px,100%);
  background:var(--cream);
  color:var(--ink);
  box-shadow:0 28px 80px rgba(26,18,21,.28);
  padding:62px 58px 54px;
  transform:translateY(18px) scale(.985);
  transition:transform .28s ease;
  overflow:hidden;
}
.midweek-popup-overlay.is-open .midweek-popup{transform:none}
.midweek-popup::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:5px;
  background:var(--gold);
}
.midweek-popup-kicker{
  margin:0 0 20px;
  font:600 10px/1.2 Montserrat,sans-serif;
  text-transform:uppercase;
  letter-spacing:.25em;
  color:var(--gold);
}
.midweek-popup h2{
  margin:0 0 18px;
  font-size:clamp(38px,5vw,58px);
}
.midweek-popup h2 em{display:block}
.midweek-popup-price{
  margin:0 0 18px;
  font:500 18px/1.55 'Libre Baskerville',serif;
}
.midweek-popup-copy{max-width:475px;color:#6c6064;margin-bottom:30px}
.midweek-popup-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.midweek-popup-close{
  position:absolute;
  top:18px;
  right:18px;
  width:42px;
  height:42px;
  border:0;
  background:transparent;
  color:var(--ink);
  cursor:pointer;
  font:300 28px/1 Arial,sans-serif;
  display:grid;
  place-items:center;
}
.midweek-popup-close:hover{color:var(--gold)}
body.popup-open{overflow:hidden}
@media(max-width:700px){
  .midweek-popup-overlay{align-items:flex-end;padding:16px}
  .midweek-popup{padding:52px 28px 34px}
  .midweek-popup h2{font-size:40px}
  .midweek-popup-price{font-size:16px}
  .midweek-popup-actions{align-items:stretch;flex-direction:column;gap:18px}
  .midweek-popup-actions .button{width:100%}
  .trust-revaro-credit{margin-top:4px}
  .trust-revaro-logo{width:104px;height:17px}
}
@media(prefers-reduced-motion:reduce){
  .midweek-popup-overlay,.midweek-popup{transition:none}
}

/* V33 — native scrolling restored.
   Keep browser scrolling untouched so the normal scrollbar, Windows middle-mouse
   autoscroll, trackpads and touch gestures all work as expected. */
html{overflow-y:scroll;scrollbar-gutter:stable;scroll-behavior:smooth}
body{overflow-x:hidden;overflow-y:visible}
html.overlay-scroll-lock{overflow:hidden!important}

/* A restrained visible scrollbar that fits the site palette. Browsers/OSes that
   use overlay or auto-hidden scrollbars are still free to use their native UI. */
html{scrollbar-width:auto;scrollbar-color:rgba(50,39,43,.48) var(--cream)}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--cream)}
::-webkit-scrollbar-thumb{background:rgba(50,39,43,.48);border:3px solid var(--cream);border-radius:999px}
::-webkit-scrollbar-thumb:hover{background:var(--gold)}

/* Keep reveals restrained: enough movement to add polish without making the site feel floaty. */
.reveal{
  opacity:0;
  transform:translate3d(0,18px,0);
  transition:
    opacity .72s cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0ms),
    transform .72s cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0ms);
}
.reveal.visible{opacity:1;transform:translate3d(0,0,0)}

/* Above-the-fold details fade in without transforming the header itself.
   Keeping transforms off .site-header is important because the mobile navigation is
   position:fixed inside it; a transformed ancestor would otherwise trap the overlay
   inside the header's containing block. */
.site-header{animation:header-fade .52s ease both}
@keyframes header-fade{from{opacity:0}to{opacity:1}}

/* Keep the mobile menu pinned to the viewport. */
@media(max-width:900px){
  .site-nav{
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    left:0;
    width:100vw;
    height:100dvh;
    min-height:100vh;
    max-height:100dvh;
    overscroll-behavior:contain;
  }
  .site-nav.open{transform:translate3d(0,0,0)}
  body.menu-open{overflow:hidden!important}
}

/* Micro-interactions: small enough that buttons still feel stable under the pointer. */
.button,.header-cta{transition:background-color .22s ease,border-color .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease}
@media(hover:hover) and (pointer:fine){
  .button:hover,.button.is-hovered,.header-cta:hover,.header-cta.is-hovered{transform:translateY(-1px)}
  .button.primary:hover{box-shadow:0 8px 20px rgba(50,39,43,.12)}
  .text-link span{display:inline-block;transition:transform .22s ease}
  .text-link:hover span{transform:translate(3px,-1px)}
  .offer-card,.occasion-card,.event-card{transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease}
  .occasion-card:hover,.event-card:hover{transform:translateY(-3px)}
  .venue-image,.bar-gallery-item,.venue-gallery-item{transition:filter .45s ease}
  .venue-row:hover .venue-image,.bar-gallery-item:hover,.venue-gallery-item:hover{filter:saturate(1.035) contrast(1.015)}
}

/* The hero scroll cue gets one calm motion rather than a continuous bouncing arrow. */
.scroll-hint span{transform-origin:left center;animation:scroll-cue 2.8s ease-in-out 1.1s 2}
@keyframes scroll-cue{0%,100%{transform:scaleX(1);opacity:1}50%{transform:scaleX(.72);opacity:.58}}

/* Popups and menus should not fight with page motion. */
.midweek-popup,.site-nav,.nav-dropdown{will-change:transform,opacity}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0ms!important}
  .reveal{opacity:1!important;transform:none!important}
}

/* V31 — final accessibility and launch polish */
html{scroll-padding-top:108px}
.skip-link{
  position:fixed;top:10px;left:10px;z-index:2000;
  padding:11px 15px;background:var(--cream);color:var(--ink);
  font:600 10px/1 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.12em;
  transform:translateY(-160%);transition:transform .18s ease;
  box-shadow:0 8px 24px rgba(37,27,30,.16)
}
.skip-link:focus{transform:none}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.site-nav a[aria-current="page"],.nav-group.current-section>.nav-parent{color:#d9b178}
.footer-links a[aria-current="page"]{color:#e2b67c}
.menu-tab:focus-visible{outline-offset:2px}

.not-found-page{
  min-height:100vh;display:flex;align-items:center;
  padding:160px 9vw 90px;color:var(--cream);
  background:linear-gradient(90deg,rgba(29,20,23,.84),rgba(29,20,23,.48)),url('images/hero-bistro.webp') center/cover
}
.not-found-inner{max-width:780px}
.not-found-page h1{font-size:clamp(56px,7vw,100px);margin-bottom:25px}
.not-found-page h1 em{color:#e2b67c}
.not-found-page .not-found-inner>p:not(.eyebrow){max-width:570px;font-size:18px;color:rgba(255,255,255,.82)}

@media(max-width:900px){
  html{scroll-padding-top:92px}
  .not-found-page{padding:140px 24px 70px}
  .not-found-page h1{font-size:52px}
}
@media(max-width:520px){
  .not-found-page h1{font-size:44px}
  .not-found-page .hero-actions{align-items:flex-start;flex-direction:column;gap:24px}
}


/* V33 scrolling reliability fixes */
.midweek-popup-overlay{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
@media(max-width:900px){
  body:not(.menu-open):not(.popup-open){overflow-y:auto!important;touch-action:pan-y}
  .site-nav{touch-action:pan-y;-webkit-overflow-scrolling:touch}
}


/* V34 proofreading and stability pass */
/* Keep ResDiary and the surrounding booking copy fixed to their grid columns even
   when the widget changes state after a reservation is confirmed. */
.reservation-section > *{min-width:0}
.resdiary-shell{width:100%;max-width:100%;box-sizing:border-box;overflow-x:hidden;contain:inline-size}
#rd-widget-frame{width:100%!important;max-width:600px!important;margin-inline:auto!important;box-sizing:border-box}
#rd-widget-frame > *,#rd-widget-frame iframe{max-width:100%!important;box-sizing:border-box}
#rd-widget-frame iframe{display:block;width:100%!important;margin-inline:auto!important}

/* Customer-facing information cards for menus that intentionally change or are
   provided in person, rather than development-style placeholder boxes. */
.menu-info-card{margin:0 0 28px;padding:28px 30px;border-left:2px solid var(--gold);background:var(--cream);color:#6f6266}
.menu-info-card p{max-width:760px;margin:0;font-size:15px;line-height:1.65}

/* Hospitality Wednesdays promotion steps. */
.promo-steps{margin:24px 0 30px;padding:0;list-style:none;counter-reset:promo-step}
.promo-steps li{position:relative;counter-increment:promo-step;padding:0 0 18px 38px;margin:0 0 18px;border-bottom:1px solid rgba(255,255,255,.13);color:rgba(255,255,255,.76);font-size:14px;line-height:1.55}
.promo-steps li::before{content:counter(promo-step);position:absolute;left:0;top:1px;width:24px;height:24px;display:grid;place-items:center;border:1px solid rgba(226,182,124,.65);color:#e2b67c;font:600 9px/1 Montserrat,sans-serif}

/* Dietary labels: keep lettering optically centred at every breakpoint. */
.diet-tag{display:inline-grid;place-items:center;box-sizing:border-box;line-height:1!important;vertical-align:middle;padding-top:1px}
.dietary-key b{box-sizing:border-box;line-height:1!important}

@media(max-width:700px){
  /* Previously bottom-aligned; move the promo into a more natural, slightly
     upper-centre position on phone screens. */
  .midweek-popup-overlay{align-items:center;padding:16px 16px 10vh}
}
@media(max-width:520px){
  .dietary-key b{display:grid;place-items:center;margin:0 0 6px}
  .menu-info-card{padding:23px 22px}
}

/* V35: keep dietary legend badges square and consistent with desktop on phones. */
.dietary-key span{display:inline-flex;align-items:center;min-width:0}
.dietary-key b{
  display:inline-grid!important;
  place-items:center;
  flex:0 0 28px;
  width:28px;
  min-width:28px;
  height:28px;
  margin:0 7px 0 0!important;
  padding:0;
  box-sizing:border-box;
  line-height:1!important;
  text-align:center;
}
@media(max-width:520px){
  .dietary-key{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px 16px;
    align-items:start;
  }
  .dietary-key span{
    display:flex;
    align-items:center;
    flex:none;
    font-size:8px;
    line-height:1.35;
  }
  .dietary-key b{
    display:inline-grid!important;
    margin:0 7px 0 0!important;
  }
}


/* Christmas page */
.christmas-hero{background-image:url('images/sunday-roast.webp');background-position:center 45%}.event-christmas{background-image:url('images/sunday-roast.webp')}.event-grid-featured{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1040px}.christmas-feature-strip{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;background:var(--cream)}.christmas-feature-image{min-height:520px;background:url('images/sunday-roast.webp') center/cover}.christmas-feature-copy h2{font-size:clamp(42px,5vw,70px)}.christmas-feature-copy>p:not(.eyebrow){color:#6b5f63;font-size:18px;max-width:560px}.christmas-booking-card{display:flex;justify-content:space-between;gap:35px;align-items:center;background:var(--ink);color:var(--cream);padding:42px;margin-bottom:60px}.christmas-booking-card h3{font-size:32px;margin-bottom:8px}.christmas-booking-card p{color:rgba(255,255,255,.7);margin:0}.christmas-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px}.christmas-menu-grid .editorial-menu-section{background:var(--cream)}.christmas-kids-menu{grid-column:1/-1}.christmas-parties{display:grid;grid-template-columns:.9fr 1.1fr;gap:7vw;align-items:start;background:var(--paper)}.christmas-party-copy h2{font-size:clamp(42px,5vw,72px)}.christmas-party-copy>p:not(.eyebrow){color:#6b5f63;font-size:18px}.christmas-party-form-card{background:var(--ink);color:var(--cream);padding:52px 46px}.christmas-party-form-card h3{font-size:38px}.christmas-party-form-card .form-grid input,.christmas-party-form-card .form-grid select,.christmas-party-form-card .form-grid textarea{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.2);color:var(--cream)}.christmas-party-form-card select option{color:var(--ink)}
@media(max-width:900px){.event-grid-featured,.christmas-feature-strip,.christmas-menu-grid,.christmas-parties{grid-template-columns:1fr}.christmas-feature-image{min-height:360px}.christmas-booking-card{display:block;padding:34px 26px}.christmas-booking-card .button{margin-top:24px;width:100%}.christmas-party-form-card{padding:42px 28px}.christmas-party-form-card .button{width:100%}}

/* V37 — Christmas page consistency + image-led polish */
.christmas-page .page-hero-content{width:min(760px,86vw);margin:0 0 85px 9vw}
.christmas-page .page-hero h1{font-size:clamp(58px,7vw,100px);margin-bottom:24px}
.christmas-page .page-hero-content>p:not(.eyebrow){max-width:560px;font-size:18px;color:rgba(255,255,255,.82)}
.christmas-page .page-intro{max-width:980px;margin:0 auto;text-align:center}
.christmas-page .page-intro>p:last-child{max-width:760px;margin-left:auto;margin-right:auto}

.christmas-story{display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;align-items:center;background:var(--paper)}
.christmas-story-media{min-width:0}
.christmas-story-media img{display:block;width:100%;height:620px;object-fit:cover;object-position:center 48%}
.christmas-story-copy h2{font-size:clamp(42px,5vw,72px);margin-bottom:28px}
.christmas-story-copy>p:not(.eyebrow){max-width:560px;color:#6c6064;font-size:18px}

.christmas-page .christmas-day>.section-heading{margin-bottom:48px}
.christmas-page .christmas-day>.section-heading>p{max-width:470px;color:#706468}
.christmas-page .christmas-booking-card{margin-bottom:72px}
.christmas-page .christmas-menu-grid{gap:34px}
.christmas-page .christmas-menu-grid .editorial-menu-section{padding:42px 36px}

.christmas-gallery{background:var(--paper)}
.christmas-image-grid{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:310px 310px;gap:18px}
.christmas-gallery-item{margin:0;overflow:hidden;min-width:0;background:var(--ink)}
.christmas-gallery-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.christmas-gallery-food{grid-row:1 / 3}
.christmas-gallery-food img{object-position:center}
.christmas-gallery-dining img{object-position:center 55%}
.christmas-gallery-party img{object-position:center 46%}
@media(hover:hover) and (pointer:fine){.christmas-gallery-item:hover img{transform:scale(1.015)}}

.christmas-parties{display:block;background:var(--cream)}
.christmas-party-intro{display:grid;grid-template-columns:1.12fr .88fr;gap:8vw;align-items:center}
.christmas-party-image img{display:block;width:100%;height:600px;object-fit:cover;object-position:center 40%}
.christmas-party-copy h2{font-size:clamp(42px,5vw,72px);margin-bottom:28px}
.christmas-party-copy>p:not(.eyebrow){max-width:580px;color:#6c6064;font-size:18px}
.christmas-party-copy .detail-strip{margin-bottom:0}
.christmas-party-form-card{max-width:980px;margin:80px auto 0;padding:58px 54px}
.christmas-party-form-card h3{font-size:clamp(34px,4vw,48px);margin-bottom:28px}

@media(max-width:900px){
  .christmas-page .page-hero-content{margin:0 24px 55px;width:min(760px,calc(100vw - 48px))}
  .christmas-page .page-hero h1{font-size:52px}
  .christmas-page .page-intro{text-align:left;max-width:none}
  .christmas-page .page-intro>p:last-child{margin-left:0;margin-right:0}
  .christmas-story,.christmas-party-intro{grid-template-columns:1fr;gap:48px}
  .christmas-story-media img,.christmas-party-image img{height:440px}
  .christmas-image-grid{grid-template-columns:1fr 1fr;grid-template-rows:420px 260px}
  .christmas-gallery-food{grid-column:1 / 3;grid-row:auto}
  .christmas-gallery-dining,.christmas-gallery-party{grid-row:auto}
  .christmas-party-form-card{margin-top:60px;padding:42px 28px}
}

@media(max-width:520px){
  .christmas-page .page-hero h1{font-size:45px}
  .christmas-page .page-hero-content>p:not(.eyebrow){font-size:16px}
  .christmas-story-media img,.christmas-party-image img{height:340px}
  .christmas-story-copy>p:not(.eyebrow),.christmas-party-copy>p:not(.eyebrow){font-size:16px}
  .christmas-page .christmas-menu-grid .editorial-menu-section{padding:34px 24px}
  .christmas-image-grid{grid-template-columns:1fr;grid-template-rows:none;gap:14px}
  .christmas-gallery-food,.christmas-gallery-dining,.christmas-gallery-party{grid-column:auto;grid-row:auto}
  .christmas-gallery-item{height:280px}
  .christmas-gallery-food{height:360px}
  .christmas-party-form-card{padding:38px 24px}
}


/* V38 — Christmas hero clearance */
/* The Christmas title is taller than other inner-page hero titles, so give the
   hero enough vertical room for the established typography to sit cleanly below
   the transparent navigation rather than colliding with it. */
@media(min-width:901px){
  .christmas-page .page-hero{min-height:800px}
}


/* V39 — launch polish: spacing, forms, motion and subtle Lenis support */
/* Keep Lenis additive rather than browser-hijacking. Native touch scrolling is
   retained because Lenis is only initialised on desktop/fine-pointer devices. */
html.lenis,html.lenis body{height:auto}
html.lenis{scroll-behavior:auto!important}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth iframe{pointer-events:none}

/* Consistent content measure on very wide displays without changing section backgrounds. */
.section-heading,.venue-row,.offer-grid,.sundays,.event-grid,.feature-story,.hall-details,
.reservation-section,.contact-layout,.occasion-grid,.editorial-menu,.full-menu-grid,
.bar-pizza-feature,.bar-late,.bar-gallery,.christmas-story,.christmas-image-grid,
.christmas-party-intro,.christmas-menu-grid{max-width:1480px;margin-left:auto;margin-right:auto}
.section-heading{gap:48px}

/* Buttons: same visual height and border box regardless of treatment. */
.button{min-height:46px;border:1px solid transparent;box-sizing:border-box}
.button.outline{border-color:var(--ink)}
.button.cream{border-color:var(--cream)}
.header-cta{min-height:46px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}

/* Forms: consistent rhythm and a clear gap before the submit action. */
.form-grid{gap:22px 20px}
.form-grid label{gap:10px}
.form-grid input,.form-grid select,.form-grid textarea{min-height:52px;line-height:1.45}
.form-grid textarea{min-height:132px;resize:vertical}
.venue-enquiry-form>.button,.contact-form>.button{margin-top:28px}
.christmas-party-form-card .venue-enquiry-form>.button{margin-top:30px}
.form-note{margin-top:20px!important}

/* A slightly tighter, consistent interaction cadence across the site. */
.reveal{transform:translate3d(0,14px,0);transition:opacity .66s cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0ms),transform .66s cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0ms)}
.reveal.visible{transform:translate3d(0,0,0)}
.venue-image.reveal,.sundays-image.reveal,.bar-late-image.reveal,.christmas-story-media.reveal,.christmas-party-image.reveal,.christmas-gallery-item.reveal{transition-duration:.78s}

/* Prevent form controls/buttons from visually touching container edges on compact layouts. */
@media(max-width:900px){
  .venue-enquiry-form>.button,.contact-form>.button{margin-top:24px}
  .form-grid{gap:18px}
  .section-heading{gap:0}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .reveal{transition:none!important;transform:none!important;opacity:1!important}
}

/* V40 — unified content rail and alignment polish */
:root{
  --site-max:2100px;
  --site-edge:max(8vw, calc((100vw - var(--site-max)) / 2));
}

@media(min-width:901px){
  /* One shared horizontal rail for page content. The max is intentionally
     generous so wide displays still feel expansive rather than boxed-in. */
  .section{padding-left:var(--site-edge);padding-right:var(--site-edge)}
  .hero-content{margin-left:var(--site-edge)}
  .page-hero-content,
  .christmas-page .page-hero-content{margin-left:var(--site-edge)}
  .hero-details{right:var(--site-edge)}
  .scroll-hint{left:var(--site-edge)}
  .contact-strip{padding-left:var(--site-edge);padding-right:var(--site-edge)}
  footer{padding-left:var(--site-edge);padding-right:var(--site-edge)}

  /* Remove the old 1480px cap from the main structural blocks. Their parent
     section now controls the shared max-width/gutters instead. */
  .section-heading,.venue-row,.offer-grid,.sundays,.event-grid,.feature-story,.hall-details,
  .reservation-section,.contact-layout,.occasion-grid,.editorial-menu,.full-menu-grid,
  .bar-pizza-feature,.bar-late,.bar-gallery,.christmas-story,.christmas-image-grid,
  .christmas-party-intro,.christmas-menu-grid{
    width:100%;
    max-width:none;
    margin-left:0;
    margin-right:0;
  }

  /* Full-width visual modules still sit on the same rail instead of touching
     the viewport while neighbouring content is centred. */
  .venue-gallery,.bar-gallery,.bar-pizza-feature{
    margin-left:var(--site-edge);
    margin-right:var(--site-edge);
    width:auto;
    max-width:none;
  }

  /* Remove narrower legacy caps that made some page sections appear as a
     smaller island in the middle on large/zoomed-out displays. */
  .event-grid-featured,.menu-panel,.editorial-menu,.lunch-key,.ticket-widget-shell,
  .menu-document,.christmas-party-form-card{
    max-width:none;
  }

  /* Keep intro copy readable while allowing the section itself to share the
     same outer rail as the rest of the page. */
  .narrow,.christmas-page .page-intro{
    max-width:none;
    margin-left:0;
    margin-right:0;
  }
  .page-intro h2{max-width:1050px;margin-left:auto;margin-right:auto}
  .page-intro>p:last-child{max-width:820px;margin-left:auto;margin-right:auto}

  /* Hero CTA rows: give buttons and text links the same visual height/baseline. */
  .hero-actions .text-link{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    padding-bottom:0;
    border-bottom:0;
    position:relative;
  }
  .hero-actions .text-link::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:1px;
    height:1px;
    background:currentColor;
  }
}

/* V41 — align desktop header contents to the shared site rail */
@media(min-width:901px){
  .site-header{
    padding-left:var(--site-edge);
    padding-right:var(--site-edge);
  }
}


/* V42 — contact routing, careers page and final launch polish */
.inline-email{color:var(--gold);border-bottom:1px solid currentColor;padding-bottom:2px}
.contact-email-home{display:inline-block;margin-top:14px}
.event-email-note,.booking-email-note,.direct-contact-note,.inline-contact-note{font-size:14px;line-height:1.6}
.event-email-note{margin:18px 0 0!important;color:rgba(255,255,255,.72)!important}
.event-email-note a,.direct-contact-note a,.contact-strip-email,.jobs-email{color:#e2b67c;border-bottom:1px solid currentColor}
.direct-contact-note{margin:20px 0 4px!important;color:rgba(255,255,255,.72)!important}
.direct-contact-note.on-light{color:#6b5f63!important}
.direct-contact-note.on-light a{color:var(--gold)}
.inline-contact-note{margin-top:28px;color:#65595d}
.booking-email-note{margin-top:10px!important;color:rgba(255,255,255,.7)!important}
.booking-email-note a{color:#e2b67c;border-bottom:1px solid currentColor}
.contact-channels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:32px 0 8px}
.contact-channel{padding:20px 18px;background:var(--paper);border-top:1px solid var(--gold);min-width:0}
.contact-channel>span{display:block;font:600 9px/1.3 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);margin-bottom:10px}
.contact-channel>a{display:block;font:500 13px/1.45 Montserrat,sans-serif;overflow-wrap:anywhere;margin-bottom:8px}
.contact-channel>small{display:block;color:#75686c;font-size:12px;line-height:1.55}
.location-details a{overflow-wrap:anywhere}
.jobs-page-hero{background-image:url('images/bistro-table.webp');background-position:center 52%}
.jobs-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:7vw;align-items:start}
.jobs-copy h2{font-size:clamp(42px,5vw,72px);margin-bottom:42px}
.jobs-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.jobs-role-card{background:var(--paper);padding:34px 30px;border-top:2px solid transparent;transition:transform .25s ease,border-color .25s ease}
.jobs-role-card>span{font:600 9px/1 Montserrat,sans-serif;letter-spacing:.16em;color:var(--gold)}
.jobs-role-card h3{font-size:27px;margin:20px 0 12px}
.jobs-role-card p{color:#6d6265;margin:0}
.jobs-contact-card{position:sticky;top:125px;background:var(--ink);color:var(--cream);padding:52px 44px}
.jobs-contact-card h3{font-size:38px}
.jobs-contact-card>p{color:rgba(255,255,255,.7)}
.jobs-email{display:inline-block;overflow-wrap:anywhere;margin:8px 0 30px}
.jobs-contact-card .button{width:100%;margin-bottom:20px}
.jobs-small{font-size:12px!important;line-height:1.6}
@media(hover:hover) and (pointer:fine){.jobs-role-card:hover{transform:translateY(-3px);border-color:var(--gold)}}
@media(max-width:900px){.contact-channels{grid-template-columns:1fr}.jobs-layout{grid-template-columns:1fr;gap:48px}.jobs-role-grid{grid-template-columns:1fr 1fr}.jobs-contact-card{position:static}.contact-strip-email{overflow-wrap:anywhere}}
@media(max-width:520px){.jobs-role-grid{grid-template-columns:1fr}.jobs-role-card{padding:30px 24px}.jobs-contact-card{padding:42px 28px}.contact-channel{padding:18px 16px}}


/* V43 — jobs hero clearance, legal pages and footer legal links */
.footer-legal-links{display:inline-flex;align-items:center;gap:4px}
.footer-legal-links a{color:inherit;transition:color .2s ease}
.footer-legal-links a:hover,.footer-legal-links a:focus-visible{color:#e2b67c}

/* Keep the careers hero on the same visual rhythm as the established inner pages. */
.jobs-page-hero{min-height:720px}
.jobs-page-hero .page-hero-content{max-width:900px}

/* Privacy / cookie pages deliberately use the same hero, rails and typography as other inner pages. */
.legal-page-hero{background-image:linear-gradient(rgba(50,39,43,.12),rgba(50,39,43,.12)),url('images/bistro-table.webp');background-position:center 48%}
.legal-layout{display:grid;grid-template-columns:minmax(190px,.28fr) minmax(0,1fr);gap:7vw;align-items:start}
.legal-nav{position:sticky;top:125px;border-top:1px solid var(--gold);padding-top:24px}
.legal-nav nav{display:flex;flex-direction:column}
.legal-nav nav a{padding:11px 0;border-bottom:1px solid var(--line);font:600 10px/1.35 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.11em;color:#6d6265;transition:color .2s ease,padding-left .2s ease}
.legal-nav nav a:hover,.legal-nav nav a:focus-visible{color:var(--gold);padding-left:5px}
.legal-updated{font-size:12px;color:#887b7f;margin-top:24px}
.legal-content{max-width:1150px}
.legal-content h2{font-size:clamp(30px,3.2vw,46px);margin:62px 0 18px}
.legal-content h2:first-child{margin-top:0}
.legal-content h3{font-size:24px;margin:34px 0 10px}
.legal-content p,.legal-content li{color:#675c60}
.legal-content ul{padding-left:22px;margin:0 0 28px}
.legal-content li{margin-bottom:10px}
.legal-content a{color:var(--gold);border-bottom:1px solid currentColor;overflow-wrap:anywhere}
.legal-content p+ul{margin-top:-4px}

/* Four direct contact routes now fit the expanded shared content rail. */
.contact-channels{grid-template-columns:repeat(4,minmax(0,1fr))}

@media(max-width:1100px) and (min-width:901px){.contact-channels{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
  .jobs-page-hero{min-height:630px}
  .legal-layout{grid-template-columns:1fr;gap:48px}
  .legal-nav{position:static}
  .legal-nav nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
  .contact-channels{grid-template-columns:1fr}
}
@media(max-width:520px){
  .jobs-page-hero{min-height:600px}
  .legal-nav nav{grid-template-columns:1fr}
  .legal-content h2{margin-top:48px}
}

/* V44 — mobile hero rhythm and navigation redesign */
@media(max-width:900px){
  /* Mobile header: keep the brand and menu trigger only. The booking CTA remains
     available inside the opened navigation. */
  .site-header{
    height:88px;
    padding:0 24px;
    gap:18px;
  }
  .site-header>.header-cta{display:none!important}
  .brand-logo{position:relative;z-index:4}
  .brand-logo img{width:154px}

  .menu-toggle{
    display:block;
    margin-left:auto;
    width:46px;
    height:46px;
    border:1px solid rgba(254,250,243,.36);
    background:rgba(37,27,30,.12);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    transition:border-color .25s ease,background-color .25s ease,transform .25s ease;
    z-index:5;
  }
  .menu-toggle span{
    left:10px;
    width:24px;
    background:var(--cream);
    transform-origin:center;
  }
  .menu-toggle span:first-child{top:17px}
  .menu-toggle span:last-child{top:27px}
  .menu-toggle.active{
    border-color:rgba(226,182,124,.8);
    background:rgba(168,108,40,.18);
  }
  .menu-toggle.active span:first-child{top:22px;transform:rotate(45deg)}
  .menu-toggle.active span:last-child{top:22px;transform:rotate(-45deg)}

  /* Full-screen menu: editorial rather than a plain list. */
  .site-nav{
    position:fixed;
    inset:0;
    width:100vw;
    height:100dvh;
    min-height:100vh;
    max-height:100dvh;
    z-index:2;
    display:block;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:calc(126px + env(safe-area-inset-top)) 24px calc(34px + env(safe-area-inset-bottom));
    background:
      radial-gradient(circle at 94% 20%,rgba(168,108,40,.13),transparent 31%),
      linear-gradient(155deg,#251b1e 0%,#32272b 68%,#24191d 100%);
    transform:translate3d(100%,0,0);
    transition:transform .44s cubic-bezier(.22,.74,.26,1),visibility .44s;
    visibility:hidden;
    color:var(--cream);
    counter-reset:mobile-nav;
  }
  .site-nav.open{transform:translate3d(0,0,0);visibility:visible}
  .site-nav::before{
    content:"EXPLORE THE GEORGE";
    display:block;
    margin:0 0 24px 50px;
    font:600 9px/1 Montserrat,sans-serif;
    text-transform:uppercase;
    letter-spacing:.24em;
    color:#d9b178;
  }
  .site-nav::after{
    content:"G";
    position:fixed;
    right:-32px;
    bottom:-76px;
    z-index:-1;
    font:400 310px/.75 'Libre Baskerville',serif;
    color:rgba(254,250,243,.025);
    pointer-events:none;
  }
  .site-nav>*{position:relative;z-index:1}

  .site-nav>.nav-group,
  .site-nav>a:not(.mobile-menu-cta){
    counter-increment:mobile-nav;
    border-bottom:1px solid rgba(254,250,243,.12);
  }
  .site-nav>.nav-group::before,
  .site-nav>a:not(.mobile-menu-cta)::before{
    content:"0" counter(mobile-nav);
    position:absolute;
    left:0;
    top:26px;
    font:600 9px/1 Montserrat,sans-serif;
    letter-spacing:.14em;
    color:rgba(226,182,124,.72);
  }
  .site-nav>a:not(.mobile-menu-cta){
    display:block;
    padding:18px 0 18px 50px;
    color:var(--cream);
    font:400 30px/1.15 'Libre Baskerville',serif;
    text-transform:none;
    letter-spacing:-.025em;
    border-bottom:1px solid rgba(254,250,243,.12);
  }
  .nav-group{display:block;height:auto}
  .nav-parent{
    width:100%;
    min-height:72px;
    padding:18px 0 18px 50px;
    justify-content:space-between;
    color:var(--cream);
    font:400 30px/1.15 'Libre Baskerville',serif;
    text-transform:none;
    letter-spacing:-.025em;
    text-align:left;
  }
  .nav-parent:hover,.nav-group:hover>.nav-parent,.nav-group:focus-within>.nav-parent{color:var(--cream)}
  .nav-chevron{
    width:9px;
    height:9px;
    margin-right:4px;
    border-width:0 1px 1px 0;
    opacity:.8;
  }
  .nav-group.dropdown-open>.nav-parent{color:#e2b67c}

  .nav-dropdown{
    position:static;
    width:auto;
    padding:0 0 18px 50px;
    margin:0;
    background:transparent;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    transform:none;
    display:none;
    transition:none;
  }
  .nav-group.dropdown-open>.nav-dropdown{display:flex}
  .site-nav .nav-dropdown::before{display:none}
  .site-nav .nav-dropdown a{
    position:relative;
    padding:9px 0 9px 18px;
    border:0;
    color:rgba(254,250,243,.68);
    font:500 10px/1.45 Montserrat,sans-serif;
    text-transform:uppercase;
    letter-spacing:.12em;
  }
  .site-nav .nav-dropdown a::before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    width:7px;
    height:1px;
    background:rgba(226,182,124,.7);
  }
  .site-nav .nav-dropdown a:hover,.site-nav .nav-dropdown a:focus-visible{color:#e2b67c;background:transparent}

  .site-nav .mobile-menu-cta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:60px;
    margin:28px 0 0 50px;
    padding:0 22px;
    background:var(--gold);
    color:#fff;
    border:1px solid var(--gold);
    font:600 10px/1 Montserrat,sans-serif;
    text-transform:uppercase;
    letter-spacing:.15em;
  }
  .site-nav .mobile-menu-cta::after{content:"↗";font-size:15px;line-height:1}

  .mobile-menu-meta{
    margin:30px 0 0 50px;
    padding-top:20px;
    border-top:1px solid rgba(254,250,243,.12);
    color:rgba(254,250,243,.5);
    font:500 9px/1.7 Montserrat,sans-serif;
    text-transform:uppercase;
    letter-spacing:.12em;
  }
  .mobile-menu-meta a{color:#e2b67c;text-transform:none;letter-spacing:.02em}

  /* One mobile hero rhythm for every inner page. Content is centred within the
     usable hero area below the 88px header, giving equal visual breathing room
     above and below regardless of page-specific copy length. */
  .page-hero,
  .christmas-page .page-hero,
  .jobs-page-hero,
  .legal-page-hero{
    min-height:clamp(680px,88svh,780px)!important;
    padding-top:88px;
    align-items:stretch;
  }
  .page-hero-content,
  .christmas-page .page-hero-content,
  .jobs-page-hero .page-hero-content{
    width:auto!important;
    max-width:720px!important;
    margin:0 24px!important;
    padding:54px 0!important;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .page-hero .hero-actions{margin-top:34px}
}

@media(max-width:520px){
  .site-header{height:84px;padding:0 20px}
  .brand-logo img{width:148px}
  .menu-toggle{width:44px;height:44px}
  .menu-toggle span{left:9px;width:24px}
  .site-nav{padding-left:20px;padding-right:20px;padding-top:calc(116px + env(safe-area-inset-top))}
  .site-nav::before{margin-left:44px}
  .site-nav>.nav-group::before,.site-nav>a:not(.mobile-menu-cta)::before{top:24px}
  .site-nav>a:not(.mobile-menu-cta),.nav-parent{padding-left:44px;font-size:28px}
  .nav-dropdown{padding-left:44px}
  .site-nav .mobile-menu-cta,.mobile-menu-meta{margin-left:44px}
  .page-hero,.christmas-page .page-hero,.jobs-page-hero,.legal-page-hero{padding-top:84px;min-height:clamp(650px,88svh,760px)!important}
  .page-hero-content,.christmas-page .page-hero-content,.jobs-page-hero .page-hero-content{margin:0 22px!important;padding:46px 0!important}
}

/* V44 finishing touches */
@media(min-width:901px){.mobile-menu-meta{display:none!important}}
@media(max-width:900px){
  .hero{padding-top:88px}
  .hero-content{padding-top:0}
  .site-nav::after{z-index:0}
  .site-nav.open>.nav-group,
  .site-nav.open>a,
  .site-nav.open>.mobile-menu-meta{animation:mobile-menu-item .42s cubic-bezier(.22,.74,.26,1) both}
  .site-nav.open>*:nth-child(2){animation-delay:.035s}
  .site-nav.open>*:nth-child(3){animation-delay:.07s}
  .site-nav.open>*:nth-child(4){animation-delay:.105s}
  .site-nav.open>*:nth-child(5){animation-delay:.14s}
  .site-nav.open>*:nth-child(6){animation-delay:.175s}
  .site-nav.open>*:nth-child(7){animation-delay:.21s}
  .site-nav.open>*:nth-child(8){animation-delay:.245s}
}
@media(max-width:520px){.hero{padding-top:84px}}
@keyframes mobile-menu-item{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}

/* V45 — mobile overflow, scrolling menu chrome and footer refinement */
@media(max-width:900px){
  /* Keep the menu content inside the viewport at every width. */
  .site-nav{
    overflow-x:hidden;
    padding-right:max(24px,env(safe-area-inset-right));
    padding-left:max(24px,env(safe-area-inset-left));
  }
  .site-nav::before{
    margin-top:18px;
    margin-left:50px;
    max-width:calc(100% - 60px);
  }
  .site-nav>.nav-group,
  .site-nav>a:not(.mobile-menu-cta),
  .site-nav .mobile-menu-cta,
  .mobile-menu-meta{
    width:auto;
    max-width:calc(100% - 50px);
    min-width:0;
  }
  .site-nav>a:not(.mobile-menu-cta),
  .nav-parent,
  .site-nav .nav-dropdown a{
    min-width:0;
    overflow-wrap:anywhere;
  }
  .site-nav .mobile-menu-cta{
    margin-right:0;
  }
  .mobile-menu-meta{
    overflow:hidden;
  }
  .mobile-menu-meta,
  .mobile-menu-meta a{
    font:500 9px/1.75 Montserrat,sans-serif!important;
    text-transform:uppercase!important;
    letter-spacing:.1em!important;
  }
  .mobile-menu-meta a{
    display:block;
    max-width:100%;
    margin-top:7px;
    color:#e2b67c!important;
    text-transform:none!important;
    letter-spacing:.01em!important;
    overflow-wrap:anywhere;
    word-break:break-word;
  }

  /* The closed-page header remains fixed visually over the menu initially, then
     clears away once the user starts scrolling the open menu. */
  .site-header .brand-logo,
  .site-header .menu-toggle{
    transition:opacity .22s ease,transform .26s ease,visibility .22s ease,border-color .25s ease,background-color .25s ease;
  }
  body.menu-open.mobile-menu-scrolled .site-header .brand-logo,
  body.menu-open.mobile-menu-scrolled .site-header .menu-toggle{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-16px);
  }

  /* Long customer-facing content must wrap rather than escape its layout. */
  main,
  main section,
  .section,
  .contact-strip,
  .contact-strip>div,
  .contact-strip address,
  .feature-aside,
  .enquiry-panel,
  .location-card,
  .jobs-contact-card{
    min-width:0;
  }
  main h1,main h2,main h3,main h4,main p,main address,main li,
  main a[href^="mailto:"],
  footer a[href^="mailto:"]{
    max-width:100%;
  }
  main a[href^="mailto:"],
  footer a[href^="mailto:"]{
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  .contact-strip h2{
    width:100%;
    max-width:100%;
    font-size:clamp(27px,7vw,42px);
    line-height:1.17;
  }
  .contact-strip h2 a,
  .contact-strip-email,
  .jobs-email{
    display:inline;
    overflow-wrap:anywhere;
    word-break:break-word;
  }

  /* Cleaner mobile footer: brand/navigation retain the two-column hierarchy,
     while utility information sits on a quiet, centred lower rail. */
  footer{
    row-gap:0;
    padding-top:58px;
    padding-bottom:30px;
  }
  .footer-brand{
    gap:14px;
  }
  .footer-flamingo{width:54px}
  .footer-wordmark{width:min(184px,100%)}
  .footer-links{
    gap:1px;
  }
  .footer-links a{
    padding:8px 0;
    font-size:9px;
    letter-spacing:.14em;
    opacity:.9;
  }
  .footer-bottom{
    display:grid;
    grid-template-columns:1fr auto;
    width:100%;
    gap:10px 22px;
    margin-top:34px;
    padding-top:24px;
    align-items:center;
    border-top:1px solid rgba(255,255,255,.12);
    color:rgba(254,250,243,.55);
  }
  .footer-bottom>span:first-child{
    justify-self:start;
  }
  .footer-legal-links{
    justify-self:end;
  }
  .trust-revaro-credit{
    grid-column:1/-1;
    justify-self:center;
    justify-content:center;
    margin-top:14px;
    padding-top:18px;
    width:100%;
    max-width:320px;
    border-top:1px solid rgba(255,255,255,.08);
    white-space:normal;
    text-align:center;
  }
  .trust-revaro-credit>span:first-child{font-size:9px}
  .trust-revaro-logo{width:108px}
}

@media(max-width:520px){
  .site-nav{
    padding-left:20px;
    padding-right:20px;
  }
  .site-nav::before{
    margin-left:38px;
    max-width:calc(100% - 46px);
  }
  .site-nav>.nav-group,
  .site-nav>a:not(.mobile-menu-cta),
  .site-nav .mobile-menu-cta,
  .mobile-menu-meta{
    max-width:calc(100% - 38px);
  }
  .site-nav>.nav-group::before,
  .site-nav>a:not(.mobile-menu-cta)::before{left:0}
  .site-nav>a:not(.mobile-menu-cta),
  .nav-parent{padding-left:38px;font-size:clamp(25px,8vw,30px)}
  .nav-dropdown{padding-left:38px}
  .site-nav .mobile-menu-cta,
  .mobile-menu-meta{margin-left:38px}

  .contact-strip{
    padding-left:22px;
    padding-right:22px;
  }
  .contact-strip h2{
    font-size:clamp(26px,7.5vw,34px);
  }

  footer{
    grid-template-columns:minmax(0,1fr) 112px;
    column-gap:24px;
    padding-left:24px;
    padding-right:24px;
  }
  .footer-wordmark{width:min(170px,100%)}
  .footer-flamingo{width:50px}
  .footer-bottom{
    grid-template-columns:1fr;
    gap:9px;
    text-align:center;
  }
  .footer-bottom>span:first-child,
  .footer-legal-links{
    justify-self:center;
  }
  .trust-revaro-credit{margin-top:12px}
}


/* V46 — mobile cache-bust hardening and overflow-safe layout */
@media(max-width:900px){
  html,body{max-width:100%;overflow-x:hidden}
  .site-nav{overflow-x:hidden!important}
  .site-nav *{min-width:0;max-width:100%}
  .mobile-menu-meta{width:calc(100% - 50px)!important;max-width:calc(100% - 50px)!important;overflow:visible!important}
  .mobile-menu-meta a{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    font:500 13px/1.5 Mulish,sans-serif!important;
    text-transform:none!important;
    letter-spacing:0!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
    white-space:normal!important;
  }
  body.menu-open.mobile-menu-scrolled .site-header{
    pointer-events:none;
  }
  body.menu-open.mobile-menu-scrolled .site-header .brand-logo,
  body.menu-open.mobile-menu-scrolled .site-header .menu-toggle{
    opacity:0!important;
    visibility:hidden!important;
    transform:translateY(-22px)!important;
  }

  /* Prevent long contact/email headings from being clipped anywhere. */
  main h1,main h2,main h3,main h4,
  main p,main address,main li,main a,
  .contact-strip,.contact-strip *,
  .jobs-contact-card,.jobs-contact-card *,
  .feature-aside,.feature-aside *,
  .enquiry-panel,.enquiry-panel *{
    min-width:0;
    max-width:100%;
  }
  main a[href^="mailto:"],
  .contact-strip h2 a,
  .jobs-email,
  .contact-strip-email{
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
  }
  .contact-strip h2{
    font-size:clamp(25px,7vw,36px)!important;
    line-height:1.16!important;
  }

  /* More deliberate, compact footer on mobile. */
  footer{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(118px,.58fr)!important;
    column-gap:30px!important;
    row-gap:0!important;
    padding:56px 24px 28px!important;
  }
  .footer-brand{width:100%!important;align-items:flex-start!important;min-width:0!important}
  .footer-flamingo{width:48px!important;left:50%!important;transform:translateX(-50%)!important;top:-8px!important;opacity:.9!important}
  .footer-wordmark{width:min(190px,100%)!important;margin-top:52px!important}
  .footer-links{margin:0!important;display:flex!important;flex-direction:column!important;gap:0!important;justify-content:flex-start!important;align-items:flex-start!important}
  .footer-links a{padding:7px 0!important;font-size:9px!important;letter-spacing:.13em!important}
  .footer-bottom{
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    justify-items:center!important;
    text-align:center!important;
    gap:10px!important;
    margin-top:34px!important;
    padding-top:22px!important;
  }
  .footer-bottom>span:first-child,.footer-legal-links{justify-self:center!important}
  .trust-revaro-credit{
    grid-column:auto!important;
    width:auto!important;
    max-width:none!important;
    border-top:0!important;
    margin-top:10px!important;
    padding-top:0!important;
    justify-self:center!important;
    justify-content:center!important;
    white-space:normal!important;
  }
}
@media(max-width:520px){
  .site-nav{padding-left:18px!important;padding-right:18px!important}
  .site-nav::before{margin-left:34px!important;max-width:calc(100% - 38px)!important}
  .site-nav>.nav-group,.site-nav>a:not(.mobile-menu-cta),.site-nav .mobile-menu-cta,.mobile-menu-meta{max-width:calc(100% - 34px)!important}
  .site-nav>a:not(.mobile-menu-cta),.nav-parent{padding-left:34px!important}
  .nav-dropdown{padding-left:34px!important}
  .site-nav .mobile-menu-cta,.mobile-menu-meta{margin-left:34px!important}
  .mobile-menu-meta{width:calc(100% - 34px)!important}
  footer{grid-template-columns:minmax(0,1fr) 118px!important;column-gap:22px!important}
}


/* V47 mobile footer composition polish */
@media(max-width:900px){
  footer{
    display:block!important;
    padding:58px 24px 28px!important;
    text-align:center!important;
  }
  .footer-brand{
    width:100%!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:12px!important;
    margin:0 auto!important;
  }
  .footer-flamingo{
    position:static!important;
    order:-1!important;
    width:58px!important;
    height:auto!important;
    transform:none!important;
    opacity:1!important;
    margin:0 auto!important;
  }
  .footer-wordmark{
    width:min(220px,70vw)!important;
    height:auto!important;
    margin:0 auto!important;
  }
  .footer-links{
    width:100%!important;
    margin:34px auto 0!important;
    padding:0!important;
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    justify-content:center!important;
    align-items:center!important;
    gap:12px 24px!important;
    max-width:560px!important;
  }
  .footer-links a{
    width:auto!important;
    padding:0!important;
    border:0!important;
    text-align:center!important;
    font-size:9px!important;
    line-height:1.4!important;
    letter-spacing:.14em!important;
    white-space:nowrap!important;
  }
  .footer-bottom{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    align-items:center!important;
    gap:10px 18px!important;
    margin-top:38px!important;
    padding-top:22px!important;
    text-align:left!important;
  }
  .footer-bottom>span:first-child{justify-self:start!important}
  .footer-legal-links{justify-self:end!important}
  .trust-revaro-credit{
    grid-column:1/-1!important;
    justify-self:center!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    width:auto!important;
    max-width:none!important;
    margin:8px 0 0!important;
    padding:0!important;
    border:0!important;
    white-space:nowrap!important;
    text-align:center!important;
  }
  .trust-revaro-credit>span:first-child{
    font-size:9px!important;
    line-height:1!important;
  }
  .trust-revaro-logo{
    width:104px!important;
    height:auto!important;
    margin:0!important;
  }
}
@media(max-width:520px){
  footer{padding:52px 20px 26px!important}
  .footer-flamingo{width:54px!important}
  .footer-wordmark{width:min(205px,72vw)!important}
  .footer-links{gap:11px 18px!important;margin-top:30px!important}
  .footer-links a{font-size:8.5px!important}
  .footer-bottom{grid-template-columns:1fr!important;text-align:center!important;justify-items:center!important}
  .footer-bottom>span:first-child,.footer-legal-links{justify-self:center!important}
  .trust-revaro-credit{gap:4px!important}
  .trust-revaro-logo{width:100px!important}
}

/* V48 — iOS-safe mobile navigation scrolling */
@media(max-width:900px){
  /* The fixed navigation is the sole scrolling surface while open. Keeping the
     root element unlocked avoids iOS Safari's fixed-overlay reverse-scroll bug. */
  html.overlay-scroll-lock:has(body.menu-open:not(.popup-open)){
    overflow-y:auto!important;
  }
  body.menu-open{
    overflow:hidden!important;
    height:auto!important;
  }
  .site-nav{
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    height:auto!important;
    max-height:none!important;
    overflow-y:scroll!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:auto!important;
    touch-action:pan-y!important;
    scrollbar-gutter:stable;
  }
  .site-nav.open{
    pointer-events:auto;
  }
  .site-nav::after{
    position:absolute!important;
  }
}

/* V50 homepage welcome section — restrained photo-led editorial layout */
.intro.intro-with-image{
  grid-template-columns:minmax(250px,.78fr) minmax(0,1.28fr) minmax(220px,.58fr);
  gap:clamp(36px,5vw,84px);
  align-items:center;
  min-height:620px;
}
.intro-with-image .intro-visual{
  position:relative;
  width:100%;
  max-width:420px;
  aspect-ratio:4/3;
  min-height:0;
  overflow:hidden;
  justify-self:start;
  background:var(--paper);
}
.intro-with-image .intro-visual img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
.intro-with-image .intro-copy{
  align-self:center;
  min-width:0;
}
.intro-with-image .intro-note{
  align-self:center;
  padding-bottom:0;
  min-width:0;
}
@media(max-width:1100px){
  .intro.intro-with-image{
    grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr);
    gap:36px 54px;
    min-height:580px;
  }
  .intro-with-image .intro-visual{
    grid-row:1 / span 2;
    max-width:360px;
  }
  .intro-with-image .intro-note{
    grid-column:2;
    max-width:430px;
  }
}
@media(max-width:900px){
  .intro.intro-with-image{
    display:grid;
    grid-template-columns:1fr;
    gap:28px;
    min-height:0;
    align-items:start;
  }
  .intro-with-image .intro-copy{
    order:1;
  }
  .intro-with-image .intro-note{
    order:3;
    grid-column:auto;
    max-width:560px;
    padding-top:0;
    margin-top:4px;
  }
  .intro-with-image .intro-visual{
    order:2;
    grid-row:auto;
    width:100%;
    max-width:none;
    aspect-ratio:16/10;
    margin-top:8px;
  }
}
@media(max-width:520px){
  .intro.intro-with-image{
    gap:24px;
  }
  .intro-with-image .intro-visual{
    aspect-ratio:4/3;
    margin-top:4px;
  }
}


/* V52 Tipsy Tapas + Fiesta */
.tipsy-hero{background-image:url('images/bistro-table.webp');background-position:center 52%}
.tipsy-aside{position:relative;overflow:hidden}
.tipsy-aside::after{content:'8+';position:absolute;right:-10px;bottom:-38px;font:400 clamp(90px,11vw,170px)/1 'Libre Baskerville',serif;color:rgba(255,255,255,.035);pointer-events:none}
.tipsy-package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.tipsy-package-card{background:var(--paper);padding:42px 34px;border-top:2px solid var(--gold);min-height:360px;display:flex;flex-direction:column}
.tipsy-package-card.featured{background:var(--ink);color:var(--cream)}
.tipsy-package-card h3{font-size:clamp(42px,4vw,62px);margin:4px 0 18px}
.tipsy-package-card h3 span{font:500 12px Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.12em;margin-left:4px}
.tipsy-package-card>p:not(.eyebrow){color:#6d6265}
.tipsy-package-card.featured>p:not(.eyebrow),.tipsy-package-card.featured li,.tipsy-package-card.featured small{color:rgba(255,255,255,.72)}
.tipsy-package-card ul{padding-left:18px;margin:18px 0 22px;color:#665b5f;line-height:1.75}
.tipsy-package-card small{margin-top:auto;color:#766a6e;line-height:1.55}
.tipsy-group-rule{display:grid;grid-template-columns:.7fr 1.2fr 1.5fr;gap:24px;align-items:center;background:var(--ink);color:var(--cream);padding:26px 30px;margin:0 0 40px}
.tipsy-group-rule span{font:600 9px Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.14em;color:#d9b178}
.tipsy-group-rule strong{font-family:'Libre Baskerville',serif;font-size:20px;font-weight:400}
.tipsy-group-rule p{margin:0;color:rgba(255,255,255,.68)}
.tipsy-key{margin:46px 0 36px}
.tipsy-menu-block{margin-top:62px}
.tipsy-block-heading{max-width:760px;margin-bottom:34px}
.tipsy-block-heading h3{font-size:clamp(32px,3vw,46px);margin:8px 0 10px}
.tipsy-block-heading>p:not(.eyebrow){color:#6d6265}
.tipsy-dish-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 72px;border-top:1px solid var(--line)}
.tipsy-dish{padding:20px 0 24px;border-bottom:1px solid var(--line);min-width:0}
.tipsy-dish h4{font:600 14px/1.45 Montserrat,sans-serif;margin:0 0 7px}
.tipsy-dish p{font-size:14px;color:#766a6e;margin:0;max-width:560px}
.tipsy-dish .diet-tag{vertical-align:middle}
.tipsy-side-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.tipsy-side-list li{padding:18px 14px 18px 0;border-bottom:1px solid var(--line);font:600 13px/1.5 Montserrat,sans-serif}
.tipsy-supplement-note,.menu-allergen-note{max-width:880px;margin:34px 0 0;color:#6d6265;font-size:13px;line-height:1.7}
.fiesta-section{background:var(--paper)}
.fiesta-rule{margin-bottom:46px}
.fiesta-package-grid{margin-bottom:72px}
.tipsy-rules-card{max-width:980px;margin:0 auto;padding:58px 64px;border:1px solid var(--line);background:var(--cream)}
.tipsy-rules-card h2{font-size:clamp(38px,4vw,58px)}
.tipsy-rules-card>p:not(.eyebrow){color:#6d6265;max-width:820px}
.tipsy-menu-panel .fiesta-inline-section{margin-top:90px;padding-top:70px;border-top:1px solid var(--line)}
.tipsy-menu-panel>.text-link{margin-top:40px}

/* Six homepage occasion cards: two balanced rows of three. */
@media(min-width:1100px){
  .offers .offer-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .offers .offer-card{grid-column:auto!important}
  .offers .offer-card:nth-child(4),.offers .offer-card:nth-child(5){grid-column:auto!important}
}
@media(max-width:900px){
  .tipsy-package-grid{grid-template-columns:1fr}
  .tipsy-package-card{min-height:0}
  .tipsy-group-rule{grid-template-columns:1fr;gap:8px;padding:28px 24px}
  .tipsy-dish-grid{grid-template-columns:1fr;gap:0}
  .tipsy-side-list{grid-template-columns:1fr 1fr}
  .tipsy-rules-card{padding:46px 34px}
}
@media(max-width:520px){
  .tipsy-hero{background-position:58% center}
  .tipsy-package-card{padding:34px 24px}
  .tipsy-package-card h3{font-size:44px}
  .tipsy-side-list{grid-template-columns:1fr}
  .tipsy-rules-card{padding:38px 24px}
  .tipsy-menu-block{margin-top:48px}
}


/* V53 — homepage newsletter signup */
.newsletter-section{
  background:var(--ink);
  color:var(--cream);
  padding:clamp(82px,8vw,130px) var(--site-edge);
  position:relative;
  overflow:hidden;
}
.newsletter-section::after{
  content:"G";
  position:absolute;
  right:-.03em;
  bottom:-.34em;
  font:400 clamp(220px,27vw,520px)/1 'Libre Baskerville',serif;
  color:rgba(255,255,255,.018);
  pointer-events:none;
}
.newsletter-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(500px,1.1fr);
  gap:clamp(70px,9vw,160px);
  align-items:center;
}
.newsletter-copy h2{
  font-size:clamp(42px,4.5vw,70px);
  max-width:760px;
  margin-bottom:26px;
}
.newsletter-copy>p:last-child{
  max-width:610px;
  color:rgba(254,250,243,.68);
  font-size:17px;
}
.newsletter-form{
  border-top:1px solid rgba(254,250,243,.23);
  padding-top:30px;
}
.newsletter-fields{
  display:grid;
  grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);
  gap:18px;
}
.newsletter-field{display:block;min-width:0}
.newsletter-field>span{
  display:block;
  margin-bottom:9px;
  font:600 9px/1.3 Montserrat,sans-serif;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:#e2b67c;
}
.newsletter-field input{
  width:100%;
  min-height:56px;
  border:1px solid rgba(254,250,243,.28);
  border-radius:0;
  outline:0;
  background:rgba(255,255,255,.035);
  color:var(--cream);
  padding:0 17px;
  font:400 15px/1 Mulish,sans-serif;
  transition:border-color .2s ease,background-color .2s ease;
}
.newsletter-field input::placeholder{color:rgba(254,250,243,.38)}
.newsletter-field input:focus{
  border-color:#d9b178;
  background:rgba(255,255,255,.06);
}
.newsletter-consent{
  display:grid;
  grid-template-columns:18px 1fr;
  gap:12px;
  align-items:start;
  margin:22px 0 28px;
  color:rgba(254,250,243,.62);
  font-size:12px;
  line-height:1.65;
  cursor:pointer;
}
.newsletter-consent input{
  appearance:none;
  width:17px;
  height:17px;
  margin:2px 0 0;
  border:1px solid rgba(254,250,243,.45);
  border-radius:0;
  background:transparent;
  display:grid;
  place-items:center;
  cursor:pointer;
}
.newsletter-consent input::after{
  content:"";
  width:7px;
  height:4px;
  border-left:1.5px solid var(--cream);
  border-bottom:1.5px solid var(--cream);
  transform:rotate(-45deg) scale(0);
  transition:transform .15s ease;
  margin-top:-2px;
}
.newsletter-consent input:checked{background:var(--gold);border-color:var(--gold)}
.newsletter-consent input:checked::after{transform:rotate(-45deg) scale(1)}
.newsletter-consent input:focus-visible{outline:2px solid #e2b67c;outline-offset:3px}
.newsletter-consent a{color:var(--cream);border-bottom:1px solid rgba(254,250,243,.45)}
.newsletter-submit{
  min-width:170px;
  min-height:52px;
  border:0;
  background:var(--gold);
  color:#fff;
  cursor:pointer;
}
.newsletter-submit:hover{background:#8f581e}
@media(max-width:1100px){
  .newsletter-inner{grid-template-columns:1fr;gap:48px}
  .newsletter-copy h2{max-width:820px}
  .newsletter-form{max-width:820px}
}
@media(max-width:900px){
  .newsletter-section{padding:78px 30px}
}
@media(max-width:620px){
  .newsletter-section{padding:68px 24px}
  .newsletter-inner{gap:38px}
  .newsletter-copy h2{font-size:clamp(38px,11vw,50px)}
  .newsletter-copy>p:last-child{font-size:15px}
  .newsletter-fields{grid-template-columns:1fr;gap:16px}
  .newsletter-field input{min-height:54px}
  .newsletter-consent{font-size:11px;margin:20px 0 24px}
  .newsletter-submit{width:100%}
}


/* V54 — live newsletter form states */
.newsletter-honeypot{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.newsletter-action-row{
  display:flex;
  align-items:center;
  gap:20px;
  min-height:52px;
}
.newsletter-status{
  margin:0;
  max-width:440px;
  color:rgba(254,250,243,.72);
  font-size:13px;
  line-height:1.55;
}
.newsletter-status.is-success{color:#f3d7ad}
.newsletter-status.is-error{color:#f0b4a9}
.newsletter-submit[disabled]{
  opacity:.62;
  cursor:wait;
  pointer-events:none;
}
.newsletter-field input[aria-invalid="true"]{
  border-color:#d98d7f;
}
.newsletter-consent input[aria-invalid="true"]{
  border-color:#d98d7f;
  box-shadow:0 0 0 1px #d98d7f;
}
.newsletter-form.is-success .newsletter-fields,
.newsletter-form.is-success .newsletter-consent{
  opacity:.82;
}
@media(max-width:620px){
  .newsletter-action-row{align-items:stretch;flex-direction:column;gap:14px}
  .newsletter-status{font-size:12px;text-align:center;max-width:none}
}

/* Managed Trust Revaro contact forms */
.form-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.managed-form-status{min-height:1.45em;margin:16px 0 0;font:500 13px/1.45 Mulish,sans-serif;color:inherit}
.managed-form-status:empty{margin-top:0;min-height:0}
.managed-form-status.is-success{color:#537c56}
.managed-form-status.is-error{color:#a04438}
.enquiry-panel .managed-form-status,.christmas-party-form-card .managed-form-status{color:rgba(254,250,243,.72)}
.enquiry-panel .managed-form-status.is-success,.christmas-party-form-card .managed-form-status.is-success{color:#f0cf9f}
.enquiry-panel .managed-form-status.is-error,.christmas-party-form-card .managed-form-status.is-error{color:#f0b4a9}
.managed-contact-form button[disabled]{cursor:wait;opacity:.72}

/* V56 — Mead Hall enquiry layout polish */
@media(min-width:901px){
  .mead-page .hall-details{
    display:block;
  }
  .mead-page .hall-details-copy{
    max-width:1180px;
  }
  .mead-page .hall-details-copy>p:not(.eyebrow):not(.inline-contact-note){
    max-width:900px;
  }
  .mead-page .enquiry-panel{
    margin-top:72px;
    padding:64px 58px 58px;
  }
  .mead-page .enquiry-panel>p:not(.eyebrow){
    max-width:780px;
  }
  .mead-page .enquiry-panel h3{
    max-width:780px;
    font-size:clamp(38px,4vw,52px);
  }
  .mead-page .enquiry-panel .venue-enquiry-form{
    max-width:1120px;
    margin-top:42px;
  }
  .mead-page .enquiry-panel .form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:28px;
    row-gap:24px;
  }
  .mead-page .enquiry-panel .form-grid textarea{
    min-height:180px;
  }
  .mead-page .enquiry-panel .button{
    min-width:210px;
    margin:30px 0 0;
  }
}
@media(max-width:900px){
  .mead-page .enquiry-panel{
    margin-top:0;
  }
}


/* V57 — KPOP Halloween event + refreshed What's On ticketing */
.event-kpop{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 22% 28%,rgba(226,182,124,.95) 0 2%,transparent 2.5%),
    radial-gradient(circle at 72% 32%,rgba(255,255,255,.86) 0 1.2%,transparent 1.7%),
    radial-gradient(circle at 62% 70%,rgba(168,108,40,.72) 0 1.5%,transparent 2%),
    linear-gradient(135deg,#251b1e 0%,#4a273b 46%,#1d2637 100%);
}
.event-kpop::before{
  content:'KPOP';
  position:absolute;
  left:7%;
  bottom:-.08em;
  font:700 clamp(48px,5vw,92px)/1 Montserrat,sans-serif;
  letter-spacing:.08em;
  color:rgba(254,250,243,.12);
}
.event-kpop::after{
  content:'HALLOWEEN · 31.10';
  position:absolute;
  right:7%;
  top:10%;
  font:600 9px/1 Montserrat,sans-serif;
  letter-spacing:.2em;
  color:#e2b67c;
}
.kpop-event-feature{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:clamp(50px,7vw,110px);
  align-items:stretch;
  background:var(--cream);
}
.kpop-event-art{
  min-height:570px;
  background:
    radial-gradient(circle at 30% 24%,rgba(226,182,124,.9) 0 1.4%,transparent 1.8%),
    radial-gradient(circle at 75% 38%,rgba(254,250,243,.74) 0 1%,transparent 1.4%),
    radial-gradient(circle at 55% 78%,rgba(168,108,40,.58) 0 1.1%,transparent 1.6%),
    linear-gradient(150deg,#20181b 0%,#462338 48%,#17273a 100%);
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:42px;
  color:var(--cream);
}
.kpop-event-art::before{
  content:'KPOP';
  position:absolute;
  top:11%;
  left:8%;
  font:700 clamp(76px,10vw,170px)/.85 Montserrat,sans-serif;
  letter-spacing:-.04em;
  color:rgba(254,250,243,.08);
  transform:rotate(-5deg);
}
.kpop-event-art::after{
  content:'';
  position:absolute;
  inset:16%;
  border:1px solid rgba(226,182,124,.32);
  transform:rotate(8deg);
}
.kpop-event-art-mark{position:relative;z-index:1;font:400 clamp(58px,7vw,105px)/.9 'Libre Baskerville',serif;color:#e2b67c;letter-spacing:-.06em}
.kpop-event-art-sub{position:relative;z-index:1;margin-top:16px;font:600 10px/1 Montserrat,sans-serif;letter-spacing:.28em}
.kpop-event-copy{align-self:center;max-width:760px}
.kpop-event-copy h2{font-size:clamp(42px,5vw,72px);margin-bottom:28px}
.kpop-event-copy>p:not(.eyebrow):not(.kpop-event-note){color:#675c60;font-size:17px;max-width:720px}
.kpop-ticket-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:34px 0 22px}
.kpop-ticket-details>div{border-top:1px solid var(--gold);padding:18px 0 0;display:grid;grid-template-columns:auto 1fr;column-gap:18px;align-items:baseline}
.kpop-ticket-details span{font:600 10px/1 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.14em;color:#6b5f63}
.kpop-ticket-details strong{justify-self:end;font:400 26px/1 'Libre Baskerville',serif;color:var(--ink)}
.kpop-ticket-details small{grid-column:1/-1;margin-top:10px;color:#75686c;font-size:12px;line-height:1.55}
.kpop-event-note{font-size:13px;color:#75686c;margin-top:18px;max-width:680px}
@media(max-width:900px){
  .kpop-event-feature{grid-template-columns:1fr;gap:44px}
  .kpop-event-art{min-height:390px}
}
@media(max-width:520px){
  .kpop-event-art{min-height:300px;padding:28px}
  .kpop-ticket-details{grid-template-columns:1fr;gap:24px}
  .kpop-event-copy h2{font-size:clamp(38px,11vw,54px)}
}

/* V58 — consistent What's On event rows + supplied KPOP photography */
.event-kpop{
  background-image:url('images/kpop-demon-hunters.webp');
  background-size:cover;
  background-position:center 28%;
}
.event-kpop::before,.event-kpop::after{content:none!important}

.whats-on-page .whats-on-event-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(48px,6vw,96px);
  align-items:start;
}
.whats-on-page .whats-on-event-image{
  margin:0;
  width:100%;
  aspect-ratio:1 / 1;
  overflow:hidden;
  background:var(--paper);
}
.whats-on-page .whats-on-event-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.whats-on-page .kpop-event-photo img{object-position:center 25%}
.whats-on-page .christmas-event-photo img{object-position:center 48%}
.whats-on-page .whats-on-event-copy{
  min-width:0;
  align-self:start;
  padding-top:12px;
}
.whats-on-page .kpop-event-copy,
.whats-on-page .christmas-feature-copy{max-width:none}
.whats-on-page .kpop-event-copy h2,
.whats-on-page .christmas-feature-copy h2{margin-top:0}
.whats-on-page .kpop-ticket-details{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.whats-on-page .kpop-ticket-details>div{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}
.whats-on-page .kpop-ticket-details strong{justify-self:auto}
.whats-on-page .kpop-ticket-details small{grid-column:auto;margin-top:0}

@media(max-width:900px){
  .whats-on-page .whats-on-event-row{grid-template-columns:1fr;gap:34px}
  .whats-on-page .whats-on-event-copy{padding-top:0}
  .whats-on-page .kpop-ticket-details{grid-template-columns:1fr;gap:22px}
}
