/* ==========================================================================
   Kalles theme — cart page + checkout
   ========================================================================== */
.kalles-cart { padding-block: 4rem 6rem; }
.kalles-cart__title, .kalles-checkout__title { font-family: var(--font-heading-family); font-weight: var(--font-normal); font-size: 3rem; margin-bottom: 2.5rem; text-align: center; }

.kalles-cart__layout { display: grid; grid-template-columns: minmax(0,1fr) 34rem; grid-auto-rows: min-content; gap: 3rem; align-items: start; }
.kalles-cart__items { min-width: 0; }
@media (max-width: 992px) { .kalles-cart__layout { grid-template-columns: 1fr; } }

/* line items */
.kalles-cart__items { border-top: 1px solid rgb(var(--color-line-border)); }
.kalles-cart-row { display: grid; grid-template-columns: 9rem minmax(0,1fr) 12rem; gap: 1.5rem 2rem; align-items: center; padding: 2rem 0; border-bottom: 1px solid rgb(var(--color-line-border)); }
.kalles-cart-row__unit { font-size: 1.25rem; color: rgb(var(--color-foreground2)); margin-top: .6rem; }
.kalles-cart-row:first-child { border-top: 1px solid rgb(var(--color-line-border)); }
.kalles-cart-row__img img { width: 9rem; height: 9rem; object-fit: contain; border-radius: var(--radius-product-media); background: rgb(var(--color-background2)); padding: .5rem; }
.kalles-cart-row__name { font-size: 1.45rem; font-weight: var(--font-medium); line-height: 1.4; }
.kalles-cart-row__name a:hover { color: rgb(var(--color-accent)); }
.kalles-cart-row__opts { font-size: 1.2rem; color: rgb(var(--color-foreground2)); margin-top: .4rem; list-style: none; padding: 0; }
.kalles-cart-row__opts li { list-style: none; }
.kalles-cart-row__qtywrap { display: flex; align-items: center; gap: .6rem; }
.kalles-cart-row__total { text-align: end; font-size: 1.6rem; color: rgb(var(--color-pr-text)); white-space: nowrap; }
.kalles-cart-row__total strong { font-weight: var(--font-semibold); }
.kalles-cart-row__total .label { display: none; font-size: 1.15rem; color: rgb(var(--color-foreground2)); text-transform: uppercase; letter-spacing: .03em; margin-inline-end: .6rem; }
.kalles-cart-row .kalles-qty { flex: 0 0 auto; }
.kalles-cart-row .kalles-qty input { width: 3rem; }
.kalles-cart-row .kalles-qty button { width: 3rem; font-size: 1.6rem; }
.kalles-cart-row__update, .kalles-cart-row__remove { display: inline-flex; align-items: center; justify-content: center; width: 3.6rem; height: 3.6rem; border-radius: 9999px; background: none; border: 1px solid rgb(var(--color-line-border)); cursor: pointer; color: rgb(var(--color-foreground2)); font-size: 1.4rem; transition: .15s; text-decoration: none; }
.kalles-cart-row__update:hover { color: rgb(var(--color-base-text)); border-color: rgb(var(--color-base-text)); }
.kalles-cart-row__remove:hover { color: #fff; background: rgb(var(--color-pr-sale-price)); border-color: rgb(var(--color-pr-sale-price)); }
@media (max-width: 640px) {
  .kalles-cart-row { grid-template-columns: 8rem 1fr; grid-auto-rows: auto; row-gap: .5rem; }
  .kalles-cart-row__img { grid-row: span 2; }
  .kalles-cart-row__total { text-align: start; display: flex; align-items: center; grid-column: 2; }
  .kalles-cart-row__total .label { display: inline; }
}

/* summary */
.kalles-cart__summary { border: 1px solid rgb(var(--color-line-border)); border-radius: var(--radius); padding: 2.4rem; background: rgb(var(--color-background2)); position: sticky; top: 2rem; align-self: start; }
.kalles-cart__summary h3 { font-size: 1.6rem; font-weight: var(--font-semibold); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 1.5rem; }
.kalles-cart__totals { list-style: none; margin: 0 0 1.5rem; }
.kalles-cart__totals li { display: flex; justify-content: space-between; padding: .7rem 0; font-size: 1.4rem; }
.kalles-cart__totals li:last-child { border-top: 1px solid rgb(var(--color-line-border)); margin-top: .5rem; padding-top: 1.2rem; font-size: 1.7rem; font-weight: var(--font-semibold); }
.kalles-cart__actions { display: flex; flex-direction: column; gap: 1rem; }
.kalles-cart__continue { text-align: center; margin-top: 1.2rem; font-size: 1.3rem; }
.kalles-cart__continue a:hover { color: rgb(var(--color-accent)); }

/* coupon/voucher/reward accordion modules */
.kalles-cart__modules { margin-top: 2rem; }
.kalles-cart__modules .card { border: 1px solid rgb(var(--color-line-border)); border-radius: var(--radius-2xs); margin-bottom: 1rem; }
.kalles-cart__modules .card-header { padding: 0; background: none; border: 0; }
.kalles-cart__modules .card-header button, .kalles-cart__modules .accordion-button { width: 100%; text-align: start; padding: 1.2rem 1.5rem; background: none; border: 0; font-size: 1.4rem; font-weight: var(--font-medium); cursor: pointer; color: rgb(var(--color-base-text)); }
.kalles-cart__modules .card-body, .kalles-cart__modules .accordion-body { padding: 1.5rem; font-size: 1.35rem; }
.kalles-cart-empty { text-align: center; padding: 6rem 0; }
.kalles-cart-empty i { font-size: 5rem; color: rgb(var(--color-line-border)); }
.kalles-cart-empty p { margin: 1.5rem 0; font-size: 1.5rem; color: rgb(var(--color-foreground2)); }

/* ---------- Checkout ---------- */
.kalles-checkout { padding-block: 4rem 6rem; }
.kalles-checkout__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 3rem; align-items: start; }
@media (max-width: 992px) { .kalles-checkout__grid { grid-template-columns: 1fr; } }
#checkout-checkout .card, .kalles-checkout .card { border: 1px solid rgb(var(--color-line-border)); border-radius: var(--radius); margin-bottom: 2rem; }
#checkout-checkout .card-header, .kalles-checkout .card-header { background: rgb(var(--color-background2)); font-weight: var(--font-semibold); font-size: 1.5rem; padding: 1.4rem 1.8rem; border-bottom: 1px solid rgb(var(--color-line-border)); }
#checkout-checkout .card-body, .kalles-checkout .card-body { padding: 1.8rem; }
#checkout-checkout .form-control, #checkout-checkout .form-select,
.kalles-checkout .form-control, .kalles-checkout .form-select { border: 1px solid rgb(var(--color-line-border)); border-radius: var(--radius-input); padding: 1rem 1.4rem; font-size: 1.4rem; }
#checkout-checkout .form-label, .kalles-checkout .form-label { font-size: 1.3rem; font-weight: var(--font-medium); }
#checkout-checkout .btn-primary, .kalles-checkout .btn-primary, #checkout-cart .btn-primary {
  background: rgb(var(--color-base-text)); border-color: rgb(var(--color-base-text)); color: rgb(var(--color-base-background));
  border-radius: var(--radius-button); padding: 1.1rem 2.4rem; font-size: 1.3rem; font-weight: var(--font-semibold); text-transform: uppercase; letter-spacing: .03em;
}
#checkout-checkout .btn-primary:hover, .kalles-checkout .btn-primary:hover { background: rgb(var(--color-accent)); border-color: rgb(var(--color-accent)); }
