.shopping-shell{max-width:880px;margin:2rem auto;padding:0 1rem 3rem;font:1rem/1.5 system-ui,sans-serif;color:#172433;background:#fff}
body:has(.shopping-shell){margin:0;background:#fff;color:#172433}
.shopping-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.shopping-heading>*{min-width:0;max-width:100%;overflow-wrap:anywhere}
.shopping-line{display:flex;gap:1rem;justify-content:space-between;align-items:center;border:1px solid #66788a;border-radius:10px;padding:1rem;margin:1rem 0}
.shopping-line h2,.shopping-line h3{font-size:1.1rem;margin:0;overflow-wrap:anywhere}
.shopping-shell a{color:#173b69;text-decoration:underline;text-underline-offset:.15em}
.shopping-shell a:visited{color:#394574}.shopping-shell a:hover{color:#07172b}
.shopping-shell button:not(.theme-toggle),.shopping-shell .shopping-primary{display:inline-block;font:inherit;font-weight:650;min-height:44px;padding:.65rem 1rem;border:2px solid #173b69;border-radius:7px;background:#fff;color:#173b69;cursor:pointer}
.shopping-shell .shopping-primary{background:#173b69;color:#fff;text-decoration:none}
.shopping-shell .shopping-primary:hover,.shopping-shell .shopping-primary:visited{background:#173b69;color:#fff}
.shopping-shell :focus-visible{outline:3px solid #173b69;outline-offset:3px}
.shopping-notice{border:2px solid #66788a;border-left-width:6px;padding:.8rem;overflow-wrap:anywhere}
.shopping-totals{display:grid;grid-template-columns:1fr auto;gap:.6rem 1rem;padding:1rem 0;border-block:2px solid #66788a}.shopping-totals dd{margin:0;text-align:right}
.shopping-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.4rem}
html:not(.light) .shopping-shell,html:not(.light) body:has(.shopping-shell){background:#101923;color:#f5f7fa}
html:not(.light) .shopping-shell a,html:not(.light) .shopping-shell a:visited{color:#c5dcff}
html:not(.light) .shopping-shell a:hover{color:#fff}
html:not(.light) .shopping-shell button:not(.theme-toggle),html:not(.light) .shopping-shell .shopping-primary{background:#e4eeff;color:#132b4b;border-color:#c5dcff}
html:not(.light) .shopping-shell .shopping-primary:hover,html:not(.light) .shopping-shell .shopping-primary:visited{background:#e4eeff;color:#132b4b}
html:not(.light) .shopping-shell :focus-visible{outline-color:#c5dcff}
@media(max-width:520px){.shopping-line{align-items:stretch;flex-direction:column}.shopping-totals{grid-template-columns:1fr}.shopping-totals dd{text-align:left;margin:0 0 .6rem}.shopping-heading{align-items:flex-start}}

.shopping-actions a{display:inline-flex;align-items:center;min-height:44px}
.shopping-line h2 a,.shopping-line h3 a{display:block;min-height:44px;padding:.3rem 0}

.shopping-photo{flex:0 0 112px;display:block}.shopping-photo img{display:block;width:112px;height:112px;object-fit:contain;background:#fff;color:#172433;border:1px solid #66788a;border-radius:6px}.shopping-item{flex:1;min-width:0}
@media(max-width:520px){.shopping-photo{flex-basis:auto}}
.shopping-group{margin-block:2rem;padding-block:1rem;border-top:2px solid #66788a}
.shopping-group>h2{overflow-wrap:anywhere}
.shopping-description{white-space:pre-line;overflow-wrap:anywhere}
.cart-purchase{margin:1rem 0;padding:.8rem;border:1px solid #66788a;border-radius:8px;background:#fff;color:#172433;font:1rem/1.5 system-ui,sans-serif;min-width:0;max-width:100%;box-sizing:border-box}
.cart-purchase[data-cart-watch]{display:none}.bh-cart-ready .cart-purchase[data-cart-watch]{display:block}
.cart-purchase-actions{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}
.cart-purchase label{color:inherit;font-weight:650}.cart-purchase-unit{font-weight:400}
.cart-purchase select,.cart-purchase button{font:inherit;min-height:44px;padding:.55rem .7rem;border:2px solid #173b69;border-radius:6px;background:#fff;color:#173b69}
.cart-purchase select,.shopping-line-actions select{height:44px;height:max(44px,2.75rem);box-sizing:border-box;max-width:100%;min-width:0}
.cart-purchase button{cursor:pointer;font-weight:650}.cart-purchase button[type="submit"]{background:#173b69;color:#fff}
.cart-purchase button:hover{background:#e4eeff;color:#132b4b}.cart-purchase button[type="submit"]:hover{background:#102b4e;color:#fff}
.cart-purchase :focus-visible{outline:3px solid #173b69;outline-offset:3px}
.cart-purchase-help,.cart-purchase-status{margin:.6rem 0 0;color:inherit;font-size:.88rem}.cart-purchase-status:empty{display:none}
.cart-purchase button:disabled{cursor:wait;opacity:.75}
html:not(.light) .cart-purchase{background:#101923;color:#f5f7fa}
html:not(.light) .cart-purchase select,html:not(.light) .cart-purchase button{background:#e4eeff;color:#132b4b;border-color:#c5dcff}
html:not(.light) .cart-purchase button:hover{background:#fff;color:#132b4b}
html:not(.light) .cart-purchase :focus-visible{outline-color:#c5dcff}

/* Native quantity controls and spacing remain legible on Safari 13.1.2. */
body.shopping-page{margin:0;background:#fff;color:#172433}
html:not(.light) body.shopping-page{background:#101923;color:#f5f7fa}
.shopping-shell :focus,.cart-purchase :focus{outline:3px solid #173b69;outline-offset:3px}
html:not(.light) .shopping-shell :focus,html:not(.light) .cart-purchase :focus{outline-color:#c5dcff}
.shopping-heading,.shopping-line,.shopping-actions,.cart-purchase-actions{gap:0}
.shopping-heading>*+*{margin-left:1rem}
.shopping-line>*+*{margin-left:1rem}
.shopping-line>div{min-width:0}
.shopping-actions>*{margin-right:1rem;margin-bottom:.65rem}
.cart-purchase-actions>*{margin-right:.65rem;margin-bottom:.4rem;min-width:0;max-width:calc(100% - .65rem);box-sizing:border-box}
.shopping-line-actions form+form{margin-top:.65rem}
.shopping-line-actions label{display:block;font-weight:650}
.shopping-line-actions select,.shopping-line-actions input[type="number"],.cart-purchase input[type="number"]{box-sizing:border-box;max-width:100%;min-width:0;min-height:44px;padding:.55rem .7rem;border:2px solid #173b69;border-radius:6px;background:#fff;color:#173b69;font:inherit}
.shopping-line-actions input[type="number"],.cart-purchase input[type="number"]{width:7rem}
.shopping-line-actions select{margin-bottom:.5rem}
.shopping-line-actions p{max-width:28rem;font-size:.88rem}
html:not(.light) .shopping-line-actions select,html:not(.light) .shopping-line-actions input[type="number"],html:not(.light) .cart-purchase input[type="number"]{background:#e4eeff;color:#132b4b;border-color:#c5dcff}
@media(max-width:520px){.shopping-line>*+*{margin-left:0;margin-top:1rem}.shopping-line-actions select{width:100%}}
/* A narrow card must retain the full native 10+ field at enlarged text sizes.
   Stack controls rather than clipping the form or its instructional labels. */
@media(max-width:520px){.cart-purchase-actions{flex-direction:column;align-items:stretch}.cart-purchase-actions>*{margin-right:0;max-width:100%}}

/* Saved-cart presentation only: review and invoice layouts keep their rules. */
.shopping-cart .shopping-intro{max-width:66ch}
.shopping-cart .shopping-continue{display:inline-flex;align-items:center;min-height:44px;font-weight:650}
.shopping-cart .shopping-line{align-items:flex-start}
.shopping-cart .shopping-photo{margin-top:.3rem}
.shopping-cart .shopping-photo-empty{box-sizing:border-box;width:112px;height:112px;display:flex;align-items:center;justify-content:center;padding:.6rem;text-align:center;border:1px dashed #66788a;border-radius:6px;background:#f0f4f8;color:#172433;font-size:.88rem}
.shopping-cart .shopping-item p{margin:.45rem 0}
.shopping-cart .shopping-line-actions{flex:0 0 220px}
.shopping-cart .shopping-line-actions button{width:100%}
.shopping-cart .shopping-line-subtotal{display:flex;justify-content:space-between;flex-wrap:wrap;margin-top:.8rem;padding-top:.6rem;border-top:1px solid #66788a}
.shopping-cart .shopping-line-subtotal strong{margin-left:.5rem;white-space:nowrap}
.shopping-cart .shopping-excluded-label{font-weight:650}
.shopping-cart .shopping-line-excluded{border-style:dashed}
.shopping-cart .shopping-cart-summary{margin-left:auto;max-width:30rem;padding:1rem;border:1px solid #66788a;border-radius:10px;background:#f0f4f8;color:#172433}
.shopping-cart .shopping-totals{grid-template-columns:minmax(0,1fr) auto;margin:0;padding:0;border:0;font-size:1.1rem}
.shopping-cart .shopping-totals dt span{display:block;font-size:.9rem;font-weight:400}
.shopping-cart .shopping-totals dd{margin:0;text-align:right;white-space:nowrap}
.shopping-cart .shopping-cart-summary .shopping-primary{box-sizing:border-box;width:100%;text-align:center}
html:not(.light) .shopping-cart .shopping-photo-empty,html:not(.light) .shopping-cart .shopping-cart-summary{background:#1b2c3e;color:#f5f7fa}
@media(max-width:700px){
  .shopping-cart .shopping-line{display:grid;grid-template-columns:80px minmax(0,1fr);column-gap:.8rem;row-gap:.8rem}
  .shopping-cart .shopping-line>*+*{margin:0}
  .shopping-cart .shopping-photo,.shopping-cart .shopping-photo img,.shopping-cart .shopping-photo-empty{width:80px;height:80px}
  .shopping-cart .shopping-photo-empty{font-size:.8rem}
  .shopping-cart .shopping-line-actions{grid-column:1 / -1;width:100%;box-sizing:border-box;border-top:1px solid #66788a;padding-top:.8rem}
  .shopping-cart .shopping-line-unavailable .shopping-item{grid-column:1 / -1}
  .shopping-cart .shopping-line-actions p{max-width:none}
  .shopping-cart .shopping-cart-summary{max-width:none}
}
@media(max-width:360px){.shopping-cart .shopping-line{grid-template-columns:1fr}.shopping-cart .shopping-photo{margin-bottom:.3rem}}
