/* Корзина, кабинет, оформление — язык витрины, не WooCommerce */

.dv-commerce {
  padding-block: var(--space-8) var(--space-20);
}

.dv-commerce .woocommerce {
  margin: 0;
}

.dv-commerce-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-8);
}

.dv-commerce-head h1 {
  font-size: var(--fs-3xl);
  letter-spacing: var(--tracking-tight);
  line-height: var(--lh-tight);
}

.dv-commerce-head p {
  margin-top: var(--space-2);
  color: var(--muted);
  max-width: 52ch;
}

.dv-commerce .woocommerce-notices-wrapper:empty,
.dv-commerce .woocommerce-message:empty {
  display: none;
}

.dv-commerce .woocommerce-message,
.dv-commerce .woocommerce-info,
.dv-commerce .woocommerce-error,
.dv-commerce .woocommerce-noreviews {
  margin: 0 0 var(--space-6);
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-md);
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink);
  list-style: none;
}

.dv-commerce .woocommerce-message {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.dv-commerce .woocommerce-error {
  border-color: var(--danger);
  background: var(--danger-soft);
}

.dv-commerce .woocommerce-error li + li {
  margin-top: var(--space-2);
}

.dv-commerce .woocommerce-message a,
.dv-commerce .woocommerce-info a,
.dv-commerce .woocommerce-error a {
  color: var(--primary);
  font-weight: var(--weight-semibold);
}

/* Forms */

.dv-field,
.dv-commerce .form-row {
  display: grid;
  gap: var(--space-2);
  margin: 0 0 var(--space-4);
}

.dv-field label,
.dv-commerce .form-row label {
  font-size: var(--fs-sm);
  font-weight: var(--weight-medium);
}

.dv-field input,
.dv-field textarea,
.dv-field select,
.dv-commerce .input-text,
.dv-commerce select,
.dv-commerce textarea,
.dv-commerce .select2-container .select2-selection--single {
  width: 100%;
  min-height: 3rem;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-md);
  padding: 0 var(--space-4);
  background: var(--bg);
}

.dv-field textarea,
.dv-commerce textarea {
  min-height: 7rem;
  padding-block: var(--space-3);
}

.dv-field input:focus-visible,
.dv-field textarea:focus-visible,
.dv-field select:focus-visible,
.dv-commerce .input-text:focus-visible,
.dv-commerce select:focus-visible,
.dv-commerce textarea:focus-visible {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 4px var(--primary-soft);
}

.dv-form-hint,
.dv-commerce .form-row em,
.dv-commerce small {
  display: block;
  margin-top: var(--space-2);
  color: var(--muted);
  font-size: var(--fs-sm);
  font-style: normal;
}

.dv-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
}

.dv-form-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
}

.dv-check {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-sm);
}

.dv-form .btn,
.dv-commerce button.button,
.dv-commerce a.button,
.dv-commerce .checkout-button {
  width: 100%;
}

.dv-commerce .form-row-first,
.dv-commerce .form-row-last,
.dv-commerce .form-row-wide {
  float: none;
  width: 100%;
}

.dv-commerce .woocommerce-address-fields__field-wrapper {
  display: grid;
  gap: var(--space-1);
}

.dv-commerce .woocommerce-form-login__submit,
.dv-commerce .woocommerce-form-register__submit {
  width: 100%;
}

.dv-form-narrow {
  max-width: 28rem;
}

.dv-fieldset {
  margin: var(--space-8) 0 var(--space-6);
  padding: var(--space-6);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface);
}

.dv-fieldset legend {
  padding-inline: var(--space-2);
  font-size: var(--fs-sm);
  font-weight: var(--weight-semibold);
}

/* Empty */

.dv-empty {
  display: grid;
  justify-items: center;
  text-align: center;
  gap: var(--space-3);
  padding: var(--space-16) var(--space-6);
  border: 1px dashed var(--line-strong);
  border-radius: var(--radius-xl);
  background:
    radial-gradient(70% 80% at 50% 0%, var(--primary-soft), transparent 62%),
    var(--surface);
}

.dv-empty-mark {
  width: 3.5rem;
  height: 3.5rem;
  display: grid;
  place-items: center;
  border-radius: var(--radius-full);
  background: var(--bg);
  color: var(--primary);
  box-shadow: var(--shadow-sm);
}

.dv-empty h2,
.dv-empty h3 {
  font-size: var(--fs-xl);
  letter-spacing: var(--tracking-tight);
}

.dv-empty p {
  max-width: 40ch;
  color: var(--muted);
}

.dv-empty .btn {
  margin-top: var(--space-3);
  width: auto;
  min-width: 12rem;
}

.dv-empty-compact {
  padding: var(--space-10) var(--space-5);
}

/* Cart */

.dv-cart-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(17rem, 0.8fr);
  gap: var(--space-8);
  align-items: start;
}

.dv-cart-lines {
  display: grid;
  gap: var(--space-4);
}

.dv-cart-info dl {
  margin-top: var(--space-1);
  font-size: var(--fs-xs);
  color: var(--muted);
}

.dv-cart-line {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr) auto;
  gap: var(--space-4);
  align-items: center;
  padding: var(--space-4);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--bg);
  transition: border-color var(--duration) var(--ease-out);
}

.dv-cart-line:hover {
  border-color: var(--line-strong);
}

.dv-cart-thumb {
  margin: 0;
  aspect-ratio: 1;
  background:
    radial-gradient(80% 70% at 50% 110%, var(--primary-soft), transparent 62%),
    var(--surface);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.dv-cart-thumb img,
.dv-cart-thumb a {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.dv-cart-thumb a {
  display: grid;
  place-items: center;
  padding: var(--space-2);
}

.dv-cart-info h2 {
  font-size: var(--fs-md);
  letter-spacing: var(--tracking-tight);
  line-height: var(--lh-snug);
}

.dv-cart-info h2 a:hover {
  color: var(--primary);
}

.dv-cart-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);
  margin-bottom: var(--space-1);
  font-size: var(--fs-xs);
  color: var(--muted);
}

.dv-cart-unit {
  margin-top: var(--space-2);
  font-size: var(--fs-sm);
  color: var(--muted);
}

.dv-cart-qty {
  display: grid;
  justify-items: end;
  gap: var(--space-3);
}

.dv-cart-line .qty .quantity {
  display: inline-flex;
}

.dv-cart-line .qty .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.dv-cart-line .qty input {
  width: 2.6rem;
  height: 2.5rem;
  min-height: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
  text-align: center;
  font-variant-numeric: tabular-nums;
  font-weight: var(--weight-semibold);
}

.dv-cart-line-total {
  font-weight: var(--weight-semibold);
  font-variant-numeric: tabular-nums;
}

.dv-cart-remove {
  font-size: var(--fs-xs);
  color: var(--muted);
}

.dv-cart-remove:hover {
  color: var(--danger);
}

.dv-cart-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-5);
}

.dv-coupon {
  display: flex;
  flex: 1;
  min-width: 16rem;
  gap: var(--space-2);
}

.dv-coupon input {
  flex: 1;
  min-height: var(--touch);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-md);
  padding: 0 var(--space-4);
}

.dv-coupon .btn,
.dv-cart-update {
  width: auto;
}

.dv-cart-sum {
  position: sticky;
  top: calc(var(--header-h) + 1rem);
  background: var(--bg-inverse);
  color: var(--ink-inverse);
  border-radius: var(--radius-xl);
  padding: var(--space-8);
  display: grid;
  gap: var(--space-5);
}

.dv-cart-sum h2 {
  font-size: var(--fs-xl);
  letter-spacing: var(--tracking-tight);
}

.dv-cart-sum-rows {
  display: grid;
  gap: var(--space-3);
}

.dv-cart-sum-rows > div {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
  font-size: var(--fs-sm);
}

.dv-cart-sum-rows dt {
  color: oklch(0.98 0.01 230 / 0.72);
}

.dv-cart-sum-rows dd,
.dv-cart-sum-rows .amount {
  font-variant-numeric: tabular-nums;
}

.dv-cart-sum-total {
  padding-top: var(--space-4);
  border-top: 1px solid oklch(0.98 0.01 230 / 0.16);
  align-items: baseline;
}

.dv-cart-sum-total dd {
  font-size: var(--fs-2xl);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-tight);
}

.dv-cart-sum-note {
  font-size: var(--fs-sm);
  opacity: 0.78;
  max-width: 34ch;
}

.dv-cart-checkout .btn,
.dv-cart-checkout .checkout-button {
  width: 100%;
  text-decoration: none;
  background: var(--primary);
  color: var(--on-primary);
}

.dv-cart-checkout .btn:hover,
.dv-cart-checkout a.checkout-button:hover {
  background: var(--primary-hover);
  color: var(--on-primary);
  text-decoration: none;
}

.dv-cart-sum a.remove,
.dv-cart-sum a:not(.btn):not(.checkout-button) {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* Account */

.dv-account {
  display: grid;
  grid-template-columns: 16.5rem minmax(0, 1fr);
  gap: var(--space-8);
  align-items: start;
}

.dv-account > .dv-commerce-head,
.dv-account > .crumbs {
  grid-column: 1 / -1;
}

.dv-account-nav {
  position: sticky;
  top: calc(var(--header-h) + 1rem);
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--line);
}

.dv-account-user {
  display: grid;
  grid-template-columns: 2.75rem 1fr;
  gap: var(--space-3);
  align-items: center;
  padding: var(--space-3);
  margin-bottom: var(--space-3);
}

.dv-account-avatar {
  width: 2.75rem;
  height: 2.75rem;
  display: grid;
  place-items: center;
  border-radius: var(--radius-full);
  background: var(--primary);
  color: var(--on-primary);
  font-weight: var(--weight-semibold);
}

.dv-account-user strong {
  display: block;
  font-size: var(--fs-sm);
}

.dv-account-user span {
  display: block;
  font-size: var(--fs-xs);
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
}

.dv-account-nav ul {
  display: grid;
  gap: var(--space-1);
}

.dv-account-nav a {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: var(--touch);
  padding: 0 var(--space-3);
  border-radius: var(--radius-md);
  font-size: var(--fs-sm);
  font-weight: var(--weight-medium);
  color: var(--ink);
}

.dv-account-nav a:hover {
  background: var(--bg);
  color: var(--ink);
}

.dv-account-nav .is-active a,
.dv-account-nav a[aria-current="page"] {
  background: var(--bg);
  color: var(--primary);
}

.dv-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a {
  color: var(--muted);
}

.dv-account-main {
  min-width: 0;
}

.dv-dash-hello h2 {
  font-size: var(--fs-xl);
  letter-spacing: var(--tracking-tight);
}

.dv-dash-hello p {
  margin-top: var(--space-2);
  color: var(--muted);
  max-width: 52ch;
}

.dv-dash-hello a {
  color: var(--primary);
  font-weight: var(--weight-medium);
}

.dv-dash-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: var(--space-6) 0;
}

.dv-dash-actions a {
  min-height: 2.4rem;
  padding: 0 var(--space-4);
  display: inline-flex;
  align-items: center;
  border-radius: var(--radius-full);
  background: var(--surface);
  border: 1px solid var(--line);
  font-size: var(--fs-sm);
  font-weight: var(--weight-medium);
}

.dv-dash-actions a:hover {
  border-color: var(--primary);
  color: var(--primary);
}

.dv-dash-orders-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.dv-dash-orders-head h3 {
  font-size: var(--fs-lg);
  letter-spacing: var(--tracking-tight);
}

.dv-dash-orders-head a {
  font-size: var(--fs-sm);
  color: var(--primary);
  font-weight: var(--weight-medium);
}

.dv-order-list {
  display: grid;
  gap: var(--space-3);
}

.dv-order-card {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: var(--space-4);
  align-items: center;
  padding: var(--space-5);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--bg);
}

.dv-order-card:hover {
  border-color: var(--primary);
  color: inherit;
}

.dv-order-card strong {
  display: block;
}

.dv-order-card time,
.dv-order-card p {
  display: block;
  margin-top: 0.15rem;
  font-size: var(--fs-sm);
  color: var(--muted);
}

.dv-order-total {
  font-weight: var(--weight-semibold);
  font-variant-numeric: tabular-nums;
}

.dv-order-card-wrap .dv-order-card {
  grid-template-columns: 1fr auto auto;
}

.dv-order-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.dv-order-actions .btn {
  width: auto;
}

.dv-status {
  display: inline-flex;
  align-items: center;
  min-height: 1.75rem;
  padding: 0 var(--space-3);
  border-radius: var(--radius-full);
  background: var(--surface-2);
  font-size: var(--fs-xs);
  font-weight: var(--weight-semibold);
  white-space: nowrap;
}

.dv-status-completed,
.dv-status-processing {
  background: var(--accent-soft);
  color: var(--accent);
}

.dv-status-on-hold,
.dv-status-pending {
  background: var(--warning-soft);
  color: var(--warning);
}

.dv-status-cancelled,
.dv-status-failed,
.dv-status-refunded {
  background: var(--danger-soft);
  color: var(--danger);
}

.dv-order-view-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  margin: var(--space-2) 0 var(--space-6);
}

.dv-order-view-title h2 {
  font-size: var(--fs-xl);
  letter-spacing: var(--tracking-tight);
}

.dv-order-notes {
  display: grid;
  gap: var(--space-3);
  margin-bottom: var(--space-6);
}

.dv-order-notes li {
  padding: var(--space-4);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.dv-order-notes time {
  font-size: var(--fs-xs);
  color: var(--muted);
}

.dv-order-details table,
.dv-commerce .woocommerce-table,
.dv-commerce table.shop_table {
  width: 100%;
  border-collapse: collapse;
}

.dv-order-details th,
.dv-order-details td,
.dv-commerce .woocommerce-table th,
.dv-commerce .woocommerce-table td,
.dv-commerce table.shop_table th,
.dv-commerce table.shop_table td {
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--line);
  text-align: left;
  font-size: var(--fs-sm);
}

.dv-address-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
  margin-top: var(--space-5);
}

.dv-address-card {
  padding: var(--space-6);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface);
  display: grid;
  gap: var(--space-4);
}

.dv-address-card header {
  display: flex;
  justify-content: space-between;
  gap: var(--space-3);
  align-items: baseline;
}

.dv-address-card h2 {
  font-size: var(--fs-md);
}

.dv-address-card a {
  font-size: var(--fs-sm);
  color: var(--primary);
  font-weight: var(--weight-medium);
}

.dv-address-card address {
  font-style: normal;
  color: var(--muted);
  line-height: var(--lh-body);
}

.dv-pager {
  display: flex;
  gap: var(--space-2);
  margin-top: var(--space-6);
}

.dv-pager .btn {
  width: auto;
}

/* Auth */

.dv-auth-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: var(--space-6);
  align-items: stretch;
}

.dv-auth-aside {
  background: var(--bg-inverse);
  color: var(--ink-inverse);
  border-radius: var(--radius-xl);
  padding: var(--space-8) var(--space-8) var(--space-10);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 22rem;
}

.dv-auth-aside h2 {
  font-size: var(--fs-2xl);
  letter-spacing: var(--tracking-tight);
  line-height: var(--lh-tight);
  max-width: 14ch;
}

.dv-auth-aside p {
  margin-top: var(--space-5);
  opacity: 0.82;
  max-width: 36ch;
}

.dv-auth-aside ul {
  margin-top: var(--space-8);
  display: grid;
  gap: var(--space-3);
  font-size: var(--fs-sm);
}

.dv-auth-aside li {
  padding-top: var(--space-3);
  border-top: 1px solid oklch(0.98 0.01 230 / 0.14);
}

.dv-auth-panel {
  padding: var(--space-8);
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  background: var(--bg);
}

.dv-auth-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-1);
  padding: var(--space-1);
  margin-bottom: var(--space-6);
  background: var(--surface);
  border-radius: var(--radius-md);
}

.dv-auth-switch button {
  min-height: 2.6rem;
  border-radius: calc(var(--radius-md) - 0.1rem);
  font-size: var(--fs-sm);
  font-weight: var(--weight-semibold);
  color: var(--muted);
}

.dv-auth-switch button.is-on {
  background: var(--bg);
  color: var(--ink);
  box-shadow: var(--shadow-sm);
}

.dv-auth-switch button:hover {
  color: var(--ink);
}

/* Checkout */

.dv-commerce .woocommerce-checkout {
  display: grid;
  gap: var(--space-8);
}

.dv-commerce #customer_details {
  display: grid;
  gap: var(--space-6);
}

.dv-commerce #order_review_heading,
.dv-commerce .woocommerce-checkout h3 {
  font-size: var(--fs-lg);
  letter-spacing: var(--tracking-tight);
  margin-bottom: var(--space-4);
}

.dv-commerce #order_review {
  padding: var(--space-6);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface);
}

.dv-commerce #place_order {
  width: 100%;
  margin-top: var(--space-4);
}

.dv-commerce .wc_payment_methods {
  display: grid;
  gap: var(--space-3);
  list-style: none;
}

@media (min-width: 960px) {
  .dv-commerce .woocommerce-checkout {
    grid-template-columns: 1.1fr 0.9fr;
    align-items: start;
  }

  .dv-commerce #order_review_heading,
  .dv-commerce #order_review {
    grid-column: 2;
  }

  .dv-commerce #order_review {
    position: sticky;
    top: calc(var(--header-h) + 1rem);
  }

  .dv-commerce #customer_details {
    grid-column: 1;
    grid-row: 1 / span 2;
  }
}

@media (max-width: 1024px) {
  .dv-cart-grid,
  .dv-account,
  .dv-auth-grid,
  .dv-address-grid,
  .dv-form-grid {
    grid-template-columns: 1fr;
  }

  .dv-account-nav {
    position: static;
  }

  .dv-account-nav ul {
    display: flex;
    overflow-x: auto;
    gap: var(--space-1);
    padding-bottom: var(--space-1);
  }

  .dv-account-nav a {
    white-space: nowrap;
  }

  .dv-account-user {
    display: none;
  }

  .dv-cart-sum,
  .dv-auth-aside {
    position: static;
    min-height: 0;
  }
}

@media (max-width: 767px) {
  .dv-commerce {
    padding-block: var(--space-6) var(--space-12);
  }

  .dv-commerce-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .dv-cart-line {
    grid-template-columns: 4.75rem minmax(0, 1fr);
  }

  .dv-cart-qty {
    grid-column: 1 / -1;
    justify-items: stretch;
    grid-template-columns: auto 1fr auto;
    align-items: center;
  }

  .dv-cart-line-total {
    justify-self: end;
  }

  .dv-order-card,
  .dv-order-card-wrap .dv-order-card {
    grid-template-columns: 1fr auto;
  }

  .dv-order-total {
    grid-column: 2;
    grid-row: 1;
  }

  .dv-auth-panel {
    padding: var(--space-5);
  }

  .dv-cart-sum,
  .dv-auth-aside {
    padding: var(--space-6);
    border-radius: var(--radius-lg);
  }

  .dv-cart-checkout {
    position: sticky;
    bottom: 0;
    padding-top: var(--space-4);
    background: linear-gradient(transparent, var(--bg-inverse) 30%);
  }

  .dv-field input,
  .dv-commerce .input-text,
  .dv-commerce select {
    font-size: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dv-cart-line,
  .dv-order-card,
  .dv-account-nav a,
  .dv-dash-actions a {
    transition: none;
  }
}
