/* =====================================================================
   Zack's Sports — Classic WooCommerce cart/checkout skin
   ---------------------------------------------------------------------
   Restyles the CLASSIC cart + checkout ([woocommerce_cart] /
   [woocommerce_checkout]) to the navy/orange token system (design doc §11).

   HARD RULES honored:
   - TOKENS ONLY. Every color/size/radius references theme.json presets:
     var(--wp--preset--color--*), var(--wp--preset--spacing--*),
     var(--wp--custom--radius--*). No literal hex/px design values.
   - Skin only. All selectors are scoped to WooCommerce wrappers; we do NOT
     alter plugin markup (g-FFL Checkout, NY SAFE Act, background-check billing
     are plugin-owned). TODO(wiring) notes mark plugin hook points.
   - Enqueued conditionally from functions.php on is_cart()/is_checkout().
   ===================================================================== */

/* ---- Shared form controls -------------------------------------------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout select,
.woocommerce #order_review input[type="text"] {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--control);
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--inter-tight);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}

.woocommerce form .form-row label {
	font-family: var(--wp--preset--font-family--dm-mono);
	font-size: var(--wp--preset--font-size--sm);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--muted);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--orange);
	box-shadow: 0 0 0 2px var(--wp--preset--color--orange-hover);
}

/* ---- Section / step headers ------------------------------------------ */
/* Navy step header with an orange step-number badge (set the number via the
   data-step attribute the theme can add, or a counter — kept token-styled). */
.woocommerce-checkout h3,
.woocommerce-cart h2,
.woocommerce-checkout #order_review_heading {
	background: var(--wp--preset--color--navy-800);
	color: var(--wp--preset--color--paper);
	font-family: var(--wp--preset--font-family--oswald);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: var(--wp--preset--font-size--lg);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	border-radius: var(--wp--custom--radius--control) var(--wp--custom--radius--control) 0 0;
	margin: 0 0 var(--wp--preset--spacing--50);
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
}

/* ---- Buttons --------------------------------------------------------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #place_order,
.woocommerce button.button.alt {
	background: var(--wp--preset--color--orange);
	color: var(--wp--preset--color--paper);
	font-family: var(--wp--preset--font-family--oswald);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	border: 0;
	border-radius: var(--wp--custom--radius--control);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce #place_order:hover,
.woocommerce button.button.alt:hover {
	background: var(--wp--preset--color--orange-hover);
	color: var(--wp--preset--color--paper);
}

.woocommerce a.button:active,
.woocommerce button.button:active,
.woocommerce #place_order:active {
	background: var(--wp--preset--color--orange-press);
}

/* ---- FFL dealer block (g-FFL Checkout) ------------------------------- */
/* TODO(wiring): g-FFL renders the ZIP/distance/name search + dealer list/map
   inside the classic checkout. We only skin the container it injects; the
   dealer search won't populate without an active subscription/API key on
   staging. Adjust the wrapper selector to the plugin's actual class if needed. */
.woocommerce-checkout .g-ffl,
.woocommerce-checkout .gffl-checkout,
.woocommerce-checkout .ffl-dealer-selector {
	border: 1px solid var(--wp--preset--color--orange);
	border-radius: var(--wp--custom--radius--control);
	overflow: hidden;
	margin: var(--wp--preset--spacing--50) 0;
	background: var(--wp--preset--color--surface);
}

.woocommerce-checkout .g-ffl > h3,
.woocommerce-checkout .gffl-checkout > h3,
.woocommerce-checkout .ffl-dealer-selector .ffl-title {
	background: var(--wp--preset--color--orange);
	color: var(--wp--preset--color--paper);
	margin: 0;
	border-radius: 0;
}

/* ---- Order summary (sticky) ----------------------------------------- */
.woocommerce-checkout #order_review,
.woocommerce-cart .cart_totals {
	position: sticky;
	top: var(--wp--preset--spacing--50);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	overflow: hidden;
	background: var(--wp--preset--color--paper);
}

.woocommerce-checkout #order_review table.shop_table,
.woocommerce-cart .cart_totals table {
	border: 0;
	margin: 0;
}

.woocommerce-checkout #order_review .order-total td,
.woocommerce-cart .cart_totals .order-total td,
.woocommerce-checkout #order_review .order-total th,
.woocommerce-cart .cart_totals .order-total th {
	background: var(--wp--preset--color--surface);
	font-family: var(--wp--preset--font-family--oswald);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--lg);
	color: var(--wp--preset--color--ink);
}

/* Caliber Club savings line — DISPLAY ONLY (member pricing is plugin-owned).
   TODO(wiring): the role-based member-pricing plugin outputs this row; we just
   color it. Target the actual row class the plugin emits. */
.woocommerce-checkout #order_review .caliber-club,
.woocommerce-cart .cart_totals .caliber-club {
	color: var(--wp--preset--color--savings);
	font-weight: 500;
}

/* Background-check fee — billed at pickup, NOT added to "total due now".
   TODO(wiring): plugin emits the fee row + the "billed at pickup" note. */
.woocommerce-checkout #order_review .bg-check-fee small,
.woocommerce-cart .cart_totals .bg-check-fee small {
	display: block;
	font-family: var(--wp--preset--font-family--dm-mono);
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--muted);
}

/* ---- Payment method radios ------------------------------------------ */
.woocommerce-checkout #payment ul.payment_methods {
	border: 0;
	padding: 0;
	background: transparent;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
}

.woocommerce-checkout #payment ul.payment_methods li {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--control);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--paper);
}

.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) {
	border-color: var(--wp--preset--color--orange);
	background: var(--wp--preset--color--surface);
}

.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
	accent-color: var(--wp--preset--color--orange);
}

/* ---- Notices -------------------------------------------------------- */
.woocommerce-info,
.woocommerce-message {
	border-top-color: var(--wp--preset--color--orange);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--ink);
	border-radius: var(--wp--custom--radius--control);
}

.woocommerce-error {
	border-top-color: var(--wp--preset--color--orange-press);
}
