/* Overnight Merch cart — matches the mirrored Oversize DTG theme (ink on white, 2px ink
   borders, hard shadows, heavy headings). Sizes in rem follow the theme's 62.5% root. */
.om-cart { max-width: 120rem; margin: 0 auto; padding: 4rem 1.6rem 8rem; color: #111; font-size: 1.5rem; }
.om-cart__title { margin: 0 0 2.4rem; font-size: clamp(2.8rem, 3.4vw, 3.8rem); font-weight: 800; letter-spacing: -0.01em; }
.om-cart__muted { color: #5c5c5c; font-size: 1.3rem; margin: 0.2rem 0 0; display: block; }
.om-cart__layout { display: grid; gap: 3.2rem; align-items: start; }
@media (min-width: 990px) { .om-cart__layout { grid-template-columns: minmax(0, 1fr) 42rem; } }

.om-cart__lines { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.2rem; }
.om-cart__line { display: grid; grid-template-columns: 8.8rem minmax(0, 1fr) auto auto; gap: 1.6rem; align-items: center;
  padding: 1.2rem; border-radius: 8px; background: #fff; box-shadow: 0 0 0 1px #e2e2e2; }
@media (max-width: 749px) { .om-cart__line { grid-template-columns: 7.2rem minmax(0, 1fr); } .om-cart__qty, .om-cart__price { grid-column: 2; } }
.om-cart__thumb { width: 8.8rem; aspect-ratio: 1; border-radius: 6px; background: #f4f4f4; overflow: hidden; }
.om-cart__thumb { display: grid !important; place-items: center; }
.om-cart__thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
.om-cart__thumb svg { width: 55%; height: 55%; }
.om-cart__name { margin: 0; font-weight: 800; font-size: 1.6rem; line-height: 1.3; }
.om-cart__qty { display: flex; align-items: center; gap: 1rem; }
.om-cart__qty input { width: 7.2rem; height: 4rem; border: 2px solid #111; border-radius: 8px; padding: 0 1rem; font-size: 1.5rem; }
.om-cart__price { text-align: right; font-weight: 700; font-size: 1.6rem; min-width: 9rem; }
.om-cart__link { background: none; border: 0; padding: 0; color: #111; text-decoration: underline; cursor: pointer; font-size: 1.3rem; }

.om-cart__summary { padding: 2rem; border-radius: 10px; background: #fff; box-shadow: 0 0 0 1px #e2e2e2; position: sticky; top: 2rem; }
.om-cart__summary h2 { margin: 2rem 0 1rem; font-size: 1.7rem; font-weight: 800; }
.om-cart__summary h2:first-child { margin-top: 0; }
.om-cart__grid { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.om-cart__field { display: grid; gap: 0.4rem; grid-column: span 2; font-size: 1.3rem; font-weight: 600; }
.om-cart__field:has([name="ship_to_state"]), .om-cart__field:has([name="ship_to_zip"]) { grid-column: span 1; }
.om-cart__field input { height: 4.4rem; border: 1px solid #c9c9c9; border-radius: 8px; padding: 0 1.2rem; font-size: 1.5rem; }
.om-cart__field input:focus { outline: 2px solid #111; border-color: #111; }
.om-cart__toggle { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; margin-bottom: 1.2rem; }
.om-cart__toggle button { height: 4.4rem; border: 2px solid #111; border-radius: 10px; background: #fff; font-weight: 700; font-size: 1.4rem; cursor: pointer; }
.om-cart__toggle button.is-on { background: #111; color: #fff; }
.om-cart__ship { display: grid; gap: 0.8rem; margin-top: 1.2rem; }
.om-cart__option { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: 1rem 1.2rem;
  border: 1px solid #c9c9c9; border-radius: 8px; cursor: pointer; font-size: 1.4rem; }
.om-cart__option:has(input:checked) { border: 2px solid #111; }
.om-cart__totals { margin: 2rem 0 1.6rem; display: grid; gap: 0.6rem; font-size: 1.5rem; }
.om-cart__totals div { display: flex; justify-content: space-between; }
.om-cart__totals dt, .om-cart__totals dd { margin: 0; }
.om-cart__grand { padding-top: 1rem; border-top: 1px solid #e2e2e2; font-weight: 800; font-size: 1.8rem; }
.om-cart__btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 5.2rem; padding: 0 3.2rem;
  border-radius: 10px; border: 2px solid #111; background: #111; color: #fff; font-size: 1.6rem; font-weight: 700;
  box-shadow: 4px 4px 0 #111; cursor: pointer; text-decoration: none; }
.om-cart__btn:hover { transform: translate(-1px, -1px); box-shadow: 5px 5px 0 #111; }
.om-cart__btn[disabled] { opacity: 0.6; cursor: wait; transform: none; }
.om-cart__empty { text-align: center; padding: 6rem 0; }
.om-cart__empty .om-cart__btn { width: auto; margin-top: 2.4rem; }
.om-cart__error { margin: 0 0 1.2rem; padding: 1rem 1.2rem; border-radius: 8px; background: #fdecec; color: #8a1c1c; font-size: 1.4rem; }
.om-cart__fine { margin-top: 1.2rem; text-align: center; }
