/*
 * NODOS by G — classic cart/checkout polish
 * Scope: visual refinement only for WooCommerce classic cart/checkout surfaces.
 * No product/order/payment/shipping behavior is changed here.
 */

body.woocommerce-cart,
body.woocommerce-checkout {
  --nodos-commerce-ink: #312e39;
  --nodos-commerce-muted: rgba(49, 46, 57, 0.64);
  --nodos-commerce-soft: rgba(49, 46, 57, 0.08);
  --nodos-commerce-rule: rgba(49, 46, 57, 0.14);
  --nodos-commerce-panel: rgba(255, 255, 255, 0.74);
  --nodos-commerce-field: rgba(255, 255, 255, 0.88);
  --nodos-commerce-radius: 0;
}

body.woocommerce-cart .site-content,
body.woocommerce-checkout .site-content {
  color: var(--nodos-commerce-ink);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.55;
  background: linear-gradient(180deg, rgba(250, 248, 245, 0.42), rgba(255, 255, 255, 0) 24rem);
}

body.woocommerce-cart .site-content .ast-container,
body.woocommerce-checkout .site-content .ast-container {
  max-width: 1180px;
}

body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content {
  font-size: 0.94rem;
}

body.woocommerce-cart h1.entry-title,
body.woocommerce-checkout h1.entry-title {
  margin-bottom: 2rem;
  color: var(--nodos-commerce-ink);
  font-size: clamp(1.75rem, 2.4vw, 2.45rem);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.15;
}

body.woocommerce-cart .site-content h2,
body.woocommerce-cart .site-content h3,
body.woocommerce-checkout .site-content h2,
body.woocommerce-checkout .site-content h3,
body.woocommerce-checkout .site-content #order_review_heading {
  color: var(--nodos-commerce-ink);
  font-weight: 400;
  letter-spacing: 0.035em;
  line-height: 1.25;
  text-transform: uppercase;
}

body.woocommerce-cart .cart_totals h2,
body.woocommerce-checkout .site-content h3,
body.woocommerce-checkout .site-content #order_review_heading {
  font-size: 0.84rem;
}

body.woocommerce-cart table.shop_table,
body.woocommerce-checkout table.shop_table {
  overflow: hidden;
  border: 1px solid var(--nodos-commerce-rule) !important;
  border-collapse: separate;
  border-radius: var(--nodos-commerce-radius);
  background: var(--nodos-commerce-panel);
  color: var(--nodos-commerce-ink);
  font-size: 0.91rem;
  line-height: 1.5;
}

body.woocommerce-cart table.shop_table th,
body.woocommerce-cart table.shop_table td,
body.woocommerce-checkout table.shop_table th,
body.woocommerce-checkout table.shop_table td {
  border-color: var(--nodos-commerce-rule) !important;
  padding: 1rem 1.05rem;
  font-weight: 400;
  vertical-align: middle;
}

body.woocommerce-cart table.shop_table th,
body.woocommerce-checkout table.shop_table th {
  color: var(--nodos-commerce-muted);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.woocommerce-cart table.cart img,
body.woocommerce-checkout table.shop_table .product-name img {
  border-radius: 0;
}

body.woocommerce-cart .woocommerce-cart-form__cart-item .product-name a,
body.woocommerce-checkout #order_review .product-name {
  color: var(--nodos-commerce-ink);
  font-size: 0.94rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  text-transform: none;
}

body.woocommerce-cart .woocommerce-cart-form .product-price,
body.woocommerce-cart .woocommerce-cart-form .product-subtotal,
body.woocommerce-cart .cart_totals .amount,
body.woocommerce-checkout #order_review .amount {
  color: var(--nodos-commerce-ink);
  font-weight: 400;
}

body.woocommerce-cart .quantity .qty {
  min-height: 2.35rem;
  max-width: 4.4rem;
  border-color: var(--nodos-commerce-rule);
  background: var(--nodos-commerce-field);
  color: var(--nodos-commerce-ink);
  font-size: 0.9rem;
  font-weight: 400;
}

body.woocommerce-cart a.remove {
  border-color: var(--nodos-commerce-rule);
  color: var(--nodos-commerce-muted) !important;
  font-weight: 400;
}

body.woocommerce-cart a.remove:hover,
body.woocommerce-cart a.remove:focus-visible {
  background: var(--nodos-commerce-ink);
  color: #fff !important;
}

body.woocommerce-cart .cart-collaterals .cart_totals {
  overflow: hidden;
  border: 1px solid var(--nodos-commerce-rule);
  background: var(--nodos-commerce-panel);
  padding: 0;
}

body.woocommerce-cart .cart_totals h2 {
  box-sizing: border-box;
  width: auto;
  margin: 0 !important;
  border-bottom: 1px solid var(--nodos-commerce-rule);
  background: transparent !important;
  color: var(--nodos-commerce-muted);
  font-size: 0.72rem;
  font-weight: 500 !important;
  letter-spacing: 0.08em;
  line-height: 1.25;
  padding: 1rem 1.05rem !important;
  text-transform: uppercase;
}

body.woocommerce-cart .cart_totals table.shop_table {
  margin: 0 0 1rem;
  border: 0 !important;
  background: transparent;
}

body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total td,
body.woocommerce-checkout #order_review .order-total th,
body.woocommerce-checkout #order_review .order-total td {
  border-top: 1px solid var(--nodos-commerce-ink) !important;
  font-size: 1rem;
}

body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-message {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  width: 100%;
  border-top: 0;
  border-left: 1px solid var(--nodos-commerce-rule);
  background: rgba(255, 255, 255, 0.72);
  color: var(--nodos-commerce-ink);
  font-size: 0.86rem;
  font-weight: 400;
  line-height: 1.5;
  padding: 0.95rem 1.05rem;
}

body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-message::before {
  position: static;
  flex: 0 0 auto;
  margin: 0;
  color: var(--nodos-commerce-muted);
}

body.woocommerce-cart .woocommerce-message .button,
body.woocommerce-cart .woocommerce-info .button,
body.woocommerce-checkout .woocommerce-info .button {
  order: 2;
  flex: 0 0 auto;
  float: none;
  margin-left: auto;
  background: transparent;
  color: var(--nodos-commerce-ink);
  border: 1px solid var(--nodos-commerce-rule);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1;
  padding: 0.72rem 0.95rem;
}

body.woocommerce-cart .wc-proceed-to-checkout {
  padding: 0 1.05rem 1.05rem;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-checkout #place_order,
body.woocommerce-checkout .woocommerce #payment #place_order {
  min-height: 0;
  border: 1px solid var(--nodos-commerce-ink) !important;
  background: var(--nodos-commerce-ink) !important;
  color: #fff !important;
  font-size: 0.76rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em;
  line-height: 1.1 !important;
  padding: 0.92rem 1.2rem !important;
  text-transform: uppercase;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  width: 100%;
  margin-bottom: 0.85rem;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:focus-visible,
body.woocommerce-checkout #place_order:hover,
body.woocommerce-checkout #place_order:focus-visible {
  background: transparent !important;
  color: var(--nodos-commerce-ink) !important;
}

body.woocommerce-cart #wc-stripe-express-checkout-element {
  clear: both;
  width: 100%;
  margin: 0.85rem 0 0 !important;
  transition: min-height 220ms ease, opacity 260ms ease;
}

body.woocommerce-cart #wc-stripe-express-checkout-element.nodosbyg-express-loading {
  min-height: 0;
  margin-top: 0 !important;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
}

body.woocommerce-cart .nodosbyg-express-preloader {
  position: relative;
  min-height: 44px;
  overflow: hidden;
  border: 1px solid var(--nodos-commerce-rule);
  background:
    linear-gradient(90deg, rgba(49, 46, 57, 0.025), rgba(49, 46, 57, 0.07), rgba(49, 46, 57, 0.025));
  background-size: 220% 100%;
  animation: nodosbygExpressPulse 1.45s ease-in-out infinite;
  opacity: 1;
  transition: opacity 220ms ease, min-height 260ms ease, margin-top 260ms ease;
}

body.woocommerce-cart .nodosbyg-express-preloader {
  width: 100%;
  margin-top: 0.85rem;
}

body.woocommerce-cart .nodosbyg-express-preloader.nodosbyg-express-fading {
  min-height: 0;
  margin-top: 0;
  opacity: 0;
  pointer-events: none;
}

body.woocommerce-cart .nodosbyg-express-preloader::before {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--nodos-commerce-muted);
  content: attr(data-loading-label);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.woocommerce-cart #wc-stripe-express-checkout-element.nodosbyg-express-ready,
body.woocommerce-cart #wc-stripe-express-checkout-element.nodosbyg-express-unavailable {
  min-height: 0;
  border: 0;
  background: transparent;
  animation: none;
}

body.woocommerce-cart #wc-stripe-express-checkout-element.nodosbyg-express-ready {
  opacity: 1;
}

body.woocommerce-cart #wc-stripe-express-checkout-element.nodosbyg-express-unavailable {
  display: none;
}

@keyframes nodosbygExpressPulse {
  0% { background-position: 120% 0; }
  100% { background-position: -120% 0; }
}

body.woocommerce-checkout form.checkout {
  gap: clamp(2rem, 3vw, 3rem);
}

@media (min-width: 922px) {
  body.woocommerce-checkout form.checkout {
    align-items: flex-start;
    flex-wrap: nowrap;
  }

  body.woocommerce-checkout #customer_details {
    flex: 1 1 auto;
    min-width: 0;
    margin-right: 0 !important;
  }

  body.woocommerce-checkout #ast-order-review-wrapper {
    flex: 0 0 clamp(21rem, 34vw, 28rem);
    width: auto !important;
    margin: 0;
    position: sticky;
    top: 6rem;
  }
}

body.woocommerce-checkout form.checkout h3 {
  margin: 0 0 1rem;
}

body.woocommerce-checkout form.checkout label,
body.woocommerce-checkout form.checkout .woocommerce-form__label,
body.woocommerce-checkout form.checkout .form-row label {
  color: var(--nodos-commerce-muted);
  font-size: 0.76rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.35;
}

body.woocommerce-checkout form.checkout input.input-text,
body.woocommerce-checkout form.checkout textarea,
body.woocommerce-checkout form.checkout select,
body.woocommerce-checkout form.checkout .select2-container .select2-selection--single {
  min-height: 2.85rem;
  border: 1px solid var(--nodos-commerce-rule);
  background: var(--nodos-commerce-field);
  color: var(--nodos-commerce-ink);
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.4;
}

body.woocommerce-checkout form.checkout textarea {
  min-height: 6rem;
}

body.woocommerce-checkout form.checkout .form-row {
  margin-bottom: 0.85rem;
}

body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review {
  font-size: 0.9rem;
  font-weight: 400;
}

body.woocommerce-checkout #order_review {
  border: 1px solid var(--nodos-commerce-rule);
  background: var(--nodos-commerce-panel);
  padding: 1.15rem;
}

body.woocommerce-checkout #order_review table.shop_table {
  border: 0 !important;
  background: transparent;
  margin-bottom: 0;
}

body.woocommerce-checkout #payment {
  border: 1px solid var(--nodos-commerce-rule);
  background: var(--nodos-commerce-panel) !important;
  padding: 1.15rem;
}

body.woocommerce-checkout #payment ul.payment_methods {
  border-bottom: 1px solid var(--nodos-commerce-rule);
  padding: 0 0 1rem;
}

body.woocommerce-checkout #payment div.payment_box {
  background: transparent;
  color: var(--nodos-commerce-ink);
  font-size: 0.86rem;
  line-height: 1.55;
  margin: 0.75rem 0 0;
  padding: 0;
}

body.woocommerce-checkout #payment div.payment_box::before {
  display: none;
}

body.woocommerce-checkout #stripe-upe-element,
body.woocommerce-checkout .wc-stripe-upe-element,
body.woocommerce-checkout .StripeElement {
  min-height: 2.85rem;
}

body.woocommerce-checkout .woocommerce-privacy-policy-text,
body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper,
body.woocommerce-checkout #payment .form-row,
body.woocommerce-checkout .woocommerce-additional-fields,
body.woocommerce-checkout .woocommerce-form__label-for-checkbox {
  font-size: 0.82rem;
  line-height: 1.55;
}

body.woocommerce-checkout #place_order {
  width: 100%;
  margin-top: 1rem;
}

body.woocommerce-checkout .site-content .back-to-cart,
body.woocommerce-checkout form.checkout a[href*="/cart"],
body.woocommerce-checkout #order_review a[href*="/cart"] {
  color: var(--nodos-commerce-muted);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-decoration: none;
}

body.woocommerce-checkout .site-content .back-to-cart:hover,
body.woocommerce-checkout form.checkout a[href*="/cart"]:hover,
body.woocommerce-checkout #order_review a[href*="/cart"]:hover {
  color: var(--nodos-commerce-ink);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

@media (max-width: 921px) {
  body.woocommerce-cart .site-content,
  body.woocommerce-checkout .site-content {
    font-size: 15.5px;
  }

  body.woocommerce-cart .woocommerce-cart-form,
  body.woocommerce-cart .cart-collaterals,
  body.woocommerce-checkout form.checkout {
    width: 100%;
  }

  body.woocommerce-cart table.shop_table th,
  body.woocommerce-cart table.shop_table td,
  body.woocommerce-checkout table.shop_table th,
  body.woocommerce-checkout table.shop_table td {
    padding: 0.9rem 0.85rem;
  }

  body.woocommerce-checkout #order_review,
  body.woocommerce-checkout #payment {
    padding: 1rem;
  }
}

@media (max-width: 544px) {
  body.woocommerce-cart .entry-content,
  body.woocommerce-checkout .entry-content {
    font-size: 0.9rem;
  }

  body.woocommerce-cart .woocommerce-message,
  body.woocommerce-cart .woocommerce-info,
  body.woocommerce-checkout .woocommerce-info,
  body.woocommerce-checkout .woocommerce-message {
    padding: 0.9rem 1rem 0.9rem 2.65rem;
  }

  body.woocommerce-cart .woocommerce-message .button,
  body.woocommerce-cart .woocommerce-info .button {
    float: none;
    display: inline-flex;
    margin-top: 0.7rem;
  }

  body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
  body.woocommerce-checkout #place_order {
    font-size: 0.72rem !important;
    padding-block: 0.86rem !important;
  }
}
