/**
 * WooCommerce Checkout - Acoris theme overrides
 * Loaded after WooCommerce styles to ensure theme styles take precedence
 */

/*--------------------------------------------------------------
## Section headings
--------------------------------------------------------------*/
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3,
.woocommerce-checkout #order_review_heading {
	font-size: 1.25rem;
	font-weight: 600;
	color: #3d3c3c;
	border-bottom: 1px solid #eaecef;
	padding-bottom: 0.75rem;
	margin-bottom: 1.25rem;
	margin-top: 0;
}

/*--------------------------------------------------------------
## Form row layout - label always on top of input
--------------------------------------------------------------*/
.woocommerce-checkout .form-row {
	margin-bottom: 1rem;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

.woocommerce-checkout .form-row.form-row-first,
.woocommerce-checkout .form-row.form-row-last {
	width: 48%;
	display: inline-flex;
	flex-direction: column;
	vertical-align: top;
	box-sizing: border-box;
}

.woocommerce-checkout .form-row.form-row-first {
	float: left;
}

.woocommerce-checkout .form-row.form-row-last {
	float: right;
}

.woocommerce-checkout .form-row.form-row-wide {
	width: 100%;
	clear: both;
	display: flex;
	flex-direction: column;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper::after,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper::after,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper::after {
	content: "";
	display: table;
	clear: both;
}

/* Label always on top of input - explicit stacking */
.woocommerce-checkout .form-row label {
	display: block;
	margin-bottom: 0.375rem;
	font-weight: 500;
	color: #3d3c3c;
	order: 1;
}

.woocommerce-checkout .form-row .woocommerce-input-wrapper {
	order: 2;
	display: block;
}

.woocommerce-checkout .form-row label .required {
	color: #dc3545;
}

/*--------------------------------------------------------------
## Form inputs
--------------------------------------------------------------*/
.woocommerce-checkout .input-text,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout textarea {
	display: block;
	width: 100%;
	padding: 0.5rem 0.75rem;
	font-size: 1rem;
	line-height: 1.5;
	color: #495057;
	background-color: #fff;
	border: 1px solid #ced4da;
	border-radius: 0.25rem;
	transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.woocommerce-checkout .input-text:focus,
.woocommerce-checkout input[type="text"]:focus,
.woocommerce-checkout input[type="email"]:focus,
.woocommerce-checkout input[type="tel"]:focus,
.woocommerce-checkout textarea:focus {
	border-color: #1f448f;
	outline: 0;
	box-shadow: 0 0 0 0.2rem rgba(31, 68, 143, 0.25);
}

/*--------------------------------------------------------------
## Select2 (country/state dropdowns)
--------------------------------------------------------------*/
.woocommerce-checkout .select2-container--default .select2-selection--single {
	height: calc(2.875rem + 2px);
	padding: 0.5rem 0.75rem;
	border: 1px solid #ced4da;
	border-radius: 0.25rem;
	background-color: #fff;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: calc(2.875rem - 2px);
	padding-left: 0;
	color: #495057;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: calc(2.875rem - 2px);
}

.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single {
	border-color: #1f448f;
	box-shadow: 0 0 0 0.2rem rgba(31, 68, 143, 0.25);
}

.woocommerce-checkout .select2-dropdown {
	border: 1px solid #ced4da;
	border-radius: 0.25rem;
}

/*--------------------------------------------------------------
## Coupon form
--------------------------------------------------------------*/
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	background: #e7f1ff;
	border-top: 3px solid #1f448f;
	border-radius: 0.25rem;
	padding: 1rem 1.25rem;
	margin-bottom: 1rem;
}

.woocommerce-checkout .checkout_coupon .form-row {
	display: flex;
	flex-direction: column;
}

.woocommerce-checkout .checkout_coupon .input-text {
	width: 100%;
	max-width: 280px;
	display: block;
	margin-right: 0.5rem;
	margin-bottom: 0.5rem;
}

.woocommerce-checkout .checkout_coupon .button {
	background-color: #1f448f;
	color: #fff;
	border: none;
	padding: 0.5rem 1.25rem;
	border-radius: 0.25rem;
	font-weight: 500;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.woocommerce-checkout .checkout_coupon .button:hover {
	background-color: #174894;
	color: #fff;
}

/*--------------------------------------------------------------
## Ship to different address
--------------------------------------------------------------*/
.woocommerce-checkout #ship-to-different-address {
	margin: 1rem 0;
}

.woocommerce-checkout #ship-to-different-address .woocommerce-form__label {
	display: flex;
	align-items: center;
	cursor: pointer;
	font-weight: 500;
}

.woocommerce-checkout #ship-to-different-address .input-checkbox {
	width: auto;
	margin-right: 0.5rem;
}

/*--------------------------------------------------------------
## Order review
--------------------------------------------------------------*/
.woocommerce-checkout #order_review {
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 1px solid #eaecef;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5rem;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td {
	padding: 0.75rem 1rem;
	border-bottom: 1px solid #eaecef;
	text-align: left;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
	font-weight: 600;
	color: #3d3c3c;
	background: #f8f9fa;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td {
	font-size: 1.125rem;
	padding-top: 1rem;
	border-top: 2px solid #1f448f;
}

/*--------------------------------------------------------------
## Payment methods
--------------------------------------------------------------*/
.woocommerce-checkout #payment {
	background: #f8f9fa;
	border: 1px solid #eaecef;
	border-radius: 0.25rem;
	padding: 1.5rem;
	margin-top: 1rem;
}

.woocommerce-checkout .wc_payment_methods {
	list-style: none;
	padding: 0;
	margin: 0 0 1rem;
}

.woocommerce-checkout .wc_payment_methods li {
	padding: 0.75rem 0;
	border-bottom: 1px solid #eaecef;
}

.woocommerce-checkout .wc_payment_methods li:last-child {
	border-bottom: none;
}

.woocommerce-checkout .wc_payment_methods label {
	display: flex;
	align-items: center;
	cursor: pointer;
	font-weight: 500;
}

.woocommerce-checkout .wc_payment_methods label img {
	margin-left: 0.5rem;
	max-height: 24px;
}

.woocommerce-checkout .payment_box {
	background: #fff;
	border: 1px solid #eaecef;
	border-radius: 0.25rem;
	padding: 1rem;
	margin: 0.75rem 0 0 1.5rem;
	font-size: 0.9375rem;
}

/*--------------------------------------------------------------
## Place order / Proceed to checkout buttons
--------------------------------------------------------------*/
/* WooCommerce Blocks button (cart & checkout) */
.wc-block-components-button.wc-block-cart__submit-button,
.wc-block-components-button.contained,
.woocommerce .wc-block-components-button {
	background-color: #1f448f !important;
	color: #fff !important;
	border: none !important;
	padding: 0.625rem 1.5rem !important;
	border-radius: 0.25rem !important;
	font-weight: 600 !important;
	font-size: 1rem !important;
	cursor: pointer !important;
	transition: background-color 0.15s ease !important;
}

.wc-block-components-button.wc-block-cart__submit-button:hover,
.wc-block-components-button.contained:hover,
.woocommerce .wc-block-components-button:hover {
	background-color: #174894 !important;
	color: #fff !important;
}

.woocommerce-checkout #place_order,
.woocommerce-checkout .button.alt,
.woocommerce-checkout .woocommerce-checkout-payment .button {
	background-color: #1f448f !important;
	color: #fff !important;
	border: none !important;
	padding: 0.625rem 1.5rem !important;
	border-radius: 0.25rem !important;
	font-weight: 600 !important;
	font-size: 1rem !important;
	cursor: pointer !important;
	transition: background-color 0.15s ease !important;
}

.woocommerce-checkout #place_order:hover,
.woocommerce-checkout .button.alt:hover,
.woocommerce-checkout .woocommerce-checkout-payment .button:hover {
	background-color: #174894 !important;
	color: #fff !important;
}

/*--------------------------------------------------------------
## Shipping methods
--------------------------------------------------------------*/
.woocommerce-checkout .woocommerce-shipping-methods li {
	margin-bottom: 0.5rem;
}

.woocommerce-checkout .woocommerce-shipping-methods label {
	cursor: pointer;
	font-weight: 500;
}

/*--------------------------------------------------------------
## Responsive
--------------------------------------------------------------*/
@media (max-width: 768px) {
	.woocommerce-checkout .form-row.form-row-first,
	.woocommerce-checkout .form-row.form-row-last {
		width: 100%;
		float: none;
	}
}
