/* Focus the menu and booking pages on the task, while keeping the house palette. */
.menu-page .page-intro,.booking-page .page-intro{padding-block:26px 16px}
.menu-page .page-intro h1,.booking-page .page-intro h1{font-size:clamp(2rem,3.3vw,3.1rem);letter-spacing:-.035em;margin-bottom:10px}
.menu-page .page-intro .eyebrow{display:none}
.menu-page .page-intro .lead,.booking-page .page-intro p{font-size:1rem;line-height:1.55;max-width:none;margin:0}
.menu-page .menu-tabs{margin-bottom:14px;padding-bottom:12px}
.menu-page .menu-tabs a{padding:9px 17px;min-height:44px}
.menu-page .menu-tools{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px 20px}
.menu-page .menu-tools label:first-child{grid-column:auto}
.menu-shortcuts{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;font-size:.85rem}
.menu-shortcuts a,.menu-shortcuts button{display:inline-flex;align-items:center;min-height:36px}
.diet-panel{grid-column:1/-1;min-width:0;border:1px solid var(--line);background:var(--cream)}
.diet-panel>summary{padding:10px 16px;min-height:46px;font-size:.9rem}
.diet-panel .diet-filters{border:0;padding-top:14px}
.diet-panel .menu-icon-key{margin:8px 16px 16px;background:var(--paper)}
.menu-page .menu-guidance{padding:10px 0;margin-bottom:12px;font-size:.8rem}
.menu-page .menu-guidance p{max-width:none}
.menu-page .menu-guidance a{white-space:normal}
.menu-page .menu-intro{background:transparent;padding:0;margin:0 0 18px;font-size:.85rem}
.menu-page .menu-gift-banner{margin-top:36px;margin-bottom:0}
.dish .dish-inclusion{color:var(--green);font-weight:600;font-size:.85rem}
.booking-page .booking-layout{gap:48px;align-items:start;grid-template-columns:minmax(0,1.25fr) minmax(0,.8fr)}
.booking-page .booking-frame{padding:0;background:transparent}
.booking-page .booking-embed{margin:0 auto;max-width:500px}
.booking-page .booking-fallback{font-size:.85rem;line-height:1.6;padding:0;margin-bottom:12px}
.booking-page .booking-notes{padding:24px;background:var(--cream)}
.booking-notes h2{font-size:1.7rem;letter-spacing:-.02em;margin-bottom:18px}
.booking-notes ul{margin-bottom:20px}
.family-panel .eyebrow{color:#68491f}
.offer-booking{margin-top:24px}
.occasion-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:40px}
.occasion-grid article{padding:24px;border:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;scroll-margin-top:120px}
.occasion-grid .eyebrow{margin-bottom:14px;font-size:.72rem;letter-spacing:.06em}
.occasion-grid h2{font-size:1.7rem;letter-spacing:-.025em;margin-bottom:16px}
.occasion-grid p:not(.eyebrow){font-size:.9rem;flex:1}
.group-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;align-items:start}
.group-details h2,.group-enquiry-panel h2{font-size:2rem;letter-spacing:-.025em}
.group-details p{color:var(--muted)}
.group-enquiry-panel{background:var(--cream);padding:30px;min-width:0;scroll-margin-top:120px}
.group-enquiry-panel>p{font-size:.95rem}
.group-form .note{margin:0}
.form-feedback{border:1px solid #976456;background:#fff4ef;padding:20px;margin:20px 0;color:#732b22}
.form-feedback h3{font:600 1.1rem/1.4 var(--sans);margin-bottom:12px}
.form-feedback ul{padding-left:20px;margin:0}
.form-feedback p:last-child{margin-bottom:0}
.form-feedback.success{background:#edf4e9;color:#24472d;border-color:#779571}
.public-form [aria-invalid=true]{border:2px solid #9d3323}
.field-error{color:#8b2d1c;font-size:.85rem;font-weight:400}
.gift-benefits{padding-left:20px;margin-bottom:26px}
.gift-benefits li{margin-bottom:12px}
.guest-feedback{padding-block:36px;border-bottom:1px solid var(--line)}
.feedback-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:24px}
.feedback-heading .eyebrow{margin-bottom:8px}
.feedback-heading h2{font-size:2rem;margin-bottom:0}
.review-rating{font-size:.85rem;margin:0;flex-shrink:0}
.review-rating a{text-decoration:none}
.review-rating strong{font-size:1.15rem;color:var(--ink)}
.review-rating span{font-size:.75rem;color:var(--muted)}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.review-grid figure{margin:0;border-left:2px solid var(--gold);padding-left:20px}
.review-grid blockquote{margin:0 0 14px;font:1.3rem/1.4 var(--serif)}
.review-grid blockquote p{margin:0}
.review-grid figcaption{font-size:.8rem}
.review-grid figcaption span{display:block;color:var(--muted);font-size:.75rem}
.review-note{margin:20px 0 0;font-size:.75rem;color:var(--muted)}
html{scroll-padding-bottom:calc(var(--mobile-actions-height,0px) + var(--cookie-banner-height,0px) + 24px)}
@media(max-width:800px){
  .booking-page .booking-layout{grid-template-columns:1fr;gap:24px}
  .booking-page .booking-frame{width:100%}
  .booking-page .booking-notes{margin-top:8px}
  .group-layout{grid-template-columns:1fr;gap:28px}
  .occasion-grid{gap:14px}.occasion-grid article{padding:20px 16px}
  .feedback-heading{align-items:flex-start}.review-grid{gap:18px}
  html.mobile-form-active{scroll-padding-bottom:24px}
  .mobile-form-active .mobile-actions{display:none}
  .mobile-form-active #cookie-banner{position:static;max-height:none}
  .mobile-form-active body.cookie-banner-visible{padding-bottom:0}
}
@media(max-width:600px){
  :root{--mobile-actions-height:calc(56px + env(safe-area-inset-bottom))}
  .menu-page .page-intro,.booking-page .page-intro{padding-block:20px 14px}
  .menu-page .menu-tools{grid-template-columns:1fr;gap:10px}
  .menu-page .menu-tools input,.menu-page .menu-tools select{font-size:16px}
  .menu-shortcuts{gap:6px 18px}
  .menu-page .menu-tabs{margin-bottom:10px}
  .booking-page .booking-notes{padding:22px}
  .booking-page .booking-embed{width:100%}
  .group-enquiry-panel{padding:24px 18px}
  .occasion-grid,.review-grid{grid-template-columns:1fr}
  .occasion-grid{gap:16px}.occasion-grid article{padding:24px}
  .feedback-heading{display:block}.review-rating{margin-top:18px}
  .guest-feedback{padding-block:30px}.review-grid{gap:24px}
}
@media print{
  .menu-shortcuts,.diet-panel,.guest-feedback,.occasion-grid{display:none!important}
  .menu-page .page-intro h1{font-size:28pt}
}
