/* DI VÉNCO — full cart page (/cart/). Lives inside .wc-shell. */

.dv-cart { max-width: 1320px; margin: 0 auto; }

.dv-cart-head {
  display: flex; align-items: baseline; gap: 18px;
  padding-bottom: clamp(22px, 3vh, 36px);
  border-bottom: 1px solid var(--line); margin-bottom: clamp(24px, 4vh, 44px);
}
.dv-cart-head h1 {
  font-family: var(--serif); font-weight: 300; letter-spacing: -0.02em;
  font-size: clamp(30px, 4vw, 56px); line-height: 1; margin: 0;
}
.dv-cart-count { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--fg-mute); }

.dv-cart-grid {
  display: grid; grid-template-columns: 1.7fr 1fr;
  gap: clamp(28px, 4vw, 72px); align-items: start;
}

/* ---- line items ---- */
.dv-cart-lines { min-width: 0; }
.dv-line {
  display: grid;
  grid-template-columns: 88px 1fr auto auto;
  gap: clamp(16px, 2vw, 28px); align-items: center;
  padding: 22px 0; border-bottom: 1px solid var(--line);
}
.dv-line-thumb {
  display: block; width: 88px; aspect-ratio: 4/5;
  background: var(--tile); background-size: cover; background-position: center;
}
.dv-line-info { min-width: 0; }
.dv-line-name { font-family: var(--serif); font-weight: 300; font-size: clamp(15px, 1.5vw, 19px); line-height: 1.2; }
.dv-line-name a { color: inherit; }
.dv-line-meta { font-size: 10px; letter-spacing: 0.06em; color: var(--fg-mute); margin-top: 5px; }
.dv-line-meta dl, .dv-line-meta dd, .dv-line-meta dt { display: inline; margin: 0; }
.dv-line-meta dd { margin-right: 8px; }
.dv-line-unit { font-size: 11px; color: var(--fg-soft); margin-top: 7px; font-feature-settings: 'tnum'; }
.dv-line-remove {
  display: inline-block; margin-top: 9px;
  font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--fg-mute);
  border-bottom: 1px solid transparent; transition: color .2s, border-color .2s;
}
.dv-line-remove:hover { color: var(--fg); border-color: var(--fg-mute); }

/* qty stepper (wraps the Woo number input) */
.dv-line-qty .quantity { display: inline-flex; align-items: center; border: 1px solid var(--line); }
.dv-line-qty .quantity label { display: none; }
.dv-line-qty .quantity .dv-step {
  width: 34px; height: 44px; display: grid; place-items: center;
  font-size: 14px; color: var(--fg-soft); background: none; border: 0; cursor: pointer; transition: color .2s;
}
.dv-line-qty .quantity .dv-step:hover { color: var(--fg); }
.dv-line-qty .quantity input.qty {
  width: 40px; height: 44px; text-align: center; border: 0; background: transparent;
  font: inherit; font-size: 12px; color: var(--fg); font-feature-settings: 'tnum';
  -moz-appearance: textfield;
}
.dv-line-qty .quantity input.qty::-webkit-outer-spin-button,
.dv-line-qty .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.dv-line-total { font-size: 13px; letter-spacing: 0.02em; text-align: right; font-feature-settings: 'tnum'; white-space: nowrap; }

/* tools: coupon + update */
.dv-cart-tools { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 26px 0 4px; }
.dv-coupon { display: flex; align-items: stretch; border: 1px solid var(--line); }
.dv-coupon input { border: 0; background: transparent; padding: 0 14px; height: 44px; font: inherit; font-size: 12px; outline: none; width: 190px; }
.dv-coupon-apply { padding: 0 18px; height: 44px; font-size: 9.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--fg); border-left: 1px solid var(--line); transition: background .2s, color .2s; }
.dv-coupon-apply:hover { background: var(--fg); color: #fff; }
.dv-update {
  margin-left: auto; height: 44px; padding: 0 22px; border: 1px solid var(--fg);
  font-size: 9.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--fg);
  transition: background .25s, color .25s;
}
.dv-update:hover { background: var(--fg); color: #fff; }
.dv-cart-continue {
  display: inline-block; margin-top: 28px;
  font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--fg-soft);
  transition: color .2s;
}
.dv-cart-continue:hover { color: var(--fg); }

/* ---- summary ---- */
.dv-cart-summary { position: sticky; top: 96px; }
.dv-summary { border: 1px solid var(--line); padding: clamp(24px, 2.4vw, 36px); background: var(--bg); }
.dv-summary h2 {
  margin: 0 0 22px; font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; font-weight: 600;
}
.dv-summary-row, .dv-summary-total {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  font-size: 12px; color: var(--fg-soft); padding: 9px 0;
}
.dv-summary-row span:last-child { font-feature-settings: 'tnum'; color: var(--fg); }
.dv-summary-discount span:last-child { color: #1f8a5b; }
.dv-summary-total {
  margin-top: 8px; padding-top: 18px; border-top: 1px solid var(--line);
  font-size: 13px; letter-spacing: 0.04em; color: var(--fg);
}
.dv-summary-total span:first-child { font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--fg); }
.dv-summary-total span:last-child { font-family: var(--serif); font-weight: 300; font-size: 22px; }
.dv-summary-note { font-size: 10px; color: var(--fg-mute); margin: 10px 0 18px; }

/* proceed to checkout button (Woo) restyled — beat Woo's a.button.alt specificity */
.dv-summary .wc-proceed-to-checkout { padding: 0; }
.woocommerce .dv-summary a.checkout-button.button,
.woocommerce .dv-summary a.checkout-button.button.alt,
.dv-summary a.checkout-button {
  display: grid; place-items: center; width: 100%; height: 54px;
  background: var(--fg) !important; color: #fff !important; border-radius: 999px;
  font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; font-weight: 500;
  transition: opacity .2s; margin: 0;
}
.woocommerce .dv-summary a.checkout-button.button:hover { opacity: 0.9; }
.dv-summary-secure { font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-mute); text-align: center; margin: 16px 0 0; }

/* ---- empty ---- */
.dv-cart-empty .dv-empty-inner { text-align: center; padding: clamp(50px, 9vh, 120px) 0; }
.dv-empty-title { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: clamp(26px, 3vw, 40px); margin: 0 0 12px; }
.dv-empty-sub { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--fg-mute); margin: 0 0 30px; }
.dv-empty-cta {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 10px; letter-spacing: 0.26em; text-transform: uppercase; color: var(--fg);
  padding-bottom: 6px; border-bottom: 1px solid var(--fg); transition: gap .3s;
}
.dv-empty-cta:hover { gap: 16px; }

/* WooCommerce notices on cart */
.dv-cart .woocommerce-message, .woocommerce-cart .wc-shell .woocommerce-error,
.woocommerce-cart .wc-shell .woocommerce-info { margin-bottom: 24px; }

/* ---- responsive ---- */
@media (max-width: 980px) {
  .dv-cart-grid { grid-template-columns: 1fr; gap: 40px; }
  .dv-cart-summary { position: static; }
}
@media (max-width: 560px) {
  .dv-line {
    grid-template-columns: 72px 1fr; grid-template-areas: 'thumb info' 'thumb qty' 'total total';
    row-gap: 12px; align-items: start;
  }
  .dv-line-thumb { grid-area: thumb; width: 72px; }
  .dv-line-info { grid-area: info; }
  .dv-line-qty { grid-area: qty; }
  .dv-line-total { grid-area: total; text-align: left; }
  .dv-cart-tools { flex-direction: column; align-items: stretch; }
  .dv-update { margin-left: 0; }
}
