/* José Pizarro: one stylesheet for every Couch-served page.
   Part 1 is the signed-off CSS, unchanged and in its original load order.
   Part 2 (end of file) adds colourways and type pairings. */

/* ---- from shared-rich-text-20261006.css ---- */
/* One source of truth for editor-applied styles, across all page/section types. */
body main .jp-text-title{font-family:var(--serif,"Iowan Old Style",Baskerville,serif)!important;font-size:31px!important;font-weight:400!important;line-height:37px!important;letter-spacing:-1px;margin:0 0 28px}
body main .jp-text-intro,body main p.intro,body main p.intro-copy{font-family:var(--sans,Inter,Arial,sans-serif)!important;font-size:19px!important;font-weight:400!important;line-height:23px!important;margin:0 0 1em}
body main .muted{opacity:.5}
body main .jp-text-title em,body main .jp-text-title i,body main .jp-text-intro em,body main .jp-text-intro i{font-style:italic}
.section-text-content h1,.event-text-content h1,.hp-rich h1{font:400 31px/37px var(--serif,"Iowan Old Style",Baskerville,serif);margin:0 0 24px}
.section-text-content h2,.event-text-content h2,.hp-rich h2{font:400 19px/23px var(--sans,Inter,Arial,sans-serif);margin:0 0 1em}
@media(max-width:700px){body main .jp-text-title{font-size:31px!important}}

/* ---- from shared-nav-nowrap.css ---- */
/* Shared desktop nav: each label remains a single, non-shrinking item. */
body .global-nav .global-nav-inner{flex-wrap:nowrap}
body .global-nav .global-nav-inner>a{white-space:nowrap;flex:0 0 auto}

/* ---- from shared-section-heights.css ---- */
/* One shared sizing rule for equivalent 50/50 content sections.
   Images never contribute intrinsic height. Copy may expand without clipping.
   Opening heroes, full-width media, rails and card grids keep their own rules. */
:root{--jp-split-min-height:650px}
:is(body main section:is(.split-section,.split,.menus-grid,.pizarro-menu-split,.daily-menu,.drinks-section,.standard-split,.venue-section,.keepers-section,.service-section,.product-section,.home-custom-split,.promo-section),body.campaign-page main section.split-section){min-height:var(--jp-split-min-height)!important;height:auto!important;max-height:none!important;grid-template-rows:auto}
:is(body main section:is(.split-section,.split,.menus-grid,.pizarro-menu-split,.daily-menu,.drinks-section,.standard-split,.venue-section,.keepers-section,.service-section,.product-section,.home-custom-split,.promo-section),body.campaign-page main section.split-section) > *{min-height:0!important;height:auto!important;max-height:none!important;min-width:0;align-self:stretch}
:is(body main section:is(.split-section,.split,.menus-grid,.pizarro-menu-split,.daily-menu,.drinks-section,.standard-split,.venue-section,.keepers-section,.service-section,.product-section,.home-custom-split,.promo-section),body.campaign-page main section.split-section) > :is(.split-media,.media,.image-panel,.pizarro-menu-media,.daily-media,.drinks-media,.standard-media,.venue-media,.keepers-media,.service-media,.product-media,.home-custom-media,.promo-media,.promo-image){position:relative!important;overflow:hidden;aspect-ratio:auto!important;margin:0!important;padding:0!important}
:is(body main section:is(.split-section,.split,.menus-grid,.pizarro-menu-split,.daily-menu,.drinks-section,.standard-split,.venue-section,.keepers-section,.service-section,.product-section,.home-custom-split,.promo-section),body.campaign-page main section.split-section) > :is(.split-media,.media,.image-panel,.pizarro-menu-media,.daily-media,.drinks-media,.standard-media,.venue-media,.keepers-media,.service-media,.product-media,.home-custom-media,.promo-media,.promo-image) :is(.media-carousel,.site-image-carousel,picture){position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important}
:is(body main section:is(.split-section,.split,.menus-grid,.pizarro-menu-split,.daily-menu,.drinks-section,.standard-split,.venue-section,.keepers-section,.service-section,.product-section,.home-custom-split,.promo-section),body.campaign-page main section.split-section) > :is(.split-media,.media,.image-panel,.pizarro-menu-media,.daily-media,.drinks-media,.standard-media,.venue-media,.keepers-media,.service-media,.product-media,.home-custom-media,.promo-media,.promo-image) img{position:absolute!important;inset:0!important;display:block;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important;object-fit:cover!important}
@media(max-width:700px){
:is(body main section:is(.split-section,.split,.menus-grid,.pizarro-menu-split,.daily-menu,.drinks-section,.standard-split,.venue-section,.keepers-section,.service-section,.product-section,.home-custom-split,.promo-section),body.campaign-page main section.split-section){min-height:0!important;grid-template-columns:minmax(0,1fr)!important}
:is(body main section:is(.split-section,.split,.menus-grid,.pizarro-menu-split,.daily-menu,.drinks-section,.standard-split,.venue-section,.keepers-section,.service-section,.product-section,.home-custom-split,.promo-section),body.campaign-page main section.split-section) > :is(.split-media,.media,.image-panel,.pizarro-menu-media,.daily-media,.drinks-media,.standard-media,.venue-media,.keepers-media,.service-media,.product-media,.home-custom-media,.promo-media,.promo-image){aspect-ratio:1/1!important;min-height:0!important;height:auto!important}
}

/* ---- from shared-reservations-edge.css ---- */
/* The fixed Reservations element is independent of nav show/hide offsets. */
html body .reservations-control .jp-fixed-reservations.reservations-trigger,
html body .jp-fixed-reservations.reservations-trigger {
 top:0!important;right:0!important;left:auto!important;margin:0!important;
 transform:none!important;translate:none!important;
}
html body .reservations-control .reservations-dropdown {
 top:var(--jp-reservations-height,48px)!important;
 right:0!important;left:auto!important;
 width:var(--jp-reservations-width,164px)!important;
}

/* ---- from lolo-proof.css ---- */
:root{--dark:#252524;--cream:#ddd3c4;--off:#f4f0e9;--white:#f6f2eb;--red:#993331;--orange:#db6842;--lolo-red:#6e2b31;--sans:"Inter",Arial,sans-serif;--serif:"Iowan Old Style","Baskerville","Times New Roman",serif;--pad:clamp(22px,4vw,58px);--nav:48px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--dark);font:400 16px/19px var(--sans);-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-underline-offset:.2em;transition:color .2s}a:hover{color:var(--orange)}img{display:block;max-width:100%}.global-nav{position:fixed;top:0;left:0;right:0;height:var(--nav);z-index:400;background:var(--off);transition:transform 320ms ease}.global-nav-inner{height:100%;display:flex;align-items:center;justify-content:center;gap:clamp(28px,3.2vw,52px);width:min(calc(100% - 80px),1200px);margin:auto;font-size:14px}.global-nav a{text-decoration:none}body.global-nav-hidden .global-nav{transform:translateY(-100%)}.site-header{position:absolute;top:var(--nav);left:0;right:0;z-index:500;height:0}.site-logo{position:absolute;top:12px;left:50%;width:min(190px,34vw);transform:translateX(-50%)}.site-logo img{width:100%}.menu-toggle{position:fixed;top:72px;left:32px;width:28px;height:18px;border:0;background:transparent;cursor:pointer;z-index:520;mix-blend-mode:exclusion}.menu-toggle:before,.menu-toggle:after{content:"";position:absolute;left:0;width:100%;height:1px;background:#fff}.menu-toggle:before{top:3px}.menu-toggle:after{bottom:3px}body.menu-open .menu-toggle:before{top:50%;transform:rotate(45deg)}body.menu-open .menu-toggle:after{top:50%;bottom:auto;transform:rotate(-45deg)}.reservations-trigger{position:fixed;top:72px;right:32px;width:226px;z-index:520;display:block;margin:0;padding:0;border:0;background:transparent;color:#fff;font:14px/16px var(--sans);text-align:right;text-decoration:underline;text-underline-offset:.2em;cursor:pointer;mix-blend-mode:exclusion;transition:top 320ms ease}.reservations-dropdown{position:fixed;top:98px;right:32px;width:226px;z-index:519;max-height:0;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-4px);mix-blend-mode:normal;transition:max-height 760ms ease,opacity 620ms ease,transform 660ms ease,visibility 0s linear 760ms}@media(hover:hover) and (pointer:fine) and (min-width:701px){.reservations-trigger{padding-bottom:10px}.reservations-control:hover .reservations-dropdown,.reservations-control:focus-within .reservations-dropdown{max-height:360px;visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);transition:max-height 700ms ease,opacity 700ms ease,transform 700ms ease,visibility 0s}}.reservations-control.is-open .reservations-dropdown{max-height:360px;visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);transition:max-height 700ms ease,opacity 700ms ease,transform 700ms ease,visibility 0s}.reservations-dropdown a{display:flex;align-items:center;justify-content:center;min-height:41px;padding:10px 14px;border:1px solid rgba(255,255,255,.72);border-bottom:0;background:var(--off);color:var(--red);text-decoration:none}.reservations-dropdown a:last-child{border-bottom:1px solid rgba(255,255,255,.72)}.reservations-dropdown a.is-current,.reservations-dropdown a:hover{background:rgba(153,51,49,.96);color:#fff}.menu-overlay{position:fixed;inset:0;z-index:450;display:flex;align-items:center;justify-content:center;padding:120px var(--pad) 60px;background:rgba(153,51,49,.96);color:#fff;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s}.menu-overlay-inner{width:min(100%,580px);text-align:center}.menu-overlay-group{margin-bottom:24px}.menu-overlay a,.menu-detail{display:block;margin:5px 0;text-decoration:none}.menu-contact-gap{margin-top:19px}body.menu-open .menu-overlay{opacity:1;visibility:visible;pointer-events:auto}body.menu-open .menu-toggle,.body.menu-open .reservations-trigger{mix-blend-mode:normal}.venue-hero,.split-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:650px}.venue-hero{min-height:calc(100svh - var(--nav));background:var(--lolo-red);color:var(--white)}.venue-hero-copy,.split-copy{display:flex;align-items:center;min-width:0}.venue-hero-inner,.split-copy-inner{width:min(100%,520px);margin:auto;padding:clamp(95px,10vw,155px) clamp(38px,7vw,110px)}.venue-hero-inner{width:min(100%,600px)}.venue-hero-inner p,.split-copy-inner p{margin:0 0 18px}.intro-copy{font-size:19px;line-height:23px}.section-title{margin:0 0 28px;font:400 31px/37px var(--serif);letter-spacing:-1px}.venue-hero-media,.split-media{position:relative;min-width:0;overflow:hidden;background:#aaa49a}.venue-hero-media img,.split-media img{width:100%;height:100%;object-fit:cover}.venue-hero-media img{min-height:calc(100svh - var(--nav))}.split-media img{min-height:650px}.split-light,.split-light .split-copy,.visit{background:var(--off);color:var(--lolo-red)}.split-brand,.split-brand .split-copy{background:var(--lolo-red);color:var(--white)}.menu-list{display:flex;flex-direction:column;align-items:flex-start}.menu-item{margin:0 0 13px}.section-links{display:flex;flex-wrap:wrap;margin-top:30px}.section-links a+a:before{content:"";display:inline-block;width:18px}.visit,.neighbours{padding:clamp(100px,11vw,165px) var(--pad)}.visit-inner,.neighbours-inner{width:min(100%,1050px);margin:auto}.visit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(40px,7vw,100px)}.visit h3,.neighbour-card h3{margin:0 0 25px;font:400 31px/37px var(--serif);letter-spacing:-1px}.visit-column p{margin:0 0 18px}.event-note{font-size:13px;line-height:16px;opacity:.52}.neighbours{background:var(--lolo-red);color:var(--white)}.neighbours>.neighbours-inner>.section-title{margin:0 0 100px}.neighbours-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,3vw,45px)}.neighbour-image{aspect-ratio:3/2;margin:0 0 25px;overflow:hidden}.neighbour-image img{width:100%;height:100%;object-fit:cover}.neighbour-card-copy{max-width:490px}.neighbour-card p{margin:0 0 22px}.signup{padding:clamp(65px,7vw,105px) var(--pad) clamp(80px,8vw,125px);background:var(--cream);color:var(--red)}.signup-inner{width:min(100%,720px);margin:auto}.signup-title{margin:0 0 45px;font:400 20px/24px var(--sans)}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-bottom:9px}.form-field{width:100%;padding:8px 0;color:var(--red);background:transparent;border:0;border-bottom:1px solid currentColor;border-radius:0;font:16px/19px var(--sans);outline:none}.form-field::placeholder{color:var(--red);opacity:1}.email-row{margin-bottom:11px}.signup-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 20px;margin:13px 0 28px;font-size:13px;line-height:16px}.signup-options label{display:flex;align-items:flex-start;gap:7px;cursor:pointer}.signup-options input[type="checkbox"]{appearance:none;-webkit-appearance:none;position:relative;flex:0 0 auto;width:15px;height:15px;margin:1px 0 0;border:1px solid var(--red);border-radius:2px;background:var(--cream)}.signup-options input[type="checkbox"]:checked{background:var(--red)}.signup-options input[type="checkbox"]:checked::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid var(--white);border-width:0 2px 2px 0;transform:rotate(45deg)}.contacta-compatibility{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.subscribe-button{padding:0;color:inherit;background:transparent;border:0;border-bottom:1px solid currentColor;font:20px/24px var(--sans)}.site-footer{padding:60px var(--pad);background:var(--dark);color:#fff;font-size:13px;line-height:1.6}.footer-inner{width:min(100%,1050px);margin:auto}.footer-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:25px 50px}.footer-column a{display:block;text-decoration:none;margin-bottom:6px}.footer-column-last{position:relative;padding-right:34px}.footer-social{position:absolute;top:0;right:0;display:flex;flex-direction:column;gap:8px;width:18px}.footer-social img{width:18px;height:18px}.footer-legal{margin-top:40px;opacity:.68}.proof-note{position:fixed;left:0;right:0;bottom:0;z-index:9000;background:#252524;color:#fff;padding:7px 15px;text-align:center;font:12px/16px Arial,sans-serif}
@media(max-width:700px){.global-nav{display:none}.site-header{top:0}.site-logo{top:17px;width:min(170px,42vw)}.menu-toggle,.reservations-trigger{top:24px}.reservations-trigger{right:18px;width:50vw;padding-bottom:0}.reservations-dropdown{top:90px;right:18px;width:50vw}.venue-hero,.split-section{grid-template-columns:1fr;min-height:auto}.venue-hero-inner,.split-copy-inner{width:100%;padding:100px var(--pad)}.venue-hero-inner{padding-top:145px}.venue-hero-media img,.split-media img{min-height:0;height:auto;aspect-ratio:1/1;object-fit:cover}.mobile-media-first .split-media{order:-1}.visit-grid,.neighbours-grid{grid-template-columns:1fr}.neighbours-grid{gap:65px}.neighbours>.neighbours-inner>.section-title{margin-bottom:65px}.neighbour-image{aspect-ratio:3/2}.form-row{grid-template-columns:1fr}.signup-options{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:repeat(2,1fr);gap:28px}.footer-column-last{padding-right:0}.footer-social{left:calc(100% + 28px);right:auto}}
.split-media.has-gallery{position:relative;min-height:650px}.split-media.has-gallery img{position:absolute;inset:0;height:100%;opacity:0;transition:opacity .8s ease}.split-media.has-gallery img.is-active{opacity:1}@media(max-width:700px){.split-media.has-gallery{min-height:0;aspect-ratio:1/1}.split-media.has-gallery img{min-height:0;aspect-ratio:auto}}
.venue-hero-copy .muted,.split-copy .muted,.visit .muted{opacity:.5}.section-subtitle{font:400 18px/1.35 var(--sans);margin:0 0 20px}

/* ---- from shared-content.css ---- */
/* Canonical section text and action links. Venue contact details are separate. */
body main a.venue-menu-link,body main a.venue-contact,body main a.jp-action-link{display:inline-block;margin-top:10px;margin-bottom:0;gap:0;color:inherit;opacity:1;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:var(--body-line-height,19px);text-decoration:underline;text-underline-offset:4px;transition:opacity .2s ease}
body main a.venue-menu-link:hover,body main a.venue-contact:hover,body main a.jp-action-link:hover{color:inherit;opacity:.65;text-decoration:underline}
body main a.venue-menu-link:focus-visible,body main a.venue-contact:focus-visible,body main a.jp-action-link:focus-visible{outline:1px solid currentColor;outline-offset:4px}
body main p.intro,body main .intro{font-size:19px;line-height:23px}
body main .muted{opacity:.5}
.jp-keyline{border-bottom:1px solid currentColor}
.jp-columns-1{--columns:1;--count:1}.jp-columns-2{--columns:2;--count:2}.jp-columns-3{--columns:3;--count:3}.jp-columns-4{--columns:4;--count:4}
.jp-card-link{display:block;color:inherit;text-decoration:none}
.jp-honeypot{position:absolute;left:-9999px}
.jp-focus-left{object-position:left center}.jp-focus-center{object-position:center center}.jp-focus-right{object-position:right center}
[data-palette="brown"]{--section-bg:#987653;--section-fg:#f6f2eb}[data-palette="red"]{--section-bg:#993331;--section-fg:#f6f2eb}[data-palette="cream"]{--section-bg:#ddd3c4;--section-fg:#252524}[data-palette="light"]{--section-bg:#f4f0e9;--section-fg:#252524}[data-palette="dark"]{--section-bg:#252524;--section-fg:#f6f2eb}[data-palette="white"]{--section-bg:#f6f2eb;--section-fg:#252524}

.jp-italic{font-style:italic}.jp-bold{font-weight:700}.jp-text-left{text-align:left}.jp-text-center{text-align:center}.jp-text-right{text-align:right}

/* ---- from shared-header.css ---- */
body:not(.catering-page) .faq-list{margin-top:30px;border-top:1px solid rgba(128,128,128,.35)}
body:not(.catering-page) .faq-item{border-bottom:1px solid rgba(128,128,128,.35)}
body:not(.catering-page) .faq-question{display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px;width:100%;padding:14px 0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
body:not(.catering-page) .faq-arrow{transition:transform .3s ease}
body:not(.catering-page) .faq-question[aria-expanded="true"] .faq-arrow{transform:rotate(180deg)}
body:not(.catering-page) .faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}
body:not(.catering-page) .faq-answer-inner{overflow:hidden}
body:not(.catering-page) .faq-answer-content{padding:0 28px 18px 0}
body:not(.catering-page) .faq-item.is-open .faq-answer{grid-template-rows:1fr}
main p.intro{font-size:19px;line-height:23px}body a.address-link,body a[href^="https://maps."],body a[href^="http://maps."],body a[href*="://www.google.com/maps/"],body a[href*="://goo.gl/maps/"]{text-decoration:none!important}body a.address-link:hover,body a[href^="https://maps."]:hover,body a[href^="http://maps."]:hover,body a[href*="://www.google.com/maps/"]:hover,body a[href*="://goo.gl/maps/"]:hover{opacity:.72;text-decoration:none!important}

/* ---- from shared-reservations-fixed.css ---- */
body .reservations-control{position:static;width:0;height:0}
body .reservations-trigger{position:fixed;top:72px;right:var(--header-pad-x,32px);z-index:710;display:block;width:226px;margin:0;padding:0 0 10px;border:0;background:transparent;color:#fff;font:400 14px/16px var(--sans,Inter,Arial,sans-serif);text-align:right;text-decoration:underline;text-underline-offset:.2em;cursor:pointer;mix-blend-mode:exclusion}
body .reservations-dropdown{position:fixed;top:98px;right:var(--header-pad-x,32px);z-index:709;width:226px;max-height:0;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-4px);mix-blend-mode:normal;transition:max-height 760ms ease,opacity 620ms ease,transform 660ms ease,visibility 0s linear 760ms}
body .reservations-control.is-open .reservations-dropdown{max-height:360px;overflow:auto;visibility:visible;opacity:1;pointer-events:auto;transform:none;transition:max-height 700ms ease,opacity 700ms ease,transform 700ms ease,visibility 0s}
@media(hover:hover) and (pointer:fine) and (min-width:701px){
body .reservations-control:not(.is-scroll-closed):hover .reservations-dropdown,body .reservations-control:not(.is-scroll-closed):focus-within .reservations-dropdown,body .reservations-control:not(.is-scroll-closed).is-hovered .reservations-dropdown{max-height:360px;overflow:auto;visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);transition:max-height 700ms ease,opacity 700ms ease,transform 700ms ease,visibility 0s}
}
body .reservations-dropdown a{display:flex;align-items:center;justify-content:center;min-height:41px;padding:10px 14px;border:1px solid rgba(255,255,255,.72);border-bottom:0;background:var(--off,#f4f0e9);color:var(--red,#993331);font:400 16px/20px var(--sans,Inter,Arial,sans-serif);text-align:center;text-decoration:none;transition:background-color 180ms ease,color 180ms ease}
body .reservations-dropdown a:last-child{border-bottom:1px solid rgba(255,255,255,.72)}
body .reservations-dropdown a:hover,body .reservations-dropdown a:focus-visible{background:var(--red,#993331);color:var(--white,#f6f2eb)}
body.menu-open .reservations-trigger{mix-blend-mode:normal}
@media(max-width:700px){body .reservations-trigger,body .reservations-dropdown{width:50vw}body .reservations-trigger{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){body .reservations-trigger,body .reservations-dropdown,body .reservations-dropdown a{transition:none!important}}

:root{--jp-reservations-height:48px;--jp-reservations-width:164px}
body .jp-fixed-reservations{position:fixed!important;top:0!important;right:0!important;left:auto!important;z-index:900!important;display:flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;width:var(--jp-reservations-width)!important;min-width:0!important;max-width:none!important;height:var(--jp-reservations-height)!important;margin:0!important;padding:0 18px!important;border:0!important;border-radius:0!important;background:#993331!important;color:#f6f2eb!important;font:400 14px/18px var(--sans,Inter,Arial,sans-serif)!important;text-align:center!important;text-decoration:none!important;mix-blend-mode:normal!important;transform:none!important;translate:none!important;cursor:pointer}
body .reservations-control{position:static!important;transform:none!important;mix-blend-mode:normal!important}
body .reservations-dropdown{top:var(--jp-reservations-height)!important;right:0!important;width:var(--jp-reservations-width)!important;z-index:899!important;mix-blend-mode:normal!important}
@media(min-width:701px){body .global-nav-inner{padding-right:var(--jp-reservations-width);padding-left:var(--jp-reservations-width);box-sizing:border-box}}
@media(max-width:700px){:root{--jp-reservations-width:140px}body .jp-fixed-reservations{font-size:13px!important}}

/* ---- from shared-reservations-location-20261006-10px.css ---- */
/* Preview location caption; the whole item retains its existing booking link. */
html body .reservations-control .reservations-dropdown a.jp-reservations-abudhabi {
 flex-direction:column;
}
html body .reservations-control .reservations-dropdown a.jp-reservations-abudhabi::after {
 content:"Abu Dhabi";
 display:block;
 margin-top:3px;
 font-family:var(--sans,Inter,Arial,sans-serif);
 font-size:10px;
 font-weight:400;
 line-height:10px;
 color:inherit;
}

/* ---- from shared-mobile-header-20261007.css ---- */
/* Shared mobile header dimensions for all group and venue pages. */
@media (max-width:700px) {
 html body .site-header .site-logo {
  width:140px!important;
  min-width:140px!important;
  max-width:140px!important;
 }
 html body .site-header .site-logo img {
  width:100%!important;
  max-width:140px!important;
  height:auto!important;
 }
 html body .jp-fixed-reservations {
  width:max-content!important;
  min-width:0!important;
  max-width:none!important;
  padding-left:18px!important;
  padding-right:18px!important;
  white-space:nowrap;
 }
}

/* ---- from shared-footer.css ---- */
/* Canonical shared footer: kept here so page renderers cannot drift. */
.site-footer{padding:60px var(--page-pad, var(--pad, 40px));background:var(--dark);color:#fff;font-size:13px;line-height:1.6}
.site-footer .footer-inner{width:min(100%,1050px);margin:auto}
.site-footer .footer-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.15fr) minmax(0,1.15fr) minmax(0,1.15fr) minmax(0,1.15fr) 18px;column-gap:clamp(28px,3.2vw,50px);align-items:start}
.site-footer .footer-column a{display:block;margin:0 0 6px;text-decoration:none}
.site-footer .footer-column.inc{padding-top:27px}
.site-footer .footer-social-column{display:flex;flex-direction:column;align-items:center;gap:8px;width:18px}
.site-footer .footer-social-column a{display:block;width:18px;height:18px;margin:0;text-decoration:none}
.site-footer .footer-social-column img{display:block;width:18px;height:18px;margin:0;object-fit:contain}
.site-footer .footer-legal{margin-top:40px;opacity:.68}
@media(max-width:700px){
  .site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
  .site-footer .footer-column.inc{padding-top:0}
  .site-footer .footer-social-column{grid-column:2;align-items:flex-start}
}

/* =====================================================================================
   Part 2. The shared section set: section height, headings, colourways, type pairings,
   and the section types added in Couch.
   ===================================================================================== */

/* ---- One section height. Change these three values to resize every opening, 50/50 and
   full-width media section at once. Screens from --jp-wide up use whichever is taller. ---- */
:root{--jp-section-height:650px;--jp-section-height-large:75vh}
:root{--jp-split-min-height:var(--jp-section-height)}
@media(min-width:1600px){:root{--jp-split-min-height:max(var(--jp-section-height),var(--jp-section-height-large))}}

/* ---- Colourways. Each sets a background and a text colour that reads on it. --ink is the
   text colour on the pale backgrounds (chosen per page), --venue/--venue-fg the venue or page
   colour and the text that reads on it. ---- */
:root{--brown:#987653;--light:#f4f0e9;--venue:var(--red);--venue-fg:#f6f2eb;--ink:var(--dark)}
/* Each colour of Site-wide > Colours gets its rule in the page head:
   [data-colour="key"]{--sec-bg:…;--sec-fg:…}. Only the page's own colour is defined here. */
[data-colour="venue"]{--sec-bg:var(--venue);--sec-fg:var(--venue-fg)}
main>section[data-colour],main>section[data-colour] .split-copy,main>section[data-colour] .venue-hero-copy,main .ev-body>section[data-colour]{background:var(--sec-bg);color:var(--sec-fg)}
main>section.signup[data-colour] .form-field{color:var(--sec-fg)}
main>section.signup[data-colour] .form-field::placeholder{color:var(--sec-fg)}
main>section.signup[data-colour] .signup-options input[type="checkbox"]{border-color:var(--sec-fg);background:var(--sec-bg)}
main>section.signup[data-colour] .signup-options input[type="checkbox"]:checked{background:var(--sec-fg)}
main>section.signup[data-colour] .signup-options input[type="checkbox"]:checked::after{border-color:var(--sec-tick,var(--sec-bg))}

/* ---- Type pairings ---- */
[data-type^="serif-"]{--title-font:var(--serif);--title-ls:-1px}
[data-type^="sans-"]{--title-font:var(--sans);--title-ls:0}
[data-type$="-sans"]{--body-font:var(--sans)}
[data-type$="-serif"]{--body-font:var(--serif)}
main>section[data-type],main .ev-body>section[data-type]{font-family:var(--body-font)}
main>section[data-type] :is(.section-title,.visit-column h3,.neighbour-card h3,.jp-rail-card h3,.jp-grid-item h3,.jp-text-title,.rt-h2),main .ev-body>section[data-type] :is(.section-title,.visit-column h3,.neighbour-card h3,.jp-rail-card h3,.jp-grid-item h3,.jp-text-title,.rt-h2){font-family:var(--title-font)!important;letter-spacing:var(--title-ls)}
main>section[data-type] :is(p.intro,p.intro-copy,.jp-text-intro,.section-subtitle,.rt-h3),main .ev-body>section[data-type] :is(p.intro,p.intro-copy,.jp-text-intro,.section-subtitle,.rt-h3){font-family:var(--body-font)!important}

/* ---- Spacing rule. Text has no space between its lines or paragraphs: every return is one
   line, and an empty line is one line of space (--jp-line), in the editor and on the page alike.
   Between separate fields of a section (heading, text, list, small print) there is one line. ---- */
:root{--jp-line:21px}
/* Page body text: 16px on a 21px line. The line is also the spacing unit. Nav, menu and footer keep their own spacing. */
main{line-height:21px}
html body main :is(section,.ev-body) :is(p,ul,ol,blockquote,h2.rt-h2,h3.rt-h3){margin-top:0;margin-bottom:0}
html body main :is(section,.ev-body) p:empty{min-height:var(--jp-line)}
html body main :is(section,.ev-body) :is(ul,ol){padding-left:1.2em}
.menu-list .menu-item{margin:0}
.menu-list.is-blank .menu-item+.menu-item{margin-top:var(--jp-line)}
html body main section :not(.section-title):not(.section-subtitle)+.menu-list{margin-top:var(--jp-line)}
html body main section .menu-list+p.event-note{margin-top:var(--jp-line)}
.visit-column .visit-auto+*,.visit-column *+.visit-auto{margin-top:var(--jp-line)}
.visit-column .visit-auto p+p{margin-top:var(--jp-line)}
.neighbour-card-copy h3,.jp-rail-card h3,.jp-grid-item h3{margin-bottom:var(--jp-line)!important}
.neighbour-card-copy .text-link,.jp-rail-card .jp-rail-link:first-of-type{margin-top:var(--jp-line)}
.neighbour-card-copy .text-link{display:inline-block}
.jp-rail-link{margin-bottom:0!important}
.jp-text.is-columns .jp-text-cols>*+*{margin-top:0}

/* ---- Headings: one small shared gap. Nothing above a heading; one text line (--jp-line)
   between the heading block and what follows. ---- */
main .section-title{margin:0 0 var(--jp-line)}
main .section-title:has(+.section-subtitle){margin-bottom:0}
main .section-subtitle{margin:0 0 var(--jp-line);font:400 18px/1.35 var(--sans)}
main .visit h3{margin:0 0 var(--jp-line)}
.jp-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
/* Headings typed in the text editor ("Heading" / "Subheading" in the Styles list) */
main .rt-h2{margin:0;font:400 31px/37px var(--serif);letter-spacing:-1px}
main .rt-h3{margin:0;font:400 19px/23px var(--sans)}
main p.jp-large{font-size:clamp(21px,2vw,28px);line-height:1.25}
/* [br]: a line break on desktop only */
@media(max-width:700px){br.br-d{display:none}}

/* ---- Opening and 50/50 at the shared height ---- */
.venue-hero{min-height:var(--jp-split-min-height)}
.venue-hero-media{position:relative;min-height:var(--jp-split-min-height)}
.venue-hero-media>img,.venue-hero-media>picture,.venue-hero-media>picture>img{position:absolute;inset:0;width:100%;height:100%;min-height:0!important;object-fit:cover}
.split-media img{min-height:0}
.venue-hero.media-left .venue-hero-media{order:-1}
.venue-hero-media.has-gallery>img,.split-media.has-gallery>img,.jp-media-fill.has-gallery>img{opacity:0;transition:opacity .8s ease}
.venue-hero-media.has-gallery>img.is-active,.jp-media-fill.has-gallery>img.is-active{opacity:1}
@media(max-width:700px){
 .venue-hero-media{min-height:0;aspect-ratio:1/1}
 .venue-hero.media-left .venue-hero-media{order:-1}
}

/* ---- Video covering its box ---- */
.has-video{container-type:size}
.has-video>.jp-video{position:absolute;top:50%;left:50%;width:max(100cqw,177.78cqh);height:max(56.25cqw,100cqh);border:0;transform:translate(-50%,-50%);pointer-events:none}
.jp-video-mobile{display:none}
@media(max-width:700px){.jp-video-desktop{display:none}.jp-video-mobile{display:block}}

/* ---- Full-width media, and the full-width opening with text over it ---- */
.jp-full-media,.jp-full-hero{position:relative;overflow:hidden}
.jp-media-fill{position:relative;height:var(--jp-split-min-height);overflow:hidden;background:#989695}
.jp-media-fill>img,.jp-media-fill>picture,.jp-media-fill>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.jp-full-hero-copy{position:absolute;left:var(--pad);bottom:clamp(55px,7vw,105px);z-index:2;width:min(500px,calc(100% - var(--pad)*2));color:#fff}
.jp-full-hero-copy p{margin:0 0 18px;font-size:28px;line-height:34px}
.jp-full-hero-copy p:last-child{margin-bottom:0}
@media(max-width:700px){.jp-media-fill{height:auto;aspect-ratio:4/5}.jp-full-hero .jp-media-fill{aspect-ratio:auto;height:calc(100svh - 0px)}.jp-full-hero-copy{bottom:80px}}

/* ---- Text ---- */
.jp-text{padding:clamp(90px,9vw,140px) var(--pad)}
.jp-text.space-compact{padding:clamp(45px,5vw,70px) var(--pad)}
.jp-text-inner{width:min(100%,850px);margin:auto}
.jp-text.align-center{text-align:center}
.jp-text-inner p{margin:0 0 18px}
.jp-text-inner>:last-child,.jp-text-body>:last-child{margin-bottom:0}
.jp-text-badge{display:block;max-width:60px;max-height:60px;margin:0 0 20px}
.jp-text.align-center .jp-text-badge{margin:0 auto 20px}
.jp-text.is-beside .jp-text-inner{width:min(100%,1050px);display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
@media(max-width:700px){.jp-text{padding:100px var(--pad)}.jp-text.space-compact{padding:55px var(--pad)}.jp-text.is-beside .jp-text-inner{grid-template-columns:1fr;gap:0}}

/* ---- Shared block heading (sliding cards, grid) ---- */
.jp-block-head{width:min(calc(100% - var(--pad)*2),850px);margin:0 auto 55px;text-align:center}
.jp-block-head>:last-child{margin-bottom:0}
.jp-block-head p{margin:0 0 18px}
.neighbours>.neighbours-inner>.section-title{margin-bottom:60px}
.neighbours>.neighbours-inner>.section-title:has(+.section-subtitle){margin-bottom:0}
.neighbours>.neighbours-inner>.section-subtitle{margin-bottom:60px}
.neighbour-card-copy p{margin:0 0 22px}

/* ---- Sliding cards ---- */
.jp-rail{padding:clamp(70px,7vw,105px) 0 clamp(85px,8vw,120px);overflow:hidden}
.jp-rail-track{display:flex;gap:20px;padding:0 20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.jp-rail-track::-webkit-scrollbar{display:none}
.jp-rail-card{flex:0 0 clamp(300px,31vw,440px);scroll-snap-align:start}
.jp-rail-image{aspect-ratio:1.55/1;margin:0 0 24px;overflow:hidden;background:#989695}
.jp-rail-image img{width:100%;height:100%;object-fit:cover}
.jp-rail-card h3{font:400 31px/37px var(--serif);margin:0 0 18px}
.jp-rail-card p{max-width:390px;margin:0 0 18px}
.jp-rail-link{display:block;width:fit-content;margin-bottom:5px}
@media(max-width:700px){.jp-rail-track{gap:16px;padding:0 16px}.jp-rail-card{flex-basis:82vw}}

/* ---- Grid of short items ---- */
.jp-grid{padding:clamp(75px,7vw,110px) var(--pad) clamp(95px,9vw,140px)}
.jp-grid-inner{width:min(100%,1050px);margin:auto}
.jp-grid .jp-block-head{width:100%;text-align:left}
.jp-grid-items{display:grid;gap:60px clamp(45px,6vw,90px)}
.jp-grid-items.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.jp-grid-items.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.jp-grid-items.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.jp-grid-items.cols-6{grid-template-columns:repeat(6,minmax(0,1fr));gap:42px 30px}
.jp-grid-item h3{font:400 31px/37px var(--serif);margin:0 0 var(--jp-line)}
.jp-grid-item p{margin:0 0 18px}
.jp-grid-item>:last-child{margin-bottom:0}
.jp-grid-icon{width:56px;height:56px;object-fit:contain;margin:0 0 16px}
.jp-grid-items.cols-6 .jp-grid-item p{font-size:13px;line-height:16px}
@media(max-width:900px){.jp-grid-items.cols-3,.jp-grid-items.cols-4{grid-template-columns:repeat(2,1fr)}.jp-grid-items.cols-6{grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.jp-grid{padding:100px var(--pad)}.jp-grid-items.cols-2,.jp-grid-items.cols-3,.jp-grid-items.cols-4{grid-template-columns:1fr}.jp-grid-items.cols-6{grid-template-columns:repeat(2,1fr);gap:45px 30px}}

/* ---- Booking band / embedded code ---- */
.jp-embed{padding:clamp(65px,7vw,105px) var(--pad) clamp(70px,7vw,110px)}
.jp-embed-inner{width:min(100%,850px);margin:auto}
.jp-embed.align-center{text-align:center}
.jp-embed-code{min-height:40px;margin:0 0 32px}
.jp-embed-code:last-child{margin:32px 0 0}
.jp-embed-text{width:min(100%,560px)}
.jp-embed.align-center .jp-embed-text{margin:0 auto}
.jp-embed-text p{margin:0 0 18px}
.jp-embed-text>:last-child{margin-bottom:0}
@media(max-width:700px){.jp-embed{padding:100px var(--pad)}}

/* ---- Enquiry form (Contacta) ---- */
.contacta-enquiry-section{padding:clamp(65px,7vw,105px) var(--pad) clamp(80px,8vw,125px);font-size:16px;line-height:21px}
.contacta-enquiry-inner{width:min(100%,720px);margin:auto}
.contacta-enquiry-section.layout-center .contacta-enquiry-text{text-align:center}
.contacta-enquiry-section.layout-split .contacta-enquiry-inner{width:min(100%,1050px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,100px);align-items:start}
.contacta-enquiry-section .signup-title{margin:0 0 var(--jp-line);font:400 20px/24px var(--sans);letter-spacing:normal}
.contacta-enquiry-text{margin-bottom:35px}
.contacta-enquiry-section.layout-split .contacta-enquiry-text{margin-bottom:0}
.contacta-enquiry-intro p{margin:0 0 18px}
.contacta-enquiry-intro>:last-child{margin-bottom:0}
.contacta-enquiry-section iframe{display:block;width:100%;height:640px;border:0;background:transparent}
.contacta-enquiry-section.is-submitted .contacta-enquiry-text{display:none}
@media(max-width:700px){.contacta-enquiry-section{padding:100px var(--pad)}.contacta-enquiry-section.layout-split .contacta-enquiry-inner{grid-template-columns:1fr;gap:35px}}

/* ---- Partner logos ---- */
.jp-partners{padding:clamp(60px,6vw,90px) var(--pad)}
.jp-partners-inner{width:min(100%,1200px);margin:auto;text-align:center}
.jp-partners-title{margin:0 0 45px;font:400 16px/19px var(--sans);letter-spacing:0}
.jp-partners-logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:30px clamp(28px,3.5vw,56px);margin:0;padding:0;list-style:none}
.jp-partners-logos li{display:block}
.jp-partners-logos a{display:block;transition:opacity .2s}
.jp-partners-logos a:hover{opacity:.7}
.jp-partners-logos img{display:block;width:auto;max-width:180px;height:var(--logo-h,70px);object-fit:contain}
@media(max-width:700px){.jp-partners-logos{gap:28px 34px}.jp-partners-logos img{height:calc(var(--logo-h,70px)*.7);max-width:120px}}

/* ---- Small print under a menu link ---- */
.menu-note{display:block;margin-top:2px;font-size:13px;line-height:16px;opacity:.6}

/* ---- Reservations list: small caption under a venue (e.g. Abu Dhabi) ---- */
html body .reservations-control .reservations-dropdown a[data-caption]{flex-direction:column}
html body .reservations-control .reservations-dropdown a[data-caption]::after{content:attr(data-caption);display:block;margin-top:3px;font-family:var(--sans,Inter,Arial,sans-serif);font-size:10px;font-weight:400;line-height:10px;color:inherit}

/* ---- Opening: image slides, with the text on a panel over the left of the image ----
   The panel is the section colour at 90%; its text sits 45px from the bottom and sides, so a little of the image shows through. The whole
   slide (image and panel) opens the slide's link. Dots sit bottom right, in the text colour.
   On phones the text sits under the image. */
.jp-slides{position:relative;height:var(--jp-split-min-height);overflow:hidden;background:#989695}
.jp-slides-media,.jp-slide-image{position:absolute;inset:0}
.jp-slide-image{opacity:0;transition:opacity .9s ease}
.jp-slide-image.active{opacity:1}
.jp-slide-image img{width:100%;height:100%;object-fit:cover}
.jp-slides-panel{position:absolute;left:0;top:0;bottom:0;z-index:2;width:clamp(360px,33%,520px);padding:45px;background:color-mix(in srgb,var(--sec-bg) 90%,transparent);color:var(--sec-fg);display:grid;align-items:end}
.jp-slide-copy{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .6s ease,visibility 0s linear .6s}
.jp-slide-copy.active{opacity:1;visibility:visible;transition:opacity .6s ease}
.jp-slide-copy>*:not(.jp-cover-link){position:relative;z-index:4}
.jp-slides-panel .jp-cover-link{z-index:3}
.jp-slide-copy .section-title{margin-bottom:0}
.jp-slide-copy .section-subtitle{margin:4px 0 0}
.jp-slide-text{margin-top:var(--jp-line)!important}
.jp-slide-link{display:inline-block;margin-top:var(--jp-line)}
.jp-slides-dots{position:absolute;right:40px;bottom:36px;z-index:4;display:flex;gap:10px;color:var(--sec-fg)}
.jp-slides-dots button{width:13px;height:13px;padding:0;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.jp-slides-dots button.active{background:currentColor}
/* Text panel bottom right instead: half the width, at least half the height, text from the top */
.jp-slides.panel-corner .jp-slides-panel{left:auto;right:0;top:auto;width:50%;min-height:50%;max-height:100%;padding:48px 70px 64px;align-items:start}
.jp-slides.panel-corner .jp-slides-dots{right:70px;bottom:28px}
@media(max-width:700px){
 .jp-slides{height:auto;overflow:visible;background:var(--sec-bg)}
 .jp-slides-media{position:relative;inset:auto;aspect-ratio:4/5}
 .jp-slides-panel,.jp-slides.panel-corner .jp-slides-panel{position:relative;inset:auto;width:100%;min-height:0;padding:45px var(--pad) 70px;background:var(--sec-bg);align-items:start}
 .jp-slides-dots,.jp-slides.panel-corner .jp-slides-dots{right:auto;left:var(--pad);bottom:34px}
}

/* ---- Venue cards (from the Venues) ---- */
.jp-venues{padding:clamp(70px,7vw,105px) 0 clamp(80px,8vw,120px);overflow:hidden}
.jp-venues .jp-block-head{margin-bottom:42px}
.jp-venue-card{flex:0 0 clamp(280px,25vw,390px);scroll-snap-align:start}
.jp-venue-image{aspect-ratio:1/1;margin:0 0 24px;overflow:hidden;background:#989695}
.jp-venue-image img{width:100%;height:100%;object-fit:cover}
.jp-venue-card h3{margin:0 0 var(--jp-line);font:400 31px/37px var(--title-font,var(--serif));letter-spacing:var(--title-ls,-1px)}
.jp-venue-card h3 a{color:inherit;text-decoration:none}
.jp-venue-card p{max-width:360px}
.jp-venue-address{margin-top:var(--jp-line)!important;opacity:.55;white-space:pre-line}
.jp-venue-links{margin-top:var(--jp-line)}
.jp-venue-links a,.jp-venue-links span{display:block;width:fit-content}
@media(max-width:700px){.jp-venue-card{flex-basis:80vw}}

/* ---- 50/50 with the image set in ---- */
.split-section.is-inset .split-media{background:var(--sec-bg)}
html body main section.split-section.is-inset>.split-media{--inset:clamp(35px,4vw,60px)}
html body main section.split-section.is-inset>.split-media>img{position:absolute!important;top:var(--inset)!important;left:var(--inset)!important;right:auto!important;bottom:auto!important;width:calc(100% - 2*var(--inset))!important;height:calc(100% - 2*var(--inset))!important}
@media(max-width:700px){html body main section.split-section.is-inset>.split-media>img{top:0!important;left:var(--pad)!important;width:calc(100% - 2*var(--pad))!important;height:calc(100% - var(--pad) - 5px)!important}}

/* ---- Questions and answers, text after them ---- */
.split-copy-inner .faq-list{margin-top:var(--jp-line)}
.split-copy-inner .jp-after{margin-top:var(--jp-line)}

/* ---- Text in two columns ---- */
.jp-text.is-columns .jp-text-inner{width:min(100%,1050px)}
.jp-text-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px)}
@media(max-width:700px){.jp-text-cols{grid-template-columns:1fr;gap:var(--jp-line)}}

/* ---- Main link: image(s) and heading open the section's link too ---- */
.jp-cover-link{position:absolute;inset:0;z-index:3}
.jp-full-hero .jp-full-hero-copy{z-index:4}
.jp-rail-image{position:relative}
.jp-title-link{color:inherit;text-decoration:none;transition:opacity .2s}
.jp-title-link:hover{color:inherit;opacity:.75}
.jp-slide-image:not(.active){visibility:hidden;transition:opacity .9s ease,visibility 0s linear .9s}

/* ---- Venue cards: one continuous loop ---- */
.jp-venues-track{cursor:grab;scroll-snap-type:none!important;padding:0!important;margin-left:20px}
.jp-venues-track.is-dragging{cursor:grabbing;user-select:none}
.jp-venues-track.is-dragging a{pointer-events:none}
.jp-venues-set{display:flex;flex:0 0 auto;gap:20px;padding-right:20px}
@media(max-width:700px){.jp-venues-track{margin-left:16px}.jp-venues-set{gap:16px;padding-right:16px}}

/* =====================================================================================
   Events: the listing sections (lead, upcoming, past) and the event pages.
   Everything sits in one container width, --jp-ev-max.
   ===================================================================================== */
:root{--jp-ev-max:1100px}
.jp-ev-wrap{width:min(var(--jp-ev-max),calc(100% - var(--pad)*2));margin:0 auto}
.jp-events{padding:clamp(70px,7vw,105px) 0}
.jp-ev-head{margin-bottom:42px}
.jp-ev-head .section-title{margin-bottom:0}
.jp-ev-head .section-subtitle{margin:4px 0 0}
.jp-ev-meta{opacity:.7}
.jp-ev-title{margin:var(--jp-line) 0 0;font:400 31px/37px var(--title-font,var(--serif));letter-spacing:var(--title-ls,-1px)}
.jp-ev-title a{color:inherit;text-decoration:none;transition:opacity .2s}
.jp-ev-title a:hover{opacity:.75}
.jp-ev-summary{margin-top:var(--jp-line)!important}
.jp-ev-link{display:inline-block;margin-top:var(--jp-line)}
.jp-ev-image{display:block;overflow:hidden;background:#989695}
.jp-ev-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.jp-ev-image:hover img{transform:scale(1.02)}
.jp-ev-card .jp-ev-image{aspect-ratio:3/2;margin-bottom:24px}
.jp-ev-card.is-past{opacity:.5;transition:opacity .2s}
.jp-ev-card.is-past:hover{opacity:.8}
.jp-ev-grid{display:grid;gap:60px 44px}
.jp-ev-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.jp-ev-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.jp-ev-card.is-more{display:none}
.jp-ev-more{display:block;margin:56px auto 0;padding:0;border:0;border-bottom:1px solid currentColor;background:none;color:inherit;font:400 16px/19px var(--sans);cursor:pointer}
.jp-ev-more[hidden]{display:none}
/* the lead event: a 50/50 inside the container */
.jp-ev-lead{display:grid;grid-template-columns:1fr 1fr;align-items:center}
.jp-ev-lead .jp-ev-image{aspect-ratio:4/3}
.jp-ev-lead .jp-ev-copy{padding:40px 0 40px clamp(40px,5vw,72px)}
.jp-ev-lead.is-past{opacity:.5}
@media(max-width:900px){.jp-ev-grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
 .jp-events{padding:80px 0}
 .jp-ev-grid.cols-3,.jp-ev-grid.cols-2{grid-template-columns:1fr;gap:50px}
 .jp-ev-lead{grid-template-columns:1fr}
 .jp-ev-lead .jp-ev-copy{padding:28px 0 0}
}

/* ---- Event page ---- */
.ev-head.is-split .ev-head-image picture,.ev-head.is-split .ev-head-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ev-head.is-split .venue-hero-inner>.jp-ev-meta{margin:0}
.ev-head.is-full{padding-top:calc(var(--nav,48px) - 5px)}
.ev-head.is-full .ev-head-image{height:var(--jp-split-min-height);overflow:hidden;background:#989695}
.ev-head.is-full .ev-head-copy{max-width:850px;margin:0 auto;padding-top:clamp(50px,6vw,80px)}
.ev-head-image picture,.ev-head-image img{display:block;width:100%;height:100%;object-fit:cover}
.ev-head .section-title{margin:var(--jp-line) 0 0}
.ev-summary{margin-top:var(--jp-line)!important;font-size:19px;line-height:23px}
.ev-tickets{display:inline-block;margin-top:calc(var(--jp-line)*1.5);font-size:20px;line-height:24px}
.ev-body{padding:clamp(50px,6vw,80px) 0 clamp(80px,8vw,120px);background:var(--sec-bg);color:var(--sec-fg)}
.ev-block{margin:0 auto}
.ev-body>.jp-ev-wrap+.jp-ev-wrap{margin-top:clamp(40px,4vw,56px)}
.ev-body>.contacta-enquiry-section{margin:clamp(40px,4vw,56px) 0}
/* A form that opens or closes the event text meets the header or the next section directly, with no strip of the body colour */
.ev-body>.contacta-enquiry-section:first-child{margin-top:0}
.ev-body>.contacta-enquiry-section:last-child{margin-bottom:0}
.ev-body:has(>.contacta-enquiry-section:first-child){padding-top:0}
.ev-body:has(>.contacta-enquiry-section:last-child){padding-bottom:0}
.ev-text{max-width:850px}
.ev-image.is-wide{max-width:none}
.ev-image.is-narrow{max-width:700px}
.ev-image img{display:block;width:100%;height:auto}
.ev-images-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ev-images-pair img{display:block;width:100%;height:100%;aspect-ratio:4/5;object-fit:cover}
.ev-block figcaption{margin-top:12px;font-size:13px;line-height:16px;opacity:.7}
.ev-quote{max-width:850px;text-align:center}
.ev-quote p{font:400 italic clamp(22px,2.2vw,30px)/1.3 var(--serif)}
.ev-quote footer{margin-top:var(--jp-line)}
.ev-video-frame{position:relative;aspect-ratio:16/9;background:#252524}
.ev-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ev-foot .ev-tickets{margin-top:0}
@media(max-width:700px){
 .ev-head.is-full .ev-head-image{height:auto;aspect-ratio:4/5}
 .ev-images-pair{grid-template-columns:1fr}
}

/* ---- Heading colour (optional, per section) ---- */
main section[data-accent] :is(.section-title,.jp-venue-card h3,.jp-rail-card h3,.neighbour-card h3,.jp-ev-title,.jp-ev-head .section-title){color:var(--accent)}

/* ---- Outlined button (e.g. under events), in the section's text colour ---- */
.jp-ev-cta{margin-top:56px;text-align:center}
.jp-btn-outline{display:inline-block;padding:13px 30px;border:1px solid currentColor;color:inherit;text-decoration:none;transition:background .2s,color .2s}
.jp-btn-outline:hover{background:var(--sec-fg);color:var(--sec-bg)}

/* ---- Opening image starts just under the top bar on desktop (5px under it), so the top of the
   picture is not hidden behind the bar ---- */
@media(min-width:701px){main>section:first-of-type:is(.venue-hero,.jp-full-hero,.jp-slides,.split-section,.jp-full-media){margin-top:calc(var(--nav,48px) - 5px)}}

/* ---- Grid items: optional link on the icon/image, heading and a link under the text ---- */
.jp-grid-icon-link{display:inline-block}
.jp-grid-link{display:inline-block;margin-top:var(--jp-line)}

/* =====================================================================================
   Layout refinements (October 2026)
   ===================================================================================== */
/* ---- Opening and 50/50: the text column is 500px wide on desktop (less on narrower screens). The text
   is centred in the section; at least 70px stays clear above and below it, so longer text still fits
   the shared section height ---- */
:root{--jp-copy-w:500px;--jp-copy-x:clamp(38px,7vw,110px)}
@media(min-width:701px){
 html body main :is(.venue-hero-inner,.split-copy-inner){width:min(100%,calc(var(--jp-copy-w) + 2*var(--jp-copy-x)));padding:70px var(--jp-copy-x)}
}

/* ---- Full-width opening with text over it (e.g. Iris): the text sits as far from the bottom as
   from the left edge, plus 10px ---- */
html body main .jp-full-hero-copy{bottom:calc(var(--pad) + 10px)}

/* ---- Opening slides, text panel bottom right: the panel is only as tall as its text; the image
   still fills the section ---- */
.jp-slides.panel-corner .jp-slides-panel{min-height:0}
.jp-slides.panel-corner:not(:has(.jp-slides-dots)) .jp-slides-panel{padding-bottom:48px}

/* ---- Event page: the image is a set height; the text starts one step under the heading ---- */
.ev-head.is-full .ev-head-copy{padding-bottom:clamp(50px,6vw,80px)}
.ev-body.joins-head{padding-top:0}
.ev-head.is-split+.ev-body.joins-head{padding-top:clamp(50px,6vw,80px)}

/* ---- Phones ---- */
@media(max-width:700px){
 /* the image always comes first, then the text */
 html body main section.split-section>.split-media,html body main section.venue-hero>.venue-hero-media{order:-1}
 html body main section.venue-hero>.venue-hero-media:not(:has(img,iframe,picture)){display:none}
 /* 60px above and below the text of every section */
 html body main :is(.venue-hero-inner,.split-copy-inner){padding:60px var(--pad)}
 html body main :is(.jp-text,.jp-grid,.jp-embed,.contacta-enquiry-section,.visit,.neighbours,.jp-events,.signup){padding-top:60px;padding-bottom:60px}
 html body main .jp-text.space-compact{padding-top:40px;padding-bottom:40px}
 html body main :is(.jp-rail,.jp-venues){padding-top:60px;padding-bottom:60px}
 html body main .jp-slides-panel,html body main .jp-slides.panel-corner .jp-slides-panel{padding-top:60px;padding-bottom:80px}
 html body main .jp-slides:not(:has(.jp-slides-dots)) .jp-slides-panel{padding-bottom:60px}
 /* a page that opens with text (no image above it): the text starts clear of the logo */
 /* event page */
 .ev-head.is-full .ev-head-image{height:auto;aspect-ratio:1/1}
 .ev-head.is-full .ev-head-copy{padding:60px 0}
 html body main .ev-body{padding-top:60px;padding-bottom:60px}
 html body main .ev-body.joins-head,html body main .ev-head.is-split+.ev-body.joins-head{padding-top:0}
 .ev-body:has(>.contacta-enquiry-section:last-child){padding-bottom:0}
}

/* ---- "Hide this section on phones" ---- */
@media(max-width:700px){html body main [data-hide-mobile]{display:none!important}}

/* ---- The menu (☰): this page's sections, Reservations and Contact; then the main links, dimmed
   on venue pages; then the email and Instagram ---- */
.menu-overlay .menu-overlay-group:last-child{margin-bottom:0}
.menu-overlay .menu-contact-gap{margin-top:0}
.menu-overlay .menu-page-links~.menu-main-links a{opacity:.6;transition:opacity .2s}
.menu-overlay .menu-page-links~.menu-main-links a:hover,.menu-overlay .menu-page-links~.menu-main-links a:focus-visible{opacity:1}
.menu-overlay a.menu-instagram{display:block;width:18px;height:18px;margin:12px auto 0}
.menu-overlay a.menu-instagram img{display:block;width:18px;height:18px}

/* ---- Event and Journal blocks: three images; image and text side by side (within the container) ---- */
.ev-images-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ev-images-trio img{display:block;width:100%;height:100%;aspect-ratio:4/5;object-fit:cover}
.ev-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,72px);align-items:center}
.ev-split.is-image-right .ev-split-image{order:2}
.ev-split-image{margin:0}
.ev-split-image img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
@media(max-width:700px){
 .ev-images-trio{grid-template-columns:1fr}
 .ev-split{grid-template-columns:1fr;gap:var(--jp-line)}
 .ev-split.is-image-right .ev-split-image{order:0}
}

/* ---- Journal posts: the post's type pairing (sans by default) also covers headings typed in its blocks ---- */
main .ev-body[data-type]{font-family:var(--body-font)}
main .ev-body[data-type] :is(.rt-h2,.section-title,.jp-ev-title){font-family:var(--title-font)!important;letter-spacing:var(--title-ls)}
main .ev-body[data-type] :is(.rt-h3,.ev-summary){font-family:var(--body-font)!important}

/* ---- Exception, ticked per section: on phones the text first, then the image(s) ---- */
@media(max-width:700px){
 html body main section.mobile-text-first>:is(.split-media,.venue-hero-media){order:2}
}

/* =====================================================================================
   Snagging (12 October 2026)
   ===================================================================================== */
/* ---- The first section of a page, when it opens with text (no image above it): clear of the logo ---- */
@media(min-width:701px){
 html body main>section:first-of-type:is(.jp-text,.jp-embed,.contacta-enquiry-section,.jp-grid,.jp-events,.visit,.neighbours,.jp-partners,.jp-rail,.jp-venues,.signup){padding-top:calc(clamp(90px,9vw,140px) + 140px)}
}
@media(max-width:700px){
 html body main>section:first-of-type:is(.jp-text,.jp-embed,.contacta-enquiry-section,.jp-grid,.jp-events,.visit,.neighbours,.jp-partners,.jp-rail,.jp-venues,.signup){padding-top:120px}
 html body main>section:first-of-type:is(.venue-hero,.split-section):is(.mobile-text-first,[data-hide-mobile-media],:not(:has(>:is(.venue-hero-media,.split-media) :is(img,iframe,picture)))) :is(.venue-hero-inner,.split-copy-inner){padding-top:120px}
 html body main>section:first-of-type.jp-slides[data-hide-mobile-media] .jp-slides-panel{padding-top:120px}
}

/* ---- "Hide only its image(s) on phones" ---- */
@media(max-width:700px){
 html body main section[data-hide-mobile-media]>:is(.venue-hero-media,.split-media,.jp-slides-media){display:none!important}
 html body main section.jp-slides[data-hide-mobile-media]{height:auto}
}

/* ---- Opening image slides: on phones the image is square, like every other opening ---- */
@media(max-width:700px){html body main .jp-slides-media{aspect-ratio:1/1}}

/* ---- Full-width opening with text over it (e.g. Iris video): on phones the image or video is a square like
   the other openings, and the text sits under it in the section's colours (60px above and below) ---- */
@media(max-width:700px){
 html body main section.jp-full-hero .jp-media-fill{height:auto;aspect-ratio:1/1}
 html body main section.jp-full-hero .jp-full-hero-copy{position:static;width:auto;padding:60px var(--pad);color:var(--sec-fg)}
}

/* ---- 50/50 with the image set in: on phones it is set in at the top too, and the text follows closer ---- */
@media(max-width:700px){
 html body main section.split-section.is-inset>.split-media>img{top:var(--pad)!important;height:calc(100% - 2*var(--pad))!important}
 html body main section.split-section.is-inset.mobile-media-first:not([data-hide-mobile-media]) .split-copy-inner{padding-top:0}
}

/* ---- Behind images, the section's own colour (so no hairline of grey can show at an image's edge) ---- */
html body main :is(.venue-hero-media,.split-media){background:var(--sec-bg,#aaa49a)}

/* ---- Event and Journal pages, full-width header image: on phones it starts at the top (no strip for the desktop bar) ---- */
@media(max-width:700px){html body main .ev-head.is-full{padding-top:0}}

/* ---- Sliding cards that stay still: when the row snaps to a card, keep the 20px (16px on phones) gap
   at the left edge, instead of snapping the card flush to the edge ---- */
.jp-rail-track{scroll-padding-inline:20px}
@media(max-width:700px){.jp-rail-track{scroll-padding-inline:16px}}

/* ---- Safari: cards in the sliding rows have a set width, so Safari does not size a row by its images'
   full pixel width (which left a wide empty stretch where the row repeats) ---- */
.jp-venue-card{width:clamp(280px,25vw,390px);min-width:0}
.jp-rail-card{width:clamp(300px,31vw,440px);min-width:0}
.jp-venues-set{width:max-content}
.jp-venue-image img,.jp-rail-image img{max-width:100%}
@media(max-width:700px){.jp-venue-card{width:80vw}.jp-rail-card{width:82vw}}

/* ---- Opening slides, text panel over the image: its tinted background is drawn by a layer behind the
   text (older Safari does not draw the mixed colour used before) ---- */
.jp-slides-panel{isolation:isolate}
@media(min-width:701px){
 html body main .jp-slides-panel{background:transparent}
 html body main .jp-slides-panel::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--sec-bg);opacity:.9;pointer-events:none}
}

/* ---- Links inside text sit on the text's own 21px lines. Links carried over from the old site keep a
   class that added 10px above each one; that extra space is removed so old and new links match. Link
   lists (e.g. Menus) keep their own deliberate spacing. ---- */
html body main a:is(.venue-menu-link,.venue-contact,.jp-action-link){display:inline;margin-top:0;line-height:inherit}

/* ---- Visit section: one line between the details filled in from the venue (address; email and phone)
   and the column's own text, whichever comes first. The general "no paragraph margins" rule was
   overriding this, so the two ran together. ---- */
html body main .visit .visit-column .visit-auto+*,html body main .visit .visit-column :not(h3)+.visit-auto,html body main .visit .visit-column .visit-auto p+p{margin-top:var(--jp-line)}

/* ---- "Underline the heading": a linked section heading drawn with an underline ---- */
html body main a.jp-title-link.is-underlined{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em}
