/*
 * ACW Modern — base layer.
 * Supplements theme.json with accessibility, navigation, and a few component styles
 * that theme.json cannot express. Mobile-first. No frameworks.
 */

/* ---------- Accessibility: skip link & focus ---------- */
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 1000;
	padding: 0.75rem 1rem;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border-radius: 0 0 8px 0;
}
.skip-link:focus {
	left: 0;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
	border-radius: 2px;
}

/* Ensure tap targets are comfortable */
.wp-block-button__link,
.acw-utility-bar a,
.acw-mobile-bar a {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ---------- Utility bar ---------- */
.acw-utility-bar {
	background: var(--wp--preset--color--surface-dark);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--small);
}
.acw-utility-bar a { color: var(--wp--preset--color--base); }
.acw-utility-bar .acw-open-status[data-open="true"]  { color: #5fd39a; }
.acw-utility-bar .acw-open-status[data-open="false"] { color: #ffb4ab; }

/* ---------- Utility bar ---------- */
.acw-utility-bar {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	padding: 0.45rem clamp(1rem, 4vw, 2.5rem);
	column-gap: 1.75rem;
	row-gap: 0.25rem;
	font-size: 14px;
	font-weight: 500;
	flex-wrap: wrap;
}
.acw-utility-bar a { white-space: nowrap; text-decoration: none; font-weight: 600; }
.acw-utility-bar a:hover { text-decoration: underline; }

/* ---------- Header / navigation ---------- */
.acw-header { border-bottom: 1px solid var(--wp--preset--color--border); }
.acw-header__bar {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1320px);
	margin-inline: auto;
	padding-inline: clamp(1rem, 4vw, 2.5rem);
	align-items: center;
	column-gap: 1.25rem;
}
.acw-brand { align-items: center; gap: 0.6rem; }
.acw-wordmark a {
	font-weight: 700;
	font-size: 1.3rem;
	line-height: 1.1;
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}
/* When the real logo image is present, show only the logo (wordmark is a no-logo fallback). */
.acw-brand:has(.wp-block-site-logo img) .acw-wordmark { display: none; }
.acw-brand .wp-block-site-logo img { height: auto; }
.acw-primary-nav { align-items: center; column-gap: 1.25rem; row-gap: 0.5rem; }
/* Bolder, clearer primary navigation. */
.acw-primary-nav .wp-block-navigation-item__content {
	font-weight: 700;
	color: var(--wp--preset--color--text);
}
.acw-primary-nav .wp-block-navigation-item__content:hover,
.acw-primary-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--primary);
}
@media (min-width: 1024px) {
	/* Logo + nav grouped left; account/cart/CTA pushed to the right (no logo↔nav gap). */
	.acw-header__bar { justify-content: flex-start; column-gap: 1.5rem; }
	.acw-primary-nav { flex: 1 1 auto; flex-wrap: nowrap; column-gap: 1rem; }
	.acw-primary-nav > .wp-block-navigation { margin-right: auto; }
	.acw-primary-nav .wp-block-navigation { flex-wrap: nowrap; column-gap: 1.05rem; }
	.acw-primary-nav .wp-block-navigation-item__content { font-size: 1rem; white-space: nowrap; }
}
/* Bigger logo, but cap it on small screens so it never crowds the menu button. */
.acw-brand .wp-block-site-logo { line-height: 0; }
@media (max-width: 600px) {
	.acw-brand .wp-block-site-logo,
	.acw-brand .wp-block-site-logo img { width: 200px !important; }
}

/* ---------- Hero / feature image placeholders ---------- */
.acw-hero__placeholder,
.acw-board__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 240px;
	border-radius: 16px;
	padding: 1.5rem;
	text-align: center;
}
.acw-hero__placeholder {
	background: var(--wp--preset--color--base-subtle);
	border: 1px dashed var(--wp--preset--color--border-strong);
	color: var(--wp--preset--color--text-muted);
}
.acw-board__placeholder {
	background: rgba(255, 255, 255, 0.06);
	border: 1px dashed rgba(255, 255, 255, 0.25);
	color: rgba(255, 255, 255, 0.7);
	min-height: 180px;
}

.acw-nav-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: transparent;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 8px;
	padding: 0.5rem 0.75rem;
	cursor: pointer;
	color: var(--wp--preset--color--text);
}
.acw-nav-toggle[aria-expanded="true"] .acw-nav-toggle__open { display: none; }
.acw-nav-toggle[aria-expanded="false"] .acw-nav-toggle__close { display: none; }
.acw-nav-close { display: none; } /* only shown inside the mobile drawer */

/* Mobile drawer */
@media (max-width: 1023px) {
	.acw-primary-nav {
		position: fixed;
		inset: 0 0 0 auto;
		width: min(86vw, 360px);
		background: var(--wp--preset--color--base);
		box-shadow: var(--wp--preset--shadow--lg);
		transform: translateX(100%);
		transition: transform 200ms ease;
		padding: 4rem 1.25rem 2rem;
		overflow-y: auto;
		z-index: 999;
	}
	.acw-primary-nav.is-open { transform: translateX(0); }
	/* Sub-menus (Repairs, Shop) expand inline and indented — no desktop fly-out in the drawer. */
	.acw-primary-nav .wp-block-navigation__submenu-container {
		position: static !important;
		display: block !important;
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
		opacity: 1 !important;
		visibility: visible !important;
		width: 100% !important;
		min-width: 0 !important;
		transform: none !important;
		border: 0 !important;
		box-shadow: none !important;
		background: transparent !important;
		padding-left: 1rem !important;
		margin: 0 !important;
	}
	.acw-primary-nav .wp-block-navigation__submenu-container > li { display: block; width: 100%; }
	.acw-primary-nav .wp-block-navigation__submenu-icon { display: none !important; }
	.acw-primary-nav .wp-block-navigation-item { display: block; }
	.acw-primary-nav .wp-block-navigation-item__content { display: block; padding: 0.7rem 0; }
	.acw-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-weight: 400; padding: 0.5rem 0; }
	/* Visible close button inside the drawer (injected by navigation.js). */
	.acw-nav-close {
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 0.75rem;
		right: 0.9rem;
		width: 42px;
		height: 42px;
		border: 1px solid var(--wp--preset--color--border-strong);
		border-radius: 8px;
		background: var(--wp--preset--color--base);
		color: var(--wp--preset--color--text);
		font-size: 1.5rem;
		line-height: 1;
		cursor: pointer;
	}
	.acw-nav-backdrop {
		position: fixed;
		inset: 0;
		background: rgba(15, 23, 34, 0.5);
		opacity: 0;
		visibility: hidden;
		transition: opacity 200ms ease;
		z-index: 998;
	}
	.acw-nav-backdrop.is-open { opacity: 1; visibility: visible; }
}
@media (min-width: 1024px) {
	.acw-nav-toggle { display: none; }
	.acw-nav-backdrop { display: none; }
}

/* ---------- Cards ---------- */
.acw-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--md, 10px);
	box-shadow: var(--wp--preset--shadow--sm);
	transition: box-shadow 200ms ease, transform 200ms ease;
}
.acw-card:hover,
.acw-card:focus-within {
	box-shadow: var(--wp--preset--shadow--md);
	transform: translateY(-2px);
}
/* Equal-height cards in post grids (blog, repair advice, repair stories, homepage rows)
   so rows don't end up ragged when excerpts differ in length. */
.wp-block-post-template.is-layout-grid > li { display: flex; min-width: 0; }
.wp-block-post-template.is-layout-grid > li > .acw-card { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
/* min-width:0 above is load-bearing. Flex items default to min-width:auto, so they refuse to
   shrink below their content's intrinsic size. Combined with the featured image's aspect-ratio,
   an EAGERLY-loaded thumbnail resolves circularly (height x ratio) and blows the card out to the
   image's natural width, bursting the grid — while lazy-loaded cards further down stay correct,
   which is why only the top row broke. min-width:0 lets each card shrink to its grid column.
   The card's inner groups need the same treatment: they are constrained-layout groups, so core
   gives them max-width:<global content size> (1140px) — inside a ~210px card that lets the title
   and excerpt spill straight out. Clamp them to the card instead. */
.wp-block-post-template.is-layout-grid > li > .acw-card > *,
.wp-block-post-template.is-layout-grid > li > .acw-card > * > * {
	min-width: 0;
	max-width: 100%;
}

/* Post-card featured images: pin every thumbnail to a uniform 16:9 slot. Relying on
   the block's inline aspect-ratio alone is inconsistent across browsers (Chrome rendered them
   at natural size and overlapped); this enforces it everywhere. */
.acw-card .wp-block-post-featured-image {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	min-width: 0;
	border-radius: 10px 10px 0 0;
	margin: 0;
	background: #fff;
}
.acw-card .wp-block-post-featured-image a { display: block; width: 100%; height: 100%; }
.acw-card .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	/* contain (not cover): show the whole image so nothing is cropped off the top/bottom.
	   !important is required because the Featured Image block prints an inline object-fit:cover
	   on the <img>, which would otherwise win. The white background fills any letterbox. */
	object-fit: contain !important;
	display: block;
}

/* Embedded Google map (About / contact) */
.acw-map {
	margin-top: 1.25rem;
	border-radius: var(--wp--custom--radius--md, 10px);
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--border);
	line-height: 0;
}
.acw-map iframe { display: block; width: 100%; }

/* Header mini-cart: keep it inline and tidy in the utility bar */
.acw-mini-cart .wc-block-mini-cart__button { padding: 0; color: inherit; }

/* Mini-cart (slide-out basket): the product title was rendering huge. Rather than guess
   WooCommerce's inner class names, force a sane size on EVERYTHING inside the basket items
   containers (these wrapper classes are confirmed present in the live markup). WC's block
   styles load after the theme, so !important is required to win the cascade and stop the
   size flickering between the server-rendered and hydrated states. */
.wc-block-mini-cart__template-part *,
.wc-block-mini-cart__items,
.wc-block-mini-cart__items *,
.wc-block-mini-cart-items,
.wc-block-mini-cart-items *,
.wc-block-mini-cart__products-table,
.wc-block-mini-cart__products-table * {
	font-size: 1rem !important;
	line-height: 1.4 !important;
	letter-spacing: normal !important;
}
/* keep the drawer heading ("Your basket") readable — placed AFTER so it wins */
.wc-block-mini-cart__template-part .wc-block-mini-cart__title,
.wc-block-mini-cart__title {
	font-size: 1.25rem !important;
	line-height: 1.3 !important;
}

/* Homepage "Free parking" car — a small top-right OVERLAY that plays once on load then fades
   away. position:fixed so it takes no layout space and never shifts the page. */
.acw-park-pop {
	position: fixed;
	top: 175px;
	right: 18px;
	width: 280px;
	max-width: 54vw;
	z-index: 60;
	pointer-events: none;
	animation: acw-park-life 6.4s ease forwards;
}
.acw-park-pop svg { display: block; width: 100%; height: auto; overflow: hidden; filter: drop-shadow(0 10px 18px rgba(16, 40, 80, 0.18)); }
.acw-park-pop .acw-car { transform: translateX(300px); animation: acw-car-drive 2s cubic-bezier(0.16, 0.7, 0.26, 1) forwards; }
.acw-park-pop .acw-car-wheel { transform-box: fill-box; transform-origin: center; animation: acw-car-spin 2s cubic-bezier(0.08, 0.5, 0.18, 1) forwards; }
.acw-park-pop .acw-car-body { animation: acw-car-dip 2s ease-out forwards; }
.acw-park-pop .acw-car-brake { opacity: 0; animation: acw-car-brake 2s linear forwards; }
.acw-park-pop .acw-car-lines { opacity: 0; animation: acw-car-lines 1.2s ease-out forwards; }
.acw-park-pop .acw-car-shadow { opacity: 0; animation: acw-car-fade 0.5s ease 1.6s forwards; }
.acw-park-pop .acw-car-puff { opacity: 0; animation: acw-car-puff 1s ease 1.55s forwards; }
.acw-park-pop .acw-car-led { transform-box: fill-box; transform-origin: center; animation: acw-car-led 1.4s ease-in-out infinite; }
.acw-park-pop .acw-car-person { opacity: 0; transform-box: fill-box; transform-origin: bottom; animation: acw-car-step 0.85s cubic-bezier(0.2, 0.8, 0.3, 1) 2s forwards; }
.acw-park-pop .acw-car-feet { transform-box: fill-box; transform-origin: bottom; animation: acw-car-walk 0.25s steps(2) 2s 3; }
.acw-park-pop .acw-car-label { opacity: 0; transform-box: fill-box; transform-origin: center; animation: acw-car-label 0.6s cubic-bezier(0.2, 0.9, 0.3, 1.5) 2.8s forwards; }
.acw-park-pop .acw-car-spark { opacity: 0; transform-box: fill-box; transform-origin: center; animation: acw-car-spark 1.1s ease 3.1s forwards; }
.acw-park-pop .acw-car-spark--2 { animation-delay: 3.45s; }
@keyframes acw-park-life { 0%, 86% { opacity: 1; } 100% { opacity: 0; visibility: hidden; } }
@keyframes acw-car-drive { 0% { transform: translateX(300px); } 86% { transform: translateX(-6px); } 100% { transform: translateX(0); } }
@keyframes acw-car-spin { to { transform: rotate(1800deg); } }
@keyframes acw-car-dip { 0%, 74% { transform: translateY(0); } 83% { transform: translateY(2.5px); } 91% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes acw-car-brake { 0%, 70% { opacity: 0; } 74%, 90% { opacity: 1; } 100% { opacity: 0; } }
@keyframes acw-car-lines { 0% { opacity: 0.5; } 65% { opacity: 0.35; } 100% { opacity: 0; } }
@keyframes acw-car-fade { to { opacity: 1; } }
@keyframes acw-car-puff { 0% { opacity: 0.5; transform: translateX(0) scale(0.5); } 100% { opacity: 0; transform: translateX(30px) scale(1.6); } }
@keyframes acw-car-led { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
@keyframes acw-car-step { 0% { opacity: 0; transform: translateX(34px); } 100% { opacity: 1; transform: translateX(0); } }
@keyframes acw-car-walk { 0% { transform: translateY(0); } 50% { transform: translateY(-1.5px); } 100% { transform: translateY(0); } }
@keyframes acw-car-label { 0% { opacity: 0; transform: scale(0.6); } 60% { opacity: 1; transform: scale(1.1); } 100% { opacity: 1; transform: scale(1); } }
@keyframes acw-car-spark { 0% { opacity: 0; transform: scale(0) rotate(0); } 40% { opacity: 1; transform: scale(1) rotate(35deg); } 100% { opacity: 0; transform: scale(0.4) rotate(70deg); } }
/* Don't show a moving overlay to reduce-motion users, and keep phones uncluttered. */
@media (prefers-reduced-motion: reduce) { .acw-park-pop { display: none; } }
@media (max-width: 781px) { .acw-park-pop { display: none; } }

/* ---------- Accordion (FAQ) ---------- */
.acw-accordion details {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	margin-bottom: 0.5rem;
}
.acw-accordion summary {
	cursor: pointer;
	padding: 1rem;
	font-weight: 600;
	list-style: none;
}
.acw-accordion summary::-webkit-details-marker { display: none; }
.acw-accordion details[open] summary { border-bottom: 1px solid var(--wp--preset--color--border); }
.acw-accordion .acw-accordion__body { padding: 1rem; }

/* ---------- Mobile sticky action bar ---------- */
.acw-mobile-bar {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--wp--preset--color--border-strong);
	z-index: 900;
	box-shadow: 0 -2px 12px rgba(16, 23, 34, 0.12);
}
.acw-mobile-bar a {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary);
	font-weight: 600;
	padding: 0.875rem;
	text-decoration: none;
}
.acw-mobile-bar a.is-primary {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}
@media (min-width: 768px) {
	.acw-mobile-bar { display: none; }
}
/* Keep content clear of the fixed bar on mobile */
@media (max-width: 767px) {
	body { padding-bottom: 64px; }
}

/* ---------- Fault finder ---------- */
/* Device selector (Laptop / PC / MacBook / iPhone / iPad). */
.acw-fault__devices { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.25rem 0 0.25rem; }
.acw-fault__devices::before {
	content: "I have a:";
	align-self: center;
	margin-right: 0.25rem;
	color: var(--wp--preset--color--text-muted, #586273);
	font-weight: 600;
}
.acw-fault-device {
	min-height: 44px;
	padding: 0.5rem 1.1rem;
	border: 2px solid var(--wp--preset--color--border-strong, #c3ccd9);
	border-radius: 999px;
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--text, #1d2733);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
}
.acw-fault-device:hover { border-color: var(--wp--preset--color--primary, #0c5eb0); }
.acw-fault-device.is-active {
	border-color: var(--wp--preset--color--primary, #0c5eb0);
	background: var(--wp--preset--color--primary, #0c5eb0);
	color: #fff;
}
.acw-fault-list {
	list-style: none;
	margin: 0.85rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.acw-fault-list li[hidden] { display: none; }
.acw-fault-chip {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0.5rem 1rem;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary);
	text-decoration: none;
	font-weight: 600;
}
.acw-fault-chip:hover,
.acw-fault-chip:focus-visible {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

/* ---------- Repair process steps ---------- */
.acw-step { border: 1px solid var(--wp--preset--color--border); border-radius: 10px; }
.acw-step__num {
	width: 2.5rem;
	height: 2.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	margin: 0 0 0.5rem;
}

/* ---------- Tick lists ---------- */
.acw-tick-list { list-style: none; margin: 0; padding: 0; }
.acw-tick-list li {
	position: relative;
	padding: 0.25rem 0 0.25rem 1.75rem;
	line-height: 1.4;
}
.acw-tick-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.5rem;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 999px;
	background: var(--wp--preset--color--primary);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center / 0.9rem no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center / 0.9rem no-repeat;
}

/* ---------- Callout (honest note / caveat box) ---------- */
.acw-callout {
	margin-top: 1.5rem;
	border: 1px solid var(--wp--preset--color--border-strong, #c3ccd9);
	border-left: 4px solid var(--wp--preset--color--primary, #0c5eb0);
	border-radius: 10px;
	background: var(--wp--preset--color--surface, #f5f7fa);
}
.acw-callout p { margin: 0; }

/* ---------- Stats strip (by-the-numbers, e.g. About page) ---------- */
.acw-stats { list-style: none; margin: 1.75rem 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
.acw-stats li {
	border: 1px solid var(--wp--preset--color--border, #dfe4ec);
	border-radius: 12px;
	padding: 1.4rem 1rem;
	text-align: center;
	background: var(--wp--preset--color--surface, #f5f7fa);
}
.acw-stats strong { display: block; font-size: 1.7rem; line-height: 1.1; font-weight: 800; color: var(--wp--preset--color--primary, #0c5eb0); letter-spacing: -0.01em; }
.acw-stats span { display: block; margin-top: 0.35rem; color: var(--wp--preset--color--text-muted, #586273); font-size: 0.95rem; }

/* ---------- Chip list (non-interactive tags, e.g. service areas) ---------- */
.acw-chip-list { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.acw-chip-list li {
	padding: 0.4rem 0.85rem;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 999px;
	background: var(--wp--preset--color--surface, #f5f7fa);
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--wp--preset--color--text, #1d2733);
}

/* ---------- Stars ---------- */
.acw-stars { color: #d99513; letter-spacing: 2px; margin: 0 0 0.5rem; }

/* ---------- Hero ---------- */
.acw-hero__image img { width: 100%; height: auto; display: block; }
.acw-hero__art { margin: 0; }
.acw-hero__art svg,
.acw-board__art svg { display: block; width: 100%; height: auto; border-radius: 16px; }
.acw-board__art { margin: 0; }

/* ---------- Section titles ---------- */
.acw-section-title { margin-bottom: 1.5rem; }

/* ---------- Service category cards (clickable, with icon) ---------- */
.acw-service-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	padding: 1.5rem;
	text-decoration: none;
	color: var(--wp--preset--color--text);
}
.acw-card__icon-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 12px;
	margin-bottom: 0.5rem;
	background: var(--wp--preset--color--base-subtle);
	color: var(--wp--preset--color--primary);
	transition: background 200ms ease, color 200ms ease;
}
.acw-service-card__title { font-weight: 700; font-size: 1.15rem; line-height: 1.25; color: var(--wp--preset--color--text); }
.acw-service-card__desc { color: var(--wp--preset--color--text-muted); font-size: 0.95rem; }
.acw-service-card__more { margin-top: auto; padding-top: 0.5rem; color: var(--wp--preset--color--primary); font-weight: 600; font-size: 0.9rem; }
.acw-service-card:hover .acw-card__icon-wrap,
.acw-service-card:focus-visible .acw-card__icon-wrap { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }
.acw-service-card:hover .acw-service-card__more { text-decoration: underline; }

/* ---------- Service features (what we fix) ---------- */
.acw-feature-list { display: flex; flex-direction: column; gap: 1.25rem; }
.acw-feature {
	display: grid;
	grid-template-columns: 300px 1fr;
	align-items: center;
	gap: 2rem;
	padding: 1.75rem;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	box-shadow: var(--wp--preset--shadow--sm);
}
.acw-feature__art {
	margin: 0;
	background: var(--wp--preset--color--base-subtle);
	border-radius: 12px;
	padding: 1.25rem;
}
.acw-feature__art svg { display: block; width: 100%; height: auto; }
.acw-feature__body h3 {
	margin: 0 0 0.5rem;
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--x-large);
}
.acw-feature__body p { margin: 0; color: var(--wp--preset--color--text-muted); max-width: 60ch; }
/* Alternate the illustration to the right on even rows for rhythm. */
@media (min-width: 781px) {
	.acw-feature:nth-child(even) { grid-template-columns: 1fr 300px; }
	.acw-feature:nth-child(even) .acw-feature__art { order: 2; }
}
@media (max-width: 780px) {
	.acw-feature { grid-template-columns: 1fr; gap: 1.25rem; }
	.acw-feature__art { max-width: 260px; }
}

/* ---------- Repair price selector ---------- */
.acw-price-tool {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	padding: 1.5rem;
	background: var(--wp--preset--color--base);
	box-shadow: var(--wp--preset--shadow--sm);
}
.acw-price-controls { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; margin-bottom: 1rem; }
.acw-price-controls label { font-weight: 700; }
.acw-price-model {
	padding: 0.6rem 0.8rem;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 8px;
	font: inherit;
	min-width: 240px;
	background: var(--wp--preset--color--base);
}
.acw-price-table { width: 100%; border-collapse: collapse; }
.acw-price-table th,
.acw-price-table td { text-align: left; padding: 0.7rem 0.5rem; border-bottom: 1px solid var(--wp--preset--color--border); vertical-align: middle; }
.acw-price-table th { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--wp--preset--color--text-muted); }
.acw-price-table td:last-child, .acw-price-table th:last-child { text-align: right; width: 1%; white-space: nowrap; }
.acw-price { font-weight: 700; color: var(--wp--preset--color--primary); white-space: nowrap; }
.acw-book-btn {
	display: inline-block;
	padding: 0.45rem 0.9rem;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border-radius: 8px;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
}
.acw-book-btn:hover, .acw-book-btn:focus-visible { background: var(--wp--preset--color--primary-hover); color: var(--wp--preset--color--base); }
.acw-price-note { font-size: 0.85rem; color: var(--wp--preset--color--text-muted); margin: 1rem 0 0; }

/* ---------- Shop hub category cards ---------- */
.acw-shop-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1.25rem;
	margin-top: 1.25rem;
}
.acw-shop-card {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 1rem 1rem 1.25rem;
	text-decoration: none;
	color: var(--wp--preset--color--text);
}
.acw-shop-card__art {
	margin: 0 0 0.85rem;
	background: var(--wp--preset--color--base-subtle);
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 150px;
	padding: 1rem;
}
.acw-shop-card__art svg { display: block; width: 70%; max-width: 160px; height: auto; }
/* Belt-and-braces: keep each card a single, self-contained box even if older CSS lingers. */
.acw-shop-grid > .acw-shop-card { display: flex !important; }
.acw-shop-card__title { font-weight: 700; font-size: 1.1rem; color: var(--wp--preset--color--text); }
.acw-shop-card__desc { color: var(--wp--preset--color--text-muted); font-size: 0.92rem; }
.acw-shop-card__more { margin-top: auto; padding-top: 0.5rem; color: var(--wp--preset--color--primary); font-weight: 600; font-size: 0.9rem; }
.acw-shop-card:hover .acw-shop-card__more { text-decoration: underline; }

/* Shop hub: WooCommerce's legacy template dumps the full product archive below our
   curated content, and this block theme ignores the PHP per-page limit. Show only our
   own "Latest in stock" row (.acw-shop-latest) and hide the legacy product loop. */
.woocommerce-shop ul.products:not(.acw-shop-latest *) { display: none !important; }
.acw-shop-latest { margin-top: 2rem; }
.acw-shop-latest > .acw-section-title { margin-bottom: 1rem; }

/* ---------- WooCommerce: card condition line + product trust badges ---------- */
.woocommerce ul.products li.product .acw-card-meta {
	font-size: 0.8rem;
	color: var(--wp--preset--color--text-muted);
	margin: 0.25rem 0 0.25rem;
}
.acw-product-trust {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 1rem 1.25rem;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 0.5rem 1rem;
	background: var(--wp--preset--color--base-subtle);
	border-radius: 12px;
}
.acw-product-trust li {
	position: relative;
	padding-left: 1.5rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--wp--preset--color--text);
}
.acw-product-trust li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--wp--preset--color--success);
	font-weight: 700;
}

/* ---------- Model link pills (internal linking) ---------- */
.acw-model-links {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}
.acw-model-links a {
	display: inline-block;
	padding: 0.55rem 1rem;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary);
	font-weight: 600;
	text-decoration: none;
}
.acw-model-links a:hover,
.acw-model-links a:focus-visible {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

/* ---------- Trust strip (dark rounded panel, to stand out) ---------- */
.acw-trust-strip { box-shadow: var(--wp--preset--shadow--md); }
.acw-trust-row {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 1rem 1.25rem;
}
.acw-trust-item {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--wp--preset--color--base);
}
.acw-trust-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex: 0 0 40px;
	border-radius: 10px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary);
}
@media (max-width: 680px) {
	.acw-trust-row { display: grid; grid-template-columns: 1fr 1fr; }
}

/* ---------- Featured-image placeholder tiles ---------- */
.acw-thumb-placeholder {
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--base-subtle);
	border-bottom: 1px solid var(--wp--preset--color--border);
	border-radius: 10px 10px 0 0;
	color: var(--wp--preset--color--secondary);
}
.acw-thumb-placeholder a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.acw-thumb-placeholder svg { width: 38%; max-width: 110px; height: auto; opacity: 0.7; }

/* ---------- Spacing & typography tuning ---------- */
/* A subtle brand accent under every homepage section title. */
.acw-section-title,
main section.wp-block-group > h2.wp-block-heading { position: relative; }
.acw-section-title::after,
main section.wp-block-group > h2.wp-block-heading::after {
	content: "";
	display: block;
	width: 56px;
	height: 4px;
	margin-top: 0.6rem;
	border-radius: 2px;
	background: var(--wp--preset--color--secondary);
}
/* The board-level title sits on a dark panel — keep its accent but no white-on-dark clash. */
.acw-board-feature h2.wp-block-heading::after { display: none; }
/* Comfortable measure for intro paragraphs that follow a section title. */
.acw-section-title + .wp-block-paragraph,
.acw-hero__lead,
.acw-fault-finder > .wp-block-paragraph {
	max-width: 56ch;
	color: var(--wp--preset--color--text-muted);
}
.acw-hero__lead { font-size: 1.125rem; line-height: 1.6; }
/* Roomier grids. */
.wp-block-group.is-layout-grid { gap: 1.25rem; }
/* Headings: slightly tighter tracking for a more premium feel. */
h1, h2, h3, .acw-service-card__title { letter-spacing: -0.01em; }
/* Keep natural line breaks but avoid a lone last word (orphan) on headings. */
h1, h2, h3, h4, .acw-service-card__title { text-wrap: pretty; }
/* Card body copy spacing inside post/case cards. */
.acw-card .wp-block-post-title { margin-top: 0.75rem; }

/* ---------- Mobile drawer: clean vertical nav ---------- */
@media (max-width: 1023px) {
	.acw-primary-nav { align-items: stretch; gap: 0.25rem; }
	.acw-primary-nav .wp-block-navigation,
	.acw-primary-nav .wp-block-navigation__container {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		gap: 0;
	}
	.acw-primary-nav .wp-block-navigation-item { width: 100%; }
	.acw-primary-nav .wp-block-navigation-item__content {
		display: block;
		width: 100%;
		padding: 0.75rem 0;
		font-size: 1.15rem;
		border-bottom: 1px solid var(--wp--preset--color--border);
	}
	/* Submenus: show indented, no absolute dropdown inside the drawer. */
	.acw-primary-nav .wp-block-navigation__submenu-container {
		position: static !important;
		opacity: 1 !important;
		visibility: visible !important;
		width: 100% !important;
		border: 0;
		box-shadow: none;
		padding-left: 1rem;
		min-width: 0;
	}
	.acw-primary-nav .wp-block-buttons { width: 100%; margin-top: 1.25rem; }
	.acw-primary-nav .wp-block-button,
	.acw-primary-nav .wp-block-button__link { width: 100%; text-align: center; }
}

/* ---------- WooCommerce: clean, consistent product cards (spec §11.2) ---------- */
/* Use CSS grid instead of WooCommerce's float layout. Floats leave staggered vertical
   gaps when cards differ in height, and leave a large empty area on the right when a
   category has fewer products than its column count. auto-fit makes the available
   products fill the row width neatly at any count. */
.woocommerce ul.products {
	display: grid;
	/* auto-FILL (not auto-fit): keep the column tracks even when a filter leaves only a few
	   products, so cards stay the same size and just leave empty space instead of stretching. */
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1.5rem;
	margin: 0 0 2rem;
	padding: 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; display: none; } /* drop float clearfix so it isn't a grid item */
.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	padding: 1rem;
	background: var(--wp--preset--color--base);
	box-shadow: var(--wp--preset--shadow--sm);
	transition: box-shadow 200ms ease, transform 200ms ease;
}
/* Push the add-to-cart button to the bottom so prices/buttons line up across the row. */
.woocommerce ul.products li.product .button { margin-top: auto; }

/* Product option swatches — clickable, always-visible upgrade choices (replaces the
   plugin's dropdowns via progressive enhancement). */
.acw-select-hidden { display: none !important; }
.acw-swatches { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 0.25rem 0 0.5rem; }
.acw-swatch {
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.7rem 1.15rem;
	min-height: 48px;
	border: 2px solid var(--wp--preset--color--border-strong, #c3ccd9);
	border-radius: 12px;
	background: var(--wp--preset--color--surface, #f1f5fa);
	color: var(--wp--preset--color--text, #1d2733);
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(16, 23, 34, 0.06);
	transition: border-color 150ms ease, background 150ms ease, color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}
.acw-swatch:hover {
	border-color: var(--wp--preset--color--primary, #0c5eb0);
	background: var(--wp--preset--color--base, #fff);
	transform: translateY(-1px);
	box-shadow: 0 4px 10px rgba(12, 94, 176, 0.18);
}
.acw-swatch:focus-visible { outline: 2px solid var(--wp--preset--color--primary, #0c5eb0); outline-offset: 2px; }
/* Selected: filled brand colour with a tick so the choice is unmistakable. */
.acw-swatch.is-active {
	border-color: var(--wp--preset--color--primary, #0c5eb0);
	background: var(--wp--preset--color--primary, #0c5eb0);
	color: #fff;
	box-shadow: 0 3px 10px rgba(12, 94, 176, 0.35);
}
.acw-swatch.is-active::before {
	content: "";
	width: 1.05em;
	height: 1.05em;
	flex: 0 0 auto;
	background: #fff;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce ul.products li.product:hover,
.woocommerce ul.products li.product:focus-within {
	box-shadow: var(--wp--preset--shadow--md);
	transform: translateY(-2px);
}

/* ---------- WooCommerce single product: uniform images + clean layout ---------- */
/* Square, white-background main gallery image — nothing cropped awkwardly.
   No border: a framed box looks uneven as you switch between images that fill
   the square and images that sit with white space around them. */
.woocommerce div.product div.images .woocommerce-product-gallery__image {
	aspect-ratio: 1 / 1;
	background: #fff;
	border-radius: 14px;
	overflow: hidden;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image > a,
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
/* Thumbnail strip. */
.woocommerce div.product div.images .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.75rem 0 0; padding: 0; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 64px; margin: 0; list-style: none; float: none; }
.woocommerce div.product div.images .flex-control-thumbs li img {
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: #fff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	padding: 2px;
	opacity: 0.7;
	transition: opacity 150ms ease, border-color 150ms ease;
}
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--wp--preset--color--primary); }

/* Title + price. */
.woocommerce div.product .product_title { font-size: clamp(1.6rem, 3vw, 2.2rem); line-height: 1.15; margin: 0 0 0.5rem; }
.woocommerce div.product p.price,
.woocommerce div.product span.price { font-size: 1.6rem; font-weight: 700; color: var(--wp--preset--color--text); }

/* Always-visible "Product Specification" — a clean two-column table below the product. */
.acw-spec { clear: both; width: 100%; margin: 2.5rem 0 0; }
.acw-spec-table { width: 100%; border-collapse: collapse; border: 1px solid var(--wp--preset--color--border); border-radius: 12px; overflow: hidden; }
.acw-spec-table th,
.acw-spec-table td { text-align: left; vertical-align: top; padding: 0.85rem 1.25rem; border-bottom: 1px solid var(--wp--preset--color--border); font-weight: 400; line-height: 1.45; }
.acw-spec-table th { width: 34%; font-weight: 600; color: var(--wp--preset--color--text, #1d2733); white-space: nowrap; }
.acw-spec-table td { color: var(--wp--preset--color--text-muted, #586273); }
.acw-spec-table tr:nth-child(odd) { background: var(--wp--preset--color--surface, #f7f9fc); }
.acw-spec-table tr:last-child th,
.acw-spec-table tr:last-child td { border-bottom: 0; }
@media (max-width: 560px) {
	.acw-spec-table th { width: 42%; white-space: normal; }
	.acw-spec-table th, .acw-spec-table td { padding: 0.7rem 0.9rem; }
}

/* Tabs: flat, on-brand. */
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 1.5rem; display: flex; flex-wrap: wrap; gap: 0.25rem; border-bottom: 1px solid var(--wp--preset--color--border); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: none; border: 0; border-radius: 0; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 0.7rem 1.1rem; font-weight: 600; color: var(--wp--preset--color--text-muted, #586273); border-bottom: 2px solid transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--wp--preset--color--primary); border-bottom-color: var(--wp--preset--color--primary); }
.woocommerce div.product .woocommerce-Tabs-panel h2 { font-size: 1.4rem; margin: 0 0 0.75rem; }
.woocommerce div.product .woocommerce-Tabs-panel h3 { margin: 1.5rem 0 0.5rem; }
.woocommerce div.product .woocommerce-Tabs-panel p { margin: 0 0 1rem; }
.woocommerce div.product .woocommerce-Tabs-panel ul { margin: 0 0 1rem 1.25rem; }
.woocommerce div.product .woocommerce-Tabs-panel ul li { margin: 0.25rem 0; }
/* Uniform square thumbnails on listing cards (white bg, nothing cropped). */
.woocommerce ul.products li.product img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: #fff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	margin-bottom: 0.85rem;
}
.woocommerce ul.products li.product .price { color: var(--wp--preset--color--text); font-weight: 700; }
.woocommerce ul.products li.product .button { min-height: 44px; }
.woocommerce .star-rating { color: #d99513; }
.woocommerce a.button,
.woocommerce button.button,
.woocommerce #respond input#submit {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border-radius: 8px;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover { background: var(--wp--preset--color--primary-hover); }
.woocommerce .onsale {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
}
/* Stock state legibility */
.woocommerce p.stock.in-stock { color: var(--wp--preset--color--success); }
.woocommerce p.stock.out-of-stock { color: var(--wp--preset--color--error); }

/* ---------- Footer ---------- */
.acw-footer a { color: #cfd6e0; }
.acw-footer a:hover { color: #ffffff; }
.acw-footer .acw-footer-cta {
	align-items: center;
	gap: 1rem 1.5rem;
	padding-bottom: 1.5rem;
	margin-bottom: 2rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.acw-footer .acw-footer-cta h2 { margin: 0; }
.acw-footer .acw-footer-cta .wp-block-button.is-style-outline .wp-block-button__link {
	color: #ffffff;
	border-color: rgba(255, 255, 255, 0.6);
}
.acw-footer-brand { align-items: center; gap: 1rem; margin-bottom: 2rem; }
.acw-footer-brand p { color: rgba(255, 255, 255, 0.7); max-width: 46ch; margin: 0; }
.acw-footer-wordmark a { color: #ffffff; font-weight: 700; font-size: 1.2rem; text-decoration: none; }
/* Show only the logo when one is set (wordmark is the no-logo fallback). */
.acw-footer-brand:has(.wp-block-site-logo img) .acw-footer-wordmark { display: none; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------- Announcement bar ---------- */
.acw-announce {
	background: var(--wp--preset--color--primary, #0c5eb0);
	color: #fff;
	text-align: center;
	padding: 0.6rem 1rem;
	font-weight: 600;
	font-size: 0.95rem;
}
.acw-announce a { color: #fff; text-decoration: underline; }

/* ---------- Sold badge ---------- */
.woocommerce ul.products li.product { position: relative; }
.woocommerce div.product div.images { position: relative; }
.acw-sold-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 3;
	background: var(--wp--preset--color--error, #b42318);
	color: #fff;
	font-weight: 700;
	font-size: 0.8rem;
	letter-spacing: 0.02em;
	padding: 0.25rem 0.65rem;
	border-radius: 6px;
	box-shadow: 0 2px 6px rgba(16, 23, 34, 0.2);
}

/* ---------- Cookie consent banner ----------
   Scoped to the #acw-consent id, not the .acw-consent class: the enquiry form's consent
   checkbox row also uses class="acw-consent", and must NOT pick up the fixed dark-bar styling. */
/* When JS (or the initial markup) sets the [hidden] attribute, actually hide it — the
   display:flex below otherwise overrides the browser's default hidden behaviour, which left
   the banner stuck on screen after clicking Accept/Decline. */
#acw-consent[hidden] { display: none !important; }
#acw-consent {
	position: fixed;
	left: 1rem;
	right: 1rem;
	bottom: 1rem;
	z-index: 950;
	max-width: 720px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
	padding: 1rem 1.25rem;
	background: var(--wp--preset--color--surface-dark, #16202e);
	color: #fff;
	border-radius: 12px;
	box-shadow: 0 6px 24px rgba(16, 23, 34, 0.3);
}
.acw-consent__text { margin: 0; flex: 1 1 280px; font-size: 0.9rem; line-height: 1.4; }
.acw-consent__text a { color: #fff; text-decoration: underline; }
.acw-consent__btns { display: flex; gap: 0.5rem; flex: 0 0 auto; }
.acw-consent__btns .wp-element-button { padding: 0.5rem 1.1rem; font-size: 0.9rem; min-height: 40px; }
.acw-consent__btns .is-style-outline { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.5); }
@media (max-width: 560px) { .acw-consent__btns { width: 100%; } .acw-consent__btns .wp-element-button { flex: 1; } }
