/* Product views and the bag share a calm surface, blue selection and clear actions. */
#product-dialog[open] {
  display:grid;
  grid-template-rows:52px minmax(0,1fr) auto;
  height:min(900px,92svh);
  max-height:92svh;
  padding:0;
  overflow:hidden;
  background:#fcfbf8;
  box-shadow:0 24px 90px #17233430;
  animation:product-arrive .22s cubic-bezier(.2,.7,.2,1);
}
.product-dialog-heading { display:flex; align-items:center; justify-content:space-between; padding:4px 18px 4px 28px; border-bottom:1px solid #e5e4de; background:#fcfbf8; }
.product-dialog-heading>span { font-size:12px; color:#58616c; }
.product-dialog-heading .close-button { position:static; margin:0; width:44px; height:44px; background:transparent; color:#242b36; }
#product-detail { overflow-y:auto; min-height:0; overscroll-behavior:contain; scrollbar-gutter:stable; }
.carry-config-image { border-radius:0; aspect-ratio:1.3; }
.carry-config-copy { padding:30px 32px; }
.carry-config-copy h2 { font-size:34px; line-height:1.14; letter-spacing:-1.1px; }
.carry-config-copy>.section-kicker { font-size:12px; margin-bottom:12px; color:#58616c; }
.carry-config-intro { font-size:14px; line-height:1.65; color:#58616c; margin-top:14px; }
.carry-fieldset { margin-top:26px; }
.carry-fieldset legend { font-size:14px; font-weight:600; margin-bottom:12px; color:#242b36; }
.carry-options { gap:10px; }
.carry-option { padding:15px 13px; min-height:78px; border-color:#d7dce2; border-radius:14px; transition:background .16s,border-color .16s; }
.carry-option strong { font-size:14px; color:#242b36; }
.carry-option small { font-size:12px; line-height:1.5; color:#58616c; }
.carry-option i { width:16px; height:16px; margin-top:2px; }
.carry-option:has(input:focus-visible) { outline:3px solid #536a8b; outline-offset:3px; }
.product-image-details { margin:0 24px; border-bottom:1px solid #e5e4de; }
.product-image-details summary { padding:14px 0; min-height:44px; font-size:12px; color:#58616c; cursor:pointer; }
.product-image-details .carry-image-note { padding:0; font-size:12px; line-height:1.6; }
.product-image-details .carry-image-links { padding:12px 0 18px; }
.product-image-details a { font-size:12px; min-height:44px; display:inline-flex; align-items:center; }
.carry-config-copy .carry-config-summary { background:transparent; border:0; border-top:1px solid #e0e3e7; border-radius:0; padding:22px 0 0; margin-top:28px; }
.carry-summary-head>strong { font-size:15px; color:#242b36; }
.carry-config-summary dl { margin:14px 0; gap:12px; }
.carry-config-summary dl>div { font-size:13px; grid-template-columns:64px 1fr; line-height:1.5; }
.carry-config-summary dt { color:#58616c; }
.carry-config-summary dd { color:#33435b; }
.carry-save-note { font-size:12px; line-height:1.6; color:#58616c; border:0; padding:0; }
.accessory-selection { margin:12px 0; font-size:13px; }
.accessory-fixed-option { margin-top:22px; padding:18px; border:1px solid #d7dce2; border-radius:14px; }
.accessory-fixed-option strong { font-size:14px; font-weight:500; }
.accessory-fixed-option p { font-size:12px; color:#58616c; line-height:1.6; margin-top:6px; }
.bottle-capacity { display:flex; align-items:center; gap:14px; margin:20px 0; }
.bottle-capacity strong { font-size:24px; font-weight:500; letter-spacing:-.6px; }
.bottle-capacity span { font-size:12px; color:#58616c; max-width:125px; line-height:1.5; }
#product-actions { display:grid; grid-template-columns:1fr auto; align-items:center; gap:6px 24px; padding:16px 28px; border-top:1px solid #dce1e6; background:#fcfbf8; }
#product-actions[hidden] { display:none; }
.product-action-price small { display:block; font-size:12px; color:#58616c; margin-bottom:4px; }
.product-action-price strong { font-size:18px; font-weight:600; letter-spacing:-.3px; }
.product-action-buttons { display:flex; align-items:center; gap:10px; }
.product-action-buttons .primary { min-height:48px; min-width:200px; padding:12px 22px; font-size:14px; border-radius:12px; background:#242b36; box-shadow:none; }
.product-bag-shortcut { height:48px; width:48px; border:1px solid #cbd4df; border-radius:12px; background:transparent; display:grid; place-items:center; }
.product-bag-shortcut svg { width:20px; height:20px; fill:none; stroke:#33435b; stroke-width:1.5; }
.product-action-status { grid-column:1/-1; font-size:12px; color:#334e77; line-height:1.5; }
.product-action-status:empty { display:none; }
.product-action-buttons .primary:disabled { opacity:.55; cursor:not-allowed; }
.product-edit-cancel { min-height:48px; padding:10px 12px; color:#58616c; background:transparent; font-size:13px; border-radius:10px; }
.product-edit-cancel:hover { background:#edf0f3; }
.cart-edit-options { display:flex; align-items:center; gap:8px; min-height:44px; padding:7px 0; color:#334e77; background:transparent; font-size:12px; font-weight:600; }
.cart-edit-options span { font-size:15px; }
.cart-edit-options+.cart-row-controls { margin-top:0; }

#cart-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; overflow:hidden; padding:0; width:480px; background:#fcfbf8; }
#cart-dialog .dialog-heading { position:static; padding:18px 24px 16px; border-bottom:1px solid #e5e4de; background:#fcfbf8; }
#cart-dialog .dialog-heading h2 { font-size:28px; line-height:1.15; letter-spacing:-.9px; }
#cart-dialog .close-button { width:44px; height:44px; background:transparent; }
.bag-scroll { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:0 24px; }
#cart-items { overflow:visible; min-height:0; }
.cart-row { display:grid; grid-template-columns:100px minmax(0,1fr); gap:18px; align-items:start; padding:22px 0; border:0; border-bottom:1px solid #e5e4de; }
.cart-row>.product-art { width:100px; height:110px; border-radius:14px; background-color:#e9e1d5; }
.cart-row h3 { font-size:16px; line-height:1.4; letter-spacing:-.25px; color:#242b36; margin:0; }
.cart-row-main { min-width:0; }
.cart-customization,.cart-bundle-items { display:block; color:#58616c; font-size:12px; line-height:1.5; margin:7px 0; }
.cart-row .cart-item-price { font-size:15px; font-weight:600; color:#242b36; margin:9px 0 0; }
.cart-row .cart-pending-price { color:#334e77; font-size:13px; }
.cart-item-price>small { display:inline; font-size:11px; color:#58616c; font-weight:400; margin-left:8px; }
.cart-row-controls { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:12px; }
.cart-row-controls .quantity { margin:0; border-color:#cdd3da; border-radius:10px; }
.cart-row-controls .quantity button { width:40px; height:44px; color:#242b36; font-size:20px; }
.cart-row-controls .quantity button:disabled { opacity:.35; cursor:not-allowed; }
.cart-row-controls .quantity span { min-width:30px; font-size:13px; }
.cart-row-controls .remove-item { min-height:44px; padding:0 9px; color:#58616c; font-size:12px; background:transparent; }
#cart-footer:empty { display:none; }
#cart-footer { padding:18px 24px 12px; border-top:1px solid #dce1e6; background:#fcfbf8; max-height:48svh; overflow-y:auto; }
#cart-footer .bag-subtotal { border:0; padding:0; margin:0 0 14px; display:flex; align-items:baseline; justify-content:space-between; gap:12px; font-size:14px; }
#cart-footer .bag-subtotal strong { font-size:23px; line-height:1.3; font-weight:600; letter-spacing:-.6px; }
#cart-footer .bag-subtotal strong.cart-pending-price { font-size:17px; letter-spacing:-.3px; }
#cart-footer .bag-savings { margin:0 0 8px; font-size:12px; color:#334e77; }
#cart-pending-note { border:0; background:transparent; padding:0; margin:0 0 14px; font-size:12px; line-height:1.5; color:#58616c; }
#cart-footer .primary { min-height:50px; background:#242b36; border-radius:12px; box-shadow:none; display:flex; justify-content:space-between; align-items:center; padding:14px 18px; font-size:14px; }
#cart-footer .cart-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding-top:8px; }
.bag-continue,.bag-details>summary { min-height:44px; padding:10px 0; cursor:pointer; font-size:12px; color:#58616c; background:transparent; }
.bag-continue { text-align:left; }
.bag-details>summary { text-align:right; }
.bag-details[open] { grid-column:1/-1; grid-row:2; }
.bag-details[open]>summary { text-align:left; }
.bag-details .bag-footnote { font-size:12px; line-height:1.6; color:#58616c; margin:0 0 12px; }
.bag-details .outline-button { font-size:12px; min-height:44px; width:100%; }
.bag-update { font-size:12px; line-height:1.6; padding:15px; background:#edf2f8; border:1px solid #d8e0ea; border-radius:12px; margin:16px 0; }
.bag-update[hidden] { display:none; }
.empty-bag { padding:70px 0 32px; text-align:center; }
.empty-bag>svg { display:block; margin:0 auto 24px; width:44px; height:44px; fill:none; stroke:#536a8b; stroke-width:1; }
.empty-bag h3 { font-size:27px; line-height:1.2; letter-spacing:-.8px; }
.empty-bag p { max-width:245px; margin:18px auto 24px; font-size:14px; color:#58616c; line-height:1.6; }
.empty-bag .primary { background:#242b36; border-radius:12px; min-height:48px; }
.product-dialog :is(button,a,summary):focus-visible,.cart-dialog :is(button,a,summary):focus-visible { outline:3px solid #536a8b; outline-offset:3px; }
.product-dialog .button:active,.cart-dialog .button:active { transform:scale(.985); }
@keyframes product-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }

@media(max-width:600px) {
  #product-dialog[open] { width:100%; max-width:100%; height:100svh; max-height:100svh; margin:0; border-radius:0; grid-template-rows:52px minmax(0,1fr) auto; }
  .product-dialog-heading { padding:4px 12px 4px 20px; }
  .carry-config-image { aspect-ratio:1.5; border-radius:0; }
  .carry-config-copy { padding:22px 20px 28px; }
  .carry-config-copy h2 { font-size:29px; letter-spacing:-.85px; padding-right:0; }
  .carry-config-intro { font-size:14px; line-height:1.6; }
  .carry-config-copy>.section-kicker { display:none; }
  .carry-fieldset { margin-top:24px; }
  .two-options { grid-template-columns:1fr 1fr; }
  .carry-option { padding:14px 11px; gap:8px; }
  .carry-option strong { font-size:13px; }
  .carry-option small { font-size:12px; }
  .product-image-details { margin:0 20px; }
  .product-image-details summary { font-size:12px; padding:12px 0; }
  .carry-config-copy .carry-config-summary { margin-top:24px; }
  .carry-config-summary dl>div { font-size:12px; }
  .accessory-base-preview summary { font-size:12px; min-height:44px; padding:12px 0; }
  .bottle-capacity { margin:16px 0 0; }
  #product-actions { padding:12px 16px max(12px,env(safe-area-inset-bottom)); gap:6px 12px; }
  .product-action-price small { font-size:10px; margin-bottom:3px; }
  .product-action-price strong { font-size:14px; letter-spacing:-.2px; white-space:nowrap; }
  .product-action-buttons { gap:8px; }
  .product-edit-cancel { padding:10px 4px; font-size:12px; }
  .product-action-buttons .primary { min-width:0; min-height:48px; padding:12px 15px; font-size:13px; }
  .product-bag-shortcut { width:44px; }
  .product-action-status { font-size:11px; }
  #cart-dialog[open] { width:100%; border-radius:0; height:100svh; max-height:100svh; }
  #cart-dialog .dialog-heading { padding:16px 16px 12px 20px; }
  .bag-scroll { padding:0 20px; }
  .cart-row { grid-template-columns:92px minmax(0,1fr); gap:14px; padding:20px 0; }
  .cart-row>.product-art { width:92px; height:104px; }
  .cart-row h3 { font-size:15px; }
  .cart-customization,.cart-bundle-items { font-size:12px; }
  .cart-row-controls { gap:4px; }
  .cart-row-controls .quantity button { width:34px; }
  .cart-row-controls .quantity span { min-width:25px; }
  .cart-row-controls .remove-item { padding:0 6px; }
  #cart-footer { padding:16px 20px max(8px,env(safe-area-inset-bottom)); max-height:45svh; }
  #cart-footer .bag-subtotal strong { font-size:21px; }
  #cart-footer .bag-subtotal strong.cart-pending-price { font-size:16px; }
  #cart-footer .bag-subtotal { font-size:13px; margin-bottom:12px; }
  #cart-pending-note { margin-bottom:12px; }
  .product-info .product-name { font-size:14px; line-height:1.4; }
  .product-info>small { font-size:12px; line-height:1.5; }
  .product-details-link { min-height:44px; font-size:12px; align-items:center; }
}
@media(prefers-reduced-motion:reduce) {
  #product-dialog[open],#cart-dialog[open] { animation:none; }
  .carry-option { transition:none; }
  .product-dialog .button:active,.cart-dialog .button:active { transform:none; }
}
