/* Keep the established menu colours and typography; scope the shopping UI to catering. */
.catering-shop-page { --shop-gold:#e2bd67; padding-bottom:calc(var(--shop-bar-height,80px) + 24px); }
.catering-shop-page .catering-shop__intro { position:relative; isolation:isolate; overflow:hidden; min-height:460px; }
.catering-shop-page .catering-shop__intro-grid { display:block; }
.catering-shop-page .catering-shop__intro h1 { font-size:clamp(2.8rem,4.4vw,4.4rem); }
.catering-shop-page .catering-shop__intro-grid > div { position:relative; z-index:2; width:48%; }
.catering-shop-page .catering-shop__intro img { position:absolute; inset:0 0 0 auto; z-index:0; width:72%; max-width:none; height:100%; object-fit:cover; object-position:right center; border:0; box-shadow:none; }
.catering-shop-page .catering-shop__intro::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(to right,#171810 0%,#171810 30%,rgba(23,24,16,.96) 42%,rgba(23,24,16,.6) 54%,rgba(23,24,16,.08) 72%,transparent 100%); }
@media(max-width:900px) {
  .catering-shop-page .catering-shop__intro { --catering-photo-height:clamp(260px,62vw,520px); min-height:0; padding-bottom:calc(var(--catering-photo-height) + 1rem); }
  .catering-shop-page .catering-shop__intro-grid > div { width:100%; }
  .catering-shop-page .catering-shop__intro img { inset:auto 0 0; width:100%; height:var(--catering-photo-height); object-position:center; }
  .catering-shop-page .catering-shop__intro::after { background:linear-gradient(to bottom,#171810 0%,#171810 calc(100% - var(--catering-photo-height)),transparent calc(100% - var(--catering-photo-height) + 100px)); }
}
html:has(.catering-shop-page) { scroll-padding-bottom:calc(var(--shop-bar-height,80px) + 24px); }
.catering-shop-page :is(input,button,textarea,select,a) { scroll-margin-bottom:calc(var(--shop-bar-height,80px) + 24px); }
.shop-bar { position:fixed; bottom:0; inset-inline:0; z-index:12; padding:.6rem 0 calc(.6rem + env(safe-area-inset-bottom)); background:rgba(25,24,20,.9); color:var(--cream); border-top:1px solid #4a493e; backdrop-filter:blur(10px); }
.shop-bar__inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.shop-bar__totals { margin:0; }
.shop-bar__totals > div { display:flex; align-items:baseline; gap:.7rem; }
.shop-bar__totals dt { font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.shop-bar__totals dd { margin:0; font:700 1.25rem/1.3 var(--serif); font-variant-numeric:tabular-nums; }
.shop-bar__totals > :first-child dd { color:var(--shop-gold); }
.shop-bar__action { display:flex; align-items:center; }
.shop-bar__minimum { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.shop-bar .button { min-width:170px; min-height:44px; padding:.55rem 1rem; background:var(--shop-gold); color:var(--black); border-color:var(--shop-gold); }
.shop-bar .button:disabled { opacity:.6; cursor:not-allowed; }
.catering-details { scroll-margin-top:1rem; }
.catering-submit { display:inline-flex; align-items:center; justify-content:center; gap:.6rem; }
.catering-submit svg { width:20px; height:20px; flex-shrink:0; }
.catering-enquiry-privacy { grid-column:1 / -1; margin:0; color:#626858; font-size:.78rem; line-height:1.5; }
.catering-field-error { display:block; color:#8a3d28; font-size:.875rem; font-weight:500; letter-spacing:0; line-height:1.5; text-transform:none; }
.catering-form [aria-invalid="true"] { border-color:#8a3d28; }
.catering-selection { list-style:none; margin:1.25rem 0 0; padding:0; display:grid; grid-template-columns:minmax(0,1fr); gap:.5rem; }
.catering-selection li { display:flex; align-items:center; gap:.6rem; min-width:0; font-size:.85rem; line-height:1.3; }
.catering-selection img { width:36px; height:36px; object-fit:cover; flex-shrink:0; }
.catering-selection span { flex:1; min-width:0; }
.catering-selection strong { font-size:.8rem; white-space:nowrap; }
@media(max-width:700px) { .catering-selection { grid-template-columns:1fr; } }
.catering-delivery-note { grid-column:1 / -1; }
.catering-shop-page .basket-card--choices { background:transparent; border:0; box-shadow:none; padding:0; }
.catering-shop-page .catering-form__check label { align-items:center; min-height:44px; }
.catering-shop-page .catering-form__check p { margin:0; font-size:.9rem; line-height:1.5; }
.shop-bar__pricing { display:flex; align-items:baseline; gap:.65rem; flex-wrap:wrap; }
.shop-bar__pricing s { color:var(--cream); font-size:.85rem; }
.shop-bar__pricing small { font-size:.75rem; }
@media(max-width:700px) {
  .shop-bar__inner { gap:.75rem; }
  .shop-bar__totals > div { gap:.45rem; }
  .shop-bar__totals dt { font-size:.68rem; }
  .shop-bar__totals dd { font-size:1.15rem; }
  .shop-bar .button { min-width:0; padding:.55rem .8rem; font-size:.72rem; }
}
