/* Product pages use the live catalogue and the storefront's existing palette. */
.product-detail-page{padding-bottom:4.5rem}
.product-detail-back{display:inline-flex;align-items:center;gap:.55rem;margin:1.3rem 0 2rem;font-size:.88rem;text-decoration:underline;text-underline-offset:.25rem}
.product-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.product-detail-photo{width:100%;margin:0;overflow:hidden;border-radius:1rem;background:var(--olive);max-width:36rem}
.product-detail-photo>.product-image,.product-detail-photo>.photo-crop{width:100%;max-height:none}
.product-detail-photo>.product-image{aspect-ratio:853/1280}
.product-detail-photo>.product-image img{object-fit:contain}
.product-detail-copy{min-width:0;padding-top:.6rem}
.product-detail-copy h1{font:400 clamp(2.2rem,4.3vw,3.5rem)/1.08 var(--serif);letter-spacing:-.025em;margin:.8rem 0 1rem;overflow-wrap:break-word}
.product-detail-badge{display:inline-block;border:1px solid var(--line);border-radius:2rem;padding:.3rem .8rem;font-size:.83rem;margin:0 0 .9rem}
.product-detail-copy .product-dietary-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin:.3rem 0 1.1rem}
.product-detail-copy .product-dietary-badge{display:inline-flex;align-items:center;gap:.35rem;color:var(--ink);font-size:.78rem;line-height:1.3}
.product-detail-copy .product-dietary-badge svg{width:20px;height:20px;flex:0 0 20px}
.product-detail-description{color:var(--muted);font-size:1rem;line-height:1.75;white-space:pre-line;overflow-wrap:anywhere;margin:1rem 0 1.5rem}
.product-detail-price{font-size:1.8rem;line-height:1.3;font-weight:600;margin:1.6rem 0 1.3rem}
.product-detail-unit{font-size:.95rem;color:var(--muted);font-weight:400;white-space:nowrap}
.product-detail-purchase{padding-top:1.35rem;border-top:1px solid var(--line)}
.product-detail-purchase[hidden]{display:none}
.product-detail-purchase>label{display:block;font-size:.9rem;font-weight:500;margin-bottom:.55rem}
.product-detail-quantity-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.product-detail-stepper{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:2rem;overflow:hidden;background:var(--paper)}
.product-detail-stepper button{flex:0 0 44px;width:44px;min-height:46px;background:transparent;border:0;color:var(--ink);font-size:1.35rem;cursor:pointer}
.product-detail-stepper input{width:64px;min-width:0;min-height:46px;border:0;border-inline:1px solid var(--line);border-radius:0;text-align:center;font:500 1rem var(--sans);background:transparent;color:var(--ink);padding:.4rem .1rem;appearance:textfield;-moz-appearance:textfield}
.product-detail-stepper input::-webkit-inner-spin-button,.product-detail-stepper input::-webkit-outer-spin-button{appearance:none;-webkit-appearance:none;margin:0}
.product-detail-stepper button:disabled{opacity:.4;cursor:default}
.product-detail-stepper button:not(:disabled):hover{background:var(--olive)}
.product-detail-line-total{color:var(--muted);font-size:.87rem}
.product-detail-line-total span{display:inline-block;color:var(--ink);font-size:1.12rem;font-weight:600;margin-left:.25rem;white-space:nowrap}
.product-detail-add{width:100%;justify-content:center;min-height:50px;margin-top:1.15rem;font:500 1rem var(--sans);cursor:pointer}
.product-detail-add:disabled{opacity:.6;cursor:wait}
.product-detail-help{font-size:.85rem;line-height:1.55;color:var(--muted);margin:.65rem 0;overflow-wrap:anywhere}
.product-detail-help a{text-decoration:underline;text-underline-offset:.2rem}
.product-detail-status{font-size:.9rem;line-height:1.55;margin:.9rem 0 0;min-height:1.4em;overflow-wrap:anywhere}
.product-detail-checkout{margin-top:.45rem;max-width:100%;white-space:normal;line-height:1.45}
.product-unavailable{font-size:1rem;color:var(--muted);padding:1rem 0;border-top:1px solid var(--line);margin-top:1rem}
.product-detail-page a:focus-visible,.product-detail-page button:focus-visible,.product-detail-page input:focus-visible{outline:3px solid var(--action);outline-offset:3px}
.product-detail-stepper button:focus-visible,.product-detail-stepper input:focus-visible{outline-offset:-4px}
@media(max-width:760px){
  .product-detail-page{padding-bottom:3rem}
  .product-detail-back{margin:1rem 0 1.35rem}
  .product-detail-layout{grid-template-columns:1fr;gap:1.65rem}
  .product-detail-photo{max-width:30rem;justify-self:center;border-radius:.75rem}
  .product-detail-copy{padding-top:0}
  .product-detail-copy h1{font-size:clamp(2rem,8.5vw,3rem);margin-top:.65rem}
  .product-detail-description{line-height:1.65;margin:1rem 0}
  .product-detail-price{margin:1.3rem 0 1.1rem;font-size:1.65rem}
  .product-detail-copy .product-dietary-badges{gap:.45rem .8rem}
  .product-detail-quantity-row{gap:.7rem}
}
@media(prefers-reduced-motion:reduce){.product-detail-page *{scroll-behavior:auto}}
