/**
Theme Name: EMEC Additive
Description: Astra child theme for emecadditive.com — EMEC Additive, a brand of EMEC Machine Tools Inc. Forked conceptually from emecmt.com's astra-child (captured at theme/astra-child/style.css in the webapps repo) so emecmt.com CSS changes never leak in.
Author: EMEC Machine Tools Inc
Version: 0.9.42
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: emec-additive
Template: astra
*/

/*
 * Brand tokens — single source of truth for custom CSS in this theme.
 * Canonical blue per the EMEC brand guideline (decision 2026-08-19).
 * Astra/Elementor global colors are set to the same values via the
 * Customizer/kit; these variables exist so hand-written CSS never
 * hardcodes a drifted hex again.
 */
:root {
	--emec-blue: #0283C4;        /* brand primary */
	--emec-blue-t1: #46A0D1;     /* guideline tints */
	--emec-blue-t2: #8DC2E2;
	--emec-blue-t3: #CEE4F2;
	--emec-heading: #1e293b;
	--emec-body: #334155;
	--emec-bg-alt: #F0F5FA;
	--emec-dark: #111111;
	--emec-muted: #666666;
	--emec-border: #D1D5DB;
	--formlabs-orange: #FF6101;  /* ONLY for the Authorized Partner logo context — never mix into EMEC UI (partner brand rules) */
}

/*
 * Site CSS lands here from Phase 2 onward.
 * When porting rules from the captured emecmt.com astra-child stylesheet,
 * replace any of #0083C4 / #0079C2 / #0792D8 / #046bd2 with var(--emec-blue).
 */

/* ---- Product pages/archives are fully Elementor-rendered: drop Astra's boxed
   content container so full-width bands (Why EMEC, Speak to an Expert) run
   edge to edge like the header/footer (Ian, 2026-08-22). --------------- */
body.single-product .ast-container,
body.tax-product_cat .ast-container,
body.post-type-archive-product .ast-container {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

/* ---- PDP: [emec_spec_table] ---------------------------------------- */
.emec-spec-heading,
.emec-resources-heading {
	font-family: "Syne", sans-serif;
	font-weight: 700;
	font-size: 28px;
	color: #000000;
	margin: 0 0 24px;
}
.emec-spec-table {
	width: 100%;
	max-width: 760px;
	border-collapse: collapse;
	border: none;
	font-family: "Syne", sans-serif;
	font-size: 15px;
}
/* Astra draws full cell borders on tables; keep only horizontal rules and
   give cells real inset padding (Ian, 2026-08-22: text sat on the border). */
.emec-spec-table th,
.emec-spec-table td {
	border: none;
	border-bottom: 1px solid #e4e4e4;
	padding: 12px 16px;
	vertical-align: top;
}
.emec-spec-table th {
	text-align: left;
	font-weight: 600;
	color: var(--emec-heading);
	width: 45%;
}
.emec-spec-table td {
	color: var(--emec-body);
}

/* ---- PDP: [emec_resources] ----------------------------------------- */
ul.emec-resources {
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: "Syne", sans-serif;
}
ul.emec-resources li {
	border-bottom: 1px solid #e4e4e4;
}
ul.emec-resources a {
	display: block;
	padding: 14px 0;
	color: var(--emec-blue);
	text-decoration: none;
	font-weight: 600;
}
ul.emec-resources a:hover {
	color: var(--emec-heading);
}

/* ---- PDP: grey CAD marker after the price (Ian, 2026-08-23) ---------- */
.emec-price-on-request {
	font-weight: 600;
}
/* no CAD suffix after "Price on Request" */
.elementor-widget-woocommerce-product-price .price:has(.emec-price-on-request)::after {
	content: none;
}
.elementor-widget-woocommerce-product-price .price::after {
	content: " CAD";
	font-size: 0.55em;
	font-weight: 600;
	color: var(--emec-muted, #666666);
	letter-spacing: 0.5px;
}

/* ---- PDP: [emec_key_docs] buy-box document cluster ------------------- */
.emec-key-docs {
	border-top: 1px solid #e4e4e4;
	margin-top: 4px; /* + 12px container gap */
	padding-top: 14px;
	font-family: "Syne", sans-serif;
}
.emec-key-docs__eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--emec-muted, #666666);
	margin: 0 0 10px;
}
.emec-key-docs ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.emec-key-docs li {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 5px 0;
	font-size: 14px;
}
.emec-key-docs li svg {
	color: var(--emec-blue);
	flex-shrink: 0;
}
.emec-key-docs a {
	color: var(--emec-blue);
	font-weight: 600;
	text-decoration: none;
}
.emec-key-docs a:hover {
	color: var(--emec-heading);
}
.emec-key-docs__sep {
	color: var(--emec-muted, #666666);
}

/* ---- PDP: [emec_videos] Watch band ----------------------------------- */
.emec-watch {
	font-family: "Syne", sans-serif;
	/* section spacing lives here so the template container can be zero-padding
	   and the whole band vanishes on products without videos (2026-08-23) */
	padding: 36px 0 48px;
}
.emec-spec-block {
	background: #F5F5F5;
	padding: 48px 40px;
}
.emec-watch__heading {
	font-family: "Syne", sans-serif;
	font-weight: 700;
	font-size: 28px;
	color: #000000;
	margin: 0 0 24px;
}
.emec-watch__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}
@media (max-width: 921px) {
	.emec-watch__grid {
		grid-template-columns: 1fr;
	}
}
.emec-watch__card {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.emec-watch__thumb {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	padding: 0;
	border: none;
	background: #111111;
	cursor: pointer;
	overflow: hidden;
}
.emec-watch__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	opacity: 0.85;
	transition: opacity 0.15s ease;
}
.emec-watch__thumb:hover img {
	opacity: 1;
}
.emec-watch__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
	filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.5));
}
.emec-watch__frame {
	width: 100%;
	aspect-ratio: 16 / 9;
	border: none;
	display: block;
	background: #111111;
}
.emec-watch__title {
	font-size: 15px;
	font-weight: 700;
	color: var(--emec-heading);
	margin: 0;
}
.emec-watch__source {
	font-size: 13px;
	color: var(--emec-muted, #666666);
	margin: 0;
}

/* ---- Header: [emec_promo_banner] — option-driven promo band ---------- */
.emec-promo-banner {
	position: relative; /* anchors the dismiss X */
	background: var(--emec-blue);
	color: #ffffff;
	font-family: "Syne", sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-align: center;
	padding: 9px 44px; /* symmetric so the text stays centred beside the X */
	line-height: 1.4;
}
.emec-promo-banner__close {
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
	padding: 4px 10px;
	background: none;
	border: 0;
	color: #ffffff;
	opacity: 0.75;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}
.emec-promo-banner__close:hover {
	opacity: 1;
	background: none;
	color: #ffffff;
}
.emec-promo-banner a {
	color: #ffffff;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.emec-promo-banner a:hover {
	color: var(--emec-blue-t3);
}

/* ---- Woo CTA buttons: canonical EMEC blue (Ian, 2026-08-23 — the Astra
   global primary is drifted #046bd2; see brand/README.md "The blue") ------ */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce button.button.alt,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.added_to_cart,
body .woocommerce .single_add_to_cart_button {
	background-color: var(--emec-blue);
	color: #ffffff;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
body .woocommerce .single_add_to_cart_button:hover {
	background-color: #046A9E;
	color: #ffffff;
}

/* ---- Home: [emec_promo_hero] — swappable Formlabs placement slot ------ */
.emec-promo-hero {
	background: var(--emec-bg-alt);
	font-family: "Syne", sans-serif;
	color: var(--emec-body);
}
.emec-promo-hero--dark {
	background: var(--emec-dark);
	color: #D9D9D9;
}
.emec-promo-hero__inner {
	max-width: 1140px;
	margin: 0 auto;
	padding: 44px 20px;
	display: flex;
	align-items: center;
	gap: 48px;
}
.emec-promo-hero__copy {
	flex: 1 1 55%;
}
.emec-promo-hero__eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--emec-blue);
	margin: 0 0 10px;
}
.emec-promo-hero__copy h2 {
	font-family: "Syne", sans-serif;
	font-weight: 700;
	font-size: 34px;
	line-height: 1.15;
	color: var(--emec-heading);
	margin: 0 0 12px;
}
.emec-promo-hero--dark .emec-promo-hero__copy h2 {
	color: #FFFFFF;
}
.emec-promo-hero__text {
	font-size: 16px;
	line-height: 1.55;
	margin: 0 0 20px;
	max-width: 52ch;
}
.emec-promo-hero__cta {
	display: inline-block;
	background: var(--emec-blue);
	color: #FFFFFF;
	font-weight: 700;
	font-size: 15px;
	padding: 12px 26px;
	text-decoration: none;
}
.emec-promo-hero__cta:hover {
	background: #046A9E;
	color: #FFFFFF;
}
.emec-promo-hero__media {
	flex: 1 1 45%;
	text-align: center;
}
.emec-promo-hero__media img {
	max-width: 100%;
	max-height: 300px;
	object-fit: contain;
}
@media (max-width: 921px) {
	.emec-promo-hero__inner {
		flex-direction: column-reverse;
		gap: 24px;
		padding: 32px 20px;
	}
}

/* ---- Header cart flyout (Elementor Menu Cart side panel) — site vocabulary
   instead of the widget defaults (Ian, 2026-09-05). Buttons pair the way the
   Home hero does: primary blue + outlined secondary. -------------------------- */
.elementor-menu-cart__main {
	width: 400px;
	max-width: 100vw;
	padding: 26px 28px 24px;
	font-family: "Syne", sans-serif;
	box-shadow: -8px 0 28px rgba(0, 0, 0, 0.12);
}
.elementor-menu-cart__main .widget_shopping_cart_content::before {
	content: "Your Cart";
	display: block;
	font-size: 22px;
	font-weight: 700;
	color: #000000;
	margin: 0 0 14px;
}
.elementor-menu-cart__close-button {
	position: absolute;
	top: 26px;
	right: 24px;
	color: #666666;
}
/* logged-in admins: keep the panel clear of the WP admin bar */
body.admin-bar .elementor-menu-cart__main {
	padding-top: 58px;
}
body.admin-bar .elementor-menu-cart__close-button {
	top: 58px;
}
.elementor-menu-cart__close-button:hover {
	color: #000000;
}
.elementor-menu-cart__product {
	grid-template-columns: 72px 1fr;
	column-gap: 16px;
	padding: 16px 28px 16px 0;
	border-bottom: 1px solid #e4e4e4;
	align-items: start;
}
.elementor-menu-cart__product:first-of-type {
	border-top: 1px solid #e4e4e4;
}
.elementor-menu-cart__product-image {
	background: #F5F5F5;
	padding: 4px;
	line-height: 0;
}
.elementor-menu-cart__product-name a {
	color: #111111;
	font-family: "Syne", sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
}
.elementor-menu-cart__product-name a:hover {
	color: var(--emec-blue);
}
.emec-cart-variant {
	display: block;
	margin-top: 3px;
	font-size: 13px;
	font-weight: 400;
	color: #666666;
}
.elementor-menu-cart__product-price,
.elementor-menu-cart__product-price .quantity {
	color: #666666;
	font-size: 14px;
	font-weight: 500;
}
.elementor-menu-cart__product-price .amount {
	color: #111111;
}
.elementor-menu-cart__product-remove a {
	color: #999999;
}
.elementor-menu-cart__product-remove a:hover {
	color: #111111;
}
.elementor-menu-cart__subtotal {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 18px 0 20px;
	border-top: none;
	text-align: right;
	font-size: 15px;
}
.elementor-menu-cart__subtotal strong {
	font-weight: 600;
	color: #666666;
}
.elementor-menu-cart__subtotal .amount {
	font-size: 20px;
	font-weight: 700;
	color: #111111;
}
.elementor-menu-cart__subtotal .amount::after {
	content: " CAD";
	font-size: 12px;
	font-weight: 600;
	color: #666666;
	letter-spacing: 0.5px;
}
.elementor-menu-cart__footer-buttons {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	padding: 0;
}
.elementor-menu-cart__footer-buttons .elementor-button {
	font-family: "Syne", sans-serif;
	font-size: 15px;
	font-weight: 600;
	padding: 12px 14px;
	border-radius: 8px;
	text-align: center;
}
.elementor-menu-cart__footer-buttons .elementor-button--view-cart {
	background: transparent;
	color: var(--emec-blue);
	border: 2px solid var(--emec-blue);
}
.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover {
	background: var(--emec-blue-t3);
	color: var(--emec-blue);
}
.elementor-menu-cart__footer-buttons .elementor-button--checkout {
	background: var(--emec-blue);
	color: #ffffff;
	border: 2px solid var(--emec-blue);
}
.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
	background: #046A9E;
	border-color: #046A9E;
	color: #ffffff;
}
.elementor-menu-cart__main .woocommerce-mini-cart__empty-message {
	padding: 28px 0 8px;
	text-align: center;
	font-size: 15px;
	color: #666666;
}

/* ---- [emec_phones] — office numbers with the shared-line note ----------- */
.emec-phones {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 40px;
	margin: 0 0 22px;
	font-family: "Poppins", sans-serif;
}
@media (max-width: 767px) {
	.emec-phones {
		grid-template-columns: 1fr;
	}
}
.emec-phones__office {
	font-family: "Syne", sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: #666666;
	margin: 0 0 4px;
}
.emec-phones a.emec-phones__number,
.emec-phones__number {
	font-family: "Syne", sans-serif;
	font-size: 26px;
	font-weight: 700;
	color: #111111;
	text-decoration: none;
	line-height: 1.2;
}
.emec-phones a.emec-phones__number:hover {
	color: var(--emec-blue);
	text-decoration: none;
}
.emec-phones__note {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	line-height: 1.5;
	color: #666666;
}
.emec-phones__shared {
	grid-column: 1 / -1;
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 14px 18px;
	background: #F5F5F5;
	border-left: 3px solid var(--emec-blue);
	font-size: 15px;
	line-height: 1.55;
	color: #333333;
}
.emec-phones__shared .emec-brand {
	height: 9px;
	margin-top: 6px;
	background-color: #111111;
	flex: 0 0 auto;
}

/* ---- Cart toggle: icon + "Cart" label, same treatment as the account chip
   (Ian, 2026-09-05). The widget's own text (subtotal) stays hidden. ----- */
.emec-utility-bar .elementor-menu-cart__toggle .elementor-button {
	gap: 10px; /* the cart glyph has less side bearing than the user icon (Ian) */
}
.emec-utility-bar .elementor-menu-cart__toggle .elementor-button::after {
	content: "Cart";
	font-family: "Syne", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #ffffff;
	line-height: 1;
	transition: color 0.15s;
}
.emec-utility-bar .elementor-menu-cart__toggle .elementor-button:hover::after {
	color: var(--emec-blue-t2);
}
@media (max-width: 600px) {
	.emec-utility-bar .elementor-menu-cart__toggle .elementor-button::after {
		content: none; /* phones: icon only */
	}
}

/* ---- Header account chip ([emec_account_chip]) ----------------------- */
.emec-account-chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: #ffffff;
	font-family: "Syne", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	white-space: nowrap;
}
.emec-account-chip:hover {
	color: var(--emec-blue-t2);
}
.emec-account-chip svg {
	flex: 0 0 auto;
}
.emec-utility-bar .elementor-widget-shortcode,
.emec-utility-bar .elementor-widget-shortcode .elementor-widget-container {
	line-height: 1; /* keep the chip from growing the 35px bar */
	display: flex;
	align-items: center;
}
@media (max-width: 600px) {
	.emec-account-chip__label {
		display: none; /* phones: icon only */
	}
}

/* ---- My Account pages (WooCommerce, logged in and out) --------------- */
.woocommerce-account .entry-title,
.woocommerce-account h1 {
	font-family: "Syne", sans-serif;
	font-weight: 700;
	font-size: 34px;
	color: #000000;
	margin-bottom: 28px;
}
.woocommerce-account .woocommerce {
	font-family: "Poppins", sans-serif;
	font-size: 16px;
	line-height: 1.65;
	color: #444444;
}
.woocommerce-account .woocommerce a {
	color: var(--emec-blue);
}
.woocommerce-account .woocommerce h2,
.woocommerce-account .woocommerce h3,
.woocommerce-account .woocommerce legend {
	font-family: "Syne", sans-serif;
	font-weight: 700;
	color: #000000;
}
/* left nav */
.woocommerce-MyAccount-navigation {
	width: 240px;
	float: left;
}
.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border: none;
}
.woocommerce-MyAccount-navigation li {
	border: none;
	border-bottom: 1px solid #e4e4e4;
}
.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 0 12px 14px;
	border-left: 3px solid transparent;
	font-family: "Syne", sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: #444444;
	text-decoration: none;
}
.woocommerce-MyAccount-navigation li a:hover {
	color: var(--emec-blue);
}
.woocommerce-MyAccount-navigation li.is-active a {
	color: var(--emec-blue);
	border-left-color: var(--emec-blue);
}
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a {
	color: #888888;
	font-weight: 500;
}
.woocommerce-MyAccount-content {
	width: calc(100% - 240px - 56px);
	float: right;
}
@media (max-width: 767px) {
	.woocommerce-MyAccount-navigation,
	.woocommerce-MyAccount-content {
		width: 100%;
		float: none;
	}
	.woocommerce-MyAccount-navigation {
		margin-bottom: 28px;
	}
}
/* tables (orders, downloads) */
.woocommerce-account table.shop_table {
	border: none;
	border-collapse: collapse;
	font-size: 15px;
}
.woocommerce-account table.shop_table th {
	font-family: "Syne", sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #666666;
	border: none;
	border-bottom: 2px solid #e4e4e4;
	padding: 10px 12px;
}
.woocommerce-account table.shop_table td {
	border: none;
	border-bottom: 1px solid #e4e4e4;
	padding: 14px 12px;
}
/* Woo renders the order number as a row-scoped <th>, so it inherited the column-
   heading rule (2px) on top of Astra's cell borders — a doubled underline — while
   Astra's `thead th { border-width: 0 }` (higher specificity) removed the real
   heading underline (Ian, 2026-09-11). */
.woocommerce-account .woocommerce table.shop_table thead th {
	border-bottom: 2px solid #e4e4e4;
}
.woocommerce-account .woocommerce table.shop_table tbody th {
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	border: none;
	border-bottom: 1px solid #e4e4e4;
	padding: 14px 12px;
}
.woocommerce-account table.shop_table .button {
	padding: 8px 14px;
	font-size: 13px;
	border-radius: 6px;
}
/* forms (login, register, addresses, account details) */
.woocommerce-account .woocommerce form .form-row label {
	font-family: "Syne", sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: #111111;
	margin-bottom: 6px;
}
.woocommerce-account .woocommerce form .form-row .input-text,
.woocommerce-account .woocommerce form .form-row select,
.woocommerce-account .woocommerce .woocommerce-Input {
	height: 46px;
	padding: 0 14px;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	background: #ffffff;
}
.woocommerce-account .woocommerce form .form-row .input-text:focus,
.woocommerce-account .woocommerce form .form-row select:focus {
	border-color: var(--emec-blue);
	outline: none;
	box-shadow: 0 0 0 3px var(--emec-blue-t3);
}
.woocommerce-account .woocommerce form .form-row .show-password-input {
	top: 12px;
}
.woocommerce-account .woocommerce .button,
.woocommerce-account .woocommerce button.button {
	font-family: "Syne", sans-serif;
	font-weight: 600;
	font-size: 15px;
	padding: 12px 26px;
	border-radius: 8px;
	background: var(--emec-blue);
	color: #ffffff;
}
.woocommerce-account .woocommerce .button:hover {
	background: #046A9E;
	color: #ffffff;
}
/* login + register (logged out) and billing + shipping (addresses) as two cards.
   Woo's clearfix ::before/::after would become grid items and push the first
   card into cell 2 (the staggered Addresses layout, Ian 2026-09-05) — kill them. */
.woocommerce-account .u-columns.col2-set {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
}
.woocommerce-account .u-columns.col2-set::before,
.woocommerce-account .u-columns.col2-set::after {
	content: none;
	display: none;
}
.woocommerce-account .u-columns.col2-set .col-1,
.woocommerce-account .u-columns.col2-set .col-2 {
	width: 100%;
	float: none;
	max-width: none;
}
@media (max-width: 767px) {
	.woocommerce-account .u-columns.col2-set {
		grid-template-columns: 1fr;
	}
}
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
	border: 1px solid #e4e4e4;
	border-radius: 8px;
	padding: 28px 28px 24px;
	margin: 0;
	background: #ffffff;
}
.woocommerce-account .u-columns h2 {
	font-size: 24px;
	margin: 0 0 18px;
}
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit {
	width: 100%;
	margin-top: 6px;
}
.woocommerce-account .woocommerce-form-login__rememberme {
	font-size: 14px;
	color: #666666;
}
.woocommerce-account .woocommerce-LostPassword {
	font-size: 14px;
}
.woocommerce-account .woocommerce-privacy-policy-text {
	font-size: 13px;
	color: #666666;
}
/* notices */
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-error {
	border-top: none;
	border-left: 3px solid var(--emec-blue);
	background: #F5F5F5;
	color: #333333;
	font-family: "Poppins", sans-serif;
	border-radius: 0 6px 6px 0;
}
.woocommerce-account .woocommerce-error {
	border-left-color: #B42318;
}
.woocommerce-account .woocommerce-message::before,
.woocommerce-account .woocommerce-info::before {
	color: var(--emec-blue);
}
/* account details / addresses */
.woocommerce-account .woocommerce-Address {
	border: 1px solid #e4e4e4;
	border-radius: 8px;
	padding: 20px 22px;
}
.woocommerce-account .woocommerce-Address-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	background: transparent;
	border: none;
	padding: 0 0 12px;
	margin: 0 0 12px;
	border-bottom: 1px solid #e4e4e4;
}
.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3 {
	font-size: 18px;
	margin: 0;
}
.woocommerce-account .woocommerce-Address-title .edit {
	font-family: "Syne", sans-serif;
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
}
.woocommerce-account .woocommerce-Address address {
	font-style: normal;
	color: #444444;
	line-height: 1.6;
	border: none;   /* Astra boxes the title + address separately — one card is enough */
	padding: 0;
	background: transparent;
}
.woocommerce-account .woocommerce-Address .woocommerce-Address-title,
.woocommerce-account .woocommerce-Address > header {
	border-left: none;
	border-right: none;
	border-top: none;
	background: transparent;
}

/* ---- Shop archives: equal-height cards, Add to Cart pinned to the bottom
   (Ian, 2026-09-05: buttons misaligned when titles wrap 1 vs 2 lines) ------- */
.woocommerce ul.products li.product {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap .button,
.woocommerce ul.products li.product .astra-shop-summary-wrap .added_to_cart {
	margin-top: auto;
	align-self: flex-start;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap .price {
	margin-bottom: 14px;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img {
	aspect-ratio: 1 / 1;
	object-fit: contain;
	width: 100%;
}

/* ---- Legal pages (Terms, Privacy) — classic page content ---------------- */
.page-id-3 .entry-content,
.page-id-1811 .entry-content {
	max-width: 820px;
	font-family: "Poppins", sans-serif;
	font-size: 16px;
	line-height: 1.7;
	color: #333333;
}
.page-id-3 .entry-title,
.page-id-1811 .entry-title,
.page-id-3 .entry-content h2,
.page-id-1811 .entry-content h2,
.page-id-3 .entry-content h3,
.page-id-1811 .entry-content h3 {
	font-family: "Syne", sans-serif;
	font-weight: 700;
	color: #000000;
}
.page-id-3 .entry-title,
.page-id-1811 .entry-title {
	font-size: 36px;
}
.page-id-3 .entry-content h2,
.page-id-1811 .entry-content h2 {
	font-size: 24px;
	margin: 36px 0 12px;
}
.page-id-3 .entry-content a,
.page-id-1811 .entry-content a {
	color: var(--emec-blue);
}
.entry-content .emec-legal-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	margin: 12px 0 24px;
}
.entry-content .emec-legal-table th,
.entry-content .emec-legal-table td {
	border: none;
	border-bottom: 1px solid #e4e4e4;
	padding: 10px 12px;
	text-align: left;
	vertical-align: top;
}
.entry-content .emec-legal-table th {
	font-family: "Syne", sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #666666;
	border-bottom: 2px solid #e4e4e4;
}

/* ---- Sign-in overlay (header chip) ---------------------------------- */
.emec-login-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 8vh 16px 24px;
	overflow-y: auto;
	font-family: "Poppins", sans-serif;
}
.emec-login-modal[hidden] {
	display: none;
}
.emec-login-modal__backdrop {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
}
.emec-login-modal__card {
	position: relative;
	width: 100%;
	max-width: 440px;
	background: #ffffff;
	border-radius: 10px;
	padding: 28px 30px 26px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}
.emec-login-modal__close {
	position: absolute;
	top: 14px;
	right: 16px;
	border: none;
	background: transparent;
	font-size: 26px;
	line-height: 1;
	color: #666666;
	cursor: pointer;
	padding: 4px;
}
.emec-login-modal__close:hover {
	color: #000000;
}
.emec-login-modal__title {
	font-family: "Syne", sans-serif;
	font-size: 24px;
	font-weight: 700;
	color: #000000;
	margin: 0 0 16px;
}
.emec-login-modal__tabs {
	display: flex;
	border-bottom: 2px solid #e4e4e4;
	margin-bottom: 20px;
}
.emec-login-modal__tabs button {
	flex: 1;
	background: transparent;
	border: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	padding: 10px 0;
	font-family: "Syne", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: #666666;
	cursor: pointer;
}
.emec-login-modal__tabs button.is-active {
	color: var(--emec-blue);
	border-bottom-color: var(--emec-blue);
}
/* Woo's form-login.php renders both columns; show one at a time */
.emec-login-modal .u-columns {
	display: block;
}
.emec-login-modal .u-columns .col-1,
.emec-login-modal .u-columns .col-2 {
	width: 100%;
	float: none;
	max-width: none;
}
.emec-login-modal .u-columns .col-2,
.emec-login-modal.show-register .u-columns .col-1 {
	display: none;
}
.emec-login-modal.show-register .u-columns .col-2 {
	display: block;
}
.emec-login-modal .u-columns h2 {
	display: none; /* the tabs are the headings */
}
.emec-login-modal form.woocommerce-form-login,
.emec-login-modal form.woocommerce-form-register {
	border: none;
	padding: 0;
	margin: 0;
}
.emec-login-modal .woocommerce-form-row label,
.emec-login-modal form .form-row label {
	font-family: "Syne", sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: #111111;
	margin-bottom: 6px;
	display: block;
}
.emec-login-modal form .form-row .input-text {
	width: 100%;
	height: 46px;
	padding: 0 14px;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	background: #ffffff;
}
.emec-login-modal form .form-row .input-text:focus {
	border-color: var(--emec-blue);
	outline: none;
	box-shadow: 0 0 0 3px var(--emec-blue-t3);
}
.emec-login-modal form .form-row .show-password-input {
	top: 12px;
}
.emec-login-modal .woocommerce-form-login__rememberme {
	display: block;
	font-size: 14px;
	color: #666666;
	margin: 4px 0 12px;
}
.emec-login-modal form .button {
	width: 100%;
	font-family: "Syne", sans-serif;
	font-weight: 600;
	font-size: 15px;
	padding: 13px 20px;
	border-radius: 8px;
	background: var(--emec-blue);
	color: #ffffff;
	border: none;
	cursor: pointer;
}
.emec-login-modal form .button:hover {
	background: #046A9E;
}
.emec-login-modal .woocommerce-LostPassword {
	text-align: center;
	font-size: 14px;
	margin: 14px 0 0;
}
.emec-login-modal .woocommerce-LostPassword a,
.emec-login-modal a {
	color: var(--emec-blue);
}
.emec-login-modal .woocommerce-privacy-policy-text {
	font-size: 13px;
	color: #666666;
}
.emec-login-modal .woocommerce-error,
.emec-login-modal .woocommerce-message,
.emec-login-modal .woocommerce-info {
	border-top: none;
	border-left: 3px solid #B42318;
	background: #F5F5F5;
	color: #333333;
	font-size: 14px;
	padding: 12px 14px 12px 40px;
	margin: 0 0 16px;
	border-radius: 0 6px 6px 0;
}
.emec-login-modal .woocommerce-message,
.emec-login-modal .woocommerce-info {
	border-left-color: var(--emec-blue);
}
body.emec-login-modal-open {
	overflow: hidden;
}

/* ---- 404: let the Elementor template bleed full-width (Astra wraps the 404
   location in its boxed .ast-container / separate-container padding) ------- */
body.error404 .ast-container,
body.error404 #content .ast-container {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}
body.error404 #primary,
body.error404 #content,
body.error404 .site-content,
body.error404 .ast-separate-container .ast-article-single,
body.error404 .ast-separate-container #primary {
	padding: 0;
	margin: 0;
	background: transparent;
	border: none;
	box-shadow: none;
}
body.error404 #primary > .ast-row,
body.error404 .ast-row {
	margin: 0;
}
body.error404,
body.error404 .site-content {
	background: #ffffff; /* no grey page bg between the strip and the footer */
}

/* ---- Header commerce icons (.emec-header-icons in header template) --- */
.emec-header-icons .elementor-menu-cart__toggle .elementor-button {
	background: transparent;
	color: #ffffff;
	padding: 0;
	border: none;
}
.emec-header-icons .elementor-menu-cart__toggle .elementor-button-text {
	display: none; /* icon only — no subtotal in the header */
}
.emec-header-icons .elementor-menu-cart__toggle .elementor-button-icon {
	font-size: 21px;
	color: #ffffff;
}
.emec-header-icons .elementor-menu-cart__toggle .elementor-button .elementor-button-icon-qty {
	background-color: var(--emec-blue) !important;
	color: #ffffff;
}
.emec-header-icons .elementor-icon {
	color: #ffffff;
	font-size: 20px;
}
.emec-header-icons .elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon,
.emec-header-icons a.elementor-icon:hover,
.emec-header-icons .elementor-icon:hover {
	color: var(--emec-blue-t2);
}

/* ---- Archive: [emec_archive_description] ----------------------------- */
.emec-archive-description {
	font-family: "Syne", sans-serif;
	font-size: 16px;
	color: var(--emec-body);
	max-width: 760px;
}

/* ---- Materials archive: [emec_materials_table] ----------------------- */
details.emec-mt-details {
	border: 1px solid #e4e4e4;
	border-radius: 4px;
	padding: 20px 24px;
}
details.emec-mt-details summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: baseline;
	gap: 16px;
	flex-wrap: wrap;
}
details.emec-mt-details summary::-webkit-details-marker {
	display: none;
}
details.emec-mt-details summary .emec-spec-heading {
	margin: 0;
	display: inline;
}
details.emec-mt-details summary .emec-spec-heading::after {
	content: " \25BE";
	color: var(--emec-blue);
}
details.emec-mt-details[open] summary .emec-spec-heading::after {
	content: " \25B4";
}
.emec-mt-toggle-hint {
	font-family: "Syne", sans-serif;
	font-size: 14px;
	color: #666666;
}
details.emec-mt-details[open] summary {
	margin-bottom: 20px;
}

.emec-mt-hint {
	font-family: "Syne", sans-serif;
	font-size: 13px;
	color: #666666;
	margin: -12px 0 16px;
}
.emec-mt-scroll {
	/* Cap the table's footprint so a fully-loaded catalog (~25 materials)
	   never pushes the product grid off-screen; the table scrolls both
	   axes internally under a sticky header. */
	overflow: auto;
	max-height: 480px;
	border-bottom: 1px solid #e4e4e4;
}
.emec-materials-table {
	width: 100%;
	border-collapse: collapse;
	font-family: "Syne", sans-serif;
	font-size: 14px;
}
.emec-materials-table td {
	white-space: nowrap;
}
/* Headers wrap to two lines so the table fits the card (Ian, 2026-08-22). */
.emec-materials-table thead th {
	white-space: normal;
	max-width: 120px;
	line-height: 1.25;
	vertical-align: bottom;
}
.emec-materials-table td:first-child {
	white-space: normal;
	min-width: 160px;
}
.emec-materials-table th,
.emec-materials-table td {
	text-align: left;
	padding: 12px 16px;
	border-bottom: 1px solid #e4e4e4;
}
.emec-materials-table thead th {
	font-weight: 600;
	color: var(--emec-heading);
	user-select: none;
	/* Sticky under .emec-mt-scroll's capped height; border-bottom scrolls
	   away on sticky cells, so the blue rule is an inset shadow instead. */
	position: sticky;
	top: 0;
	background: #ffffff;
	z-index: 1;
	border-bottom: none;
	box-shadow: inset 0 -2px 0 var(--emec-blue);
}
.emec-materials-table th.emec-mt-sortable {
	cursor: pointer;
}
.emec-materials-table th.emec-mt-sortable:hover {
	color: var(--emec-blue);
}
.emec-materials-table th[data-dir="asc"]::after {
	content: " \25B2";
	color: var(--emec-blue);
	font-size: 10px;
}
.emec-materials-table th[data-dir="desc"]::after {
	content: " \25BC";
	color: var(--emec-blue);
	font-size: 10px;
}
.emec-mt-unit {
	display: block;
	font-weight: 400;
	font-size: 11px;
	color: #666666;
}
.emec-materials-table td a {
	color: var(--emec-blue);
	font-weight: 600;
	text-decoration: none;
}
.emec-materials-table td {
	color: var(--emec-body);
}
a.emec-mt-buy {
	display: inline-block;
	padding: 6px 18px;
	border: 2px solid var(--emec-blue);
	border-radius: 3px;
}
a.emec-mt-buy:hover {
	background: var(--emec-blue);
	color: #ffffff;
}

/* ---- PDP: [emec_lead_time] ------------------------------------------ */
p.emec-lead-time {
	font-family: "Syne", sans-serif;
	font-size: 14px;
	font-style: italic;
	color: #666666;
	margin: 0; /* buy-column flex gap owns the rhythm (2026-08-23) */
}

/* ---- PDP: [emec_sample_cta] — a quiet secondary action, not a second
   button (Ian, 2026-08-22: the outlined button competed with Add to Cart). */
p.emec-sample-cta {
	margin: 0; /* buy-column flex gap owns the rhythm (2026-08-23) */
}
a.emec-sample-cta__button {
	font-family: "Syne", sans-serif;
	font-size: 14px;
	font-weight: 500;
	color: var(--emec-blue);
	text-decoration: none;
	border-bottom: 1px solid var(--emec-blue-t2);
	padding-bottom: 1px;
}
a.emec-sample-cta__button::after {
	content: " →"; /* literal arrow */
}
a.emec-sample-cta__button:hover {
	color: var(--emec-heading);
	border-bottom-color: var(--emec-heading);
}

/* ---- Archive: shop filters sidebar (emec-shop-filters) -------------- */
.emec-filter {
	font-family: "Syne", sans-serif;
	margin-bottom: 28px;
}
.emec-filter__title {
	font-size: 15px;
	font-weight: 700;
	color: #000000;
	margin: 0 0 10px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--emec-blue);
}
.emec-filter ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.emec-filter li {
	padding: 5px 0;
	font-size: 14px;
	color: var(--emec-body);
}
.emec-filter li a {
	color: var(--emec-body);
	text-decoration: none;
}
.emec-filter li a:hover,
.emec-filter li.chosen a {
	color: var(--emec-blue);
}
.emec-filter li.chosen a::before {
	content: "\2713 ";
	color: var(--emec-blue);
}
.emec-filter .count {
	color: #999999;
	font-size: 12px;
}
.emec-filter .price_slider_amount .button {
	background: var(--emec-blue);
	color: #ffffff;
	font-family: "Syne", sans-serif;
}
/* Filter rail: fixed width, grid takes the rest; stack only on phones.
   !important beats Elementor's inline --width on .e-con. */
.emec-filters-col {
	flex: 0 0 260px !important;
	width: 260px !important;
	max-width: 260px !important;
}
.emec-grid-col {
	flex: 1 1 0 !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0;
}
@media (max-width: 767px) {
	.emec-filters-col {
		flex: 0 0 100% !important;
		width: 100% !important;
		max-width: none !important;
	}
}

/* ---- PDP: [emec_quote_cta] (quote-only products) --------------------- */
.emec-quote-cta {
	margin: 8px 0 0;
}
.emec-quote-cta__note {
	font-family: "Syne", sans-serif;
	font-size: 14px;
	color: #666666;
	margin: 0 0 12px;
}
a.emec-quote-cta__button {
	display: inline-block;
	font-family: "Syne", sans-serif;
	font-weight: 600;
	font-size: 15px;
	color: #ffffff;
	background: var(--emec-blue);
	border-radius: 3px;
	padding: 12px 28px;
	text-decoration: none;
}
a.emec-quote-cta__button:hover {
	background: var(--emec-heading);
	color: #ffffff;
}

/* ---- PDP: [emec_cad_note] — RETIRED from the template 2026-08-23 (inline
   grey CAD suffix on the price replaced it); shortcode + CSS kept so any
   stray usage still renders. ------------------------------------------- */
p.emec-cad-note {
	font-family: "Syne", sans-serif;
	font-size: 13px;
	color: #666666;
	margin: 4px 0 0;
}

/* ---- PDP: [emec_sections] narrative --------------------------------- */
.emec-narrative {
	font-family: "Syne", sans-serif;
	color: var(--emec-body);
}
.emec-narrative__section {
	padding: 48px 0 24px;
	border-top: 1px solid #e4e4e4;
}
.emec-narrative__section h2 {
	font-size: 30px;
	font-weight: 700;
	color: #000000;
	margin: 0 0 12px;
	max-width: 820px;
}
.emec-narrative__lead {
	font-size: 17px;
	max-width: 760px;
	margin: 0 0 24px;
}
.emec-narrative__section > img {
	display: block;
	width: 100%;
	max-width: 1100px;
	height: auto;
	border-radius: 4px;
	margin: 8px 0 16px;
}
.emec-narrative__eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--emec-blue);
	margin: 0 0 8px;
}
.emec-narrative__row {
	display: flex;
	gap: 48px;
	align-items: center;
	padding: 28px 0;
}
.emec-narrative__row--flip {
	flex-direction: row-reverse;
}
.emec-narrative__row--text {
	padding: 12px 0;
}
.emec-narrative__row--text .emec-narrative__copy {
	max-width: 760px;
}
.emec-narrative__copy {
	flex: 1 1 0;
	max-width: 560px;
}
.emec-narrative__copy h3 {
	font-size: 22px;
	font-weight: 700;
	color: #000000;
	margin: 0 0 10px;
}
.emec-narrative__copy p {
	font-size: 16px;
	margin: 0;
}
.emec-narrative__media {
	flex: 1 1 0;
}
.emec-narrative__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 4px;
}
@media (max-width: 767px) {
	.emec-narrative__row,
	.emec-narrative__row--flip {
		flex-direction: column;
		gap: 20px;
	}
}

/* ---- PDP: [emec_faqs] ------------------------------------------------ */
.emec-faqs {
	font-family: "Syne", sans-serif;
	max-width: 820px;
}
details.emec-faq {
	border-bottom: 1px solid #e4e4e4;
}
details.emec-faq summary {
	cursor: pointer;
	padding: 16px 0;
	font-size: 16px;
	font-weight: 600;
	color: var(--emec-heading);
	list-style: none;
}
details.emec-faq summary::-webkit-details-marker {
	display: none;
}
details.emec-faq summary::after {
	content: " +";
	color: var(--emec-blue);
}
details.emec-faq[open] summary::after {
	content: " \2013";
}
.emec-faq__answer {
	padding: 0 0 18px;
	color: var(--emec-body);
	font-size: 15px;
}

/* ---- Product tiles: equal-height cards, buttons pinned to the bottom, uniform
   image boxes (Ian, 2026-08-22: Add to Cart buttons drifted when titles wrapped). */
ul.products li.product {
	display: flex;
	flex-direction: column;
	height: 100%;
}
ul.products li.product .woocommerce-loop-product__link,
ul.products li.product > a:first-child {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}
ul.products li.product img {
	aspect-ratio: 1 / 1;
	object-fit: contain;
	width: 100%;
	height: auto;
}
ul.products li.product .woocommerce-loop-product__title {
	min-height: 2.6em;
}
ul.products li.product .button {
	margin-top: auto;
	align-self: flex-start;
}

/* ---- Archive: [emec_per_page] ---------------------------------------- */
.emec-per-page {
	font-family: "Syne", sans-serif;
	font-size: 13px;
	color: #666666;
	margin: 0 0 12px;
	text-align: right;
}
.emec-per-page a {
	color: var(--emec-blue);
	text-decoration: none;
}
.emec-per-page a.is-active {
	color: var(--emec-heading);
	font-weight: 600;
}

/* ---- Header utility bar (.emec-utility-bar) — brand hop + Canadian-owned claims
   + Account/Cart. Present at every width, so the commerce icons are always
   reachable. Three equal flex tracks (brands | claims | icons) so the claims
   sit dead-centre regardless of the side blocks' widths (Gap-family pattern,
   2026-08-24). ---------------------------------------------------------------- */
.emec-utility-bar .elementor-widget-html {
	width: auto;
}
.emec-utility-bar > .elementor-element {
	flex: 1 1 0;
	min-width: 0;
}
.emec-utility__brands {
	display: flex;
	align-items: center;
	gap: 30px; /* Ian, 2026-09-05: more air between the two wordmarks */
}
/* Brand wordmarks: Aeroport paths as CSS masks (Elementor strips inline <svg>;
   one asset per brand, grey/white states in CSS — the grey-leaf technique).
   The two .emec-brand--* blocks are GENERATED by brand/make_bar_wordmarks.py —
   regenerate, don't hand-edit. */
.emec-brand {
	display: block;
	height: 10px; /* Ian, 2026-09-05: slightly smaller (was 11px) */
	background-color: #9A9A9A;
	transition: background-color 0.15s;
}
.emec-brand:hover,
.emec-brand.is-current {
	background-color: #FFFFFF;
}
.emec-brand--additive {
	aspect-ratio: 11.4665;
	-webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 825.6 72%22 role=%22img%22 aria-label=%22EMEC ADDITIVE%22%3E%3Cpath fill=%22%23000%22 d=%22M58.87951807228916 12.686746987951807V0.0H8.349397590361447V72.0H58.87951807228916V59.31325301204819H22.55421686746988V42.28915662650603H58.12048192771084V29.602409638554214H22.55421686746988V12.686746987951807Z M90.21686746987952 0.0H73.62650602409639V72.0H87.83132530120481V26.89156626506024L108.75903614457832 72.0H124.1566265060241L145.08433734939757 26.89156626506024V72.0H159.28915662650604V0.0H143.13253012048193L116.67469879518072 56.71084337349397Z M226.51807228915663 12.686746987951807V0.0H175.9879518072289V72.0H226.51807228915663V59.31325301204819H190.19277108433735V42.28915662650603H225.75903614457832V29.602409638554214H190.19277108433735V12.686746987951807Z M274.0120481927711 -1.409638554216869C252.75903614457832 -1.409638554216869 236.81927710843374 14.53012048192771 236.81927710843374 36.0C236.81927710843374 57.46987951807229 252.75903614457832 73.40963855421687 274.0120481927711 73.40963855421687C289.73493975903614 73.40963855421687 301.0120481927711 65.06024096385542 306.7590361445783 52.04819277108434H291.578313253012C287.67469879518075 57.25301204819277 281.3855421686747 60.72289156626506 274.0120481927711 60.72289156626506C260.7831325301205 60.72289156626506 251.02409638554218 50.096385542168676 251.02409638554218 36.0C251.02409638554218 21.903614457831324 260.7831325301205 11.277108433734938 274.0120481927711 11.277108433734938C281.3855421686747 11.277108433734938 287.67469879518075 14.855421686746986 291.578313253012 19.951807228915662H306.7590361445783C301.0120481927711 7.048192771084331 289.73493975903614 -1.409638554216869 274.0120481927711 -1.409638554216869Z%22/%3E%3Cpath fill=%22%23000%22 d=%22M354.0120481927711 55.3012048192771H392.83132530120486L400.0963855421687 72.0H410.50602409638554L378.9518072289157 0.0H368.3253012048193L336.66265060240966 72.0H346.7469879518072ZM388.9277108433735 46.3012048192771H357.9156626506024L373.421686746988 10.626506024096386Z M419.72289156626505 0.0V72.0H443.90361445783134C468.95180722891564 72.0 483.3734939759036 55.626506024096386 483.3734939759036 36.0C483.3734939759036 16.373493975903614 468.95180722891564 0.0 443.90361445783134 0.0ZM473.6144578313253 36.0C473.6144578313253 51.93975903614458 462.66265060240966 62.89156626506024 444.5542168674699 62.89156626506024H429.48192771084337V9.108433734939759H444.5542168674699C462.66265060240966 9.108433734939759 473.6144578313253 20.06024096385542 473.6144578313253 36.0Z M497.4698795180723 0.0V72.0H521.6506024096385C546.6987951807229 72.0 561.1204819277109 55.626506024096386 561.1204819277109 36.0C561.1204819277109 16.373493975903614 546.6987951807229 0.0 521.6506024096385 0.0ZM551.3614457831326 36.0C551.3614457831326 51.93975903614458 540.4096385542168 62.89156626506024 522.3012048192771 62.89156626506024H507.2289156626506V9.108433734939759H522.3012048192771C540.4096385542168 9.108433734939759 551.3614457831326 20.06024096385542 551.3614457831326 36.0Z M584.9759036144578 0.0H575.2168674698795V72.0H584.9759036144578Z M596.9036144578314 0.0V9.108433734939759H621.843373493976V72.0H631.6024096385543V9.108433734939759H656.5421686746989V0.0Z M678.2289156626506 0.0H668.4698795180723V72.0H678.2289156626506Z M698.3975903614457 0.0H687.9879518072289L718.566265060241 72.0H729.3012048192771L759.9879518072289 0.0H749.7951807228916L724.0963855421686 61.373493975903614Z M818.5421686746988 9.108433734939759V0.0H769.7469879518072V72.0H818.5421686746988V62.89156626506024H779.5060240963855V40.554216867469876H817.7831325301205V31.445783132530117H779.5060240963855V9.108433734939759Z%22/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 825.6 72%22 role=%22img%22 aria-label=%22EMEC ADDITIVE%22%3E%3Cpath fill=%22%23000%22 d=%22M58.87951807228916 12.686746987951807V0.0H8.349397590361447V72.0H58.87951807228916V59.31325301204819H22.55421686746988V42.28915662650603H58.12048192771084V29.602409638554214H22.55421686746988V12.686746987951807Z M90.21686746987952 0.0H73.62650602409639V72.0H87.83132530120481V26.89156626506024L108.75903614457832 72.0H124.1566265060241L145.08433734939757 26.89156626506024V72.0H159.28915662650604V0.0H143.13253012048193L116.67469879518072 56.71084337349397Z M226.51807228915663 12.686746987951807V0.0H175.9879518072289V72.0H226.51807228915663V59.31325301204819H190.19277108433735V42.28915662650603H225.75903614457832V29.602409638554214H190.19277108433735V12.686746987951807Z M274.0120481927711 -1.409638554216869C252.75903614457832 -1.409638554216869 236.81927710843374 14.53012048192771 236.81927710843374 36.0C236.81927710843374 57.46987951807229 252.75903614457832 73.40963855421687 274.0120481927711 73.40963855421687C289.73493975903614 73.40963855421687 301.0120481927711 65.06024096385542 306.7590361445783 52.04819277108434H291.578313253012C287.67469879518075 57.25301204819277 281.3855421686747 60.72289156626506 274.0120481927711 60.72289156626506C260.7831325301205 60.72289156626506 251.02409638554218 50.096385542168676 251.02409638554218 36.0C251.02409638554218 21.903614457831324 260.7831325301205 11.277108433734938 274.0120481927711 11.277108433734938C281.3855421686747 11.277108433734938 287.67469879518075 14.855421686746986 291.578313253012 19.951807228915662H306.7590361445783C301.0120481927711 7.048192771084331 289.73493975903614 -1.409638554216869 274.0120481927711 -1.409638554216869Z%22/%3E%3Cpath fill=%22%23000%22 d=%22M354.0120481927711 55.3012048192771H392.83132530120486L400.0963855421687 72.0H410.50602409638554L378.9518072289157 0.0H368.3253012048193L336.66265060240966 72.0H346.7469879518072ZM388.9277108433735 46.3012048192771H357.9156626506024L373.421686746988 10.626506024096386Z M419.72289156626505 0.0V72.0H443.90361445783134C468.95180722891564 72.0 483.3734939759036 55.626506024096386 483.3734939759036 36.0C483.3734939759036 16.373493975903614 468.95180722891564 0.0 443.90361445783134 0.0ZM473.6144578313253 36.0C473.6144578313253 51.93975903614458 462.66265060240966 62.89156626506024 444.5542168674699 62.89156626506024H429.48192771084337V9.108433734939759H444.5542168674699C462.66265060240966 9.108433734939759 473.6144578313253 20.06024096385542 473.6144578313253 36.0Z M497.4698795180723 0.0V72.0H521.6506024096385C546.6987951807229 72.0 561.1204819277109 55.626506024096386 561.1204819277109 36.0C561.1204819277109 16.373493975903614 546.6987951807229 0.0 521.6506024096385 0.0ZM551.3614457831326 36.0C551.3614457831326 51.93975903614458 540.4096385542168 62.89156626506024 522.3012048192771 62.89156626506024H507.2289156626506V9.108433734939759H522.3012048192771C540.4096385542168 9.108433734939759 551.3614457831326 20.06024096385542 551.3614457831326 36.0Z M584.9759036144578 0.0H575.2168674698795V72.0H584.9759036144578Z M596.9036144578314 0.0V9.108433734939759H621.843373493976V72.0H631.6024096385543V9.108433734939759H656.5421686746989V0.0Z M678.2289156626506 0.0H668.4698795180723V72.0H678.2289156626506Z M698.3975903614457 0.0H687.9879518072289L718.566265060241 72.0H729.3012048192771L759.9879518072289 0.0H749.7951807228916L724.0963855421686 61.373493975903614Z M818.5421686746988 9.108433734939759V0.0H769.7469879518072V72.0H818.5421686746988V62.89156626506024H779.5060240963855V40.554216867469876H817.7831325301205V31.445783132530117H779.5060240963855V9.108433734939759Z%22/%3E%3C/svg%3E") center / contain no-repeat;
}
.emec-brand--mt {
	aspect-ratio: 7.0192;
	-webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 505.4 72%22 role=%22img%22 aria-label=%22EMEC MT%22%3E%3Cpath fill=%22%23000%22 d=%22M58.87951807228916 12.686746987951807V0.0H8.349397590361447V72.0H58.87951807228916V59.31325301204819H22.55421686746988V42.28915662650603H58.12048192771084V29.602409638554214H22.55421686746988V12.686746987951807Z M90.21686746987952 0.0H73.62650602409639V72.0H87.83132530120481V26.89156626506024L108.75903614457832 72.0H124.1566265060241L145.08433734939757 26.89156626506024V72.0H159.28915662650604V0.0H143.13253012048193L116.67469879518072 56.71084337349397Z M226.51807228915663 12.686746987951807V0.0H175.9879518072289V72.0H226.51807228915663V59.31325301204819H190.19277108433735V42.28915662650603H225.75903614457832V29.602409638554214H190.19277108433735V12.686746987951807Z M274.0120481927711 -1.409638554216869C252.75903614457832 -1.409638554216869 236.81927710843374 14.53012048192771 236.81927710843374 36.0C236.81927710843374 57.46987951807229 252.75903614457832 73.40963855421687 274.0120481927711 73.40963855421687C289.73493975903614 73.40963855421687 301.0120481927711 65.06024096385542 306.7590361445783 52.04819277108434H291.578313253012C287.67469879518075 57.25301204819277 281.3855421686747 60.72289156626506 274.0120481927711 60.72289156626506C260.7831325301205 60.72289156626506 251.02409638554218 50.096385542168676 251.02409638554218 36.0C251.02409638554218 21.903614457831324 260.7831325301205 11.277108433734938 274.0120481927711 11.277108433734938C281.3855421686747 11.277108433734938 287.67469879518075 14.855421686746986 291.578313253012 19.951807228915662H306.7590361445783C301.0120481927711 7.048192771084331 289.73493975903614 -1.409638554216869 274.0120481927711 -1.409638554216869Z%22/%3E%3Cpath fill=%22%23000%22 d=%22M418.96385542168673 0.0 388.60240963855426 62.24096385542168 358.2409638554217 0.0H345.87951807228916V72.0H355.6385542168675V16.048192771084338L382.9638554216868 72.0H394.0240963855422L421.3493975903615 16.048192771084338V72.0H431.1084337349398V0.0Z M443.03614457831327 0.0V9.108433734939759H467.9759036144579V72.0H477.7349397590362V9.108433734939759H502.67469879518075V0.0Z%22/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 505.4 72%22 role=%22img%22 aria-label=%22EMEC MT%22%3E%3Cpath fill=%22%23000%22 d=%22M58.87951807228916 12.686746987951807V0.0H8.349397590361447V72.0H58.87951807228916V59.31325301204819H22.55421686746988V42.28915662650603H58.12048192771084V29.602409638554214H22.55421686746988V12.686746987951807Z M90.21686746987952 0.0H73.62650602409639V72.0H87.83132530120481V26.89156626506024L108.75903614457832 72.0H124.1566265060241L145.08433734939757 26.89156626506024V72.0H159.28915662650604V0.0H143.13253012048193L116.67469879518072 56.71084337349397Z M226.51807228915663 12.686746987951807V0.0H175.9879518072289V72.0H226.51807228915663V59.31325301204819H190.19277108433735V42.28915662650603H225.75903614457832V29.602409638554214H190.19277108433735V12.686746987951807Z M274.0120481927711 -1.409638554216869C252.75903614457832 -1.409638554216869 236.81927710843374 14.53012048192771 236.81927710843374 36.0C236.81927710843374 57.46987951807229 252.75903614457832 73.40963855421687 274.0120481927711 73.40963855421687C289.73493975903614 73.40963855421687 301.0120481927711 65.06024096385542 306.7590361445783 52.04819277108434H291.578313253012C287.67469879518075 57.25301204819277 281.3855421686747 60.72289156626506 274.0120481927711 60.72289156626506C260.7831325301205 60.72289156626506 251.02409638554218 50.096385542168676 251.02409638554218 36.0C251.02409638554218 21.903614457831324 260.7831325301205 11.277108433734938 274.0120481927711 11.277108433734938C281.3855421686747 11.277108433734938 287.67469879518075 14.855421686746986 291.578313253012 19.951807228915662H306.7590361445783C301.0120481927711 7.048192771084331 289.73493975903614 -1.409638554216869 274.0120481927711 -1.409638554216869Z%22/%3E%3Cpath fill=%22%23000%22 d=%22M418.96385542168673 0.0 388.60240963855426 62.24096385542168 358.2409638554217 0.0H345.87951807228916V72.0H355.6385542168675V16.048192771084338L382.9638554216868 72.0H394.0240963855422L421.3493975903615 16.048192771084338V72.0H431.1084337349398V0.0Z M443.03614457831327 0.0V9.108433734939759H467.9759036144579V72.0H477.7349397590362V9.108433734939759H502.67469879518075V0.0Z%22/%3E%3C/svg%3E") center / contain no-repeat;
}
.emec-utility__claims {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px; /* leaf sits between the two claims as the separator (Ian, 2026-09-05) */
	font-family: "Syne", sans-serif;
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: 0.01em;
	color: #CFCFCF;
	white-space: nowrap;
}
.emec-utility__sep {
	color: #555555;
}
.emec-leaf {
	display: inline-block;
	width: 15px;
	height: 16px;
	flex: 0 0 auto;
	background-color: #9A9A9A; /* light grey — deliberately not flag red (Ian, 2026-08-22) */
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 25'><path d='M11.7 0 9.6 3.9c-.2.4-.6.4-1 .2L6.7 3.2 8 8.6c.1.6-.3.8-.7.4L5.1 6.4 4.8 7.5c-.1.4-.4.5-.8.4L.8 7.3l.9 3.2c.1.4 0 .7-.4.9L0 12.1l5.7 4.7c.3.3.4.6.3 1l-.5 1.8 5.2-.9c.3-.1.6.2.6.5L11 25h1.4l-.3-5.8c0-.3.3-.6.6-.5l5.2.9-.5-1.8c-.1-.4 0-.7.3-1l5.7-4.7-1.3-.7c-.4-.2-.5-.5-.4-.9l.9-3.2-3.2.6c-.4.1-.7 0-.8-.4l-.3-1.1-2.2 2.6c-.4.4-.8.2-.7-.4l1.3-5.4-1.9.9c-.4.2-.8.2-1-.2Z'/></svg>") center / contain no-repeat;
	mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 25'><path d='M11.7 0 9.6 3.9c-.2.4-.6.4-1 .2L6.7 3.2 8 8.6c.1.6-.3.8-.7.4L5.1 6.4 4.8 7.5c-.1.4-.4.5-.8.4L.8 7.3l.9 3.2c.1.4 0 .7-.4.9L0 12.1l5.7 4.7c.3.3.4.6.3 1l-.5 1.8 5.2-.9c.3-.1.6.2.6.5L11 25h1.4l-.3-5.8c0-.3.3-.6.6-.5l5.2.9-.5-1.8c-.1-.4 0-.7.3-1l5.7-4.7-1.3-.7c-.4-.2-.5-.5-.4-.9l.9-3.2-3.2.6c-.4.1-.7 0-.8-.4l-.3-1.1-2.2 2.6c-.4.4-.8.2-.7-.4l1.3-5.4-1.9.9c-.4.2-.8.2-1-.2Z'/></svg>") center / contain no-repeat;
}
.emec-utility-bar .emec-header-icons {
	width: auto !important;
	max-width: none !important;
	flex: 1 1 0 !important;
	justify-content: flex-end;
	padding: 0 !important; /* bar halved 2026-09-05: icon widgets set the row height */
}
.emec-utility-bar .elementor-widget-woocommerce-menu-cart,
.emec-utility-bar .elementor-widget-icon {
	line-height: 1;
	display: flex;
	align-items: center; /* cart + account share one vertical centre (Ian, 2026-09-05) */
}
.emec-utility-bar .elementor-menu-cart__toggle,
.emec-utility-bar .elementor-menu-cart__toggle .elementor-button {
	display: flex;
	align-items: center;
	line-height: 1;
}
/* count badge: keep it inside the 35px bar instead of poking above it */
.emec-utility-bar .elementor-menu-cart__toggle .elementor-button .elementor-button-icon-qty {
	top: -5px;
	right: -9px;
	left: auto;
}
.emec-utility-bar .elementor-widget-icon .elementor-icon-wrapper,
.emec-utility-bar .elementor-widget-icon .elementor-icon {
	display: flex;
	align-items: center;
}
.emec-utility-bar .emec-header-icons .elementor-menu-cart__toggle .elementor-button-icon {
	font-size: 18px;
}
.emec-utility-bar .emec-header-icons .elementor-icon {
	font-size: 17px;
}
@media (max-width: 900px) {
	.emec-utility__claim--more {
		display: none; /* mid widths: keep leaf + "Canadian-owned & operated" only */
	}
}
@media (max-width: 767px) {
	.emec-utility__brands {
		display: none; /* wordmarks collide with the icons on phones (Ian, 2026-08-24)
		                  — phones keep the first claim + icons, as before the brand hop */
	}
}
@media (max-width: 480px) {
	.emec-utility__claims .emec-utility__claim {
		display: none; /* narrow phones: claims collapse to just the leaf (Ian, 2026-08-29) */
	}
}

/* ---- Footer: Proudly Canadian line ---------------------------------- */
.emec-proud {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-top: 0; /* footer spacing tightened 2026-08-23 */
	font-family: "Syne", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: #FFFFFF;
}
.emec-proud .emec-leaf {
	width: 16px;
	height: 17px;
	flex-shrink: 0;
	margin-top: 1px; /* align to first text line when the line wraps */
}
.emec-proud__note {
	margin: 6px 0 0;
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	color: #9A9A9A;
}

/* ---- Net 30 purchase-order gateway fields (checkout) — 0.9.32 ---- */
.emec-po-fields { margin: 6px 0 0; }
.emec-po-fields .form-row { margin-bottom: 12px; }
.emec-po-fields input[type="file"] { display: block; margin: 6px 0 4px; font-family: "Poppins", sans-serif; font-size: 14px; }
.emec-po-status { display: block; font-size: 13px; color: #666; }
.emec-po-status[data-attached="1"] { color: #0283C4; font-weight: 600; }
.emec-po-status.is-error { color: #B00020; }
.emec-po-thanks { margin: 0 0 24px; padding: 16px 20px; background: #F5F5F5; border-left: 4px solid #0283C4; }
.emec-po-thanks p { margin: 0; }

/* ---- Cart page + classic checkout — site vocabulary (Ian, 2026-09-11).
   Same treatment as the flyout (0.9.16) and My Account (0.9.28): Syne for
   headings/labels/buttons, Poppins for content, #e4e4e4 rules instead of
   boxed tables, cards with 10px radius, the CAD suffix on the grand total.
   Covers /cart/, /checkout/ and the order-received thank-you page. 0.9.33/0.9.34 --- */
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title {
	font-family: "Syne", sans-serif;
	font-weight: 700;
	font-size: 34px;
	color: #000000;
	margin-bottom: 28px;
}
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
	font-family: "Poppins", sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: #444444;
}
.woocommerce-cart .woocommerce a,
.woocommerce-checkout .woocommerce a {
	color: var(--emec-blue);
}
.woocommerce-cart .woocommerce h2,
.woocommerce-cart .woocommerce h3,
.woocommerce-checkout .woocommerce h2,
.woocommerce-checkout .woocommerce h3 {
	font-family: "Syne", sans-serif;
	font-weight: 700;
	font-size: 22px;
	color: #000000;
	margin: 0 0 18px;
}
/* buttons: primary blue, 8px radius (the flyout pairing) */
.woocommerce-cart .woocommerce .button,
.woocommerce-cart .woocommerce button.button,
.woocommerce-checkout .woocommerce .button,
.woocommerce-checkout .woocommerce button.button,
.woocommerce-checkout .woocommerce button.button.alt {
	font-family: "Syne", sans-serif;
	font-weight: 600;
	font-size: 15px;
	line-height: 1.2;
	padding: 13px 24px;
	border-radius: 8px;
	border: 2px solid var(--emec-blue);
	background: var(--emec-blue);
	color: #ffffff;
}
.woocommerce-cart .woocommerce .button:hover,
.woocommerce-checkout .woocommerce .button:hover,
.woocommerce-checkout .woocommerce button.button.alt:hover {
	background: #046A9E;
	border-color: #046A9E;
	color: #ffffff;
}
.woocommerce-cart .woocommerce button.button:disabled,
.woocommerce-cart .woocommerce button.button:disabled[disabled] {
	padding: 13px 24px;
	background: var(--emec-blue);
	border-color: var(--emec-blue);
	color: #ffffff;
	opacity: 0.35;
}
/* notices (coupon applied, item removed, errors) */
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-error {
	border-top: none;
	border-left: 3px solid var(--emec-blue);
	background: #F5F5F5;
	color: #333333;
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	border-radius: 0 6px 6px 0;
}
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-error {
	border-left-color: #B42318;
}
.woocommerce-cart .woocommerce-message::before,
.woocommerce-cart .woocommerce-info::before,
.woocommerce-checkout .woocommerce-message::before,
.woocommerce-checkout .woocommerce-info::before {
	color: var(--emec-blue);
}
.woocommerce-cart .woocommerce-message .button,
.woocommerce-checkout .woocommerce-message .button {
	padding: 8px 14px;
	font-size: 13px;
	border-radius: 6px;
}
/* inputs (quantity, coupon, every checkout field) */
.woocommerce-cart .woocommerce input.input-text,
.woocommerce-checkout .woocommerce form .form-row .input-text,
.woocommerce-checkout .woocommerce form .form-row select,
.woocommerce-checkout .woocommerce .woocommerce-form-coupon .input-text {
	height: 46px;
	padding: 0 14px;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	color: #111111;
	background: #ffffff;
}
.woocommerce-checkout .woocommerce form .form-row textarea.input-text {
	height: auto;
	min-height: 110px;
	padding: 12px 14px;
	line-height: 1.5;
}
.woocommerce-cart .woocommerce input.input-text:focus,
.woocommerce-checkout .woocommerce form .form-row .input-text:focus,
.woocommerce-checkout .woocommerce form .form-row select:focus,
.woocommerce-checkout .woocommerce .woocommerce-form-coupon .input-text:focus {
	border-color: var(--emec-blue);
	outline: none;
	box-shadow: 0 0 0 3px var(--emec-blue-t3);
}
.woocommerce-cart .woocommerce input::placeholder,
.woocommerce-checkout .woocommerce input::placeholder,
.woocommerce-checkout .woocommerce textarea::placeholder {
	color: #9A9A9A;
}
.woocommerce-cart .woocommerce input[type="radio"],
.woocommerce-cart .woocommerce input[type="checkbox"],
.woocommerce-checkout .woocommerce input[type="radio"],
.woocommerce-checkout .woocommerce input[type="checkbox"] {
	accent-color: var(--emec-blue);
}

/* -- Cart: line items as ruled rows, not a boxed table -- */
.woocommerce-cart table.shop_table.cart {
	border: none;
	border-collapse: collapse;
	border-radius: 0;
	margin-bottom: 40px;
}
.woocommerce-cart table.shop_table.cart thead th {
	font-family: "Syne", sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #666666;
	border: none;
	border-bottom: 2px solid #e4e4e4;
	padding: 10px 12px;
	background: transparent;
}
.woocommerce-cart table.shop_table.cart td {
	border: none;
	border-bottom: 1px solid #e4e4e4;
	padding: 20px 12px;
	vertical-align: middle;
	background: transparent;
	font-size: 15px;
}
.woocommerce-cart table.shop_table.cart td.product-remove {
	width: 44px;
	padding-left: 0;
}
.woocommerce-cart table.shop_table.cart td.product-remove a.remove,
.woocommerce-cart table.shop_table.cart td.product-remove a.remove:hover {
	width: 28px;
	height: 28px;
	line-height: 26px;
	font-size: 22px;
	font-weight: 400;
	color: #999999 !important;
	background: transparent !important;
	border: 1px solid #d1d5db;
	border-radius: 50%;
	text-align: center;
}
.woocommerce-cart table.shop_table.cart td.product-remove a.remove:hover {
	color: #111111 !important;
	border-color: #111111;
}
.woocommerce-cart table.shop_table.cart td.product-thumbnail {
	width: 108px;
}
.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
	width: 84px;
	height: 84px;
	object-fit: contain;
	padding: 4px;
	background: #F5F5F5;
	border-radius: 6px;
	display: block;
}
.woocommerce-cart table.shop_table.cart td.product-name a {
	font-family: "Syne", sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	color: #111111;
	text-decoration: none;
}
.woocommerce-cart table.shop_table.cart td.product-name a:hover {
	color: var(--emec-blue);
}
.woocommerce-cart table.shop_table.cart td.product-name .variation,
.woocommerce-cart table.shop_table.cart td.product-name .wc-item-meta {
	margin: 4px 0 0;
	font-size: 13px;
	color: #666666;
}
.woocommerce-cart table.shop_table.cart td.product-price,
.woocommerce-cart table.shop_table.cart td.product-subtotal {
	color: #111111;
	font-weight: 500;
	white-space: nowrap;
}
.woocommerce-cart table.shop_table.cart td.product-subtotal {
	font-weight: 600;
}
.woocommerce-cart table.shop_table.cart td.product-quantity .quantity .qty {
	width: 68px;
	height: 44px;
	padding: 0 6px;
	text-align: center;
	font-weight: 500;
}
/* coupon + update row */
.woocommerce-cart table.shop_table.cart td.actions {
	border-bottom: none;
	padding: 22px 0 0;
}
.woocommerce-cart table.shop_table.cart td.actions .coupon {
	display: flex;
	gap: 10px;
	float: left;
}
.woocommerce-cart table.shop_table.cart td.actions .coupon .input-text {
	width: 220px;
	margin: 0;
}
.woocommerce-cart table.shop_table.cart td.actions .coupon .button {
	background: transparent;
	color: var(--emec-blue);
	border: 2px solid var(--emec-blue);
	padding: 12px 22px;
	white-space: nowrap;
}
.woocommerce-cart table.shop_table.cart td.actions .coupon .button:hover {
	background: var(--emec-blue-t3);
	color: var(--emec-blue);
	border-color: var(--emec-blue);
}
.woocommerce-cart table.shop_table.cart td.actions > .button {
	float: right;
}

/* -- Cart totals card -- */
.woocommerce-cart .cart-collaterals .cart_totals {
	width: 46%;
	float: right;
	border: 1px solid #e4e4e4;
	border-radius: 10px;
	padding: 26px 28px 28px;
	background: #ffffff;
}
.woocommerce-cart .cart-collaterals .cart_totals h2 {
	background: transparent;
	border: none;
	padding: 0;
	margin: 0 0 12px;
	font-size: 22px;
}
.woocommerce-cart .cart_totals table.shop_table {
	border: none;
	border-collapse: collapse;
	margin: 0;
	font-size: 15px;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
	border: none;
	border-bottom: 1px solid #e4e4e4;
	padding: 14px 0;
	background: transparent;
	vertical-align: top;
	text-align: left;
}
.woocommerce-cart .cart_totals table.shop_table th {
	width: 38%;
	font-family: "Syne", sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: #666666;
}
.woocommerce-cart .cart_totals table.shop_table td {
	color: #111111;
	font-weight: 500;
	text-align: right;
}
.woocommerce-cart .cart_totals table.shop_table td .woocommerce-shipping-methods,
.woocommerce-cart .cart_totals table.shop_table td .woocommerce-shipping-destination {
	font-size: 14px;
	font-weight: 400;
	color: #444444;
	text-align: right;
}
.woocommerce-cart .cart_totals table.shop_table td .woocommerce-shipping-methods {
	margin: 0 0 6px;
	list-style: none;
	padding: 0;
}
.woocommerce-cart .cart_totals table.shop_table td .woocommerce-shipping-methods label {
	font-weight: 500;
	color: #111111;
}
.woocommerce-cart .cart_totals table.shop_table td .woocommerce-shipping-destination {
	margin: 0 0 8px;
	line-height: 1.5;
}
.woocommerce-cart .cart_totals table.shop_table td .woocommerce-shipping-destination strong {
	font-weight: 500;
	color: #444444;
}
.woocommerce-cart .cart_totals .shipping-calculator-button {
	font-family: "Syne", sans-serif;
	font-size: 13px;
	font-weight: 600;
}
.woocommerce-cart .cart_totals .shipping-calculator-form {
	text-align: left;
	margin-top: 12px;
}
.woocommerce-cart .cart_totals .shipping-calculator-form .form-row {
	margin-bottom: 10px;
}
.woocommerce-cart .cart_totals .shipping-calculator-form .input-text,
.woocommerce-cart .cart_totals .shipping-calculator-form select {
	height: 42px;
	padding: 0 12px;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	font-family: "Poppins", sans-serif;
	font-size: 14px;
}
.woocommerce-cart .cart_totals .shipping-calculator-form .button {
	width: 100%;
	padding: 11px 16px;
	font-size: 14px;
	margin-top: 4px;
}
.woocommerce-cart .cart_totals table.shop_table tr.order-total th,
.woocommerce-cart .cart_totals table.shop_table tr.order-total td {
	border-bottom: none;
	padding-top: 18px;
	padding-bottom: 6px;
	vertical-align: baseline;
}
.woocommerce-cart .cart_totals table.shop_table tr.order-total th {
	color: #111111;
}
.woocommerce-cart .cart_totals table.shop_table tr.order-total td .amount,
.woocommerce-cart .cart_totals table.shop_table tr.order-total td strong {
	font-family: "Syne", sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: #111111;
}
.woocommerce-cart .cart_totals table.shop_table tr.order-total td .amount::after {
	content: " CAD";
	font-size: 12px;
	font-weight: 600;
	color: #666666;
	letter-spacing: 0.5px;
}
.woocommerce-cart .wc-proceed-to-checkout {
	padding: 20px 0 0;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	margin: 0;
	padding: 15px 20px;
	font-size: 16px;
	text-align: center;
}
/* Stripe puts Apple/Google Pay under Proceed on the cart with no divider (checkout
   gets its own "— OR —" <p>). Draw the same divider here for consistency, and give
   both the site's voice (Ian, 2026-09-11). */
.woocommerce-cart .wc-proceed-to-checkout #wc-stripe-express-checkout-element {
	flex-wrap: wrap;
	margin-top: 4px !important;
}
.woocommerce-cart .wc-proceed-to-checkout #wc-stripe-express-checkout-element::before {
	content: "— OR —";
	flex: 0 0 100%;
	display: block;
	margin: 6px 0 12px;
	text-align: center;
}
.woocommerce-cart .wc-proceed-to-checkout #wc-stripe-express-checkout-element::before,
.woocommerce-checkout #wc-stripe-express-checkout-button-separator {
	font-family: "Poppins", sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 1px;
	color: #666666;
}
/* empty cart */
.woocommerce-cart .cart-empty {
	font-family: "Syne", sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: #111111;
	border: none;
	background: transparent;
	padding: 24px 0 0;
	text-align: center;
}
.woocommerce-cart .cart-empty::before {
	display: none;
}
.woocommerce-cart .return-to-shop {
	text-align: center;
	padding-bottom: 40px;
}

/* -- Checkout: fields -- */
.woocommerce-checkout .woocommerce form .form-row {
	margin-bottom: 14px;
}
.woocommerce-checkout .woocommerce form .form-row label {
	font-family: "Syne", sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: #111111;
	margin-bottom: 6px;
	line-height: 1.4;
}
.woocommerce-checkout .woocommerce form .form-row label .required {
	color: #B42318;
	text-decoration: none;
}
.woocommerce-checkout .woocommerce form .form-row label .optional {
	color: #888888;
	font-weight: 400;
	font-size: 12px;
}
/* select2 (country/province) to match the inputs */
.woocommerce-checkout .select2-container--default .select2-selection--single {
	height: 46px;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	background: #ffffff;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 44px;
	padding-left: 14px;
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	color: #111111;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 44px;
	right: 8px;
}
.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single,
.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single {
	border-color: var(--emec-blue);
	box-shadow: 0 0 0 3px var(--emec-blue-t3);
}
.select2-container .select2-dropdown {
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	border-color: #d1d5db;
	border-radius: 6px;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: var(--emec-blue);
}
/* "Ship to a different address?" + order notes */
.woocommerce-checkout #ship-to-different-address {
	margin: 8px 0 14px;
}
.woocommerce-checkout #ship-to-different-address label,
.woocommerce-checkout #ship-to-different-address span {
	font-family: "Syne", sans-serif;
	font-size: 16px;
	font-weight: 600;
	color: #111111;
}
.woocommerce-checkout #ship-to-different-address input[type="checkbox"] {
	margin-right: 8px;
	vertical-align: middle;
}
.woocommerce-checkout .woocommerce-additional-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3 {
	margin-top: 14px;
}
/* coupon prompt at the top */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	margin-bottom: 22px;
}
.woocommerce-checkout .woocommerce .woocommerce-form-coupon {
	border: 1px solid #e4e4e4;
	border-radius: 10px;
	padding: 20px 22px 8px;
	margin: 0 0 28px;
	background: #ffffff;
}
.woocommerce-checkout .woocommerce .woocommerce-form-coupon p:first-of-type {
	font-size: 14px;
	color: #666666;
	margin-bottom: 12px;
}
.woocommerce-checkout .woocommerce .woocommerce-form-coupon .form-row-first {
	width: 60%;
}
.woocommerce-checkout .woocommerce .woocommerce-form-coupon .form-row-last {
	width: 36%;
}
.woocommerce-checkout .woocommerce .woocommerce-form-coupon .button {
	width: 100%;
	padding: 12px 16px;
}

/* -- Checkout: order card (heading + review share one card, Astra-style) -- */
.woocommerce-checkout #order_review_heading {
	border: 1px solid #e4e4e4;
	border-bottom: none;
	border-radius: 10px 10px 0 0;
	padding: 26px 28px 0;
	margin: 0;
	background: #ffffff;
}
.woocommerce-checkout #order_review {
	border: 1px solid #e4e4e4;
	border-top: none;
	border-radius: 0 0 10px 10px;
	padding: 16px 28px 28px;
	background: #ffffff;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table {
	border: none;
	border-collapse: collapse;
	margin: 0;
	font-size: 15px;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th {
	font-family: "Syne", sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #666666;
	border: none;
	border-bottom: 2px solid #e4e4e4;
	padding: 0 0 10px;
	background: transparent;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table td {
	border: none;
	border-bottom: 1px solid #e4e4e4;
	padding: 14px 0;
	background: transparent;
	vertical-align: top;
	text-align: left;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td,
.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th.product-total {
	text-align: right;
	white-space: nowrap;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name {
	font-family: "Syne", sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: #111111;
	line-height: 1.35;
	padding-right: 16px;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name a {
	color: #111111;
	text-decoration: none;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name a:hover {
	color: var(--emec-blue);
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name .product-quantity {
	font-weight: 500;
	color: #666666;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name .variation,
.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name .wc-item-meta {
	margin: 4px 0 0;
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	font-weight: 400;
	color: #666666;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-total {
	color: #111111;
	font-weight: 500;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot th {
	font-family: "Syne", sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: #666666;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td {
	color: #111111;
	font-weight: 500;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td .woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
	font-weight: 400;
	color: #444444;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td .woocommerce-shipping-methods label {
	font-weight: 500;
	color: #111111;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total td {
	border-bottom: none;
	padding-top: 18px;
	padding-bottom: 4px;
	vertical-align: baseline;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total th {
	color: #111111;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total td .amount,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total td strong {
	font-family: "Syne", sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: #111111;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total td .amount::after {
	content: " CAD";
	font-size: 12px;
	font-weight: 600;
	color: #666666;
	letter-spacing: 0.5px;
}
/* Astra's `form #order_review td` rules carry an id, so they beat the table rules
   above on padding/borders and set td.product-name to display:flex — which pulls
   that cell out of the table row and leaves its rule out of step with the price
   cell (Ian, 2026-09-11). Restate the row rules at higher specificity. */
.woocommerce-checkout .woocommerce form #order_review table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce form #order_review table.woocommerce-checkout-review-order-table td {
	padding: 14px 0;
	border: none;
	border-bottom: 1px solid #e4e4e4;
	vertical-align: top;
}
.woocommerce-checkout .woocommerce form #order_review table.woocommerce-checkout-review-order-table thead th {
	padding: 0 0 10px;
	border-bottom: 2px solid #e4e4e4;
}
.woocommerce-checkout .woocommerce form #order_review table.woocommerce-checkout-review-order-table td.product-name {
	display: table-cell;
	padding-right: 16px;
	font-weight: 600;
}
.woocommerce-checkout .woocommerce form #order_review table.woocommerce-checkout-review-order-table tr.order-total th,
.woocommerce-checkout .woocommerce form #order_review table.woocommerce-checkout-review-order-table tr.order-total td {
	border-bottom: none;
	padding-top: 18px;
	padding-bottom: 4px;
	vertical-align: baseline;
}
/* payment methods */
.woocommerce-checkout #payment {
	background: transparent;
	border-radius: 0;
	border-top: 1px solid #e4e4e4;
	margin-top: 14px;
	padding-top: 6px;
}
.woocommerce-checkout #payment ul.payment_methods {
	border-bottom: 1px solid #e4e4e4;
	padding: 4px 0 6px;
	margin: 0;
}
.woocommerce-checkout #payment ul.payment_methods li {
	padding: 12px 0;
	border-bottom: 1px solid #f0f0f0;
	line-height: 1.4;
}
.woocommerce-checkout #payment ul.payment_methods li:last-child {
	border-bottom: none;
}
.woocommerce-checkout #payment ul.payment_methods li > label {
	display: inline;
	font-family: "Syne", sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: #111111;
	cursor: pointer;
}
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
	margin: 0 10px 0 0;
	vertical-align: -1px;
}
.woocommerce-checkout #payment ul.payment_methods li img {
	max-height: 22px;
	vertical-align: middle;
	margin-left: 6px;
}
.woocommerce-checkout #payment div.payment_box {
	background: var(--emec-bg-alt);
	border-radius: 8px;
	padding: 16px 18px;
	margin: 12px 0 2px;
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	line-height: 1.55;
	color: #444444;
}
.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--emec-bg-alt);
	border-width: 0 8px 8px;
	top: -8px;
	left: 12px;
}
.woocommerce-checkout #payment div.payment_box p {
	margin-bottom: 8px;
}
.woocommerce-checkout #payment div.payment_box p:last-child {
	margin-bottom: 0;
}
.woocommerce-checkout #payment div.payment_box .form-row label {
	color: #111111;
}
.woocommerce-checkout #payment div.payment_box .form-row .input-text {
	height: 42px;
	font-size: 14px;
}
.woocommerce-checkout #payment div.payment_box .wc-stripe-elements-field,
.woocommerce-checkout #payment div.payment_box .wc-payment-form .wc-stripe-elements-field {
	border: 1px solid #d1d5db;
	border-radius: 6px;
	padding: 12px 14px;
	background: #ffffff;
}
.woocommerce-checkout .emec-po-fields input[type="file"] {
	font-size: 13px;
}
/* terms + place order */
.woocommerce-checkout #payment div.place-order {
	padding: 18px 0 0;
}
.woocommerce-checkout .woocommerce-privacy-policy-text p,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p {
	font-size: 13px;
	line-height: 1.55;
	color: #666666;
	margin-bottom: 14px;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .validate-required {
	margin-bottom: 18px;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text {
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #444444;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label .required {
	color: #B42318;
	text-decoration: none;
}
.woocommerce-checkout #place_order,
.woocommerce-checkout .woocommerce #payment #place_order {
	display: block;
	width: 100%;
	margin: 0;
	padding: 15px 20px;
	font-size: 16px;
	float: none;
}
/* the returning-customer login prompt */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
	margin-bottom: 14px;
}
.woocommerce-checkout .woocommerce form.woocommerce-form-login {
	border: 1px solid #e4e4e4;
	border-radius: 10px;
	padding: 22px 24px 8px;
	margin-bottom: 28px;
}

/* -- Order received (thank-you) -- */
.woocommerce-order-received .woocommerce-thankyou-order-received {
	font-family: "Syne", sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: #111111;
	margin-bottom: 20px;
}
.woocommerce-order-received ul.woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
}
.woocommerce-order-received ul.woocommerce-order-overview li {
	flex: 1 1 160px;
	border: 1px solid #e4e4e4;
	border-radius: 8px;
	padding: 14px 16px;
	margin: 0;
	font-family: "Syne", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #666666;
	line-height: 1.5;
}
.woocommerce-order-received ul.woocommerce-order-overview li strong {
	display: block;
	margin-top: 4px;
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: #111111;
}
.woocommerce-order-received table.shop_table.order_details,
.woocommerce-order-received table.shop_table.woocommerce-table--order-details {
	border: none;
	border-collapse: collapse;
	font-size: 15px;
}
.woocommerce-order-received table.shop_table th,
.woocommerce-order-received table.shop_table td {
	border: none;
	border-bottom: 1px solid #e4e4e4;
	padding: 14px 12px;
}
.woocommerce-order-received table.shop_table thead th {
	font-family: "Syne", sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #666666;
	border-bottom: 2px solid #e4e4e4;
}
.woocommerce-order-received table.shop_table tfoot th {
	font-family: "Syne", sans-serif;
	font-weight: 600;
	color: #666666;
}
.woocommerce-order-received table.shop_table tfoot tr:last-child th,
.woocommerce-order-received table.shop_table tfoot tr:last-child td {
	border-bottom: none;
	color: #111111;
	font-weight: 700;
}
.woocommerce-order-received .woocommerce-customer-details address {
	border: 1px solid #e4e4e4;
	border-radius: 8px;
	padding: 18px 20px;
	font-style: normal;
	line-height: 1.6;
	color: #444444;
}

/* -- Phones/tablets -- */
@media (max-width: 921px) {
	.woocommerce-cart .cart-collaterals .cart_totals {
		width: 100%;
		float: none;
	}
	.woocommerce-checkout #order_review_heading {
		margin-top: 28px;
	}
}
@media (max-width: 768px) {
	.woocommerce-cart .entry-title,
	.woocommerce-checkout .entry-title {
		font-size: 28px;
		margin-bottom: 20px;
	}
	/* Woo collapses each row to stacked cells (with !important alignment) — lay the
	   cells out as one card per item: thumb | name / price / qty / subtotal | remove */
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item {
		display: grid;
		grid-template-columns: 76px minmax(0, 1fr) 32px;
		column-gap: 14px;
		row-gap: 8px;
		align-items: start;
		padding: 18px 0;
		border-bottom: 1px solid #e4e4e4;
	}
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td {
		display: block;
		border: none;
		padding: 0;
		background: transparent;
	}
	.woocommerce-cart table.shop_table_responsive.cart tr:nth-child(2n) td {
		background: transparent;
	}
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-thumbnail {
		grid-column: 1;
		grid-row: 1 / span 4;
	}
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-thumbnail img {
		width: 76px;
		height: 76px;
	}
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-name {
		grid-column: 2;
		grid-row: 1;
		text-align: left !important;
		padding-bottom: 4px;
	}
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-remove {
		grid-column: 3;
		grid-row: 1;
		width: auto;
		text-align: right !important;
	}
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-thumbnail::before,
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-name::before,
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-remove::before {
		display: none;
	}
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-price,
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-quantity,
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-subtotal {
		grid-column: 2 / 4;
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 12px;
	}
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-price { grid-row: 2; }
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-quantity { grid-row: 3; }
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-subtotal { grid-row: 4; }
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-price::before,
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-quantity::before,
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-subtotal::before {
		float: none;
		font-family: "Syne", sans-serif;
		font-size: 11px;
		font-weight: 700;
		letter-spacing: 1px;
		text-transform: uppercase;
		color: #666666;
		line-height: 1;
	}
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-quantity .quantity .qty {
		width: 60px;
		height: 40px;
	}
	.woocommerce-cart table.shop_table.cart td.actions {
		display: block;
		padding: 20px 0 0;
	}
	.woocommerce-cart table.shop_table.cart td.actions .coupon {
		float: none;
		margin-bottom: 12px;
	}
	.woocommerce-cart table.shop_table.cart td.actions .coupon .input-text {
		flex: 1 1 auto;
		width: auto;
		min-width: 0;
	}
	.woocommerce-cart table.shop_table.cart td.actions > .button {
		float: none;
		width: 100%;
	}
	.woocommerce-cart .cart-collaterals .cart_totals {
		padding: 22px 20px 24px;
	}
	.woocommerce-cart .cart_totals table.shop_table_responsive th,
	.woocommerce-cart .cart_totals table.shop_table_responsive td {
		display: table-cell;
	}
	.woocommerce-cart .cart_totals table.shop_table_responsive td::before {
		display: none;
	}
	.woocommerce-checkout #order_review_heading {
		padding: 22px 20px 0;
	}
	.woocommerce-checkout #order_review {
		padding: 14px 20px 22px;
	}
	.woocommerce-checkout .woocommerce .woocommerce-form-coupon .form-row-first,
	.woocommerce-checkout .woocommerce .woocommerce-form-coupon .form-row-last {
		width: 100%;
	}
}

/* ---------------------------------------------------------------------------
 * Filled and outlined buttons the same size (Ian, 2026-09-19; 0.9.41).
 * An outlined Elementor button carries a 2px border ON TOP of the shared
 * padding, so "Talk to an Expert" rendered 54px beside a 50px "Shop 3D
 * Printers". Every content button now reserves the same 2px: filled ones get
 * a transparent border (their background paints under it), outlined ones keep
 * the colour Elementor sets: the :where() wrapper holds this rule at three
 * classes, below Elementor's per-element border-color rule (four) — without it
 * this rule won and the outline went transparent. Header and footer are
 * excluded — their "buttons" are zero-padding text links.
 * ------------------------------------------------------------------------- */
:where(.elementor:not(.elementor-location-header):not(.elementor-location-footer)) .elementor-widget-button .elementor-button.elementor-button-link {
	border: 2px solid transparent;
}
