/* Compact, neutral commerce controls within the native Bricks drawer. */
#cart-dialog { padding:0; width:min(600px,100%); max-width:100%; overflow:hidden; }
#cart-dialog[open] { display:flex; flex-direction:column; }
#cart-dialog .dialog__head { flex:none; margin:0; padding:28px 30px 24px; border-bottom:1px solid var(--line,#d9d9d6); }
#cart-dialog .dialog__head h2 { font-size:28px; line-height:1.15; }
#cart-dialog .duke-cart-content { min-height:0; width:100%; flex:1; overflow:hidden; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#b2b2af transparent; }
.duke-cart { display:flex; flex-direction:column; height:100%; min-height:0; color:var(--ink,#171717); font-size:16px; font-variant-numeric:tabular-nums; }
.duke-cart button,.duke-cart select,.duke-cart input { font:inherit; color:inherit; }
.duke-cart button { cursor:pointer; }
.duke-cart :is(button,select,input,a):focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.duke-cart button:disabled,.duke-cart select:disabled { opacity:.4; cursor:default; }
.duke-cart [hidden] { display:none!important; }
.duke-cart-status { padding:0 30px; font-size:14px; line-height:1.4; margin:0; }
.duke-cart-status:not(:empty) { padding-block:14px; border-bottom:1px solid var(--line,#d9d9d6); }
.duke-cart-scroll { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#b2b2af transparent; }
.duke-cart-lines { padding-inline:30px; }
.duke-cart-line { position:relative; display:grid; grid-template-columns:100px minmax(0,1fr); gap:20px; padding-block:24px; border-bottom:1px solid var(--line,#d9d9d6); }
.duke-cart-line__image { display:block; align-self:start; background:#f4f4f2; }
.duke-cart-line__image img { width:100%; height:auto; aspect-ratio:3/4; object-fit:contain; mix-blend-mode:multiply; }
.duke-cart-line__body { min-width:0; padding-right:18px; }
.duke-cart-line__name { display:block; margin-bottom:10px; font-size:18px; font-weight:500; line-height:1.35; overflow-wrap:anywhere; }
.duke-cart-variant { display:block; }
#cart-dialog .duke-cart-variant select { color:#171717; padding:5px 24px 5px 0; border:0; border-bottom:1px solid #a0a09d; max-width:100%; width:auto; min-height:36px; background-color:transparent; font-size:14px; text-overflow:ellipsis; cursor:pointer; }
.duke-cart-line__variant,.duke-cart-line__stock { font-size:14px; color:#646464; margin:0; }
.duke-cart-line__bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:18px; flex-wrap:wrap; }
.duke-cart-quantity { display:flex; align-items:center; gap:0; border:1px solid #d9d9d6; border-radius:999px; }
.duke-cart-quantity button { display:grid; place-items:center; border:0; background:transparent; width:34px; height:34px; padding:0; }
.duke-cart-quantity svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.5; }
.duke-cart-quantity span { min-width:22px; text-align:center; font-size:14px; }
.duke-cart-line__price { white-space:nowrap; font-size:15px; }
.duke-cart-remove { position:absolute; top:20px; right:-8px; display:grid; place-items:center; width:32px; height:32px; border:0; padding:0; background:none; }
.duke-cart-remove svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.5; }
.duke-cart-suggestions { padding:26px 30px; background:#f4f4f2; }
.duke-cart-suggestions h3 { margin:0 0 20px; font-size:18px; font-weight:500; line-height:1.3; }
.duke-cart-suggestions__list { display:grid; gap:18px; }
.duke-cart-suggestion { display:flex; align-items:center; gap:18px; font-size:14px; line-height:1.35; }
.duke-cart-suggestion img { flex:none; width:72px; height:90px; object-fit:contain; mix-blend-mode:multiply; }
.duke-cart-suggestion>span { min-width:0; display:grid; gap:5px; }
.duke-cart-suggestion strong { font-weight:500; }
.duke-cart-suggestion__action { display:flex; align-items:center; gap:8px; margin-top:4px; text-decoration:underline; text-underline-offset:3px; }
.duke-cart-suggestion__action svg { width:16px; height:16px; fill:none; stroke:currentColor; }
.duke-cart-summary { flex:none; border-top:1px solid var(--line,#d9d9d6); padding:24px 30px 20px; }
.duke-cart-coupon { border-bottom:1px solid var(--line,#d9d9d6); margin-bottom:22px; }
.duke-cart-coupon summary { cursor:pointer; display:flex; align-items:center; justify-content:space-between; list-style:none; min-height:40px; padding-bottom:14px; font-size:14px; }
.duke-cart-coupon summary::-webkit-details-marker { display:none; }
.duke-cart-coupon summary svg { width:18px; height:18px; fill:none; stroke:currentColor; transition:transform 240ms ease; }
.duke-cart-coupon[open] summary svg { transform:rotate(45deg); }
.duke-cart-coupon form { display:flex; gap:12px; padding-bottom:20px; }
.duke-cart-coupon input { width:100%; min-width:0; min-height:44px; border:0; border-bottom:1px solid #8b8b87; background:transparent; border-radius:0; padding:8px 0; }
.duke-cart-coupon input::placeholder { color:#646464; }
.duke-cart-coupon form button { border:1px solid #171717; border-radius:999px; background:white; padding:9px 18px; }
.duke-cart-coupon-applied { display:flex; justify-content:space-between; font-size:14px; margin-bottom:12px; }
.duke-cart-coupon-applied button { padding:0; border:0; background:none; text-decoration:underline; text-underline-offset:3px; }
.duke-cart-totals { display:grid; gap:10px; margin:0 0 24px; font-size:14px; line-height:1.4; }
.duke-cart-totals>div { display:flex; justify-content:space-between; align-items:baseline; gap:16px; }
.duke-cart-totals dt { font-weight:400; }
.duke-cart-totals dd { margin:0; text-align:right; }
.duke-cart-totals .duke-cart-total { margin-top:10px; padding-top:16px; border-top:1px solid var(--line,#d9d9d6); font-size:18px; }
.duke-cart-total :is(dt,dd) { font-weight:500; }
.duke-cart .duke-cart-cta { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:52px; background:#171717; color:white; padding:12px 16px 12px 24px; border:0; border-radius:999px; font-size:16px; }
.duke-cart-cta .button__arrow .icon { border:0; border-radius:0; fill:none; stroke:currentColor; }
.duke-cart-cta .button__label { font-size:16px; }
.duke-cart-cta[aria-disabled="true"] { opacity:.45; cursor:progress; }
.duke-cart-continue { display:block; width:100%; min-height:44px; border:0; background:none; margin-top:8px; text-align:center; text-decoration:underline; text-underline-offset:4px; font-size:14px!important; }
.duke-cart-empty { padding:48px 30px; display:grid; gap:18px; }
.duke-cart-empty>p:first-child { font-size:24px; line-height:1.25; max-width:16ch; margin:0; letter-spacing:-.025em; }
.duke-cart-muted { color:#646464; margin:0 0 8px; }
.duke-cart-retry { margin:24px 30px; background:transparent; border:1px solid #171717; border-radius:999px; padding:12px 20px; }
.duke-add-to-cart.is-adding,.duke-add-to-cart .is-adding { cursor:progress; }
.duke-add-to-cart.is-added,.duke-add-to-cart .is-added { animation:duke-add-confirm 460ms cubic-bezier(.16,1,.3,1); }
.pdp-status,.duke-field-error { display:block; font-size:14px; line-height:1.4; }
.pdp-status:empty { display:none; }
.duke-field-error { margin-top:8px; }
.woocommerce-checkout :is(.woocommerce-error,.woocommerce-message,.woocommerce-info),.woocommerce-account :is(.woocommerce-error,.woocommerce-message,.woocommerce-info) { background:none; color:#171717; border:0; padding:12px 0; font-size:14px; box-shadow:none; }
.woocommerce-checkout :is(.woocommerce-error,.woocommerce-message,.woocommerce-info):before,.woocommerce-account :is(.woocommerce-error,.woocommerce-message,.woocommerce-info):before { display:none; }
.woocommerce-checkout .woocommerce-error:not(:has(li:not([hidden]))) { display:none; }
@keyframes duke-add-confirm { 0%,100% { transform:scale(1); } 40% { transform:scale(.97); } }
@media(max-width:600px) {
  #cart-dialog .dialog__head { padding:24px 20px 20px; }
  #cart-dialog .dialog__head h2 { font-size:26px; }
  .duke-cart-lines,.duke-cart-summary,.duke-cart-suggestions,.duke-cart-status { padding-inline:20px; }
  .duke-cart-line { grid-template-columns:90px minmax(0,1fr); gap:16px; }
  .duke-cart-line__body { padding-right:14px; }
  .duke-cart-line__bottom { gap:10px; }
  .duke-cart-empty { padding:40px 20px; }
  .duke-cart-variant select { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { .duke-add-to-cart.is-added,.duke-add-to-cart .is-added { animation:none; } .duke-cart-coupon summary svg { transition:none; } }
@media(max-height:650px) {
  #cart-dialog .duke-cart-content { overflow-y:auto; }
  .duke-cart { height:auto; min-height:100%; }
  .duke-cart-scroll { flex:none; overflow:visible; }
  .duke-cart-summary { margin-top:auto; }
}

/* Product rows use the same quiet control language as the catalogue. */
.duke-cart-line { grid-template-columns:76px minmax(0,1fr); gap:16px; padding-block:16px; }
.duke-cart-line:last-child { border-bottom:0; }
.duke-cart-line__image { border-radius:6px; overflow:hidden; }
.duke-cart-line__image img { aspect-ratio:3/4; }
.duke-cart-line__name { font-size:16px; margin-bottom:8px; line-height:1.3; }
.duke-cart-line__body { padding-right:24px; }
#cart-dialog .duke-cart-variant select { appearance:none; min-height:34px; border:1px solid #c4c4c0; border-radius:6px; padding:5px 32px 5px 10px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 9px center/14px no-repeat; }
.duke-cart-line__bottom { margin-top:10px; gap:8px; }
.duke-cart-quantity button { width:30px; height:30px; }
.duke-cart-remove { top:11px; right:-8px; width:36px; height:36px; }
.duke-cart-remove svg { width:15px; height:15px; stroke-linecap:round; stroke-linejoin:round; }
.duke-cart-coupon { border:0; margin-bottom:12px; }
.duke-cart-coupon summary { border:0; padding-bottom:6px; }
.duke-cart-summary { padding-top:16px; }
.duke-cart-totals { margin-bottom:16px; gap:8px; }
.duke-cart-totals .duke-cart-total { margin-top:4px; padding-top:12px; }
@media(max-width:600px) {
  .duke-cart-line { grid-template-columns:64px minmax(0,1fr); gap:12px; padding-block:14px; }
  .duke-cart-line__name { font-size:15px; }
  #cart-dialog .duke-cart-variant select { font-size:16px; }
  .duke-cart-line__body { padding-right:16px; }
  .duke-cart-line__price { font-size:14px; }
}
