/* =========================================================
   Divi One-Page Checkout
   Checkout fixes + Divi cart quantity/update fixes
   ========================================================= */

/* =========================================================
   Checkout: collapse default WooCommerce notice box without display:none
   ========================================================= */

.woocommerce-checkout .woocommerce-NoticeGroup.woocommerce-NoticeGroup-checkout,
.woocommerce-checkout .woocommerce-NoticeGroup.woocommerce-NoticeGroup-checkout > div,
.woocommerce-checkout .woocommerce-NoticeGroup.woocommerce-NoticeGroup-checkout .woocommerce-error {
	height: 0 !important;
	min-height: 0 !important;
	max-height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

/* Checkout: red borders added by JS */
.woocommerce-checkout input.wc-force-error,
.woocommerce-checkout select.wc-force-error,
.woocommerce-checkout textarea.wc-force-error {
	border: 2px solid #d63638 !important;
	box-shadow: 0 0 0 1px #d63638 !important;
}

.woocommerce-checkout .form-row.wc-force-error input,
.woocommerce-checkout .form-row.wc-force-error select,
.woocommerce-checkout .form-row.wc-force-error textarea {
	border: 2px solid #d63638 !important;
	box-shadow: 0 0 0 1px #d63638 !important;
}

.woocommerce-checkout .form-row.wc-force-error label {
	color: #d63638 !important;
}

/* Checkout: Select2 fields, for example country/state dropdowns */
.woocommerce-checkout .select2-container.wc-force-error .select2-selection,
.woocommerce-checkout .form-row.wc-force-error .select2-selection {
	border: 2px solid #d63638 !important;
	box-shadow: 0 0 0 1px #d63638 !important;
}

/* Checkout: terms checkbox error */
.woocommerce-checkout #terms.wc-force-error {
	outline: 2px solid #d63638 !important;
	outline-offset: 3px !important;
}

/* Checkout: hide Divi/WooCommerce inline required-field messages */
.woocommerce-checkout .form-row .woocommerce-error,
.woocommerce-checkout .form-row .woocommerce-error li,
.woocommerce-checkout .form-row .wc-block-components-validation-error,
.woocommerce-checkout .form-row .input-error,
.woocommerce-checkout .form-row .error,
.woocommerce-checkout .form-row small.error,
.woocommerce-checkout .form-row span.error,
.woocommerce-checkout .form-row p.error,
.woocommerce-checkout .form-row .required-field-message,
.woocommerce-checkout .form-row .woocommerce-input-wrapper + span,
.woocommerce-checkout .form-row .woocommerce-input-wrapper + div,
.woocommerce-checkout .form-row .woocommerce-input-wrapper + p {
	display: none !important;
}

/* =========================================================
   Divi/WooCommerce cart module fixes
   ========================================================= */

/* Hide/remove item buttons and remove column in normal WooCommerce cart tables and Divi cart modules */
.woocommerce-cart table.shop_table.cart .product-remove,
.woocommerce-cart table.shop_table.cart a.remove,
.woocommerce-cart table.shop_table.cart .remove,
form.woocommerce-cart-form table.shop_table.cart .product-remove,
form.woocommerce-cart-form table.shop_table.cart a.remove,
form.woocommerce-cart-form table.shop_table.cart .remove {
	display: none !important;
}

/* Hide Divi/WooCommerce empty-cart/remove style buttons if present */
form.woocommerce-cart-form .empty-cart,
form.woocommerce-cart-form .button.empty-cart,
form.woocommerce-cart-form button[name="empty_cart"],
form.woocommerce-cart-form input[name="empty_cart"],
form.woocommerce-cart-form a[href*="empty-cart"],
form.woocommerce-cart-form a[href*="empty_cart"],
form.woocommerce-cart-form a[href*="remove_item"],
form.woocommerce-cart-form a.remove,
.woocommerce-cart .empty-cart,
.woocommerce-cart .button.empty-cart,
.woocommerce-cart button[name="empty_cart"],
.woocommerce-cart input[name="empty_cart"],
.woocommerce-cart a[href*="empty-cart"],
.woocommerce-cart a[href*="empty_cart"],
.woocommerce-cart a[href*="remove_item"],
.woocommerce-cart a.remove {
	display: none !important;
}

/* Hide the manual update cart button but keep it available for JS click */
form.woocommerce-cart-form button[name="update_cart"],
form.woocommerce-cart-form input[name="update_cart"],
form.woocommerce-cart-form .actions .button[name="update_cart"],
.woocommerce-cart button[name="update_cart"],
.woocommerce-cart input[name="update_cart"],
.woocommerce-cart .actions .button[name="update_cart"] {
	position: absolute !important;
	left: -99999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* Make quantity fields clearly usable */
form.woocommerce-cart-form .quantity input.qty,
.woocommerce-cart .quantity input.qty {
	min-width: 72px;
}

/* AJAX cart update state: subtle feedback without reloading the page */
form.woocommerce-cart-form.dopc-cart-updating {
	opacity: 0.65;
	pointer-events: none;
}


/* =========================================================
   Cart coupon layout: outlined input left, button right
   ========================================================= */

form.woocommerce-cart-form .coupon,
.woocommerce-cart form.woocommerce-cart-form .coupon,
.et_pb_module form.woocommerce-cart-form .coupon {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: stretch !important;
	gap: 14px !important;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
}

form.woocommerce-cart-form .coupon label,
.woocommerce-cart form.woocommerce-cart-form .coupon label,
.et_pb_module form.woocommerce-cart-form .coupon label {
	display: none !important;
}

form.woocommerce-cart-form .coupon input.input-text,
form.woocommerce-cart-form .coupon input[name="coupon_code"],
.woocommerce-cart form.woocommerce-cart-form .coupon input.input-text,
.woocommerce-cart form.woocommerce-cart-form .coupon input[name="coupon_code"],
.et_pb_module form.woocommerce-cart-form .coupon input.input-text,
.et_pb_module form.woocommerce-cart-form .coupon input[name="coupon_code"] {
	flex: 1 1 auto !important;
	width: auto !important;
	min-width: 0 !important;
	height: 58px !important;
	margin: 0 !important;
	padding: 0 20px !important;
	background: #ffffff !important;
	border: 2px solid #162B75 !important;
	box-shadow: none !important;
	outline: none !important;
	border-radius: 0 !important;
}

form.woocommerce-cart-form .coupon input.input-text:focus,
form.woocommerce-cart-form .coupon input[name="coupon_code"]:focus,
.woocommerce-cart form.woocommerce-cart-form .coupon input.input-text:focus,
.woocommerce-cart form.woocommerce-cart-form .coupon input[name="coupon_code"]:focus,
.et_pb_module form.woocommerce-cart-form .coupon input.input-text:focus,
.et_pb_module form.woocommerce-cart-form .coupon input[name="coupon_code"]:focus {
	border-color: #162B75 !important;
	box-shadow: 0 0 0 1px #162B75 !important;
}

form.woocommerce-cart-form .coupon button.button,
form.woocommerce-cart-form .coupon input.button,
form.woocommerce-cart-form .coupon button[name="apply_coupon"],
form.woocommerce-cart-form .coupon input[name="apply_coupon"],
.woocommerce-cart form.woocommerce-cart-form .coupon button.button,
.woocommerce-cart form.woocommerce-cart-form .coupon input.button,
.woocommerce-cart form.woocommerce-cart-form .coupon button[name="apply_coupon"],
.woocommerce-cart form.woocommerce-cart-form .coupon input[name="apply_coupon"],
.et_pb_module form.woocommerce-cart-form .coupon button.button,
.et_pb_module form.woocommerce-cart-form .coupon input.button,
.et_pb_module form.woocommerce-cart-form .coupon button[name="apply_coupon"],
.et_pb_module form.woocommerce-cart-form .coupon input[name="apply_coupon"] {
	flex: 0 0 auto !important;
	height: 58px !important;
	margin: 0 !important;
	white-space: nowrap !important;
}

@media (max-width: 480px) {
	form.woocommerce-cart-form .coupon,
	.woocommerce-cart form.woocommerce-cart-form .coupon,
	.et_pb_module form.woocommerce-cart-form .coupon {
		gap: 10px !important;
	}

	form.woocommerce-cart-form .coupon button.button,
	form.woocommerce-cart-form .coupon input.button,
	form.woocommerce-cart-form .coupon button[name="apply_coupon"],
	form.woocommerce-cart-form .coupon input[name="apply_coupon"],
	.woocommerce-cart form.woocommerce-cart-form .coupon button.button,
	.woocommerce-cart form.woocommerce-cart-form .coupon input.button,
	.woocommerce-cart form.woocommerce-cart-form .coupon button[name="apply_coupon"],
	.woocommerce-cart form.woocommerce-cart-form .coupon input[name="apply_coupon"],
	.et_pb_module form.woocommerce-cart-form .coupon button.button,
	.et_pb_module form.woocommerce-cart-form .coupon input.button,
	.et_pb_module form.woocommerce-cart-form .coupon button[name="apply_coupon"],
	.et_pb_module form.woocommerce-cart-form .coupon input[name="apply_coupon"] {
		padding-left: 14px !important;
		padding-right: 14px !important;
	}
}

/* Coupon empty/invalid state: red border around coupon input */
form.woocommerce-cart-form .coupon input.dopc-coupon-error,
form.woocommerce-cart-form .coupon.dopc-coupon-error input.input-text,
form.woocommerce-cart-form .coupon.dopc-coupon-error input[name="coupon_code"],
.woocommerce-cart form.woocommerce-cart-form .coupon input.dopc-coupon-error,
.woocommerce-cart form.woocommerce-cart-form .coupon.dopc-coupon-error input.input-text,
.woocommerce-cart form.woocommerce-cart-form .coupon.dopc-coupon-error input[name="coupon_code"],
.et_pb_module form.woocommerce-cart-form .coupon input.dopc-coupon-error,
.et_pb_module form.woocommerce-cart-form .coupon.dopc-coupon-error input.input-text,
.et_pb_module form.woocommerce-cart-form .coupon.dopc-coupon-error input[name="coupon_code"] {
	border: 2px solid #d63638 !important;
	box-shadow: 0 0 0 1px #d63638 !important;
}


/* Coupon message shown below the input + button row */
form.woocommerce-cart-form .coupon .dopc-coupon-message,
form.woocommerce-cart-form .coupon .dopc-coupon-error-message,
form.woocommerce-cart-form .coupon .dopc-coupon-success-message,
.woocommerce-cart form.woocommerce-cart-form .coupon .dopc-coupon-message,
.woocommerce-cart form.woocommerce-cart-form .coupon .dopc-coupon-error-message,
.woocommerce-cart form.woocommerce-cart-form .coupon .dopc-coupon-success-message,
.et_pb_module form.woocommerce-cart-form .coupon .dopc-coupon-message,
.et_pb_module form.woocommerce-cart-form .coupon .dopc-coupon-error-message,
.et_pb_module form.woocommerce-cart-form .coupon .dopc-coupon-success-message {
	flex: 0 0 100% !important;
	width: 100% !important;
	max-width: 100% !important;
	order: 99 !important;
	display: block !important;
	clear: both !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
	font-weight: 500 !important;
	text-align: left !important;
}

form.woocommerce-cart-form .coupon .dopc-coupon-error-message,
.woocommerce-cart form.woocommerce-cart-form .coupon .dopc-coupon-error-message,
.et_pb_module form.woocommerce-cart-form .coupon .dopc-coupon-error-message {
	color: #d63638 !important;
}

form.woocommerce-cart-form .coupon .dopc-coupon-success-message,
.woocommerce-cart form.woocommerce-cart-form .coupon .dopc-coupon-success-message,
.et_pb_module form.woocommerce-cart-form .coupon .dopc-coupon-success-message {
	color: #1f7a3f !important;
}


/* Hide stale WooCommerce cart/module notices such as "Coupon has been removed."
   Our custom coupon messages use .dopc-coupon-message and stay visible. */
.et_pb_module_inner > .woocommerce-message,
.et_pb_module_inner > .woocommerce-error,
.et_pb_module_inner > .woocommerce-info,
.et_pb_module .woocommerce-notices-wrapper,
.woocommerce-cart-form + .woocommerce-message,
.woocommerce-cart-form + .woocommerce-error,
.woocommerce-cart-form + .woocommerce-info {
	display: none !important;
}

/* =========================================================
   Order notes: make native order_comments a full-width one-line delivery instruction field
   ========================================================= */

.woocommerce-checkout .dopc-order-comments-row,
.woocommerce-checkout #order_comments_field {
	width: 100% !important;
	float: none !important;
	clear: both !important;
}

.woocommerce-checkout input#order_comments.dopc-order-comments-input,
.woocommerce-checkout input#order_comments {
	width: 100% !important;
	max-width: 100% !important;
	min-height: 48px !important;
	padding: 14px 16px !important;
	box-sizing: border-box !important;
}
