.shop-dialog{width:min(740px,calc(100% - 28px));max-height:calc(100dvh - 36px);overflow:auto;border:3px solid var(--lime);padding:28px;background:#fff;color:var(--ink);font-family:var(--sans)}
.shop-dialog::backdrop{background:#05152ada}.shop-dialog h2{font:700 clamp(25px,4vw,34px)/1.5 var(--sans);letter-spacing:-.03em;margin:18px 0}.shop-dialog h3{font:700 18px/1.6 var(--sans);margin:0;overflow-wrap:anywhere}.shop-kicker{font:700 15px var(--condensed);letter-spacing:.15em}.shop-policy,.shop-status,.shop-availability,.shop-payment-notice{font-size:15px;line-height:1.8;overflow-wrap:anywhere}.shop-policy,.shop-payment-notice{padding:15px;background:#eef3f7}.shop-dialog button{min-height:44px;padding:10px 16px;border:1px solid #9db1c5;background:white;color:var(--ink);font:700 16px/1.5 var(--sans);cursor:pointer}.shop-dialog .shop-close{display:block;margin-left:auto}.shop-dialog .shop-primary{border-color:var(--lime);background:var(--lime);margin-top:14px}.shop-dialog button:disabled{opacity:.55;cursor:not-allowed}.shop-dialog :focus-visible{outline:3px solid var(--orange);outline-offset:3px}.shop-field{display:grid;gap:6px;font:600 15px/1.5 var(--sans);min-width:0}.shop-field input,.shop-field select{width:100%;min-height:44px;padding:8px 12px;font:400 16px/1.5 var(--sans);border:1px solid #93a6b8;background:white;color:var(--ink)}.shop-variant-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:22px 0}.shop-variant-form h3,.shop-availability,.shop-variant-form>.shop-primary{grid-column:1/-1}.shop-items{display:grid;gap:14px}.shop-line{display:grid;grid-template-columns:minmax(0,1fr) 86px auto;align-items:center;gap:16px;border-bottom:1px solid #cbd7df;padding:18px 0}.shop-line p{margin:6px 0;font-size:15px;line-height:1.8}.shop-total{display:grid;grid-template-columns:1fr auto;gap:12px;font-size:18px;line-height:1.8;margin:24px 0}.shop-total dd{margin:0;font-weight:700}.shop-total dd:last-child{font-size:26px}.shop-empty{padding:28px 0;font-size:17px;line-height:1.8}
@media(max-width:520px){.shop-dialog{padding:18px}.shop-line{grid-template-columns:minmax(0,1fr) 78px}.shop-line>button{grid-column:1/-1;justify-self:end}.shop-variant-form{grid-template-columns:1fr 1fr}.shop-variant-form .shop-field:last-of-type{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.shop-dialog{scroll-behavior:auto}}

/* Checkout remains an explicit local fixture, never a credit-card collection form. */
.shop-dialog [hidden]{display:none!important}
.shop-dialog *, .shop-dialog *::before, .shop-dialog *::after{box-sizing:border-box}
.shop-checkout-form{display:grid;gap:18px;border-top:1px solid #cbd7df;padding-top:24px;margin-top:24px;min-width:0}
.shop-customer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0;margin:0;padding:18px;border:1px solid #c0cfdb;border-radius:6px;background:#f7faff}
.shop-customer-fields legend{padding:0 7px;font-size:17px;font-weight:750;line-height:1.6}
.shop-customer-fields .shop-field:last-child{grid-column:1/-1}
.shop-checkout-boundary,.shop-checkout-payment,.shop-payment-closed{margin:0;padding:13px 15px;border-left:3px solid #a5c900;background:#f0f8d5;color:#324b28;font-size:14px;line-height:1.85;overflow-wrap:anywhere}
.shop-checkout-payment{border-color:#315e9e;background:#eaf1fb;color:#244c80}
.shop-payment-closed{border-color:#e86730;background:#fff0e6;color:#7c3e20;margin-top:14px}
.shop-consent{display:flex;align-items:flex-start;gap:12px;font-size:15px;font-weight:650;line-height:1.8}
.shop-consent input{flex:0 0 21px;width:21px;height:21px;margin:4px 0 0;accent-color:#315e9e}
.shop-privacy-link,.shop-status-link{width:fit-content;max-width:100%;padding:4px 0;color:#244f88;font-size:15px;font-weight:750;line-height:1.8;text-underline-offset:4px;overflow-wrap:anywhere}
.shop-checkout-review,.shop-checkout-recovery,.shop-order-receipt{min-width:0;border:2px solid #c6df46;border-radius:7px;padding:20px;margin-top:22px;background:#fbfef0;overflow-wrap:anywhere}
.shop-checkout-review>button,.shop-checkout-recovery>button,.shop-recheck-warning>button{margin-right:10px;margin-top:14px}
.shop-checkout-review .shop-checkout-boundary,.shop-checkout-recovery .shop-checkout-boundary,.shop-order-receipt .shop-checkout-boundary{margin-top:16px}
.shop-reviewed-lines{display:grid;gap:10px;padding-left:21px;margin:17px 0;font-size:15px;line-height:1.85;overflow-wrap:anywhere}
.shop-bundle-detail{padding:10px;background:#eff6d2;color:#344e20;font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.shop-contact-summary{display:grid;grid-template-columns:88px minmax(0,1fr);gap:9px 14px;padding:16px 0;border-top:1px solid #d0dda4;font-size:14px;line-height:1.8}
.shop-contact-summary dt{font-weight:750;color:#52657a}
.shop-contact-summary dd{min-width:0;margin:0;overflow-wrap:anywhere}
.shop-recheck-warning{margin-top:16px;padding:14px;border:1px solid #e4a276;border-radius:6px;background:#fff0e7;color:#704126;font-size:14px;line-height:1.85}
.shop-recheck-warning p{margin:0}
.shop-order-id,.shop-order-deadline{font-size:15px;font-weight:750;line-height:1.8;overflow-wrap:anywhere}
.shop-reservation-notice,.shop-reservation-expired{padding:12px;border-left:3px solid #d5812a;background:#fff4e6;color:#754620;font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.shop-order-receipt.is-expired{border-color:#d59b65;background:#fffaf4}
.shop-order-receipt>.shop-field{margin:18px 0 10px}
.shop-order-receipt .shop-field input{min-width:0;max-width:100%;font-family:monospace;font-size:14px;background:#fff}
.shop-status-link{display:inline-block;margin:12px 0}
.shop-shortage{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:14px;margin:12px 0;padding:14px;border:1px solid #bed939;border-radius:9px;background:#f2f9d6;color:#244525;min-width:0}
.shop-shortage__champion{display:block;width:76px;height:76px;object-fit:contain}
.shop-shortage strong{font-size:14px;line-height:1.8}
.shop-shortage p{margin:5px 0;font-size:15px;line-height:1.85;overflow-wrap:anywhere}
.shop-shortage small{display:block;color:#52657a;font-size:12px;line-height:1.75}
.shop-stock-unknown{color:#52657a;font-size:14px;line-height:1.8}
@media(max-width:520px){
  .shop-customer-fields{grid-template-columns:minmax(0,1fr);padding:14px}
  .shop-checkout-review,.shop-checkout-recovery,.shop-order-receipt{padding:15px}
  .shop-contact-summary{grid-template-columns:minmax(0,1fr);gap:4px}
  .shop-contact-summary dd{margin-bottom:8px}
  .shop-checkout-review>button,.shop-checkout-recovery>button,.shop-recheck-warning>button{display:block;width:100%;margin-right:0}
  .shop-shortage{grid-template-columns:58px minmax(0,1fr);gap:9px;padding:11px}
  .shop-shortage__champion{width:58px;height:58px}
}

/* One clear shopping journey; amounts remain pending until the server verifies them. */
.shop-dialog{box-sizing:border-box;width:min(880px,calc(100% - 28px));min-width:0;border-radius:8px}
.shop-dialog .shop-journey{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin:18px 0 16px}
.shop-journey-step{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:7px;min-width:0;padding:10px 8px;border-bottom:3px solid #cbd7df;background:#f1f5f8;color:#60758a;font-size:14px;font-weight:700;line-height:1.5}
.shop-journey-number{display:grid;place-items:center;width:26px;height:26px;border:1px solid #b4c4d0;border-radius:50%;background:#fff;font-variant-numeric:tabular-nums}
.shop-journey-label{overflow-wrap:anywhere}
.shop-journey-step.is-complete{border-color:#80a024;color:#3e571e;background:#f3f8e7}
.shop-journey-step.is-current{border-color:#c6ef10;background:#eafb9a;color:#102b46}
.shop-journey-step.is-current .shop-journey-number{border-color:#102b46;background:#102b46;color:#fff}
.shop-dialog .shop-policy{margin:12px 0 20px;padding:11px 14px;font-size:14px}
.shop-selected-product,.shop-line-product{display:grid;grid-template-columns:78px minmax(0,1fr);gap:8px 14px;align-items:start;min-width:0}
.shop-selected-product{grid-column:1/-1;align-items:center}
.shop-product-photo{display:grid;place-items:center;width:78px;aspect-ratio:1;overflow:hidden;border:1px solid #d2dce5;border-radius:5px;background:#f0f4f7}
.shop-product-image{display:block;width:100%;height:100%;max-width:100%;object-fit:contain}
.shop-photo-placeholder{padding:7px;color:#60758a;font-size:14px;line-height:1.45;text-align:center;overflow-wrap:anywhere}
.shop-line-details,.shop-line-product>.shop-stock-state{min-width:0}
.shop-line-product>.shop-stock-state{grid-column:1/-1}
.shop-line-product>.shop-stock-state:empty{display:none}
.shop-dialog .shop-line-code{margin:0 0 3px;color:#56748f;font-size:14px;font-weight:750;line-height:1.5;overflow-wrap:anywhere}
.shop-dialog .shop-items-heading{margin:20px 0 0;font-size:17px}
.shop-items{gap:0}
.shop-line{grid-template-columns:minmax(0,1fr) 244px;align-items:start;gap:10px 18px;padding:18px 0;min-width:0}
.shop-line-product{grid-row:1/3}
.shop-line h3{font-size:17px;line-height:1.6}
.shop-line .shop-line-specs,.shop-line .shop-line-price,.shop-line .shop-line-stock{margin:4px 0;font-size:14px;line-height:1.65;overflow-wrap:anywhere}
.shop-line .shop-line-stock{color:#526d83}
.shop-line-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;min-width:0}
.shop-quantity-control{display:grid;grid-template-columns:44px 58px 44px;align-items:end;gap:4px;min-width:0}
.shop-quantity-control .shop-field{gap:3px;text-align:center;font-size:14px}
.shop-quantity-control input{min-width:0;min-height:44px;padding:7px 4px;text-align:center;font-size:16px;font-variant-numeric:tabular-nums}
.shop-dialog .shop-quantity-step{width:44px;min-width:44px;min-height:44px;padding:6px;font-size:20px;line-height:1.5}
.shop-dialog .shop-remove{min-height:44px;padding:9px 12px;border-color:#c4a6a2;color:#9a3024;font-size:14px;white-space:normal}
.shop-line .shop-line-subtotal{margin:0;text-align:right;font-size:16px;font-weight:750;line-height:1.7;color:#60758a;overflow-wrap:anywhere}
.shop-line .shop-line-subtotal.is-verified{color:#102b46}
.shop-amounts-pending{margin:20px 0;padding:16px;border:1px dashed #9bb0c3;border-radius:6px;background:#f6f9fb}
.shop-pending-amounts{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;margin:12px 0;font-size:15px;line-height:1.7}
.shop-pending-amounts dd{margin:0;color:#60758a;font-weight:700}
.shop-amounts-note,.shop-shipping-progress,.shop-delivery-policy{font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.shop-amounts-note{margin:10px 0 0;color:#526d83}
.shop-shipping-progress{margin:-10px 0 20px;padding:10px 12px;border-left:3px solid #c6ef10;background:#f4f9df;color:#3c5524}
.shop-delivery-policy{color:#526d83}
.shop-continue{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;padding:9px 14px;border:1px solid #7895b2;color:#244f88;font-size:15px;font-weight:750;line-height:1.6;text-align:center;text-decoration:none;overflow-wrap:anywhere}
.shop-empty{padding:22px 0}
.shop-empty p{margin:10px 0 18px;font-size:15px;line-height:1.8}
.shop-empty .shop-continue{border-color:#c6ef10;background:#c6ef10;color:#102b46}
@media(max-width:700px){
  .shop-line{grid-template-columns:minmax(0,1fr);gap:10px}
  .shop-line-product{grid-row:auto}
  .shop-line-controls{justify-content:space-between}
  .shop-line .shop-line-subtotal{text-align:left;padding:8px 10px;background:#f1f5f8;border-radius:4px}
}
@media(max-width:520px){
  .shop-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:14px}
  .shop-dialog .shop-journey{gap:4px;margin:14px 0}
  .shop-journey-step{grid-template-columns:minmax(0,1fr);justify-items:center;align-content:start;gap:5px;padding:8px 3px;text-align:center}
  .shop-dialog .shop-policy{padding:10px;margin-bottom:16px}
  .shop-selected-product,.shop-line-product{grid-template-columns:64px minmax(0,1fr);gap:7px 10px}
  .shop-product-photo{width:64px}
  .shop-line{padding:14px 0}
  .shop-amounts-pending{padding:12px}
  .shop-variant-form{gap:12px;padding:16px 0}
  .shop-total{gap:8px;font-size:16px}
  .shop-total dd:last-child{font-size:23px}
  .shop-continue{width:100%}
  .shop-consent{min-height:44px}
}
.shop-custom-requests{border-top:3px solid #173c67;margin-top:24px;padding-top:18px}.shop-custom-request{display:grid;grid-template-columns:104px 1fr;gap:15px;border:1px solid #c4d3e2;padding:14px;margin:12px 0;background:#fff}.shop-custom-thumbnail{width:104px;height:140px;object-fit:contain;background:#fff}.shop-custom-request>div{min-width:0}.shop-custom-request h4{margin:0 0 8px}.shop-custom-request p{line-height:1.6;margin:5px 0}.shop-custom-patterns,.shop-custom-stale{font-weight:800;color:#b5441b}.shop-custom-edit{display:block;margin:10px 0;color:#173c67;font-weight:800}.shop-custom-boundary{display:block;color:#58728a;line-height:1.6}.shop-custom-clear{margin-top:10px}@media(max-width:480px){.shop-custom-request{grid-template-columns:76px 1fr;padding:10px;gap:10px}.shop-custom-thumbnail{width:76px;height:110px}.shop-custom-patterns{font-size:.92rem}}
.shop-cart-privacy-note{font-size:13px;line-height:1.7;color:#516a80;margin:12px 0}.shop-cart-privacy-note a{color:#173c67;text-underline-offset:3px}

/* One mounted panel per step: going back keeps page-only inputs, never PII storage. */
.shop-dialog-header{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:10px 0;background:#fff;border-bottom:1px solid #d2dce5}
.shop-dialog-header .shop-close{grid-column:2;grid-row:1/3;align-self:start;margin:0;font-size:14px;padding:8px 12px}
.shop-dialog-header .shop-kicker{grid-column:1;margin:0;font-size:14px;line-height:1.5}
.shop-dialog-header h2{grid-column:1;margin:0;font-size:23px;line-height:1.4}
.shop-dialog-header .shop-journey{grid-column:1/-1;margin:10px 0 0}
.shop-dialog-header .shop-journey-step{padding:7px 8px}
.shop-dialog .shop-status{margin:10px 0;padding:8px 11px;border-left:3px solid #315e9e;background:#f0f5fa;font-size:14px;line-height:1.65}
.shop-dialog .shop-status:empty,.shop-custom-collection:empty{display:none}
.shop-step-panel{min-width:0;margin-top:14px;scroll-margin-top:140px}
.shop-step-items .shop-items-heading{margin-top:0}
.shop-step-delivery .shop-checkout-form{border:0;margin:0;padding:0;gap:12px}
.shop-step-context{margin:0;color:#315e70;font-size:15px;font-weight:750;line-height:1.6}
.shop-step-delivery .shop-customer-fields{padding:12px;gap:10px 12px}
.shop-stage-actions{display:flex;justify-content:flex-end;align-items:stretch;flex-wrap:wrap;gap:8px;margin-top:10px}
.shop-dialog .shop-stage-actions>button{margin:0;font-size:14px;min-height:44px}
.shop-stage-actions>.shop-primary{flex:1 1 230px}
.shop-checkout-review.shop-step-panel{margin-top:14px;background:#fff;padding:18px}
.shop-reviewed-lines{list-style:none;padding:0;margin:14px 0;gap:10px}
.shop-reviewed-line{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:start;gap:12px;padding:10px 0;border-bottom:1px solid #d5dfdf;min-width:0}
.shop-reviewed-line>div{min-width:0}.shop-reviewed-line p{margin:0;font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.shop-reviewed-line .shop-reviewed-pattern{margin-top:4px;color:#526d83}
.shop-checkout-review .shop-total{font-size:16px;gap:7px;margin:16px 0}
.shop-checkout-review .shop-contact-summary{gap:6px 12px;padding:12px 0}
@media(max-width:520px){
  .shop-dialog-header{padding:7px 0;gap:3px 8px}
  .shop-dialog-header h2{font-size:20px}.shop-dialog-header .shop-journey{margin-top:8px}
  .shop-dialog-header .shop-journey-step{grid-template-columns:22px minmax(0,1fr);justify-items:start;align-items:center;gap:4px;padding:7px 3px;text-align:left}
  .shop-journey-number{width:22px;height:22px}.shop-journey-label{font-size:14px;line-height:1.4}
  .shop-step-delivery .shop-customer-fields{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:9px}
  .shop-checkout-review.shop-step-panel{padding:12px}
  .shop-reviewed-line{grid-template-columns:64px minmax(0,1fr);gap:9px}
  .shop-stage-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .shop-stage-actions>.shop-primary{grid-column:1/-1}.shop-stage-actions>button{width:100%}
}
