/* =========================================================================
   APA Header — WooCommerce cart / checkout skin
   Mirrors the header's design tokens so the standard Cart, Checkout and
   Order-received pages read as part of the same brand system.

   Scoped to WooCommerce body classes so nothing leaks onto other pages.
   --apa-btn-tex / --apa-red-tex are injected inline from plugin settings
   (the same texture images used by the header), with solid-color fallbacks.
   ========================================================================= */

.woocommerce-cart,
.woocommerce-checkout,
.woocommerce-order-received{
	--apa-red:    #6e1016;
	--apa-blue:   #15597c;
	--apa-link:   #14597c;
	--apa-accent: #8fd3e8;
	--apa-ink:    #0c2230;
	--apa-gray:   #eceef0;
	--apa-line:   #e2e5e8;
	--apa-radius: 4px;

	font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* ---------- Section headings ---------- */
.woocommerce-cart .cart_totals > h2,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-shipping-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3,
.woocommerce-checkout #ship-to-different-address{
	color: var(--apa-red);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .4px;
	line-height: 1.15;
	padding-bottom: .4em;
	border-bottom: 3px solid var(--apa-accent);
	margin-bottom: .8em;
}

/* ---------- Links ----------
   Scoped to the .woocommerce content wrapper (NOT the page <body>) so the
   header's own nav/utility links keep their original colors. */
.woocommerce a:not(.button):not(.wc-block-components-button){
	color: var(--apa-link);
	font-weight: 600;
	transition: color .15s ease;
}
.woocommerce a:not(.button):not(.wc-block-components-button):hover{ color: #7a0306; }

/* ---------- Buttons (base) ---------- */
.woocommerce-cart .button,
.woocommerce-cart button.button,
.woocommerce-cart input.button,
.woocommerce-checkout .button,
.woocommerce-checkout button.button,
.woocommerce-checkout input.button,
.woocommerce .wc-block-components-button{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	padding: 12px 22px !important;
	border: 0 !important;
	border-radius: var(--apa-radius) !important;
	background: var(--apa-blue) !important;
	color: #fff !important;
	font-family: inherit;
	font-weight: 800 !important;
	font-size: 14px !important;
	letter-spacing: .5px;
	text-transform: uppercase;
	line-height: 1.2;
	cursor: pointer;
	text-decoration: none;
	transition: background-color .15s ease, transform .15s ease, filter .15s ease;
}
.woocommerce-cart .button:hover,
.woocommerce-cart button.button:hover,
.woocommerce-cart input.button:hover,
.woocommerce-checkout .button:hover,
.woocommerce-checkout button.button:hover,
.woocommerce-checkout input.button:hover,
.woocommerce .wc-block-components-button:hover{
	background: #0f4360 !important;
}
.woocommerce-cart .button:focus-visible,
.woocommerce-checkout .button:focus-visible,
.woocommerce .wc-block-components-button:focus-visible{
	outline: 3px solid var(--apa-accent);
	outline-offset: 2px;
}

/* ---------- Primary CTAs: textured blue, like the header sign-in button ---------- */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout #place_order,
.woocommerce .button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt{
	background-color: var(--apa-blue) !important;
	background-image: var(--apa-btn-tex, none) !important;
	background-size: cover !important;
	background-position: center !important;
	padding: 15px 26px !important;
	font-size: 15px !important;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-checkout #place_order:hover,
.woocommerce .button.alt:hover{
	filter: brightness(1.06);
	transform: translateY(-1px);
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
	display: block;
	width: 100%;
	text-align: center;
}

/* ---------- Tables (cart line items, totals, order review) ---------- */
.woocommerce table.shop_table{
	border: 1px solid var(--apa-line);
	border-radius: 6px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}
.woocommerce table.shop_table thead th,
.woocommerce table.shop_table tfoot th{
	background: var(--apa-gray);
	color: var(--apa-ink);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .4px;
	font-size: 12.5px;
	border-bottom: 2px solid var(--apa-red);
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td{
	padding: 14px 16px;
	border-top: 1px solid var(--apa-line);
}
.woocommerce table.shop_table tbody tr:first-child td{ border-top: 0; }
.woocommerce table.shop_table .product-name a{ font-weight: 700; }
.woocommerce table.shop_table td.product-total,
.woocommerce table.shop_table .order-total .amount{ color: var(--apa-ink); font-weight: 800; }

/* ---------- Totals & order-review cards ---------- */
.woocommerce-cart .cart_totals,
.woocommerce-checkout .woocommerce-checkout-review-order{
	background: #fff;
	border: 1px solid var(--apa-line);
	border-radius: 8px;
	padding: 22px 22px 8px;
}

/* ---------- Quantity stepper ---------- */
.woocommerce .quantity input.qty{
	width: 72px;
	padding: 10px 8px;
	border: 1px solid #c9ccd1;
	border-radius: var(--apa-radius);
	font-size: 16px;
	text-align: center;
}

/* ---------- Coupon row ---------- */
.woocommerce .cart .actions .coupon{ display: flex; gap: 10px; flex-wrap: wrap; align-items: stretch; }
.woocommerce .cart .actions .coupon .input-text{
	flex: 1 1 180px;
	min-width: 0;
	padding: 12px 14px;
	border: 1px solid #c9ccd1;
	border-radius: var(--apa-radius);
	font-size: 16px;
}

/* ---------- Checkout form fields ---------- */
.woocommerce-checkout .form-row label{
	font-weight: 700;
	color: var(--apa-ink);
	margin-bottom: 6px;
	display: inline-block;
}
.woocommerce-checkout .form-row .required{ color: var(--apa-red); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout #customer_details input.input-text,
.woocommerce-checkout #customer_details textarea{
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #c9ccd1;
	border-radius: var(--apa-radius);
	font-size: 16px;
	line-height: 1.3;
	background: #fff;
	color: var(--apa-ink);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-checkout #customer_details input.input-text:focus{
	border-color: var(--apa-blue);
	box-shadow: 0 0 0 3px rgba(21,89,124,.18);
	outline: none;
}
.woocommerce form .form-row.woocommerce-invalid input.input-text{ border-color: var(--apa-red); }

/* Select2 (country / state) — align with native fields */
.woocommerce .select2-container--default .select2-selection--single{
	height: 47px;
	border: 1px solid #c9ccd1;
	border-radius: var(--apa-radius);
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered{
	line-height: 45px;
	padding-left: 14px;
	color: var(--apa-ink);
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow{ height: 45px; }
.woocommerce .select2-dropdown{ border-color: #c9ccd1; }
.woocommerce .select2-container--default .select2-results__option--highlighted[aria-selected]{ background: var(--apa-blue); }

/* ---------- Payment box ---------- */
.woocommerce-checkout #payment{
	background: #f7f8f9;
	border: 1px solid var(--apa-line);
	border-radius: 8px;
}
.woocommerce-checkout #payment ul.payment_methods{ border-bottom: 1px solid var(--apa-line); }
.woocommerce-checkout #payment div.payment_box{
	background: #fff;
	border: 1px solid var(--apa-line);
}
.woocommerce-checkout #payment div.payment_box::before{ border-bottom-color: #fff; }

/* ---------- Notices ---------- */
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-error{
	background: #fff;
	border-top: 1px solid var(--apa-line);
	border-right: 1px solid var(--apa-line);
	border-bottom: 1px solid var(--apa-line);
	border-radius: var(--apa-radius);
	color: var(--apa-ink);
}
.woocommerce-cart .woocommerce-message,
.woocommerce-checkout .woocommerce-message{ border-left: 4px solid var(--apa-blue); }
.woocommerce-cart .woocommerce-info,
.woocommerce-checkout .woocommerce-info{ border-left: 4px solid var(--apa-accent); }
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-error{ border-left: 4px solid var(--apa-red); }
.woocommerce .woocommerce-message::before{ color: var(--apa-blue); }
.woocommerce .woocommerce-info::before{ color: var(--apa-blue); }
.woocommerce .woocommerce-error::before{ color: var(--apa-red); }

/* ---------- Order-received (thank-you) summary ---------- */
.woocommerce-order-received .woocommerce-order-overview{
	border: 1px solid var(--apa-line);
	border-radius: 8px;
	padding: 18px 22px;
}
.woocommerce-order-received .woocommerce-order-overview li{
	text-transform: uppercase;
	letter-spacing: .3px;
	font-size: 12.5px;
	color: var(--apa-ink);
}
.woocommerce-order-received .woocommerce-order-overview li strong{ font-size: 16px; }

/* ---------- Small screens ---------- */
@media (max-width: 768px){
	.woocommerce .cart .actions .coupon{ flex-direction: column; }
	.woocommerce .cart .actions .coupon .button{ width: 100%; }
	.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{ font-size: 16px !important; }
}

@media (prefers-reduced-motion: reduce){
	.woocommerce .button,
	.woocommerce .wc-block-components-button,
	.woocommerce a{ transition: none; }
}
