/* Nidoo CSS architecture bundle.
 * Extracted from legacy source: 13-nidoo-google-sso.php.
 * Loaded only in contexts where this component is rendered.
 */
/* Cart: modern table/card treatment. */
.woocommerce-cart .woocommerce-cart-form,
.woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--nidoo-white) !important;
  border: 1px solid var(--nidoo-border) !important;
  border-radius: var(--nidoo-radius-xl) !important;
  box-shadow: var(--nidoo-shadow-card) !important;
  overflow: hidden !important;
}

.woocommerce-cart table.shop_table {
  width: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  table-layout: fixed !important;
}

.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td {
  padding: 16px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--nidoo-border) !important;
  background: var(--nidoo-white) !important;
  vertical-align: middle !important;
}

.woocommerce-cart table.shop_table th {
  color: var(--nidoo-text) !important;
  font-weight: 600 !important;
}

.woocommerce-cart table.shop_table tr:last-child td {
  border-bottom: 0 !important;
}

.woocommerce-cart .product-thumbnail img {
  border-radius: 10px !important;
  border: 1px solid var(--nidoo-border) !important;
}

.woocommerce-cart .product-remove a {
  color: #999 !important;
  font-size: 22px !important;
}

.woocommerce-cart .quantity input.qty {
  width: 52px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  border: 1px solid var(--nidoo-border) !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
  text-align: center !important;
}

.woocommerce-cart .cart_totals {
  padding: 24px !important;
}

.woocommerce-cart .cart_totals table {
  border: 0 !important;
}

.woocommerce-cart .cart_totals th,
.woocommerce-cart .cart_totals td {
  padding: 12px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--nidoo-border) !important;
}

.woocommerce-cart .cart-empty.woocommerce-info {
  margin: 0 !important;
  padding: 22px 24px !important;
  border: 0 !important;
  border-top: 3px solid var(--nidoo-primary) !important;
  border-radius: 0 !important;
  background: #faf9f7 !important;
  color: var(--nidoo-text-muted) !important;
}

.woocommerce-cart .return-to-shop {
  margin-top: 24px !important;
}

.woocommerce-cart .return-to-shop a.button {
  border-radius: var(--nidoo-radius-pill) !important;
  background: var(--nidoo-primary) !important;
  color: var(--nidoo-on-primary) !important;
  padding: 12px 22px !important;
}

/* Match WooCommerce's responsive table breakpoint, not just small phones. */
@media (max-width: 768px) {
  .woocommerce-cart .woocommerce-cart-form table.cart thead {
    display: none !important;
  }
  .woocommerce-cart .woocommerce-cart-form table.cart tbody {
    display: block;
  }
  .woocommerce-cart .woocommerce-cart-form table.cart tr.cart_item {
    position: relative;
    display: grid !important;
    grid-template-columns: 64px minmax(0, 1fr) !important;
    gap: var(--nidoo-space-3) !important;
    align-items: start !important;
    padding: 56px var(--nidoo-space-4) var(--nidoo-space-4) !important;
    border-bottom: 1px solid var(--nidoo-border);
  }
  .woocommerce-cart .woocommerce-cart-form table.cart tr.cart_item td {
    width: auto !important;
    min-width: 0;
    padding: 0 !important;
    border: 0 !important;
    text-align: left !important;
  }
  .woocommerce-cart .woocommerce-cart-form td.product-remove {
    position: absolute;
    top: 4px;
    right: var(--nidoo-space-3);
  }
  .woocommerce-cart .woocommerce-cart-form td.product-remove a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
  }
  .woocommerce-cart .woocommerce-cart-form td.product-thumbnail {
    grid-area: 1/1;
  }
  .woocommerce-cart .woocommerce-cart-form td.product-thumbnail img {
    width: 64px;
    max-width: 100%;
    height: auto;
  }
  .woocommerce-cart .woocommerce-cart-form td.product-name {
    grid-area: 1/2;
    overflow-wrap: anywhere;
  }
  /* Astra's generated label and floating variation terms steal name width. */
  .woocommerce-cart .woocommerce-cart-form td.product-name::before,
  .woocommerce-cart .woocommerce-cart-form td.product-thumbnail::before {
    display: none !important;
  }
  .woocommerce-cart .woocommerce-cart-form td.product-name dl.variation {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 4px var(--nidoo-space-2);
    margin: var(--nidoo-space-2) 0 0;
    font-size: var(--nidoo-font-size-sm);
  }
  .woocommerce-cart .woocommerce-cart-form dl.variation dt,
  .woocommerce-cart .woocommerce-cart-form dl.variation dd {
    float: none;
    min-width: 0;
    margin: 0;
    padding: 0;
  }
  .woocommerce-cart .woocommerce-cart-form dl.variation dd p {
    margin: 0;
  }
  .woocommerce-cart .woocommerce-cart-form td.product-price,
  .woocommerce-cart .woocommerce-cart-form td.product-quantity,
  .woocommerce-cart .woocommerce-cart-form td.product-subtotal {
    grid-column: 1/-1 !important;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: var(--nidoo-space-3);
  }
  .woocommerce-cart .woocommerce-cart-form tr.cart_item td::before {
    float: none !important;
  }
  .woocommerce-cart .woocommerce-cart-form td.actions {
    display: block;
    box-sizing: border-box;
  }
}
/* Cart: separate sections and normalize coupon/quantity controls. */
.woocommerce-cart .woocommerce-cart-form {
  margin-bottom: 24px !important;
}

.woocommerce-cart .cart-collaterals .cart_totals {
  margin-top: 0 !important;
}

.woocommerce-cart .coupon {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 20px 16px !important;
  border-top: 1px solid var(--nidoo-border) !important;
}

.woocommerce-cart .coupon input#coupon_code,
.woocommerce-cart .coupon .input-text {
  width: 280px !important;
  height: 48px !important;
  min-height: 48px !important;
  padding: 0 14px !important;
  border: 1.5px solid #d8d3cb !important;
  border-radius: var(--nidoo-radius-md) !important;
  box-sizing: border-box !important;
}

.woocommerce-cart .coupon button,
.woocommerce-cart .coupon .button {
  height: 48px !important;
  border-radius: var(--nidoo-radius-pill) !important;
  padding: 0 22px !important;
}

.woocommerce-cart .quantity {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0 !important;
}

.woocommerce-cart .quantity .minus,
.woocommerce-cart .quantity .plus {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  padding: 0 !important;
  border: 1px solid var(--nidoo-border) !important;
  background: var(--nidoo-white) !important;
  color: var(--nidoo-primary) !important;
  font-size: 20px !important;
  line-height: 42px !important;
  text-align: center !important;
}

.woocommerce-cart .quantity .minus {
  border-radius: 10px 0 0 10px !important;
}

.woocommerce-cart .quantity .plus {
  border-radius: 0 10px 10px 0 !important;
}

@media (max-width: 600px) {
  .woocommerce-cart .coupon {
    flex-wrap: wrap !important;
  }
  .woocommerce-cart .coupon input#coupon_code {
    flex: 1 1 100% !important;
    width: 100% !important;
  }
}
