/**
 * Zorem Theme – WooCommerce Styles
 *
 * Replaces the default WooCommerce "general" stylesheet
 * with styles that match the Zorem design language:
 *   - Inter font, blue-600 accent, rounded corners
 *   - Tailwind-compatible utility approach
 *
 * @package Zorem
 */

/* ──────────────────────────────────────────────
 * 0. General resets for WooCommerce
 * ────────────────────────────────────────────── */

.woocommerce,
.woocommerce-page {
	font-family: 'Inter', sans-serif;
}

.woocommerce img,
.woocommerce-page img {
	max-width: 100%;
	height: auto;
}

/* ──────────────────────────────────────────────
 * 1. Notices / Messages
 * ────────────────────────────────────────────── */

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-noreviews,
.woocommerce .wc-block-components-notice-banner {
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
	border-radius: 0.75rem;
	font-size: 0.875rem;
	font-weight: 500;
	border: none;
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.woocommerce .woocommerce-message {
	background: #f0fdf4;
	color: #166534;
	border-left: 4px solid #22c55e;
}

.woocommerce .woocommerce-info {
	background: #eff6ff;
	color: #1e40af;
	border-left: 4px solid #3b82f6;
}

.woocommerce .woocommerce-error {
	background: #fef2f2;
	color: #991b1b;
	border-left: 4px solid #ef4444;
	list-style: none;
	padding-left: 1.25rem;
}

.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before {
	display: none;
}

.woocommerce .woocommerce-message a.button,
.woocommerce .woocommerce-message a.restore-item {
	background: #166534;
	color: #fff;
	padding: 0.375rem 1rem;
	border-radius: 0.5rem;
	font-size: 0.8125rem;
	font-weight: 600;
	text-decoration: none;
	margin-left: auto;
	white-space: nowrap;
}

.woocommerce .woocommerce-message a.button:hover {
	background: #15803d;
}

/* ──────────────────────────────────────────────
 * 2. Buttons
 * ────────────────────────────────────────────── */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button,
.woocommerce .wc-block-components-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.5rem;
	background-color: #2563eb;
	color: #fff !important;
	font-size: 0.875rem;
	font-weight: 600;
	border: none;
	border-radius: 0.75rem;
	cursor: pointer;
	transition: all 0.15s ease;
	text-decoration: none;
	line-height: 1.5;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .button:hover {
	background-color: #1d4ed8;
	color: #fff !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

.woocommerce a.button:active,
.woocommerce button.button:active,
.woocommerce input.button:active {
	transform: scale(0.98);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt {
	background-color: #2563eb;
	color: #fff !important;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background-color: #1d4ed8;
}

.woocommerce a.button.alt.disabled,
.woocommerce button.button.alt.disabled,
.woocommerce a.button.alt:disabled,
.woocommerce button.button.alt:disabled {
	background-color: #93c5fd;
	cursor: not-allowed;
	opacity: 0.6;
}

/* Outline / secondary buttons */
.woocommerce .woocommerce-button--previous,
.woocommerce a.button:not(.alt):not(.checkout-button):not(.wp-element-button) {
	background-color: #fff;
	color: #374151 !important;
	border: 1.5px solid #e5e7eb;
}

.woocommerce .woocommerce-button--previous:hover,
.woocommerce a.button:not(.alt):not(.checkout-button):not(.wp-element-button):hover {
	background-color: #f9fafb;
	border-color: #d1d5db;
	color: #111827 !important;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

/* Checkout / Place Order button – always primary */
.woocommerce .checkout-button,
.woocommerce #place_order,
.woocommerce .wp-element-button {
	background-color: #2563eb !important;
	color: #fff !important;
	border: none !important;
	width: 100%;
	padding: 1rem 2rem;
	font-size: 1rem;
	font-weight: 700;
	border-radius: 0.75rem;
}

.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover,
.woocommerce .wp-element-button:hover {
	background-color: #1d4ed8 !important;
}

/* ──────────────────────────────────────────────
 * 3. Form fields
 * ────────────────────────────────────────────── */

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce input[type="url"],
.woocommerce select,
.woocommerce textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1.5px solid #e5e7eb;
	border-radius: 0.75rem;
	font-size: 0.875rem;
	font-family: 'Inter', sans-serif;
	color: #1f2937;
	background-color: #fff;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce input[type="text"]:focus,
.woocommerce input[type="email"]:focus,
.woocommerce input[type="tel"]:focus,
.woocommerce input[type="password"]:focus,
.woocommerce input[type="number"]:focus,
.woocommerce select:focus,
.woocommerce textarea:focus {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.woocommerce form .form-row label {
	display: block;
	font-size: 0.875rem;
	font-weight: 600;
	color: #374151;
	margin-bottom: 0.375rem;
}

.woocommerce form .form-row label .required {
	color: #ef4444;
}

.woocommerce form .form-row {
	margin-bottom: 1.25rem;
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
	width: 48%;
}

.woocommerce form .form-row-first {
	float: left;
}

.woocommerce form .form-row-last {
	float: right;
}

.woocommerce form .form-row-wide {
	width: 100%;
	clear: both;
}

.woocommerce form .form-row::after {
	content: '';
	display: table;
	clear: both;
}

/* Select2 dropdowns (used by WooCommerce for country/state) */
.woocommerce .select2-container--default .select2-selection--single {
	height: auto;
	padding: 0.75rem 1rem;
	border: 1.5px solid #e5e7eb;
	border-radius: 0.75rem;
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.5;
	font-size: 0.875rem;
	color: #1f2937;
	padding: 0;
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	right: 0.75rem;
}

.woocommerce .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce .select2-container--default.select2-container--open .select2-selection--single {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.select2-dropdown {
	border: 1.5px solid #e5e7eb;
	border-radius: 0.75rem;
	box-shadow: 0 10px 25px rgba(0,0,0,0.08);
	overflow: hidden;
}

.select2-results__option {
	padding: 0.625rem 1rem;
	font-size: 0.875rem;
}

.select2-results__option--highlighted[aria-selected] {
	background-color: #eff6ff !important;
	color: #2563eb !important;
}

/* ──────────────────────────────────────────────
 * 4. Cart page – Card-based layout
 * ────────────────────────────────────────────── */

.woocommerce-cart .woocommerce {
	max-width: 100%;
}

/* ── Cart two-column layout ── */
.zorem-cart-grid {
	display: flex !important;
	gap: 3rem;
	align-items: flex-start;
}

.zorem-cart-left {
	flex: 1 1 0%;
	min-width: 0;
}

.zorem-cart-right {
	flex: 0 0 480px;
	width: 480px;
	max-width: 100%;
}

@media (max-width: 1024px) {
	.zorem-cart-grid {
		flex-direction: column;
	}

	.zorem-cart-right {
		flex: 0 0 auto;
		width: 100%;
	}
}

/* Hide default WC table elements (we use card layout) */
.woocommerce-cart table.shop_table {
	display: none;
}

/* Override WC default cart-collaterals float/width */
.woocommerce-cart .cart-collaterals {
	float: none !important;
	width: 100% !important;
}

/* Cart card hover */
.woocommerce-cart .cart_item {
	transition: all 0.2s ease;
}

.woocommerce-cart .cart_item:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
	border-color: #cbd5e1;
}

/* Remove button – small, inline */
.woocommerce-cart a.remove {
	display: inline-flex !important;
	align-items: center;
	gap: 0.25rem;
	color: #ef4444 !important;
	text-decoration: none;
	font-size: 0.875rem !important;
	font-weight: 500;
	width: auto !important;
	height: auto !important;
	line-height: 1.5 !important;
	background: none !important;
}

.woocommerce-cart a.remove:hover {
	color: #dc2626 !important;
	background: none !important;
}

/* Cart totals in sidebar */
.woocommerce-cart .cart_totals {
	float: none !important;
	width: 100% !important;
}

/* Product thumbnail in icon area */
.woocommerce-cart .cart_item .product-thumbnail img,
.woocommerce-cart .cart_item img.wp-post-image {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	border-radius: 0.5rem;
}

/* Custom checkout button in sidebar */
.zorem-checkout-btn {
	display: block !important;
	text-decoration: none !important;
	box-sizing: border-box;
}

.zorem-checkout-btn:hover {
	color: #fff !important;
	text-decoration: none !important;
}

/* Coupon sidebar input */
.zorem-sidebar-coupon input:focus {
	border-color: #2563eb;
}

/* Hide cross-sells on cart */
.woocommerce-cart .cross-sells {
	display: none;
}

/* ── Cart sidebar: Recurring totals (WCS plugin) ── */
.zorem-recurring-totals-wrap {
	background: #f8fafc;
	border-radius: 0.75rem;
	padding: 1rem;
	margin-bottom: 1.5rem;
	border: 1px solid #e2e8f0;
}

.zorem-recurring-totals {
	width: 100%;
	border-collapse: collapse;
}

.zorem-recurring-totals tr.recurring-totals th {
	text-align: left;
	font-size: 0.875rem;
	font-weight: 600;
	color: #0f172a;
	padding: 0 0 0.75rem;
	border: none;
}

.zorem-recurring-totals tr.cart-subtotal.recurring-total th,
.zorem-recurring-totals tr.cart-subtotal.recurring-total td {
	font-size: 0.875rem;
	font-weight: 400;
	color: #475569;
	padding: 0.25rem 0;
	border: none;
	text-align: left;
}

.zorem-recurring-totals tr.cart-subtotal.recurring-total td {
	text-align: right;
	font-weight: 500;
	color: #0f172a;
}

.zorem-recurring-totals tr.order-total.recurring-total th,
.zorem-recurring-totals tr.order-total.recurring-total td {
	font-size: 0.875rem;
	font-weight: 700;
	color: #0f172a;
	padding: 0.5rem 0 0.25rem;
	border-top: 1px solid #e2e8f0;
	text-align: left;
}

.zorem-recurring-totals tr.order-total.recurring-total td {
	text-align: right;
}

/* First renewal date row */
.zorem-recurring-totals tr.recurring-total td small,
.zorem-recurring-totals tr.order-total.recurring-total td small {
	display: block;
	font-size: 0.75rem;
	color: #94a3b8;
	font-weight: 400;
	margin-top: 0.25rem;
}

/* ──────────────────────────────────────────────
 * 5. Checkout page – Two-panel layout
 * ────────────────────────────────────────────── */

/* Full-width checkout */
.zorem-checkout-page .woocommerce {
	max-width: 100%;
	padding: 0;
}

.zorem-checkout-page .entry-title {
	display: none;
}

/* ── Checkout two-panel layout ── */
.zorem-checkout-layout {
	display: flex !important;
	gap: 3rem;
}

.zorem-checkout-left {
	flex: 1 1 0%;
	min-width: 0;
	order: 1;
}

.zorem-checkout-right {
	flex: 0 0 460px;
	width: 460px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 1rem;
	padding: 2rem;
	order: 2;
	align-self: flex-start;
}

@media (max-width: 1024px) {
	.zorem-checkout-layout {
		flex-direction: column;
		gap: 2rem;
	}

	.zorem-checkout-left {
		order: 2;
	}

	.zorem-checkout-right {
		flex: 0 0 auto;
		width: 100%;
		order: 1;
	}
}

/* Remove default col2-set grid (we use custom flex layout) */
.zorem-checkout-page .col2-set {
	display: block;
}

.zorem-checkout-page .col2-set .col-1,
.zorem-checkout-page .col2-set .col-2 {
	background: transparent;
	padding: 0;
	border: none;
	border-radius: 0;
}

/* Hide default shipping section (digital products) */
.zorem-checkout-page .col2-set .col-2 {
	display: none;
}

/* Order review in right panel */
.zorem-checkout-page #order_review {
	background: transparent;
	padding: 0;
	border: none;
	border-radius: 0;
}

.zorem-checkout-page #order_review_heading {
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: #64748b;
	margin: 0 0 1.5rem;
}

/* Payment methods – radio card style */
.zorem-checkout-page .wc_payment_methods {
	list-style: none;
	padding: 0;
	margin: 0;
}

.zorem-checkout-page .wc_payment_method {
	padding: 1rem 1.25rem;
	border-bottom: 1px solid #e2e8f0;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.zorem-checkout-page .wc_payment_method:first-child {
	border-radius: 0;
}

.zorem-checkout-page .wc_payment_method:last-child {
	border-bottom: none;
}

.zorem-checkout-page .wc_payment_method:hover {
	background-color: #f8fafc;
}

.zorem-checkout-page .wc_payment_method.zorem-payment-active,
.zorem-checkout-page .wc_payment_method:has(input:checked) {
	background-color: #eff6ff40;
}

/* Payment method radio */
.zorem-checkout-page .wc_payment_method input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 1rem;
	height: 1rem;
	border: 2px solid #cbd5e1;
	border-radius: 50%;
	position: relative;
	cursor: pointer;
	vertical-align: middle;
	margin-right: 0.5rem;
	flex-shrink: 0;
}

.zorem-checkout-page .wc_payment_method input[type="radio"]:checked {
	border-color: #2563eb;
	background-color: #2563eb;
}

.zorem-checkout-page .wc_payment_method input[type="radio"]:checked::after {
	content: '';
	display: block;
	width: 0.375rem;
	height: 0.375rem;
	background: #fff;
	border-radius: 50%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.zorem-checkout-page .wc_payment_method label {
	font-weight: 500;
	color: #1e293b;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	flex: 1;
}

/* Payment method row: label + icon right-aligned */
.zorem-checkout-page .wc_payment_method > label,
.zorem-checkout-page .wc_payment_method > input + label {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
}

.zorem-checkout-page .wc_payment_method label img {
	max-height: 1.25rem;
	width: auto;
}

/* Payment box (Stripe card fields, etc.) */
.zorem-checkout-page .payment_box {
	padding: 1rem 1.25rem;
	margin-top: 0;
	font-size: 0.875rem;
	color: #64748b;
	background: #f8fafc !important;
	border-top: 1px solid #e2e8f0;
}

.zorem-checkout-page .payment_box::before {
	display: none !important;
}

/* Stripe Elements container */
.zorem-checkout-page .payment_box .StripeElement,
.zorem-checkout-page .payment_box .wc-stripe-elements-field,
.zorem-checkout-page .payment_box input.input-text,
.zorem-checkout-page .payment_box .wc-stripe-upe-element {
	border: 1px solid #cbd5e1;
	border-radius: 0.5rem;
	padding: 0.625rem 0.75rem;
	background: #fff;
	transition: border-color 0.15s ease;
}

.zorem-checkout-page .payment_box .StripeElement--focus,
.zorem-checkout-page .payment_box .wc-stripe-elements-field:focus-within,
.zorem-checkout-page .payment_box input.input-text:focus {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* Stripe inline card labels */
.zorem-checkout-page .payment_box label {
	display: block;
	font-size: 0.75rem;
	font-weight: 500;
	text-transform: uppercase;
	color: #64748b;
	margin-bottom: 0.25rem;
}

/* Stripe card fields layout (exp + cvc side by side) */
.zorem-checkout-page .payment_box .wc-stripe-elements-field.StripeElement,
.zorem-checkout-page .payment_box .wc-stripe-upe-element {
	margin-bottom: 1rem;
}

/* Terms */
.zorem-checkout-page .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 0;
}

/* #payment background – override WC default */
.zorem-checkout-page #payment,
.zorem-checkout-page .woocommerce-checkout-payment {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	border-radius: 0 !important;
}

/* Place order / Pay button */
.zorem-pay-btn {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100% !important;
	padding: 1rem 2rem !important;
	font-size: 1.125rem !important;
	font-weight: 700 !important;
	background-color: #2563eb !important;
	color: #fff !important;
	border: none !important;
	border-radius: 0.75rem !important;
	box-shadow: 0 4px 14px rgba(37, 99, 235, 0.2);
	cursor: pointer;
	transition: all 0.15s ease;
	margin-top: 2rem;
}

.zorem-pay-btn:hover {
	background-color: #1d4ed8 !important;
}

.zorem-pay-btn:active {
	transform: scale(0.99);
}

/* Lock icon before button text */
.zorem-pay-btn::before {
	content: '';
	display: inline-block;
	width: 1rem;
	height: 1rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='11' x='3' y='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	flex-shrink: 0;
}

/* City + ZIP side by side */
.zorem-city-zip-row {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.zorem-city-zip-row .form-row {
	margin-bottom: 0 !important;
}


/* Trust icons grid */
.zorem-trust-icons {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}

@media (max-width: 640px) {
	.zorem-trust-icons {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Hide additional information / order notes on checkout */
.zorem-checkout-page .woocommerce-additional-fields {
	display: none !important;
}

/* Hide WC default privacy policy text (we use custom terms text) */
.zorem-checkout-page .woocommerce-privacy-policy-text,
.zorem-checkout-page .woocommerce-terms-and-conditions-wrapper {
	display: none !important;
}

/* Billing address fields inside payment – no labels */
.zorem-billing-fields .form-row > label {
	display: none !important;
}

/* Country select: force full width */
.zorem-billing-fields .form-row select,
.zorem-billing-fields .select2-container {
	width: 100% !important;
}

.zorem-billing-fields .select2-container--default .select2-selection--single {
	height: auto;
	padding: 0.75rem 2.5rem 0.75rem 1rem;
	border: 1.5px solid #e2e8f0;
	border-radius: 0.75rem;
	background: #fff;
}

.zorem-billing-fields .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.5;
	font-size: 0.875rem;
	color: #1e293b;
	padding: 0;
}

/* Clean chevron arrow for country dropdown */
.zorem-billing-fields .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	right: 0.875rem;
	top: 0;
	width: 1.25rem;
}

.zorem-billing-fields .select2-container--default .select2-selection--single .select2-selection__arrow b {
	border: none !important;
	width: 0.75rem;
	height: 0.75rem;
	margin: 0 !important;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
}

.zorem-billing-fields .select2-container--default.select2-container--focus .select2-selection--single,
.zorem-billing-fields .select2-container--default.select2-container--open .select2-selection--single {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* Checkout form fields */
.zorem-checkout-page .form-row {
	margin-bottom: 1rem;
	padding: 0;
}

/* Hide labels on checkout fields (placeholder-only design) */
.zorem-checkout-page #customer_details .form-row > label,
.zorem-checkout-page .woocommerce-billing-fields .form-row > label {
	display: none !important;
}

.zorem-checkout-page .form-row label .required {
	color: #ef4444;
}

.zorem-checkout-page .form-row input.input-text,
.zorem-checkout-page .form-row select,
.zorem-checkout-page .form-row textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1.5px solid #e2e8f0;
	border-radius: 0.75rem;
	font-size: 0.875rem;
	color: #1e293b;
	background: #fff;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	outline: none;
}

.zorem-checkout-page .form-row input.input-text:focus,
.zorem-checkout-page .form-row select:focus {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* Validation: red border on invalid fields */
.zorem-checkout-page .form-row.woocommerce-invalid input.input-text,
.zorem-checkout-page .form-row.woocommerce-invalid select,
.zorem-checkout-page .form-row.woocommerce-invalid textarea {
	border-color: #ef4444;
}

.zorem-checkout-page .form-row.woocommerce-invalid input.input-text:focus,
.zorem-checkout-page .form-row.woocommerce-invalid select:focus {
	border-color: #ef4444;
	box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}

.zorem-checkout-page .form-row.woocommerce-invalid .select2-container--default .select2-selection--single {
	border-color: #ef4444;
}

/* Validation: hide inline error text below fields (banner handles it) */
.zorem-checkout-page .form-row.woocommerce-invalid {
	font-size: 0;
}

.zorem-checkout-page .form-row.woocommerce-invalid .woocommerce-input-wrapper,
.zorem-checkout-page .form-row.woocommerce-invalid input.input-text,
.zorem-checkout-page .form-row.woocommerce-invalid select,
.zorem-checkout-page .form-row.woocommerce-invalid textarea,
.zorem-checkout-page .form-row.woocommerce-invalid .select2-container {
	font-size: 0.875rem;
}

/* Checkout error notices */
.zorem-checkout-page .woocommerce-NoticeGroup-checkout {
	margin-bottom: 1.5rem;
}

.zorem-checkout-page .woocommerce-NoticeGroup-checkout .woocommerce-error,
.zorem-checkout-page .woocommerce-error {
	display: block;
	background: #fef2f2;
	color: #dc2626;
	border-left: 4px solid #ef4444;
	padding: 0.875rem 1.25rem;
	margin: 0 0 1.5rem;
	border-radius: 0.75rem;
	font-size: 0.875rem;
	font-weight: 500;
	list-style: none;
}

.zorem-checkout-page .woocommerce-NoticeGroup-checkout .woocommerce-error li,
.zorem-checkout-page .woocommerce-error li {
	color: #dc2626;
	list-style: none;
	padding: 0;
	margin: 0;
}

.zorem-checkout-page .woocommerce-error li + li {
	margin-top: 0.25rem;
}

/* Remove WC default form-row float/width overrides */
.zorem-checkout-page .form-row-first,
.zorem-checkout-page .form-row-last {
	float: none;
	width: 100%;
}

/* Select2 on checkout */
.zorem-checkout-page .select2-container {
	width: 100% !important;
}

.zorem-checkout-page .select2-container--default .select2-selection--single {
	height: auto;
	padding: 0.75rem 2.5rem 0.75rem 1rem;
	border: 1.5px solid #e2e8f0;
	border-radius: 0.75rem;
	background: #fff;
}

.zorem-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.5;
	font-size: 0.875rem;
	color: #1e293b;
	padding: 0;
}

.zorem-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	right: 0.875rem;
	top: 0;
	width: 1.25rem;
}

.zorem-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow b {
	border: none !important;
	width: 0.75rem;
	height: 0.75rem;
	margin: 0 !important;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
}

.zorem-checkout-page .select2-container--default.select2-container--focus .select2-selection--single,
.zorem-checkout-page .select2-container--default.select2-container--open .select2-selection--single {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* Hide login/coupon toggles on custom checkout */
.zorem-checkout-page .woocommerce-form-login-toggle,
.zorem-checkout-page .woocommerce-form-coupon-toggle {
	display: none;
}

/* Login prompt on checkout */
.woocommerce .woocommerce-form-login-toggle .woocommerce-info {
	background: #eff6ff;
	color: #1e40af;
	border-left: 4px solid #3b82f6;
}

.woocommerce .woocommerce-form-login-toggle .woocommerce-info a {
	color: #2563eb;
	font-weight: 600;
}

.woocommerce form.checkout_coupon,
.woocommerce form.login {
	background: #fff;
	padding: 1.5rem;
	border: 1.5px solid #e5e7eb;
	border-radius: 0.75rem;
	margin-bottom: 1.5rem;
}

/* Terms checkbox */
.woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 1.5rem;
}

.woocommerce-terms-and-conditions-wrapper label {
	font-size: 0.875rem;
	color: #6b7280;
}

.woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	cursor: pointer;
}

.woocommerce-form__label-for-checkbox input[type="checkbox"] {
	margin-top: 0.25rem;
	accent-color: #2563eb;
	width: 1rem;
	height: 1rem;
}

/* Checkout review order table (hidden, replaced by custom template) */
.zorem-checkout-page .woocommerce-checkout-review-order-table {
	display: none;
}

/* (Mobile checkout responsive rules are handled in .zorem-checkout-layout above) */

/* ──────────────────────────────────────────────
 * 6. My Account page – full-viewport sidebar layout
 * ────────────────────────────────────────────── */

/* Remove all body margin/padding for the account app shell */
body.zorem-myaccount {
	margin: 0;
	padding: 0;
}

.zorem-myaccount .zorem-myaccount-wrapper {
	max-width: 100%;
	padding: 0;
}

.zorem-myaccount .woocommerce-MyAccount-navigation {
	float: none;
	width: 16rem;
	min-width: 16rem;
	flex-shrink: 0;
	margin: 0;
}

.zorem-myaccount .woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
	background: transparent;
	border: none;
	border-radius: 0;
}

.zorem-myaccount .woocommerce-MyAccount-content {
	overflow: visible;
}

/* Hide any page title remnants */
.zorem-myaccount .entry-title,
.zorem-myaccount .woocommerce > h1:first-child,
.zorem-myaccount .woocommerce > h2:first-child {
	display: none !important;
}

/* ──────────────────────────────────────────────
 * 7. Login / Registration forms
 * ────────────────────────────────────────────── */

.woocommerce-account .u-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
}

@media (max-width: 768px) {
	.woocommerce-account .u-columns {
		grid-template-columns: 1fr;
	}
}

.woocommerce form.woocommerce-form-register {
	background: #fff;
	padding: 2rem;
	border: 1.5px solid #e5e7eb;
	border-radius: 1rem;
}

/* Login form inside the Zorem card — reset old styles */
.woocommerce form.woocommerce-form-login.space-y-6,
.woocommerce form.lost_reset_password.space-y-6 {
	background: transparent;
	padding: 0;
	border: none;
	border-radius: 0;
}

/* Fallback for non-overridden login forms */
.woocommerce form.woocommerce-form-login:not(.space-y-6) {
	background: #fff;
	padding: 2rem;
	border: 1.5px solid #e5e7eb;
	border-radius: 1rem;
}

.woocommerce form.woocommerce-form-login h2,
.woocommerce form.woocommerce-form-register h2 {
	font-size: 1.5rem;
	font-weight: 800;
	color: #1f2937;
	margin-bottom: 1.5rem;
}

.woocommerce .woocommerce-form-login__rememberme {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem;
	font-size: 0.875rem;
	color: #6b7280;
}

.woocommerce .woocommerce-LostPassword {
	margin-top: 1rem;
}

.woocommerce .woocommerce-LostPassword a {
	color: #2563eb;
	font-size: 0.875rem;
	font-weight: 500;
}

.woocommerce .woocommerce-LostPassword a:hover {
	color: #1d4ed8;
	text-decoration: underline;
}

/* Zorem login & lost-password forms – plugin-injected fields (e.g. CAPTCHA) */
.woocommerce-form-login.space-y-6 .form-row,
.woocommerce-form-login.space-y-6 p.form-row,
.lost_reset_password.space-y-6 .form-row,
.lost_reset_password.space-y-6 p.form-row {
	margin-bottom: 0;
}

.woocommerce-form-login.space-y-6 p.form-row label,
.lost_reset_password.space-y-6 p.form-row label {
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	color: #334155;
	margin-bottom: 0.5rem;
}

.woocommerce-form-login.space-y-6 p.form-row input[type="text"],
.woocommerce-form-login.space-y-6 p.form-row input[type="number"],
.lost_reset_password.space-y-6 p.form-row input[type="text"],
.lost_reset_password.space-y-6 p.form-row input[type="number"] {
	width: 100%;
	padding: 1rem 1.25rem;
	border: 1px solid #e2e8f0;
	border-radius: 1rem;
	background-color: #f8fafc;
	font-weight: 500;
	outline: none;
	transition: all 0.2s;
}

.woocommerce-form-login.space-y-6 p.form-row input:focus,
.lost_reset_password.space-y-6 p.form-row input:focus {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* WooCommerce notices on login / lost-password page */
.woocommerce-form-login.space-y-6 .woocommerce-error,
.woocommerce-form-login.space-y-6 .woocommerce-message,
.lost_reset_password.space-y-6 .woocommerce-error,
.lost_reset_password.space-y-6 .woocommerce-message {
	border-radius: 1rem;
	margin-bottom: 1.5rem;
}

/* Notices inside the Zorem form card (captured from before-form hooks) */
.zorem-form-notices .woocommerce-error,
.zorem-form-notices .woocommerce-message,
.zorem-form-notices .woocommerce-info {
	padding: 0.875rem 1.25rem;
	border-radius: 1rem;
	font-size: 0.875rem;
	font-weight: 500;
	margin: 0;
	list-style: none;
}

.zorem-form-notices .woocommerce-error {
	background: #fef2f2;
	color: #991b1b;
	border-left: 4px solid #ef4444;
}

.zorem-form-notices .woocommerce-message {
	background: #f0fdf4;
	color: #166534;
	border-left: 4px solid #22c55e;
}

.zorem-form-notices .woocommerce-info {
	background: #eff6ff;
	color: #1e40af;
	border-left: 4px solid #3b82f6;
}

/* ──────────────────────────────────────────────
 * 8. Shop / Archive / Product grid
 * ────────────────────────────────────────────── */

.woocommerce .woocommerce-result-count {
	font-size: 0.875rem;
	color: #6b7280;
	margin-bottom: 1rem;
}

.woocommerce .woocommerce-ordering select {
	padding: 0.5rem 2rem 0.5rem 0.75rem;
	border: 1.5px solid #e5e7eb;
	border-radius: 0.5rem;
	font-size: 0.875rem;
	background-color: #fff;
	cursor: pointer;
}

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

@media (max-width: 1024px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 768px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.woocommerce ul.products {
		grid-template-columns: 1fr;
	}
}

.woocommerce ul.products li.product {
	background: #fff;
	border: 1.5px solid #e5e7eb;
	border-radius: 1rem;
	overflow: hidden;
	transition: all 0.2s ease;
	padding: 0;
	margin: 0;
	width: auto !important;
	float: none !important;
}

.woocommerce ul.products li.product:hover {
	border-color: #d1d5db;
	box-shadow: 0 8px 25px rgba(0,0,0,0.06);
	transform: translateY(-2px);
}

.woocommerce ul.products li.product a img {
	margin: 0;
	border-radius: 0;
	aspect-ratio: 1;
	object-fit: cover;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 0.9375rem;
	font-weight: 700;
	color: #1f2937;
	padding: 0.75rem 1rem 0.25rem;
	margin: 0;
}

.woocommerce ul.products li.product .price {
	padding: 0 1rem 0.75rem;
	font-size: 0.9375rem;
	font-weight: 800;
	color: #2563eb;
}

.woocommerce ul.products li.product .price del {
	color: #9ca3af;
	font-weight: 500;
}

.woocommerce ul.products li.product .price ins {
	text-decoration: none;
	font-weight: 800;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button {
	margin: 0 1rem 1rem;
	width: calc(100% - 2rem);
	text-align: center;
	padding: 0.625rem 1rem;
	font-size: 0.8125rem;
}

/* Sale badge */
.woocommerce span.onsale {
	background: #ef4444;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	padding: 0.25rem 0.75rem;
	border-radius: 0.5rem;
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 2;
	min-width: auto;
	min-height: auto;
	line-height: 1.5;
}

/* Star ratings */
.woocommerce .star-rating {
	color: #f59e0b;
	font-size: 0.875rem;
}

/* ──────────────────────────────────────────────
 * 9. Pagination
 * ────────────────────────────────────────────── */

.woocommerce nav.woocommerce-pagination {
	margin-top: 2rem;
	text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	gap: 0.25rem;
	list-style: none;
	padding: 0;
	border: none;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: none;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span.current {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 0.5rem;
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	transition: all 0.15s;
}

.woocommerce nav.woocommerce-pagination ul li a {
	color: #6b7280;
	background: #fff;
	border: 1.5px solid #e5e7eb;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: #f9fafb;
	color: #2563eb;
	border-color: #2563eb;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: #2563eb;
	color: #fff;
	border: 1.5px solid #2563eb;
}

/* ──────────────────────────────────────────────
 * 10. Order received / Thank you page
 * ────────────────────────────────────────────── */

/* Hide default WC thank you elements (replaced by custom template) */
.woocommerce-order-received .woocommerce-thankyou-order-received,
.woocommerce-order-received .woocommerce-order-overview,
.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details {
	display: none !important;
}

/* Hide payment gateway messages on thank you page */
.zorem-thankyou-hooks {
	display: none !important;
}

/* Hide page title on order-received */
.woocommerce-order-received .entry-title {
	display: none !important;
}

/* Full-page centered layout */
.zorem-thankyou {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 70vh;
	padding: 3rem 1rem;
	max-width: 42rem;
	margin: 0 auto;
}

/* Success icon circle */
.zorem-thankyou-icon {
	width: 6rem;
	height: 6rem;
	background: #ecfdf5;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 2rem;
}

.zorem-thankyou-icon--failed {
	background: #fef2f2;
}

/* Failed state */
.zorem-thankyou-failed {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

/* Order details card */
.zorem-thankyou-card {
	background: #f8fafc;
	border: 1.5px solid #e2e8f0;
	border-radius: 1rem;
	padding: 1.5rem 2rem;
	margin-bottom: 2rem;
	text-align: left;
	width: 100%;
	max-width: 32rem;
}

.zorem-thankyou-card-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 1.5rem;
	margin-bottom: 1.5rem;
	border-bottom: 1px solid #e2e8f0;
}

/* Primary button (Go to Dashboard) */
.zorem-thankyou-btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.75rem 2rem;
	background-color: #2563eb;
	color: #fff !important;
	font-weight: 700;
	font-size: 0.9375rem;
	border-radius: 0.75rem;
	text-decoration: none !important;
	transition: all 0.15s ease;
	box-shadow: 0 4px 14px rgba(37, 99, 235, 0.2);
	min-width: 12rem;
}

.zorem-thankyou-btn-primary:hover {
	background-color: #1d4ed8;
	color: #fff !important;
	transform: translateY(-1px);
}

/* Secondary button (Return to Home) */
.zorem-thankyou-btn-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.75rem 2rem;
	background-color: #fff;
	color: #475569 !important;
	font-weight: 500;
	font-size: 0.9375rem;
	border: 1.5px solid #e2e8f0;
	border-radius: 0.75rem;
	text-decoration: none !important;
	transition: all 0.15s ease;
	min-width: 12rem;
}

.zorem-thankyou-btn-secondary:hover {
	background-color: #f8fafc;
	border-color: #cbd5e1;
	color: #1e293b !important;
}

/* Font-mono for order number */
.font-mono {
	font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;
}

@media (max-width: 640px) {
	.zorem-thankyou-card {
		padding: 1.25rem;
	}

	.zorem-thankyou-btn-primary,
	.zorem-thankyou-btn-secondary {
		width: 100%;
	}
}

/* ──────────────────────────────────────────────
 * 10b. Order Pay page (retry payment)
 * ────────────────────────────────────────────── */

/* Hide page title on order-pay */
.zorem-order-pay-page .entry-title {
	display: none !important;
}

/* Centered layout */
.zorem-order-pay {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 32rem;
	margin: 0 auto;
	padding: 3rem 1rem;
}

/* Header section */
.zorem-order-pay-header {
	text-align: center;
	margin-bottom: 2rem;
}

/* Order summary card */
.zorem-order-pay-card {
	background: #f8fafc;
	border: 1.5px solid #e2e8f0;
	border-radius: 1rem;
	padding: 1.5rem;
	width: 100%;
	margin-bottom: 1.5rem;
}

/* Item rows */
.zorem-order-pay-items {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.zorem-order-pay-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.zorem-order-pay-item-icon {
	width: 2.25rem;
	height: 2.25rem;
	background: #eff6ff;
	border-radius: 0.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

/* Totals */
.zorem-order-pay-totals {
	border-top: 1px solid #e2e8f0;
	padding-top: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.zorem-order-pay-total-row {
	display: flex;
	justify-content: space-between;
	font-size: 0.875rem;
}

.zorem-order-pay-total-final {
	padding-top: 0.75rem;
	margin-top: 0.25rem;
	border-top: 1px solid #e2e8f0;
	font-weight: 700;
	font-size: 1rem;
}

.zorem-order-pay-total-final span {
	font-weight: 700;
	color: #0f172a;
}

/* Payment form */
.zorem-order-pay-form {
	width: 100%;
}

/* Payment methods styling (reuse checkout styles) */
.zorem-order-pay-page .wc_payment_methods {
	list-style: none;
	padding: 0;
	margin: 0;
}

.zorem-order-pay-page .wc_payment_method {
	padding: 1rem 1.25rem;
	border-bottom: 1px solid #e2e8f0;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.zorem-order-pay-page .wc_payment_method:last-child {
	border-bottom: none;
}

.zorem-order-pay-page .wc_payment_method:hover {
	background-color: #f8fafc;
}

/* Radio buttons */
.zorem-order-pay-page .wc_payment_method input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 1rem;
	height: 1rem;
	border: 2px solid #cbd5e1;
	border-radius: 50%;
	position: relative;
	cursor: pointer;
	vertical-align: middle;
	margin-right: 0.5rem;
	flex-shrink: 0;
}

.zorem-order-pay-page .wc_payment_method input[type="radio"]:checked {
	border-color: #2563eb;
	background-color: #2563eb;
}

.zorem-order-pay-page .wc_payment_method input[type="radio"]:checked::after {
	content: '';
	display: block;
	width: 0.375rem;
	height: 0.375rem;
	background: #fff;
	border-radius: 50%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.zorem-order-pay-page .wc_payment_method label {
	font-weight: 500;
	color: #1e293b;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
}

.zorem-order-pay-page .wc_payment_method label img {
	max-height: 1.25rem;
	width: auto;
}

/* Payment box */
.zorem-order-pay-page .payment_box {
	padding: 1rem 1.25rem;
	font-size: 0.875rem;
	color: #64748b;
	background: #f8fafc !important;
	border-top: 1px solid #e2e8f0;
}

.zorem-order-pay-page .payment_box::before {
	display: none !important;
}

/* #payment background transparent */
.zorem-order-pay-page #payment {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	border-radius: 0 !important;
}

/* Actions */
.zorem-order-pay-actions {
	width: 100%;
	margin-top: 0.5rem;
}

/* Hide WC terms on pay page */
.zorem-order-pay-page .woocommerce-terms-and-conditions-wrapper {
	display: none !important;
}

@media (max-width: 640px) {
	.zorem-order-pay {
		padding: 2rem 1rem;
	}

	.zorem-order-pay-card {
		padding: 1.25rem;
	}
}

/* ──────────────────────────────────────────────
 * 11. Page titles
 * ────────────────────────────────────────────── */

.woocommerce-page .woocommerce > h1:first-child,
.woocommerce-page .woocommerce > h2:first-child,
.woocommerce-page .entry-title,
.woocommerce .page-title {
	font-size: 2rem;
	font-weight: 800;
	color: #1f2937;
	margin-bottom: 1.5rem;
}

/* ──────────────────────────────────────────────
 * 12. Empty states
 * ────────────────────────────────────────────── */

.woocommerce .cart-empty,
.woocommerce .woocommerce-info.cart-empty {
	text-align: center;
	padding: 3rem 2rem;
	background: #f9fafb;
	border-radius: 1rem;
	border: 1.5px dashed #e5e7eb;
	color: #6b7280;
	font-size: 1rem;
}

.woocommerce .return-to-shop {
	text-align: center;
	margin-top: 1.5rem;
}

/* ──────────────────────────────────────────────
 * 13. Responsive table
 * ────────────────────────────────────────────── */

@media (max-width: 768px) {
	.woocommerce table.shop_table_responsive thead {
		display: none;
	}

	.woocommerce table.shop_table_responsive tbody tr {
		display: block;
		padding: 1rem;
		border-bottom: 1.5px solid #e5e7eb;
	}

	.woocommerce table.shop_table_responsive tbody td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 0.5rem 0;
		border: none;
	}

	.woocommerce table.shop_table_responsive tbody td::before {
		content: attr(data-title);
		font-weight: 600;
		color: #6b7280;
		font-size: 0.8125rem;
		text-transform: uppercase;
	}
}

/* ──────────────────────────────────────────────
 * 14. Loading overlay
 * ────────────────────────────────────────────── */

.woocommerce .blockUI.blockOverlay {
	background: rgba(255, 255, 255, 0.7) !important;
	opacity: 1 !important;
}

.woocommerce .loader::before,
.woocommerce .blockUI.blockOverlay::before {
	border: 3px solid #e5e7eb;
	border-top-color: #2563eb;
	border-radius: 50%;
	width: 2rem;
	height: 2rem;
	animation: spin 0.6s linear infinite;
}

@keyframes spin {
	to { transform: rotate(360deg); }
}

/* ──────────────────────────────────────────────
 * 15. WooCommerce Blocks (checkout, cart blocks)
 * ────────────────────────────────────────────── */

.wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart {
	font-family: 'Inter', sans-serif;
}

.wc-block-components-text-input input,
.wc-block-components-text-input textarea {
	border-radius: 0.75rem !important;
	border: 1.5px solid #e5e7eb !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-text-input textarea:focus {
	border-color: #2563eb !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1) !important;
}
