/* Catalog, basket and confirmation share one purchase vocabulary. */
.page-hero.commerce-heading { padding-top:24px; padding-bottom:28px; }
.page-hero.commerce-heading .breadcrumbs { margin-bottom:20px; }
.page-hero.commerce-heading h1 { font-size:clamp(32px,4vw,54px); margin-bottom:14px; }
.section.redesign-commerce { padding-top:32px; padding-bottom:80px; }
.redesign-order-receipt:focus, .request-receipt:focus { outline:0; }
.product-card .product-bottom { align-items:center; }
.product-card .product-price-stack { justify-content:center; }
.product-card [data-product-add] { display:flex; align-items:center; gap:0; min-height:52px; }
.product-card .product-quantity-decrease {
  display:grid; place-items:center; flex:none; width:44px; height:44px; border:1px solid var(--line);
  border-radius:10px 0 0 10px; background:var(--soft); color:var(--navy);
}
.product-card .product-quantity-decrease .icon { width:17px; height:17px; }
.product-card .product-quantity-decrease:hover { background:var(--line); }
.product-card [data-product-add].has-cart-quantity .product-cart-link {
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  min-width:64px; min-height:44px; padding:3px 7px; border-block:1px solid var(--line);
  border-radius:0; color:var(--navy); background:white; text-decoration:none; animation:none;
}
.product-card .product-cart-link strong { font-size:13px; line-height:1.3; font-variant-numeric:tabular-nums; }
.product-card .product-cart-link > span { font-size:9px; line-height:1.3; font-weight:550; }
.product-card [data-product-add].has-cart-quantity .product-cart-link:hover { background:var(--soft); }
.product-card [data-product-add].has-cart-quantity .add-cart {
  --cart-size:44px; width:44px; height:44px; min-height:44px; border-radius:0 10px 10px 0;
}
.product-card [data-product-add].has-cart-quantity .add-cart-copy { display:none; }
.product-card [data-product-add].has-cart-quantity .add-cart[data-feedback=checking] .add-cart-glyph::after { width:15px; height:15px; }
.product-card .product-action-followup { min-height:0; padding-top:0; }
.product-card .product-add-status:not(:empty) { margin-top:12px; }
.product-card .product-add-status[data-state=success],
.product-card .product-add-status[data-state=loading] {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap;
}
.product-quantity-decrease:focus-visible, .cart-quantity :focus-visible {
  outline:2px solid var(--focus); outline-offset:-3px; position:relative; z-index:1;
}
.product-card [data-product-add] button:disabled { cursor:default; }
.commerce-loading { display:flex; align-items:center; gap:14px; min-height:140px; color:var(--muted); }
.commerce-items-heading { display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 18px; margin:0 0 24px; font-size:21px; }
.commerce-items-heading > span, .commerce-items-count { font-size:12px; font-weight:500; color:var(--muted); }
.redesign-commerce .commerce-items-count { margin:-14px 0 22px; }
.commerce-product-photo {
  position:relative; display:grid; place-items:center; flex:none; width:96px; height:96px;
  border:1px solid var(--line); border-radius:10px; background:var(--soft); overflow:hidden; text-decoration:none;
}
.commerce-product-photo img { display:block; width:100%; height:100%; object-fit:contain; background:var(--soft); }
.commerce-product-photo .commerce-photo-placeholder { font-size:11px; line-height:1.5; color:var(--muted); text-align:center; padding:6px; }
.commerce-product-photo.has-photo .commerce-photo-placeholder { display:none; }
.commerce-product-photo:focus-visible { outline:2px solid var(--focus); outline-offset:3px; }
.commerce-item-copy { min-width:0; overflow-wrap:anywhere; }
.commerce-item-copy a { text-decoration:none; }
.commerce-item-copy a:hover { text-decoration:underline; text-underline-offset:3px; }
.commerce-item-price { display:block; color:var(--muted); font-size:12px; line-height:1.5; margin-top:7px; font-variant-numeric:tabular-nums; }
.redesign-commerce .cart-layout { grid-template-columns:minmax(0,1fr) 350px; gap:clamp(24px,4vw,50px); }
.redesign-commerce .cart-item { display:grid; grid-template-columns:96px minmax(0,1fr) 132px; gap:20px; padding:24px 0; align-items:start; }
.redesign-commerce .cart-item:first-child { padding-top:0; }
.redesign-commerce .cart-item h2 { font-size:15px; line-height:1.6; margin:0; }
.redesign-commerce .cart-item p { margin-top:5px; }
.redesign-commerce .cart-item .cart-item-purchase { display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
.redesign-commerce .cart-quantity { display:flex; width:132px; border:1px solid var(--line); border-radius:9px; background:white; overflow:hidden; }
.redesign-commerce .cart-quantity button { flex:0 0 40px; min-height:44px; padding:0; font-size:21px; color:var(--navy); background:var(--soft); }
.redesign-commerce .cart-quantity button:hover:not(:disabled) { background:var(--line); }
.redesign-commerce .cart-quantity button:disabled { opacity:.38; cursor:default; }
.redesign-commerce .cart-quantity input {
  min-width:0; width:50px; height:44px; min-height:44px; margin:0; padding:0; border:0; border-radius:0;
  text-align:center; font-size:14px; font-variant-numeric:tabular-nums; appearance:textfield; -moz-appearance:textfield;
}
.redesign-commerce .cart-quantity input::-webkit-inner-spin-button,
.redesign-commerce .cart-quantity input::-webkit-outer-spin-button { appearance:none; margin:0; }
.redesign-commerce .cart-quantity-error { grid-column:1/-1; max-width:100%; margin:0; font-size:12px; line-height:1.5; color:var(--navy); }
.redesign-commerce .cart-quantity:has([aria-invalid=true]) { border-color:var(--orange); }
.redesign-commerce #to-checkout[aria-disabled=true] { opacity:.55; cursor:not-allowed; }
.redesign-commerce .cart-item [data-remove] { padding:0 3px; min-height:32px; text-decoration:underline; text-underline-offset:3px; }
.redesign-commerce .cart-line-price { font-size:16px; font-variant-numeric:tabular-nums; line-height:1.5; }
.redesign-commerce .summary-item { display:grid; grid-template-columns:64px minmax(0,1fr); gap:10px 12px; border-bottom:1px solid var(--line); padding-block:16px; }
.redesign-commerce .summary-item:first-child { padding-top:0; }
.redesign-commerce .summary-item .commerce-product-photo { width:64px; height:64px; border-radius:7px; }
.redesign-commerce .summary-item .commerce-photo-placeholder { font-size:8px; }
.redesign-commerce .summary-item small { margin-top:4px; font-size:10px; }
.redesign-commerce .summary-item > strong { grid-column:2; font-size:14px; font-variant-numeric:tabular-nums; margin-top:-3px; }
.redesign-commerce .summary-item .commerce-item-price { font-size:11px; }
.redesign-commerce .redesign-summary-action .consent { align-items:flex-start; margin-bottom:18px; }
.redesign-commerce .consent input { margin-top:4px; }
.redesign-commerce .consent a, .redesign-commerce .field-help a { color:var(--navy); text-decoration:underline; text-underline-offset:3px; }
.redesign-commerce .consent { font-size:12px; line-height:1.65; }
.receipt-item { display:grid; grid-template-columns:72px minmax(0,1fr) auto; gap:14px; align-items:start; padding:20px 0; border-bottom:1px solid var(--line); }
.receipt-item .commerce-product-photo { width:72px; height:72px; border-radius:8px; }
.receipt-item h4 { margin:0; font-size:14px; line-height:1.6; font-weight:650; }
.receipt-item small { display:block; margin-top:5px; font-size:11px; color:var(--muted); }
.receipt-item > strong { font-size:14px; white-space:nowrap; font-variant-numeric:tabular-nums; }
#receipt-items { margin:4px 0 30px; }
.order-state-badge { display:inline-flex; align-items:center; padding:7px 12px; border:1px solid var(--line); border-radius:7px; font-size:12px; font-weight:650; color:var(--navy); background:var(--soft); margin:0 0 24px; }
.section:has(> .request-layout[hidden]), .section:has(> .container > .request-layout[hidden]) { display:none; }
.request-receipt { max-width:760px; padding-top:48px; }
.request-receipt .btn { margin:0; }
.request-receipt-actions, .request-receipt-navigation { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:28px 0 18px; }
.request-receipt-navigation { margin-top:20px; }
.request-receipt-feedback { min-height:1.7em; color:var(--muted); font-size:13px; }

/* The camera, nearby list and inline confirmation are one pickup chooser. */
.redesign-pickup-layout {
  grid-template-columns:minmax(0,1.3fr) minmax(200px,.7fr);
  grid-template-areas:"map search" "map list"; grid-template-rows:auto minmax(0,1fr); gap:12px 16px;
}
.pickup-address-search { grid-area:search; margin:0; }
.redesign-pickup-map-shell { grid-area:map; }
.redesign-pickup-layout .redesign-points { grid-area:list; max-height:360px; margin:0; }
.pickup-map-stage { position:relative; height:460px; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--soft); }
.pickup-map-stage .redesign-pickup-map { height:100%; border-radius:0; isolation:isolate; position:relative; z-index:0; }
.pickup-map-controls { position:absolute; z-index:1; top:12px; right:12px; display:grid; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:white; box-shadow:0 3px 10px rgb(22 36 54 / .1); }
.pickup-map-controls button { display:grid; place-items:center; width:44px; height:44px; border:0; padding:0; background:white; color:var(--navy); font:inherit; font-size:24px; font-weight:500; line-height:1; }
.pickup-map-controls button + button { border-top:1px solid var(--line); }
.pickup-map-controls button:hover:not(:disabled) { background:var(--soft); }
.pickup-map-controls button:disabled { opacity:.4; cursor:default; }
.redesign-pickup-map-shell.is-unavailable .pickup-map-controls { display:none; }
.pickup-confirmation {
  position:absolute; z-index:2; left:12px; top:12px; width:min(280px,calc(100% - 24px)); max-height:calc(100% - 24px);
  padding:18px; border:1px solid var(--line); border-radius:14px; background:white; color:var(--navy);
  box-shadow:0 8px 24px rgb(22 36 54 / .12); overflow:auto; animation:pickup-confirmation-in .16s ease-out;
}
.pickup-confirmation-heading { display:flex; align-items:center; gap:10px; }
.pickup-confirmation-heading h2 { flex:1; min-width:0; margin:0; font-size:17px; line-height:1.35; overflow-wrap:anywhere; }
.pickup-confirmation-icon { display:grid; place-items:center; flex:none; width:24px; height:32px; color:var(--orange); }
.pickup-confirmation-icon .icon { width:22px; height:22px; }
.pickup-confirmation-close { display:grid; place-items:center; flex:none; width:36px; height:36px; margin:-8px -8px -8px 0; padding:0; border:0; border-radius:50%; background:transparent; color:var(--muted); font-size:25px; line-height:1; }
.pickup-confirmation-close:hover { background:var(--soft); }
.pickup-confirmation > p { margin:16px 0 20px; color:var(--muted); font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.pickup-confirmation #candidate-hours { margin:-8px 0 20px; font-size:12px; }
.pickup-confirmation-actions { display:flex; flex-direction:column; align-items:stretch; }
.pickup-confirmation-actions > button { justify-content:center; min-height:46px; padding:12px 10px; font-size:13px; }
.pickup-empty { padding:12px 0; font-size:13px; line-height:1.65; color:var(--muted); }
.redesign-checkout-section .field-help:empty { display:none; }
.redesign-pickup-map-shell.is-unavailable .pickup-map-stage { height:auto; border:0; background:transparent; overflow:visible; }
.redesign-pickup-map-shell.is-unavailable .redesign-pickup-map { display:none; }
.redesign-pickup-map-shell.is-unavailable .pickup-confirmation { position:static; width:100%; max-height:none; box-shadow:none; }
.redesign-pickup-layout:has(> .redesign-pickup-map-shell[hidden]),
.redesign-pickup-layout:has(> .redesign-pickup-map-shell.is-unavailable) { grid-template-columns:1fr; grid-template-areas:"search" "map" "list"; }
@keyframes pickup-confirmation-in { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:800px) {
  .redesign-pickup-layout { grid-template-columns:1fr; grid-template-areas:"search" "map" "list"; }
  .pickup-map-stage { height:420px; }
  .redesign-pickup-layout .redesign-points { max-height:300px; }
}
@media(max-width:600px) {
  .pickup-confirmation { inset:auto 12px 12px; width:auto; max-height:72%; padding:16px; }
  .pickup-confirmation-heading h2 { font-size:16px; }
  .pickup-confirmation > p { margin:12px 0 16px; }
  .pickup-confirmation #candidate-hours { margin:-4px 0 16px; }
}

@media(max-width:1000px) {
  .redesign-commerce .cart-layout { grid-template-columns:minmax(0,1fr); }
  .redesign-commerce .cart-summary { position:static; }
}
@media(max-width:600px) {
  .redesign-commerce .cart-item { grid-template-columns:76px minmax(0,1fr); gap:12px 16px; }
  .redesign-commerce .cart-item > .commerce-product-photo { width:76px; height:76px; }
  .redesign-commerce .cart-item .cart-item-purchase { grid-column:1/-1; flex-direction:row; flex-wrap:wrap; align-items:center; gap:12px; }
  .redesign-commerce .cart-item [data-remove] { margin-left:auto; }
  .redesign-commerce .cart-line-price { font-size:15px; }
  .commerce-items-heading { font-size:20px; margin-bottom:20px; }
  .redesign-commerce .cart-summary { padding:22px; }
  .receipt-item { grid-template-columns:60px minmax(0,1fr); gap:10px 14px; }
  .receipt-item .commerce-product-photo { width:60px; height:60px; }
  .receipt-item > strong { grid-column:2; }
  .request-receipt-actions, .request-receipt-navigation { flex-direction:column; align-items:stretch; }
  .request-receipt-actions .btn, .request-receipt-navigation .btn { justify-content:center; }
  /* Keep price comparisons clear of the floating chat control while scrolling. */
  .redesign-commerce #delivery-refresh-proposal .redesign-totals { padding-inline-end:52px; }
  .redesign-commerce #delivery-refresh-proposal .redesign-totals > div > span { min-width:0; }
  .redesign-commerce #delivery-refresh-proposal .redesign-totals > div > strong { flex:none; white-space:nowrap; }
}
@media(prefers-reduced-motion:reduce) {
  .pickup-confirmation { animation:none; }
  .product-card [data-product-add].has-cart-quantity .add-cart { transition:none; }
}
