/* Native accessibility foundation. Keep this file loaded last so visible
 * keyboard focus and target sizing survive page- and plugin-level resets. */

body.exg-shell :where(a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
	outline: 3px solid #806100 !important;
	outline-offset: 3px !important;
}

body.exg-shell :where(
	.exg-v2-utility,
	.exg-v2-footer,
	.exg-home-choice__path-card--direct,
	.exg-header-finder__visual
) :where(a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
	outline-color: #ffda4a !important;
}

body.exg-shell :where(input, select, textarea):focus-visible {
	box-shadow: 0 0 0 3px rgba(128, 97, 0, 0.24) !important;
}

body.exg-shell .exg-home-choice__path-links a:focus-visible {
	outline: 0 !important;
}

body.exg-shell :where(.exg-v2-icon-link, .exg-v2-socials a) {
	min-width: 32px;
	min-height: 32px;
}

body.exg-shell .exg-v2-footer-menu a,
body.exg-shell .exg-v2-footer__phone,
body.exg-shell .exg-v2-footer__legal-row nav a,
body.exg-shell .exg-catalog-breadcrumbs a,
body.exg-shell .exg-dealer-locator :where(.wpsl-tracking-phone-number a, .wpsl-directions),
body.exg-shell .exg-dealer-search__help-links a,
body.exg-shell .exg-pickup-install-link,
body.exg-shell .exg-support-career-note a,
body.exg-shell .exg-support-form-notice a,
body.exg-shell .exg-video-library__support-copy > a,
body.exg-shell .exg-trust a,
body.exg-shell .exg-checkout-blurb a {
	display: inline-flex;
	min-height: 24px;
	align-items: center;
}

body.exg-shell .gfield-choice-input {
	min-width: 24px;
	min-height: 24px;
}

body.exg-shell :target {
	scroll-margin-top: 24px;
}

@media (max-width: 1020px) {
	body.exg-shell :where(.exg-v2-icon-link, .exg-v2-socials a),
	body.exg-shell .exg-v2-logo,
	body.exg-shell .exg-v2-footer-menu a,
	body.exg-shell .exg-v2-footer__phone,
	body.exg-shell .exg-catalog-breadcrumbs a,
	body.exg-shell .exg-dealer-locator :where(.wpsl-tracking-phone-number a, .wpsl-directions),
	body.exg-shell .exg-dealer-search__help-links a,
	body.exg-shell .exg-pickup-install-link,
	body.exg-shell .exg-support-career-note a,
	body.exg-shell .exg-support-form-notice a,
	body.exg-shell .exg-video-library__support-copy > a,
	body.exg-shell .exg-trust a,
	body.exg-shell .exg-checkout-blurb a,
	body.exg-shell .exg-v2-footer__legal-row nav a {
		min-width: 44px;
		min-height: 44px;
	}

	/* Keep the logo link as a full-size touch target without stretching the
	 * SVG artwork to the target's 44px height. */
	body.exg-shell .exg-v2-logo {
		align-items: center;
	}

	body.exg-shell .exg-v2-logo img {
		width: 100%;
		height: auto;
		aspect-ratio: 188 / 43;
		flex: 0 0 auto;
	}

	/* These selectors intentionally match the more-specific compact mobile rules. */
	body.exg-shell .exg-v2-footer__brand > .exg-v2-footer__phone,
	body.exg-shell .exg-v2-footer__group .exg-v2-footer-menu a {
		min-height: 44px;
	}

	body.exg-shell.exg-catalog-page .exg-vehicle-card .exg-bracket-card__body h3 a,
	body.exg-shell.exg-consumer-page .exg-consumer-product-grid--ecommerce .exg-vehicle-card .exg-bracket-card__body h3 a {
		display: inline-flex;
		min-height: 44px;
		align-items: center;
		justify-content: center;
	}

	body.exg-shell .exg-unified-pdp .product__bracket a,
	body.exg-shell .exg-unified-pdp .pdp-cov__badges a,
	body.exg-shell .exg-unified-pdp .pdp-cov__details-panel a[href],
	body.exg-shell .exg-consumer-product h3 a,
	body.exg-shell .exg-consumer-product .exg-consumer-text-link {
		display: inline-flex;
		min-height: 44px;
		align-items: center;
	}

	body.exg-shell .exg-testimonial-card__title a {
		display: inline-flex;
		min-height: 44px;
		align-items: center;
	}

	body.exg-shell .exg-bracket-library__pagination .page-numbers a,
	body.exg-shell .exg-bracket-library__pagination .page-numbers .current {
		min-width: 44px;
		height: 44px;
	}

	body.exg-shell .woocommerce nav.woocommerce-pagination ul .page-numbers,
	body.exg-shell .woocommerce-pagination ul.page-numbers > li > .page-numbers {
		width: 44px !important;
		height: 44px !important;
	}

	/* Product color controls remain full-size touch targets at tablet widths. */
	body.exg-shell:is(.single-trucks, .single-rv) .exg-unified-pdp button.product__select-color-guard-item,
	body.exg-shell:is(.single-trucks, .single-rv) .exg-unified-pdp button.product__color-picker-wrapper-item,
	body.exg-shell.single-pick-ups button.pickup-vehicle-color {
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;
	}

	body.exg-shell:is(.single-trucks, .single-rv) .exg-unified-pdp button.product__color-picker-wrapper-item {
		padding: 12px;
		background-clip: content-box;
	}
}

/* Selected is a state, not a replacement for keyboard focus. */
body.exg-shell:is(.single-trucks, .single-rv) .exg-unified-pdp button.product__color-picker-wrapper-item.active:focus-visible,
body.exg-shell:is(.single-trucks, .single-rv) .exg-unified-pdp button.product__select-color-guard-item.active:focus-visible {
	outline: 3px solid #806100 !important;
	outline-offset: 3px !important;
}

/* Keep the primary dealer-pricing action intact after legacy PDP resets. */
body.exg-shell:is(.single-trucks, .single-rv) .exg-unified-pdp a.product__button {
	display: flex !important;
	width: 100% !important;
	min-height: 50px !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 2px 0 0 !important;
	padding: 0 18px !important;
	border: 2px solid var(--exg-gold) !important;
	border-radius: 4px !important;
	background: var(--exg-gold) !important;
	color: var(--exg-black) !important;
	font-family: var(--exg-display) !important;
	font-size: 18px !important;
	font-weight: var(--exg-weight-action) !important;
	line-height: 1 !important;
	text-decoration: none !important;
}

body.exg-shell:is(.single-trucks, .single-rv) .exg-unified-pdp a.product__button::after {
	margin-left: 14px;
	content: "→";
	font-family: var(--exg-body);
	font-size: 18px;
}

/* Product-category loop actions intentionally use the shared quiet card CTA.
 * Keep this after WooCommerce's global gold button contract while preserving
 * the same 44px accessible target used by the other category cards. */
html body.exg-shell.exg-commerce-page.exg-commerce-library-page #main-content .woocommerce.exg-commerce-library__loop ul.products li.product > :is(a.button, a.added_to_cart) {
	display: inline-flex !important;
	min-height: 44px !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 4px 2px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	color: var(--exg-black) !important;
	font-family: var(--exg-display) !important;
	font-size: 12px !important;
	font-weight: var(--exg-weight-action) !important;
	line-height: 14px !important;
	text-decoration: underline !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 4px !important;
}

html body.exg-shell.exg-commerce-page.exg-commerce-library-page #main-content .woocommerce.exg-commerce-library__loop ul.products li.product > :is(a.button, a.added_to_cart):is(:hover, :focus-visible) {
	border: 0 !important;
	background-color: transparent !important;
	color: var(--exg-gold-deep) !important;
}

@media (max-width: 640px) {
	html body.exg-shell.exg-commerce-page.exg-commerce-library-page #main-content .woocommerce.exg-commerce-library__loop ul.products li.product > :is(a.button, a.added_to_cart) {
		padding: 4px 1px !important;
		font-size: 10px !important;
		line-height: 12px !important;
	}
}

body.exg-shell:is(.single-trucks, .single-rv) .exg-unified-pdp a.product__button:is(:hover, :focus-visible) {
	border-color: var(--exg-black) !important;
	background: var(--exg-black) !important;
	color: #fff !important;
}

@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto !important;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
