.duplex-basket { color: inherit; margin: 2rem 0 4rem; }
.duplex-basket h2 { font-size: 1.8rem; margin: 2.2rem 0 1.4rem; }
.duplex-table-wrap { width: 100%; overflow-x: auto; }
.duplex-basket-table { width: 100%; border-collapse: collapse; border: 1px solid #b8b4b0; font-size: 1rem; }
.duplex-basket-table th, .duplex-basket-table td { padding: 1rem; border-bottom: 1px solid #b8b4b0; text-align: left; vertical-align: middle; }
.duplex-basket-table th { font-weight: 700; }
.duplex-basket-ticket { min-width: 250px; }
.duplex-basket-ticket img { width: 80px; height: 70px; object-fit: cover; float: left; margin-right: 1rem; }
.duplex-basket-ticket small { display: block; margin-top: .35rem; font-size: .9rem; opacity: .8; }
.duplex-basket input { background: transparent; color: inherit; border: 1px solid #b8b4b0; border-radius: 0; padding: .6rem .75rem; font: inherit; }
.duplex-basket-quantity { width: 5.2rem; }
.duplex-remove { color: inherit; font: inherit; cursor: pointer; border: 0; background: transparent; text-decoration: underline; }
.duplex-total { display: flex; gap: 3rem; justify-content: flex-end; align-items: baseline; font-size: 1.5rem; margin: 1.6rem 0; }
.duplex-actions { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.duplex-actions .btn { display: inline-block; text-decoration: none; padding: .85rem 1.5rem; cursor: pointer; font-size: 1rem; font-weight: bold; }
.duplex-actions .duplex-secondary { background: transparent; color: inherit; border: 1px solid currentColor; }
.duplex-details-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem 1.8rem; }
.duplex-details-grid label { display: flex; flex-direction: column; gap: .5rem; }
.duplex-details-grid input { width: 100%; min-width: 0; }
.duplex-status { padding: .8rem 1rem; border: 1px solid #ad8c35; margin-top: 1rem; color: inherit; }
.duplex-status-error { border-color: #d66f61; }
.duplex-cart-count { font: bold .7rem/1 sans-serif; vertical-align: super; margin-left: .3rem; }
.duplex-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.duplex-cookie-banner { position: fixed; z-index: 10000; right: 1.25rem; bottom: 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; max-width: min(42rem, calc(100vw - 2.5rem)); padding: 1rem 1.2rem; background: #171717; color: #fff; box-shadow: 0 0.5rem 2rem rgba(0,0,0,.35); font-size: .95rem; }
.duplex-cookie-banner p { margin: .35rem 0 0; line-height: 1.4; }
.duplex-cookie-actions { display: flex; flex-shrink: 0; gap: .6rem; }
.duplex-cookie-actions button { padding: .65rem .9rem; border: 1px solid #fff; background: transparent; color: inherit; cursor: pointer; font: inherit; white-space: nowrap; }
.duplex-cookie-actions .duplex-cookie-accept { background: #fff; color: #171717; }
@media (max-width: 700px) {
  .duplex-basket-table th, .duplex-basket-table td { padding: .65rem; }
  .duplex-basket-ticket { min-width: 190px; }
  .duplex-basket-ticket img { width: 58px; height: 58px; margin: 0 .6rem .6rem 0; }
  .duplex-details-grid { grid-template-columns: 1fr; }
  .duplex-actions > .btn { width: 100%; text-align: center; }
  .duplex-cookie-banner { right: .75rem; bottom: .75rem; flex-direction: column; align-items: stretch; gap: .9rem; max-width: calc(100vw - 1.5rem); }
  .duplex-cookie-actions { justify-content: flex-end; }
}
