/*
 * TOM 0.17 MVP storefront stabilisation
 * --------------------------------------
 * This file intentionally loads after the historical storefront CSS.
 * It provides one predictable layout contract while older declarations
 * remain available for backwards compatibility.
 */

:root{
  --tom-ink:#101828;
  --tom-muted:#667085;
  --tom-line:#e4e7ec;
  --tom-soft:#f8fafb;
  --tom-accent:#ff5a36;
  --tom-radius:14px;
}

/* Common */
body.tom-customer-order-page,
body.tom-modern-product-page{color:var(--tom-ink)}
body.tom-customer-order-page *,
body.tom-modern-product-page *{box-sizing:border-box}

/* ORDER PAGE */
body.tom-customer-order-page .tom-food-order{
  width:min(1180px,calc(100% - 32px))!important;
  max-width:1180px!important;
  margin:0 auto!important;
  padding:0 0 110px!important;
}

body.tom-customer-order-page .tom-food-hero{
  padding:18px 0 16px!important;
}
body.tom-customer-order-page .tom-food-hero h1{
  margin:0 0 10px!important;
  font-size:clamp(38px,6vw,64px)!important;
  line-height:.98!important;
}
body.tom-customer-order-page .tom-food-nav{
  margin:0!important;
  padding:10px 0!important;
}
body.tom-customer-order-page .tom-menu-products{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
}
body.tom-customer-order-page .tom-menu-product{
  display:grid!important;
  grid-template-columns:132px minmax(0,1fr)!important;
  min-height:132px!important;
  border:1px solid var(--tom-line)!important;
  border-radius:var(--tom-radius)!important;
  overflow:hidden!important;
  background:#fff!important;
}
body.tom-customer-order-page .tom-menu-product-image{
  min-height:132px!important;
  height:100%!important;
}
body.tom-customer-order-page .tom-menu-product-body{
  min-width:0!important;
  padding:13px!important;
}
body.tom-customer-order-page .tom-menu-product-copy h3{
  margin:0 0 5px!important;
  font-size:17px!important;
  line-height:1.16!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
body.tom-customer-order-page .tom-menu-product-copy p{
  margin:0!important;
  font-size:12px!important;
  line-height:1.35!important;
}
body.tom-customer-order-page .tom-menu-product-foot{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:space-between!important;
  gap:10px!important;
  margin-top:11px!important;
}
body.tom-customer-order-page .tom-menu-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:7px!important;
  flex-wrap:wrap!important;
}
body.tom-customer-order-page .tom-qty-control{
  display:grid!important;
  grid-template-columns:34px 30px 34px!important;
  width:max-content!important;
}
body.tom-customer-order-page .tom-qty-control button{
  width:34px!important;
  height:34px!important;
}
body.tom-customer-order-page .tom-card-size-picker,
body.tom-customer-order-page .tom-card-group-picker{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 36px!important;
  gap:7px!important;
  margin-top:9px!important;
}
body.tom-customer-order-page .tom-card-size-picker select,
body.tom-customer-order-page .tom-card-group-picker select{
  min-width:0!important;
  width:100%!important;
  height:36px!important;
}
body.tom-customer-order-page .tom-card-size-add,
body.tom-customer-order-page .tom-card-group-add{
  width:36px!important;
  height:36px!important;
}
body.tom-customer-order-page .tom-menu-customise{
  min-height:34px!important;
  padding:0 10px!important;
  white-space:nowrap!important;
}
body.tom-customer-order-page .tom-card-offers{
  margin-top:7px!important;
}
body.tom-customer-order-page .tom-card-offer{
  white-space:normal!important;
  line-height:1.25!important;
}

/* PRODUCT PAGE: conventional Woo shape, TOM controls inside summary */
body.tom-modern-product-page .tom-product-app-shell{
  width:min(1180px,calc(100% - 32px))!important;
  max-width:1180px!important;
  margin:0 auto!important;
  padding:0 0 120px!important;
}
body.tom-modern-product-page div.product.tom-main-order-product{
  display:grid!important;
  grid-template-columns:minmax(240px,36%) minmax(0,1fr)!important;
  gap:clamp(24px,4vw,52px)!important;
  align-items:start!important;
  width:100%!important;
  max-width:100%!important;
  margin:20px 0 0!important;
}
body.tom-modern-product-page div.product.tom-main-order-product>.woocommerce-product-gallery,
body.tom-modern-product-page div.product.tom-main-order-product>.images{
  grid-column:1!important;
  width:100%!important;
  max-width:100%!important;
  float:none!important;
  margin:0!important;
  position:relative!important;
  inset:auto!important;
  transform:none!important;
}
body.tom-modern-product-page div.product.tom-main-order-product>.summary{
  grid-column:2!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  float:none!important;
  margin:0!important;
  padding:0!important;
  position:relative!important;
  inset:auto!important;
  transform:none!important;
}
body.tom-modern-product-page div.product.tom-main-order-product>.woocommerce-product-gallery img,
body.tom-modern-product-page div.product.tom-main-order-product>.images img{
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  max-height:440px!important;
  object-fit:contain!important;
}
body.tom-modern-product-page div.product.tom-main-order-product>.summary .product_title{
  width:100%!important;
  margin:0 0 8px!important;
  font-size:clamp(32px,4.2vw,52px)!important;
  line-height:1.02!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  text-align:left!important;
}
body.tom-modern-product-page div.product.tom-main-order-product>.summary .price{
  margin:0 0 14px!important;
  text-align:left!important;
}
body.tom-modern-product-page .tom-configurator,
body.tom-modern-product-page .tom-product-configurator{
  width:100%!important;
  max-width:100%!important;
}
body.tom-modern-product-page .tom-included-grid,
body.tom-modern-product-page .tom-option-grid,
body.tom-modern-product-page .tom-topping-grid,
body.tom-modern-product-page .tom-choice-grid,
body.tom-modern-product-page .tom-deal-choice-grid{
  grid-template-columns:1fr!important;
}
body.tom-modern-product-page .tom-deal-slot--tiered .tom-deal-choice-grid{
  grid-template-columns:1fr!important;
}
body.tom-modern-product-page .tom-deal-tier-heading{
  grid-column:1/-1!important;display:flex!important;justify-content:space-between!important;align-items:baseline!important;
  gap:12px!important;margin:8px 0 0!important;padding:10px 2px 6px!important;border-bottom:2px solid #e4e7ec!important;
}
body.tom-modern-product-page .tom-deal-tier-heading small{color:#667085!important;font-weight:600!important}
.single-product .tom-deal-tier-heading{
  grid-column:1/-1!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  align-items:baseline!important;gap:12px!important;width:100%!important;margin:8px 0 0!important;
  padding:10px 2px 6px!important;border-bottom:2px solid #e4e7ec!important;box-sizing:border-box!important;
}
.single-product .tom-deal-tier-heading strong{min-width:0!important;text-align:left!important}
.single-product .tom-deal-tier-heading small{margin:0!important;color:#667085!important;font-weight:600!important;text-align:right!important;white-space:nowrap!important}
/* Standalone reusable groups: scoped separately from deal and pizza builders. */
.single-product .tom-generic-options .tom-option-group .tom-option-grid{gap:8px!important}
.single-product .tom-generic-options .tom-option-group .tom-option-choice{display:block!important;float:none!important;width:auto!important;margin:0!important;padding:0!important}
.single-product .tom-generic-options .tom-option-group .tom-option-choice>span{box-sizing:border-box!important;min-height:46px!important;margin:0!important;padding:10px 12px!important}
.single-product .tom-generic-options .tom-option-choice>span::before{display:none!important;content:none!important}
.single-product .tom-generic-options .tom-option-choice input:checked+span{border-color:#111827!important;background:#111827!important;color:#fff!important;box-shadow:none!important}
.single-product .tom-generic-options .tom-option-choice input:checked+span b,
.single-product .tom-generic-options .tom-option-choice input:checked+span small{color:#fff!important}
/* Meal-deal slots: no inherited numbered-step gutter; all choice types share one rhythm. */
.single-product .tom-deal-builder .tom-deal-slot>.tom-guided-body{padding:0 10px 14px!important}
.single-product .tom-deal-builder .tom-deal-choice-grid{gap:8px!important}
/* Every numbered builder card owns its header number; body content never reserves a rail for it. */
.single-product .tom-generic-options .tom-option-group>.tom-guided-body,
.single-product .tom-configurator .tom-config-step.tom-guided-step>.tom-guided-body,
.single-product .tom-deal-builder .tom-deal-slot>.tom-guided-body{padding-left:10px!important;padding-right:10px!important}
body.single-product .tom-deal-slot--tiered .tom-deal-choice-grid{
  grid-template-columns:1fr!important;
}
/* Quantity-based choices always remain readable rows, regardless of the
   number of columns used by radio/single-choice cards around them. */
body.single-product .tom-deal-slot--quantity .tom-deal-choice-grid{
  grid-template-columns:1fr!important;
}
body.single-product .tom-deal-slot--quantity .tom-deal-choice{
  min-height:58px!important;
}
body.single-product .tom-deal-slot--quantity .tom-deal-choice-copy{
  min-width:0!important;
}
body.single-product .tom-deal-slot--quantity .tom-deal-qty button{
  min-width:38px!important;
  min-height:38px!important;
}
.tom-menu-product.is-promotion-focus{
  outline:3px solid var(--tom-accent,#3858e9)!important;outline-offset:3px!important;
  box-shadow:0 0 0 7px color-mix(in srgb,var(--tom-accent,#3858e9) 16%,transparent)!important;
  transition:outline-color .2s ease,box-shadow .2s ease!important;
}

/* Additional items */
body.tom-modern-product-page .tom-upsell-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:10px!important;
}
body.tom-modern-product-page .tom-upsell-card{
  min-width:0!important;
}

/* ONE BASKET CONTRACT */
.tom-floating-basket{
  border:0!important;
  text-decoration:none!important;
  cursor:pointer!important;
}
.tom-basket-drawer{
  width:min(94vw,430px)!important;
}
.tom-basket-qty{
  display:grid!important;
  grid-template-columns:34px 32px 34px!important;
  width:max-content!important;
  align-items:center!important;
}
.tom-basket-qty button{
  display:grid!important;
  place-items:center!important;
  width:34px!important;
  height:34px!important;
}
.tom-basket-qty span{
  display:grid!important;
  place-items:center!important;
  height:34px!important;
}
.tom-basket-customise{
  display:inline-flex!important;
  margin-top:6px!important;
  font-size:11px!important;
  font-weight:800!important;
}

/* TABLET */
@media (min-width:681px) and (max-width:1024px){
  body.tom-customer-order-page .tom-food-order,
  body.tom-modern-product-page .tom-product-app-shell{
    width:min(100% - 24px,960px)!important;
  }
  body.tom-customer-order-page .tom-menu-products{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  body.tom-customer-order-page .tom-menu-product{
    grid-template-columns:104px minmax(0,1fr)!important;
    min-height:120px!important;
  }
  body.tom-customer-order-page .tom-menu-product-image{
    min-height:120px!important;
  }
  body.tom-customer-order-page .tom-menu-product-body{
    padding:11px!important;
  }
  body.tom-customer-order-page .tom-menu-product-copy h3{
    font-size:15px!important;
  }
  body.tom-customer-order-page .tom-menu-product-copy p{
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
  }
  body.tom-customer-order-page .tom-menu-product-foot{
    align-items:flex-end!important;
  }

  body.tom-modern-product-page div.product.tom-main-order-product{
    grid-template-columns:minmax(190px,34%) minmax(0,66%)!important;
    gap:22px!important;
  }
  body.tom-modern-product-page div.product.tom-main-order-product>.woocommerce-product-gallery img,
  body.tom-modern-product-page div.product.tom-main-order-product>.images img{
    max-height:300px!important;
  }
  body.tom-modern-product-page div.product.tom-main-order-product>.summary .product_title{
    font-size:clamp(28px,4.6vw,40px)!important;
  }
  body.tom-modern-product-page .tom-included-grid,
  body.tom-modern-product-page .tom-option-grid,
  body.tom-modern-product-page .tom-topping-grid,
  body.tom-modern-product-page .tom-choice-grid,
  body.tom-modern-product-page .tom-deal-choice-grid{
    grid-template-columns:1fr!important;
  }
}

/* MOBILE */
@media (max-width:680px){
  body.tom-customer-order-page .tom-food-order,
  body.tom-modern-product-page .tom-product-app-shell{
    width:calc(100% - 20px)!important;
  }
  body.tom-customer-order-page .tom-menu-products{
    grid-template-columns:1fr!important;
  }
  body.tom-customer-order-page .tom-menu-product{
    grid-template-columns:104px minmax(0,1fr)!important;
    min-height:118px!important;
  }
  body.tom-customer-order-page .tom-menu-product-image{min-height:118px!important}
  body.tom-customer-order-page .tom-menu-product-body{padding:10px!important}
  body.tom-customer-order-page .tom-menu-product-copy h3{font-size:15px!important}
  body.tom-customer-order-page .tom-menu-product-copy p{
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
  }
  body.tom-customer-order-page .tom-menu-product-foot{
    align-items:flex-end!important;
  }
  body.tom-customer-order-page .tom-menu-actions{
    justify-content:flex-end!important;
  }

  body.tom-modern-product-page div.product.tom-main-order-product{
    display:block!important;
    width:100%!important;
    margin-top:12px!important;
  }
  body.tom-modern-product-page div.product.tom-main-order-product>.woocommerce-product-gallery,
  body.tom-modern-product-page div.product.tom-main-order-product>.images,
  body.tom-modern-product-page div.product.tom-main-order-product>.summary{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin:0 0 18px!important;
  }
  body.tom-modern-product-page div.product.tom-main-order-product>.woocommerce-product-gallery img,
  body.tom-modern-product-page div.product.tom-main-order-product>.images img{
    max-height:280px!important;
  }
  body.tom-modern-product-page .tom-included-grid,
  body.tom-modern-product-page .tom-option-grid,
  body.tom-modern-product-page .tom-topping-grid,
  body.tom-modern-product-page .tom-choice-grid,
  body.tom-modern-product-page .tom-deal-choice-grid{
    grid-template-columns:1fr!important;
  }
  body.tom-modern-product-page .tom-upsell-grid{
    grid-template-columns:1fr!important;
  }
}


/* 0.17.3 — pizza card UX contract */
body.tom-customer-order-page .tom-menu-product-foot.tom-pizza-card-foot{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:6px!important;
  width:100%!important;
}
body.tom-customer-order-page .tom-pizza-card-controls{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:7px!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
}
body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 36px!important;
  gap:6px!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-select{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:36px!important;
  margin:0!important;
  padding:0 28px 0 8px!important;
  font-size:11px!important;
}
body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-add{
  display:grid!important;
  place-items:center!important;
  width:36px!important;
  min-width:36px!important;
  height:36px!important;
  padding:0!important;
  margin:0!important;
}
body.tom-customer-order-page .tom-pizza-card-controls>.tom-menu-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  margin:0!important;
}
body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:74px!important;
  height:36px!important;
  min-height:36px!important;
  padding:0 10px!important;
  margin:0!important;
  white-space:nowrap!important;
  font-size:10px!important;
}
body.tom-customer-order-page .tom-pizza-card-price{
  display:grid!important;
  gap:0!important;
  justify-items:start!important;
  min-height:27px!important;
}
body.tom-customer-order-page .tom-price-from{
  display:block!important;
  margin:0 0 2px!important;
  color:var(--tom-muted)!important;
  font-size:8px!important;
  font-weight:700!important;
  line-height:1!important;
}
body.tom-customer-order-page .tom-price-from[hidden]{display:none!important}
body.tom-customer-order-page .tom-pizza-card-price .tom-menu-price{
  display:block!important;
  margin:0!important;
  font-size:13px!important;
  line-height:1.1!important;
}

@media(max-width:680px){
  body.tom-customer-order-page .tom-menu-product{
    grid-template-columns:88px minmax(0,1fr)!important;
  }
  body.tom-customer-order-page .tom-menu-product-body{
    padding:10px 9px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls{
    gap:5px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    grid-template-columns:minmax(92px,1fr) 34px!important;
    gap:5px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-select{
    min-width:92px!important;
    height:34px!important;
    padding-left:7px!important;
    padding-right:23px!important;
    font-size:10px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-add{
    width:34px!important;
    min-width:34px!important;
    height:34px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    min-width:68px!important;
    height:34px!important;
    min-height:34px!important;
    padding:0 7px!important;
    font-size:9px!important;
  }
}
@media(max-width:380px){
  body.tom-customer-order-page .tom-menu-product{
    grid-template-columns:76px minmax(0,1fr)!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    grid-template-columns:minmax(78px,1fr) 32px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-add{
    width:32px!important;
    min-width:32px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    min-width:62px!important;
    padding:0 6px!important;
  }
}

/* Retained pizza configurator: grouped topping categories, one item per row. */
body.tom-modern-product-page .tom-configurator .tom-topping-grid,
body.single-product .tom-configurator .tom-topping-grid{
  grid-template-columns:1fr!important;
}
body.tom-modern-product-page .tom-configurator .tom-topping-grid .tom-check,
body.single-product .tom-configurator .tom-topping-grid .tom-check{
  width:100%!important;
  min-width:0!important;
}


/* 0.17.4 — pizza card vertical alignment */
body.tom-customer-order-page .tom-menu-product-foot.tom-pizza-card-foot{
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-template-areas:
    "price"
    "basket"
    "controls"!important;
  gap:3px!important;
  width:100%!important;
  align-self:end!important;
}
body.tom-customer-order-page .tom-pizza-card-price{
  grid-area:price!important;
  display:grid!important;
  grid-template-rows:10px 17px!important;
  min-height:27px!important;
  height:27px!important;
  margin:0!important;
  align-items:end!important;
}
body.tom-customer-order-page .tom-price-from{
  display:block!important;
  height:10px!important;
  min-height:10px!important;
  margin:0!important;
  line-height:10px!important;
}
body.tom-customer-order-page .tom-price-from[hidden]{
  display:block!important;
  visibility:hidden!important;
}
body.tom-customer-order-page .tom-pizza-card-price .tom-menu-price{
  display:block!important;
  height:17px!important;
  min-height:17px!important;
  line-height:17px!important;
  margin:0!important;
}
body.tom-customer-order-page .tom-pizza-card-basket-status{
  grid-area:basket!important;
  display:block!important;
  min-height:13px!important;
  height:13px!important;
  margin:0!important;
  line-height:13px!important;
  font-size:9px!important;
  font-weight:800!important;
  color:#087a42!important;
  text-transform:uppercase!important;
}
body.tom-customer-order-page .tom-pizza-card-basket-status:empty{
  visibility:hidden!important;
}
body.tom-customer-order-page .tom-pizza-card-controls{
  grid-area:controls!important;
  margin-top:1px!important;
}

/* Keep the old general basket label out of pizza-card layout.
   The dedicated fixed-height line above controls is now authoritative. */
body.tom-customer-order-page .tom-menu-product:has(.tom-pizza-card-foot) [data-card-basket-count]{
  display:none!important;
}

@media(max-width:680px){
  body.tom-customer-order-page .tom-menu-product-foot.tom-pizza-card-foot{
    gap:2px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-price{
    grid-template-rows:9px 16px!important;
    min-height:25px!important;
    height:25px!important;
  }
  body.tom-customer-order-page .tom-price-from{
    height:9px!important;
    min-height:9px!important;
    line-height:9px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-price .tom-menu-price{
    height:16px!important;
    min-height:16px!important;
    line-height:16px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-basket-status{
    min-height:12px!important;
    height:12px!important;
    line-height:12px!important;
  }
}


/* 0.17.5 — wider mobile ordering + top cart controls */
.tom-top-cart-controls{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  width:100%!important;
  margin:16px 0 18px!important;
}
.tom-top-cart-quantity{
  display:grid!important;
  grid-template-columns:38px 38px 38px!important;
  flex:0 0 auto!important;
}
.tom-top-cart-quantity button,
.tom-top-cart-value{
  display:grid!important;
  place-items:center!important;
  height:42px!important;
  margin:0!important;
  border:1px solid #d0d5dd!important;
  background:#fff!important;
  color:#101828!important;
  font-size:15px!important;
  line-height:1!important;
}
.tom-top-cart-quantity button{cursor:pointer!important}
.tom-top-cart-quantity button:first-child{border-radius:8px 0 0 8px!important}
.tom-top-cart-quantity button:last-child{border-radius:0 8px 8px 0!important}
.tom-top-cart-value{
  border-left:0!important;
  border-right:0!important;
  border-radius:0!important;
  font-size:13px!important;
  font-weight:700!important;
}
.tom-top-add-to-basket{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:1 1 auto!important;
  min-height:42px!important;
  padding:0 18px!important;
  margin:0!important;
  border:0!important;
  border-radius:8px!important;
  background:#101828!important;
  color:#fff!important;
  font-size:13px!important;
  font-weight:800!important;
  cursor:pointer!important;
}
.tom-top-add-to-basket:disabled{
  opacity:.45!important;
  cursor:not-allowed!important;
}

@media(max-width:680px){
  /* Use more of the phone width, and give card controls priority over the image. */
  body.tom-customer-order-page .tom-food-order{
    width:calc(100% - 8px)!important;
  }
  body.tom-customer-order-page .tom-menu-product{
    grid-template-columns:68px minmax(0,1fr)!important;
  }
  body.tom-customer-order-page .tom-menu-product-body{
    padding:10px 8px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:4px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    grid-template-columns:minmax(112px,1fr) 34px!important;
    gap:4px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-select{
    min-width:112px!important;
    font-size:10px!important;
  }

  /* Product/customise page also uses almost the full phone viewport. */
  body.tom-modern-product-page .tom-product-app-shell{
    width:calc(100% - 10px)!important;
    max-width:none!important;
  }
  body.tom-modern-product-page div.product.tom-main-order-product>.summary{
    padding-left:4px!important;
    padding-right:4px!important;
  }
  .tom-top-cart-controls{
    gap:7px!important;
    margin:13px 0 16px!important;
  }
  .tom-top-cart-quantity{
    grid-template-columns:34px 34px 34px!important;
  }
  .tom-top-cart-quantity button,
  .tom-top-cart-value{
    height:40px!important;
  }
  .tom-top-add-to-basket{
    min-height:40px!important;
    padding:0 12px!important;
    font-size:12px!important;
  }
}

@media(max-width:390px){
  body.tom-customer-order-page .tom-menu-product{
    grid-template-columns:58px minmax(0,1fr)!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    grid-template-columns:minmax(102px,1fr) 32px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-select{
    min-width:102px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    min-width:58px!important;
    padding:0 5px!important;
    font-size:8px!important;
  }
}


/* 0.17.6 — mobile card width correction
   Make the whole order area/cards wider instead of stealing space from card text. */
@media(max-width:680px){
  body.tom-customer-order-page .tom-food-order{
    width:calc(100% - 4px)!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  body.tom-customer-order-page .tom-menu-section{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  body.tom-customer-order-page .tom-menu-products{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  body.tom-customer-order-page .tom-menu-product{
    width:100%!important;
    max-width:100%!important;
    grid-template-columns:104px minmax(0,1fr)!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  body.tom-customer-order-page .tom-menu-product-image{
    width:104px!important;
    min-width:104px!important;
  }

  body.tom-customer-order-page .tom-menu-product-body{
    min-width:0!important;
    overflow:visible!important;
    padding:10px!important;
  }

  body.tom-customer-order-page .tom-menu-product-copy{
    min-width:0!important;
    overflow:visible!important;
  }

  body.tom-customer-order-page .tom-menu-product-copy h3,
  body.tom-customer-order-page .tom-menu-product-copy p{
    max-width:100%!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }

  /* Keep the useful larger pizza control width from 0.17.5,
     but do not shrink the card's content column to achieve it. */
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    grid-template-columns:minmax(112px,1fr) 34px!important;
  }
}

@media(max-width:390px){
  body.tom-customer-order-page .tom-food-order{
    width:calc(100% - 2px)!important;
  }

  body.tom-customer-order-page .tom-menu-product{
    grid-template-columns:96px minmax(0,1fr)!important;
  }

  body.tom-customer-order-page .tom-menu-product-image{
    width:96px!important;
    min-width:96px!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    grid-template-columns:minmax(104px,1fr) 32px!important;
  }
}


/* 0.17.7 — mobile-first order card polish
   Desktop/tablet intentionally unchanged. */
@media(max-width:680px){

  /* Use virtually the full viewport while keeping a tiny breathing edge. */
  body.tom-customer-order-page .tom-food-order{
    width:calc(100% - 8px)!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  body.tom-customer-order-page .tom-menu-section,
  body.tom-customer-order-page .tom-menu-products{
    width:100%!important;
    max-width:100%!important;
  }

  /* Cleaner card: restrained image, generous content column. */
  body.tom-customer-order-page .tom-menu-product{
    width:100%!important;
    max-width:100%!important;
    grid-template-columns:88px minmax(0,1fr)!important;
    min-height:0!important;
    border-radius:14px!important;
    overflow:hidden!important;
  }

  body.tom-customer-order-page .tom-menu-product-image{
    width:88px!important;
    min-width:88px!important;
    min-height:100%!important;
  }

  body.tom-customer-order-page .tom-menu-product-body{
    display:flex!important;
    flex-direction:column!important;
    min-width:0!important;
    padding:12px 10px 11px!important;
    overflow:visible!important;
  }

  body.tom-customer-order-page .tom-menu-product-copy{
    min-width:0!important;
    width:100%!important;
  }

  body.tom-customer-order-page .tom-menu-product-copy h3{
    margin:0 0 4px!important;
    font-size:17px!important;
    line-height:1.18!important;
    white-space:normal!important;
    overflow:visible!important;
    word-break:normal!important;
  }

  body.tom-customer-order-page .tom-menu-product-copy p{
    display:block!important;
    margin:0!important;
    max-width:100%!important;
    font-size:11px!important;
    line-height:1.35!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    -webkit-line-clamp:unset!important;
  }

  /* Pizza footer is a deliberate vertical flow:
     From -> price -> basket status -> controls -> Customise. */
  body.tom-customer-order-page .tom-menu-product-foot.tom-pizza-card-foot{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    gap:5px!important;
    margin-top:13px!important;
    align-items:stretch!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price{
    order:1!important;
    display:grid!important;
    grid-template-rows:10px 18px!important;
    align-items:end!important;
    width:100%!important;
    min-height:28px!important;
    height:28px!important;
    margin:0!important;
  }

  body.tom-customer-order-page .tom-price-from{
    display:block!important;
    height:10px!important;
    min-height:10px!important;
    margin:0!important;
    font-size:8px!important;
    font-weight:700!important;
    line-height:10px!important;
    color:#667085!important;
  }

  /* Selected size hides the word but does not collapse its space. */
  body.tom-customer-order-page .tom-price-from[hidden]{
    display:block!important;
    visibility:hidden!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price .tom-menu-price{
    display:block!important;
    height:18px!important;
    min-height:18px!important;
    margin:0!important;
    font-size:15px!important;
    font-weight:800!important;
    line-height:18px!important;
    color:#101828!important;
  }

  body.tom-customer-order-page .tom-pizza-card-basket-status{
    order:2!important;
    display:block!important;
    width:100%!important;
    min-height:14px!important;
    height:14px!important;
    margin:0!important;
    font-size:9px!important;
    font-weight:850!important;
    line-height:14px!important;
    color:#087a42!important;
    text-transform:uppercase!important;
  }

  body.tom-customer-order-page .tom-pizza-card-basket-status:empty{
    visibility:hidden!important;
  }

  /* Control wrapper becomes two rows on mobile.
     Size + occupies the entire first row, Customise the entire second row. */
  body.tom-customer-order-page .tom-pizza-card-controls{
    order:3!important;
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    min-width:0!important;
    gap:7px!important;
    margin:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 42px!important;
    width:100%!important;
    min-width:0!important;
    gap:7px!important;
    margin:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-select{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:42px!important;
    padding:0 32px 0 11px!important;
    margin:0!important;
    border:1px solid #d0d5dd!important;
    border-radius:9px!important;
    background-color:#fff!important;
    font-size:12px!important;
    font-weight:650!important;
    line-height:40px!important;
    color:#101828!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-add{
    display:grid!important;
    place-items:center!important;
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:9px!important;
    background:#101828!important;
    color:#fff!important;
    font-size:19px!important;
    font-weight:900!important;
    line-height:1!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-add:disabled{
    background:#d0d5dd!important;
    color:#fff!important;
    opacity:1!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls>.tom-menu-actions{
    display:block!important;
    width:100%!important;
    margin:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    height:40px!important;
    min-height:40px!important;
    margin:0!important;
    padding:0 12px!important;
    border-radius:9px!important;
    font-size:11px!important;
    font-weight:850!important;
    letter-spacing:.01em!important;
  }

  /* Forced/customise-only pizzas still align nicely with normal cards. */
  body.tom-customer-order-page .tom-pizza-card-controls--customise-only{
    display:block!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls--customise-only>div:first-child{
    display:none!important;
  }

  /* Old card-level basket label remains suppressed for pizza cards. */
  body.tom-customer-order-page .tom-menu-product:has(.tom-pizza-card-foot) [data-card-basket-count]{
    display:none!important;
  }
}

/* Small iPhone widths: preserve the same structure rather than compressing controls. */
@media(max-width:390px){
  body.tom-customer-order-page .tom-food-order{
    width:calc(100% - 4px)!important;
  }

  body.tom-customer-order-page .tom-menu-product{
    grid-template-columns:78px minmax(0,1fr)!important;
  }

  body.tom-customer-order-page .tom-menu-product-image{
    width:78px!important;
    min-width:78px!important;
  }

  body.tom-customer-order-page .tom-menu-product-body{
    padding:11px 8px 10px!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    grid-template-columns:minmax(0,1fr) 40px!important;
    gap:6px!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-select{
    height:40px!important;
    font-size:11px!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-add{
    width:40px!important;
    min-width:40px!important;
    height:40px!important;
  }
}


/* 0.17.8 — mobile pizza footer parity with normal menu cards
   Tablet and desktop are deliberately untouched. */
@media(max-width:680px){

  /* Footer becomes:
       basket status
       size selector + add
       From/price                         Customise
     The internal controls wrapper becomes layout-transparent on phones. */
  body.tom-customer-order-page .tom-menu-product-foot.tom-pizza-card-foot{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:
      "basket basket"
      "picker picker"
      "price customise"!important;
    column-gap:8px!important;
    row-gap:6px!important;
    width:100%!important;
    margin-top:12px!important;
    align-items:end!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls{
    display:contents!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    grid-area:picker!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 42px!important;
    gap:7px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls>.tom-menu-actions{
    grid-area:customise!important;
    display:flex!important;
    align-items:flex-end!important;
    justify-content:flex-end!important;
    width:auto!important;
    margin:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:92px!important;
    max-width:none!important;
    height:38px!important;
    min-height:38px!important;
    padding:0 14px!important;
    margin:0!important;
    border-radius:9px!important;
    font-size:10px!important;
    font-weight:850!important;
    white-space:nowrap!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price{
    grid-area:price!important;
    display:grid!important;
    grid-template-rows:9px 18px!important;
    align-items:end!important;
    justify-items:start!important;
    width:auto!important;
    min-width:0!important;
    min-height:27px!important;
    height:27px!important;
    margin:0!important;
  }

  body.tom-customer-order-page .tom-price-from{
    display:block!important;
    height:9px!important;
    min-height:9px!important;
    margin:0 0 1px!important;
    font-size:8px!important;
    font-weight:700!important;
    line-height:9px!important;
    color:#667085!important;
  }

  /* Keep price anchored even after selecting a size. */
  body.tom-customer-order-page .tom-price-from[hidden]{
    display:block!important;
    visibility:hidden!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price .tom-menu-price{
    display:block!important;
    height:18px!important;
    min-height:18px!important;
    margin:0!important;
    font-size:14px!important;
    font-weight:700!important;
    line-height:18px!important;
    color:#101828!important;
  }

  body.tom-customer-order-page .tom-pizza-card-basket-status{
    grid-area:basket!important;
    display:block!important;
    width:100%!important;
    min-height:13px!important;
    height:13px!important;
    margin:0!important;
    font-size:9px!important;
    font-weight:800!important;
    line-height:13px!important;
    color:#087a42!important;
    text-transform:uppercase!important;
  }

  body.tom-customer-order-page .tom-pizza-card-basket-status:empty{
    visibility:hidden!important;
  }

  /* Forced/customise-only products have no picker.
     Match a normal simple item: price left, Customise right. */
  body.tom-customer-order-page .tom-pizza-card-controls--customise-only{
    display:contents!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls--customise-only>div:first-child{
    display:none!important;
  }
}

@media(max-width:390px){
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    grid-template-columns:minmax(0,1fr) 40px!important;
    gap:6px!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    min-width:84px!important;
    height:38px!important;
    min-height:38px!important;
    padding:0 11px!important;
    font-size:9px!important;
  }
}


/* 0.17.9 — mobile menu-card consistency
   Pizza gets only one special row: size selector + add.
   Price and Customise use the same visual positions as all normal menu cards. */
@media(max-width:680px){

  /* Normalise all menu action buttons first. */
  body.tom-customer-order-page .tom-menu-customise{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:104px!important;
    max-width:none!important;
    height:42px!important;
    min-height:42px!important;
    margin:0!important;
    padding:0 14px!important;
    border-radius:10px!important;
    background:#101828!important;
    color:#fff!important;
    font-size:11px!important;
    font-weight:850!important;
    line-height:1!important;
    text-decoration:none!important;
    white-space:nowrap!important;
  }

  /* Pizza footer: selector row first, then a regular menu-card footer row. */
  body.tom-customer-order-page .tom-menu-product-foot.tom-pizza-card-foot{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:
      "basket basket"
      "picker picker"
      "price customise"!important;
    column-gap:10px!important;
    row-gap:7px!important;
    width:100%!important;
    margin-top:auto!important;
    padding-top:12px!important;
    align-items:end!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls{
    display:contents!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    grid-area:picker!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 42px!important;
    gap:7px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls>.tom-menu-actions{
    grid-area:customise!important;
    display:flex!important;
    align-items:flex-end!important;
    justify-content:flex-end!important;
    width:auto!important;
    margin:0!important;
  }

  /* Do not let pizza-specific historical rules resize Customise differently. */
  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    width:auto!important;
    min-width:104px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0 14px!important;
    border-radius:10px!important;
    font-size:11px!important;
  }

  /* Pizza price now behaves like the ordinary card price:
     anchored at bottom-left, no artificial fixed box height. */
  body.tom-customer-order-page .tom-pizza-card-price{
    grid-area:price!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-end!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    line-height:1!important;
  }

  body.tom-customer-order-page .tom-price-from{
    display:block!important;
    height:10px!important;
    min-height:10px!important;
    margin:0 0 2px!important;
    font-size:8px!important;
    font-weight:700!important;
    line-height:10px!important;
    color:#667085!important;
  }

  /* Preserve the visual slot but do not move the price when From disappears. */
  body.tom-customer-order-page .tom-price-from[hidden]{
    display:block!important;
    visibility:hidden!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price .tom-menu-price{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    font-size:16px!important;
    font-weight:500!important;
    line-height:1.1!important;
    color:#101828!important;
  }

  body.tom-customer-order-page .tom-pizza-card-basket-status{
    grid-area:basket!important;
    display:block!important;
    width:100%!important;
    min-height:13px!important;
    height:13px!important;
    margin:0!important;
    font-size:9px!important;
    font-weight:800!important;
    line-height:13px!important;
    color:#087a42!important;
    text-transform:uppercase!important;
  }

  /* Customise-only pizzas should look just like a normal burger/simple card:
     price left and Customise right at the bottom. */
  body.tom-customer-order-page .tom-pizza-card-controls--customise-only{
    display:contents!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls--customise-only>div:first-child{
    display:none!important;
  }

  /* Give card body enough height so bottom row really aligns visually. */
  body.tom-customer-order-page .tom-menu-product-body{
    min-height:100%!important;
  }
}

@media(max-width:390px){
  body.tom-customer-order-page .tom-menu-customise,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    min-width:98px!important;
    height:40px!important;
    min-height:40px!important;
    padding:0 12px!important;
    font-size:10px!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    grid-template-columns:minmax(0,1fr) 40px!important;
    gap:6px!important;
  }
}


/* 0.18.0 — mobile pizza price typography parity */
@media(max-width:680px){
  body.tom-customer-order-page .tom-pizza-card-price .tom-menu-price{
    font:inherit!important;
    font-size:16px!important;
    font-weight:400!important;
    line-height:1.1!important;
    letter-spacing:normal!important;
    color:#101828!important;
  }
}


/* 0.18.1 — ONE mobile price style for every order card.
   Do not style pizza prices independently from other menu prices. */
@media(max-width:680px){
  body.tom-customer-order-page .tom-menu-price,
  body.tom-customer-order-page .tom-pizza-card-price .tom-menu-price{
    font-family:inherit!important;
    font-size:14px!important;
    font-style:normal!important;
    font-weight:400!important;
    line-height:1.2!important;
    letter-spacing:normal!important;
    color:#101828!important;
  }
}


/* ==========================================================
   0.18.5 — TABLET + DESKTOP ONLY CARD CONSISTENCY
   18.1 markup and mobile CSS are untouched.
   ========================================================== */

/* ---------- TABLET 681–1024 ---------- */
@media (min-width:681px) and (max-width:1024px){

  /* Card footer alignment */
  body.tom-customer-order-page .tom-menu-product-foot{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:end!important;
    gap:8px!important;
    width:100%!important;
    margin-top:auto!important;
  }

  /* Pizza wrapper must sit in the same right-hand action slot as generic actions */
  body.tom-customer-order-page .tom-menu-product-foot.tom-pizza-card-foot{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:"price actions"!important;
    align-items:end!important;
    gap:8px!important;
    width:100%!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price{
    grid-area:price!important;
    align-self:end!important;
    justify-self:start!important;
    display:grid!important;
    grid-template-rows:9px 16px!important;
    height:25px!important;
    min-height:25px!important;
    max-height:25px!important;
    margin:0!important;
    padding:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls,
  body.tom-customer-order-page .tom-menu-actions{
    grid-area:actions!important;
    align-self:end!important;
    justify-self:end!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls>.tom-menu-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    margin:0!important;
    padding:0!important;
  }

  /* Same price appearance */
  body.tom-customer-order-page .tom-menu-price,
  body.tom-customer-order-page .tom-pizza-card-price .tom-menu-price{
    font-family:inherit!important;
    font-size:13px!important;
    font-style:normal!important;
    font-weight:400!important;
    line-height:16px!important;
    letter-spacing:normal!important;
    color:#101828!important;
    margin:0!important;
    padding:0!important;
    white-space:nowrap!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price .tom-price-from{
    display:block!important;
    height:9px!important;
    min-height:9px!important;
    margin:0!important;
    padding:0!important;
    font-size:8px!important;
    font-weight:600!important;
    line-height:9px!important;
    color:#667085!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price .tom-price-from[hidden]{
    display:block!important;
    visibility:hidden!important;
  }

  /* Same Customise / Build Deal button */
  body.tom-customer-order-page .tom-menu-customise,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:76px!important;
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
    padding:0 10px!important;
    margin:0!important;
    border:0!important;
    border-radius:9px!important;
    background:#101828!important;
    color:#fff!important;
    font-family:inherit!important;
    font-size:9px!important;
    font-weight:700!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  /* Same quantity control */
  body.tom-customer-order-page .tom-qty-control{
    display:grid!important;
    grid-template-columns:30px 30px 30px!important;
    width:90px!important;
    height:34px!important;
    min-height:34px!important;
    margin:0!important;
    padding:0!important;
    gap:0!important;
  }
  body.tom-customer-order-page .tom-qty-control button,
  body.tom-customer-order-page .tom-qty-control span{
    width:30px!important;
    min-width:30px!important;
    height:34px!important;
    min-height:34px!important;
    box-sizing:border-box!important;
  }

  /* Same dropdown + add visual treatment */
  body.tom-customer-order-page .tom-card-size-picker,
  body.tom-customer-order-page .tom-card-group-picker,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:6px!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
  }

  body.tom-customer-order-page .tom-card-size-select,
  body.tom-customer-order-page .tom-card-group-select,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-select{
    width:150px!important;
    min-width:150px!important;
    max-width:150px!important;
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
    margin:0!important;
    padding:0 25px 0 8px!important;
    border:1px solid #d0d5dd!important;
    border-radius:9px!important;
    background:#fff!important;
    color:#101828!important;
    font-family:inherit!important;
    font-size:10px!important;
    font-weight:600!important;
    box-sizing:border-box!important;
  }

  body.tom-customer-order-page .tom-card-size-add,
  body.tom-customer-order-page .tom-card-group-add,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-add{
    width:34px!important;
    min-width:34px!important;
    max-width:34px!important;
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:9px!important;
    background:#101828!important;
    color:#fff!important;
    font-size:17px!important;
    font-weight:700!important;
    box-sizing:border-box!important;
  }
}

/* ---------- DESKTOP / MAC 1025+ ---------- */
@media (min-width:1025px){

  body.tom-customer-order-page .tom-menu-product-foot{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:end!important;
    gap:10px!important;
    width:100%!important;
    margin-top:auto!important;
  }

  body.tom-customer-order-page .tom-menu-product-foot.tom-pizza-card-foot{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:"price actions"!important;
    align-items:end!important;
    gap:10px!important;
    width:100%!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price{
    grid-area:price!important;
    align-self:end!important;
    justify-self:start!important;
    display:grid!important;
    grid-template-rows:9px 16px!important;
    height:25px!important;
    margin:0!important;
    padding:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls,
  body.tom-customer-order-page .tom-menu-actions{
    grid-area:actions!important;
    align-self:end!important;
    justify-self:end!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls>.tom-menu-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    margin:0!important;
    padding:0!important;
  }

  body.tom-customer-order-page .tom-menu-price,
  body.tom-customer-order-page .tom-pizza-card-price .tom-menu-price{
    font-family:inherit!important;
    font-size:13px!important;
    font-style:normal!important;
    font-weight:400!important;
    line-height:16px!important;
    color:#101828!important;
    margin:0!important;
    padding:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price .tom-price-from{
    display:block!important;
    height:9px!important;
    min-height:9px!important;
    margin:0!important;
    padding:0!important;
    font-size:8px!important;
    font-weight:600!important;
    line-height:9px!important;
    color:#667085!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price .tom-price-from[hidden]{
    display:block!important;
    visibility:hidden!important;
  }

  body.tom-customer-order-page .tom-menu-customise,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:76px!important;
    height:34px!important;
    min-height:34px!important;
    padding:0 10px!important;
    margin:0!important;
    border-radius:9px!important;
    background:#101828!important;
    color:#fff!important;
    font-size:9px!important;
    font-weight:700!important;
  }

  body.tom-customer-order-page .tom-qty-control{
    display:grid!important;
    grid-template-columns:34px 32px 34px!important;
    width:100px!important;
    height:34px!important;
    margin:0!important;
  }

  body.tom-customer-order-page .tom-card-size-picker,
  body.tom-customer-order-page .tom-card-group-picker,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    display:flex!important;
    align-items:center!important;
    gap:6px!important;
    width:auto!important;
    margin:0!important;
  }

  body.tom-customer-order-page .tom-card-size-select,
  body.tom-customer-order-page .tom-card-group-select,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-select{
    width:172px!important;
    min-width:172px!important;
    max-width:172px!important;
    height:34px!important;
    min-height:34px!important;
    margin:0!important;
    padding:0 27px 0 8px!important;
    border-radius:9px!important;
    font-size:10px!important;
    box-sizing:border-box!important;
  }

  body.tom-customer-order-page .tom-card-size-add,
  body.tom-customer-order-page .tom-card-group-add,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-add{
    width:34px!important;
    min-width:34px!important;
    height:34px!important;
    min-height:34px!important;
    margin:0!important;
    border-radius:9px!important;
  }
}


/* ==========================================================
   0.18.6 — TABLET CARD REFINEMENT ONLY
   No rules below 681px; 18.1 mobile remains untouched.
   ========================================================== */
@media (min-width:681px) and (max-width:1024px){

  /* Stable vertical card body so every footer sits at the bottom. */
  body.tom-customer-order-page .tom-menu-product-body{
    display:flex!important;
    flex-direction:column!important;
    min-width:0!important;
    height:100%!important;
  }

  body.tom-customer-order-page .tom-menu-product-copy{
    flex:0 0 auto!important;
    min-width:0!important;
  }

  body.tom-customer-order-page .tom-menu-product-foot,
  body.tom-customer-order-page .tom-menu-product-foot.tom-pizza-card-foot{
    display:grid!important;
    grid-template-columns:minmax(54px,1fr) auto!important;
    grid-template-areas:"price actions"!important;
    align-items:end!important;
    column-gap:8px!important;
    row-gap:0!important;
    width:100%!important;
    min-width:0!important;
    margin-top:auto!important;
    padding-top:8px!important;
  }

  /* Price always bottom-left. */
  body.tom-customer-order-page .tom-menu-product-foot>.tom-menu-price,
  body.tom-customer-order-page .tom-pizza-card-price{
    grid-area:price!important;
    align-self:end!important;
    justify-self:start!important;
    margin:0!important;
    padding:0!important;
  }

  body.tom-customer-order-page .tom-menu-product-foot>.tom-menu-price,
  body.tom-customer-order-page .tom-pizza-card-price .tom-menu-price{
    font-family:inherit!important;
    font-size:12px!important;
    font-style:normal!important;
    font-weight:400!important;
    line-height:16px!important;
    letter-spacing:normal!important;
    color:#101828!important;
    white-space:nowrap!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price{
    display:grid!important;
    grid-template-rows:8px 16px!important;
    width:max-content!important;
    height:24px!important;
    min-height:24px!important;
    max-height:24px!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price .tom-price-from{
    display:block!important;
    height:8px!important;
    min-height:8px!important;
    margin:0!important;
    padding:0!important;
    font-size:7px!important;
    font-weight:600!important;
    line-height:8px!important;
    color:#667085!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price .tom-price-from[hidden]{
    display:block!important;
    visibility:hidden!important;
  }

  /* Actions always bottom-right. */
  body.tom-customer-order-page .tom-menu-actions,
  body.tom-customer-order-page .tom-pizza-card-controls{
    grid-area:actions!important;
    align-self:end!important;
    justify-self:end!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:5px!important;
    width:auto!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    position:static!important;
    transform:none!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls>.tom-menu-actions{
    display:flex!important;
    flex:0 0 auto!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:0!important;
    margin:0!important;
    padding:0!important;
    position:static!important;
  }

  /* Same visual button for all product groups. */
  body.tom-customer-order-page .tom-menu-customise,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:68px!important;
    height:32px!important;
    min-height:32px!important;
    max-height:32px!important;
    margin:0!important;
    padding:0 8px!important;
    border:0!important;
    border-radius:8px!important;
    background:#101828!important;
    color:#fff!important;
    font-family:inherit!important;
    font-size:8px!important;
    font-weight:700!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  /* Shared tablet quantity control. */
  body.tom-customer-order-page .tom-qty-control{
    display:grid!important;
    grid-template-columns:29px 29px 29px!important;
    width:87px!important;
    min-width:87px!important;
    height:32px!important;
    min-height:32px!important;
    max-height:32px!important;
    margin:0!important;
    padding:0!important;
    gap:0!important;
  }

  body.tom-customer-order-page .tom-qty-control button,
  body.tom-customer-order-page .tom-qty-control span{
    width:29px!important;
    min-width:29px!important;
    max-width:29px!important;
    height:32px!important;
    min-height:32px!important;
    max-height:32px!important;
    box-sizing:border-box!important;
  }

  /* Shared tablet dropdown/add controls. */
  body.tom-customer-order-page .tom-card-size-picker,
  body.tom-customer-order-page .tom-card-group-picker,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:5px!important;
    width:auto!important;
    min-width:0!important;
    max-width:170px!important;
    margin:0!important;
    padding:0!important;
    position:static!important;
  }

  body.tom-customer-order-page .tom-card-size-select,
  body.tom-customer-order-page .tom-card-group-select,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-select{
    flex:1 1 118px!important;
    width:128px!important;
    min-width:108px!important;
    max-width:128px!important;
    height:32px!important;
    min-height:32px!important;
    max-height:32px!important;
    margin:0!important;
    padding:0 22px 0 7px!important;
    border:1px solid #d0d5dd!important;
    border-radius:8px!important;
    background:#fff!important;
    color:#101828!important;
    font-family:inherit!important;
    font-size:9px!important;
    font-weight:600!important;
    box-sizing:border-box!important;
  }

  body.tom-customer-order-page .tom-card-size-add,
  body.tom-customer-order-page .tom-card-group-add,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-add{
    flex:0 0 32px!important;
    width:32px!important;
    min-width:32px!important;
    max-width:32px!important;
    height:32px!important;
    min-height:32px!important;
    max-height:32px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:8px!important;
    background:#101828!important;
    color:#fff!important;
    font-size:16px!important;
    font-weight:700!important;
    box-sizing:border-box!important;
  }
}


/* ==========================================================
   0.18.7 — PIZZA CARD PARITY ON TABLET/DESKTOP ONLY
   Mobile <=680px is intentionally untouched.
   ========================================================== */

/* ---------- TABLET ---------- */
@media (min-width:681px) and (max-width:1024px){

  /* All menu cards use a stable vertical body. */
  body.tom-customer-order-page .tom-menu-product-body{
    display:flex!important;
    flex-direction:column!important;
    height:100%!important;
    min-width:0!important;
  }

  /* Generic and pizza footers share the same bottom row:
     price left, interaction right. */
  body.tom-customer-order-page .tom-menu-product-foot,
  body.tom-customer-order-page .tom-menu-product-foot.tom-pizza-card-foot{
    display:grid!important;
    grid-template-columns:minmax(50px,1fr) auto!important;
    align-items:end!important;
    gap:7px!important;
    width:100%!important;
    min-width:0!important;
    margin-top:auto!important;
    padding-top:6px!important;
  }

  /* Pizza footer gets a basket-status row above the common bottom row. */
  body.tom-customer-order-page .tom-menu-product-foot.tom-pizza-card-foot{
    grid-template-areas:
      "basket basket"
      "price actions"!important;
    row-gap:3px!important;
  }

  /* Match the ordinary green x-in-basket placement/appearance. */
  body.tom-customer-order-page .tom-pizza-card-basket-status{
    grid-area:basket!important;
    display:block!important;
    align-self:start!important;
    justify-self:start!important;
    width:auto!important;
    min-height:11px!important;
    margin:0!important;
    padding:0!important;
    color:#00843d!important;
    font-family:inherit!important;
    font-size:8px!important;
    font-weight:800!important;
    line-height:11px!important;
    text-transform:uppercase!important;
  }
  body.tom-customer-order-page .tom-pizza-card-basket-status:empty{
    visibility:hidden!important;
  }

  /* Price: same bottom-left footprint/typography as other cards. */
  body.tom-customer-order-page .tom-menu-product-foot>.tom-menu-price{
    align-self:end!important;
    justify-self:start!important;
    margin:0!important;
    padding:0!important;
    font-family:inherit!important;
    font-size:12px!important;
    font-weight:400!important;
    line-height:16px!important;
    color:#101828!important;
    white-space:nowrap!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price{
    grid-area:price!important;
    align-self:end!important;
    justify-self:start!important;
    display:grid!important;
    grid-template-rows:8px 16px!important;
    width:max-content!important;
    min-width:0!important;
    height:24px!important;
    min-height:24px!important;
    max-height:24px!important;
    margin:0!important;
    padding:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price .tom-price-from{
    display:block!important;
    grid-row:1!important;
    height:8px!important;
    min-height:8px!important;
    margin:0!important;
    padding:0!important;
    color:#667085!important;
    font-family:inherit!important;
    font-size:7px!important;
    font-weight:600!important;
    line-height:8px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-price .tom-price-from[hidden]{
    display:block!important;
    visibility:hidden!important;
  }
  body.tom-customer-order-page .tom-pizza-card-price .tom-menu-price{
    grid-row:2!important;
    margin:0!important;
    padding:0!important;
    font-family:inherit!important;
    font-size:12px!important;
    font-weight:400!important;
    line-height:16px!important;
    color:#101828!important;
    white-space:nowrap!important;
  }

  /* Pizza actions occupy exactly the same bottom-right slot as burger actions. */
  body.tom-customer-order-page .tom-pizza-card-controls{
    grid-area:actions!important;
    align-self:end!important;
    justify-self:end!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:5px!important;
    width:auto!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    position:static!important;
    transform:none!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls>.tom-menu-actions{
    display:flex!important;
    flex:0 0 auto!important;
    align-items:center!important;
    justify-content:flex-end!important;
    margin:0!important;
    padding:0!important;
    position:static!important;
  }

  /* Shared tablet button dimensions */
  body.tom-customer-order-page .tom-menu-customise,
  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:68px!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    margin:0!important;
    padding:0 8px!important;
    border:0!important;
    border-radius:8px!important;
    background:#101828!important;
    color:#fff!important;
    font-family:inherit!important;
    font-size:8px!important;
    font-weight:700!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  /* Shared tablet quantity control */
  body.tom-customer-order-page .tom-qty-control{
    display:grid!important;
    grid-template-columns:28px 28px 28px!important;
    width:84px!important;
    min-width:84px!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    margin:0!important;
    padding:0!important;
    gap:0!important;
  }
  body.tom-customer-order-page .tom-qty-control button,
  body.tom-customer-order-page .tom-qty-control span{
    width:28px!important;
    min-width:28px!important;
    max-width:28px!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    box-sizing:border-box!important;
  }

  /* The ONLY pizza-specific interaction difference: size dropdown + add. */
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    flex:0 1 auto!important;
    gap:5px!important;
    width:auto!important;
    min-width:0!important;
    max-width:155px!important;
    margin:0!important;
    padding:0!important;
    position:static!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-select{
    flex:0 1 116px!important;
    width:116px!important;
    min-width:100px!important;
    max-width:116px!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    margin:0!important;
    padding:0 21px 0 7px!important;
    border:1px solid #d0d5dd!important;
    border-radius:8px!important;
    background:#fff!important;
    color:#101828!important;
    font-family:inherit!important;
    font-size:8px!important;
    font-weight:600!important;
    line-height:28px!important;
    box-sizing:border-box!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-add{
    flex:0 0 30px!important;
    width:30px!important;
    min-width:30px!important;
    max-width:30px!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:8px!important;
    font-size:15px!important;
    box-sizing:border-box!important;
  }
}


/* ---------- DESKTOP / MAC ---------- */
@media (min-width:1025px){

  body.tom-customer-order-page .tom-menu-product-foot.tom-pizza-card-foot{
    display:grid!important;
    grid-template-columns:minmax(58px,1fr) auto!important;
    grid-template-areas:
      "basket basket"
      "price actions"!important;
    align-items:end!important;
    column-gap:8px!important;
    row-gap:3px!important;
    width:100%!important;
    min-width:0!important;
    margin-top:auto!important;
  }

  body.tom-customer-order-page .tom-pizza-card-basket-status{
    grid-area:basket!important;
    display:block!important;
    align-self:start!important;
    justify-self:start!important;
    min-height:11px!important;
    margin:0!important;
    padding:0!important;
    color:#00843d!important;
    font-family:inherit!important;
    font-size:8px!important;
    font-weight:800!important;
    line-height:11px!important;
    text-transform:uppercase!important;
  }
  body.tom-customer-order-page .tom-pizza-card-basket-status:empty{
    visibility:hidden!important;
  }

  body.tom-customer-order-page .tom-pizza-card-price{
    grid-area:price!important;
    align-self:end!important;
    justify-self:start!important;
    margin:0!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls{
    grid-area:actions!important;
    align-self:end!important;
    justify-self:end!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    position:static!important;
    transform:none!important;
  }

  body.tom-customer-order-page .tom-pizza-card-controls>.tom-menu-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    margin:0!important;
    padding:0!important;
  }
}


/* ==========================================================
   0.18.8 — GENERIC CARD STATUS/PRICE ALIGNMENT
   Tablet + desktop only. Mobile remains untouched.
   ========================================================== */

/* ---------- TABLET ---------- */
@media (min-width:681px) and (max-width:1024px){

  /* Generic card basket count occupies the same visual status row as pizza. */
  body.tom-customer-order-page .tom-card-in-basket{
    display:block!important;
    align-self:start!important;
    justify-self:start!important;
    width:auto!important;
    min-height:11px!important;
    margin:3px 0 0!important;
    padding:0!important;
    color:#00843d!important;
    font-family:inherit!important;
    font-size:8px!important;
    font-weight:800!important;
    line-height:11px!important;
    text-transform:uppercase!important;
  }
  body.tom-customer-order-page .tom-card-in-basket[hidden]{
    display:block!important;
    visibility:hidden!important;
  }

  /* Keep the generic footer pinned exactly like the pizza footer:
     price bottom-left, actions bottom-right. */
  body.tom-customer-order-page .tom-menu-product-foot:not(.tom-pizza-card-foot){
    display:grid!important;
    grid-template-columns:minmax(50px,1fr) auto!important;
    grid-template-areas:"price actions"!important;
    align-items:end!important;
    column-gap:7px!important;
    row-gap:0!important;
    width:100%!important;
    min-width:0!important;
    margin-top:auto!important;
    padding-top:6px!important;
  }

  body.tom-customer-order-page .tom-menu-product-foot:not(.tom-pizza-card-foot)>.tom-menu-price{
    grid-area:price!important;
    align-self:end!important;
    justify-self:start!important;
    margin:0!important;
    padding:0!important;
    font-family:inherit!important;
    font-size:12px!important;
    font-weight:400!important;
    line-height:16px!important;
    color:#101828!important;
    white-space:nowrap!important;
  }

  body.tom-customer-order-page .tom-menu-product-foot:not(.tom-pizza-card-foot)>.tom-menu-actions{
    grid-area:actions!important;
    align-self:end!important;
    justify-self:end!important;
    margin:0!important;
  }
}

/* ---------- DESKTOP / MAC ---------- */
@media (min-width:1025px){

  body.tom-customer-order-page .tom-card-in-basket{
    display:block!important;
    align-self:start!important;
    justify-self:start!important;
    width:auto!important;
    min-height:11px!important;
    margin:3px 0 0!important;
    padding:0!important;
    color:#00843d!important;
    font-family:inherit!important;
    font-size:8px!important;
    font-weight:800!important;
    line-height:11px!important;
    text-transform:uppercase!important;
  }
  body.tom-customer-order-page .tom-card-in-basket[hidden]{
    display:block!important;
    visibility:hidden!important;
  }

  body.tom-customer-order-page .tom-menu-product-foot:not(.tom-pizza-card-foot){
    display:grid!important;
    grid-template-columns:minmax(58px,1fr) auto!important;
    grid-template-areas:"price actions"!important;
    align-items:end!important;
    column-gap:8px!important;
    row-gap:0!important;
    width:100%!important;
    min-width:0!important;
    margin-top:auto!important;
  }

  body.tom-customer-order-page .tom-menu-product-foot:not(.tom-pizza-card-foot)>.tom-menu-price{
    grid-area:price!important;
    align-self:end!important;
    justify-self:start!important;
    margin:0!important;
    padding:0!important;
    font-family:inherit!important;
    font-size:13px!important;
    font-weight:400!important;
    line-height:16px!important;
    color:#101828!important;
    white-space:nowrap!important;
  }

  body.tom-customer-order-page .tom-menu-product-foot:not(.tom-pizza-card-foot)>.tom-menu-actions{
    grid-area:actions!important;
    align-self:end!important;
    justify-self:end!important;
    margin:0!important;
  }
}


/* ==========================================================
   0.18.9 — basket + single-choice control parity
   Existing mobile styling is retained. Footer duplicates are
   hidden by default and enabled only from 681px upward.
   ========================================================== */

/* Keep new footer copies out of the existing mobile layout. */
body.tom-customer-order-page .tom-card-in-basket--footer,
body.tom-customer-order-page .tom-card-group-picker--footer{
  display:none!important;
}

@media (min-width:681px) and (max-width:1024px){

  /* Tablet uses the common footer placement, not the inline/mobile placement. */
  body.tom-customer-order-page .tom-card-in-basket--inline,
  body.tom-customer-order-page .tom-card-group-picker--inline{
    display:none!important;
  }

  body.tom-customer-order-page .tom-card-in-basket--footer{
    grid-area:basket!important;
    display:block!important;
    align-self:start!important;
    justify-self:start!important;
    width:auto!important;
    min-height:11px!important;
    margin:0!important;
    padding:0!important;
    color:#00843d!important;
    font-family:inherit!important;
    font-size:8px!important;
    font-weight:800!important;
    line-height:11px!important;
    text-transform:uppercase!important;
  }
  body.tom-customer-order-page .tom-card-in-basket--footer[hidden]{
    display:block!important;
    visibility:hidden!important;
  }

  /* Generic cards now have exactly the same status/footer rows as pizza. */
  body.tom-customer-order-page .tom-menu-product-foot:not(.tom-pizza-card-foot){
    display:grid!important;
    grid-template-columns:minmax(50px,1fr) auto!important;
    grid-template-areas:
      "basket basket"
      "price actions"!important;
    align-items:end!important;
    column-gap:7px!important;
    row-gap:3px!important;
    width:100%!important;
    min-width:0!important;
    margin-top:auto!important;
    padding-top:6px!important;
  }

  /* Single-choice drinks live in the same action position as pizza sizes. */
  body.tom-customer-order-page .tom-card-group-picker--footer{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:5px!important;
    width:auto!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }

  body.tom-customer-order-page .tom-card-group-picker--footer .tom-card-group-select{
    width:116px!important;
    min-width:100px!important;
    max-width:116px!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    margin:0!important;
    padding:0 21px 0 7px!important;
    border-radius:8px!important;
    font-size:8px!important;
    line-height:28px!important;
    box-sizing:border-box!important;
  }

  body.tom-customer-order-page .tom-card-group-picker--footer .tom-card-group-add{
    flex:0 0 30px!important;
    width:30px!important;
    min-width:30px!important;
    max-width:30px!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    margin:0!important;
    padding:0!important;
    border-radius:8px!important;
    font-size:15px!important;
    box-sizing:border-box!important;
  }
}

/* Configurable cards: retain the established layout with a readable gap
   between the quick-add control and the Customise action. */
body.tom-customer-order-page .tom-pizza-card-controls{gap:10px!important}

/* Final compact-desktop card contract. This must remain after the historical
   responsive declarations above. */
@media (min-width:1025px) and (max-width:1350px){
  body.tom-customer-order-page .tom-pizza-card-foot{
    grid-template-columns:minmax(54px,1fr) minmax(0,252px)!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls{
    width:252px!important;
    max-width:252px!important;
    gap:6px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-picker{
    flex:1 1 auto!important;
    width:auto!important;
    max-width:none!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-card-size-select{
    flex:1 1 auto!important;
    width:130px!important;
    min-width:100px!important;
    max-width:130px!important;
  }
  body.tom-customer-order-page .tom-pizza-card-controls .tom-menu-customise{
    min-width:70px!important;
    padding-inline:8px!important;
  }
}

@media (min-width:1025px){

  body.tom-customer-order-page .tom-card-in-basket--inline,
  body.tom-customer-order-page .tom-card-group-picker--inline{
    display:none!important;
  }

  body.tom-customer-order-page .tom-card-in-basket--footer{
    grid-area:basket!important;
    display:block!important;
    align-self:start!important;
    justify-self:start!important;
    width:auto!important;
    min-height:11px!important;
    margin:0!important;
    padding:0!important;
    color:#00843d!important;
    font-family:inherit!important;
    font-size:8px!important;
    font-weight:800!important;
    line-height:11px!important;
    text-transform:uppercase!important;
  }
  body.tom-customer-order-page .tom-card-in-basket--footer[hidden]{
    display:block!important;
    visibility:hidden!important;
  }

  body.tom-customer-order-page .tom-menu-product-foot:not(.tom-pizza-card-foot){
    display:grid!important;
    grid-template-columns:minmax(58px,1fr) auto!important;
    grid-template-areas:
      "basket basket"
      "price actions"!important;
    align-items:end!important;
    column-gap:8px!important;
    row-gap:3px!important;
    width:100%!important;
    min-width:0!important;
    margin-top:auto!important;
  }

  body.tom-customer-order-page .tom-card-group-picker--footer{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:6px!important;
    width:auto!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }

  body.tom-customer-order-page .tom-card-group-picker--footer .tom-card-group-select{
    width:172px!important;
    min-width:130px!important;
    max-width:172px!important;
    height:34px!important;
    min-height:34px!important;
    margin:0!important;
    padding:0 27px 0 8px!important;
    border-radius:9px!important;
    font-size:10px!important;
    box-sizing:border-box!important;
  }

  body.tom-customer-order-page .tom-card-group-picker--footer .tom-card-group-add{
    width:34px!important;
    min-width:34px!important;
    height:34px!important;
    min-height:34px!important;
    margin:0!important;
    border-radius:9px!important;
  }
}
/* Persistent store closure is presented as a customer-facing availability
   state. It never exposes the staff/audit terminology used in TOM Manage. */
.tom-customer-store-closed{display:grid;gap:4px;margin:16px 0;padding:15px 17px;border:1px solid #e7a39d;border-radius:12px;background:#fff1f0;color:#7a271a}.tom-customer-store-closed strong{font-size:17px}.tom-customer-store-closed span{font-size:13px;line-height:1.4}.tom-customer-store-closed--product{width:calc(100% - 32px);max-width:1080px;margin:16px auto;box-sizing:border-box}.tom-master-store-closed .tom-qty-plus,.tom-master-store-closed .tom-card-size-add,.tom-master-store-closed .tom-card-group-add,.tom-master-store-closed .tom-variant-add,.tom-master-store-closed .tom-reco-add,.tom-master-store-closed [data-inline-upsell-delta="1"],.tom-master-store-closed .single_add_to_cart_button{opacity:.45!important;cursor:not-allowed!important}

.tom-order-availability{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0;padding:15px 17px;border:1px solid #a9c8df;border-radius:12px;background:#f0f7fc;color:#173f5b}.tom-order-availability__copy{display:grid;gap:4px}.tom-order-availability strong{font-size:17px}.tom-order-availability span{font-size:13px;line-height:1.4}.tom-order-availability__action{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 15px;border:1px solid currentColor;border-radius:9px;color:inherit;font-size:13px;font-weight:700;text-decoration:none}.tom-order-availability__action:hover,.tom-order-availability__action:focus{background:#fff;color:#102f45}.tom-order-availability--manual_closed,.tom-order-availability--unavailable{border-color:#e7a39d;background:#fff1f0;color:#7a271a}@media(max-width:600px){.tom-order-availability{align-items:stretch;flex-direction:column}.tom-order-availability__action{align-self:flex-start}}
.tom-order-availability--reserved{border-color:#86c9a5;background:#effaf3;color:#175b36}.tom-order-availability--expired{border-color:#efb37a;background:#fff7ed;color:#7c3b0a}.tom-slot-picker{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:10px;width:100%;padding-top:13px;border-top:1px solid currentColor}.tom-slot-picker[hidden]{display:none}.tom-slot-picker label{display:grid;gap:4px}.tom-slot-picker label>span{font-size:11px;font-weight:700}.tom-slot-picker select,.tom-slot-picker__save{box-sizing:border-box;min-height:42px;border:1px solid #98a2b3;border-radius:8px;background:#fff;padding:8px 10px}.tom-slot-picker__save{align-self:end;background:#101828;color:#fff;font-weight:700}.tom-slot-picker__error{grid-column:1/-1;color:#b42318}.tom-slot-reservation-fallback{max-width:1180px;margin:0 auto}.tom-order-availability:has(.tom-slot-picker:not([hidden])){display:grid;grid-template-columns:minmax(0,1fr) auto}@media(max-width:760px){.tom-slot-picker{grid-template-columns:1fr}.tom-slot-picker__error{grid-column:1}.tom-order-availability:has(.tom-slot-picker:not([hidden])){grid-template-columns:1fr}}

.tom-deal-configured-entitlement{cursor:default!important}
.tom-deal-configured-entitlement .tom-deal-child-configuration{display:grid!important}

/* One product-page gutter and one guided-choice rhythm. The product/group
   identity never participates in these presentation decisions. */
body.single-product .tom-main-order-product>.summary{
  --tom-product-content-inset:4px;
  padding-inline:var(--tom-product-content-inset)!important;
}
body.single-product .tom-main-order-product>.summary>:is(
  .product_title,.price,.woocommerce-product-details__short-description,form.cart,
  .tom-menu-engine,.tom-configurator,.tom-product-configurator,.tom-generic-options,.tom-deal-builder
){
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}
body.single-product .tom-main-order-product :is(.tom-generic-head,.tom-config-head,.tom-builder-heading){
  box-sizing:border-box!important;
  width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder){
  --tom-builder-content-inset:12px;
  --tom-choice-type-size:14px;
  --tom-choice-type-line:1.25;
  --tom-choice-helper-size:11px;
  --tom-choice-helper-line:1.3;
  --tom-choice-price-size:12px;
  --tom-choice-price-line:1.25;
  --tom-choice-status-size:11px;
  --tom-choice-status-line:1;
  --tom-choice-card-gap:10px;
  --tom-choice-header-padding:14px var(--tom-builder-content-inset) 10px;
  --tom-choice-body-padding:0 var(--tom-builder-content-inset) 16px;
  --tom-choice-row-gap:8px;
  --tom-choice-row-min-height:46px;
  --tom-choice-row-padding:10px var(--tom-builder-content-inset);
  --tom-choice-footer-margin:14px;
  --tom-choice-footer-padding:12px;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder)>.tom-guided-step,
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-option-group.tom-guided-step{
  margin-bottom:var(--tom-choice-card-gap)!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-guided-heading{
  padding:var(--tom-choice-header-padding)!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-guided-body{
  padding:var(--tom-choice-body-padding)!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) :is(
  .tom-included-grid,.tom-choice-grid,.tom-option-grid,.tom-topping-grid,
  .tom-deal-choice-grid,.tom-deal-child-grid,.tom-deal-nested-grid
){
  display:grid!important;
  grid-template-columns:1fr!important;
  row-gap:var(--tom-choice-row-gap)!important;
  column-gap:var(--tom-choice-row-gap)!important;
  width:100%!important;
}
/* Grid gap is the sole source of spacing between selectable rows. Normalise
   every reusable row wrapper so checked styling, price labels, nesting and
   :last-child theme rules cannot collapse or enlarge that rhythm. */
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) :is(
  .tom-included-grid>.tom-included-choice,
  .tom-choice-grid>.tom-radio,
  .tom-option-grid>.tom-option-choice,
  .tom-topping-grid>.tom-check,
  .tom-deal-choice-grid>.tom-deal-choice,
  .tom-deal-child-grid>.tom-deal-child-choice,
  .tom-deal-nested-grid>.tom-deal-nested-choice
){
  box-sizing:border-box!important;
  min-width:0!important;
  margin:0!important;
  margin-block:0!important;
  align-self:stretch!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-included-grid>.tom-included-choice>span,
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-choice-grid>.tom-radio>span,
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-option-grid>.tom-option-choice>span,
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-topping-grid>.tom-check>span,
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-deal-nested-grid>.tom-deal-nested-choice,
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-deal-child-grid>.tom-deal-child-choice>span{
  box-sizing:border-box!important;
  min-height:var(--tom-choice-row-min-height)!important;
  margin:0!important;
  padding:var(--tom-choice-row-padding)!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-guided-footer{
  margin-top:var(--tom-choice-footer-margin)!important;
  padding-top:var(--tom-choice-footer-padding)!important;
}
@media(max-width:600px){
  body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder){
    --tom-choice-row-min-height:48px;
  }
}

/* Shared choice-row primitives. Text owns the flexible column; interactive
   quantity controls own a fixed non-shrinking column at every viewport. */
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) :is(
  .tom-option-choice>span,.tom-radio>span,.tom-check>span,.tom-deal-choice-name,
  .tom-deal-nested-choice,.tom-deal-child-choice>span
){
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-option-choice>span>b{
  min-width:0!important;flex:1 1 auto!important;white-space:normal!important;overflow-wrap:anywhere!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-option-choice>span>.tom-choice-price{
  flex:0 0 auto!important;white-space:nowrap!important;
}

/* One compact storefront Choice Group row. The outer label is only the
   accessible hit target; the inner row owns all visible control geometry.
   Woo price markup stays inline display text rather than inheriting theme
   amount/currency control styling. */
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-customer-choice{
  position:relative!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  line-height:inherit!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-choice-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  align-items:center!important;
  column-gap:12px!important;
  width:100%!important;
  min-width:0!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-customer-choice>.tom-choice-row{
  min-height:var(--tom-choice-row-min-height)!important;
  margin:0!important;
  padding:var(--tom-choice-row-padding)!important;
  box-sizing:border-box!important;
  border:1px solid #d6d6d6!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#111827!important;
}
body.single-product .tom-deal-builder :is(.tom-deal-choice-name.tom-choice-row,.tom-deal-choice-copy>.tom-choice-row){
  font-size:var(--tom-choice-type-size)!important;
  line-height:var(--tom-choice-type-line)!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) :is(
  .tom-option-choice.tom-customer-choice>input:checked+.tom-choice-row,
  .tom-deal-single-choice.tom-customer-choice.is-selected>.tom-choice-row
){
  border-color:#111827!important;
  background:#111827!important;
  color:#fff!important;
  box-shadow:none!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-choice-row>.tom-choice-label{
  display:block!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  cursor:inherit!important;
  color:inherit!important;
  font:inherit!important;
  font-weight:400!important;
  text-align:left!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-choice-row>.tom-choice-price,
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-choice-price :is(.woocommerce-Price-amount,bdi,.woocommerce-Price-currencySymbol){
  display:inline!important;
  position:static!important;
  float:none!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:inherit!important;
  font-family:inherit!important;
  font-size:var(--tom-choice-price-size)!important;
  font-weight:400!important;
  line-height:var(--tom-choice-price-line)!important;
  text-align:right!important;
  white-space:nowrap!important;
}
/* The current allowance projection owns surcharge visibility. This rule must
   follow the theme-normalising display declaration above so native `hidden`
   remains authoritative for selected included choices. */
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) .tom-choice-price[hidden]{
  display:none!important;
}
body.single-product .tom-deal-slot--quantity .tom-deal-choice{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 116px!important;
  align-items:center!important;
  column-gap:12px!important;
  min-height:var(--tom-choice-row-min-height)!important;
  padding:var(--tom-choice-row-padding)!important;
}
body.single-product .tom-deal-slot--quantity .tom-deal-choice-copy{
  width:auto!important;min-width:0!important;
}
body.single-product .tom-deal-slot--quantity .tom-deal-qty{
  display:grid!important;
  grid-template-columns:38px 40px 38px!important;
  width:116px!important;min-width:116px!important;max-width:116px!important;
  flex:0 0 116px!important;
}
body.single-product .tom-deal-slot--quantity .tom-deal-qty button,
body.single-product .tom-deal-slot--quantity .tom-deal-count{
  box-sizing:border-box!important;width:100%!important;min-width:0!important;height:38px!important;min-height:38px!important;
}
body.single-product .tom-deal-child-configuration{
  display:grid;gap:10px;margin-top:2px;padding-top:10px;border-top:1px solid #e4e7ec;
}
body.single-product .tom-deal-child-configuration[hidden]{display:none!important}
body.single-product .tom-deal-child-group{min-width:0;margin:0;padding:0;border:0}
body.single-product .tom-deal-child-group legend{display:flex;justify-content:space-between;gap:12px;width:100%;margin:0 0 7px;font-size:var(--tom-choice-type-size);line-height:var(--tom-choice-type-line);font-weight:800;color:#475467}
body.single-product .tom-deal-child-group legend small{font-size:var(--tom-choice-helper-size);line-height:var(--tom-choice-helper-line);font-weight:500;color:#687386;text-align:right}
body.single-product .tom-deal-child-grid{display:grid;grid-template-columns:1fr;gap:var(--tom-choice-row-gap)}
body.single-product .tom-deal-child-choice{position:relative;display:block;min-width:0;margin:0}
body.single-product .tom-deal-child-choice>input{position:absolute;opacity:0;pointer-events:none}
body.single-product .tom-deal-child-choice>span{display:block;box-sizing:border-box;min-height:var(--tom-choice-row-min-height);padding:var(--tom-choice-row-padding);border:1px solid #d6d6d6;border-radius:9px;background:#fff;color:#111827}
body.single-product .tom-deal-child-choice>input:checked+span{border-color:#111827;background:#111827;color:#fff}
body.single-product .tom-builder-validation{margin:8px 0 0;color:#b42318;font-size:12px;font-weight:700}
/* The shared row component uses forceful display normalisation to defeat theme
   styles. Preserve the browser's native hidden contract after that reset so
   allowance prices and size-ineligible reusable Components really disappear. */
body.single-product :is(.tom-configurator,.tom-generic-options,.tom-deal-builder) [hidden]{
  display:none!important;
}
@media(max-width:600px){
  body.single-product .tom-deal-slot--quantity .tom-deal-choice{grid-template-columns:minmax(0,1fr) 116px!important}
}
