:root{--ink:#0c1824;--mint:#b9cab8;--rose:#ae465d;--paper:#fdfff9;--cream:#e1d6c4;--white:#fdfff9;--font-display:"Playfair Display",Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font:400 1rem/1.6 "Inter",Arial,sans-serif}a{color:inherit}img{display:block;max-width:100%}a:focus-visible{outline:3px solid var(--rose);outline-offset:4px}section{scroll-margin-top:100px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.checker{height:12px;background:conic-gradient(var(--mint) 25%,var(--ink) 0 50%,var(--mint) 0 75%,var(--ink) 0) 0 0/24px 24px}
.site-header{position:relative;z-index:5;min-height:100px;display:grid;grid-template-columns:minmax(200px,300px) 1fr auto;align-items:center;gap:2rem;padding:10px clamp(1.25rem,5vw,5rem);background:var(--paper);border-bottom:2px solid var(--ink)}
.brand{position:relative;display:block;width:min(100%,280px);isolation:isolate}.brand img{width:100%;height:auto}.ram-erase{position:absolute;left:43%;top:49%;width:13%;height:49%;background:var(--paper);pointer-events:none}.brand .ram-sprite{position:absolute;inset:0;max-width:none;clip-path:polygon(41.5% 47%,56.5% 47%,57% 100%,41.5% 100%);pointer-events:none;animation:ram-leap 4.6s ease-in-out infinite;transform-origin:49% 95%}
@keyframes ram-leap{0%,18%,76%,100%{transform:translateY(0) scale(1)}24%{transform:translateY(1%) scale(1.03,.95)}38%{transform:translateY(-15%) scale(.98,1.02)}46%{transform:translateY(-19%)}59%{transform:translateY(0) scale(1.06,.92)}66%{transform:translateY(-4%)}72%{transform:translateY(0)}}
.nav-links{display:flex;justify-content:center;gap:clamp(1rem,3vw,3.5rem)}.nav-links a{text-decoration:none;text-transform:uppercase;font-size:.88rem;font-weight:800;letter-spacing:.09em;border-bottom:3px solid transparent}.nav-links a:hover{border-color:var(--cherry)}.nav-book{min-height:48px;display:inline-flex;align-items:center;gap:.7rem;padding:.7rem 1.2rem;background:var(--ink);color:var(--white);text-decoration:none;font-size:.84rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;box-shadow:4px 4px 0 var(--mint);transition:transform .2s,box-shadow .2s}.nav-book:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--mint)}
.hero{position:relative;min-height:680px;display:flex;align-items:center;overflow:hidden;background:var(--ink);color:var(--white)}.hero-visual{position:absolute;inset:0 0 0 36%;overflow:hidden}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center 67%;filter:saturate(1.1)}.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 1%,rgba(12,24,36,.94) 18%,rgba(12,24,36,.35) 62%,rgba(12,24,36,.08) 100%)}.hero-photo-label{position:absolute;z-index:2;right:2.5rem;bottom:2rem;padding:.55rem .8rem;background:var(--ink);font-size:.75rem;font-weight:800;letter-spacing:.1em}
.hero-content{position:relative;z-index:2;width:min(790px,67vw);padding:6rem 0 7rem;margin-left:clamp(1.25rem,6vw,7rem)}.eyebrow{margin:0 0 1.2rem;font-size:.83rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--cherry)}.eyebrow.dark{color:var(--cherry)}
h1,h2,h3{font-family:var(--font-display);font-weight:800;line-height:.89;letter-spacing:.005em;text-transform:uppercase}h1{font-size:clamp(4.5rem,8vw,9rem);margin:0}h1 span{color:var(--cherry)}.hero-copy{max-width:510px;margin:2rem 0 2rem;font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.55}.hero-actions{display:flex;flex-wrap:wrap;gap:.9rem}
.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1.3rem;text-decoration:none;text-align:center;text-transform:uppercase;font-size:.86rem;font-weight:800;letter-spacing:.055em;border:2px solid transparent;transition:transform .2s,box-shadow .2s,background .2s}.button:hover{transform:translate(-3px,-3px)}.button-pink{background:var(--mint);color:var(--ink);border-color:var(--cherry);box-shadow:5px 5px 0 #0c1824}.button-pink:hover{box-shadow:8px 8px 0 #0c1824}.button-outline{border-color:#fdfff9;color:#fdfff9;background:rgba(12,24,36,.48)}.button-outline:hover{background:#fdfff9;color:var(--ink)}.button-dark{background:var(--ink);color:#fdfff9;border-color:var(--ink);box-shadow:5px 5px 0 var(--rose)}.button-dark:hover{box-shadow:8px 8px 0 var(--rose)}
.hero-badge{position:absolute;z-index:2;right:3%;top:7%;width:132px;height:132px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform:rotate(10deg);background:var(--mint);color:var(--ink);border:4px solid var(--white);box-shadow:0 10px 30px #0c182466}.hero-badge span{font-size:.6rem;font-weight:800;line-height:1.2;letter-spacing:.1em}.hero-badge strong{font:800 1.9rem/.85 var(--font-display);margin-top:.25rem}
.run-strip{position:relative;min-height:142px;padding:1rem 0 0;background:var(--mint);border-top:7px solid var(--ink);border-bottom:7px solid var(--ink);overflow:hidden}.strip-copy{display:flex;align-items:center;gap:clamp(1.2rem,4vw,4rem);width:max-content;white-space:nowrap;font:800 clamp(1.3rem,2.2vw,2.2rem)/1 var(--font-display);letter-spacing:.07em;animation:strip-shift 24s linear infinite}.strip-copy b{font:700 .9rem "Inter",sans-serif;color:var(--cherry)}@keyframes strip-shift{to{transform:translateX(-50%)}}.runway{position:relative;height:82px;margin-top:.5rem;border-top:2px solid var(--ink)}.ram-traveller{position:absolute;left:0;bottom:-2px;width:78px;height:90px;animation:ram-cross 11s linear infinite}.ram-runner{position:relative;width:78px;height:90px;animation:ram-gallop .38s ease-in-out infinite alternate;transform-origin:50% 90%}.ram-body,.ram-leg{position:absolute;inset:0;width:78px;height:90px;background:url("logo.png") -248px -97px/569px 201px no-repeat}.ram-body{z-index:2;-webkit-clip-path:inset(0 0 36px 0);clip-path:inset(0 0 36px 0)}.ram-leg-back{z-index:0;-webkit-clip-path:polygon(4% 55%,42% 55%,42% 100%,4% 100%);clip-path:polygon(4% 55%,42% 55%,42% 100%,4% 100%);transform-origin:22px 52px;animation:hind-stride .38s ease-in-out infinite}.ram-leg-front{z-index:1;-webkit-clip-path:polygon(39% 55%,92% 55%,92% 100%,39% 100%);clip-path:polygon(39% 55%,92% 55%,92% 100%,39% 100%);transform-origin:53px 53px;animation:front-stride .38s ease-in-out infinite}@keyframes ram-cross{from{transform:translateX(-90px)}to{transform:translateX(calc(100vw + 90px))}}@keyframes ram-gallop{to{transform:translateY(-7px) rotate(2deg)}}@keyframes hind-stride{0%,100%{transform:rotate(18deg) translateY(1px)}50%{transform:rotate(-18deg) translateY(-3px)}}@keyframes front-stride{0%,100%{transform:rotate(-18deg) translateY(-3px)}50%{transform:rotate(18deg) translateY(1px)}}
.section-pad{padding:clamp(4.5rem,8vw,8rem) clamp(1.25rem,6vw,7rem)}.welcome{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(2rem,7vw,8rem);align-items:end;background:var(--cream);border-bottom:2px solid var(--ink)}.welcome h2,.section-heading h2{font-size:clamp(3.6rem,6.7vw,7.5rem);margin:0}.welcome em,.section-heading em{font-style:normal;color:var(--cherry)}.welcome-copy{max-width:520px;font-size:clamp(1.05rem,1.45vw,1.3rem);line-height:1.7}.welcome-copy p{margin:0 0 2rem}.text-link{text-transform:uppercase;font-size:.88rem;font-weight:800;text-underline-offset:6px}
.menus{background:var(--paper)}.section-heading{margin-bottom:3rem}.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:3px solid var(--ink);box-shadow:12px 12px 0 var(--ink)}.menu-card{display:flex;flex-direction:column;align-items:flex-start;gap:2rem;min-height:380px;padding:clamp(2rem,4vw,4rem);background:#fdfff9}.menu-card + .menu-card{border-left:3px solid var(--ink)}.menu-card-pink{background:var(--mint)}.menu-number{font-size:.82rem;font-weight:800;letter-spacing:.13em}.menu-card h3{font-size:clamp(3rem,5vw,5.3rem);margin:0 0 1rem}.menu-card p{max-width:390px;margin:0;font-size:1.06rem;line-height:1.6}.menu-card .button{margin-top:auto}.menu-note{margin:2.5rem 0 0;font-size:.88rem;color:#536150}
.together{display:grid;grid-template-columns:1.15fr .85fr;min-height:550px;background:var(--ink);color:#fdfff9;overflow:hidden}.together-copy{padding:clamp(4rem,8vw,8rem) clamp(1.25rem,6vw,7rem);align-self:center}.together h2{font-size:clamp(4rem,7.5vw,8rem);margin:0}.together h2 span{color:var(--cherry)}.together-copy>p:not(.eyebrow){max-width:530px;margin:2rem 0;font-size:1.16rem;line-height:1.7}.together-art{position:relative;display:grid;place-items:center;min-height:400px;background:var(--mint);color:var(--ink);border-left:8px solid var(--paper);overflow:hidden}.big-number{font:800 clamp(11rem,26vw,30rem)/1 var(--font-display);letter-spacing:-.08em;transform:rotate(-8deg)}.art-caption{position:absolute;bottom:2rem;left:2rem;font-size:.77rem;font-weight:800;letter-spacing:.12em}
.visit{background:var(--cream)}.visit-card{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);padding:clamp(2rem,5vw,5rem);background:var(--mint);color:var(--ink);border:6px solid var(--ink);box-shadow:12px 12px 0 var(--ink)}.visit .eyebrow{color:var(--ink)}.visit h2{font-size:clamp(3.7rem,6vw,6.5rem);margin:0 0 2rem}.visit address{font-size:1.1rem;font-style:normal;font-weight:700;line-height:1.7}.visit-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.5rem;margin-top:2rem}.visit-phone{font-weight:800;text-underline-offset:5px}.booking-panel{background:var(--ink);color:var(--white);padding:clamp(2rem,4vw,4rem);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.booking-label{font-size:.83rem;font-weight:800;letter-spacing:.15em;color:var(--cherry)}.booking-panel h3{font-size:clamp(3.4rem,5vw,6rem);margin:1rem 0}.booking-panel p{max-width:360px;font-size:1.08rem}.booking-panel .button{margin:1rem 0 2rem}.email-link{color:#fdfff9;text-underline-offset:5px;overflow-wrap:anywhere}
.finale{background:var(--ink);color:var(--white);border-top:8px solid var(--ink)}.finale-heading{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem clamp(1.25rem,6vw,7rem)}.finale-heading p{margin:0 0 .35rem;font-size:.8rem;font-weight:800;letter-spacing:.1em;color:var(--cherry)}.finale-heading h2{font-size:clamp(3rem,5vw,5rem);margin:0}.finale-heading h2 span{color:var(--cherry)}.finale-heading>a{padding:.7rem 1rem;background:var(--mint);color:var(--ink);font-size:.82rem;font-weight:800;text-transform:uppercase;text-decoration:none}.finale-track{height:260px;position:relative;overflow:hidden;background:linear-gradient(0deg,var(--mint) 0 13%,var(--mint) 13% 100%)}.finale-name{position:absolute;top:11%;left:0;right:0;text-align:center;font:800 clamp(5rem,17vw,18rem)/1 var(--font-display);letter-spacing:.05em;color:var(--ink);opacity:.75;white-space:nowrap}.finale-name span{color:var(--cream)}.finale-road{position:absolute;bottom:0;left:0;right:0;height:70px;border-top:6px solid var(--ink);background:#212620}.road-line{position:absolute;top:50%;left:0;right:0;height:4px;background:repeating-linear-gradient(90deg,var(--cream) 0 80px,transparent 80px 140px)}.finale-ram{position:absolute;left:-95px;bottom:35px;z-index:2;width:78px;height:90px;animation:finale-cross 9s linear infinite}.finale-ram .ram-runner{filter:drop-shadow(2px 5px 2px #0c182488)}@keyframes finale-cross{to{transform:translateX(calc(100vw + 190px))}}
footer{display:grid;grid-template-columns:150px 1fr auto;gap:2rem;align-items:center;padding:3.5rem clamp(1.25rem,6vw,7rem);background:var(--ink);color:#fdfff9;border-top:12px solid var(--mint)}footer img{width:150px;filter:brightness(0) invert(1)}footer strong{display:block;font:800 2rem/1 var(--font-display)}footer span{font-size:.88rem}.footer-links{display:flex;flex-direction:column;gap:.4rem;text-align:right;font-size:.9rem}.footer-links a{text-underline-offset:4px}
.visit-card{background:var(--ink);color:#fdfff9}.visit .eyebrow{color:var(--cherry)}.booking-panel{background:var(--mint);color:var(--ink)}.booking-label{color:var(--ink)}.booking-panel .button-pink{background:var(--ink);border-color:var(--ink);color:#fdfff9;box-shadow:5px 5px 0 var(--rose)}.booking-panel .email-link{color:var(--ink)}
.reveal{opacity:1;transform:none}.js-motion .reveal{opacity:0;transform:translateY(25px);transition:opacity .65s ease,transform .65s ease}.js-motion .reveal.visible{opacity:1;transform:none}
@media(max-width:900px){.site-header{grid-template-columns:minmax(155px,220px) 1fr;gap:.5rem}.nav-book{justify-self:end}.nav-links{grid-column:1/-1;grid-row:2;justify-content:space-around;padding:.35rem 0}.hero-content{width:min(690px,80vw)}.hero-visual{left:28%}.welcome{grid-template-columns:1fr}.welcome-copy{max-width:680px}.together{grid-template-columns:1fr 1fr}.visit-card{grid-template-columns:1fr}}
@media(max-width:680px){.checker{height:9px}.site-header{padding:.35rem 1rem .3rem;grid-template-columns:minmax(0,1fr) auto;min-height:0}.brand{width:min(51vw,200px)}.nav-book{min-height:44px;padding:.5rem .65rem;font-size:.71rem}.nav-links{border-top:1px solid #0c182430;gap:.2rem}.nav-links a{min-height:44px;display:grid;place-items:center;font-size:.76rem}.hero{min-height:0;display:block;padding-top:260px}.hero-visual{inset:0 0 auto 0;height:310px}.hero-visual img{object-position:center 67%}.hero-visual:after{background:linear-gradient(0deg,var(--ink),transparent 75%)}.hero-content{width:auto;padding:2rem 1.25rem 3rem;margin:0}.hero h1{font-size:clamp(3.8rem,13.5vw,6rem)}.hero-copy{font-size:1.05rem;margin:1.5rem 0}.hero-actions{gap:.7rem}.hero-actions .button{flex:1 1 100%}.hero-badge{width:95px;height:95px;right:1rem;top:1rem;border-width:3px}.hero-badge strong{font-size:1.35rem}.hero-badge span{font-size:.47rem}.hero-photo-label{left:1rem;right:auto;bottom:1rem;font-size:.64rem}.run-strip{min-height:138px}.strip-copy{font-size:1.45rem}.runway{height:83px}.section-pad{padding:4.5rem 1.25rem}.welcome h2,.section-heading h2{font-size:clamp(3.5rem,11.4vw,5.8rem)}.welcome-copy{font-size:1.05rem}.menu-grid{grid-template-columns:1fr;box-shadow:8px 8px 0 var(--ink)}.menu-card{min-height:320px;padding:2rem}.menu-card + .menu-card{border-left:0;border-top:3px solid var(--ink)}.menu-card h3{font-size:3.7rem}.menu-note{line-height:1.5}.together{display:block}.together-copy{padding:4.5rem 1.25rem}.together h2{font-size:clamp(4rem,12vw,6rem)}.together-art{min-height:220px;border-left:0;border-top:6px solid var(--paper)}.big-number{font-size:12rem}.art-caption{bottom:1rem;left:1.25rem}.visit-card{padding:1.5rem;gap:2.5rem;border-width:4px;box-shadow:8px 8px 0 var(--ink)}.visit h2{font-size:clamp(3.6rem,11vw,5rem)}.booking-panel{padding:2rem 1.4rem}.booking-panel h3{font-size:clamp(3.5rem,12vw,5rem)}.booking-panel .button{width:100%}.finale-heading{padding:1.7rem 1.25rem;align-items:flex-start;flex-direction:column}.finale-heading h2{font-size:3.8rem}.finale-track{height:210px}.finale-name{font-size:23vw;top:20%}footer{grid-template-columns:1fr;gap:1.2rem;padding:2.5rem 1.25rem}footer img{width:130px}.footer-links{text-align:left}}
@media(max-width:360px){.hero h1{font-size:3.5rem}.nav-book{font-size:.65rem;padding:.45rem}.welcome h2,.section-heading h2{font-size:3.25rem}.menu-card h3{font-size:3.3rem}}


/* Relaxed Willow & Ram treatment. */
:root{--ink:#0c1824;--paper:#fdfff9;--cream:#e1d6c4;--rose:#ae465d;--font-display:"Playfair Display",Georgia,serif}
body{line-height:1.68}
.site-header{min-height:94px;border-bottom:1px solid #0c182424}
.nav-links a{font-size:.88rem;font-weight:600;letter-spacing:0;text-transform:none;border-bottom-width:1px}
.nav-book,.button{font-size:.88rem;font-weight:700;letter-spacing:0;text-transform:none;border-radius:100px;box-shadow:none}
.nav-book{background:var(--mint);color:var(--ink)}.nav-book:hover,.button:hover{transform:translateY(-2px);box-shadow:none}
.button-pink,.button-pink:hover,.button-dark,.button-dark:hover,.booking-panel .button-pink{box-shadow:none}
.button-pink{background:var(--mint);border-color:var(--cherry)}.button-dark{background:var(--ink);border-color:var(--ink)}.button-outline{background:transparent}
.hero{min-height:630px;background:var(--ink)}.hero-visual{left:39%}.hero-visual:after{background:linear-gradient(90deg,var(--ink) 0%,rgba(12,24,36,.92) 13%,rgba(12,24,36,.2) 65%,transparent)}
.hero-content{width:min(760px,66vw);padding:5.5rem 0 6rem}
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:none}
h1,h2,h3{text-transform:none;font-weight:500;letter-spacing:-.045em;line-height:1.07}
h1{font-size:clamp(4.2rem,6.5vw,7.1rem);max-width:820px}
.hero h1 span{color:var(--cherry)}.hero-copy{margin:2rem 0 2.2rem;color:#e1d6c4}
.hero-photo-label{font-size:.74rem;font-weight:600;letter-spacing:.02em;text-transform:none;background:#0c1824ce;border-radius:100px}
.run-strip{min-height:131px;border-top:0;border-bottom:1px solid #0c182420;padding-top:1rem}
.strip-copy{font:500 clamp(1.2rem,1.7vw,1.65rem)/1.2 var(--font-display);letter-spacing:0;animation:strip-shift 24s linear infinite;gap:clamp(1.4rem,4vw,4rem)}
.strip-copy b{font-size:1rem;font-weight:400;color:var(--ink)}.runway{border-top:1px solid #0c18242b;height:82px;margin-top:.7rem}.ram-traveller{animation-duration:15s}
.welcome{border-bottom:0}.welcome h2,.section-heading h2{font-size:clamp(3.1rem,5.2vw,5.7rem)}.welcome em,.section-heading em{color:var(--cherry)}
.welcome-copy{font-size:1.13rem}.text-link{font-size:.9rem;font-weight:700;text-transform:none}
.menu-grid{border:1px solid #0c182438;box-shadow:none;gap:0}.menu-card{min-height:350px}.menu-card + .menu-card{border-left:1px solid #0c182438}.menu-card-pink{background:var(--mint)}.menu-number{font-size:.82rem;font-weight:700;letter-spacing:.03em}.menu-card h3{font-size:clamp(2.9rem,3.8vw,4.3rem);margin-bottom:1.2rem}.menu-card p{font-size:1.06rem}
.together{min-height:500px;background:#212620}.together h2{font-size:clamp(3.5rem,6.2vw,6.2rem)}.together h2 span{color:var(--cherry)}.together-art{background:var(--mint);border-left:0}.together-art img{width:min(76%,440px);height:auto;filter:drop-shadow(0 10px 24px #0c182420)}.art-caption{font-size:.8rem;letter-spacing:.02em;font-weight:600}
.visit-card{background:var(--paper);color:var(--ink);border:0;box-shadow:none;gap:clamp(2rem,5vw,5rem)}.visit .eyebrow{color:var(--cherry)}.visit h2{font-size:clamp(3.2rem,5vw,5.4rem)}
.booking-panel{background:var(--mint);color:var(--ink);border-radius:2px}.booking-label{color:var(--ink);font-weight:700;letter-spacing:.03em}.booking-panel h3{font-size:clamp(3rem,4vw,4.8rem)}.booking-panel .button-pink{background:var(--ink);border-color:var(--ink);color:var(--white)}.booking-panel .email-link{color:var(--ink)}
.finale{background:var(--mint);color:var(--ink);border:0}.finale-heading{padding-block:3rem}.finale-heading p{color:var(--ink);font-weight:600;letter-spacing:0}.finale-heading h2{font-size:clamp(2.8rem,4.5vw,4.5rem)}.finale-heading h2 span{color:var(--ink)}.finale-heading>a{background:var(--ink);color:#fdfff9;text-transform:none;font-size:.88rem;border-radius:100px;font-weight:700}
footer{background:var(--paper);color:var(--ink);border-top:1px solid #0c182425}footer img{filter:none}footer strong{font:500 1.8rem/1.2 var(--font-display)}
@media(max-width:900px){.hero-content{width:min(680px,80vw)}}
@media(max-width:680px){.site-header{min-height:0}.nav-book{font-size:.78rem;padding:.55rem .8rem}.nav-links a{font-size:.86rem}.hero{padding-top:275px}.hero-visual{left:0;height:315px}.hero-visual:after{background:linear-gradient(0deg,var(--ink),transparent 72%)}.hero-content{width:auto;padding:2rem 1.25rem 3.5rem}.hero h1{font-size:clamp(3.25rem,10.5vw,4.8rem)}.hero-copy{font-size:1.04rem}.run-strip{min-height:130px}.strip-copy{font-size:1.2rem}.welcome h2,.section-heading h2{font-size:clamp(2.85rem,9.2vw,4.4rem)}.menu-grid{box-shadow:none}.menu-card{min-height:300px}.menu-card + .menu-card{border-left:0;border-top:1px solid #0c182438}.menu-card h3{font-size:clamp(2.7rem,8.8vw,3.8rem)}.together h2{font-size:clamp(3.3rem,10vw,5rem)}.together-art{min-height:220px;border-top:0}.together-art img{width:min(72%,320px)}.visit-card{border:0;box-shadow:none;padding:1.5rem}.visit h2{font-size:clamp(3rem,9vw,4rem)}.booking-panel h3{font-size:clamp(2.9rem,9vw,4rem)}.finale-heading{padding-block:2.5rem}.finale-heading h2{font-size:3.4rem}}
@media(max-width:360px){.hero h1{font-size:2.65rem}.welcome h2,.section-heading h2{font-size:2.7rem}}
@media(max-width:680px){.hero h1{font-size:clamp(2.65rem,9.1vw,4.2rem)}}
footer{grid-template-columns:1fr auto}
@media(max-width:680px){footer{grid-template-columns:1fr}}

[hidden]{display:none!important}
.events{background:var(--cream)}
.events-heading{display:grid;grid-template-columns:1fr minmax(240px,360px);gap:3rem;align-items:end;margin-bottom:2.6rem}
.events-heading h2,.hire-intro h2{font-size:clamp(3.3rem,5.2vw,5.8rem);margin:0}
.events-heading>p{font-size:1.08rem;line-height:1.7;margin:0}
.event-feature{display:grid;grid-template-columns:125px minmax(0,1fr) auto;gap:clamp(1.5rem,3vw,3.5rem);align-items:center;padding:clamp(1.6rem,3vw,3rem);background:var(--paper);border:1px solid #0c182438}
.event-feature + .event-feature{margin-top:1rem}
.event-date{min-height:130px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--mint);color:var(--ink);line-height:1.15;text-align:center}
.event-date span{font-size:.9rem;font-weight:700}.event-date strong{font:500 3.7rem/1 var(--font-display)}
.event-type{font-size:.85rem;font-weight:700;color:var(--cherry)}.event-detail h3{font-size:clamp(2rem,3vw,3.1rem);margin:.4rem 0 .7rem}.event-detail p{margin:0;max-width:650px}.event-feature .button{white-space:nowrap}
.events-follow{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1.3rem;margin-top:2rem}.events-follow span{font-weight:600}
.hire{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);gap:clamp(2rem,7vw,8rem);align-items:start;background:var(--paper)}
.hire-intro h2 em{font-style:normal;color:var(--cherry)}.hire-intro p:not(.eyebrow){max-width:510px;font-size:1.1rem;line-height:1.7;margin:1.7rem 0}.hire-intro>a{text-underline-offset:5px;overflow-wrap:anywhere}
.hire-form{display:grid;gap:1.35rem;padding:clamp(1.4rem,3.5vw,3.2rem);background:var(--cream);border:1px solid #0c182430}
.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
.hire-form label{display:grid;align-content:start;gap:.45rem;font-size:.9rem;font-weight:700}
.hire-form input,.hire-form select,.hire-form textarea{width:100%;min-width:0;min-height:49px;padding:.75rem .85rem;border:1px solid #0c182466;border-radius:3px;background:var(--paper);color:var(--ink);font:400 1rem/1.4 "Inter",Arial,sans-serif}
.hire-form textarea{resize:vertical;min-height:130px}.hire-form input:focus-visible,.hire-form select:focus-visible,.hire-form textarea:focus-visible{outline:2px solid var(--rose);outline-offset:2px}
.hire-form .form-note{margin:0;font-size:.84rem;line-height:1.5}.hire-form .button{justify-self:start;cursor:pointer;font-family:"Inter",Arial,sans-serif}.form-status{min-height:1.5em;margin:0;font-size:.9rem;font-weight:600}
@media(max-width:1050px){.event-feature{grid-template-columns:110px 1fr}.event-feature .button{grid-column:2;justify-self:start}.nav-links{gap:clamp(.55rem,1.7vw,1.5rem)}}
@media(max-width:900px){.events-heading,.hire{grid-template-columns:1fr}.events-heading>p{max-width:620px}.hire{gap:2.5rem}}
@media(max-width:680px){.nav-links{flex-wrap:wrap}.nav-links a{font-size:.77rem;padding-inline:.15rem}.events-heading h2,.hire-intro h2{font-size:clamp(3rem,9vw,4.2rem)}.event-feature{grid-template-columns:1fr;gap:1.25rem}.event-date{min-height:0;width:90px;padding:.75rem}.event-date strong{font-size:3rem}.event-feature .button{grid-column:auto;width:100%}.events-follow{align-items:flex-start;flex-direction:column}.form-row{grid-template-columns:1fr}.hire-form{padding:1.3rem}.hire-form .button{width:100%}}

/* A walk along Newton-le-Willows High Street. The ram is the logo sprite used above. */
.street-scene{position:relative;overflow:hidden;isolation:isolate;width:100%;max-width:1380px;margin:0 auto clamp(2rem,4vw,4rem);aspect-ratio:3/1;background:#9b988f;border-radius:3px}
.street-scene picture,.street-scene picture img{display:block;width:100%;height:100%}.street-scene picture img{object-fit:cover;object-position:center}
.street-ram{position:absolute;z-index:2;bottom:12%;left:-90px;width:78px;height:90px;filter:drop-shadow(2px 3px 2px #0c182477);animation:street-walk 8s linear infinite}
.street-ram::after{content:"";position:absolute;z-index:-1;left:17px;bottom:-1px;width:46px;height:7px;border-radius:50%;background:#0c182455;filter:blur(2px);animation:street-shadow .72s ease-in-out infinite}
.street-ram .ram-runner{animation:street-bob .38s ease-in-out infinite alternate}
.street-ram .ram-leg-back{animation:street-back-step .38s ease-in-out infinite}
.street-ram .ram-leg-front{animation:street-front-step .38s ease-in-out infinite}
@keyframes street-walk{0%{left:-90px;opacity:0}5%{left:-60px;opacity:1}82%{left:60%;opacity:1}92%,100%{left:70%;opacity:0}}
@keyframes street-bob{from{transform:translateY(0)}to{transform:translateY(-4px)}}
@keyframes street-shadow{50%{transform:scale(.82);opacity:.55}}
@keyframes street-back-step{0%,100%{transform:rotate(-19deg) translateY(-3px)}50%{transform:rotate(19deg) translateY(2px)}}
@keyframes street-front-step{0%,100%{transform:rotate(19deg) translateY(2px)}50%{transform:rotate(-19deg) translateY(-3px)}}
.street-find{position:absolute;z-index:3;right:18%;bottom:7%;min-height:72px;padding:1rem 2.25rem;background:var(--ink);color:#fdfff9;border-color:#fdfff9;border-radius:100px;box-shadow:0 5px 18px #0c182455;text-transform:none;font-size:1.15rem;font-weight:800;letter-spacing:0}
.street-find:hover{background:var(--rose);box-shadow:0 7px 22px #0c182455}
@media(max-width:680px){
  .site-header{gap:.35rem .5rem}.brand{width:min(44vw,180px)}.nav-book{white-space:nowrap;min-height:44px;padding:.5rem .65rem;font-size:.74rem}.nav-links{justify-content:space-between;gap:.25rem}.nav-links a{font-size:clamp(.71rem,2.7vw,.82rem);white-space:nowrap}
  .section-pad{padding:3.6rem 1.15rem}.hero-content{padding-inline:1.15rem}.hero-actions .button{min-height:54px}
  .visit-card{padding:0;gap:1.6rem}.visit-actions .button{width:100%}.booking-panel{padding:2rem 1.3rem}
  .street-scene{height:320px;aspect-ratio:auto;margin-bottom:2rem}.street-scene picture img{object-position:20% center;animation:street-pan-mobile 8s ease-in-out infinite}
  .street-ram{bottom:10%;scale:1.15;animation:street-walk-mobile 8s linear infinite}
  .street-find{top:1rem;right:1rem;bottom:auto;min-height:60px;padding:.75rem 1.35rem;font-size:1.03rem}
  @keyframes street-pan-mobile{0%,7%{object-position:20% center}70%,84%{object-position:77% center}100%{object-position:20% center}}
  @keyframes street-walk-mobile{0%{left:-90px;opacity:0}7%{left:0;opacity:1}85%{left:55%;opacity:1}94%,100%{left:65%;opacity:0}}
}
@media(max-width:360px){.brand{width:42vw}.nav-book{font-size:.69rem;padding:.5rem}.street-find{min-height:56px;padding:.65rem 1.15rem}}

.opening-hours{margin:2rem 0 0;max-width:440px}.opening-hours h3{font-size:1.6rem;letter-spacing:-.02em;margin:0 0 .8rem}.opening-hours dl{margin:0}.opening-hours dl>div{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;border-bottom:1px solid #0c182438}.opening-hours dt{font-weight:600}.opening-hours dd{margin:0;text-align:right}.opening-hours p{font-size:.85rem;margin:.75rem 0 0;color:#536150}

/* Clear, quiet legal pages and footer links. */
.legal-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem 1rem;margin:.35rem 0;font-size:.82rem}
.legal-page{min-height:100vh;display:flex;flex-direction:column;background:var(--paper)}
.legal-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem clamp(1.25rem,6vw,7rem);border-bottom:1px solid #0c182425}
.legal-header img{width:178px;height:auto}.legal-header>a:last-child{text-decoration:none;font-size:.9rem;font-weight:700;white-space:nowrap}.legal-header>a:last-child:hover{text-decoration:underline;text-underline-offset:4px}
.legal-main{width:min(100%,840px);margin:0 auto;padding:clamp(3rem,6vw,6rem) 1.25rem 6rem}.legal-main h1{font-size:clamp(3rem,8vw,5.8rem);margin:.3rem 0 1rem}.legal-lede{font:400 clamp(1.15rem,2vw,1.5rem)/1.55 var(--font-display);max-width:680px;margin:0}.legal-date{font-size:.81rem;color:#536150;margin:1.3rem 0 2.5rem}
.legal-main section{padding:1.8rem 0;border-top:1px solid #0c182430}.legal-main section:last-child{border-bottom:1px solid #0c182430}.legal-main h2{font-size:clamp(1.55rem,3vw,2rem);margin:0 0 .85rem}.legal-main p{max-width:74ch}.legal-main section p:last-child{margin-bottom:0}.legal-main li{padding-left:.35rem;margin:.5rem 0}.legal-main ul{padding-left:1.25rem}.legal-main a{text-decoration-thickness:1px;text-underline-offset:3px}.legal-main code{font-size:.88em}
.legal-table-wrap{overflow-x:auto}.legal-main table{width:100%;border-collapse:collapse;text-align:left;min-width:500px}.legal-main th,.legal-main td{padding:.8rem;vertical-align:top;border-bottom:1px solid #0c182430}.legal-main th{background:var(--cream)}
.legal-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;background:var(--mint);padding:1.6rem clamp(1.25rem,6vw,7rem);font-size:.88rem}.legal-footer nav{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem}
@media(max-width:680px){.footer-links{text-align:left}.legal-links{justify-content:flex-start}.legal-header img{width:140px}.legal-main{padding-bottom:4rem}.legal-footer{flex-direction:column}}

/* Cookie welcome: the existing ram sprite walks into a single cookie. */
body.cookie-locked{overflow:hidden}.cookie-gate[hidden]{display:none}.cookie-gate{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;overflow-y:auto;padding:clamp(1rem,3vw,2rem);background:#0c1824dd;backdrop-filter:blur(9px)}
.cookie-panel{width:min(100%,850px);display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);background:var(--paper);border:1px solid #fdfff966;box-shadow:0 30px 80px #0c1824a0}
.cookie-scene{position:relative;min-height:435px;overflow:hidden;isolation:isolate;background:var(--mint)}.cookie-scene-ground{position:absolute;bottom:17%;left:0;right:0;height:2px;background:var(--ink);opacity:.55}.cookie-scene-ground::after{content:"";position:absolute;top:5px;left:0;right:0;height:25px;background:linear-gradient(var(--mint),transparent)}
.cookie-ram{position:absolute;z-index:2;bottom:calc(17% + 2px);left:9%;width:78px;height:90px;animation:cookie-ram-enter 3s ease-in-out both}.cookie-ram .ram-runner{animation:cookie-ram-step .38s ease-in-out 5 alternate}.cookie-ram .ram-leg-back{animation:hind-stride .38s ease-in-out 5}.cookie-ram .ram-leg-front{animation:front-stride .38s ease-in-out 5}
.cookie-illustration{position:absolute;left:71%;bottom:calc(17% + 2px);font-size:clamp(4.1rem,8vw,6rem);line-height:1;transform-origin:50% 80%;filter:drop-shadow(0 8px 6px #0c182435);animation:cookie-topple 3s ease-in-out both}
@keyframes cookie-ram-enter{0%{left:-90px;opacity:0}14%{opacity:1}68%,100%{left:calc(71% - 70px);opacity:1}}
@keyframes cookie-ram-step{to{transform:translateY(-5px)}}
@keyframes cookie-topple{0%,66%{transform:rotate(0) translate(0,0)}80%{transform:rotate(52deg) translate(8px,3px)}100%{transform:rotate(79deg) translate(19px,13px)}}
.cookie-copy{align-self:center;padding:clamp(2rem,5vw,4rem)}.cookie-copy .eyebrow{margin:0 0 .8rem}.cookie-copy h2{font-size:clamp(2.5rem,4.8vw,4.2rem);margin:0 0 1rem}.cookie-copy p{margin:0 0 1.2rem}.cookie-copy>a{display:inline-block;margin-bottom:1.7rem;text-underline-offset:4px;font-weight:700}.cookie-continue{display:block;min-width:230px;cursor:pointer}.cookie-copy .cookie-fineprint{font-size:.8rem;margin:1rem 0 0;color:#536150}
.cookie-gate.is-exiting{animation:cookie-gate-exit .55s ease both}.cookie-gate.is-exiting .cookie-illustration{animation:cookie-exit .5s ease-in both}@keyframes cookie-exit{to{transform:rotate(110deg) translate(70px,100px);opacity:0}}@keyframes cookie-gate-exit{70%{opacity:1}100%{opacity:0;visibility:hidden}}
@media(max-width:680px){.cookie-gate{padding:.7rem;align-items:center}.cookie-panel{grid-template-columns:1fr;width:min(100%,430px);max-height:calc(100dvh - 1.4rem);overflow-y:auto}.cookie-scene{min-height:170px}.cookie-scene-ground{bottom:20%}.cookie-ram{bottom:calc(20% + 2px)}.cookie-illustration{bottom:calc(20% + 2px);font-size:4.4rem}.cookie-copy{padding:1.3rem 1.5rem 1.6rem}.cookie-copy h2{font-size:2.6rem}.cookie-copy p{font-size:.95rem;line-height:1.45}.cookie-copy>a{margin-bottom:1rem}.cookie-continue{width:100%}}
@media(max-width:360px){.cookie-scene{min-height:125px}.cookie-copy{padding:1rem 1.2rem}.cookie-copy h2{font-size:2.25rem}.cookie-copy .cookie-fineprint{font-size:.75rem}}


/* Native expandable menus, readable without opening a PDF. */
.menu-grid{align-items:start}.menu-card{display:block;min-height:0;padding:0}.menu-card summary{display:flex;flex-direction:column;align-items:flex-start;gap:1.8rem;min-height:350px;padding:clamp(2rem,4vw,4rem);cursor:pointer;list-style:none}.menu-card summary::-webkit-details-marker{display:none}.menu-card summary:focus-visible{outline:3px solid var(--rose);outline-offset:-8px}
.menu-card-intro{display:grid;gap:.8rem}.menu-card-intro strong{font:500 clamp(2.9rem,3.8vw,4.3rem)/1.08 var(--font-display);letter-spacing:-.045em}.menu-card-intro>span{max-width:390px;font-size:1.06rem;line-height:1.6}.menu-card .menu-toggle-label{margin-top:auto;display:inline-flex;align-items:center;gap:1rem}.menu-chevron{display:inline-block;width:.55rem;height:.55rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}.menu-card[open] .menu-chevron{transform:translateY(2px) rotate(225deg)}
.menu-expanded{padding:0 clamp(1.5rem,3vw,3rem) 2.8rem;border-top:1px solid #0c182430;animation:menu-drop .25s ease both}@keyframes menu-drop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.menu-group{padding:1.35rem 0;border-bottom:1px solid #0c182427}.menu-group:last-child{border:0}.menu-group h4{font:500 clamp(1.45rem,2.2vw,1.9rem)/1.2 var(--font-display);letter-spacing:-.03em;margin:0 0 .65rem}.menu-group ul{list-style:none;padding:0;margin:0}.menu-group li{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;padding:.42rem 0;line-height:1.4;font-size:.92rem}.menu-group li+li{border-top:1px solid #0c182416}.menu-group li b{font-weight:700;white-space:nowrap;font-size:.85rem}.menu-group p{font-size:.85rem;line-height:1.5;margin:.7rem 0 0;opacity:.85}.menu-group .menu-measures{margin:-.2rem 0 .5rem;font-size:.77rem}
@media(max-width:680px){.menu-card summary{min-height:300px;padding:2rem}.menu-card-intro strong{font-size:clamp(2.7rem,8.8vw,3.8rem)}.menu-expanded{padding:0 1.2rem 1.7rem}.menu-group li{flex-wrap:wrap}.menu-group li b{margin-left:auto}}

/* Incremental community and visitor features */
.event-tools,.event-actions,.offer-tags{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}.event-tools{justify-content:space-between;margin:2rem 0}.event-tools select{padding:.7rem;background:#fdfff9;border:1px solid #0c1824;border-radius:.4rem;font:inherit}.event-list{min-height:5rem}.event-actions{margin-top:1rem}.event-actions a,.event-actions button{font:inherit;color:#0c1824;background:transparent;border:0;border-bottom:1px solid currentColor;padding:.15rem;cursor:pointer}.offers{background:var(--mint)}.offer-tags{margin-top:1.5rem}.offer-tags span{border:1px solid currentColor;padding:.65rem 1rem;border-radius:2rem}.dog-section{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}.dog-section img{width:100%;max-height:360px;object-fit:cover;border-radius:1rem}.signup{background:#fdfff9;color:#0c1824;display:grid;grid-template-columns:1fr 1fr;gap:3rem}.signup h2{color:#0c1824}.signup input[type=email]{display:block;width:100%;padding:.8rem;margin:.6rem 0;color:#0c1824}.signup fieldset{border:0;padding:0;margin:1rem 0}.signup fieldset label{display:block;margin:.45rem 0}.signup a{color:inherit}.booking-section,.parking,.allergens{background:#fdfff9}.booking-frame{height:560px;margin:1.5rem 0;border:1px solid var(--mint);border-radius:1rem;overflow:hidden;background:#fdfff9}.booking-frame iframe{width:100%;height:100%;border:0}.parking-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:2rem;margin-top:2rem}.parking-map{position:relative;min-height:380px;background:var(--mint);border-radius:1.2rem;overflow:hidden;border:1px solid var(--mint)}.map-road{position:absolute;top:44%;left:0;width:100%;background:#0c1824;color:#fdfff9;text-align:center;padding:1rem;letter-spacing:.2em;transform:rotate(-8deg)}.map-stop{position:absolute;background:#fdfff9;border:2px solid #0c1824;padding:.7rem;border-radius:.7rem;max-width:145px;font-weight:700;z-index:2}.map-venue{top:13%;right:8%;background:#b9cab8}.map-church{bottom:10%;left:7%}.map-mercer{bottom:12%;right:7%}.map-bam{position:absolute;top:26%;right:12%;width:72px;z-index:2}.parking-choices a{display:block;padding:1rem;border-bottom:1px solid var(--mint);color:inherit;text-decoration:none}.parking-choices a span{display:block}.parking-choices p{font-size:.9rem}.allergens{border-top:1px solid var(--mint)}.ram-sprite,.ram-erase{display:none!important}@media(max-width:700px){.dog-section,.signup,.parking-layout{grid-template-columns:1fr}.parking-map{min-height:320px}.booking-frame{height:440px}}
.menu-close{display:block;width:100%;margin:1.5rem 0 0;padding:1rem;border:1px solid #0c1824;background:transparent;color:#0c1824;border-radius:.45rem;font:600 1rem 'Inter',sans-serif;cursor:pointer}.menu-close:hover,.menu-close:focus-visible{background:#0c1824;color:#fdfff9}.dog-illustration{background:#e1d6c4;object-fit:contain!important;max-height:420px!important}.calendar-month{margin:1.5rem 0 2rem}.calendar-month[hidden]{display:none}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.calendar-head h3{margin:0}.calendar-head button{padding:.7rem;border:1px solid #0c1824;background:transparent;border-radius:.4rem;cursor:pointer}.calendar-head button:disabled{opacity:.4;cursor:default}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--mint);border-left:1px solid var(--mint)}.calendar-weekday,.calendar-empty,.calendar-day{padding:.5rem;border-right:1px solid var(--mint);border-bottom:1px solid var(--mint);min-height:5rem}.calendar-weekday{min-height:auto;text-align:center;font-weight:700}.calendar-day strong{display:block}.calendar-day a{display:block;margin-top:.4rem;padding:.25rem;border-radius:.25rem;background:var(--mint);color:#0c1824;font-size:.78rem;line-height:1.3;overflow-wrap:anywhere}.event-feature{scroll-margin-top:6rem}@media(max-width:700px){.calendar-weekday,.calendar-empty,.calendar-day{padding:.2rem;min-height:4rem;font-size:.8rem}.calendar-day a{font-size:.7rem}.calendar-head button{font-size:.8rem;padding:.45rem}}

/* A smaller, softer dog moment within the existing section. */
.dog-section{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}
.dog-section .dog-illustration{display:block;width:100%;max-width:420px;max-height:none!important;justify-self:center;aspect-ratio:3/2;object-fit:contain!important;object-position:center;border-radius:.8rem;transform-origin:50% 80%;animation:dog-drink 3s ease-in-out infinite}
@keyframes dog-drink{0%,100%{transform:translateY(0)}48%{transform:translateY(3px)}}
@media(max-width:700px){.dog-section{grid-template-columns:1fr}.dog-section .dog-illustration{max-width:340px;margin-inline:auto}}


.dog-animation{position:relative;width:100%;max-width:420px;aspect-ratio:3/2;justify-self:center;overflow:hidden;border-radius:.8rem;background:#e1d6c4}
.dog-animation .dog-illustration{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none!important;aspect-ratio:auto;object-fit:cover!important;animation:none;transform:none}
.dog-animation .dog-frame-two{opacity:0;animation:dog-lap 1.2s steps(1,end) infinite}
@keyframes dog-lap{0%,49%{opacity:0}50%,100%{opacity:1}}
@media(max-width:700px){.dog-animation{max-width:340px;margin-inline:auto}}


/* White on white and a soft lapping transition. */
.dog-section{background:#fdfff9}.dog-animation{background:#fdfff9;border-radius:0}.dog-animation .dog-frame-two{opacity:0;animation:dog-lap-smooth 1.65s ease-in-out infinite;will-change:opacity}
@keyframes dog-lap-smooth{0%,37%,100%{opacity:0}49%,79%{opacity:1}90%{opacity:0}}


/* Events and booking follow the site's paper, pink and ink palette. */
.events{background:var(--mint)}.events-heading{border-bottom:1px solid #0c182436;padding-bottom:2rem}.event-feature{background:#fdfff9;border:1px solid #0c182448;box-shadow:6px 6px 0 var(--mint)}.event-date{background:var(--mint)}.event-tools select{border-radius:0;border:1px solid var(--ink);padding:.75rem 1rem}.calendar-grid{background:#fdfff9}.calendar-day a{background:var(--mint)}.booking-section{background:#fdfff9}.booking-intro{display:grid;grid-template-columns:1fr minmax(250px,400px);gap:3rem;align-items:end;border-bottom:1px solid #0c182436;padding-bottom:2rem}.booking-intro h2{margin:.3rem 0 0}.booking-intro p:last-child{line-height:1.6}.booking-tabs{display:flex;gap:.5rem;border-bottom:2px solid var(--ink);margin-top:2rem}.booking-tabs button{border:0;background:var(--mint);color:var(--ink);font:700 1rem "Inter",Arial,sans-serif;padding:1rem 1.5rem;cursor:pointer}.booking-tabs button[aria-selected="true"]{background:var(--ink);color:#fdfff9}.booking-tabs button:focus-visible{outline:3px solid var(--rose);outline-offset:3px}.booking-tab-panel[hidden]{display:none}.booking-frame{border:1px solid #0c182455;border-radius:0;box-shadow:8px 8px 0 var(--mint);margin:1.5rem 0 2rem;height:min(75vh,740px);min-height:510px}.booking-help{font-size:.95rem}.booking-help a{color:var(--ink);text-decoration-thickness:1px}.booking-private{padding:2.5rem 0;max-width:620px}.booking-private h3{font-size:2rem;margin:0 0 1rem}.booking-private p{line-height:1.7;margin-bottom:1.5rem}@media(max-width:700px){.booking-intro{grid-template-columns:1fr;gap:.5rem}.booking-tabs button{flex:1;padding:.9rem .5rem}.booking-frame{height:620px;min-height:0;box-shadow:4px 4px 0 var(--mint)}}
/* Real local map and walking directions */
.parking{background:#fdfff9}.parking-heading{display:grid;grid-template-columns:1fr minmax(250px,390px);gap:2rem;align-items:end;margin-bottom:2rem}.parking-heading h2{margin:.2rem 0 0}.parking-heading>p{line-height:1.7}.parking-tool{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);border:2px solid var(--ink);min-height:580px;box-shadow:9px 9px 0 var(--mint)}.parking-controls{padding:clamp(1.25rem,2.4vw,2rem);display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.parking-controls form{width:100%}.parking-controls label{display:block;font-weight:700;margin-bottom:.55rem}.parking-entry{display:flex;gap:.5rem;flex-wrap:wrap}.parking-entry input{flex:1 1 130px;min-width:0;border:1px solid var(--ink);padding:.75rem;font:inherit;text-transform:uppercase}.parking-entry button{min-height:46px}.parking-location,.parking-shortcuts button{font:inherit;border:1px solid var(--ink);background:#fdfff9;color:var(--ink);padding:.65rem .8rem;cursor:pointer}.parking-location:hover,.parking-shortcuts button:hover{background:var(--mint)}.parking-tap,.parking-fineprint{font-size:.9rem;margin:0}.parking-shortcuts{display:flex;gap:.5rem;flex-wrap:wrap}.parking-shortcuts span{flex-basis:100%;font-size:.9rem;font-weight:700}.parking-result{width:100%;background:var(--mint);padding:1rem;border-left:4px solid var(--rose);margin-top:.3rem}.parking-result strong,.parking-result span{display:block}.parking-result p{margin:.7rem 0 0}.parking-result .route-time{font:700 2rem/1.2 var(--font-display);margin:.4rem 0}.parking-google{font-weight:700;text-decoration:underline;text-underline-offset:.2em}.parking-fineprint{margin-top:auto}.parking-live-map{height:100%;min-height:580px;background:#e1d6c4;z-index:0}.parking-live-map>p{padding:2rem}.parking-live-map .leaflet-container{font-family:'Inter',Arial,sans-serif}.parking-live-map .leaflet-control-attribution{font-size:11px}.parking-live-map .leaflet-popup-content{font:600 14px/1.4 'Inter',Arial,sans-serif}.parking-pin{background:var(--ink);color:#fdfff9;border:2px solid #fdfff9;border-radius:50%;width:26px;height:26px;box-shadow:0 2px 6px #0c182455}.parking-pin.venue{background:var(--rose)}@media(max-width:850px){.parking-heading,.parking-tool{grid-template-columns:1fr}.parking-live-map{min-height:420px;height:420px;grid-row:1}.parking-controls{grid-row:2}.parking-heading{gap:.4rem}}@media(max-width:600px){.parking-live-map{height:350px;min-height:350px}.parking-tool{box-shadow:5px 5px 0 var(--mint)}.parking-entry button{flex:1}}
/* Venue-coloured map and three clear parking choices */
.parking-shortcuts{width:100%;display:grid;grid-template-columns:1fr;gap:.55rem}.parking-shortcuts>span{font-weight:800;font-size:1rem;margin-bottom:.2rem}.parking-shortcuts button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;padding:.85rem 1rem;background:#fdfff9;border:1px solid #0c182455;box-shadow:3px 3px 0 var(--mint);transition:background .2s,transform .2s,box-shadow .2s}.parking-shortcuts button strong{font-size:1rem}.parking-shortcuts button small{font-size:.78rem;color:#3e1921}.parking-shortcuts button:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 #b9cab8}.parking-shortcuts button[aria-pressed="true"]{background:#b9cab8;border-color:#0c1824;box-shadow:4px 4px 0 #0c1824}.parking-shortcuts button[aria-pressed="true"] small{color:#0c1824}.parking-live-map{background:var(--mint)}.parking-live-map .leaflet-tile-pane{filter:sepia(.13) saturate(.72) hue-rotate(307deg) brightness(1.045)}.parking-live-map .leaflet-control-zoom{border:2px solid #0c1824!important;box-shadow:4px 4px 0 #b9cab8!important}.parking-live-map .leaflet-control-zoom a{background:#fdfff9;color:#0c1824;font-weight:700}.parking-live-map .leaflet-control-zoom a:hover{background:var(--mint)}.parking-live-map .leaflet-popup-content-wrapper{border-radius:3px;background:#fdfff9;border:1px solid #0c1824;box-shadow:4px 4px 0 #b9cab8}.parking-live-map .leaflet-popup-tip{background:#fdfff9}.parking-pin.venue{background:#b9cab8;border:3px solid #0c1824;width:30px;height:30px}.parking-pin.parked{background:#0c1824;border:3px solid #fdfff9}@media(max-width:600px){.parking-shortcuts button{flex-wrap:wrap}.parking-shortcuts button small{flex-basis:100%}}

.dog-section{row-gap:.4rem}



.signup input[type=email]{background:#fdfff9;border:1px solid #0c182455;border-radius:.35rem}.signup input[type=checkbox]{accent-color:#b9cab8}

.event-illustration{display:block;width:100%;max-width:400px;height:auto;max-height:250px;object-fit:cover;border-radius:4px;margin:1.25rem 0}


.event-artwork{display:block;width:100%;max-width:340px;height:auto;margin:1.2rem 0;border-radius:8px}.calendar-reminder-note{font-size:.85rem;line-height:1.5;margin-top:1rem}

.event-date{font-family:var(--font-display);font-weight:800;font-size:1.35rem;line-height:1.2;text-transform:uppercase;letter-spacing:.005em;padding:.8rem}.calendar-day>strong,.calendar-head strong{font-family:var(--font-display)}

.offers-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin-top:2rem}.offer-card{padding:clamp(1.5rem,3vw,2.8rem);border:1px solid #0c182448;background:#fdfff9;box-shadow:6px 6px 0 var(--mint)}.offer-card h3{font-size:clamp(2.2rem,4vw,3.6rem);margin:.5rem 0 1.2rem}.offer-card .offer-price{font:800 3.6rem/1 var(--font-display);margin:1rem 0;color:var(--cherry)}.offer-card details{border-top:1px solid #0c182438;padding:1rem 0;margin:1rem 0}.offer-card summary{cursor:pointer;font-weight:700}.offer-card details p{margin-bottom:0}.offers-note{font-size:.85rem;margin-top:2rem}@media(max-width:700px){.offers-grid{grid-template-columns:1fr}}

#gifting-enquiry[hidden]{display:none}#gifting-enquiry{margin-top:1.5rem}.offer-card .hire-form{padding:1.25rem;background:#fdfff9}.offer-card .hire-form h4{font-family:var(--font-display);font-size:1.7rem;margin:0}.gifting-close{background:none;border:0;border-bottom:1px solid currentColor;font:inherit;color:var(--ink);cursor:pointer;margin-top:1rem;padding:.3rem}.offer-card>button{cursor:pointer;font-family:inherit}

.together-art img[src="secondary-vertical-logo.svg"]{width:auto;height:clamp(300px,36vw,540px);max-width:80%;object-fit:contain;margin:2.5rem 1rem 5rem;transform:none}@media(max-width:680px){.together-art img[src="secondary-vertical-logo.svg"]{height:360px;max-width:72%;margin:2rem 1rem 4.5rem}}

.skip-link{position:fixed;top:.5rem;left:.5rem;z-index:10001;padding:1rem;background:#fdfff9;color:#0c1824;transform:translateY(-200%);font-weight:700}.skip-link:focus{transform:none}
:where(button,input,select,textarea,summary):focus-visible{outline:3px solid var(--mint);outline-offset:4px}button,a,input,select,textarea{touch-action:manipulation}input,select,textarea{max-width:100%}
.accessibility-trigger{position:fixed;bottom:1rem;right:1rem;z-index:900;border:2px solid #0c1824;border-radius:2rem;padding:.7rem 1rem;min-height:44px;background:#fdfff9;color:#0c1824;font:700 .9rem/1.3 "Inter",Arial,sans-serif;cursor:pointer;box-shadow:0 3px 14px #0c182426}
.accessibility-dialog{width:min(92vw,490px);max-height:85vh;overflow:auto;border:2px solid #0c1824;border-radius:12px;padding:2rem;background:#fdfff9;color:#0c1824}.accessibility-dialog::backdrop{background:#0c182499}.accessibility-dialog h2{font-size:2.4rem;line-height:1.05;margin:1rem 0}.accessibility-dialog label{display:block;font-weight:700;margin:1.2rem 0 .5rem}.accessibility-dialog select{width:100%;font:inherit;padding:.7rem;background:#fdfff9;color:#0c1824;border:1px solid #0c1824}.accessibility-dialog .access-motion{display:flex;gap:.7rem;align-items:center}.access-motion input{width:1.3rem;height:1.3rem;flex-shrink:0}.access-close{float:right;font:inherit;font-size:1.6rem;min-width:44px;min-height:44px;border:0;background:none;color:#0c1824;cursor:pointer}.access-reset{font:inherit;padding:.6rem 1rem;background:#b9cab8;color:#0c1824;border:1px solid #0c1824;cursor:pointer;min-height:44px}.access-help{font-size:.9rem}.event-actions a,.event-actions button{min-height:44px;display:inline-flex;align-items:center}.event-feature,.offer-card,.hire-form,.together-copy{min-width:0;overflow-wrap:anywhere}footer{padding-bottom:5rem}
html.reduce-motion{scroll-behavior:auto!important}html.reduce-motion *,html.reduce-motion *::before,html.reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html.reduce-motion .reveal{opacity:1!important;transform:none!important}html.reduce-motion .dog-frame-two{opacity:0!important}

@media(max-width:900px){.site-header{gap:1rem}.nav-links{flex-wrap:wrap}.event-feature{grid-template-columns:1fr}.event-date{width:auto;max-width:150px}.signup{grid-template-columns:1fr}.together{grid-template-columns:1fr}.together-art{border-left:0}.visit-layout{grid-template-columns:1fr}} 

/* Gentle continuous lapping, with detail kept inside the bowl. */
.dog-animation .dog-frame-two{animation:dog-lap-fluid 1.15s cubic-bezier(.45,0,.55,1) infinite;will-change:opacity}
@keyframes dog-lap-fluid{0%,100%{opacity:0}25%{opacity:.45}50%{opacity:1}75%{opacity:.45}}
.dog-water-details{position:absolute;inset:0;z-index:3;pointer-events:none}.water-ring{position:absolute;left:72.5%;top:73.6%;width:12%;height:1.9%;border:1px solid #b7c8da;border-radius:50%;opacity:0;transform:translate(-50%,-50%);animation:bowl-ripple 1.15s ease-out infinite}.ring-two{animation-delay:.575s;border-color:#fdfff9}
@keyframes bowl-ripple{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}20%{opacity:.75}85%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.25)}}
.water-drop{position:absolute;left:68%;top:72.5%;width:.85%;height:1.45%;border-radius:55% 55% 55% 20%;background:#b7c8da;opacity:0;animation:bowl-splash 1.15s cubic-bezier(.25,.6,.45,1) infinite}.drop-two{left:78%;animation-delay:.18s;--splash-x:4px}.drop-three{left:76%;width:.6%;height:1%;animation-delay:.6s;--splash-x:2px}
@keyframes bowl-splash{0%,28%,70%,100%{opacity:0;transform:translate(0,0) scale(.5)}38%{opacity:.65;transform:translate(var(--splash-x,-3px),-9px) scale(1)}55%{opacity:0;transform:translate(var(--splash-x,-3px),1px) scale(.5)}}
html.reduce-motion .dog-water-details{display:none}html.reduce-motion .dog-animation .dog-frame-two{animation:none!important;opacity:0!important}

.dog-sunday{margin:1.6rem 0;padding:1.5rem;border-left:4px solid var(--mint);background:#fdfff9}.dog-sunday h3{font-size:2.4rem;margin:.4rem 0 1rem}.dog-sunday p{line-height:1.6}.dog-visit-note{font-size:.95rem;line-height:1.6}.dog-visit-note a{text-decoration:underline}

.hire-trap{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}.hire-admin{margin-top:4rem}.hire-inbox-card{border:1px solid #0c182448;padding:1.5rem;margin-top:1rem;background:#fdfff9}.hire-inbox-card h3{font-size:2rem;line-height:1.1}.hire-inbox-card p{white-space:pre-wrap;overflow-wrap:anywhere}.hire-inbox-card label{display:block;margin:1rem 0}.hire-inbox-card textarea,#hire-recipients{width:100%;font:inherit;padding:.7rem}.hire-inbox-card button,.hire-inbox-card a{margin-right:1rem}
/* Phone controls and staff inbox */
button,input,select,textarea{touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--rose);outline-offset:3px}
@media(max-width:680px){.nav-links a{min-height:44px;display:inline-flex;align-items:center}.event-tools>*{max-width:100%}.event-tools select{width:100%;min-width:0;font-size:16px}.event-tools label{width:100%}.calendar-head{flex-wrap:wrap}.calendar-head button{min-height:44px;font-size:16px}.calendar-day a{min-height:44px;display:flex;align-items:center}.booking-tabs{flex-wrap:wrap}.booking-tabs button{min-width:0;overflow-wrap:anywhere}.hire-form input,.hire-form select,.signup input[type=email],.parking-entry input{font-size:16px}.hire-form input[type=date]{appearance:none;min-height:49px}.accessibility-dialog{padding:1.2rem}.accessibility-trigger{bottom:calc(1rem + env(safe-area-inset-bottom))}footer{padding-bottom:calc(5rem + env(safe-area-inset-bottom))}}
@media(max-width:680px){.dog-animation{width:100%;max-width:340px;isolation:isolate;transform:translateZ(0)}.dog-animation img{backface-visibility:hidden;-webkit-backface-visibility:hidden}.dog-water-details{transform:translateZ(0);backface-visibility:hidden}.hero-actions .button{max-width:100%}.event-actions{gap:.7rem 1rem}.booking-frame{width:100%}.signup fieldset{min-width:0}.calendar-grid{min-width:0}.calendar-weekday{font-size:.7rem}.parking-live-map .leaflet-control-zoom a{width:44px;height:44px;line-height:44px}}
.dog-animation:not(.dog-ready) .dog-frame-two,.dog-animation:not(.dog-ready) .dog-water-details{visibility:hidden}.dog-paused .dog-frame-two,.dog-paused .water-ring,.dog-paused .water-drop{animation-play-state:paused!important}
@media(max-width:680px){.brand{max-width:100%}.nav-book{max-width:145px;white-space:normal;text-align:center;justify-content:center;overflow-wrap:anywhere}.nav-links{width:100%;min-width:0;gap:.2rem .7rem}.nav-links a{flex:0 1 auto}.section-pad{padding-inline:clamp(1rem,4vw,1.25rem)}.event-feature .button{white-space:normal}.event-detail h3,.dog-section h2,.together h2,.visit h2{overflow-wrap:anywhere}.dog-sunday .button,.hire-form .button,.signup .button{width:100%;white-space:normal}.signup form{min-width:0}.signup fieldset label{min-height:44px;display:flex;align-items:center;gap:.6rem}.signup fieldset input{width:20px;height:20px;flex-shrink:0}.opening-hours dl div{flex-wrap:wrap;gap:.4rem}.booking-frame{height:75dvh;min-height:520px;overflow:hidden}.booking-frame iframe{width:100%;height:100%;border:0}.cookie-gate{overscroll-behavior:contain}.cookie-panel{max-height:calc(100dvh - 1.4rem);-webkit-overflow-scrolling:touch}}

/* One motion policy across desktop, touch devices and Safari. */
html.reduce-motion{scroll-behavior:auto!important}
html.reduce-motion *,html.reduce-motion *::before,html.reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.reduce-motion .reveal{opacity:1!important;transform:none!important}
html.reduce-motion .dog-frame-two{opacity:0!important}
html.reduce-motion .dog-water-details{display:none}
@media(prefers-reduced-motion:reduce){
 html:not(.full-motion){scroll-behavior:auto!important}
 html:not(.full-motion) *,html:not(.full-motion) *::before,html:not(.full-motion) *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 html:not(.full-motion) .reveal{opacity:1!important;transform:none!important}
 html:not(.full-motion) .dog-frame-two{opacity:0!important}
 html:not(.full-motion) .dog-water-details{display:none}
}
.cookie-gate:not(.motion-started) .cookie-scene *{animation-play-state:paused}
.strip-copy,.ram-traveller,.ram-runner,.ram-leg,.dog-frame-two{will-change:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}
@media(hover:none){.button:active,.nav-book:active{transform:scale(.97)}}

/* Private-hire photo gallery */
.space-trigger{display:flex;margin-top:1.5rem;cursor:pointer;font:inherit;font-weight:700}.space-gallery{width:min(960px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;overscroll-behavior:contain;padding:clamp(1rem,4vw,2.5rem);border:1px solid var(--ink);background:#fdfff9;color:var(--ink)}.space-gallery::backdrop{background:#0c1824bd}.space-gallery-heading{display:flex;justify-content:space-between;align-items:start;gap:1rem}.space-gallery h2{font-size:clamp(2.4rem,5vw,4rem);margin:.3rem 0 1rem}.space-close{position:sticky;top:0;min-width:44px;min-height:44px;font:inherit;font-size:2rem;background:var(--mint);color:var(--ink);border:1px solid var(--ink);cursor:pointer}.space-photos{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:1.5rem 0}.space-photos figure{margin:0;min-width:0}.space-photos img{display:block;width:100%;height:auto;border:1px solid #0c182440}.space-photos figcaption{font-weight:700;padding:.8rem 0}.space-photo-note{font-size:.9rem;line-height:1.6}.space-photo-note a{color:inherit}.space-gallery-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem}.space-gallery-actions button{cursor:pointer;font:inherit;font-weight:700;min-height:44px}.space-close-bottom{background:var(--mint);color:var(--ink)}body.space-gallery-open{overflow:hidden}.space-gallery button:focus-visible{outline:3px solid var(--rose);outline-offset:4px}@media(max-width:600px){.space-photos{grid-template-columns:1fr;gap:1rem}.space-gallery-actions button{width:100%}.space-gallery{max-height:calc(100dvh - 1rem);width:calc(100vw - 1rem)}}

.space-photos.space-single{grid-template-columns:1fr;max-width:680px;margin:1.5rem auto}.space-single img{max-height:none;object-fit:contain}

#space-panorama{height:clamp(320px,62dvh,620px);width:100%;border:1px solid var(--ink);margin-top:1rem;border-radius:3px;touch-action:none}.space-view-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.space-view-controls button{min-height:44px;min-width:44px;background:var(--mint);color:var(--ink);border:1px solid var(--ink);font-family:inherit;font-size:1.1rem;font-weight:700;cursor:pointer}.space-view-controls button:last-child{padding:.5rem 1rem}#space-static[hidden],#space-panorama[hidden],.space-view-controls[hidden]{display:none}.space-gallery .pnlm-controls{border-color:var(--ink);box-shadow:none}.space-gallery .pnlm-container{background:var(--ink)}

.space-real-photos{border-block:1px solid #0c182445;margin-top:1.5rem;padding:1rem 0}.space-real-photos summary{font-weight:700;cursor:pointer;min-height:44px;display:list-item;align-content:center}.space-reference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.space-reference-grid figure{margin:0}.space-reference-grid img{display:block;width:100%;height:auto}.space-reference-grid figcaption{font-weight:700;font-size:.9rem;margin-top:.5rem}#space-panorama:fullscreen{height:100dvh;border:0;margin:0}@media(max-width:600px){.space-reference-grid{grid-template-columns:1fr}}

.apple-calendar-dialog{width:min(92vw,540px);max-height:85dvh;overflow:auto;border:1px solid #0c1824;border-radius:16px;background:#fdfff9;color:#0c1824;padding:1.5rem;font:1rem/1.6 'Inter',Arial,sans-serif}.apple-calendar-dialog::backdrop{background:#0c1824aa}.apple-calendar-dialog h2{font-size:2rem;line-height:1.15;margin:1rem 0}.apple-calendar-dialog .button{margin:.4rem 0;display:flex;width:100%;font:inherit;cursor:pointer}.apple-close{float:right;width:44px;height:44px;font:1.7rem system-ui;border:0;background:none;color:inherit;cursor:pointer}

/* Visible review attribution; leaves all preview controls usable. */




/* Smooth two-frame motion, matching the original Labrador animation. */
.dog-animation .dog-frame-one,.dog-animation .dog-frame-two{clip-path:none}
.dog-animation .dog-frame-two{animation:dog-lap-fluid 1.15s cubic-bezier(.45,0,.55,1) infinite}
/* Willow & Ram approved type hierarchy. */
:root{--font-display:"Playfair Display",Georgia,serif}
body{font-family:"Inter",Arial,sans-serif;line-height:1.6}
h1{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.15;text-transform:none}
h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.2;text-transform:none}
h4,h5,h6{font-family:"Inter",Arial,sans-serif;font-weight:600;line-height:1.3}
button,.button,.nav-links a,.nav-book{font-family:"Inter",Arial,sans-serif;font-weight:500;line-height:1.3;letter-spacing:.05em}
.hero h1,.hero-title,.welcome h2,.finale-heading h2{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.15}

/* Approved Willow & Ram palette: calm daytime surfaces and celestial evening accents. */
:root{--ink:#0c1824;--paper:#fdfff9;--cream:#e1d6c4;--white:#fdfff9;--mint:#b9cab8;--rose:#ae465d;--cherry:#ae465d;--sage:#536150;--peach:#ffcea3;--forest:#212620}
body{color:var(--forest)}
.hero,.together,footer{color:var(--white)}
.hero .eyebrow,.hero h1 span,.together h2 span,footer .eyebrow{color:var(--peach)}
.eyebrow.dark,.welcome em,.section-heading em,.event-type,.hire-intro h2 em,.offer-card .offer-price{color:var(--cherry)}
.run-strip,.events,.offers,.finale,.legal-footer{background:var(--cream);color:var(--ink)}
.strip-copy b,.booking-label,.finale-heading p,.finale-heading h2 span,.visit .eyebrow{color:var(--ink)}
.booking-panel{background:var(--sage);color:var(--white)}
.booking-panel .booking-label,.booking-panel h2,.booking-panel p{color:var(--white)}
.button-pink,.nav-book{background:var(--cherry);border-color:var(--cherry);color:var(--white)}
.button-pink:hover,.nav-book:hover{background:#3e1921;border-color:#3e1921}
.button-outline{color:var(--white);border-color:var(--white)}
.menu-card-pink,.together-art,.visit-card,.event-date,.calendar-day a{background:var(--mint);color:var(--ink)}
.booking-tabs button{background:var(--cream);color:var(--ink)}
.booking-tabs button[aria-selected="true"]{background:var(--sage);color:var(--white)}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--cherry);outline-offset:4px}

/* Original venue pink, retained alongside the approved logo palette. */
:root{--venue-pink:#ae465d}
.run-strip,.menu-card-pink,.together-art,.event-date,.legal-footer{background:var(--venue-pink);color:var(--ink)}
.hero h1 span{color:var(--venue-pink)}
.nav-book,.button-pink{background:var(--venue-pink);border-color:var(--venue-pink);color:var(--ink)}
.nav-book:hover,.button-pink:hover{background:var(--venue-pink);border-color:var(--ink);color:var(--ink)}
.nav-links a:hover,footer,.dog-sunday{border-color:var(--venue-pink)}
.event-feature,.offer-card{box-shadow:6px 6px 0 var(--venue-pink)}

/* Make a day of it: pink and ivory on Sage Leaf. */
.together,.together-copy,.together-art{background:#536150;color:#fdfff9}
.together h2,.together-copy>p,.together .art-caption{color:#fdfff9}
.together h2 span,.together .eyebrow{color:#ae465d}
.together .button-pink{background:#ae465d;color:#0c1824;border-color:#ae465d}
.together-art{border-color:#536150}

/* Make a day of it: Moonlit Ivory with navy and venue pink. */
.together,.together-copy,.together-art{background:#fdfff9;color:#0c1824}
.together h2,.together-copy>p,.together .art-caption{color:#0c1824}
.together h2 span,.together .eyebrow{color:#ae465d}
.together-art{border-color:#fdfff9}

/* Separate ram layers retain every leg and animate using transforms only. */
.ram-runner{width:78px;height:105px;animation:ram-smooth-bob .72s ease-in-out infinite}
.ram-body,.ram-leg{width:78px;height:105px;inset:0;clip-path:none;background-position:center;background-size:contain;background-repeat:no-repeat}
.ram-body{background-image:url("ram-body.png");z-index:2}
.ram-leg-back{background-image:url("ram-back.png");z-index:1;transform-origin:27% 60%;animation:ram-rear-step .72s ease-in-out infinite}
.ram-leg-front{background-image:url("ram-front.png");z-index:1;transform-origin:70% 60%;animation:ram-front-step .72s ease-in-out infinite}
@keyframes ram-smooth-bob{0%,50%,100%{transform:translate3d(0,0,0)}25%,75%{transform:translate3d(0,-3px,0)}}
@keyframes ram-rear-step{0%,100%{transform:rotate(12deg)}50%{transform:rotate(-12deg)}}
@keyframes ram-front-step{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}
.cookie-ram .ram-runner{animation:ram-smooth-bob .72s ease-in-out 4}
.cookie-ram .ram-leg-back{animation:ram-rear-step .72s ease-in-out 4}
.cookie-ram .ram-leg-front{animation:ram-front-step .72s ease-in-out 4}
.cookie-ram{left:calc(71% - 70px)}
@keyframes cookie-ram-enter{0%{transform:translate3d(-75vw,0,0);opacity:0}14%{opacity:1}68%,100%{transform:translate3d(0,0,0);opacity:1}}

/* Four independent legs, with staggered strides and visible rear hooves. */
.ram-leg-back{background-image:url("ram-leg-back.svg");transform-origin:29% 57%;z-index:1}
.ram-leg-front{background-image:url("ram-leg-front.svg");transform-origin:76% 55%;z-index:1}
.ram-leg-back-far{background-image:url("ram-leg-back-far.svg");transform-origin:45% 57%;z-index:0;animation:ram-front-step .72s ease-in-out infinite}
.ram-leg-front-far{background-image:url("ram-leg-front-far.svg");transform-origin:63% 57%;z-index:0;animation:ram-rear-step .72s ease-in-out infinite}
.cookie-ram .ram-leg-back-far{animation:ram-front-step .72s ease-in-out 4}
.cookie-ram .ram-leg-front-far{animation:ram-rear-step .72s ease-in-out 4}
.ram-runner{overflow:visible}

/* Original artwork legs share the body's exact scale and hip positions. */
.ram-leg-back{background-image:url("ram-leg-back.png");transform-origin:43% 61%}
.ram-leg-back-far{background-image:url("ram-leg-back-far.png");transform-origin:24% 61%}
.ram-leg-front{background-image:url("ram-leg-front.png");transform-origin:84% 60%}
.ram-leg-front-far{background-image:url("ram-leg-front-far.png");transform-origin:72% 60%}
@keyframes ram-rear-step{0%,100%{transform:rotate(7deg)}50%{transform:rotate(-7deg)}}
@keyframes ram-front-step{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}

/* Seamless repeating text with natural word spacing. */
.strip-copy{display:flex;gap:0;letter-spacing:0;word-spacing:normal;width:max-content;animation:strip-continuous 24s linear infinite}
.strip-group{display:flex;flex:none;align-items:center;gap:1.25rem;padding-right:1.25rem;min-width:100vw;justify-content:space-around}
.strip-group>span{display:block;flex:none;white-space:nowrap;letter-spacing:0;word-spacing:normal}
@keyframes strip-continuous{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.ram-traveller{animation:ram-cross 15s linear infinite}

/* Raspberry pink uses ivory for readable text on the accent colour. */
.nav-book,.button-pink,.nav-book:hover,.button-pink:hover,.together .button-pink{color:#fdfff9}
.run-strip,.menu-card-pink,.event-date,.legal-footer{color:#fdfff9}
.run-strip .strip-copy,.run-strip .strip-copy b,.menu-card-pink h3,.menu-card-pink p,.menu-card-pink a{color:#fdfff9}

/* Brand typography: compact repeat groups without stretched spacing. */
.strip-copy{font-family:"Playfair Display",Georgia,serif;font-weight:600;line-height:1.2;letter-spacing:-.02em;word-spacing:normal}
.strip-group{min-width:0;justify-content:flex-start;gap:.6em;padding-right:.6em}
.strip-group>span{letter-spacing:-.02em;word-spacing:normal}
.strip-copy b{font-family:"Inter",Arial,sans-serif;font-weight:400;letter-spacing:0}

/* Clear, permanent legal navigation at the bottom of the live website. */
footer:not(.legal-footer){grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:#0c1824;color:#fdfff9}
footer .site-legal-links{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.5rem 1.5rem;border-top:1px solid #9b988f;padding-top:1.25rem;margin-top:.5rem;font:500 .95rem/1.4 "Inter",Arial,sans-serif;color:#fdfff9}
footer .site-legal-links a{display:inline-flex;align-items:center;min-height:44px;color:#fdfff9;text-decoration:underline;text-underline-offset:4px}
@media(max-width:680px){footer:not(.legal-footer){grid-template-columns:1fr}footer .site-legal-links{gap:.35rem 1rem}}

/* Willow & Ram reservations */
.booking-section{background:var(--white);color:var(--ink)}
.booking-intro{border:0;align-items:center;padding-bottom:1rem;gap:2rem}
.booking-intro h2{font:700 clamp(2.8rem,5vw,5rem)/1.12 var(--font-display);letter-spacing:-.02em}
.booking-intro h2 em{color:#AE465D;font-style:normal;font-weight:600}
.booking-intro>p{font-size:1rem;max-width:34ch;margin:0;line-height:1.65}
.booking-tabs{display:inline-flex;gap:.3rem;padding:.3rem;border:1px solid var(--sage);border-radius:3rem;margin:1.8rem 0 1.4rem;background:var(--white)}
.booking-tabs button{border-radius:2rem;background:transparent;font-weight:500;padding:.85rem 1.6rem;min-height:48px}
.booking-tabs button[aria-selected="true"]{background:#AE465D;color:var(--white)}
.booking-reservation{border:1px solid var(--sage);border-radius:1rem;overflow:hidden;background:var(--ink)}
.booking-reservation-heading{padding:1.7rem 2rem;color:var(--white);display:grid;grid-template-columns:1fr auto;gap:.5rem 1rem;align-items:center;border-bottom:1px solid var(--sage)}
.booking-reservation-heading .eyebrow{color:var(--white);grid-column:1/-1;margin:0;font-weight:500;letter-spacing:.05em}
.booking-reservation-heading h3{font:600 clamp(1.8rem,3vw,2.5rem)/1.2 var(--font-display);letter-spacing:-.02em;margin:0}
.booking-reservation-heading>p:last-child{margin:0;font-size:1rem;line-height:1.5;max-width:28ch}
.booking-frame{margin:0;border:0;border-radius:0;box-shadow:none;height:780px;min-height:0;width:100%;background:var(--white)}
.booking-frame iframe{display:block;width:100%;height:100%;border:0}
.booking-help{margin:1.2rem 0 0;line-height:1.65;font-size:1rem;max-width:65ch}
.booking-help a{text-underline-offset:4px;font-weight:500}
.booking-private{max-width:none;padding:2rem;border:1px solid var(--sage);border-radius:1rem;background:var(--cream)}
.booking-private h3{font-weight:600}.booking-private p{max-width:52ch}
@media(max-width:700px){.booking-intro{gap:1.2rem}.booking-intro>p{max-width:100%}.booking-tabs{display:flex;width:100%;border-radius:2rem;flex-wrap:nowrap}.booking-tabs button{padding:.85rem .6rem;flex:1;font-size:.95rem}.booking-reservation-heading{padding:1.4rem 1.1rem;grid-template-columns:1fr;gap:.65rem}.booking-reservation-heading>p:last-child{max-width:none}.booking-frame{height:760px;min-height:0;overflow:visible}.booking-private{padding:1.5rem}.booking-private .button{width:100%;white-space:normal}}

.hero-visual img{object-position:center 55%}
/* Consistent brand feedback for pointer and keyboard interaction. */
button:active,.button:active,[role="button"]:active,summary:active,.button.is-pressed,button.is-pressed{background:#AE465D!important;color:#FDFFF9!important;border-color:#AE465D!important}
button:focus-visible,.button:focus-visible,[role="button"]:focus-visible,summary:focus-visible{outline:3px solid #AE465D;outline-offset:4px}
button[aria-selected="true"],button[aria-pressed="true"],details[open]>.menu-toggle-label{background:#AE465D;color:#FDFFF9;border-color:#AE465D}
@media(hover:hover){button:hover,.button:hover,[role="button"]:hover{background:#AE465D!important;color:#FDFFF9!important;border-color:#AE465D!important}}


/* Give the complete ram sprite room so hooves are never clipped by the strip. */
.runway{height:116px}.ram-traveller,.cookie-ram,.finale-ram{height:105px}.ram-traveller{bottom:4px}
.ram-leg-back{background-image:url("ram-leg-back.svg");transform-origin:29% 57%}
.ram-leg-back-far{background-image:url("ram-leg-back-far.svg");transform-origin:45% 57%}
.ram-leg-front{background-image:url("ram-leg-front.svg");transform-origin:76% 55%}
.ram-leg-front-far{background-image:url("ram-leg-front-far.svg");transform-origin:63% 57%}

/* Launch brand and mobile hierarchy */
:root{--ink:#0C1824;--paper:#FDFFF9;--white:#FDFFF9;--cherry:#B3294A;--rose:#B3294A;--cream:#FDFFF9;--mint:#FFCEA3}
body{font-family:Inter,Arial,sans-serif;background:#FDFFF9;color:#0C1824}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif;letter-spacing:-.02em;line-height:1.2}h1{font-weight:700}h2,h3{font-weight:600}h4,h5,h6,.menu-group h4{font-family:Inter,Arial,sans-serif;font-weight:600;letter-spacing:0}
.site-header{position:sticky;top:0;z-index:100;background:#FDFFF9}.brand{background:#AE465D;-webkit-mask:url('/logo.png') center/contain no-repeat;mask:url('/logo.png') center/contain no-repeat}.brand img{opacity:0}.nav-book,.button-pink{background:#B3294A;color:#FDFFF9;border-color:#B3294A}
.hero h1{font-size:clamp(3.1rem,5.4vw,6rem)}.hero h1 span,.hero .eyebrow{color:#FFCEA3}.hero-content{max-width:740px}.hero-actions{flex-wrap:wrap}.hero-actions .button{font-weight:500}
.menu-card-pink{background:#0C1824;color:#FDFFF9}.menu-card-pink .button{background:#B3294A;color:#FDFFF9}.menu-card-pink .menu-group li+li{border-color:#FDFFF930}.menu-card-pink .menu-group{border-color:#FDFFF930}.menu-note{font-size:1rem}
.weekly-offers{margin-top:2.5rem;border-top:1px solid #536150;padding-top:2rem;display:grid;grid-template-columns:1fr 2fr auto;gap:2rem;align-items:center}.weekly-offers h3{font-size:2rem}.weekly-offers>div{display:flex;gap:2rem}.weekly-offers p{line-height:1.6;margin:0}
.hire{background:#FDFFF9;grid-template-columns:1.15fr 1fr;align-items:start}.hire-intro h2{font-size:clamp(2.6rem,4vw,4.5rem)}.hire-intro em{color:#0C1824}.hire-occasions{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:2rem 0}.hire-occasions h3{font-size:1.6rem;color:#B3294A}.hire-occasions ul{padding-left:1.2rem;line-height:1.6}.hire-occasions li{margin-bottom:.6rem}.hire-form{border:1px solid #536150;background:#FDFFF9;padding:2rem}.hire-form h3{font-size:2rem;margin-top:0}.hire-form label{font-weight:500}.hire-form input,.hire-form select,.hire-form textarea{background:#FDFFF9;font:400 1rem/1.5 Inter,Arial,sans-serif;max-width:100%;box-sizing:border-box}
.events{background:#0C1824;color:#FDFFF9}.events .eyebrow,.events .event-type{color:#FFCEA3}.events .event-feature{background:#FDFFF9;color:#0C1824;border:0;box-shadow:none}.events-heading{border-color:#FDFFF940}.featured-event{display:grid;grid-template-columns:1.1fr 1fr;margin:2rem 0;background:#FDFFF9;color:#0C1824}.featured-event img{width:100%;height:100%;min-height:300px;object-fit:cover}.featured-event .event-detail{padding:2.5rem}.featured-event h3{font-size:clamp(2.5rem,4vw,4rem)}.event-card-image{width:100%;max-height:220px;object-fit:cover;margin-bottom:1rem}.event-list{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}.event-list .event-feature{display:block}.coming-up-title{font-size:2rem}.signup{background:#0C1824;color:#FDFFF9;border-top:1px solid #FDFFF940}.signup .eyebrow{color:#FFCEA3}
.accessibility-trigger{position:static!important;margin:1rem 0 0;max-width:100%;font-size:1rem}footer{position:relative;align-items:start;padding-bottom:3rem!important}.christmas-hero{background:#0C1824;color:#FDFFF9}.christmas-hero h1{font-size:clamp(3rem,7vw,6rem)}.christmas-hero .eyebrow{color:#FFCEA3}
@media(max-width:900px){.hire{grid-template-columns:1fr}.weekly-offers{grid-template-columns:1fr}.weekly-offers>div{flex-wrap:wrap}.event-list{grid-template-columns:1fr}.featured-event{grid-template-columns:1fr}.featured-event .event-detail{padding:1.5rem}}
@media(max-width:680px){.site-header{padding:.55rem 1rem;gap:.5rem}.nav-links{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;gap:1rem;padding:.2rem 0;white-space:nowrap}.nav-links a{font-size:.85rem}.brand{width:150px}.nav-book{font-size:.9rem;max-width:none;padding:.7rem .8rem}.hero{padding-top:0;display:flex;flex-direction:column;min-height:0}.hero-content{order:0;padding:2rem 1.25rem}.hero-visual{position:relative;order:1;left:auto;inset:auto;height:240px}.hero h1{font-size:clamp(2.8rem,9vw,3.8rem);margin-top:.5rem}.hero-copy{margin:1rem 0}.hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.hero-actions .hero-book{display:none}.hero-actions .button{font-size:.85rem;padding:.75rem .55rem;width:100%;box-sizing:border-box}.hero-visual:after{background:none}.booking-section{padding-top:2.5rem}.booking-intro h2{font-size:2.5rem}.hire-occasions{grid-template-columns:1fr;gap:0}.hire-form{padding:1.3rem}.featured-event img{min-height:0;max-height:300px}.featured-event h3{font-size:2.5rem}.section-pad{padding-block:3rem}.signup{display:block}.weekly-offers>div{display:block}.weekly-offers p+p{margin-top:1rem}}

[hidden]{display:none!important}

.parking-named-link{display:block;border:1px solid #536150;background:#FDFFF9;color:#0C1824;padding:1rem;text-decoration:none;min-height:44px}.parking-named-link strong,.parking-named-link small{display:block}.parking-named-link small{font-size:.9rem;margin-top:.3rem}

/* Restore the earlier Berry Rose, oat and sage design. */
:root{--rose:#AE465D;--cherry:#AE465D;--venue-pink:#AE465D;--cream:#E1D6C4;--mint:#B9CAB8}
.nav-book,.button-pink,.menu-card-pink .button{background:var(--venue-pink);border-color:var(--venue-pink);color:var(--white)}
.hero h1 span{color:var(--venue-pink)}
.menu-card-pink,.run-strip,.event-date{background:var(--venue-pink);color:var(--white)}
.hire-intro em,.hire-occasions h3{color:var(--venue-pink)}
.events{background:var(--cream);color:var(--ink)}
.events .eyebrow,.events .event-type{color:var(--venue-pink)}
.events-heading{border-color:#0C182440}
.events .event-feature{box-shadow:6px 6px 0 var(--venue-pink)}
.signup{background:var(--mint);color:var(--ink);border-top:1px solid #536150}
.signup .eyebrow{color:var(--venue-pink)}
.featured-event{align-items:center;overflow:hidden}
.featured-event img{display:block;width:100%;height:auto;min-height:0;max-height:none;object-fit:contain;align-self:center}
.event-card-image{height:auto;max-height:none;object-fit:contain}

/* Existing visual identity retained for the launch content updates. */
.hero .eyebrow{color:var(--peach)}.hire-intro h2 em{color:var(--venue-pink)}

/* Consistent spacing and fluid type in full-page and narrow embedded views. */
:root{--page-gutter:clamp(1.1rem,4vw,4rem)}
.section-pad{padding:clamp(3rem,5vw,5rem) max(var(--page-gutter),calc((100vw - 1280px)/2))}
main section,main section>div,.menu-card,.event-detail,.hire-intro,.hire-form,.form-row>label{min-width:0}
h1,h2,h3,h4,p,li,address{overflow-wrap:break-word}
p{line-height:1.6}h2,h3{line-height:1.2;letter-spacing:-.02em}
.section-heading h2,.events-heading h2,.visit h2,.dog-section h2{font-size:clamp(2.3rem,4vw,4.1rem)}
.section-heading{margin-bottom:2rem}.eyebrow{margin-bottom:.8rem}
.site-header{grid-template-columns:minmax(150px,210px) minmax(0,1fr) auto;gap:1.25rem;min-height:84px;padding:.65rem var(--page-gutter)}
.brand{width:100%;max-width:210px}.brand img{width:100%;max-height:72px;object-fit:contain}
.nav-links{gap:clamp(.7rem,1.4vw,1.4rem)}.nav-links a{white-space:nowrap;font-size:.86rem;letter-spacing:0;line-height:1.3}
.nav-book{white-space:nowrap;font-size:.85rem;padding:.75rem 1rem}
section[id]{scroll-margin-top:145px}
.menu-grid{align-items:stretch}.menu-card summary{height:100%;min-height:310px;padding:clamp(1.5rem,3vw,2.5rem);gap:1.2rem}
.menu-card-intro strong,.menu-card h3{font-family:var(--font-display);font-size:clamp(2rem,3.1vw,3.3rem);line-height:1.2;letter-spacing:-.02em;font-weight:600}
.menu-card-intro p,.menu-card p{font-size:1rem;line-height:1.6}.menu-toggle-label{margin-top:auto!important;max-width:100%;white-space:normal}
.menu-group{padding-inline:clamp(1.25rem,3vw,2.5rem)}.menu-group li{gap:1rem;align-items:start}.menu-group li span{min-width:0}.menu-group li b{flex-shrink:0;white-space:nowrap}
.hire{gap:clamp(2rem,4vw,4rem);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.hire-intro h2{font-size:clamp(2.3rem,3.8vw,4rem)}.hire-occasions{gap:1.5rem}.hire-occasions h3{font-size:1.5rem}.hire-occasions ul{padding-left:1.15rem}.hire-occasions li{font-size:1rem;line-height:1.55;margin-bottom:.65rem}
.hire-form{border-radius:.75rem;padding:clamp(1.3rem,2.5vw,2rem);gap:1.2rem}.hire-form h3{font-size:1.8rem;margin:0 0 .5rem}.hire-form label{font-size:.95rem;line-height:1.4}
.hire-form input,.hire-form select,.hire-form textarea{display:block;width:100%;min-width:0;max-width:100%;min-height:48px;padding:.7rem .75rem;border:1px solid #53615080;border-radius:.35rem;font:400 1rem/1.4 Inter,Arial,sans-serif;margin-top:.4rem}
.hire-form textarea{min-height:130px}.form-row{gap:1rem}.form-note{font-size:.88rem;line-height:1.6}
.featured-event{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0;border-radius:.75rem;overflow:hidden;margin:1.8rem 0 2.5rem}
.featured-event img{width:100%;height:auto;min-height:0;max-height:none;object-fit:contain}
.featured-event .event-detail{padding:clamp(1.3rem,3vw,2.3rem)}.featured-event h3{font-size:clamp(2rem,3vw,3.2rem);margin:.7rem 0 1rem}.featured-event p{font-size:1rem;line-height:1.6}
.event-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin-top:1.25rem}.event-actions .button{font:500 .9rem/1.3 Inter,Arial,sans-serif;padding:.8rem 1.1rem;min-height:46px;white-space:normal}.event-actions a:not(.button){font:500 .9rem/1.4 Inter,Arial,sans-serif;min-height:44px;display:inline-flex;align-items:center;text-underline-offset:4px}
.event-list{align-items:stretch}.event-list .event-feature{margin:0;padding:1.5rem;border-radius:.6rem}.event-detail h3{font-size:clamp(1.6rem,2.3vw,2.2rem)}.event-date{font-family:Inter,Arial,sans-serif;font-weight:600;font-size:1rem;letter-spacing:0;line-height:1.4;min-height:0;padding:1rem;margin-bottom:1rem}.event-tools{gap:1rem;flex-wrap:wrap}.event-tools select{padding:.65rem;border-radius:.35rem;font:400 1rem Inter,Arial,sans-serif;max-width:100%}
.weekly-offers{gap:1.5rem}.weekly-offers>div{gap:1.5rem}.signup{gap:2.5rem}.signup form{min-width:0}.parking-tool{min-width:0}.parking-shortcuts>*{min-width:0}.parking-entry{min-width:0}.parking-entry input{min-width:0}
@media(max-width:1100px){.site-header{grid-template-columns:minmax(0,1fr) auto;gap:.4rem 1rem}.brand{width:165px}.nav-links{grid-row:2;grid-column:1/-1;justify-content:space-between;gap:.9rem;padding:.3rem 0;overflow-x:auto;flex-wrap:nowrap}.nav-links a{flex:0 0 auto;min-height:36px;display:flex;align-items:center}.nav-book{grid-column:2;grid-row:1}.hire{grid-template-columns:1fr}.hire-intro{max-width:none}.hire-occasions{grid-template-columns:1fr 1fr}.hire-form{width:100%}.featured-event{grid-template-columns:1fr}.featured-event img{max-width:100%;width:100%}.weekly-offers{grid-template-columns:1fr}.weekly-offers>div{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:680px){.section-pad{padding-block:3rem}.brand{width:145px}.nav-links a{font-size:.8rem}.nav-book{font-size:.8rem}.hero-content{margin:0;width:100%;padding:2rem var(--page-gutter)}.hero h1{font-size:clamp(2.5rem,9vw,3.5rem)}.hero-actions{grid-template-columns:1fr}.menu-grid{grid-template-columns:1fr}.menu-card summary{min-height:260px}.menu-card-intro strong{font-size:2.25rem}.hire-occasions{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.event-list{grid-template-columns:1fr}.featured-event .event-detail{padding:1.4rem}.event-actions{align-items:stretch}.event-actions .button{width:100%}.weekly-offers>div{grid-template-columns:1fr}.parking-entry{flex-wrap:wrap}.parking-entry>*{width:100%}.signup input{max-width:100%}.booking-intro h2{font-size:2.5rem}}

/* Willow & Ram display type for the top navigation tabs. */
.nav-links a{font-family:"Playfair Display",Georgia,serif;font-weight:600;letter-spacing:-.01em;text-transform:none;font-size:1rem;line-height:1.3}
@media(max-width:680px){.nav-links a{font-size:.9rem}}

/* Brand typography audit: display faces only for titles and short taglines. */
h1,.hero h1{font-family:var(--font-display);font-weight:700;line-height:1.15;letter-spacing:-.02em;text-transform:none}
h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.2;letter-spacing:-.02em;text-transform:none}
h4,h5,h6,.menu-group h4,.offer-card .hire-form h4{font-family:Inter,Arial,sans-serif;font-weight:600;line-height:1.3;letter-spacing:0;text-transform:none}
p,li,address,figcaption,.legal-lede{font-family:Inter,Arial,sans-serif;font-weight:400;line-height:1.6;letter-spacing:0}
button,.button,.nav-links a,.nav-book,input,select,textarea,label{font-family:Inter,Arial,sans-serif;line-height:1.3}
button,.button,.nav-links a,.nav-book{font-weight:500;letter-spacing:.05em}
.eyebrow,.hero-photo-label,.hero-badge span{font-family:Inter,Arial,sans-serif;font-weight:500;letter-spacing:.05em;line-height:1.3}
.menu-card-intro strong,footer strong,.hero-badge strong,.finale-name{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.2}
.event-date,.event-date strong,.calendar-day>strong,.calendar-head strong,.parking-result .route-time,.offer-card .offer-price{font-family:Inter,Arial,sans-serif;font-weight:600;line-height:1.3;letter-spacing:0}
.legal-lede{line-height:1.6}

/* Approved colours and the requested display navigation. */
.hero h1 span{color:#FFCEA3}
.nav-links a{font-family:"Playfair Display",Georgia,serif;font-weight:600;letter-spacing:-.01em;font-size:1rem;line-height:1.3;text-transform:none}
@media(max-width:680px){.nav-links a{font-size:.9rem}}

/* Anchor each stride within the matching hip or shoulder under the fleece. */
.ram-leg-back{transform-origin:49% 62%}
.ram-leg-back-far{transform-origin:23% 62%}
.ram-leg-front{transform-origin:79% 62%}
.ram-leg-front-far{transform-origin:65% 62%}
@keyframes ram-rear-step{0%,100%{transform:rotate(5deg)}50%{transform:rotate(-5deg)}}
@keyframes ram-front-step{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}

/* Rounded shoulders and shorter tapered legs, tucked beneath the fleece. */
.ram-leg-back{transform-origin:28% 62%}
.ram-leg-back-far{transform-origin:42% 62%}
.ram-leg-front{transform-origin:74% 62%}
.ram-leg-front-far{transform-origin:62% 62%}

/* Menus expand directly below their summaries, without percentage-height stretching. */
.menu-grid{align-items:start}.menu-card summary{height:auto;min-height:310px}.menu-card[open] .menu-expanded{display:block;visibility:visible;opacity:1;animation:none}.menu-expanded{height:auto;max-height:none;overflow:visible}.menu-group{padding-inline:0}
/* Complete original logo ram: its legs remain connected during the travelling loop. */
.ram-body{background-image:url("logo.png");background-size:569px 201px;background-position:-248px -97px;width:78px;height:105px;-webkit-clip-path:none;clip-path:none}
.ram-leg{display:none}
.ram-runner{animation:ram-smooth-bob .85s ease-in-out infinite}
@media(max-width:680px){.menu-card summary{min-height:260px}}

/* Find us: address, opening hours and parking in one coherent section. */
.visit-card{display:block;background:transparent;padding:0;border:0;box-shadow:none;margin-bottom:2.5rem}.visit-card>div{display:grid;grid-template-columns:1fr 1fr;gap:1rem 3rem}.visit-card .eyebrow,.visit-card h2{grid-column:1/-1}.visit-card h2{margin:0 0 1rem}.visit-card address{font:400 1.1rem/1.7 Inter,Arial,sans-serif}.opening-hours{grid-column:2;grid-row:3/5;margin:0}.opening-hours h3{font-size:1.6rem;margin:0 0 1rem}.visit-actions{grid-column:1;align-items:start;flex-wrap:wrap;margin-top:.5rem}.parking{padding-top:2rem;border-top:1px solid #53615080}.parking-heading{gap:1.5rem;margin-bottom:1.5rem}.parking-heading h3{font-size:clamp(1.9rem,3vw,2.7rem);margin:0}.parking-heading p{max-width:48ch;margin:0}.parking-tool{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:2rem;align-items:start}.parking-shortcuts{display:grid;grid-template-columns:1fr;gap:.7rem}.parking-named-link{border-radius:.5rem;padding:1rem 1.1rem;background:var(--white);border:1px solid var(--sage);transition:background .2s}.parking-named-link strong{font:600 1.1rem/1.3 Inter,Arial,sans-serif}.parking-named-link small{line-height:1.5;color:var(--forest)}.parking-named-link:hover{background:var(--cream)}.parking-live-map{height:500px;min-height:0;overflow:hidden;border:1px solid var(--sage);border-radius:.75rem}.parking-live-map iframe{display:block;width:100%;height:100%;min-height:0!important}.parking-controls{padding:0;background:transparent}.parking-form,.parking-controls form{margin-top:1.5rem}.parking-entry{display:flex;gap:.6rem;margin-top:.5rem}.parking-entry input{flex:1;border:1px solid var(--sage);padding:.8rem;font:400 1rem Inter,Arial,sans-serif;border-radius:.35rem}.parking-google{margin-top:1rem;display:inline-block}.parking-fineprint{font-size:.85rem;line-height:1.6}
@media(max-width:800px){.parking-tool{grid-template-columns:1fr}.parking-live-map{height:380px}.parking-heading{display:block}.parking-heading p{margin-top:1rem}.visit-card>div{grid-template-columns:1fr;gap:1rem}.visit-card .eyebrow,.visit-card h2,.opening-hours,.visit-actions{grid-column:auto;grid-row:auto}.opening-hours{margin-top:1rem}}

.parking-named-link{width:100%;text-align:left;cursor:pointer;white-space:normal;font-family:Inter,Arial,sans-serif;letter-spacing:0}.parking-named-link[aria-pressed="true"]{background:var(--venue-pink);color:var(--white);border-color:var(--venue-pink)}.parking-named-link[aria-pressed="true"] small{color:var(--white)}#parking-route-status{margin:1.2rem 0 0;font-size:.95rem;line-height:1.6}

/* Consistent legal page tabs at the foot of every page. */
footer .legal-tabs,.legal-footer .legal-tabs{display:flex;flex-wrap:wrap;gap:.65rem;grid-column:1/-1;justify-content:flex-start;align-items:center}
footer .legal-tabs a,.legal-footer .legal-tabs a{display:inline-flex;align-items:center;min-height:44px;padding:.65rem .9rem;border:1px solid #FDFFF960;border-radius:.45rem;color:#FDFFF9;font:500 .88rem/1.3 Inter,Arial,sans-serif;letter-spacing:0;text-decoration:none}
footer .legal-tabs a:hover,footer .legal-tabs a[aria-current="page"]{background:#AE465D;color:#FDFFF9;border-color:#AE465D}
.legal-footer{background:#0C1824;color:#FDFFF9;padding:2rem var(--page-gutter);display:grid;gap:1.5rem}.legal-main h1{font-size:clamp(2.5rem,7vw,4.5rem)}.legal-main{width:min(100%,900px);box-sizing:border-box}.legal-table-wrap{overflow-x:auto}
@media(max-width:480px){footer .legal-tabs,.legal-footer .legal-tabs{display:grid;grid-template-columns:1fr 1fr}footer .legal-tabs a{font-size:.8rem;padding:.6rem}}

/* Berry Rose artwork on ivory legal pages; legible selected parking options. */
.legal-header>a:first-child{display:block;width:178px;aspect-ratio:949/336;background:#AE465D;-webkit-mask:url('/logo.png') center/contain no-repeat;mask:url('/logo.png') center/contain no-repeat;flex-shrink:0}
.legal-header>a:first-child img{opacity:0;width:100%;height:auto}
.parking-named-link[aria-pressed="true"],.parking-named-link[aria-pressed="true"] strong,.parking-named-link[aria-pressed="true"] small,.parking-named-link:active,.parking-named-link:active strong,.parking-named-link:active small{color:#FDFFF9!important}
.parking-named-link[aria-pressed="true"]{background:#AE465D!important;border-color:#AE465D!important}
@media(max-width:680px){.legal-header>a:first-child{width:140px}}

/* Readable allergen page across phones and embedded site views. */
.allergen-main{width:min(100%,800px);margin:0 auto;min-height:65vh;padding:clamp(2rem,5vw,4rem) clamp(1.1rem,4vw,2.5rem);box-sizing:border-box;overflow-wrap:break-word}
.allergen-main h1{font-family:"Playfair Display",Georgia,serif;font-weight:700;font-size:clamp(2.2rem,6vw,3.8rem);line-height:1.15;letter-spacing:-.02em;margin:1rem 0 1.5rem;max-width:100%}
.allergen-main p{font:400 1rem/1.65 Inter,Arial,sans-serif;max-width:65ch;margin:0 0 1.2rem}.allergen-main .eyebrow{margin-top:2rem;font-size:.85rem;font-weight:500}.allergen-main>a{font:500 .95rem/1.4 Inter,Arial,sans-serif;display:inline-block;min-height:44px;padding-block:.5rem}
@media(max-width:480px){.allergen-main{padding:1.5rem 1.15rem 2.5rem;min-height:0}.allergen-main h1{font-size:2.2rem}}

/* Navy event-interest selections with an ivory tick. */
.signup input[type="checkbox"]{appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;width:20px;height:20px;min-width:20px;min-height:20px;padding:0;margin:0 .55rem 0 0;border:1.5px solid #0C1824;border-radius:3px;background:#FDFFF9;vertical-align:middle;cursor:pointer;flex:0 0 20px;box-sizing:border-box;accent-color:#0C1824}
.signup input[type="checkbox"]:checked{background:#0C1824;border-color:#0C1824}
.signup input[type="checkbox"]:checked::after{content:"";width:9px;height:5px;border-left:2px solid #FDFFF9;border-bottom:2px solid #FDFFF9;transform:translateY(-1px) rotate(-45deg)}
.signup input[type="checkbox"]:focus-visible{outline:3px solid #AE465D;outline-offset:3px}
@media(forced-colors:active){.signup input[type="checkbox"]{appearance:auto}}

/* Keep parking controls and map inside every viewport. */
.parking,.parking-heading,.parking-tool,.parking-controls,.parking-live-map{min-width:0;max-width:100%;box-sizing:border-box}
.parking-tool{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1rem,2.5vw,2rem)}
.parking-live-map{width:100%;height:clamp(320px,45vw,480px);margin:0;box-sizing:border-box}
.parking-live-map iframe{width:100%!important;height:100%!important;min-width:0;min-height:0!important;display:block}
.parking-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;width:100%}.parking-entry input{width:100%;min-width:0;max-width:100%}.parking-entry .button{white-space:normal;font-size:.85rem;padding:.7rem .9rem}
.parking-controls p,.parking-controls a,.parking-named-link{overflow-wrap:anywhere;max-width:100%}.parking-named-link{padding:.85rem 1rem}.parking-named-link strong{font-size:1rem}.parking-named-link small{font-size:.85rem;line-height:1.5}.parking-heading h3{font-size:clamp(1.8rem,3vw,2.5rem)}
@media(max-width:1050px){.parking-tool{grid-template-columns:1fr}.parking-live-map{height:380px}.parking-heading{display:block}.parking-heading p{margin-top:1rem;max-width:100%}}
@media(max-width:480px){.parking-entry{grid-template-columns:1fr}.parking-entry .button{width:100%}.parking-live-map{height:320px}.parking{padding-top:1.5rem}}

/* Balanced menu cards and offers in the embedded page. */
.menu-card summary{min-height:350px;height:auto;display:flex;gap:1.2rem;padding:clamp(1.5rem,3vw,2.4rem)}
.menu-card-intro strong{font-size:clamp(1.9rem,2.8vw,3rem);line-height:1.2}.menu-card-intro>span{font-size:1rem;line-height:1.6;max-width:100%}.menu-card .menu-toggle-label{margin-top:auto!important;white-space:normal}
.weekly-offers{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1.5rem 2rem;align-items:start}.weekly-offers>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem}.weekly-offers h3{font-size:clamp(1.7rem,2.5vw,2.3rem);line-height:1.25;margin:0}.weekly-offers p{font-size:1rem;line-height:1.6;overflow-wrap:break-word}.weekly-offers>.button{grid-column:2;justify-self:start;margin-top:0}
@media(max-width:1100px){.weekly-offers{grid-template-columns:1fr}.weekly-offers>.button{grid-column:1}.menu-card summary{min-height:340px}}
@media(max-width:680px){.menu-card summary{min-height:280px}.menu-card-intro strong{font-size:2.1rem}.weekly-offers>div{grid-template-columns:1fr;gap:1rem}.weekly-offers>.button{width:100%}}

/* Matching sun and moon occasion cards, without bullet lists. */
.hire-occasions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:2rem 0}
.occasion-card{padding:clamp(1.2rem,2.5vw,1.8rem);border:1px solid #53615070;border-radius:.75rem;min-width:0}
.occasion-sun{background:#E1D6C4;color:#0C1824}.occasion-moon{background:#0C1824;color:#FDFFF9}
.occasion-card .occasion-label{font:500 .78rem/1.4 Inter,Arial,sans-serif;letter-spacing:.04em;margin:0 0 .6rem}
.occasion-card h3{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:clamp(1.8rem,2.8vw,2.4rem);letter-spacing:-.02em;line-height:1.2;margin:0 0 1.3rem;color:#0C1824}
.occasion-moon h3{color:#FFCEA3}.occasion-options{display:grid;gap:.6rem}
.occasion-options p{font:400 .95rem/1.5 Inter,Arial,sans-serif;letter-spacing:0;margin:0;padding:.75rem .85rem;border-radius:.4rem;background:#FDFFF9;color:#0C1824;overflow-wrap:break-word}
.occasion-moon .occasion-options p{background:#FDFFF912;color:#FDFFF9;border:1px solid #FDFFF930}
@media(max-width:600px){.hire-occasions{grid-template-columns:1fr}.occasion-card{padding:1.25rem}}

/* Navy food and drinks tabs with brand ivory lettering. */
.menu-card,.menu-card-pink{background:#0C1824;color:#FDFFF9}
.menu-card summary,.menu-card .menu-number,.menu-card .menu-card-intro,.menu-card .menu-card-intro strong,.menu-card .menu-card-intro>span,.menu-card .menu-expanded,.menu-card .menu-expanded h4,.menu-card .menu-expanded p,.menu-card .menu-expanded li,.menu-card .menu-expanded b{color:#FDFFF9}
.menu-card .menu-group,.menu-card .menu-group li+li{border-color:#FDFFF930}
.menu-card .menu-toggle-label,.menu-card .menu-close{background:#AE465D;color:#FDFFF9;border-color:#AE465D}
/* Sun and moon invitation dropdowns. */
.occasion-card{padding:0;overflow:hidden;align-self:start}
.occasion-card summary{display:flex;align-items:center;gap:.8rem;padding:1.2rem;cursor:pointer;list-style:none;min-height:110px}
.occasion-card summary::-webkit-details-marker{display:none}
.occasion-card summary>span:nth-child(2){flex:1;min-width:0}
.occasion-card .occasion-label{display:block;margin:0 0 .35rem;font-size:.78rem;line-height:1.4}
.occasion-title{display:block;font:600 clamp(1.7rem,2.6vw,2.3rem)/1.2 "Playfair Display",Georgia,serif;letter-spacing:-.02em}
.occasion-symbol{font-size:2rem;line-height:1;color:#AE465D;transition:transform .25s ease}
.occasion-moon .occasion-symbol,.occasion-moon .occasion-title{color:#FFCEA3}
.occasion-plus{font:400 1.7rem/1 Inter,Arial,sans-serif;transition:transform .25s ease}
.occasion-card[open] .occasion-plus{transform:rotate(45deg)}
.occasion-card summary:hover .occasion-symbol{transform:rotate(15deg)}
.occasion-card summary:focus-visible{outline:3px solid #AE465D;outline-offset:-4px}
.occasion-card .occasion-options{padding:0 1rem 1rem;gap:.5rem}
.occasion-card .occasion-options p{margin:0;font:400 .95rem/1.5 Inter,Arial,sans-serif;padding:.75rem .85rem}
.occasion-card[open] .occasion-options{animation:occasion-reveal .25s ease-out}
@keyframes occasion-reveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.occasion-card[open] .occasion-options{animation:none}.occasion-symbol,.occasion-plus{transition:none}}

/* Original celestial artwork from the Willow & Ram logo. */
.hire-occasions{align-items:start;grid-template-columns:repeat(2,minmax(0,1fr))}
.occasion-card summary{height:150px;min-height:150px;padding:1rem;gap:.75rem}
.occasion-card .occasion-symbol{position:relative;display:block;flex:0 0 52px;width:52px;height:60px;overflow:hidden;font-size:0}
.occasion-symbol img{position:absolute;max-width:none;width:329px;height:auto;pointer-events:none}
.occasion-logo-sun img{left:-97px;top:-8px}
.occasion-logo-moon img{width:560px;left:-317px;top:-23px}
.occasion-card .occasion-label{font-family:Inter,Arial,sans-serif;font-weight:500;font-size:.8rem;line-height:1.4;letter-spacing:0}
.occasion-card .occasion-title{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:clamp(1.6rem,2.3vw,2rem);line-height:1.2;letter-spacing:-.02em;white-space:nowrap}
.occasion-card .occasion-options p{font-family:Inter,Arial,sans-serif;font-weight:400;letter-spacing:0}
@media(max-width:600px){.hire-occasions{grid-template-columns:1fr}.occasion-card summary{height:130px;min-height:130px}}

/* Fixed, equally sized sun and moon cards. */
.hire-occasions{align-items:stretch}
.occasion-card{align-self:stretch;display:flex;flex-direction:column}
.occasion-heading{display:flex;align-items:center;gap:.75rem;padding:1rem;height:150px;min-height:150px}
.occasion-heading>span:nth-child(2){flex:1;min-width:0}
.occasion-card .occasion-options{flex:1;grid-auto-rows:1fr}
.occasion-card .occasion-options p{display:flex;align-items:center}
@media(max-width:600px){.occasion-card{min-height:580px}.occasion-heading{height:130px;min-height:130px}}

/* Equal occasion tiles in both fixed celebration cards. */
.hire-occasions{align-items:stretch}
.occasion-card .occasion-options{flex:0 0 auto;grid-auto-rows:auto}
.occasion-card .occasion-options p{height:108px;min-height:108px;margin:0;display:flex;align-items:center;font:400 .95rem/1.5 Inter,Arial,sans-serif;letter-spacing:0}
@media(max-width:600px){.occasion-card{min-height:0}.occasion-card .occasion-options p{height:108px;min-height:108px}}

.occasion-card .occasion-options{min-height:704px;align-content:start}

/* Clean celestial symbols, with no wordmark overlapping the artwork. */
.occasion-card .occasion-symbol{flex:0 0 64px;width:64px;height:72px;overflow:hidden}
.occasion-symbol img{width:144px;height:72px;max-width:none;top:0;left:-4px}
.occasion-logo-moon img{width:192px;height:96px;top:-12px;left:-112px}

/* Supplied Willow & Ram artwork beside the events introduction. */
.events-heading{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 118px;align-items:center;gap:clamp(1rem,3vw,2.5rem)}
.events-heading .events-brand-art{display:block;width:118px;height:205px;object-fit:contain;justify-self:end}
@media(max-width:900px){.events-heading{grid-template-columns:minmax(0,1fr) 100px}.events-heading>div{grid-column:1;grid-row:1}.events-heading>p{grid-column:1;grid-row:2}.events-heading .events-brand-art{grid-column:2;grid-row:1 / span 2;width:100px;height:174px}}
@media(max-width:480px){.events-heading{grid-template-columns:minmax(0,1fr) 76px;gap:1rem}.events-heading .events-brand-art{width:76px;height:132px}.events-heading>p{grid-column:1 / -1;grid-row:2}.events-heading .events-brand-art{grid-row:1}}

/* Ivory brand artwork in the newsletter section. */
.events-heading{grid-template-columns:repeat(2,minmax(0,1fr))}
.signup-brand-art{display:block;width:138px;height:240px;margin-top:1.5rem;background:#FDFFF9;-webkit-mask:url('/events-brand-art.svg') center / contain no-repeat;mask:url('/events-brand-art.svg') center / contain no-repeat}
@media(max-width:900px){.events-heading{grid-template-columns:1fr}.events-heading>p{grid-column:1;grid-row:auto}}
@media(max-width:680px){.signup-brand-art{width:100px;height:174px;margin-top:1.25rem}}

/* Original supplied logo colourway in the newsletter. */
img.signup-brand-art{background:transparent;-webkit-mask:none;mask:none;object-fit:contain}

/* Consistent Berry Rose buttons and comfortably spaced footer links. */
button,.button,.nav-book,.menu-toggle-label,.menu-close,a[role="button"]{background:#AE465D!important;border-color:#AE465D!important;color:#FDFFF9!important}
button:hover,.button:hover,.nav-book:hover,.menu-close:hover,a[role="button"]:hover{background:#AE465D!important;color:#FDFFF9!important;filter:brightness(.94)}
button:disabled{opacity:.6;filter:none}
.parking-named-link strong,.parking-named-link small{color:#FDFFF9!important}
footer .legal-tabs,.legal-footer .legal-tabs{gap:1rem 1.25rem;padding-top:1.75rem;margin-top:1rem;align-items:stretch}
footer .legal-tabs a,.legal-footer .legal-tabs a{background:#AE465D;color:#FDFFF9;border-color:#AE465D;min-height:48px;padding:.8rem 1.15rem;justify-content:center;text-align:center}
.footer-links{gap:.8rem}
.footer-links>a{min-height:44px;display:inline-flex;align-items:center;justify-content:flex-end}
@media(max-width:680px){.footer-links>a{justify-content:flex-start}footer .legal-tabs,.legal-footer .legal-tabs{gap:.85rem;padding-top:1.5rem}}
@media(max-width:480px){footer .legal-tabs,.legal-footer .legal-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}footer .legal-tabs a,.legal-footer .legal-tabs a{padding:.85rem .65rem;overflow-wrap:break-word}}

/* Willow & Ram display type across buttons and button-style links. */
button,.button,.nav-book,.menu-toggle-label,.menu-close,a[role="button"],footer .legal-tabs a,.legal-footer .legal-tabs a{font-family:"Playfair Display",Georgia,serif!important;font-weight:600!important;letter-spacing:-.01em!important;line-height:1.3!important;text-transform:none!important}
.parking-named-link strong,.parking-named-link small{font-family:"Playfair Display",Georgia,serif;font-weight:600;letter-spacing:-.01em;line-height:1.3}

/* One segmented switch for table bookings and private hire. */
.booking-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,450px);gap:0;padding:5px;margin-top:2rem;border:1px solid #AE465D;border-radius:999px;background:#FDFFF9;flex-wrap:nowrap}
.booking-tabs button{min-width:0;min-height:52px;margin:0;padding:.85rem 1.1rem;border:0!important;border-radius:999px;background:transparent!important;color:#AE465D!important;font-size:1.05rem;cursor:pointer;transition:background .2s ease,color .2s ease,box-shadow .2s ease}
.booking-tabs button[aria-selected="true"]{background:#AE465D!important;color:#FDFFF9!important;box-shadow:0 2px 6px #0C182420}
.booking-tabs button:hover{filter:none;background:#AE465D12!important}
.booking-tabs button[aria-selected="true"]:hover{background:#AE465D!important;color:#FDFFF9!important}
.booking-tabs button:focus-visible{outline:2px solid #0C1824;outline-offset:2px}
@media(max-width:480px){.booking-tabs{width:100%}.booking-tabs button{font-size:1rem;padding:.85rem .5rem}}
@media(prefers-reduced-motion:reduce){.booking-tabs button{transition:none}}

/* Bold Willow & Ram button labels. */
button,.button,.nav-book,.menu-toggle-label,.menu-close,a[role="button"],footer .legal-tabs a,.legal-footer .legal-tabs a,.parking-named-link strong,.parking-named-link small{font-weight:700!important}

/* Weekly offers with a clear price and room to breathe. */
.weekly-offers{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.7fr);gap:2rem;padding:clamp(1.4rem,3vw,2.5rem);margin-top:2rem;background:#E1D6C4;border:0;border-radius:.75rem;align-items:center}
.weekly-offers>.offers-intro{display:block}.offers-intro .eyebrow{margin:0 0 .6rem}.weekly-offers h3{font:600 clamp(1.8rem,2.7vw,2.5rem)/1.2 "Playfair Display",Georgia,serif;letter-spacing:-.02em;margin:0 0 1.25rem}
.weekly-offers>.offer-cards{display:grid;grid-template-columns:1.25fr 1fr;gap:1rem;min-width:0}
.offer-card{padding:clamp(1.2rem,2vw,1.8rem);border-radius:.55rem;min-width:0;display:flex;flex-direction:column;justify-content:center}
.offer-platter{background:#0C1824;color:#FDFFF9}.offer-hour{background:#FDFFF9;color:#0C1824;border:1px solid #53615040}
.offer-card-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin-bottom:1.5rem}
.offer-card-top>span,.offer-kicker{font:500 .95rem/1.4 Inter,Arial,sans-serif}.offer-price{font:700 2.5rem/1.1 "Playfair Display",Georgia,serif;color:#FFCEA3;letter-spacing:-.02em}
.weekly-offers .offer-card h4{font:600 clamp(1.55rem,2vw,2rem)/1.2 "Playfair Display",Georgia,serif;letter-spacing:-.02em;margin:0 0 .8rem;color:inherit}
.weekly-offers .offer-card p{font:400 1rem/1.6 Inter,Arial,sans-serif;margin:0;max-width:100%;color:inherit}.weekly-offers .offer-card .offer-detail{font-size:.9rem;margin-top:1rem}.offer-kicker{color:#AE465D;margin-bottom:1.5rem}
@media(max-width:1100px){.weekly-offers{grid-template-columns:1fr}.weekly-offers>.offers-intro{display:block}.weekly-offers>.offer-cards{grid-template-columns:1.25fr 1fr}}
@media(max-width:680px){.weekly-offers>.offer-cards{grid-template-columns:1fr}.offers-intro .button{width:100%}.offer-card{padding:1.4rem}.offer-card-top{margin-bottom:1rem}}
/* Alex’s launch amendments: quieter motion and tighter sections. */
.strip-copy{animation-duration:46s}
.ram-traveller{animation-duration:24s}
.ram-runner{animation:ram-skip 1.2s ease-in-out infinite;will-change:transform}
@keyframes ram-skip{0%,50%,100%{transform:translateY(0) rotate(0)}20%{transform:translateY(-10px) rotate(-3deg)}35%{transform:translateY(-3px) rotate(2deg)}70%{transform:translateY(-8px) rotate(-2deg)}85%{transform:translateY(-2px) rotate(2deg)}}
.section-pad{padding-block:clamp(2.8rem,5vw,5rem)}
.parking{padding:clamp(1.3rem,3vw,2.5rem);margin-top:2rem;border-radius:.75rem}
.parking-controls{padding:clamp(.5rem,1.5vw,1rem)}
.occasion-options p{min-height:90px}.occasion-card{min-height:0}
.enquiry-shortcut{width:min(480px,calc(100% - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;padding:2rem;border:1px solid #AE465D;border-radius:1rem;background:#0C1824;color:#FDFFF9;box-sizing:border-box}
.enquiry-shortcut::backdrop{background:#0C182480}
.enquiry-shortcut h2{font:700 clamp(1.8rem,6vw,2.4rem)/1.15 'Playfair Display',Georgia,serif;letter-spacing:-.02em;color:#FDFFF9}
.enquiry-shortcut label{display:block}.enquiry-shortcut input{display:block;width:100%;box-sizing:border-box;margin-top:.5rem;padding:.9rem;font:inherit;background:#FDFFF9;color:#0C1824;border:1px solid #B9CAB8;border-radius:.3rem}
.enquiry-shortcut a{color:#FDFFF9}.enquiry-shortcut form>p{font-size:.9rem;line-height:1.6}.shortcut-close{float:right;min-width:44px;min-height:44px;background:#AE465D;color:#FDFFF9;border:0;border-radius:50%;font-size:1.5rem;cursor:pointer}

/* Supplied brandmark, displayed in its original colours and proportions. */
.site-header .brand{background:transparent;mask:none;-webkit-mask:none;width:76px;max-width:76px;aspect-ratio:1662/1534}
.site-header .brand img{opacity:1;display:block;width:100%;height:auto;max-height:none}
.legal-header>a:first-child{background:transparent;mask:none;-webkit-mask:none;width:76px;aspect-ratio:1662/1534}
.legal-header>a:first-child img{opacity:1;width:100%;height:auto;max-height:none}
footer img[src="/brandmark.png"]{width:90px;height:auto;object-fit:contain}
@media(max-width:680px){.site-header .brand,.legal-header>a:first-child{width:58px;max-width:58px}}
/* Animate matching slices of the original ram artwork at each leg joint. */
.ram-body{-webkit-clip-path:polygon(0 0,100% 0,100% 64%,0 64%);clip-path:polygon(0 0,100% 0,100% 64%,0 64%)}
.ram-leg{display:block;inset:0;width:78px;height:105px;background:url('/logo.png') -248px -97px/569px 201px no-repeat;will-change:transform}
.ram-leg-back{-webkit-clip-path:polygon(8% 53%,27% 53%,27% 100%,8% 100%);clip-path:polygon(8% 53%,27% 53%,27% 100%,8% 100%);transform-origin:18% 58%;z-index:1;animation:ram-leg-stride 1.2s ease-in-out infinite}
.ram-leg-back-far{-webkit-clip-path:polygon(27% 53%,45% 53%,45% 100%,27% 100%);clip-path:polygon(27% 53%,45% 53%,45% 100%,27% 100%);transform-origin:35% 58%;z-index:0;animation:ram-leg-stride 1.2s ease-in-out -.6s infinite}
.ram-leg-front{-webkit-clip-path:polygon(63% 53%,79% 53%,79% 100%,63% 100%);clip-path:polygon(63% 53%,79% 53%,79% 100%,63% 100%);transform-origin:71% 58%;z-index:1;animation:ram-leg-stride 1.2s ease-in-out -.6s infinite}
.ram-leg-front-far{-webkit-clip-path:polygon(45% 53%,63% 53%,63% 100%,45% 100%);clip-path:polygon(45% 53%,63% 53%,63% 100%,45% 100%);transform-origin:55% 58%;z-index:0;animation:ram-leg-stride 1.2s ease-in-out infinite}
@keyframes ram-leg-stride{0%,100%{transform:rotate(-10deg)}50%{transform:rotate(10deg)}}

.booking-reservation-heading{padding:1.2rem 1.5rem;color:#FDFFF9;background:#0C1824}
.booking-reservation-heading h3{font-size:clamp(1.6rem,3vw,2rem);color:#FDFFF9}
.booking-reservation-heading>p:last-child{font-size:.95rem;color:#FDFFF9}
.booking-frame{background:#0C1824;height:640px;overflow:hidden}
@media(max-width:700px){.booking-reservation-heading{padding:1rem 1.1rem}.booking-frame{height:680px}}
body.booking-calendar-active{overflow:hidden}
.booking-frame.booking-calendar-full{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;margin:0!important;padding:0!important;border:0!important;z-index:10000!important;border-radius:0!important;background:#0C1824}
.booking-frame.booking-calendar-full iframe{width:100%;height:100%}

/* Touch screens use the same automatic motion as desktop. */
.ram-traveller{animation-delay:-6s;will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden}
@keyframes ram-cross{from{transform:translate3d(-90px,0,0)}to{transform:translate3d(calc(100vw + 90px),0,0)}}
@media(max-width:680px){.ram-traveller{animation-duration:18s;animation-delay:-4.5s}.runway{height:122px}.ram-runner,.ram-body,.ram-leg{flex-shrink:0}}
/* Keep the ram visible when visitors deliberately reduce motion. */
html.reduce-motion .ram-traveller{left:calc(50% - 39px);transform:none}
@media(prefers-reduced-motion:reduce){html:not(.full-motion) .ram-traveller{left:calc(50% - 39px);transform:none}}

.signup-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}#individual-event-choices{max-height:320px;overflow:auto}#individual-event-choices label{display:flex;align-items:flex-start;gap:10px;padding:9px 0}#individual-event-choices input{min-width:20px;min-height:20px;margin-top:2px}
