/*
Theme Name:   AERO Showroom
Description:  "A · Clean Showroom" redesign for Aeromax Building Supplies. Storefront child theme.
Author:       Aeromax Building Supplies
Template:     storefront
Version:      1.0.0
Requires PHP: 7.4
Text Domain:  aero-showroom
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
*/

/* ==========================================================================
   Contents
   1. Tokens
   2. Base: type, links, buttons, forms
   3. Layout
   4. Top bar
   5. Header: wordmark, nav, dropdowns, search, cart
   6. Handheld header and menu (< 768px)
   7. Breadcrumb, page and archive headers
   8. Homepage
   9. Product grid and cards (sitewide)
   10. Category tiles
   11. Shop toolbar, pagination, sidebar widgets
   12. Single product
   13. Cart, checkout, my account, notices
   14. Content pages: brands, contact, partners
   15. Info strip and footer
   16. Handheld footer bar, sticky add to cart, misc
   ========================================================================== */

/* 1. Tokens ================================================================ */
:root {
	--aero-ink: #1c1f22;
	--aero-ink-2: #45494e;
	--aero-muted: #5d6166;
	--aero-accent: #2f6f69;
	--aero-accent-dark: #245751;
	--aero-panel: #f3f2ef;
	--aero-line: #e3e1dd;
	--aero-field: #d6d4d0;
	--aero-white: #ffffff;
	--aero-foot-text: #c9c7c3;
	--aero-foot-link: #e9e7e3;
	--aero-radius: 6px;
	--aero-pill: 999px;
	--aero-serif: "Instrument Serif", Georgia, "Times New Roman", serif;
	--aero-sans: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--aero-max: 1280px;
	--aero-gutter: 24px;
	--aero-section: 96px;
}

/* 2. Base ================================================================== */
html { -webkit-text-size-adjust: 100%; }

body,
body.aero-showroom {
	background: var(--aero-white);
	color: var(--aero-ink);
	font-family: var(--aero-sans);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

button, input, select, textarea, .button { font-family: var(--aero-sans); }

h1, h2, h3, h4, h5, h6,
.alpha, .beta, .gamma, .delta {
	color: var(--aero-ink);
	font-family: var(--aero-serif);
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.1;
}
h1, .alpha { font-size: clamp(36px, 4.4vw, 52px); }
h2, .beta  { font-size: clamp(28px, 3.4vw, 40px); }
h3, .gamma { font-size: 28px; }
h4, .delta { font-size: 22px; }
h5, h6     { font-family: var(--aero-sans); font-weight: 700; font-size: 15px; }

p { color: inherit; }

a { color: var(--aero-ink); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover, a:focus { color: var(--aero-accent); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, .button:focus-visible {
	outline: 2px solid var(--aero-accent);
	outline-offset: 2px;
}

img { max-width: 100%; height: auto; }

hr { background-color: var(--aero-line); }

.aero-eyebrow {
	margin: 0;
	font-family: var(--aero-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 3px;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--aero-muted);
}
.aero-eyebrow--accent { color: var(--aero-accent); }

/* Buttons: rounded pills */
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.button,
.added_to_cart,
.widget a.button,
.site-header-cart .widget_shopping_cart a.button,
.wp-block-button__link {
	background: var(--aero-ink);
	border: 1px solid var(--aero-ink);
	border-radius: var(--aero-pill);
	color: var(--aero-white);
	font-family: var(--aero-sans);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	padding: 13px 26px;
	text-decoration: none;
	text-shadow: none;
	box-shadow: none;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
.button:hover,
.added_to_cart:hover,
.widget a.button:hover,
.site-header-cart .widget_shopping_cart a.button:hover {
	background: #33383d;
	border-color: #33383d;
	color: var(--aero-white);
}
button.alt,
input[type="button"].alt,
input[type="reset"].alt,
input[type="submit"].alt,
.button.alt,
.widget-area .widget a.button.alt,
.widget a.button.checkout,
.single_add_to_cart_button,
#place_order,
.checkout-button {
	background: var(--aero-accent);
	border-color: var(--aero-accent);
	color: var(--aero-white);
}
button.alt:hover,
input[type="submit"].alt:hover,
.button.alt:hover,
.widget a.button.checkout:hover,
.single_add_to_cart_button:hover,
#place_order:hover,
.checkout-button:hover {
	background: var(--aero-accent-dark);
	border-color: var(--aero-accent-dark);
	color: var(--aero-white);
}
.button.disabled, .button:disabled, button:disabled { opacity: .5; }

/* Forms */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
textarea,
select,
.input-text {
	background: var(--aero-white);
	border: 1px solid var(--aero-field);
	border-radius: 10px;
	box-shadow: none;
	color: var(--aero-ink);
	font-family: var(--aero-sans);
	font-size: 15px;
	line-height: 1.4;
	padding: 12px 14px;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
textarea:focus,
select:focus,
.input-text:focus {
	background: var(--aero-white);
	border-color: var(--aero-ink);
	outline: none;
}
select { -webkit-appearance: auto; appearance: auto; }
label { font-weight: 600; font-size: 14px; }
fieldset { background: transparent; border: 1px solid var(--aero-line); border-radius: var(--aero-radius); }
fieldset legend { background: var(--aero-white); }

/* Tables */
table th, table td { background: transparent; }
table th { background-color: var(--aero-panel); font-weight: 600; }
table tbody td, table tbody tr:nth-child(2n) td { background-color: transparent; }
table:not(.has-background) tbody tr:nth-child(2n) td { background-color: transparent; }

/* Font Awesome 4 icons in content (footer widgets, Contact page) wrap text, so let the text fall back to the body font. */
body .fa, body i.fa { font-family: FontAwesome, var(--aero-sans) !important; font-style: normal; line-height: inherit; }

/* 3. Layout ================================================================ */
.col-full {
	max-width: var(--aero-max);
	padding-left: var(--aero-gutter);
	padding-right: var(--aero-gutter);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}
.site-content { padding-top: 8px; }
.site-main { margin-bottom: 0; }
.hentry { margin-bottom: 48px; }
.page .hentry, .page-template-default .hentry { border-bottom: 0; }
.storefront-full-width-content .content-area,
.aero-full-width .content-area { width: 100%; float: none; margin-right: 0; }

@media (min-width: 768px) {
	.col-full { padding-left: var(--aero-gutter); padding-right: var(--aero-gutter); box-sizing: border-box; }
	.right-sidebar .content-area { width: 74%; }
	.right-sidebar .widget-area { width: 22%; }
}

/* 4. Top bar =============================================================== */
.aero-topbar {
	background: var(--aero-ink);
	color: var(--aero-foot-link);
	font-size: 13px;
	line-height: 1.4;
}
.aero-topbar__inner {
	max-width: var(--aero-max);
	margin: 0 auto;
	padding: 10px var(--aero-gutter);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 24px;
	text-align: center;
}
.aero-topbar a { color: var(--aero-white); text-decoration: underline; }
.aero-topbar a:hover { color: var(--aero-white); }

/* The WooCommerce store notice carried the phone number; the top bar replaces it. */
.woocommerce-store-notice, p.demo_store { display: none !important; }

/* 5. Header ================================================================ */
.site-header,
.woocommerce-active .site-header {
	background: var(--aero-white);
	border-bottom: 1px solid var(--aero-line);
	padding: 0;
	margin-bottom: 0;
	position: relative;
	z-index: 50;
}
body .site-header .aero-header {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) minmax(220px, 360px);
	grid-template-areas: "brand nav tools";
	align-items: center;
	column-gap: 40px;
	padding-top: 22px;
	padding-bottom: 22px;
}
body .site-header .aero-header::before,
body .site-header .aero-header::after { display: none; }

/* Wordmark */
body .site-header .aero-header .site-branding {
	grid-area: brand;
	float: none;
	width: auto;
	margin: 0;
}
.aero-wordmark {
	display: inline-flex;
	flex-direction: column;
	line-height: 1;
	text-decoration: none;
	color: var(--aero-ink);
}
.aero-wordmark:hover, .aero-wordmark:focus { color: var(--aero-ink); }
.aero-wordmark__name {
	font-family: var(--aero-serif);
	font-size: 34px;
	letter-spacing: .5px;
}
.aero-wordmark__sub {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--aero-muted);
	margin-top: 5px;
	white-space: nowrap;
}

/* Navigation (desktop) */
body .site-header .aero-header .main-navigation {
	grid-area: nav;
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	clear: none;
	min-width: 0;
}
.site-header .main-navigation ul.menu > li > a,
.site-header .main-navigation ul.nav-menu > li > a {
	color: var(--aero-ink);
	font-size: 15px;
	font-weight: 500;
	padding: 10px 0;
	margin-right: 28px;
}
.site-header .main-navigation ul.menu > li:last-child > a { margin-right: 0; }
.site-header .main-navigation ul.menu > li > a:hover,
.site-header .main-navigation ul.menu > li:hover > a,
.site-header .main-navigation ul.menu > li.current-menu-item > a,
.site-header .main-navigation ul.menu > li.current-menu-ancestor > a { color: var(--aero-accent); }
.site-header .main-navigation ul.menu > li.menu-item-has-children > a::after,
.site-header .main-navigation ul.menu > li.page_item_has_children > a::after {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-left: 8px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-3px) rotate(45deg);
	font-family: inherit;
}
.main-navigation ul.menu > li.menu-item-has-children::after { display: none; }

@media (min-width: 768px) {
	.site-header .main-navigation ul.menu,
	.site-header .main-navigation ul.nav-menu { display: flex; flex-wrap: wrap; align-items: center; max-height: none; }
	.site-header .main-navigation ul.menu ul.sub-menu,
	.site-header .main-navigation ul.nav-menu ul.children {
		background: var(--aero-white);
		border: 1px solid var(--aero-line);
		border-radius: var(--aero-radius);
		box-shadow: 0 12px 32px rgba(28, 31, 34, .12);
		padding: 8px 0;
		width: 240px;
	}
	.site-header .main-navigation ul.menu ul.sub-menu li a,
	.site-header .main-navigation ul.nav-menu ul.children li a {
		color: var(--aero-ink);
		background: transparent;
		font-size: 14px;
		font-weight: 500;
		line-height: 1.35;
		padding: 9px 18px;
		width: 100%;
		box-sizing: border-box;
	}
	.site-header .main-navigation ul.menu ul.sub-menu li a:hover,
	.site-header .main-navigation ul.menu ul.sub-menu li:hover > a {
		background: var(--aero-panel);
		color: var(--aero-accent);
	}
	.site-header .main-navigation ul.menu ul.sub-menu ul.sub-menu { margin-left: 2px; top: -9px; }
	.site-header .main-navigation ul.menu ul.sub-menu li.menu-item-has-children > a::after {
		content: "";
		position: absolute;
		right: 16px;
		top: 50%;
		width: 6px;
		height: 6px;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: translateY(-50%) rotate(-45deg);
		font-family: inherit;
	}
	.site-header .main-navigation ul.menu ul.sub-menu li { position: relative; }
	.site-header .main-navigation ul.menu ul li.focus > ul,
	.site-header .main-navigation ul.menu ul li:hover > ul { left: 100%; }
}

/* Search */
body .site-header .aero-header .aero-header__tools {
	grid-area: tools;
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}
body .site-header .aero-header .site-search {
	flex: 1 1 auto;
	float: none;
	width: auto;
	margin: 0;
	clear: none;
	min-width: 0;
	display: block;
}
.site-header .site-search .widget { margin: 0; }
.site-header .site-search .widget_product_search form { position: relative; margin: 0; }
.site-header .site-search .widget_product_search form::before {
	content: "";
	position: absolute;
	left: 18px;
	top: 50%;
	width: 13px;
	height: 13px;
	border: 1.6px solid var(--aero-muted);
	border-radius: 50%;
	transform: translateY(-60%);
	font-family: inherit;
	pointer-events: none;
}
.site-header .site-search .widget_product_search form::after {
	content: "";
	position: absolute;
	left: 30px;
	top: 50%;
	width: 6px;
	height: 1.6px;
	background: var(--aero-muted);
	transform: translateY(5px) rotate(45deg);
	pointer-events: none;
}
.site-header .site-search .widget_product_search input[type="search"] {
	height: 44px;
	width: 100%;
	border: 1px solid var(--aero-field);
	border-radius: 22px;
	padding: 0 18px 0 44px;
	font-size: 14px;
	background: var(--aero-white);
}
.site-header .site-search .widget_product_search button[type="submit"] {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px;
	height: 1px;
	overflow: hidden;
	padding: 0;
	border: 0;
}
.site-header .site-search .widget_product_search button[type="submit"]:focus {
	clip: auto;
	width: auto;
	height: 36px;
	right: 4px;
	top: 4px;
	padding: 0 16px;
	font-size: 13px;
}

/* Cart */
.aero-cart {
	position: relative;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--aero-field);
	border-radius: 22px;
	color: var(--aero-ink);
	text-decoration: none;
	box-sizing: border-box;
}
.aero-cart:hover, .aero-cart:focus { border-color: var(--aero-ink); color: var(--aero-ink); }
.aero-cart__count {
	position: absolute;
	top: -5px;
	right: -5px;
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	box-sizing: border-box;
	border-radius: 10px;
	background: var(--aero-accent);
	color: var(--aero-white);
	font-size: 11px;
	font-weight: 700;
	line-height: 19px;
	text-align: center;
}
.aero-cart__count.is-empty { display: none; }

/* Medium screens: nav drops to its own row */
@media (min-width: 768px) and (max-width: 1139px) {
	body .site-header .aero-header {
		grid-template-columns: auto minmax(0, 1fr);
		grid-template-areas: "brand tools" "nav nav";
		row-gap: 14px;
	}
	body .site-header .aero-header .aero-header__tools { max-width: 420px; justify-self: end; width: 100%; }
}

/* 6. Handheld header and menu (< 768px) ==================================== */
@media (max-width: 767px) {
	body .site-header .aero-header {
		grid-template-columns: minmax(0, 1fr) auto auto;
		grid-template-areas: "brand nav cart" "search search search";
		column-gap: 10px;
		row-gap: 14px;
		padding-top: 16px;
		padding-bottom: 16px;
	}
	body .site-header .aero-header .aero-header__tools { display: contents; }
	body .site-header .aero-header .site-search { grid-area: search; display: block; }
	.aero-cart { grid-area: cart; }
	.aero-wordmark__name { font-size: 30px; }
	.aero-wordmark__sub { font-size: 10px; letter-spacing: 2.4px; }

	body .site-header .aero-header .main-navigation { position: static; }
	.site-header .menu-toggle {
		float: none;
		position: relative;
		transform: none;
		margin: 0;
		height: 44px;
		padding: 0 18px 0 42px;
		border: 1px solid var(--aero-field);
		border-radius: 22px;
		background: var(--aero-white);
		color: var(--aero-ink);
		font-size: 14px;
		font-weight: 600;
		box-shadow: none;
	}
	.site-header .menu-toggle:hover { background: var(--aero-panel); color: var(--aero-ink); }
	.site-header .menu-toggle::before,
	.site-header .menu-toggle::after,
	.site-header .menu-toggle span::before {
		background-color: var(--aero-ink);
		left: 16px;
		width: 16px;
		height: 1.5px;
	}
	.handheld-navigation,
	.main-navigation .handheld-navigation {
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		background: var(--aero-white);
		z-index: 60;
		box-shadow: 0 16px 32px rgba(28, 31, 34, .14);
		border-top: 1px solid var(--aero-line);
	}
	.main-navigation.toggled .handheld-navigation {
		max-height: 75vh;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
	.main-navigation .handheld-navigation ul.menu { padding: 8px var(--aero-gutter) 16px; }
	.main-navigation .handheld-navigation ul li a {
		color: var(--aero-ink);
		font-size: 16px;
		font-weight: 500;
		padding: 13px 0;
		border-bottom: 1px solid var(--aero-line);
	}
	.main-navigation .handheld-navigation ul ul li a { font-size: 15px; padding-left: 16px; color: var(--aero-ink-2); }
	.main-navigation .handheld-navigation ul ul ul li a { padding-left: 32px; }
	.main-navigation .handheld-navigation .dropdown-toggle {
		background: transparent;
		border: 0;
		color: var(--aero-ink);
		height: 48px;
		width: 48px;
		padding: 0;
		top: 0;
		right: 0;
	}
	.main-navigation .handheld-navigation ul.menu > li.menu-item-has-children > a::after { display: none; }
}

/* 7. Breadcrumb, page and archive headers ================================== */
.storefront-breadcrumb {
	margin: 0 0 8px;
	padding: 22px 0 6px;
	background: transparent;
	border: 0;
}
.storefront-breadcrumb .col-full { padding-left: var(--aero-gutter); padding-right: var(--aero-gutter); }
.woocommerce-breadcrumb {
	font-size: 13px;
	color: var(--aero-muted);
	margin: 0;
	padding: 0;
}
.woocommerce-breadcrumb a { color: var(--aero-muted); text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: var(--aero-accent); text-decoration: underline; }
.woocommerce-breadcrumb a:first-of-type::before { display: none; }
.woocommerce-breadcrumb .breadcrumb-separator { padding: 0 8px; color: #a3a6a9; }
.woocommerce-breadcrumb .breadcrumb-separator::before { color: inherit; }

.hentry .entry-header,
.woocommerce-products-header {
	border-bottom: 0;
	margin: 0 0 28px;
	padding: 8px 0 0;
}
.hentry .entry-header .entry-title,
.woocommerce-products-header__title.page-title,
.page-title {
	font-family: var(--aero-serif);
	font-weight: 400;
	font-size: clamp(38px, 5vw, 56px);
	line-height: 1.05;
	margin: 0 0 12px;
}
.term-description,
.woocommerce-products-header .term-description,
.page-description {
	font-family: var(--aero-sans);
	font-size: 16px;
	line-height: 1.65;
	color: var(--aero-ink-2);
	max-width: 760px;
}
.term-description p:last-child { margin-bottom: 0; }

/* 8. Homepage ============================================================== */
.page-template-template-homepage .site-content { padding-top: 0; }
.page-template-template-homepage .site-main,
.page-template-template-homepage:not(.has-post-thumbnail) .site-main { padding-top: 0; margin-bottom: 0; }
.page-template-template-homepage .content-area,
.page-template-template-homepage.right-sidebar .content-area { width: 100%; float: none; margin-right: 0; }
.page-template-template-homepage .hentry.aero-home-intro,
.page-template-template-homepage .type-page.aero-home-intro {
	padding: 8px 0 0;
	margin: 0;
	border: 0;
	background: none;
	text-align: left;
	color: inherit;
}

.aero-hero-panel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	background: var(--aero-panel);
	border-radius: var(--aero-radius);
	overflow: hidden;
}
.aero-hero-panel__text {
	padding: 72px 56px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 22px;
}
.aero-hero-panel__text .aero-hero {
	display: flex;
	flex-direction: column;
	gap: 24px;
	background: none;
	padding: 0;
	margin: 0;
	text-align: left;
}
.aero-hero-panel .aero-hero-title {
	margin: 0;
	color: var(--aero-ink);
	font-family: var(--aero-serif);
	font-weight: 400;
	font-size: clamp(42px, 5vw, 64px);
	line-height: 1.02;
	letter-spacing: 0;
	max-width: 15ch;
}
.aero-hero-panel .aero-hero-sub {
	margin: 0;
	color: var(--aero-ink-2);
	font-size: 17px;
	line-height: 1.6;
	max-width: 470px;
}
.aero-hero-panel .aero-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
}
.aero-hero-panel .aero-hero-actions .button { margin: 0; }
.aero-hero-panel .aero-btn-primary,
.aero-hero-panel .aero-btn-primary:hover {
	background: var(--aero-ink);
	border-color: var(--aero-ink);
	color: var(--aero-white);
}
.aero-hero-panel .aero-btn-primary:hover { background: #33383d; border-color: #33383d; }
.aero-hero-panel .aero-btn-ghost {
	background: transparent;
	border: 1px solid var(--aero-ink);
	color: var(--aero-ink);
	padding: 12px 25px;
}
.aero-hero-panel .aero-btn-ghost:hover { background: var(--aero-ink); color: var(--aero-white); }
.aero-hero-panel__media { min-height: 420px; position: relative; }
.aero-hero-panel__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
}

/* Homepage sections */
.page-template-template-homepage .storefront-product-section,
.aero-dealers {
	margin: 0;
	padding-top: var(--aero-section);
}
.storefront-product-section {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	column-gap: 16px;
}
.storefront-product-section > .woocommerce,
.storefront-product-section > ul.products { flex: 1 1 100%; }
.storefront-product-section ul.products { margin-bottom: 0; }
.storefront-product-section .section-title {
	font-family: var(--aero-serif);
	font-weight: 400;
	font-size: clamp(34px, 4vw, 44px);
	line-height: 1.1;
	text-align: left;
	margin: 0 0 32px;
}
.aero-section-link {
	font-weight: 600;
	font-size: 15px;
	margin: 0 0 40px;
	color: var(--aero-ink);
}

/* "Authorized dealer" brand row (the page content's "Shop by brand" list) */
.aero-dealers { text-align: center; }
.aero-dealers > .aero-eyebrow { margin-bottom: 10px; }
.aero-dealers .aero-home-brands { padding: 0; margin: 0; clear: both; }
.aero-dealers .aero-home-brands h2 {
	font-size: clamp(34px, 4vw, 44px);
	margin: 0 0 28px;
}
.aero-dealers .aero-brand-grid {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 18px 56px;
	max-width: 1100px;
}
.aero-dealers .aero-brand-grid li { margin: 0; }
.aero-dealers .aero-brand-grid a {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 4px 2px;
	border: 0;
	background: none;
	box-shadow: none;
	text-decoration: none;
	color: var(--aero-ink-2);
}
.aero-dealers .aero-brand-grid a:hover,
.aero-dealers .aero-brand-grid a:focus { color: var(--aero-accent); box-shadow: none; }
.aero-dealers .aero-brand-name {
	font-family: var(--aero-serif);
	font-size: 30px;
	font-weight: 400;
	line-height: 1.1;
}
.aero-dealers .aero-brand-count {
	font-size: 12px;
	font-weight: 500;
	color: var(--aero-muted);
	letter-spacing: .3px;
}
.aero-dealers .aero-brand-desc { display: none; }
.aero-dealers .aero-home-brands-more { margin: 28px 0 0; font-weight: 600; font-size: 15px; }

/* 9. Product grid and cards (sitewide) ===================================== */
.site-main ul.products,
ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 40px 28px;
	margin: 0 0 48px;
	padding: 0;
}
ul.products::before,
ul.products::after { display: none !important; content: none !important; }
ul.products.columns-1 { grid-template-columns: minmax(0, 1fr); }
ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
ul.products.columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.site-main ul.products li.product,
ul.products li.product,
.site-main ul.products.columns-3 li.product,
.site-main ul.products.columns-4 li.product {
	position: relative;
	/* Storefront sizes cards with float + % widths (some rules up to 0,4,2 specificity); the grid does it now. */
	width: auto !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	padding: 0;
	text-align: left;
	display: flex;
	flex-direction: column;
	gap: 0;
	border: 0;
	background: none;
	overflow: visible;
	list-style: none;
}
ul.products li.product .woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-decoration: none;
	color: var(--aero-ink);
}
ul.products li.product img,
ul.products li.product .woocommerce-LoopProduct-link img {
	display: block;
	width: 100%;
	height: auto;
	max-height: none;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: var(--aero-panel);
	border-radius: var(--aero-radius);
	padding: 24px;
	box-sizing: border-box;
	margin: 0 0 6px;
	transition: transform .25s ease;
	mix-blend-mode: multiply;
}
ul.products li.product:hover img { transform: none; }
ul.products li.product .woocommerce-LoopProduct-link:hover img { filter: brightness(.98); }
.aero-card-brand {
	display: block;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 2px;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--aero-muted);
}
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2,
ul.products li.product h3 {
	font-family: var(--aero-sans);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--aero-ink);
	letter-spacing: 0;
	margin: 0;
	padding: 0;
}
ul.products li.product .woocommerce-LoopProduct-link:hover .woocommerce-loop-product__title { color: var(--aero-accent); }
ul.products li.product .price {
	display: block;
	font-size: 18px;
	font-weight: 500;
	color: var(--aero-ink);
	margin: 2px 0 0;
}
ul.products li.product .price del { color: var(--aero-muted); font-size: 14px; opacity: 1; margin-right: 4px; }
ul.products li.product .price ins { text-decoration: none; font-weight: 600; color: var(--aero-ink); }
.woocommerce-price-suffix { font-size: 12px; color: var(--aero-muted); font-weight: 500; }
ul.products li.product .star-rating { margin: 0; font-size: 12px; }

.onsale,
ul.products li.product .onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	margin: 0;
	padding: 4px 11px;
	border: 0;
	border-radius: var(--aero-pill);
	background: var(--aero-accent);
	color: var(--aero-white);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.6;
	text-transform: uppercase;
	min-height: 0;
	min-width: 0;
}

ul.products li.product .button,
ul.products li.product .added_to_cart {
	align-self: flex-start;
	margin: 14px 0 0;
	padding: 9px 18px;
	font-size: 13px;
	background: transparent;
	color: var(--aero-ink);
	border: 1px solid var(--aero-field);
}
ul.products li.product .button:hover,
ul.products li.product .added_to_cart:hover { background: var(--aero-ink); border-color: var(--aero-ink); color: var(--aero-white); }
ul.products li.product .button.loading { opacity: .6; }
ul.products li.product .button.loading::after { color: var(--aero-ink); top: .55em; right: .6em; }
ul.products li.product .added_to_cart { margin-top: 8px; border-color: var(--aero-accent); color: var(--aero-accent); }

/* 10. Category tiles ======================================================= */
ul.products li.product-category > a {
	display: flex;
	flex-direction: column;
	gap: 12px;
	text-decoration: none;
	color: var(--aero-ink);
}
.aero-cat-media {
	display: block;
	aspect-ratio: 4 / 5;
	background: var(--aero-panel);
	border-radius: var(--aero-radius);
	overflow: hidden;
}
ul.products li.product-category img,
ul.products li.product-category .aero-cat-img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: none;
	aspect-ratio: auto;
	object-fit: contain;
	padding: 16px;
	margin: 0;
	background: transparent;
	border-radius: 0;
	mix-blend-mode: multiply;
}
ul.products li.product-category h2,
ul.products li.product-category .woocommerce-loop-category__title {
	font-family: var(--aero-sans);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	margin: 0;
	padding: 0;
	text-align: left;
}
ul.products li.product-category a:hover .woocommerce-loop-category__title { color: var(--aero-accent); }
ul.products li.product-category mark.count,
ul.products li.product-category .count {
	display: block;
	margin-top: 2px;
	background: none;
	color: var(--aero-muted);
	font-size: 13px;
	font-weight: 500;
	opacity: 1;
}
/* Homepage: six tiles in a row on wide screens */
.storefront-product-categories ul.products { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; }

/* 11. Shop toolbar, pagination, sidebar ==================================== */
.storefront-sorting {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	margin: 0 0 32px;
	padding: 0 0 18px;
	border-bottom: 1px solid var(--aero-line);
	font-size: 14px;
}
.storefront-sorting::before, .storefront-sorting::after { display: none; }
.storefront-sorting .woocommerce-ordering,
.storefront-sorting .woocommerce-result-count,
.storefront-sorting .woocommerce-pagination { float: none; margin: 0; padding: 0; }
.woocommerce-result-count { color: var(--aero-muted); }
.woocommerce-ordering select { padding: 9px 36px 9px 14px; border-radius: 22px; font-size: 14px; }
.storefront-sorting .woocommerce-pagination { margin-left: auto; }

.woocommerce-pagination .page-numbers,
.pagination .page-numbers { border: 0; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; }
.woocommerce-pagination .page-numbers li,
.pagination .page-numbers li { border: 0; margin: 0; display: block; }
.woocommerce-pagination .page-numbers li .page-numbers,
.pagination .page-numbers li .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--aero-line);
	border-radius: 20px;
	background: var(--aero-white);
	color: var(--aero-ink);
	font-weight: 600;
	font-size: 14px;
	box-sizing: border-box;
}
.woocommerce-pagination .page-numbers li .page-numbers.current,
.pagination .page-numbers li .page-numbers.current {
	background: var(--aero-ink);
	border-color: var(--aero-ink);
	color: var(--aero-white);
}
.woocommerce-pagination .page-numbers li a.page-numbers:hover { border-color: var(--aero-ink); }
.woocommerce-pagination .next, .woocommerce-pagination .prev { text-indent: 0; }

/* Sidebar */
.widget-area .widget {
	margin: 0 0 32px;
	padding: 0 0 28px;
	border-bottom: 1px solid var(--aero-line);
	font-size: 14px;
}
.widget-area .widget:last-child { border-bottom: 0; }
.widget .widget-title,
.widget .widgettitle,
.widget-area .widget .widget-title {
	font-family: var(--aero-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--aero-muted);
	border-bottom: 0;
	padding: 0;
	margin: 0 0 14px;
}
.widget-area .widget a { color: var(--aero-ink); text-decoration: none; }
.widget-area .widget a:hover { color: var(--aero-accent); }
.widget_product_search form,
.widget_search form { position: relative; }
.widget_product_search form::before,
.widget_search form::before { display: none; }
.widget-area .widget_product_search input[type="search"] { width: 100%; padding: 11px 16px; border-radius: 22px; }
.widget-area .widget_product_search button[type="submit"] { margin-top: 10px; padding: 9px 18px; font-size: 13px; }
.widget select, .widget_product_categories select { width: 100%; max-width: 100%; height: auto; padding: 10px 12px; font-size: 14px; }
.widget_price_filter .price_slider_wrapper .ui-widget-content { background: var(--aero-line); }
.widget_price_filter .ui-slider .ui-slider-range,
.widget_price_filter .ui-slider .ui-slider-handle { background-color: var(--aero-accent); }
.widget_price_filter .price_slider_amount .button { padding: 8px 16px; font-size: 13px; }
.widget ul.product_list_widget li { padding: 10px 0; border-bottom: 1px solid var(--aero-line); }
.widget ul.product_list_widget li img {
	width: 56px;
	height: 56px;
	object-fit: contain;
	background: var(--aero-panel);
	border-radius: 4px;
	padding: 4px;
	box-sizing: border-box;
	max-width: 56px;
}

/* Brand archive header (Storefront prints the brand image/description) */
.storefront-wc-brands-archive-header { margin-bottom: 24px; }
.storefront-wc-brands-archive-header img { max-height: 80px; width: auto; }

/* 12. Single product ======================================================= */
.single-product div.product {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 64px;
	align-items: start;
	margin-bottom: 0;
}
.single-product div.product::before,
.single-product div.product::after { display: none; }
.single-product div.product > * { grid-column: 1 / -1; min-width: 0; }
.single-product div.product .woocommerce-product-gallery {
	grid-column: 1;
	grid-row: 1;
	width: 100%;
	float: none;
	margin: 0 0 48px;
}
.single-product div.product .summary {
	grid-column: 2;
	grid-row: 1;
	width: 100%;
	float: none;
	margin: 0 0 48px;
}
.single-product div.product > .onsale { grid-column: 1; grid-row: 1; position: absolute; top: 16px; left: 16px; }

.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper { margin: 0; }
.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image,
.single-product div.product .woocommerce-product-gallery .flex-viewport {
	background: var(--aero-panel);
	border-radius: var(--aero-radius);
}
.single-product div.product .woocommerce-product-gallery .flex-viewport { margin-bottom: 14px; }
.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img,
.single-product div.product .woocommerce-product-gallery .wp-post-image {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	padding: 40px;
	box-sizing: border-box;
	mix-blend-mode: multiply;
	margin: 0;
}
.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img.zoomImg { padding: 0; aspect-ratio: auto; background: var(--aero-white); mix-blend-mode: normal; }
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	margin: 0;
}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li { width: auto; float: none; margin: 0; }
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img {
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: var(--aero-panel);
	border-radius: 4px;
	padding: 6px;
	box-sizing: border-box;
	opacity: .65;
}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img:hover { opacity: 1; }
.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
	top: 14px;
	right: 14px;
	background: var(--aero-white);
	border: 1px solid var(--aero-line);
	border-radius: 50%;
	color: var(--aero-ink);
}

.single-product div.product .product_title {
	font-family: var(--aero-serif);
	font-weight: 400;
	font-size: clamp(34px, 4vw, 48px);
	line-height: 1.08;
	margin: 0 0 16px;
}
.single-product div.product p.price,
.single-product div.product span.price {
	font-family: var(--aero-sans);
	font-size: 26px;
	font-weight: 500;
	color: var(--aero-ink);
	margin: 0 0 20px;
}
.single-product div.product p.price del { color: var(--aero-muted); font-size: 18px; opacity: 1; }
.single-product div.product p.price ins { text-decoration: none; font-weight: 600; }
.single-product div.product .woocommerce-product-details__short-description {
	color: var(--aero-ink-2);
	font-size: 16px;
	line-height: 1.65;
	margin-bottom: 24px;
}
.single-product div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0 0 24px;
	padding: 24px 0;
	border-top: 1px solid var(--aero-line);
	border-bottom: 1px solid var(--aero-line);
}
.single-product div.product form.cart::before, .single-product div.product form.cart::after { display: none; }
.single-product div.product form.cart .quantity { float: none; margin: 0; }
.single-product div.product form.cart .quantity .qty {
	width: 84px;
	height: 50px;
	text-align: center;
	border-radius: 25px;
	padding: 0 10px;
	background: var(--aero-white);
}
.single-product div.product form.cart .button {
	float: none;
	height: 50px;
	padding: 0 34px;
	font-size: 16px;
}
.single-product div.product form.cart.variations_form,
.single-product div.product form.cart.grouped_form { display: block; }
.single-product div.product form.cart .variations { margin-bottom: 16px; }
.single-product div.product form.cart .variations td,
.single-product div.product form.cart .variations th { padding: 6px 12px 6px 0; background: transparent; vertical-align: middle; }
.single-product div.product form.cart .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.single-product div.product .stock { font-size: 14px; font-weight: 600; color: var(--aero-accent); }
.single-product div.product .stock.out-of-stock { color: #a2322b; }

.single-product div.product .product_meta {
	font-size: 13px;
	color: var(--aero-muted);
	border-top: 0;
	padding-top: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.single-product div.product .product_meta > span { display: block; }
.single-product div.product .product_meta a { color: var(--aero-ink); }
.single-product div.product .product_meta .sku { color: var(--aero-ink); font-weight: 600; }
.storefront-wc-brands-single-product { margin-bottom: 12px; }
.storefront-wc-brands-single-product img { max-height: 48px; width: auto; }

/* Tabs */
.woocommerce-tabs {
	padding: 0;
	margin: 0 0 64px;
	border: 0;
}
.woocommerce-tabs::before, .woocommerce-tabs::after { display: none; }
.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0 32px;
	width: 100%;
	float: none;
	margin: 0 0 32px;
	padding: 0;
	border-top: 0;
	border-bottom: 1px solid var(--aero-line);
	list-style: none;
}
.woocommerce-tabs ul.tabs li {
	display: block;
	border: 0;
	margin: 0;
	position: relative;
}
.woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 14px 0;
	font-weight: 600;
	font-size: 15px;
	color: var(--aero-muted);
	text-decoration: none;
}
.woocommerce-tabs ul.tabs li.active a { color: var(--aero-ink); box-shadow: inset 0 -2px 0 var(--aero-accent); }
.woocommerce-tabs ul.tabs li::after,
.woocommerce-tabs ul.tabs li.active::after { display: none; }
.woocommerce-tabs .panel,
.woocommerce-Tabs-panel {
	width: 100%;
	max-width: 860px;
	float: none;
	margin: 0;
	padding: 0;
	color: var(--aero-ink-2);
	line-height: 1.7;
}
.woocommerce-tabs .panel h2:first-of-type {
	font-size: 30px;
	margin: 0 0 18px;
	color: var(--aero-ink);
}
.woocommerce-tabs .panel table.shop_attributes { border: 0; }
.woocommerce-tabs .panel table.shop_attributes th,
.woocommerce-tabs .panel table.shop_attributes td {
	border: 0;
	border-bottom: 1px solid var(--aero-line);
	padding: 12px 16px;
	background: transparent;
}
.woocommerce-tabs .panel table.shop_attributes th { width: 30%; color: var(--aero-ink); }

/* Related / upsells */
.related.products,
.upsells.products {
	clear: both;
	padding-top: 56px;
	border-top: 1px solid var(--aero-line);
}
.related.products > h2,
.upsells.products > h2 {
	font-size: clamp(30px, 3.4vw, 40px);
	margin: 0 0 32px;
}
.storefront-product-pagination a { background: var(--aero-white); border: 1px solid var(--aero-line); border-radius: var(--aero-radius); box-shadow: 0 8px 24px rgba(28, 31, 34, .1); }
.storefront-product-pagination a img { background: var(--aero-panel); }

/* Reviews */
#reviews .commentlist li .comment_container,
#reviews .comment-form-rating { background: transparent; }
#reviews .commentlist li .comment-text { background: var(--aero-panel); border-radius: var(--aero-radius); }

/* 13. Cart, checkout, my account, notices ================================== */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments,
.wc-block-components-notice-banner {
	background: var(--aero-panel);
	color: var(--aero-ink);
	border: 0;
	border-left: 3px solid var(--aero-accent);
	border-radius: var(--aero-radius);
	padding: 16px 20px 16px 52px;
	font-size: 15px;
	list-style: none;
}
.woocommerce-error { border-left-color: #a2322b; }
.woocommerce-message a, .woocommerce-info a, .woocommerce-error a { color: var(--aero-ink); text-decoration: underline; }
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button { float: right; padding: 8px 16px; font-size: 13px; text-decoration: none; color: var(--aero-white); margin-left: 12px; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { color: var(--aero-accent); }
.woocommerce-error::before { color: #a2322b; }

/* Cart */
table.shop_table,
.woocommerce-cart-form table.shop_table {
	border: 0;
	border-collapse: collapse;
	margin-bottom: 32px;
	font-size: 15px;
}
table.shop_table th {
	background: transparent;
	border-bottom: 1px solid var(--aero-ink);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--aero-muted);
	padding: 12px 14px;
}
table.shop_table td {
	background: transparent;
	border-bottom: 1px solid var(--aero-line);
	padding: 18px 14px;
	vertical-align: middle;
}
table.shop_table tbody tr:nth-child(2n) td { background: transparent; }
table.cart td.product-thumbnail img,
table.cart .product-thumbnail img {
	width: 80px;
	max-width: 80px;
	height: 80px;
	object-fit: contain;
	background: var(--aero-panel);
	border-radius: var(--aero-radius);
	padding: 8px;
	box-sizing: border-box;
	mix-blend-mode: multiply;
}
table.cart td.product-name a { font-weight: 600; text-decoration: none; }
table.cart td.product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1px solid var(--aero-line);
	color: var(--aero-muted);
	font-size: 0;
	text-decoration: none;
}
table.cart td.product-remove a.remove::before { font-size: 14px; color: inherit; position: static; }
table.cart td.product-remove a.remove:hover { border-color: #a2322b; color: #a2322b; background: transparent; }
table.cart td.actions { padding-top: 22px; border-top: 0; }
table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
table.cart td.actions .coupon .input-text { width: 200px; margin: 0; }
table.cart td.actions .coupon .button { margin: 0; }
table.cart td.actions > .button { float: right; }
.quantity .qty { border-radius: 22px; width: 72px; text-align: center; padding: 10px; }
.cart-collaterals .cart_totals,
.cart-collaterals .cross-sells { margin-bottom: 32px; }
.cart-collaterals .cart_totals {
	background: var(--aero-panel);
	border-radius: var(--aero-radius);
	padding: 28px;
	box-sizing: border-box;
}
.cart-collaterals .cart_totals h2 { font-size: 30px; margin: 0 0 16px; }
.cart-collaterals .cart_totals table th,
.cart-collaterals .cart_totals table td { border-bottom: 1px solid #dddad5; padding: 14px 0; background: transparent; font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--aero-ink); }
.cart-collaterals .cart_totals .order-total td,
.cart-collaterals .cart_totals .order-total th { font-size: 18px; border-bottom: 0; }
.wc-proceed-to-checkout { padding: 8px 0 0; }
.wc-proceed-to-checkout .button.checkout-button { display: block; width: 100%; text-align: center; padding: 16px 24px; font-size: 16px; margin: 0; }
.cart-empty.woocommerce-info { margin-bottom: 24px; }
.return-to-shop .button { margin-bottom: 48px; }

/* Checkout */
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; }
form.checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 0 56px; align-items: start; }
form.checkout::before, form.checkout::after { display: none; }
form.checkout > * { grid-column: 1 / -1; }
form.checkout > #customer_details { grid-column: 1; grid-row: 1 / span 3; width: 100%; float: none; margin: 0; }
form.checkout > #order_review_heading { grid-column: 2; grid-row: 1; width: 100%; float: none; margin: 0 0 16px; padding-top: 0; }
form.checkout > #order_review { grid-column: 2; grid-row: 2; width: 100%; float: none; margin: 0; }
.woocommerce-checkout h3,
#order_review_heading { font-size: 30px; margin: 0 0 18px; }
.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields { margin-bottom: 32px; }
.form-row { margin: 0 0 16px; padding: 0; }
.form-row label { display: block; margin-bottom: 6px; }
.form-row .input-text, .form-row select { width: 100%; box-sizing: border-box; }
.required { color: #a2322b; text-decoration: none; border: 0; }
.select2-container .select2-selection--single {
	height: 48px;
	border: 1px solid var(--aero-field);
	border-radius: 10px;
	background: var(--aero-white);
}
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-left: 14px; color: var(--aero-ink); }
.select2-container .select2-selection--single .select2-selection__arrow { height: 46px; right: 8px; }
.select2-dropdown { border-color: var(--aero-field); border-radius: 10px; overflow: hidden; }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--aero-accent); }
#order_review {
	background: var(--aero-panel);
	border-radius: var(--aero-radius);
	padding: 28px;
	box-sizing: border-box;
}
#order_review table.shop_table th,
#order_review table.shop_table td { padding: 12px 0; background: transparent; border-bottom: 1px solid #dddad5; }
#order_review table.shop_table thead th { border-bottom: 1px solid var(--aero-ink); }
#order_review .order-total th, #order_review .order-total td { font-size: 18px; }
#payment { background: transparent; border-radius: 0; }
#payment .payment_methods { border: 0; padding: 0; margin: 0 0 16px; }
#payment .payment_methods > li,
#payment .payment_methods > li:not(.woocommerce-notice) {
	background: var(--aero-white);
	border-radius: var(--aero-radius);
	margin: 0 0 8px;
	padding: 14px 16px;
	list-style: none;
}
#payment .payment_methods > li:not(.woocommerce-notice):hover { background: var(--aero-white); }
#payment .payment_methods li .payment_box { background: var(--aero-panel); border-radius: var(--aero-radius); margin: 10px 0 0; padding: 14px; font-size: 14px; }
#payment .payment_methods li input[type="radio"]:first-child:checked + label::before { color: var(--aero-accent); }
#payment .place-order { background: transparent; padding: 0; margin: 0; border: 0; }
#payment .place-order .button,
#place_order { width: 100%; padding: 16px 24px; font-size: 16px; float: none; }
.woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--aero-ink-2); }
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info { margin-bottom: 20px; }
form.checkout_coupon, form.woocommerce-form-login {
	border: 1px solid var(--aero-line);
	border-radius: var(--aero-radius);
	padding: 24px;
	margin-bottom: 28px;
}

/* My account */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	border-top: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	border-bottom: 1px solid var(--aero-line);
	padding: 0;
	list-style: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 13px 0;
	font-weight: 600;
	font-size: 15px;
	text-decoration: none;
	color: var(--aero-ink);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a::before { color: var(--aero-muted); opacity: 1; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a { color: var(--aero-accent); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a::before { color: var(--aero-accent); }
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 { font-size: 30px; }
.woocommerce-account .u-columns .u-column1,
.woocommerce-account .u-columns .u-column2,
.woocommerce-account .col2-set .col-1,
.woocommerce-account .col2-set .col-2 { box-sizing: border-box; }
.woocommerce-form-login,
.woocommerce-form-register {
	border: 1px solid var(--aero-line);
	border-radius: var(--aero-radius);
	padding: 28px;
}
.woocommerce-form-login .woocommerce-form-login__submit,
.woocommerce-form-register .woocommerce-form-register__submit { margin-top: 8px; }
.woocommerce-form__label-for-checkbox { font-weight: 500; }

/* 14. Content pages ======================================================== */
.hentry .entry-content { font-size: 16px; line-height: 1.7; color: var(--aero-ink-2); }
.hentry .entry-content h2, .hentry .entry-content h3, .hentry .entry-content h4 { color: var(--aero-ink); }
.hentry .entry-content h3 { font-size: 28px; margin: 1.4em 0 .4em; }
.hentry .entry-content a:not(.button) { color: var(--aero-ink); }
.hentry .entry-content a:not(.button):hover { color: var(--aero-accent); }

/* Shop by Brand page (/brands/) */
.aero-brand-intro { font-size: 17px; margin-bottom: 28px; color: var(--aero-ink-2); }
.aero-brand-grid {
	list-style: none;
	margin: 0 0 32px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 16px;
}
.aero-brand-grid li { margin: 0; list-style: none; }
.aero-brand-grid a,
.aero-brand-grid a:hover,
.aero-brand-grid a:focus { text-decoration: none !important; }
.aero-brand-grid a {
	display: flex;
	flex-direction: column;
	height: 100%;
	box-sizing: border-box;
	padding: 22px 22px 20px;
	border: 1px solid var(--aero-line);
	border-radius: var(--aero-radius);
	background: var(--aero-white);
	color: var(--aero-ink);
	transition: border-color .15s ease, background-color .15s ease;
}
.aero-brand-grid a:hover,
.aero-brand-grid a:focus { border-color: var(--aero-ink); background: var(--aero-panel); }
.aero-brand-name { font-family: var(--aero-serif); font-size: 28px; font-weight: 400; line-height: 1.1; color: var(--aero-ink); }
.aero-brand-desc { font-size: 14px; color: var(--aero-ink-2); margin: 8px 0 14px; flex: 1 1 auto; line-height: 1.5; }
.aero-brand-count { font-size: 13px; color: var(--aero-accent); font-weight: 700; }
.aero-brand-help { font-size: 15px; color: var(--aero-ink-2); }

/* Contact page (Font Awesome icons wrap the address/phone text) */
.hentry .entry-content p > i.fa { font-size: 16px; line-height: 1.6; color: var(--aero-ink); }
.hentry .entry-content p > i.fa::before { color: var(--aero-accent); margin-right: 4px; }
.hentry .entry-content .wpgmza_map,
.hentry .entry-content .wpgmza-engine-map,
.hentry .entry-content [id^="wpgmza_map"] { border-radius: var(--aero-radius); overflow: hidden; max-width: 100%; }

/* Partners page */
.partners-img { display: inline-block; margin: 0 12px 16px 0; }
.partners-img img {
	width: 260px;
	max-width: 100%;
	height: 174px;
	object-fit: contain;
	background: var(--aero-panel);
	border-radius: var(--aero-radius);
	padding: 18px;
	box-sizing: border-box;
	mix-blend-mode: multiply;
}

/* Contact Form 7 / WPForms */
.wpcf7-form input[type="submit"], .wpforms-submit { border-radius: var(--aero-pill) !important; }

/* 15. Info strip and footer ================================================ */
.aero-info { padding-top: var(--aero-section); }
.aero-info__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px;
}
.aero-info__grid::before, .aero-info__grid::after { display: none; }
.aero-info__grid { position: relative; padding-top: 48px; }
.aero-info__grid > .aero-info__item:first-child::before {
	content: "";
	position: absolute;
	top: 0;
	left: var(--aero-gutter);
	right: var(--aero-gutter);
	border-top: 1px solid var(--aero-line);
}
.aero-info__item p { margin: 0; line-height: 1.6; color: var(--aero-ink-2); }
.aero-info__item .aero-info__title {
	font-family: var(--aero-serif);
	font-size: 28px;
	line-height: 1.15;
	color: var(--aero-ink);
	margin: 0 0 8px;
}
.aero-info__item a { color: var(--aero-ink); }

.site-footer,
.site-footer {
	margin-top: var(--aero-section);
	background: var(--aero-ink);
	color: var(--aero-foot-text);
	padding: 56px 0 32px;
	border: 0;
	font-size: 14px;
	line-height: 1.8;
}
.site-footer a:not(.button) { color: var(--aero-foot-link); text-decoration: none; }
.site-footer a:not(.button):hover { color: var(--aero-white); text-decoration: underline; }
.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4, .site-footer .widget-title { color: var(--aero-white); }

.aero-footer__top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 32px;
	padding-bottom: 40px;
	border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.aero-footer__wordmark {
	display: block;
	font-family: var(--aero-serif);
	font-size: 30px;
	line-height: 1.2;
	color: var(--aero-white) !important;
	margin-bottom: 6px;
}
.aero-footer__wordmark:hover { text-decoration: none !important; }
.aero-footer__nav {
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	gap: 8px 32px;
	max-width: 640px;
}

/* Footer widgets (Customer service / About us / Follow us) */
.site-footer .footer-widgets {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
	padding: 40px 0 8px;
	border: 0;
}
.site-footer .footer-widgets::before, .site-footer .footer-widgets::after { display: none; }
.site-footer .footer-widgets .block { width: auto; float: none; margin: 0; }
.site-footer .widget { margin: 0 0 16px; }
.site-footer .widget .widget-title,
.site-footer .widget-title {
	font-family: var(--aero-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: #9a9894;
	border: 0;
	padding: 0;
	margin: 0 0 12px;
	display: block;
}
.site-footer .textwidget a { display: block; }
.site-footer .textwidget a.soc-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	margin: 0 8px 12px 0;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 50%;
	font-size: 15px;
}
.site-footer .textwidget a.soc-link:hover { border-color: var(--aero-white); text-decoration: none; }
.site-footer .textwidget i.fa { font-size: 14px; color: var(--aero-foot-text); display: block; margin: 2px 0; }
.site-footer .textwidget a.soc-link i.fa { display: inline-block; margin: 0; }
.site-footer .textwidget br { display: none; }
.site-footer .textwidget i.fa::before { color: var(--aero-foot-link); margin-right: 4px; }
.site-footer .textwidget a.soc-link i.fa::before { margin: 0; }

.site-footer .site-info { display: none; }
.site-footer .site-copy {
	padding-top: 24px;
	margin-top: 16px;
	border-top: 1px solid rgba(255, 255, 255, .12);
	font-size: 13px;
	color: #9a9894;
}

/* 16. Handheld footer bar, sticky add to cart, misc ======================== */
.storefront-handheld-footer-bar {
	background: var(--aero-white);
	border-top: 1px solid var(--aero-line);
	box-shadow: 0 -6px 18px rgba(28, 31, 34, .06);
}
.storefront-handheld-footer-bar ul li > a {
	background: var(--aero-white);
	border-right: 1px solid var(--aero-line);
	color: var(--aero-ink);
}
.storefront-handheld-footer-bar ul li:last-child > a { border-right: 0; }
.storefront-handheld-footer-bar ul li > a::before { color: var(--aero-ink); }
.storefront-handheld-footer-bar ul li.cart .count { background: var(--aero-accent); border-color: var(--aero-white); color: var(--aero-white); }
.storefront-handheld-footer-bar ul li.search .site-search { background: var(--aero-white); padding: 12px var(--aero-gutter); border-top: 1px solid var(--aero-line); }
.storefront-handheld-footer-bar ul li.search .site-search input[type="search"] { border-radius: 22px; padding-left: 16px; }
.storefront-handheld-footer-bar ul li.search .site-search form::before { display: none; }
.storefront-handheld-footer-bar .site-search .widget_product_search button[type="submit"] { display: none; }

.storefront-sticky-add-to-cart {
	background: var(--aero-white);
	border-bottom: 1px solid var(--aero-line);
	box-shadow: 0 8px 24px rgba(28, 31, 34, .08);
	color: var(--aero-ink);
}
.storefront-sticky-add-to-cart__content-title { font-family: var(--aero-sans); font-weight: 600; color: var(--aero-ink); }
.storefront-sticky-add-to-cart__content-title strong { font-weight: 600; }
.storefront-sticky-add-to-cart__content-button { border-radius: var(--aero-pill); background: var(--aero-accent); border-color: var(--aero-accent); color: var(--aero-white); }
.storefront-sticky-add-to-cart img { background: var(--aero-panel); border-radius: 4px; object-fit: contain; }

.screen-reader-text:focus { background: var(--aero-ink); color: var(--aero-white); border-radius: var(--aero-radius); }

/* Responsive ============================================================== */
@media (max-width: 1139px) {
	.storefront-product-categories ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	ul.products, .site-main ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.aero-hero-panel__text { padding: 56px 40px; }
}

@media (max-width: 991px) {
	.single-product div.product { column-gap: 40px; }
	form.checkout { grid-template-columns: minmax(0, 1fr); }
	form.checkout > #customer_details,
	form.checkout > #order_review_heading,
	form.checkout > #order_review { grid-column: 1; grid-row: auto; }
	form.checkout > #order_review_heading { margin-top: 16px; }
}

@media (max-width: 860px) {
	.aero-hero-panel { grid-template-columns: minmax(0, 1fr); }
	.aero-hero-panel__media { min-height: 0; aspect-ratio: 3 / 2; order: -1; }
	.aero-info__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.site-footer .footer-widgets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	:root { --aero-gutter: 16px; --aero-section: 64px; }
	.right-sidebar .content-area, .right-sidebar .widget-area, .left-sidebar .content-area, .left-sidebar .widget-area { width: 100%; float: none; margin: 0; }
	.widget-area { margin-top: 32px; padding-top: 32px; border-top: 1px solid var(--aero-line); }

	.aero-hero-panel__text { padding: 32px 22px 36px; gap: 16px; }
	.aero-hero-panel .aero-hero-title { font-size: 40px; max-width: none; }
	.aero-hero-panel .aero-hero-sub { font-size: 16px; }
	.aero-hero-panel .aero-hero-actions .button { flex: 1 1 auto; text-align: center; }

	ul.products, .site-main ul.products,
	ul.products.columns-3, ul.products.columns-4, ul.products.columns-5, ul.products.columns-6,
	.storefront-product-categories ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 14px; }
	ul.products li.product img { padding: 14px; }
	ul.products li.product .woocommerce-loop-product__title { font-size: 14px; }
	ul.products li.product .price { font-size: 16px; }
	.aero-card-brand { font-size: 11px; letter-spacing: 1.5px; }
	ul.products li.product .button { padding: 8px 14px; font-size: 12px; }
	.aero-cat-media { aspect-ratio: 1 / 1; }

	.storefront-product-section .section-title { margin-bottom: 20px; }
	.aero-section-link { margin-bottom: 26px; }
	.aero-dealers .aero-brand-grid { gap: 14px 28px; }
	.aero-dealers .aero-brand-name { font-size: 24px; }

	.single-product div.product { display: block; }
	.single-product div.product .woocommerce-product-gallery { margin-bottom: 28px; }
	.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img { padding: 24px; }
	.single-product div.product form.cart .button { flex: 1 1 auto; }
	.woocommerce-tabs ul.tabs { gap: 0 20px; overflow-x: auto; flex-wrap: nowrap; }
	.woocommerce-tabs ul.tabs li a { white-space: nowrap; }

	.storefront-sorting { gap: 10px; }
	.storefront-sorting .woocommerce-pagination { margin-left: 0; }

	table.shop_table_responsive tbody tr td,
	table.shop_table_responsive tr td { padding: 10px 0; background: transparent; }
	table.shop_table_responsive tbody tr { border-bottom: 1px solid var(--aero-line); display: block; padding: 10px 0; }
	table.cart td.actions .coupon .input-text { width: 100%; flex: 1 1 100%; }
	table.cart td.actions > .button { float: none; width: 100%; margin-top: 10px; }
	.cart-collaterals .cart_totals, #order_review { padding: 20px; }

	.aero-footer__top { flex-direction: column; gap: 20px; }
	.site-footer .footer-widgets { grid-template-columns: minmax(0, 1fr); gap: 8px; }
	.site-footer { padding-bottom: 96px; }
	.aero-brand-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
	.aero-brand-grid a { padding: 16px; }
	.aero-brand-name { font-size: 24px; }
	.partners-img img { width: 150px; height: 100px; padding: 10px; }
}

@media (max-width: 420px) {
	.aero-wordmark__name { font-size: 27px; }
	.aero-wordmark__sub { font-size: 9px; letter-spacing: 2px; }
	.site-header .menu-toggle { padding: 0 14px 0 38px; }
	.site-header .menu-toggle::before, .site-header .menu-toggle::after, .site-header .menu-toggle span::before { left: 13px; }
}

/* Specificity overrides: Storefront's own layout rules for these use long
   selectors (e.g. .storefront-full-width-content.single-product div.product …). */
body.aero-full-width .content-area,
body.aero-full-width.right-sidebar .content-area,
body.aero-full-width.left-sidebar .content-area { width: 100% !important; float: none !important; margin-left: 0 !important; margin-right: 0 !important; }
body.aero-showroom.single-product div.product .woocommerce-product-gallery,
body.aero-showroom.single-product div.product .summary,
body.aero-showroom.single-product div.product .woocommerce-tabs ul.tabs,
body.aero-showroom.single-product div.product .woocommerce-tabs .panel,
body.aero-showroom.single-product div.product .related,
body.aero-showroom.single-product div.product .upsells {
	width: 100% !important;
	float: none !important;
	margin-right: 0 !important;
}
body.aero-showroom.single-product div.product .woocommerce-tabs .panel { max-width: 860px; }
body.aero-showroom.single-product div.product .woocommerce-tabs ul.tabs li { width: auto; float: none; }
body.aero-showroom.single-product div.product .woocommerce-tabs ul.tabs li a { padding: 14px 0; }

/* Two-column archive/page layout with the sidebar on the right */
@media (min-width: 768px) {
	body.right-sidebar:not(.aero-full-width):not(.page-template-template-homepage) .content-area { width: 74%; float: left; margin-right: 0; clear: none; }
	body.right-sidebar:not(.aero-full-width):not(.page-template-template-homepage) .widget-area { width: 22%; float: right; margin-right: 0; clear: none; margin-top: 0; padding-top: 0; border-top: 0; }
}
