/*
Theme Name:   Acorn Machinery
Theme URI:    https://acorn-machinery.com/
Description:  Dealer theme for Acorn Machinery — tractors, skid steers and towable trailers. Child theme of Astra.
Author:       Acorn Machinery
Template:     astra
Version:      1.0.0
Text Domain:  acorn-machinery
*/

/* ==========================================================================
   1. Design tokens
   ========================================================================== */

:root {
	--acm-black:      #1c2128;   /* charcoal, not pure black */
	--acm-ink:        #14161a;
	--acm-cream:      #fbf9f5;
	--acm-sand:       #f3efe7;
	--acm-steel:      #2b3038;
	--acm-slate:      #5b6472;
	--acm-line:       #dfe3e8;
	--acm-mist:       #f4f6f8;
	--acm-white:      #ffffff;

	--acm-gold:       #f8b000;
	--acm-gold-dk:    #d99700;
	--acm-red:        #c00000;
	--acm-red-dk:     #9a0000;
	--acm-green:      #206830;

	--acm-shadow:     0 1px 2px rgba(20, 22, 26, .06), 0 8px 24px rgba(20, 22, 26, .07);
	--acm-shadow-lg:  0 2px 4px rgba(20, 22, 26, .07), 0 18px 48px rgba(20, 22, 26, .12);

	--acm-head:       "Barlow Condensed", "Oswald", "Arial Narrow", sans-serif;
	--acm-body:       "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

	--acm-max:        1280px;
}

/* ==========================================================================
   2. Base
   ========================================================================== */

body {
	font-family: var(--acm-body);
	color: var(--acm-ink);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.woocommerce-loop-product__title,
.product_title {
	font-family: var(--acm-head);
	font-weight: 700;
	letter-spacing: .1px;
	line-height: 1.12;
	color: var(--acm-ink);
	text-wrap: balance;
}

h1 { font-size: clamp(2.1rem, 4vw, 3.35rem); letter-spacing: -.2px; }
h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
h3 { font-size: clamp(1.3rem, 2vw, 1.6rem); }

a { color: var(--acm-ink); text-underline-offset: 3px; }
a:hover, a:focus { color: var(--acm-red); }

.ast-container, .ast-container-fluid { max-width: var(--acm-max); }

/* Accessible focus ring — keyboard only */
:focus-visible {
	outline: 3px solid var(--acm-gold);
	outline-offset: 2px;
	border-radius: 2px;
}

/* Section rhythm */
.acm-section { padding: clamp(2rem, 3.2vw, 3rem) 0; }
.acm-wrap { max-width: var(--acm-max); margin-inline: auto; padding-inline: 20px; }

.acm-kicker {
	font-family: var(--acm-head);
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--acm-red);
	margin: 0 0 .6rem;
	display: flex;
	align-items: center;
	gap: .7rem;
}
.acm-kicker::before {
	content: "";
	width: 34px;
	height: 3px;
	background: var(--acm-red);
	flex: none;
}
.acm-section-head { margin-bottom: 1.6rem; }
.acm-section-head p { color: var(--acm-slate); max-width: 62ch; margin: .45rem 0 0; }

/* ==========================================================================
   3. Buttons
   ========================================================================== */

.acm-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wp-block-button__link,
.ast-button {
	font-family: var(--acm-head);
	font-weight: 700;
	font-size: 1.02rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	border-radius: 3px;
	padding: .85em 1.9em;
	border: 0;
	transition: background-color .16s ease, color .16s ease, transform .16s ease;
	line-height: 1.2;
	display: inline-block;
}

.acm-btn--gold,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce .single_add_to_cart_button {
	background: var(--acm-gold);
	color: var(--acm-black) !important;
}
.acm-btn--gold:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover {
	background: var(--acm-gold-dk);
	color: var(--acm-black) !important;
}

.acm-btn--dark { background: var(--acm-ink); color: #fff !important; }
.acm-btn--dark:hover { background: var(--acm-steel); color: #fff !important; }

.acm-btn--ghost {
	background: transparent;
	color: #fff !important;
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .55);
}
.acm-btn--ghost:hover { background: #fff; color: var(--acm-ink) !important; }

/* ==========================================================================
   4. Utility bar + header
   ========================================================================== */

.acm-utility {
	background: var(--acm-gold);
	color: #4a3600;
	font-size: .86rem;
	border-bottom: 1px solid rgba(0, 0, 0, .1);
}
.acm-utility__inner {
	max-width: var(--acm-max);
	margin-inline: auto;
	padding: 9px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
}
.acm-utility a { color: #2a1f00; text-decoration: none; font-weight: 600; }
.acm-utility a:hover { color: var(--acm-red-dk); }
.acm-utility__group { display: flex; align-items: center; gap: 1.6rem; flex-wrap: wrap; }
.acm-utility__item { display: inline-flex; align-items: center; gap: .5rem; }
.acm-utility__item svg { width: 15px; height: 15px; flex: none; opacity: .85; }
.acm-utility__flag { color: #2a1f00; font-weight: 700; }

@media (max-width: 921px) {
	.acm-utility__inner { justify-content: center; padding: 8px 16px; }
	.acm-utility__group--sec { display: none; }
}

/* Light header — the logo now uses the ink-on-transparent lockup */
.ast-above-header-bar,
.site-header,
.ast-primary-header-bar,
.ast-header-break-point .site-header {
	background-color: #ffffff !important;
}
.site-header {
	border-bottom: 1px solid var(--acm-line);
	box-shadow: 0 1px 0 rgba(20,22,26,.04), 0 6px 20px rgba(20,22,26,.05);
}

.main-header-menu > .menu-item > .menu-link,
.ast-header-break-point .main-navigation .menu-link {
	font-family: var(--acm-head);
	font-size: 1.06rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--acm-ink) !important;
}
.main-header-menu > .menu-item > .menu-link:hover,
.main-header-menu > .current-menu-item > .menu-link {
	color: var(--acm-red) !important;
}
.main-header-menu > .menu-item { position: relative; }
.main-header-menu > .menu-item > .menu-link::after {
	content: "";
	position: absolute;
	left: 1rem; right: 1rem; bottom: -2px;
	height: 3px;
	background: var(--acm-gold);
	transform: scaleX(0);
	transition: transform .18s ease;
}
.main-header-menu > .menu-item:hover > .menu-link::after,
.main-header-menu > .current-menu-item > .menu-link::after { transform: scaleX(1); }

/* Sub menus */
.main-header-menu .sub-menu {
	background: #ffffff;
	border-top: 3px solid var(--acm-gold);
	border-left: 1px solid var(--acm-line);
	border-right: 1px solid var(--acm-line);
	border-bottom: 1px solid var(--acm-line);
	box-shadow: var(--acm-shadow-lg);
	padding: .4rem 0;
}
.main-header-menu .sub-menu .menu-link {
	color: var(--acm-steel) !important;
	text-transform: none;
	font-size: .98rem;
}
.main-header-menu .sub-menu .menu-link:hover {
	color: var(--acm-red) !important;
	background: var(--acm-mist);
}

.custom-logo-link img, .site-logo-img img { max-height: 62px; width: auto; }
.ast-header-break-point .custom-logo-link img { max-height: 46px; }

.ast-header-break-point .menu-toggle,
.ast-mobile-menu-buttons .menu-toggle { color: var(--acm-ink) !important; background: transparent !important; }

/* Cart count pill */
.ast-site-header-cart .count,
.ast-cart-menu-wrap .count {
	background: var(--acm-red);
	color: #fff;
	border-color: var(--acm-red);
}

/* ==========================================================================
   5. Hero  (yard photograph, copy panel left)
   ========================================================================== */

.acm-hero {
	position: relative;
	background: #10141a;
	min-height: clamp(470px, 52vw, 700px);
	display: flex;
	align-items: center;
	overflow: hidden;
}
/* Explicit positive layering. Negative z-index inside an isolated stacking
   context let the hero's own background paint over the photograph. */
.acm-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 38% 52%;
	z-index: 0;
}
/* Warm scrim: heavy on the left where the copy sits, clear on the right so the
   machines and the sunset stay visible. */
.acm-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(96deg, rgba(8, 11, 16, .88) 0%, rgba(8, 11, 16, .72) 36%,
		                       rgba(8, 11, 16, .30) 62%, rgba(8, 11, 16, .04) 100%);
}
.acm-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--acm-max);
	margin-inline: auto;
	padding: clamp(2.75rem, 5vw, 4.25rem) 20px;
}
.acm-hero__copy { max-width: 38rem; }
.acm-hero h1 {
	color: #fff;
	margin: 0 0 1rem;
	text-shadow: 0 2px 22px rgba(0, 0, 0, .38);
}
.acm-hero h1 em {
	font-style: normal;
	color: var(--acm-gold);
	display: block;
}
.acm-hero__lede {
	font-size: clamp(1.02rem, 1.4vw, 1.15rem);
	color: #dbe1e8;
	max-width: 52ch;
	margin: 0 0 1.7rem;
	text-shadow: 0 1px 14px rgba(0, 0, 0, .45);
}
.acm-hero__cta { display: flex; gap: .7rem; flex-wrap: wrap; }
.acm-hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: .65rem;
	font-family: var(--acm-head);
	font-weight: 700;
	letter-spacing: .17em;
	text-transform: uppercase;
	font-size: .87rem;
	color: var(--acm-gold);
	margin-bottom: .85rem;
}
.acm-hero__kicker::before {
	content: "";
	width: 40px; height: 3px;
	background: var(--acm-red);
}
.acm-hero__points {
	list-style: none;
	margin: 1.7rem 0 0;
	padding: 0;
	display: flex;
	gap: .55rem 1.4rem;
	flex-wrap: wrap;
}
.acm-hero__points li {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	color: #e6eaf0;
	font-size: .9rem;
	font-weight: 500;
}
.acm-hero__points svg { width: 17px; height: 17px; color: var(--acm-gold); flex: none; }

@media (max-width: 921px) {
	.acm-hero { min-height: 0; }
	.acm-hero::after {
		background: linear-gradient(180deg, rgba(10,13,18,.72) 0%, rgba(10,13,18,.88) 100%);
	}
	.acm-hero__points { gap: .55rem 1.2rem; }
	.acm-hero__points li { font-size: .85rem; }
}

/* ==========================================================================
   5b. Showroom band
   ========================================================================== */

.acm-showroom { padding: clamp(2rem, 3.2vw, 3rem) 0; background: var(--acm-cream); }
.acm-showroom__grid {
	display: grid;
	grid-template-columns: .92fr 1.08fr;
	gap: clamp(1.5rem, 3vw, 2.6rem);
	align-items: center;
}
.acm-showroom__media { position: relative; }
.acm-showroom__media img {
	width: 100%;
	height: auto;
	border-radius: 5px;
	box-shadow: var(--acm-shadow-lg);
	display: block;
}
.acm-showroom__media::after {
	content: "";
	position: absolute;
	right: -14px; bottom: -14px;
	width: 150px; height: 9px;
	background: var(--acm-gold);
	border-radius: 2px;
}
.acm-showroom__copy .acm-checklist li svg { color: var(--acm-gold-dk); }
.acm-showroom__copy .acm-btn { margin-top: 1.5rem; }

@media (max-width: 921px) {
	.acm-showroom__grid { grid-template-columns: 1fr; }
	.acm-showroom__media { order: -1; }
}

/* Trust strip — light, sits directly under the hero */
.acm-trust {
	background: #ffffff;
	border-bottom: 1px solid var(--acm-line);
}
.acm-trust__grid {
	max-width: var(--acm-max);
	margin-inline: auto;
	padding: 0 20px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}
.acm-trust__item {
	display: flex;
	align-items: flex-start;
	gap: .85rem;
	padding: 1.5rem 1.5rem 1.5rem 0;
	border-right: 1px solid var(--acm-line);
}
.acm-trust__item:last-child { border-right: 0; }
.acm-trust__item + .acm-trust__item { padding-left: 1.5rem; }
.acm-trust__item svg { width: 26px; height: 26px; color: var(--acm-gold-dk); flex: none; margin-top: 2px; }
.acm-trust__t {
	font-family: var(--acm-head);
	font-weight: 700;
	font-size: 1.08rem;
	color: var(--acm-ink);
	text-transform: uppercase;
	letter-spacing: .03em;
	line-height: 1.2;
}
.acm-trust__d { font-size: .84rem; color: var(--acm-slate); margin-top: .2rem; line-height: 1.45; }

@media (max-width: 921px) {
	.acm-trust__grid { grid-template-columns: repeat(2, 1fr); }
	.acm-trust__item:nth-child(2) { border-right: 0; }
	.acm-trust__item:nth-child(-n+2) { border-bottom: 1px solid var(--acm-line); }
	.acm-trust__item:nth-child(odd) { padding-left: 0; }
}
@media (max-width: 544px) {
	.acm-trust__grid { grid-template-columns: 1fr; }
	.acm-trust__item { border-right: 0; padding-left: 0 !important; border-bottom: 1px solid var(--acm-line); }
}

/* ==========================================================================
   6. Category tiles
   ========================================================================== */

.acm-cats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .95rem; }
.acm-cat {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 4px;
	background: var(--acm-ink);
	min-height: 232px;
	text-decoration: none;
	box-shadow: var(--acm-shadow);
}
.acm-cat img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	opacity: .62;
	transition: transform .5s cubic-bezier(.2,.6,.3,1), opacity .3s ease;
}
.acm-cat:hover img { transform: scale(1.06); opacity: .78; }
.acm-cat__body {
	position: relative;
	height: 100%;
	min-height: 232px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 1.4rem;
	background: linear-gradient(to top, rgba(10,10,10,.93) 12%, rgba(10,10,10,.15) 72%);
}
.acm-cat__name {
	font-family: var(--acm-head);
	font-weight: 700;
	font-size: 1.5rem;
	text-transform: uppercase;
	color: #fff;
	line-height: 1.1;
}
.acm-cat__meta {
	font-size: .85rem;
	color: var(--acm-gold);
	font-weight: 600;
	margin-top: .3rem;
	display: flex;
	align-items: center;
	gap: .4rem;
}
.acm-cat__meta::after { content: "→"; transition: transform .2s ease; }
.acm-cat:hover .acm-cat__meta::after { transform: translateX(4px); }

@media (max-width: 921px) { .acm-cats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 544px) { .acm-cats { grid-template-columns: 1fr; } }

/* ==========================================================================
   7. WooCommerce — catalog
   ========================================================================== */

.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.1rem;
	margin: 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }

.woocommerce ul.products li.product {
	width: 100% !important;
	margin: 0 !important;
	float: none !important;
	background: #fff;
	border: 1px solid var(--acm-line);
	border-radius: 4px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease;
}
.woocommerce ul.products li.product:hover {
	box-shadow: var(--acm-shadow-lg);
	border-color: #c6ccd4;
	transform: translateY(-3px);
}
.woocommerce ul.products li.product a img {
	margin: 0;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	width: 100%;
	background: var(--acm-mist);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 1.16rem !important;
	line-height: 1.25;
	padding: .75rem 1rem .1rem !important;
	margin: 0;
	min-height: 2.55em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.woocommerce ul.products li.product .price {
	font-family: var(--acm-head);
	font-size: 1.5rem !important;
	font-weight: 700;
	color: var(--acm-ink) !important;
	padding: 0 1rem;
	margin: .35rem 0 .2rem;
	display: block;
}
.woocommerce ul.products li.product .price del {
	font-size: .95rem;
	color: var(--acm-slate);
	opacity: 1;
	font-weight: 500;
	margin-right: .45rem;
}
.woocommerce ul.products li.product .price ins {
	text-decoration: none;
	color: var(--acm-red);
	font-weight: 700;
}
.woocommerce ul.products li.product .button {
	margin: auto 1rem 1rem;
	text-align: center;
	background: var(--acm-ink);
	color: #fff !important;
	font-size: .92rem;
	padding: .8em 1.2em;
}
.woocommerce ul.products li.product .button:hover { background: var(--acm-gold); color: var(--acm-black) !important; }

/* Sale flash */
.woocommerce span.onsale {
	background: var(--acm-red);
	color: #fff;
	font-family: var(--acm-head);
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	border-radius: 2px;
	padding: .35em .85em;
	font-size: .82rem;
	min-height: 0;
	min-width: 0;
	line-height: 1.5;
	top: 12px;
	left: 12px;
	right: auto;
	margin: 0;
}

@media (max-width: 921px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 544px) { .woocommerce ul.products { grid-template-columns: 1fr; } }

/* Shop header */
.acm-shop-hero {
	background: linear-gradient(120deg, #1c2128 0%, #2b3038 100%);
	color: #fff;
	padding: clamp(2.4rem, 5vw, 3.6rem) 0;
	border-bottom: 3px solid var(--acm-gold);
}
.acm-shop-hero h1 { color: #fff; margin: 0; }
.acm-shop-hero p { color: #a9b2bd; margin: .6rem 0 0; max-width: 62ch; }
.acm-shop-hero .woocommerce-breadcrumb, .acm-shop-hero .woocommerce-breadcrumb a { color: #8d96a2; }
.acm-shop-hero .woocommerce-breadcrumb a:hover { color: var(--acm-gold); }

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { margin-bottom: 1.6rem; }

/* ==========================================================================
   8. WooCommerce — single product
   ========================================================================== */

.single-product div.product .product_title {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	margin-bottom: .5rem;
}
.single-product div.product .price {
	font-family: var(--acm-head);
	font-size: 2.4rem !important;
	font-weight: 700;
	color: var(--acm-ink) !important;
	line-height: 1.1;
}
.single-product div.product .price del { font-size: 1.35rem; color: var(--acm-slate); font-weight: 500; }
.single-product div.product .price ins { text-decoration: none; color: var(--acm-red); }

.acm-price-note {
	font-family: var(--acm-body);
	font-size: .88rem;
	color: var(--acm-slate);
	margin: .35rem 0 1.1rem;
}

/* Key facts panel under the price */
.acm-facts {
	border: 1px solid var(--acm-line);
	border-radius: 4px;
	background: var(--acm-mist);
	padding: 1rem 1.15rem;
	margin: 0 0 1.4rem;
	display: grid;
	gap: .7rem;
}
.acm-facts__row { display: flex; align-items: flex-start; gap: .7rem; font-size: .92rem; }
.acm-facts__row svg { width: 18px; height: 18px; color: var(--acm-green); flex: none; margin-top: 3px; }
.acm-facts__row b { font-weight: 600; }

.single-product .single_add_to_cart_button {
	font-size: 1.12rem;
	padding: 1em 2.4em;
	width: 100%;
	text-align: center;
}

.woocommerce-tabs ul.tabs { border-bottom: 2px solid var(--acm-line) !important; padding: 0 !important; }
.woocommerce-tabs ul.tabs::before { display: none !important; }
.woocommerce-tabs ul.tabs li {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	margin: 0 1.8rem 0 0 !important;
	padding: 0 !important;
}
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li a {
	font-family: var(--acm-head);
	font-weight: 700;
	font-size: 1.12rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--acm-slate) !important;
	padding: .8rem 0 !important;
	display: block;
	border-bottom: 3px solid transparent;
}
.woocommerce-tabs ul.tabs li.active a { color: var(--acm-ink) !important; border-bottom-color: var(--acm-gold); }

.woocommerce-tabs .panel h2:first-child { display: none; }
.woocommerce-tabs .panel { padding-top: 1.6rem; }
.woocommerce-tabs .panel p { max-width: 78ch; }

/* Gallery */
.woocommerce div.product div.images .flex-control-thumbs { margin-top: .7rem; gap: .5rem; display: flex; flex-wrap: wrap; }
.woocommerce div.product div.images .flex-control-thumbs li { width: calc(20% - .4rem); margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs img {
	border: 2px solid transparent;
	border-radius: 3px;
	opacity: .75;
	transition: opacity .15s ease, border-color .15s ease;
	aspect-ratio: 1;
	object-fit: cover;
}
.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: var(--acm-gold);
}

/* Related */
.related.products > h2, .up-sells > h2 {
	font-size: 1.9rem;
	padding-top: 2.2rem;
	margin-top: 2.6rem;
	border-top: 1px solid var(--acm-line);
}

/* ==========================================================================
   9. Content blocks
   ========================================================================== */

.acm-split { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1.5rem, 3vw, 2.6rem); align-items: center; }
@media (max-width: 921px) { .acm-split { grid-template-columns: 1fr; } }
.acm-split img { border-radius: 4px; width: 100%; height: 100%; object-fit: cover; box-shadow: var(--acm-shadow-lg); }

.acm-checklist { list-style: none; margin: 1.4rem 0 0; padding: 0; display: grid; gap: .8rem; }
.acm-checklist li { display: flex; gap: .75rem; align-items: flex-start; }
.acm-checklist li svg { width: 20px; height: 20px; color: var(--acm-green); flex: none; margin-top: 3px; }
.acm-checklist li b { font-weight: 600; }

.acm-band {
	background: var(--acm-gold);
	color: var(--acm-ink);
	background-image:
		repeating-linear-gradient(45deg, rgba(255,255,255,.14) 0 14px, transparent 14px 28px);
}
.acm-band h2 { color: var(--acm-ink); }
.acm-band p { color: #4a3a08; }
.acm-band .acm-kicker { color: var(--acm-red-dk); }
.acm-band .acm-kicker::before { background: var(--acm-red-dk); }

.acm-cta-band {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
}
.acm-cta-band__phone {
	font-family: var(--acm-head);
	font-size: clamp(1.9rem, 3.4vw, 2.7rem);
	font-weight: 700;
	color: var(--acm-ink);
	text-decoration: none;
	display: block;
	line-height: 1.1;
}
.acm-cta-band__phone:hover { color: var(--acm-red-dk); }

/* Spec table used in product copy */
.acm-spec { width: 100%; border-collapse: collapse; margin: 1.2rem 0; font-size: .95rem; }
.acm-spec th, .acm-spec td { text-align: left; padding: .7rem .9rem; border-bottom: 1px solid var(--acm-line); }
.acm-spec th { width: 38%; font-weight: 600; color: var(--acm-steel); background: var(--acm-mist); }
.acm-spec tr:last-child th, .acm-spec tr:last-child td { border-bottom: 0; }

/* ==========================================================================
   10. Footer
   ========================================================================== */

.acm-footer { background: #1c2128; color: #a3acb8; font-size: .93rem; }
.acm-footer__main {
	max-width: var(--acm-max);
	margin-inline: auto;
	padding: clamp(3rem, 5vw, 4.2rem) 20px 2.4rem;
	display: grid;
	grid-template-columns: 1.55fr 1fr 1fr 1.25fr;
	gap: 2.6rem;
}
.acm-footer__logo { max-width: 258px; height: auto; margin-bottom: 1.1rem; }
.acm-footer h4 {
	font-family: var(--acm-head);
	color: #fff;
	font-size: 1.12rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	margin: 0 0 1.05rem;
	padding-bottom: .6rem;
	border-bottom: 1px solid rgba(255, 255, 255, .1);
	position: relative;
}
.acm-footer h4::after {
	content: "";
	position: absolute;
	left: 0; bottom: -1px;
	width: 42px; height: 2px;
	background: var(--acm-gold);
}
.acm-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .58rem; }
.acm-footer a { color: #97a0ab; text-decoration: none; }
.acm-footer a:hover { color: var(--acm-gold); }
.acm-footer__contact { display: grid; gap: .85rem; }
.acm-footer__contact li { display: flex; gap: .7rem; align-items: flex-start; }
.acm-footer__contact svg { width: 17px; height: 17px; color: var(--acm-gold); flex: none; margin-top: 3px; }
.acm-footer__blurb { line-height: 1.7; margin: 0 0 1.2rem; max-width: 40ch; }

/* Social profiles. Label matches the "We accept" eyebrow directly below it so
   the two rows in the brand column read as a set. */
.acm-footer__social { margin-top: 1.35rem; }
.acm-footer__social-label {
	display: block;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #6f7b88;
	margin-bottom: .6rem;
}
.acm-footer__social-row { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }

.acm-social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	color: #aab4c0;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .1);
	transition: color .16s ease, background-color .16s ease, border-color .16s ease, transform .16s ease;
}
/* Beat .acm-footer a, which would otherwise repaint these gold on hover and
   drop the glyph out of the filled circle. */
.acm-footer .acm-social:hover,
.acm-footer .acm-social:focus-visible {
	color: #fff;
	background: var(--acm-gold);
	border-color: var(--acm-gold);
	transform: translateY(-2px);
}
.acm-footer .acm-social:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.acm-social svg { width: 18px; height: 18px; display: block; }

@media (prefers-reduced-motion: reduce) {
	.acm-social { transition: none; }
	.acm-footer .acm-social:hover,
	.acm-footer .acm-social:focus-visible { transform: none; }
}


.acm-footer__bar {
	border-top: 1px solid rgba(255, 255, 255, .1);
	background: #14181d;
}
.acm-footer__bar-in {
	max-width: var(--acm-max);
	margin-inline: auto;
	padding: 1.3rem 20px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.2rem;
	flex-wrap: wrap;
	font-size: .85rem;
}
.acm-footer__legal { display: flex; gap: 1.35rem; flex-wrap: wrap; }
.acm-footer__reg { color: #6c757f; font-size: .82rem; }

@media (max-width: 921px) {
	.acm-footer__main { grid-template-columns: 1fr 1fr; gap: 2.2rem; }
}
@media (max-width: 544px) {
	.acm-footer__main { grid-template-columns: 1fr; }
	.acm-footer__bar-in { justify-content: center; text-align: center; }
}

/* ==========================================================================
   11. Astra layout overrides
   ========================================================================== */

/* Astra's boxed "separate container" fights the full-bleed hero/bands.
   Let the front page and shop archives run edge to edge; the inner
   .acm-wrap / .ast-container still holds the reading width. */
/* Astra prints its container width as inline <head> CSS, which lands after
   this file — hence !important rather than a specificity arms race. */
body.home #content.site-content > .ast-container,
body.woocommerce-shop #content.site-content > .ast-container,
body.tax-product_cat #content.site-content > .ast-container {
	max-width: 100% !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.home.ast-separate-container .site-content > .ast-container > *,
.woocommerce-shop.ast-separate-container .ast-woocommerce-container,
.tax-product_cat.ast-separate-container .ast-woocommerce-container {
	background: transparent;
	box-shadow: none;
	padding-left: 0;
	padding-right: 0;
}
.home.ast-separate-container .site-content { padding: 0; }

/* Astra's container is a flex ROW. On archives the banner and the product
   grid are siblings, so flex put them side by side and halved both. Block
   layout stacks them; the front page just needs the width. */
body.woocommerce-shop #content.site-content > .ast-container,
body.tax-product_cat #content.site-content > .ast-container {
	display: block !important;
}
.acm-front,
body.woocommerce-shop #content .ast-container > *,
body.tax-product_cat #content .ast-container > * {
	width: 100% !important;
	max-width: 100% !important;
}

/* Shop + category grids still need gutters. Astra wraps the loop in
   .ast-woocommerce-container, not a bare .woocommerce div. */
body.woocommerce-shop .ast-woocommerce-container,
body.tax-product_cat .ast-woocommerce-container {
	max-width: var(--acm-max) !important;
	margin-inline: auto !important;
	padding: 2.4rem 20px 3.5rem !important;
	background: transparent !important;
	box-shadow: none !important;
}

/* Astra emits .columns-4 and styles it with higher specificity than our
   base rule, so the column count has to be forced here. */
.woocommerce ul.products,
.woocommerce ul.products.columns-1,
.woocommerce ul.products.columns-2,
.woocommerce ul.products.columns-3,
.woocommerce ul.products.columns-4,
.woocommerce ul.products.columns-5,
.woocommerce ul.products.columns-6 {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
@media (max-width: 921px) {
	.woocommerce ul.products,
	.woocommerce ul.products[class*="columns-"] {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}
@media (max-width: 544px) {
	.woocommerce ul.products,
	.woocommerce ul.products[class*="columns-"] {
		grid-template-columns: 1fr !important;
	}
}
.acm-shop-hero + * { margin-top: 0; }

/* The logo lockup is the brand — give it room and drop the duplicate
   text title Astra prints alongside it. */
.ast-site-identity .site-title,
.ast-site-identity .site-description { display: none !important; }
.site-branding img.custom-logo,
.custom-logo-link img {
	max-height: 74px;
	width: auto;
	height: auto;
}
.ast-header-break-point .site-branding img.custom-logo,
.ast-header-break-point .custom-logo-link img { max-height: 44px; }

/* Keep the primary nav on one line at common desktop widths. */
@media (min-width: 922px) {
	.main-header-menu > .menu-item > .menu-link {
		padding-left: .78rem;
		padding-right: .78rem;
		font-size: 1.02rem;
	}
	.ast-builder-menu-1 .main-header-menu { flex-wrap: nowrap; }
}

/* The callback CTA sits inside the cart form, which is a flex row —
   give it its own full-width line under Add to Cart. */
.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: .6rem;
	margin-bottom: 1.2rem;
}
.woocommerce div.product form.cart .quantity { flex: 0 0 auto; }
.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1 1 auto; width: auto; }

/* Astra ships its own sale-badge styling with heavy specificity. */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale,
.woocommerce div.product .onsale,
.ast-shop-load-more span.onsale {
	background: var(--acm-red) !important;
	color: #fff !important;
	font-family: var(--acm-head) !important;
	font-weight: 700 !important;
	font-size: .82rem !important;
	letter-spacing: .07em !important;
	text-transform: uppercase !important;
	border-radius: 2px !important;
	padding: .35em .85em !important;
	line-height: 1.5 !important;
	min-height: 0 !important;
	min-width: 0 !important;
	width: auto !important;
	height: auto !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	margin: 0 !important;
}

/* ==========================================================================
   13. Misc
   ========================================================================== */

.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border-top-color: var(--acm-gold);
	background: var(--acm-mist);
	border-radius: 3px;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--acm-gold); }

.acm-shipping-note {
	background: #fff8e6;
	border: 1px solid #f0d38a;
	border-left: 4px solid var(--acm-gold);
	padding: .9rem 1.1rem;
	border-radius: 3px;
	font-size: .93rem;
	margin: 1.2rem 0;
}

/* Skip link */
.acm-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--acm-gold);
	color: #000;
	padding: .8rem 1.3rem;
	z-index: 9999;
	font-weight: 700;
}
.acm-skip:focus { left: 0; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	.acm-cat:hover img { transform: none; }
}

/* Print */
@media print {
	.acm-utility, .site-header, .acm-footer, .acm-trust { display: none !important; }
}

/* ==========================================================================
   14. Homepage information blocks
   ========================================================================== */

/* Brand chips */
.acm-brands {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(178px, 1fr));
	gap: .7rem;
}
.acm-brand {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .6rem;
	background: #fff;
	border: 1px solid var(--acm-line);
	border-radius: 4px;
	padding: .8rem 1rem;
	text-decoration: none;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.acm-brand:hover {
	border-color: var(--acm-gold);
	box-shadow: var(--acm-shadow);
	transform: translateY(-2px);
}
.acm-brand__name {
	font-family: var(--acm-head);
	font-weight: 700;
	font-size: 1.05rem;
	text-transform: uppercase;
	letter-spacing: .02em;
	color: var(--acm-ink);
	line-height: 1.15;
}
.acm-brand__n {
	font-size: .78rem;
	font-weight: 700;
	color: var(--acm-slate);
	background: var(--acm-mist);
	border-radius: 20px;
	padding: .16rem .55rem;
	flex: none;
}

/* Delivery info cards */
.acm-info-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: .95rem;
}
.acm-info {
	background: #fff;
	border: 1px solid var(--acm-line);
	border-top: 3px solid var(--acm-gold);
	border-radius: 4px;
	padding: 1.4rem 1.35rem;
}
.acm-info svg { width: 26px; height: 26px; color: var(--acm-gold-dk); }
.acm-info h3 {
	font-size: 1.16rem;
	margin: .7rem 0 .45rem;
	line-height: 1.2;
}
.acm-info p { margin: 0; font-size: .93rem; color: var(--acm-slate); line-height: 1.6; }

@media (max-width: 921px) { .acm-info-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 544px) { .acm-info-grid { grid-template-columns: 1fr; } }

/* FAQ accordion */
.acm-faq { max-width: 88ch; }
.acm-faq__item {
	background: #fff;
	border: 1px solid var(--acm-line);
	border-radius: 4px;
	margin-bottom: .7rem;
	overflow: hidden;
}
.acm-faq__item summary {
	cursor: pointer;
	list-style: none;
	padding: 1.05rem 3rem 1.05rem 1.25rem;
	font-family: var(--acm-head);
	font-weight: 700;
	font-size: 1.2rem;
	color: var(--acm-ink);
	position: relative;
	line-height: 1.3;
}
.acm-faq__item summary::-webkit-details-marker { display: none; }
.acm-faq__item summary::after {
	content: "";
	position: absolute;
	right: 1.25rem;
	top: 50%;
	width: 11px; height: 11px;
	border-right: 2.5px solid var(--acm-gold-dk);
	border-bottom: 2.5px solid var(--acm-gold-dk);
	transform: translateY(-70%) rotate(45deg);
	transition: transform .2s ease;
}
.acm-faq__item[open] summary::after { transform: translateY(-30%) rotate(225deg); }
.acm-faq__item[open] summary { background: var(--acm-mist); }
.acm-faq__item summary:hover { color: var(--acm-red); }
.acm-faq__a { padding: 1rem 1.25rem 1.2rem; border-top: 1px solid var(--acm-line); }
.acm-faq__a p { margin: 0; color: var(--acm-steel); max-width: 78ch; }

.acm-section--tight { padding-block: clamp(1.6rem, 2.4vw, 2.2rem); }

/* ==========================================================================
   15. Shop archive — filter sidebar
   ========================================================================== */

.acm-shop-layout {
	max-width: var(--acm-max);
	margin-inline: auto;
	padding: 2.2rem 20px 3.5rem;
	display: grid;
	grid-template-columns: 268px minmax(0, 1fr);
	gap: 2.2rem;
	align-items: start;
}

/* The loop wrapper no longer needs its own width now the layout owns it. */
body.woocommerce-shop .ast-woocommerce-container,
body.tax-product_cat .ast-woocommerce-container,
body.tax-product_brand .ast-woocommerce-container {
	max-width: 100% !important;
	padding: 0 !important;
}

.acm-shop-side { position: sticky; top: 1.5rem; }

.acm-side-block { margin-bottom: 1.6rem; }
.acm-side-block h3 {
	font-size: 1.06rem;
	text-transform: uppercase;
	letter-spacing: .07em;
	margin: 0 0 .7rem;
	padding-bottom: .5rem;
	border-bottom: 2px solid var(--acm-line);
	position: relative;
}
.acm-side-block h3::after {
	content: "";
	position: absolute;
	left: 0; bottom: -2px;
	width: 40px; height: 2px;
	background: var(--acm-gold);
}

.acm-side-list { list-style: none; margin: 0; padding: 0; }
.acm-side-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .6rem;
	padding: .5rem .6rem;
	border-radius: 3px;
	text-decoration: none;
	color: var(--acm-steel);
	font-size: .95rem;
	line-height: 1.35;
	transition: background-color .13s ease, color .13s ease;
}
.acm-side-list a:hover { background: var(--acm-mist); color: var(--acm-ink); }
.acm-side-list a span {
	font-size: .76rem;
	font-weight: 700;
	color: var(--acm-slate);
	background: var(--acm-mist);
	border-radius: 20px;
	padding: .12rem .5rem;
	flex: none;
}
.acm-side-list a.is-active {
	background: var(--acm-ink);
	color: #fff;
	font-weight: 600;
}
.acm-side-list a.is-active span { background: rgba(255,255,255,.18); color: #fff; }
.acm-side-clear { color: var(--acm-red) !important; font-weight: 600; font-size: .88rem !important; }

.acm-side-help {
	background: var(--acm-cream);
	border: 1px solid var(--acm-line);
	border-top: 3px solid var(--acm-gold);
	border-radius: 4px;
	padding: 1.2rem 1.15rem;
}
.acm-side-help h3 { font-size: 1.14rem; margin: 0 0 .5rem; }
.acm-side-help p { font-size: .89rem; color: var(--acm-slate); margin: 0 0 .8rem; line-height: 1.55; }
.acm-side-phone {
	font-family: var(--acm-head);
	font-weight: 700;
	font-size: 1.5rem;
	color: var(--acm-ink);
	text-decoration: none;
	display: block;
	line-height: 1.15;
}
.acm-side-phone:hover { color: var(--acm-red); }
.acm-side-hours { font-size: .82rem !important; margin: .3rem 0 .9rem !important; }

/* With a sidebar in play, three cards no longer fit comfortably. */
@media (min-width: 1100px) {
	body.woocommerce-shop .woocommerce ul.products,
	body.tax-product_cat .woocommerce ul.products,
	body.tax-product_brand .woocommerce ul.products,
	body.woocommerce-shop .woocommerce ul.products[class*="columns-"],
	body.tax-product_cat .woocommerce ul.products[class*="columns-"],
	body.tax-product_brand .woocommerce ul.products[class*="columns-"] {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}
@media (max-width: 1099px) {
	.acm-shop-layout { grid-template-columns: 1fr; gap: 1.6rem; }
	.acm-shop-side { position: static; }
	.acm-side-block { margin-bottom: 1.1rem; }
	/* Collapse the filters into a compact row on tablet/mobile. */
	.acm-side-list { display: flex; flex-wrap: wrap; gap: .4rem; }
	.acm-side-list li { flex: 0 0 auto; }
	.acm-side-list a { border: 1px solid var(--acm-line); padding: .4rem .7rem; }
	.acm-side-help { display: none; }
}

/* ==========================================================================
   16. Dealer header stack (replaces Astra's builder header)
   ========================================================================== */

.acm-btn--red { background: var(--acm-red); color: #fff !important; }
.acm-btn--red:hover { background: var(--acm-red-dk); color: #fff !important; }

/* --- slim contact strip --- */
.acm-strip {
	background: #14181d;
	color: #aab3bf;
	font-size: .84rem;
}
.acm-strip__in {
	max-width: var(--acm-max);
	margin-inline: auto;
	padding: 8px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.4rem;
	flex-wrap: wrap;
}
.acm-strip__group { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.acm-strip__item { display: inline-flex; align-items: center; gap: .45rem; color: inherit; text-decoration: none; }
.acm-strip__item svg { width: 14px; height: 14px; opacity: .8; flex: none; }
.acm-strip a:hover { color: var(--acm-gold); }
.acm-strip__flag { color: var(--acm-gold); font-weight: 600; }
.acm-strip__flag svg { opacity: 1; }

/* --- masthead --- */
.acm-mast { background: #fff; border-bottom: 1px solid var(--acm-line); }
.acm-mast__in {
	max-width: var(--acm-max);
	margin-inline: auto;
	padding: 14px 20px;
	display: flex;
	align-items: center;
	gap: 1.5rem;
}
.acm-mast__logo { flex: none; display: block; line-height: 0; }
.acm-mast__logo img { height: 62px; width: auto; display: block; }

.acm-search { flex: 1 1 auto; max-width: 430px; position: relative; display: flex; }
.acm-search input {
	width: 100%;
	border: 2px solid var(--acm-line);
	border-radius: 3px;
	padding: .72rem 3rem .72rem .95rem;
	font-size: .95rem;
	font-family: var(--acm-body);
	background: var(--acm-mist);
	color: var(--acm-ink);
	transition: border-color .15s ease, background-color .15s ease;
}
.acm-search input:focus { outline: none; border-color: var(--acm-gold); background: #fff; }
.acm-search input::placeholder { color: #96a0ad; }
.acm-search button {
	position: absolute;
	right: 4px; top: 4px; bottom: 4px;
	width: 40px;
	border: 0;
	border-radius: 2px;
	background: var(--acm-ink);
	color: #fff;
	cursor: pointer;
	display: grid;
	place-items: center;
	padding: 0;
}
.acm-search button:hover { background: var(--acm-gold); color: var(--acm-ink); }
.acm-search button svg { width: 18px; height: 18px; }

.acm-mast__phone {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	text-decoration: none;
	color: var(--acm-ink);
	flex: none;
}
.acm-mast__phone svg { width: 26px; height: 26px; color: var(--acm-gold-dk); flex: none; }
.acm-mast__phone small { display: block; font-size: .74rem; color: var(--acm-slate); line-height: 1.2; }
.acm-mast__phone strong {
	display: block;
	font-family: var(--acm-head);
	font-size: 1.32rem;
	font-weight: 700;
	line-height: 1.15;
}
.acm-mast__phone:hover strong { color: var(--acm-red); }

.acm-mast__cta { display: flex; gap: .55rem; flex: none; }
.acm-mast__cta .acm-btn { font-size: .92rem; padding: .78em 1.25em; }

/* --- header cart --- */
.acm-cart {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	flex: none;
	text-decoration: none;
	color: var(--acm-ink);
}
.acm-cart__ico { position: relative; display: block; line-height: 0; }
.acm-cart__ico svg { width: 27px; height: 27px; color: var(--acm-gold-dk); display: block; transition: color .15s ease; }
.acm-cart:hover .acm-cart__ico svg { color: var(--acm-red); }
.acm-cart:focus-visible { outline: 2px solid var(--acm-gold); outline-offset: 3px; border-radius: 3px; }

.acm-cart__count {
	position: absolute;
	top: -7px;
	right: -9px;
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	border-radius: 10px;
	background: var(--acm-red);
	color: #fff;
	font-family: var(--acm-body);
	font-size: .7rem;
	font-weight: 700;
	line-height: 19px;
	text-align: center;
	/* Rings the badge in the masthead's white so it reads as a separate chip
	   instead of merging into the cart glyph behind it. */
	box-shadow: 0 0 0 2px #fff;
}
/* An empty cart shows no number at all — a grey "0" just adds noise. */
.acm-cart__count.is-empty { display: none; }

.acm-cart__txt small { display: block; font-size: .74rem; color: var(--acm-slate); line-height: 1.2; }
.acm-cart__txt strong {
	display: block;
	font-family: var(--acm-head);
	font-size: 1.32rem;
	font-weight: 700;
	line-height: 1.15;
}
.acm-cart:hover .acm-cart__txt strong { color: var(--acm-red); }

.acm-burger {
	display: none;
	background: transparent;
	border: 0;
	width: 44px; height: 40px;
	padding: 9px 8px;
	cursor: pointer;
	flex: none;
}
.acm-burger span { display: block; height: 3px; background: var(--acm-ink); border-radius: 2px; margin: 4px 0; transition: transform .2s ease, opacity .2s ease; }
.acm-burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.acm-burger.is-open span:nth-child(2) { opacity: 0; }
.acm-burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* --- nav row --- */
.acm-nav { background: var(--acm-mist); border-bottom: 3px solid var(--acm-gold); }
.acm-nav__in {
	max-width: var(--acm-max);
	margin-inline: auto;
	padding: 0 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
}
.acm-nav__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.acm-nav__menu > li { position: relative; }
.acm-nav__menu > li > a {
	display: block;
	padding: .92rem .95rem;
	font-family: var(--acm-head);
	font-weight: 700;
	font-size: 1.03rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--acm-ink);
	text-decoration: none;
	position: relative;
}
.acm-nav__menu > li > a::after {
	content: "";
	position: absolute;
	left: .95rem; right: .95rem; bottom: 0;
	height: 3px;
	background: var(--acm-red);
	transform: scaleX(0);
	transition: transform .16s ease;
}
.acm-nav__menu > li:hover > a::after,
.acm-nav__menu > li.current-menu-item > a::after,
.acm-nav__menu > li.current-menu-parent > a::after { transform: scaleX(1); }
.acm-nav__menu > li:hover > a { color: var(--acm-red); }
.acm-nav__menu .menu-item-has-children > a::before {
	content: "";
	position: absolute;
	right: .1rem; top: 50%;
	width: 6px; height: 6px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-70%) rotate(45deg);
	opacity: .55;
}
.acm-nav__menu .menu-item-has-children > a { padding-right: 1.5rem; }

.acm-nav__menu .sub-menu {
	position: absolute;
	top: 100%; left: 0;
	min-width: 236px;
	background: #fff;
	border: 1px solid var(--acm-line);
	border-top: 3px solid var(--acm-gold);
	box-shadow: var(--acm-shadow-lg);
	list-style: none;
	margin: 0; padding: .35rem 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s;
	z-index: 60;
}
.acm-nav__menu > li:hover .sub-menu,
.acm-nav__menu > li:focus-within .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.acm-nav__menu .sub-menu a {
	display: block;
	padding: .6rem 1.05rem;
	color: var(--acm-steel);
	text-decoration: none;
	font-size: .95rem;
}
.acm-nav__menu .sub-menu a:hover { background: var(--acm-mist); color: var(--acm-red); }

.acm-nav__side {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-family: var(--acm-head);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	font-size: .95rem;
	color: var(--acm-ink);
	text-decoration: none;
	flex: none;
}
.acm-nav__side svg { width: 16px; height: 16px; color: var(--acm-red); }
.acm-nav__side:hover { color: var(--acm-red); }

/* --- responsive header --- */
@media (max-width: 1199px) {
	.acm-mast__cta .acm-btn:last-child { display: none; }
	.acm-search { max-width: 300px; }
}
@media (max-width: 1099px) {
	.acm-strip__group { display: none; }
	.acm-strip__in { justify-content: center; }
	.acm-mast__in { flex-wrap: wrap; gap: .8rem 1rem; padding: 12px 16px; }
	.acm-mast__logo img { height: 46px; }
	.acm-search { order: 5; flex: 1 0 100%; max-width: none; }
	.acm-mast__cta { display: none; }
	/* The phone's auto margin already pushes this cluster right. Leaving an
	   auto margin on the burger too would split the slack between the two and
	   strand the cart in the middle of the bar. */
	.acm-burger { display: block; margin-left: 0; }
	.acm-mast__phone { margin-left: auto; }
	.acm-cart { gap: 0; }
	.acm-cart__txt { display: none; }
	.acm-mast__phone small { display: none; }
	.acm-mast__phone strong { font-size: 1.1rem; }

	.acm-nav { border-bottom-width: 3px; }
	.acm-nav__in { display: block; padding: 0; }
	.acm-nav__menu { display: none; flex-direction: column; }
	.acm-nav.is-open .acm-nav__menu { display: flex; }
	.acm-nav__menu > li { border-top: 1px solid var(--acm-line); }
	.acm-nav__menu > li > a { padding: .9rem 20px; }
	.acm-nav__menu > li > a::after { display: none; }
	.acm-nav__menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		border-top: 1px solid var(--acm-line);
		display: none;
		background: #fff;
	}
	.acm-nav__menu > li.is-open .sub-menu { display: block; }
	.acm-nav__menu .sub-menu a { padding-left: 34px; }
	.acm-nav__side { display: none; }
}
@media (max-width: 420px) {
	.acm-mast__phone strong { font-size: 1rem; }
	.acm-mast__logo img { height: 38px; }
	/* Logo, phone, cart and burger all share one row down here, and the cart
	   adds ~35px to that run — enough to tip the burger onto a second line and
	   make the masthead 50px taller. Tighten the gaps to hold it on one row.
	   The phone number stays: on mobile this is the only one on screen, since
	   the contact strip and the nav-row call link are both hidden below 1100. */
	.acm-mast__in { gap: .75rem .5rem; }
	.acm-mast__phone { gap: .4rem; }
	.acm-cart__ico svg { width: 25px; height: 25px; }
	.acm-burger { width: 40px; padding: 9px 6px; }
}
@media (max-width: 360px) {
	.acm-mast__logo img { height: 32px; }
	.acm-mast__phone svg { width: 22px; height: 22px; }
	.acm-mast__phone strong { font-size: .92rem; }
}

/* ==========================================================================
   Contact page
   ========================================================================== */

/* Astra wraps page content in .ast-container (max-width 1280 + 20px padding),
   which turned the dark hero into an inset box floating inside the page rather
   than a band running edge to edge. The inner sections carry their own
   .acm-wrap max-width, so releasing the container here costs nothing. */
.acm-contact-page .ast-container {
	max-width: 100%;
	padding-left: 0;
	padding-right: 0;
	/* Astra runs this container as a flex row. Left as flex, .acm-contact became
	   a flex item sized to its content (1280px) and sat hard against the left
	   edge instead of filling the viewport, so the inner .acm-wrap had no slack
	   left to centre itself in. */
	display: block;
}
.acm-contact { width: 100%; }

.acm-contact__head { background: var(--acm-ink); color: #fff; padding: clamp(2.4rem, 5vw, 3.6rem) 0; }
.acm-contact__head h1 { color: #fff; font-size: clamp(2rem, 4.5vw, 3rem); margin: .3rem 0 .8rem; }
.acm-contact__lede { max-width: 62ch; color: #c8d0da; line-height: 1.7; margin: 0; }
.acm-contact .acm-eyebrow { color: var(--acm-gold); font-family: var(--acm-head); letter-spacing: .16em; text-transform: uppercase; font-size: .82rem; margin: 0; }

.acm-contact__cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	margin-top: -1.9rem;
	margin-bottom: 3rem;
	position: relative;
	z-index: 2;
}
.acm-ccard {
	background: #fff;
	border: 1px solid var(--acm-line);
	border-top: 3px solid var(--acm-gold);
	border-radius: 3px;
	padding: 1.25rem 1.2rem;
	display: block;
	text-decoration: none;
	color: var(--acm-ink);
	box-shadow: 0 2px 10px rgba(16, 22, 30, .06);
	transition: transform .15s ease, box-shadow .15s ease;
}
a.acm-ccard:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(16, 22, 30, .1); }
.acm-ccard svg { width: 24px; height: 24px; color: var(--acm-gold-dk); display: block; margin-bottom: .6rem; }
.acm-ccard__label { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--acm-slate); margin-bottom: .3rem; }
.acm-ccard__value { display: block; font-family: var(--acm-head); font-size: 1.2rem; font-weight: 700; line-height: 1.2; overflow-wrap: anywhere; }
.acm-ccard__note { display: block; font-size: .84rem; color: var(--acm-slate); margin-top: .35rem; line-height: 1.5; }

.acm-contact__main { display: grid; grid-template-columns: 1.35fr 1fr; gap: 2.6rem; align-items: start; }
.acm-form-wrap h2 { font-size: 1.7rem; margin: 0 0 1.1rem; }

.acm-notice { padding: .9rem 1.1rem; border-radius: 3px; margin-bottom: 1.2rem; font-size: .95rem; border-left: 4px solid; }
.acm-notice--ok { background: #edf7ee; border-color: #2e7d32; color: #1b5e20; }
.acm-notice--err { background: #fdeceb; border-color: var(--acm-red); color: #9b1c17; }

.acm-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.acm-form p { margin: 0 0 1rem; }
.acm-form label { display: block; font-size: .86rem; font-weight: 600; margin-bottom: .35rem; }
.acm-form label span { color: var(--acm-red); }
.acm-form input, .acm-form select, .acm-form textarea {
	width: 100%;
	border: 2px solid var(--acm-line);
	border-radius: 3px;
	padding: .7rem .85rem;
	font-size: .95rem;
	font-family: var(--acm-body);
	background: var(--acm-mist);
	color: var(--acm-ink);
	/* Astra sets a tall inherited line-height that clipped the select's text
	   against its own padding. Pin it and let the box grow to the content. */
	line-height: 1.35;
	height: auto;
	min-height: 46px;
}
.acm-form select { appearance: none; -webkit-appearance: none; padding-right: 2.2rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234a5560' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right .75rem center; background-size: 16px; }
.acm-form input:focus, .acm-form select:focus, .acm-form textarea:focus {
	outline: none;
	border-color: var(--acm-gold);
	background: #fff;
}
.acm-form textarea { resize: vertical; min-height: 140px; }
.acm-form__submit { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.acm-form__submit span { font-size: .88rem; color: var(--acm-slate); }
.acm-form button { cursor: pointer; border: 0; }

/* Honeypot: off-screen rather than display:none, which some bots detect. */
.acm-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.acm-map { border: 1px solid var(--acm-line); border-radius: 3px; overflow: hidden; margin-bottom: 1.4rem; }
.acm-aside-box { background: var(--acm-mist); border: 1px solid var(--acm-line); border-radius: 3px; padding: 1.3rem; }
.acm-aside-box h3 { font-size: 1.15rem; margin: 0 0 .6rem; }
.acm-aside-box ul { margin: 0 0 1.1rem; padding-left: 1.1rem; }
.acm-aside-box li { margin-bottom: .4rem; font-size: .93rem; }

.acm-contact__copy { margin: 3.2rem auto; max-width: 80ch; }
.acm-contact__copy h2 { font-size: 1.55rem; margin-top: 2rem; }
.acm-contact__copy table { width: 100%; border-collapse: collapse; }
.acm-contact__copy th, .acm-contact__copy td { border: 1px solid var(--acm-line); padding: .6rem .8rem; text-align: left; }
.acm-contact__copy th { background: var(--acm-mist); }

@media (max-width: 1099px) {
	.acm-contact__cards { grid-template-columns: repeat(2, 1fr); }
	.acm-contact__main { grid-template-columns: 1fr; gap: 2rem; }
}
@media (max-width: 544px) {
	.acm-contact__cards { grid-template-columns: 1fr; margin-top: -1rem; }
	.acm-form__row { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Breadcrumbs + internal link blocks
   ========================================================================== */

.acm-crumbs { background: var(--acm-mist); border-bottom: 1px solid var(--acm-line); font-size: .86rem; }
.acm-crumbs .acm-wrap { padding-block: .7rem; }
.acm-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .1rem .55rem; }
.acm-crumbs li { display: flex; align-items: center; gap: .55rem; color: var(--acm-slate); min-width: 0; }
.acm-crumbs li + li::before { content: "/"; color: #b9c2cc; }
.acm-crumbs a { color: var(--acm-slate); text-decoration: none; }
.acm-crumbs a:hover { color: var(--acm-red); text-decoration: underline; }
.acm-crumbs [aria-current] {
	color: var(--acm-ink);
	font-weight: 600;
	/* The product name is the last crumb and can be long — keep it on one line
	   rather than letting it wrap the whole bar onto a second row. */
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: min(46ch, 60vw);
}

/* On single-product pages acm_breadcrumbs() fires on woocommerce_before_main_content
   at 8 — after Astra opens .ast-container but before it opens #primary — so the nav
   lands as a direct child of the flex container. Left alone it becomes a column:
   ~444px wide, stretched the full height of the page, squeezing the gallery and
   summary into what's left. Wrap it onto its own full-width row instead. */
.single-product .ast-container { flex-wrap: wrap; }
.single-product .acm-crumbs { flex: 0 0 100%; width: 100%; }

.acm-ilinks {
	margin-top: 2.6rem;
	padding-top: 2rem;
	border-top: 1px solid var(--acm-line);
}
.acm-ilinks__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.acm-ilinks h3 {
	font-family: var(--acm-head);
	font-size: 1.05rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	margin: 0 0 .85rem;
	padding-bottom: .5rem;
	border-bottom: 2px solid var(--acm-gold);
	display: inline-block;
}
.acm-ilinks ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.acm-ilinks a { color: var(--acm-slate); text-decoration: none; font-size: .92rem; line-height: 1.45; }
.acm-ilinks a:hover { color: var(--acm-red); text-decoration: underline; }

.acm-catlinks { background: var(--acm-mist); border-top: 1px solid var(--acm-line); padding: 2.4rem 0; margin-top: 2.5rem; }
.acm-catlinks h2 { font-size: 1.35rem; margin: 0 0 1.1rem; }
.acm-catlinks ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.acm-catlinks li a {
	display: inline-block;
	background: #fff;
	border: 1px solid var(--acm-line);
	border-radius: 3px;
	padding: .5rem .9rem;
	font-size: .9rem;
	color: var(--acm-ink);
	text-decoration: none;
}
.acm-catlinks li a:hover { border-color: var(--acm-gold); color: var(--acm-red); }
.acm-catlinks span { color: var(--acm-slate); font-size: .82rem; }

@media (max-width: 921px) {
	.acm-ilinks__grid { grid-template-columns: 1fr 1fr; gap: 1.6rem; }
}
@media (max-width: 544px) {
	.acm-ilinks__grid { grid-template-columns: 1fr; }
	.acm-crumbs [aria-current] { max-width: 100%; }
}

/* Astra's leftover header shell must not reserve space. */
.site-header, .ast-above-header-bar, .ast-primary-header-bar { display: none !important; }

/* ==========================================================================
   17. Catalogue card detail
   ========================================================================== */

.woocommerce ul.products li.product { position: relative; }
.woocommerce ul.products li.product > a:first-of-type { position: relative; display: block; }

.acm-card-badge {
	position: absolute;
	top: 10px; left: 10px;
	z-index: 3;
	background: rgba(20, 24, 29, .9);
	color: #fff;
	font-family: var(--acm-head);
	font-weight: 700;
	font-size: .74rem;
	letter-spacing: .07em;
	text-transform: uppercase;
	padding: .32em .7em;
	border-radius: 2px;
	pointer-events: none;
}

/* Astra prints the category name above the title — the badge replaces it. */
.woocommerce ul.products li.product .ast-woo-product-category { display: none; }

.acm-card-specs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--acm-line);
	border-top: 1px solid var(--acm-line);
	border-bottom: 1px solid var(--acm-line);
	margin: .55rem 0 0;
}
.acm-card-spec {
	background: #fff;
	padding: .38rem .8rem;
	min-width: 0;
}
.acm-card-spec span {
	display: block;
	font-size: .68rem;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--acm-slate);
	line-height: 1.3;
}
.acm-card-spec b {
	display: block;
	font-size: .86rem;
	font-weight: 600;
	color: var(--acm-ink);
	line-height: 1.35;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.woocommerce ul.products li.product .button.acm-view {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	background: var(--acm-ink);
	color: #fff !important;
	margin: .75rem .85rem .85rem;
	padding: .68em 1.1em;
}
.woocommerce ul.products li.product .button.acm-view span { transition: transform .16s ease; }
.woocommerce ul.products li.product .button.acm-view:hover { background: var(--acm-gold); color: var(--acm-ink) !important; }
.woocommerce ul.products li.product .button.acm-view:hover span { transform: translateX(3px); }

/* Price sits tighter to the title now the spec strip follows it. */
.woocommerce ul.products li.product .price { margin: .3rem 0 .1rem; }

/* Astra renders the card summary in its own order, so the spec strip lands
   above the title. Flex ordering is more reliable than fighting its hooks. */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap > * { order: 5; }
/* Astra wraps the title in .ast-loop-product__link, so that anchor — not the
   h2 inside it — is the flex child that needs ordering. */
.woocommerce ul.products li.product .ast-loop-product__link,
.woocommerce ul.products li.product > .astra-shop-summary-wrap > .woocommerce-loop-product__title { order: 1; }
.woocommerce ul.products li.product .star-rating,
.woocommerce ul.products li.product .woocommerce-product-rating { order: 2; }
.woocommerce ul.products li.product .price { order: 3; }
.woocommerce ul.products li.product .acm-card-specs { order: 4; margin-top: auto; }
.woocommerce ul.products li.product .button.acm-view { order: 6; }

/* Mobile: the dropdown chevron sat on the viewport edge and clipped. */
@media (max-width: 1099px) {
	.acm-nav__menu .menu-item-has-children > a { padding-right: 44px; }
	.acm-nav__menu .menu-item-has-children > a::before { right: 24px; }
	.acm-nav__menu > li.is-open > a::before { transform: translateY(-30%) rotate(225deg); }
}

/* Hard ceiling on inline icons. Belt-and-braces after a stale-cache incident
   rendered every icon at full container width. */
svg[focusable="false"][aria-hidden="true"] { max-width: 2rem; max-height: 2rem; }

/* The category badge owns the top-left of a card, so the sale flash moves to
   the right. Both were stacking on the same corner. */
.woocommerce ul.products li.product span.onsale {
	left: auto !important;
	right: 10px !important;
	top: 10px !important;
}

/* Astra prints its own "Sale!" pill on top of WooCommerce's flash, so every
   discounted card showed two badges. Ours states the actual saving. */
.woocommerce ul.products li.product .ast-onsale-card,
.woocommerce ul.products li.product .ast-on-card-button.ast-onsale-card { display: none !important; }

/* ==========================================================================
   18. Internal linking blocks
   ========================================================================== */

.acm-relcats { background: var(--acm-mist); padding-block: clamp(1.5rem, 2.4vw, 2.2rem) !important; margin-top: 1.4rem; }
.acm-relcats__h {
	font-size: 1.35rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	margin: 0 0 1.1rem;
}
.acm-relcats__grid { display: flex; flex-wrap: wrap; gap: .6rem; }
.acm-relcat {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	background: #fff;
	border: 1px solid var(--acm-line);
	border-radius: 3px;
	padding: .6rem .95rem;
	text-decoration: none;
	color: var(--acm-ink);
	font-family: var(--acm-head);
	font-weight: 700;
	font-size: 1rem;
	letter-spacing: .02em;
	text-transform: uppercase;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.acm-relcat:hover { border-color: var(--acm-gold); box-shadow: var(--acm-shadow); transform: translateY(-2px); color: var(--acm-ink); }
.acm-relcat b {
	font-size: .76rem;
	color: var(--acm-slate);
	background: var(--acm-mist);
	border-radius: 20px;
	padding: .12rem .5rem;
	font-weight: 700;
}

.acm-prod-links {
	font-size: .9rem;
	color: var(--acm-slate);
	margin: 1rem 0 0;
	padding-top: .9rem;
	border-top: 1px solid var(--acm-line);
	line-height: 1.7;
}
.acm-prod-links a { color: var(--acm-ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--acm-line); }
.acm-prod-links a:hover { color: var(--acm-red); text-decoration-color: currentColor; }

/* A product with no brand leaves an odd number of spec cells — let the last
   one span the row instead of showing a blank box. */
.acm-card-spec:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* Manufacturer model number beside the SKU on the product page. */
.acm-model { display: block; margin-top: .35rem; font-size: .92rem; color: var(--acm-slate); }
.acm-model span { color: var(--acm-ink); font-weight: 600; }

/* Tighter rhythm: the "View all" button under each grid sat on 2rem. */
.acm-front .acm-section > .acm-wrap > p:last-child { margin-top: 1.3rem !important; }
.acm-front .acm-trust + .acm-section { padding-top: clamp(1.75rem, 2.8vw, 2.6rem); }

/* ==========================================================================
   Payment acceptance marks
   ========================================================================== */

.acm-footer__pay { margin-top: 1.25rem; }
.acm-footer__pay-label {
	display: block;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #6f7b88;
	margin-bottom: .55rem;
}
.acm-footer__pay-row {
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap;
}

/* Bundled glyphs. Optically matched rather than set to one height — the card
   marks share a 576x512 box, so they key off that and everything else is
   tuned to sit level with them. */
.acm-pay.is-icon {
	display: inline-flex;
	align-items: center;
	color: #aab4c0;
	background: transparent;
	border: 0;
	padding: 0;
	transition: color .16s ease;
}
.acm-pay.is-icon svg { height: 26px; width: auto; display: block; }
.acm-pay.is-icon:hover { color: #fff; }

/* Supplied card artwork carries its own background, so no white plate — a
   plate just frames the tile and thickens the row. Rounded to match the art. */
.acm-pay.has-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 26px;
	border-radius: 3px;
	overflow: hidden;
	background: transparent;
	padding: 0;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .1);
	transition: box-shadow .16s ease, transform .16s ease;
}
.acm-pay.has-mark:hover { box-shadow: 0 0 0 1px rgba(255, 255, 255, .32); transform: translateY(-1px); }
.acm-pay.has-mark img { height: 26px; width: auto; object-fit: contain; display: block; }

/* Methods with no mark — set in type, sized to sit level with the glyphs. */
.acm-pay.is-text {
	display: inline-flex;
	align-items: center;
	height: 26px;
	padding: 0 .55rem;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 3px;
	font-size: .64rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #aab4c0;
	white-space: nowrap;
	transition: color .16s ease, border-color .16s ease;
}
.acm-pay.is-text:hover { color: #fff; border-color: rgba(255, 255, 255, .32); }

/* Product page — enquiry panel (acm-product-enquiry.php). */
.acm-enq {
	margin: 3rem 0 1rem;
	padding: 2rem 2.2rem 2.2rem;
	background: var(--acm-mist);
	border: 1px solid var(--acm-line);
	border-top: 3px solid var(--acm-gold);
	border-radius: 4px;
	clear: both;
}
.acm-enq__head { margin-bottom: 1.4rem; }
.acm-enq__head h2 {
	font-family: var(--acm-head);
	text-transform: uppercase;
	letter-spacing: .02em;
	font-size: 1.6rem;
	margin: 0 0 .4rem;
}
.acm-enq__head p { margin: 0; color: var(--acm-slate); font-size: .95rem; max-width: 62ch; }
.acm-enq__unit {
	background: var(--acm-white);
	border: 1px solid var(--acm-line);
	border-left: 3px solid var(--acm-ink);
	border-radius: 3px;
	padding: .7rem .9rem;
	font-size: .92rem;
	color: var(--acm-slate);
}
.acm-enq__unit strong { color: var(--acm-ink); }
.acm-enq__unit span { color: var(--acm-slate); font-weight: 400; }
.acm-enq .acm-form input, .acm-enq .acm-form select, .acm-enq .acm-form textarea { background-color: var(--acm-white); }
.acm-enq .acm-form textarea { min-height: 110px; }

@media (max-width: 782px) {
	.acm-enq { padding: 1.5rem 1.2rem 1.6rem; margin: 2.2rem 0 1rem; }
}
