/* WooCommerce shop / single / cart / checkout overrides to match dark theme. */

.woocommerce-notices-wrapper:empty { display: none; }

.woo-main { padding: 80px 0 60px; }

/* Shop archive */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	gap: 24px;
	grid-template-columns: repeat(4, 1fr);
	padding: 0;
	margin: 0 0 40px;
}
@media (max-width: 1280px) { .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 1024px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px)  { .woocommerce ul.products { grid-template-columns: 1fr; } }

.woocommerce ul.products li.product {
	width: 100% !important;
	margin: 0 !important;
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	overflow: hidden;
	padding: 0 !important;
	transition: transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.woocommerce ul.products li.product:hover { transform: translateY(-4px); border-color: var(--accent); box-shadow: var(--shadow-glow); }

.woocommerce ul.products li.product a img {
	border-radius: 0; margin: 0; aspect-ratio: 1.1/1; object-fit: cover;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 16px 20px 6px !important; font-size: 14px !important; color: var(--text); font-weight: 600;
}
.woocommerce ul.products li.product .price {
	padding: 0 20px 4px; color: var(--text); font-size: 18px; font-weight: 800;
}
.woocommerce ul.products li.product .price del { color: var(--text-dim); font-weight: 400; font-size: 14px; }
.woocommerce ul.products li.product .price ins { background: transparent; color: var(--text); text-decoration: none; }

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	margin: 12px 20px 20px; display: inline-flex; padding: 10px 16px;
	background: var(--gradient-primary); color: #fff !important; border-radius: var(--r-full);
	font-weight: 600; font-size: 13px; border: 0;
}

.woocommerce span.onsale {
	background: var(--red); color: #fff; padding: 4px 10px; border-radius: var(--r-full);
	min-height: 0; min-width: 0; font-weight: 700; font-size: 12px; line-height: 1.4;
	top: 12px; left: 12px; right: auto;
}

/* Single product */
.woocommerce div.product .product_title { color: var(--text); }
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--text); font-weight: 700; }
.woocommerce-tabs { margin-top: 32px; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	background: transparent; padding: 0; border-bottom: 1px solid var(--border);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent; border: 1px solid var(--border); border-bottom: 0; border-radius: var(--r) var(--r) 0 0;
	margin-right: 4px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--bg-card); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--text-2); }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: var(--bg-card); color: var(--text); border-top-color: var(--accent);
	border-radius: var(--r);
}
.woocommerce-message a.button,
.woocommerce-info a.button { background: var(--gradient-primary) !important; color: #fff !important; border-radius: var(--r-full) !important; }

/* Cart / Checkout */
.woocommerce table.shop_table {
	background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { color: var(--text-2); border-color: var(--border) !important; }
.woocommerce table.shop_table tfoot th { color: var(--text); }

.woocommerce form .form-row input,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	background: var(--bg-3); color: var(--text); border: 1px solid var(--border-2); border-radius: var(--r);
	padding: 10px 12px;
}
.woocommerce form .form-row label { color: var(--text-2); }

.woocommerce-checkout-payment { background: var(--bg-card) !important; border-radius: var(--r-lg); }
.woocommerce-checkout-payment .place-order .button {
	background: var(--gradient-primary) !important; color: #fff !important; border-radius: var(--r-full) !important;
	padding: 14px 28px !important;
}

.woocommerce-cart .cart-collaterals .cart_totals h2 { color: var(--text); }
.woocommerce a.button,
.woocommerce-page a.button,
.woocommerce input.button,
.woocommerce-page input.button {
	background: var(--gradient-primary); color: #fff; border-radius: var(--r-full); border: 0;
	padding: 12px 22px; font-weight: 600;
}
.woocommerce a.button:hover { background: var(--primary-2); color: #fff; }

/* ============================================================
   Cart / Checkout BLOCKS (the new React-based checkout).
   The classic .woocommerce styles above don't reach these,
   so we restyle the wc-block-* components for our dark theme.
   ============================================================ */

/* Page wrapper + headings */
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart {
	color: var(--text);
}
.wp-block-woocommerce-checkout h1,
.wp-block-woocommerce-checkout h2,
.wp-block-woocommerce-checkout h3,
.wp-block-woocommerce-cart h1,
.wp-block-woocommerce-cart h2,
.wp-block-woocommerce-cart h3,
.wc-block-components-title,
.wc-block-components-checkout-step__title {
	color: var(--text) !important;
}

/* Step descriptions / muted helper text */
.wc-block-components-checkout-step__description,
.wc-block-checkout__guest-checkout-notice,
.wc-block-components-form .wc-block-components-checkout-step__description,
.wc-block-components-text-input + .wc-block-components-validation-error,
.wp-block-woocommerce-checkout p {
	color: var(--text-2) !important;
}

/* === INPUT FIELDS — the main fix === */
.wc-block-components-text-input input,
.wc-block-components-text-input input.has-label,
.wc-block-components-address-form input,
.wc-block-components-textarea,
.wc-block-components-textarea textarea,
.wc-block-components-checkout-step .wc-block-components-text-input input,
.wc-block-components-form .wc-block-components-text-input input,
.wc-block-components-form input[type="text"],
.wc-block-components-form input[type="email"],
.wc-block-components-form input[type="tel"],
.wc-block-components-form input[type="number"],
.wc-block-components-form input[type="password"],
.wc-block-components-form select,
.wc-block-components-form textarea,
.wc-block-components-combobox input,
.wc-block-components-country-input input,
.wc-block-components-state-input input {
	background: var(--bg-3, #1a1f29) !important;
	color: var(--text, #f1f3f7) !important;
	border: 1px solid var(--border-2, #2a3140) !important;
	border-radius: var(--r, 8px) !important;
	-webkit-text-fill-color: var(--text, #f1f3f7) !important;
	caret-color: var(--text, #f1f3f7);
}
.wc-block-components-text-input input:focus,
.wc-block-components-form input:focus,
.wc-block-components-form select:focus,
.wc-block-components-form textarea:focus {
	border-color: var(--accent, #4f8bff) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(79, 139, 255, .25) !important;
}

/* Floating labels inside inputs */
.wc-block-components-text-input label,
.wc-block-components-text-input.is-active label,
.wc-block-components-checkbox__label,
.wc-block-components-radio-control__label,
.wc-block-components-form label {
	color: var(--text-2, #b3bac6) !important;
}
.wc-block-components-text-input.is-active label {
	color: var(--accent, #4f8bff) !important;
}

/* Browser autofill — Chrome paints inputs yellow with white text */
.wc-block-components-text-input input:-webkit-autofill,
.wc-block-components-text-input input:-webkit-autofill:hover,
.wc-block-components-text-input input:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--text, #f1f3f7) !important;
	-webkit-box-shadow: 0 0 0 1000px var(--bg-3, #1a1f29) inset !important;
	caret-color: var(--text, #f1f3f7) !important;
	transition: background-color 9999s ease-in-out 0s;
}

/* Placeholders */
.wc-block-components-text-input input::placeholder,
.wc-block-components-form input::placeholder,
.wc-block-components-form textarea::placeholder {
	color: var(--text-mute, #6a7385) !important;
	opacity: 1 !important;
}

/* Select dropdowns: keep arrow visible on dark bg */
.wc-block-components-form select {
	background-image: linear-gradient(45deg, transparent 50%, var(--text-2, #b3bac6) 50%),
	                  linear-gradient(135deg, var(--text-2, #b3bac6) 50%, transparent 50%) !important;
	background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50% !important;
	background-size: 5px 5px, 5px 5px !important;
	background-repeat: no-repeat !important;
	-webkit-appearance: none;
	appearance: none;
	padding-right: 36px !important;
}
.wc-block-components-form select option {
	background: var(--bg-2, #14181f) !important;
	color: var(--text, #f1f3f7) !important;
}

/* Checkboxes / radios */
.wc-block-components-checkbox .wc-block-components-checkbox__mark,
.wc-block-components-radio-control__option {
	background: var(--bg-3, #1a1f29);
	border-color: var(--border-2, #2a3140);
}
.wc-block-components-checkbox input[type="checkbox"]:checked + .wc-block-components-checkbox__mark {
	background: var(--accent, #4f8bff);
	border-color: var(--accent, #4f8bff);
}

/* Order summary panel (right side) */
.wc-block-components-sidebar,
.wc-block-components-totals-wrapper,
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-components-order-summary,
.wc-block-components-panel {
	background: var(--bg-card, #14181f) !important;
	color: var(--text) !important;
	border-color: var(--border, #232a36) !important;
}
.wc-block-components-product-name,
.wc-block-components-product-metadata,
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value,
.wc-block-components-product-price,
.wc-block-components-product-price__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-panel__button {
	color: var(--text) !important;
}
.wc-block-components-product-metadata__description,
.wc-block-components-totals-coupon__form input + button + .wc-block-components-totals-coupon__form-error,
.wc-block-components-product-badge,
.wc-block-components-product-price del {
	color: var(--text-2, #b3bac6) !important;
}

/* Coupon panel toggle */
.wc-block-components-totals-coupon-link,
.wc-block-components-panel__button,
.wc-block-components-button.wc-block-components-button {
	color: var(--text) !important;
}
.wc-block-components-totals-coupon__form input {
	background: var(--bg-3, #1a1f29) !important;
	color: var(--text) !important;
	border: 1px solid var(--border-2, #2a3140) !important;
}

/* Place order button */
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-checkout-actions-block button {
	background: var(--gradient-primary, linear-gradient(135deg, #4f8bff, #7a5cff)) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: var(--r-full, 999px) !important;
	font-weight: 700 !important;
}

/* Return to cart link */
.wc-block-components-checkout-return-to-cart-button {
	color: var(--text-2, #b3bac6) !important;
}

/* Notice / error banners */
.wc-block-components-notice-banner,
.wc-block-components-validation-error {
	background: rgba(220, 53, 69, .08) !important;
	color: #ff8a95 !important;
	border-color: rgba(220, 53, 69, .35) !important;
}
.wc-block-components-notice-banner.is-info {
	background: rgba(79, 139, 255, .08) !important;
	color: var(--text) !important;
	border-color: rgba(79, 139, 255, .35) !important;
}

/* Payment method radio rows (our Pay Later sits here) */
.wc-block-components-radio-control__option {
	background: var(--bg-3, #1a1f29) !important;
	color: var(--text) !important;
	border: 1px solid var(--border-2, #2a3140) !important;
	border-radius: var(--r, 8px) !important;
	margin-bottom: 8px;
	padding: 12px 14px !important;
}
.wc-block-components-radio-control__option-checked {
	border-color: var(--accent, #4f8bff) !important;
	background: rgba(79, 139, 255, .08) !important;
}
.wc-block-components-radio-control__label,
.wc-block-components-radio-control__description {
	color: var(--text) !important;
}

/* Phone / postal subtext */
.wc-block-checkout__add-note,
.wc-block-checkout__terms,
.wc-block-checkout__terms a {
	color: var(--text-2, #b3bac6) !important;
}
.wc-block-checkout__terms a { text-decoration: underline; }
