/* ==========================================================================
   Evergreen Pro storefront
   1. Tokens          5. Header & navigation   9. Product cards
   2. Fonts & base    6. Footer               10. Shop archives
   3. Container       7. Homepage sections    11. Single product
   4. Buttons         8. Page-builder pages   12. Cart, checkout, account
   ========================================================================== */

/* 1. Tokens --------------------------------------------------------------- */
:root {
	--eg-green: #06463d;
	--eg-forest: #0f2f27;
	--eg-accent: #f05f2a; /* brand orange, as on evergreenpro.co.uk */
	--eg-accent-strong: #f05f2a;
	--eg-accent-hover: #d94d1a;
	--eg-mint: #eff6f2;
	/* Roles: orange is the primary (actions, links, accents), green the secondary. */
	--eg-primary: var(--eg-accent);
	--eg-primary-hover: var(--eg-green);
	--eg-primary-tint: #fdeee7;
	--eg-secondary: var(--eg-green);
	--eg-white: #fff;
	--eg-text: #24332f;
	--eg-muted: #5d6d68;
	--eg-line: #e3eae6;
	--eg-focus: #0b6bcb;

	--eg-font-body: "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--eg-font-head: "Nunito", "Open Sans", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;

	/* Shared content width: 80% desktop, 85% tablet, 90% mobile, of the viewport. */
	--eg-container-w: 80vw;
	--eg-container-max: 1440px;
	--eg-radius: 10px;
	--eg-radius-sm: 6px;
	--eg-shadow: 0 10px 30px rgb(15 47 39 / 10%);
	--eg-section-y: clamp(3.5rem, 7vw, 6.5rem);
	--eg-gap: clamp(1rem, 2vw, 1.75rem);
	--eg-header-offset: 0px;
}

@media (max-width: 1024px) {
	:root { --eg-container-w: 85vw; }
}

@media (max-width: 767px) {
	:root { --eg-container-w: 90vw; }
}

/* 2. Fonts & base --------------------------------------------------------- */
/* House rule: no text heavier than 600 anywhere on the site. */
/* Page-builder "Google Fonts heading" elements carry their weight in an inline
   style, which only !important can override. */
html body.eg-site .vce-google-fonts-heading-inner { font-weight: 600 !important; }
html body.eg-site form .form-row .required { font-weight: 600; }
/* Browser defaults, the page builder and the checkout skin make headings, bold
   text and labels 700; bring them to 600 (lighter weights are left alone). */
html body.eg-site,
html body.eg-site.vcwb.vcwb-font-manager {
	/* The page builder's font manager reads heading weights from these. */
	--h1-font-weight: 600;
	--h2-font-weight: 600;
	--h3-font-weight: 600;
	--h4-font-weight: 600;
	--h5-font-weight: 600;
	--h6-font-weight: 600;
}
html body.eg-site :is(h1, h2, h3, h4, h5, h6, b, strong, th, label, .required, .wc-block-components-title, .wc-block-components-product-name, .wc-block-components-checkout-place-order-button__text, .wc-block-components-totals-item__value) { font-weight: 600; }
@font-face {
	font-family: "Open Sans";
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("../fonts/open-sans-latin-var.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Nunito";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/nunito-latin-var.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

body.eg-site {
	margin: 0;
	background: var(--eg-white);
	color: var(--eg-text);
	font-family: var(--eg-font-body);
	font-size: 16px;
	line-height: 1.65;
	letter-spacing: 0;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.eg-site :where(.eg-site-header, .eg-site-footer, .vcv-header, .vcv-footer, .eg-main) :where(*, *::before, *::after) { box-sizing: border-box; }

.eg-site :where(.eg-main, .eg-header, .eg-footer) :where(h1, h2, h3, h4) {
	margin: 0;
	color: var(--eg-green);
	font-family: var(--eg-font-head);
	font-weight: 600;
	letter-spacing: -.01em;
	line-height: 1.15;
	text-transform: none;
	text-wrap: balance;
}

.eg-site :where(.eg-main) :where(p, ul, ol, dl, figure) { margin: 0; }
.eg-site :where(.eg-main) img { max-width: 100%; height: auto; }
.eg-site :where(.eg-main) a { color: var(--eg-primary); }

.eg-site :where(.eg-site-header, .eg-site-footer, .vcv-header, .vcv-footer, .eg-main) :where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--eg-focus);
	outline-offset: 2px;
	border-radius: 4px;
}

.eg-icon { flex: none; width: 1.25em; height: 1.25em; }

.eg-site .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

.eg-skip-link {
	position: absolute;
	z-index: 1000;
	top: 8px;
	left: 8px;
	padding: .75rem 1rem;
	border-radius: var(--eg-radius-sm);
	background: var(--eg-white);
	color: var(--eg-green);
	font-weight: 600;
	transform: translateY(-200%);
}

.eg-skip-link:focus { transform: none; }
#eg-content { scroll-margin-top: 140px; }
#eg-content:focus { outline: 0; }

/* 3. Container ------------------------------------------------------------ */
.eg-container,
.eg-site .content-wrapper > .container,
.eg-site .vcv-content > .container {
	width: var(--eg-container-w);
	max-width: var(--eg-container-max);
	margin-inline: auto;
	padding-inline: 0;
}

/* 4. Buttons -------------------------------------------------------------- */
.eg-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	min-height: 46px;
	padding: .6rem 1.4rem;
	border: 2px solid transparent;
	border-radius: var(--eg-radius-sm);
	font-family: var(--eg-font-body);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

.eg-btn--lg { min-height: 52px; padding-inline: 1.75rem; font-size: 16px; }
.eg-site .eg-btn--primary { background: var(--eg-accent-strong); color: var(--eg-white); }
.eg-site .eg-btn--primary:hover { background: var(--eg-accent-hover); color: var(--eg-white); }
.eg-site .eg-btn--secondary { background: var(--eg-green); color: var(--eg-white); }
.eg-site .eg-btn--secondary:hover { background: var(--eg-forest); color: var(--eg-white); }
.eg-site .eg-btn--outline { border-color: var(--eg-green); background: transparent; color: var(--eg-green); }
.eg-site .eg-btn--outline:hover { background: var(--eg-green); color: var(--eg-white); }
.eg-site .eg-btn--light { border-color: var(--eg-white); background: var(--eg-white); color: var(--eg-green); }
.eg-site .eg-btn--light:hover { background: transparent; color: var(--eg-white); }

/* Button motion, shared by every button family: the site's .eg-btn,
   WooCommerce buttons (cards, product page, shop, account, notices), the
   basket/checkout block buttons, the side-cart footer and the contact form.
   Hover lifts the button with a soft shadow while a light band sweeps across
   (::before, behind the label; WooCommerce keeps ::after for its spinner and
   tick); pressing settles it back down. The lift uses the translate/scale
   properties, not transform, which the scroll reveal (motion.js) animates. Payment-provider buttons (PayPal,
   Klarna) are third-party iframes and are not touched. */
.eg-site :is(.eg-btn, a.button, button.button, input.button, .woocommerce-Button, .wc-block-components-button:not(.is-link), a.xoo-wsc-ft-btn, .wpcf7-submit) {
	--eg-ease-out: cubic-bezier(.2, .8, .2, 1);
	position: relative;
	isolation: isolate;
	overflow: hidden;
	transition: translate .35s var(--eg-ease-out), scale .35s var(--eg-ease-out), box-shadow .35s var(--eg-ease-out), background-color .25s ease, background-position .7s var(--eg-ease-out), border-color .25s ease, color .25s ease;
}

.eg-site :is(.eg-btn, a.button, button.button, .woocommerce-Button, .wc-block-components-button:not(.is-link), a.xoo-wsc-ft-btn)::before {
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(115deg, transparent 30%, rgb(255 255 255 / 26%) 50%, transparent 70%);
	content: "";
	pointer-events: none;
	transform: translateX(-110%);
	transition: transform .7s var(--eg-ease-out);
}

.eg-site .eg-btn .eg-icon { transition: transform .35s var(--eg-ease-out); }

@media (hover: hover) {
	.eg-site :is(.eg-btn, a.button, button.button, input.button, .woocommerce-Button, .wc-block-components-button:not(.is-link), a.xoo-wsc-ft-btn, .wpcf7-submit):not(:disabled, .disabled, .loading, [aria-disabled="true"]):hover {
		box-shadow: 0 12px 24px -12px rgb(6 70 61 / 55%);
		translate: 0 -2px;
	}

	.eg-site :is(.eg-btn, a.button, button.button, .woocommerce-Button, .wc-block-components-button:not(.is-link), a.xoo-wsc-ft-btn):not(:disabled, .disabled, .loading, [aria-disabled="true"]):hover::before { transform: translateX(110%); }
	.eg-site .wpcf7-submit:not(:disabled):hover { background-position: -60% 0; }
	.eg-site .eg-btn:hover .eg-icon { transform: rotate(-12deg) scale(1.1); }
}

.eg-site :is(.eg-btn, a.button, button.button, input.button, .woocommerce-Button, .wc-block-components-button:not(.is-link), a.xoo-wsc-ft-btn, .wpcf7-submit):not(:disabled, .disabled):active {
	box-shadow: 0 4px 10px -6px rgb(6 70 61 / 45%);
	translate: 0 0;
	scale: .98;
	transition-duration: .12s;
}

/* Out-of-stock card buttons draw their outline as an inset shadow; keep it under the lift shadow. */
.eg-site ul.products li.product.outofstock .button:hover { box-shadow: inset 0 0 0 1px var(--eg-green), 0 12px 24px -12px rgb(6 70 61 / 55%); }

.eg-site .eg-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	min-height: 44px;
	color: var(--eg-primary);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.eg-link-arrow .eg-icon { transition: transform .18s ease; }
.eg-site .eg-link-arrow:hover { color: var(--eg-accent-strong); }
.eg-link-arrow:hover .eg-icon { transform: translateX(3px); }

.eg-eyebrow {
	margin: 0 0 .6rem;
	color: var(--eg-accent-hover);
	font-family: var(--eg-font-body);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .12em;
	line-height: 1.4;
	text-transform: uppercase;
}

.eg-eyebrow--light { color: #ff7231; }

/* 5. Header & navigation --------------------------------------------------
   Visual Composer's font manager colours and underlines every link on pages it
   styles through --p-link-* custom properties. The header and footer set those
   properties for their own links rather than out-ranking its selectors. */
.eg-topbar,
.eg-footer {
	--p-link-color: currentcolor;
	--p-link-hover-color: var(--eg-white);
	--p-link-border-color: transparent;
	--p-link-border-hover-color: transparent;
}

.eg-header {
	--p-link-color: var(--eg-green);
	--p-link-hover-color: var(--eg-primary);
	--p-link-border-color: transparent;
	--p-link-border-hover-color: transparent;
}

.eg-site-header,
.eg-site .vcv-header {
	position: sticky;
	z-index: 200;
	top: calc(var(--eg-header-offset) * -1);
	background: var(--eg-white);
}

.eg-site.admin-bar .eg-site-header,
.eg-site.admin-bar .vcv-header { top: calc(32px - var(--eg-header-offset)); }

@media (max-width: 782px) {
	.eg-site.admin-bar .eg-site-header,
	.eg-site.admin-bar .vcv-header { top: calc(46px - var(--eg-header-offset)); }
}

@media (max-width: 600px) {
	/* The admin bar scrolls away with the page at this width. */
	.eg-site.admin-bar .eg-site-header,
	.eg-site.admin-bar .vcv-header { top: calc(var(--eg-header-offset) * -1); }
}

.eg-topbar { background: var(--eg-forest); color: #dce8e2; font-size: 13px; }

.eg-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 40px;
}

.eg-topbar__note,
.eg-topbar__contact,
.eg-topbar__contact a { display: flex; align-items: center; gap: .5rem; margin: 0; }
.eg-topbar__note { font-weight: 600; }
.eg-topbar__contact { gap: 1.5rem; padding: 0; list-style: none; }
.eg-topbar .eg-icon { width: 15px; height: 15px; color: #ff9d75; }
.eg-site .eg-topbar a { min-height: 40px; border-bottom-width: 0; color: inherit; text-decoration: none; }
.eg-site .eg-topbar a:hover { color: var(--eg-white); text-decoration: underline; }

.eg-header { position: relative; border-bottom: 1px solid var(--eg-line); background: var(--eg-white); }

.eg-header__main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	min-height: 84px;
}

.eg-logo { display: inline-flex; align-items: center; min-height: 44px; }
.eg-site .eg-logo__img { display: block; width: auto; max-width: none; height: 65px; }
.eg-logo__text { color: var(--eg-green); font-family: var(--eg-font-head); font-size: 24px; font-weight: 600; }
.eg-header__actions { display: flex; flex: none; align-items: center; gap: .25rem; }

.eg-site .eg-action,
.eg-nav-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 .6rem;
	border: 0;
	border-radius: var(--eg-radius-sm);
	background: transparent;
	color: var(--eg-green);
	font-family: var(--eg-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .18s ease;
}

.eg-site .eg-action:hover,
.eg-nav-toggle:hover { background: var(--eg-mint); color: var(--eg-green); }
.eg-action .eg-icon,
.eg-nav-toggle .eg-icon { width: 22px; height: 22px; }

.eg-cart-count {
	display: inline-grid;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 11px;
	background: var(--eg-accent-strong);
	color: var(--eg-white);
	font-size: 12px;
	font-weight: 600;
	place-items: center;
}

/* Icon-only actions: the count sits on the corner of the basket icon. */
.eg-action--cart .eg-cart-count { position: absolute; top: 2px; right: 0; min-width: 18px; height: 18px; padding: 0 4px; font-size: 11px; }

.eg-nav-toggle { display: none; }

.eg-nav__head,
.eg-nav__contact { display: none; }

.eg-nav { flex: 1 1 auto; min-width: 0; }
.eg-menu { display: flex; align-items: center; justify-content: center; gap: 0 .25rem; margin: 0; padding: 0; list-style: none; }
.eg-menu > li { position: relative; display: flex; align-items: center; margin: 0; }

.eg-site .eg-menu a {
	display: flex;
	align-items: center;
	min-height: 84px;
	padding: 0 .85rem;
	color: var(--eg-text);
	font-size: 15px;
	white-space: nowrap;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	transition: color .18s ease;
}

.eg-site .eg-menu > li > a:hover,
.eg-site .eg-menu > li.current-menu-item > a,
.eg-site .eg-menu > li.current-menu-ancestor > a,
.eg-site .eg-menu > li.current-menu-parent > a { color: var(--eg-accent-strong); }

.eg-menu > li.current-menu-item > a,
.eg-menu > li.current-menu-ancestor > a { box-shadow: inset 0 -3px 0 var(--eg-accent); }

.eg-submenu-toggle {
	display: inline-grid;
	width: 32px;
	height: 44px;
	margin-left: -.75rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--eg-muted);
	cursor: pointer;
	place-items: center;
}

.eg-submenu-toggle .eg-icon { width: 16px; height: 16px; transition: transform .18s ease; }
.eg-submenu-toggle[aria-expanded="true"] .eg-icon { transform: rotate(180deg); }

.eg-menu .sub-menu {
	position: absolute;
	z-index: 10;
	top: 100%;
	left: 0;
	min-width: 260px;
	margin: 0;
	padding: .5rem;
	border: 1px solid var(--eg-line);
	border-radius: 0 0 var(--eg-radius) var(--eg-radius);
	background: var(--eg-white);
	box-shadow: var(--eg-shadow);
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
}

.eg-menu > li:hover > .sub-menu,
.eg-menu > li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.eg-menu .sub-menu li { margin: 0; }
.eg-site .eg-menu .sub-menu a { min-height: 44px; border-radius: var(--eg-radius-sm); font-size: 14px; }
.eg-site .eg-menu .sub-menu a:hover,
.eg-site .eg-menu .sub-menu .current-menu-item > a { background: var(--eg-mint); color: var(--eg-green); }
.eg-nav-backdrop { display: none; }

@media (max-width: 1279px) {
	.eg-header__main { min-height: 64px; gap: .75rem; }
	.eg-site .eg-logo__img { height: 44px; }
	.eg-nav-toggle { display: inline-flex; }

	.eg-nav {
		position: fixed;
		z-index: 300;
		top: 0;
		right: 0;
		bottom: 0;
		width: min(88vw, 380px);
		border: 0;
		background: var(--eg-white);
		box-shadow: -12px 0 40px rgb(15 47 39 / 18%);
		overflow-y: auto;
		overscroll-behavior: contain;
		visibility: hidden;
		transform: translateX(100%);
		/* Hidden only after the slide-out finishes; visible at once when opening so focus can move in. */
		transition: transform .25s ease, visibility 0s linear .25s;
	}

	.eg-nav.is-open { visibility: visible; transform: none; transition: transform .25s ease, visibility 0s; }
	.eg-nav__inner { width: auto; max-width: none; padding: 0 1.25rem 2rem; }

	.eg-nav__head {
		position: sticky;
		z-index: 1;
		top: 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
		min-height: 64px;
		margin: 0 -1.25rem;
		padding: 0 .75rem 0 1.25rem;
		border-bottom: 1px solid var(--eg-line);
		background: var(--eg-white);
	}

	.eg-nav__title { color: var(--eg-green); font-family: var(--eg-font-head); font-size: 18px; font-weight: 600; }

	.eg-nav__close {
		display: inline-grid;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		border-radius: var(--eg-radius-sm);
		background: transparent;
		color: var(--eg-green);
		cursor: pointer;
		place-items: center;
	}

	.eg-nav__close .eg-icon { width: 24px; height: 24px; }
	.eg-menu { display: block; margin: 0; }
	.eg-menu > li { flex-wrap: wrap; border-bottom: 1px solid var(--eg-line); }
	.eg-site .eg-menu a { flex: 1 1 0; min-height: 52px; padding: 0; font-size: 16px; white-space: normal; }
	.eg-menu > li.current-menu-item > a,
	.eg-menu > li.current-menu-ancestor > a { box-shadow: none; }
	.eg-submenu-toggle { width: 48px; height: 52px; margin: 0 -.75rem 0 0; }
	.eg-submenu-toggle .eg-icon { width: 20px; height: 20px; }

	.eg-menu .sub-menu {
		position: static;
		display: none;
		flex: 1 0 100%;
		min-width: 0;
		padding: 0 0 .75rem .75rem;
		border: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		transition: none;
	}

	.eg-menu > li:hover > .sub-menu { display: none; }
	.eg-menu > li.is-open > .sub-menu { display: block; }
	.eg-site .eg-menu .sub-menu a { min-height: 44px; padding: 0 .75rem; font-size: 15px; font-weight: 500; }
	.eg-nav__contact { display: grid; gap: .25rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
	.eg-site .eg-nav__contact a { display: flex; align-items: center; gap: .6rem; min-height: 44px; color: var(--eg-green); font-weight: 600; text-decoration: none; }
	.eg-nav__contact .eg-icon { color: var(--eg-accent-strong); }

	.eg-nav-backdrop {
		position: fixed;
		z-index: 250;
		inset: 0;
		display: block;
		background: rgb(15 47 39 / 55%);
	}

	.eg-nav-backdrop[hidden] { display: none; }
	body.eg-nav-open { overflow: hidden; }
}

@media (max-width: 600px) {
}

@media (max-width: 600px) {
	.eg-topbar__email { display: none; }
}

@media (max-width: 359px) {
	.eg-topbar { font-size: 12px; }
	.eg-site .eg-logo__img { height: 38px; }
	.eg-header__actions { gap: 0; }
}

/* 6. Footer --------------------------------------------------------------- */
.eg-footer { background: var(--eg-forest); color: #c5d4cd; font-size: 15px; line-height: 1.6; }

.eg-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(0, 1fr));
	gap: clamp(2rem, 4vw, 4rem);
	padding-block: clamp(3rem, 6vw, 5rem);
}

.eg-footer__logo { display: inline-flex; margin-bottom: 1rem; }
/* The logo artwork is dark; the filter turns it solid white for the dark footer. */
.eg-site .eg-footer__logo-img { display: block; width: auto; max-width: none; height: 58px; filter: brightness(0) invert(1); }
.eg-footer__company { margin: 0 0 1.5rem; color: var(--eg-white); font-family: var(--eg-font-head); font-size: 18px; font-weight: 600; line-height: 1.3; }
.eg-footer ul { margin: 0; padding: 0; list-style: none; }
.eg-footer li { margin: 0; }
.eg-footer li::before { content: none; }
.eg-footer__contact { display: grid; gap: .65rem; }
.eg-footer__contact li { display: flex; align-items: flex-start; gap: .7rem; }
.eg-footer__contact .eg-icon { margin-top: .2em; color: #ff9d75; }
.eg-footer__contact address { margin: 0; font-style: normal; line-height: inherit; }

.eg-site .eg-footer .eg-footer__title {
	margin: 0 0 1.1rem;
	color: var(--eg-white);
	font-family: var(--eg-font-head);
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.3;
}

.eg-site .eg-footer a { color: inherit; text-decoration: none; overflow-wrap: anywhere; transition: color .18s ease; }
.eg-site .eg-footer a:hover { color: var(--eg-white); text-decoration: none; }
.eg-footer__col li a { display: inline-flex; align-items: center; min-height: 36px; border-bottom-width: 0; }
.eg-footer__bottom { border-top: 1px solid rgb(255 255 255 / 12%); background: #0a2520; font-size: 13px; }

.eg-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem 2rem;
	padding-block: 1.1rem;
}

.eg-footer__copyright { margin: 0; }
.eg-site .eg-footer__payments { display: block; width: auto; max-width: 100%; height: 22px; }

@media (max-width: 1024px) {
	.eg-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.eg-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
	.eg-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; }
	.eg-footer__col li a { min-height: 44px; }
	.eg-footer__bottom-inner { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 400px) {
	.eg-footer__grid { grid-template-columns: 1fr; }
}

/* 7. Homepage sections ---------------------------------------------------- */
.eg-main--home { overflow-x: clip; }
.eg-section { padding-block: var(--eg-section-y); }
.eg-section--tint { background: var(--eg-mint); }
.eg-section__head { max-width: 760px; margin: 0 auto clamp(2rem, 4vw, 3.25rem); text-align: center; }
/* Section headings: 36px, tight tracking and leading (30px on phones so long headings still fit). */
.eg-site .eg-section__title { font-size: 36px; line-height: 1; }
.eg-site :is(h1, h2, h3, .eg-hero__title, .eg-section__title, .eg-cta__title, .eg-promo__title, .product_title) { letter-spacing: -1px; }
.eg-section__action { margin: clamp(2rem, 4vw, 3rem) 0 0; text-align: center; }

@media (max-width: 600px) {
	.eg-site .eg-section__title { font-size: 30px; }
}
.eg-section__intro { margin-top: 1rem; color: var(--eg-muted); font-size: 17px; }

.eg-section__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: .5rem 2rem;
	margin-bottom: clamp(1.75rem, 3.5vw, 2.75rem);
}

.eg-section__bar .eg-section__head { margin: 0; text-align: left; }

/* Hero */
/* Banner slider: the active slide sits in the flow and sets the height; the
   others lie on top of it, faded out. Each slide carries its own overlay so
   the photo never shows undarkened while it fades. */
.eg-hero { position: relative; display: flex; min-height: clamp(460px, 46vw, 680px); background: var(--eg-forest); isolation: isolate; overflow: hidden; }
.eg-hero__slide { position: absolute; inset: 0; display: flex; isolation: isolate; opacity: 0; visibility: hidden; transition: opacity .9s ease, visibility 0s linear .9s; }
.eg-hero__slide.is-active { position: relative; flex: 1 0 100%; opacity: 1; visibility: visible; transition: opacity .9s ease, visibility 0s; }
.eg-hero__media { position: absolute; z-index: -2; inset: 0; }
.eg-site .eg-hero__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.eg-hero__content .eg-eyebrow--light,.eg-hero__title{font-weight:700 !important;}
.eg-hero__content .eg-hero__actions{display:none;}.eg-hero__content .eg-hero__text{font-weight:600 !important;}
.eg-container.eg-hero__inner{padding-bottom:80px;}

.eg-hero__inner { display: flex; align-items: center; padding-block: clamp(3rem, 6vw, 5rem); }
.eg-hero__content { max-width: 80%; color: var(--eg-white); }
.eg-site .eg-hero__title { color: var(--eg-white); font-size: clamp(2.1rem, 1.25rem + 3.2vw, 3.9rem); line-height: 1.06; }
.eg-hero__text { max-width: 80%; margin-top: 1.25rem; color: #eef4f1; font-size: clamp(1rem, .95rem + .3vw, 1.175rem); }
.eg-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.eg-site .eg-footer__payments{filter: brightness(0) saturate(100%) invert(99%) sepia(99%) saturate(0%) hue-rotate(226deg) brightness(103%) contrast(100%);}
@media (max-width: 767px) {
	.eg-hero { min-height: 500px; }
	.eg-site .eg-hero__img { object-position: 50% 30%; }
	.eg-hero__slide::after { background:linear-gradient(180deg, rgb(8 36 30 / 0%) 0%, rgb(0 0 0 / 54%) 62%);}
	.eg-hero__inner { align-items: flex-end; }
	.eg-hero__actions .eg-btn { flex: 1 1 140px; }.eg-site .eg-hero__img {
        object-position: -400px !important;
    }
}
@media(max-width:700px){
	.eg-site .eg-hero__img {
        object-position: -500px !important;
    }
}

/* Slider dots (added by storefront.js), bottom centre of the banner. */
.eg-hero__dots { position: absolute; z-index: 2; bottom: 1.25rem; left: 50%; display: flex; gap: .25rem; transform: translateX(-50%); }
.eg-hero__dots button { display: grid; width: 32px; height: 32px; padding: 0; border: 0; background: transparent; cursor: pointer; place-items: center; }
.eg-hero__dots button::before { width: 10px; height: 10px; border-radius: 999px; background: rgb(255 255 255 / 55%); content: ""; transition: width .3s ease, background-color .3s ease; }
.eg-hero__dots button[aria-current="true"]::before { width: 26px; background: var(--eg-white); }
.eg-hero__dots button:focus-visible { outline: 2px solid var(--eg-white); outline-offset: -4px; border-radius: 999px; }

/* Previous/next arrows, centred on the banner edges (wide screens; smaller
   screens use swipe, drag and the dots). */
.eg-hero { touch-action: pan-y; user-select: none; }
.eg-hero__arrow { position: absolute; z-index: 2; top: 50%; display: none; width: 48px; height: 48px; padding: 0; border: 1px solid rgb(255 255 255 / 45%); border-radius: 50%; background: rgb(8 36 30 / 35%); color: var(--eg-white); cursor: pointer; place-items: center; transform: translateY(-50%); transition: background-color .2s ease, border-color .2s ease; }
.eg-hero__arrow:hover { border-color: var(--eg-white); background: rgb(8 36 30 / 70%); }
.eg-hero__arrow:focus-visible { outline: 2px solid var(--eg-white); outline-offset: 2px; }
.eg-hero__arrow .eg-icon { width: 22px; height: 22px; }
.eg-hero__arrow--prev { left: 1.25rem; }
.eg-hero__arrow--prev .eg-icon { transform: rotate(180deg); }
.eg-hero__arrow--next { right: 1.25rem; }
.eg-hero__slide.is-active .eg-hero__content a, .eg-hero__slide.is-active .eg-hero__content { user-select: text; }

@media (min-width: 1200px) {
	.eg-hero__arrow { display: grid; }
}

@media (prefers-reduced-motion: reduce) {
	.eg-hero__slide, .eg-hero__slide.is-active { transition: none; }
}

/* Service benefits */
.eg-trust--product { margin-block: 2rem 0; border-block: 1px solid var(--eg-line); }
.eg-trust { border-bottom: 1px solid var(--eg-line); background: var(--eg-white); }
.eg-trust__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.eg-trust__item { display: flex; align-items: center; gap: .9rem; padding: 1.5rem 1.25rem; }
.eg-trust__item + .eg-trust__item { border-left: 1px solid var(--eg-line); }
.eg-trust__item:first-child { padding-left: 0; }
.eg-trust__icon { display: grid; flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--eg-primary-tint); color: var(--eg-primary); place-items: center; }
.eg-trust__icon .eg-icon { width: 22px; height: 22px; }
.eg-trust__text { display: grid; gap: .1rem; color: var(--eg-muted); font-size: 13.5px; line-height: 1.4; }
.eg-trust__text strong { color: var(--eg-green); font-family: var(--eg-font-head); font-size: 16px; font-weight: 600; }

@media (max-width: 1100px) {
	.eg-trust__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.eg-trust__item { padding: 1.1rem .75rem; }
	.eg-trust__item:nth-child(odd) { padding-left: 0; border-left: 0; }
	.eg-trust__item:nth-child(n+3) { border-top: 1px solid var(--eg-line); }
}

@media (max-width: 480px) {
	.eg-trust__list { grid-template-columns: 1fr; }
	.eg-trust__item { padding: .85rem 0; border-left: 0; }
	.eg-trust__item + .eg-trust__item { border-top: 1px solid var(--eg-line); border-left: 0; }.eg-site .eg-hero__img {
        object-position: -700px !important;
    }
	.eg-trust__icon { width: 42px; height: 42px; }.eg-hero__content{max-width:100%;}.eg-hero__text,.eg-hero__actions{display: none;}
}@media(max-width:400px){.eg-site .eg-hero__img {
        object-position: -800px !important;
    }}

/* Image and text */
.eg-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.eg-split--reverse .eg-split__media { order: 2; }
.eg-site .eg-split__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: var(--eg-radius); object-fit: cover; }
.eg-split__content > p:not(.eg-eyebrow) { margin-top: 1rem; color: var(--eg-muted); }
.eg-split__content > .eg-btn { margin-top: 1.75rem; }

.eg-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin-top: 1.75rem; padding-top: 1.5rem; border-top: 1px solid rgb(6 70 61 / 15%); container-type: inline-size; }
/* Each stat spans two shared rows (subgrid): every value sits on the first,
   every label on the second. Values scale with the row width (cqi) so the
   longest one, "1500w–2500w", stays on one line. */
.eg-stats__item { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: .25rem; align-content: start; }
.eg-stats dd { grid-row: 1; align-self: end; margin: 0; color: var(--eg-green); font-family: var(--eg-font-head); font-size: clamp(.95rem, (100cqi - 4rem) / 22, 1.75rem); white-space: nowrap; font-weight: 600; line-height: 1.1; }
.eg-stats dt { grid-row: 2; color: var(--eg-muted); font-size: 13px; font-weight: 400; line-height: 1.4; }

@media (max-width: 900px) {
	.eg-split { grid-template-columns: 1fr; }
	.eg-split--reverse .eg-split__media { order: 0; }
}

@media (max-width: 420px) {
	.eg-stats { grid-template-columns: 1fr; gap: .9rem; }
	.eg-stats__item { display: flex; grid-row: auto; flex-direction: row-reverse; align-items: baseline; justify-content: flex-end; gap: .75rem; }
}

/* Categories */
.eg-cats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--eg-gap); margin: 0; padding: 0; list-style: none; }
.eg-cat { margin: 0; }

.eg-site .eg-cat__link {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	height: 100%;
	border: 1px solid var(--eg-line);
	border-radius: var(--eg-radius);
	background: var(--eg-white);
	color: var(--eg-text);
	text-decoration: none;
	overflow: hidden;
	transition: border-color .18s ease, box-shadow .18s ease;
}

.eg-site .eg-cat__link:hover { border-color: #b9cdc3; box-shadow: var(--eg-shadow); }
.eg-cat__media { display: block; grid-column: 1 / -1; aspect-ratio: 4 / 3; background: var(--eg-mint); }
.eg-site .eg-cat__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.eg-cat__body { display: grid; gap: .15rem; padding: 1.1rem 0 1.1rem 1.25rem; }
.eg-cat__name { color: var(--eg-green); font-family: var(--eg-font-head); font-size: 18px; font-weight: 600; line-height: 1.25; }
.eg-cat__arrow { display: grid; width: 40px; height: 40px; margin-right: 1.1rem; border-radius: 50%; background: var(--eg-primary-tint); color: var(--eg-primary); place-items: center; transition: background-color .18s ease, color .18s ease; }
.eg-cat__arrow .eg-icon { width: 18px; height: 18px; }
.eg-cat__link:hover .eg-cat__arrow { background: var(--eg-accent-strong); color: var(--eg-white); }

@media (max-width: 1024px) {
	.eg-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
	.eg-cats { gap: .75rem; }
	.eg-site .eg-cat__link { grid-template-columns: minmax(0, 1fr); align-content: start; }
	.eg-cat__body { padding: .75rem .8rem .85rem; }
	.eg-cat__name { font-size: 15px; }
	.eg-cat__arrow { display: none; }
}

@media (max-width: 359px) {
	.eg-cats { grid-template-columns: 1fr; }
}

/* Promotion */
.eg-promo { background: var(--eg-green); color: #e5efe9; }
.eg-promo__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); padding-block: clamp(3rem, 6vw, 5rem); }
.eg-site .eg-promo__title { color: var(--eg-white); font-size: clamp(1.9rem, 1.2rem + 2.4vw, 3rem); }
.eg-promo__content > p:not(.eg-eyebrow) { max-width: 52ch; margin: 1rem 0 0; }
.eg-promo__content > .eg-btn { margin-top: 1.75rem; }
.eg-site .eg-promo__media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; border-radius: var(--eg-radius); object-fit: cover; }

@media (max-width: 900px) {
	.eg-promo__inner { grid-template-columns: 1fr; }
}

/* Why choose us */
.eg-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--eg-gap); margin: 0; padding: 0; list-style: none; }
.eg-feature { margin: 0; padding: clamp(1.25rem, 2.2vw, 2rem); border: 1px solid var(--eg-line); border-radius: var(--eg-radius); background: var(--eg-white); }
.eg-feature__icon { display: grid; width: 60px; height: 60px; margin-bottom: 1.1rem; border-radius: var(--eg-radius); background: var(--eg-primary-tint); color: var(--eg-primary); place-items: center; }
.eg-feature__icon .eg-icon { width: 35px; height: 35px; }
.eg-site .eg-feature__title { font-size: 19px; line-height: 1.3; }
.eg-feature p { margin-top: .5rem; color: var(--eg-muted); font-size: 15px; }

@media (max-width: 1024px) {
	.eg-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	.eg-features { grid-template-columns: 1fr; }
	.eg-feature { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1rem; }
	.eg-feature__icon { grid-row: span 2; margin: 0; }
	.eg-feature p { grid-column: 2; }
}

/* Reviews */
.eg-reviews__widget { min-height: 180px; }
/* The widget's own stylesheet sets the grey card colour with !important. */
.eg-reviews__widget .ti-widget.ti-goog .ti-review-item > .ti-inner { background-color: var(--eg-white) !important; }
/* Never more than three reviews in view: on wide screens the widget would fit four or more. */
.eg-reviews__widget .ti-widget-container:is(.ti-col-5, .ti-col-6, .ti-col-7, .ti-col-8) .ti-review-item { flex: 0 0 33.333% !important; max-width: 33.333% !important; }

/* Blog */
.eg-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--eg-gap); margin: 0; padding: 0; list-style: none; }
.eg-post { display: flex; flex-direction: column; margin: 0; border: 1px solid var(--eg-line); border-radius: var(--eg-radius); background: var(--eg-white); overflow: hidden; }
.eg-post__media { display: block; aspect-ratio: 16 / 10; background: var(--eg-line); }
.eg-site .eg-post__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.eg-post__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 1.35rem 1.4rem 1rem; }
.eg-post__date { color: var(--eg-muted); font-size: 13px; }
.eg-site .eg-post__title { margin-top: .4rem; font-size: 19px; line-height: 1.3; }
.eg-site .eg-post__title a { color: inherit; text-decoration: none; }
.eg-site .eg-post__title a:hover { color: var(--eg-accent-strong); }
.eg-post__body > p { margin: .65rem 0 .5rem; color: var(--eg-muted); font-size: 15px; }
.eg-post__body > .eg-link-arrow { margin-top: auto; }

@media (max-width: 1024px) {
	.eg-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	.eg-posts { grid-template-columns: 1fr; }
}

/* Homepage sliders ([data-eg-slider]): a row of cards that scrolls sideways,
   one card at a time, by swipe or with the arrow buttons storefront.js adds.
   "always" is a slider at every width (blog); "tablet" only below 992px
   (trust bar, Why choose cards) and a grid above. Three cards in view on
   desktop, two on tablets, one and a peek of the next on phones. */
[data-eg-slider="always"] {
	--eg-slide: calc((100% - 2 * var(--eg-gap)) / 3);
	display: flex;
	gap: var(--eg-gap);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

[data-eg-slider="always"] > li { flex: 0 0 var(--eg-slide); scroll-snap-align: start; }
[data-eg-slider]::-webkit-scrollbar { display: none; }

.eg-slider-dots { display: flex; flex-wrap: wrap; justify-content: center; gap: .15rem; margin-top: 1.25rem; }
.eg-slider-dots[hidden] { display: none; }

/* Each dot is a 32px tap target around a small visible dot. */
.eg-slider-dots button {
	display: inline-grid;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
	place-items: center;
}

.eg-slider-dots button::before {
	width: 9px;
	height: 9px;
	border-radius: 999px;
	background: #c3d0ca;
	content: "";
	transition: width .25s ease, background-color .25s ease;
}

.eg-slider-dots button:hover::before { background: var(--eg-accent); }
.eg-slider-dots button[aria-current="true"]::before { width: 24px; background: var(--eg-accent); }

@media (max-width: 991px) {
	[data-eg-slider] {
		--eg-slide: calc((100% - var(--eg-gap)) / 2);
		display: flex;
		gap: var(--eg-gap);
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	[data-eg-slider] > li { flex: 0 0 var(--eg-slide); min-width: 0; scroll-snap-align: start; }

	/* Trust bar items become small cards so each slide reads on its own. */
	.eg-trust__list[data-eg-slider] { padding-block: 1rem; }
	.eg-trust__list[data-eg-slider] > .eg-trust__item { padding: 1rem 1.1rem; border: 1px solid var(--eg-line); border-radius: var(--eg-radius); }
	.eg-trust .eg-slider-dots { margin: 0 0 .75rem; }

	/* Feature cards keep their stacked layout inside a slide. */
	.eg-features[data-eg-slider] > .eg-feature { display: block; }
	.eg-features[data-eg-slider] > .eg-feature .eg-feature__icon { margin: 0 0 1.1rem; }
}

@media (max-width: 600px) {
	[data-eg-slider] { --eg-slide: 85%; }
}

/* Blog page */
.eg-main--blog .eg-section { min-height: 50vh; }
.eg-pagination { margin-top: 2.5rem; text-align: center; }
.eg-pagination ul { display: inline-flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.eg-pagination li { margin: 0; }
.eg-site .eg-pagination :is(a, span) { display: grid; min-width: 44px; min-height: 44px; padding: 0 .75rem; border: 1px solid var(--eg-line); border-radius: var(--eg-radius-sm); background: var(--eg-white); color: var(--eg-green); font-weight: 600; text-decoration: none; place-items: center; }
.eg-site .eg-pagination :is(a:hover, .current) { border-color: var(--eg-primary); background: var(--eg-primary); color: var(--eg-white); }

/* Page heading band (About, Contact) */
.eg-page-hero { padding-block: clamp(2.5rem, 6vw, 4.5rem); background: var(--eg-forest); color: #dce8e2; text-align: center; }
.eg-page-hero__inner { max-width: 820px; }
.eg-page-hero .eg-eyebrow { color: #ff9d75; }
.eg-site .eg-page-hero__title { margin: 0; color: var(--eg-white); font-size: clamp(2.25rem, 1.6rem + 2.6vw, 3.5rem); line-height: 1.05; }
.eg-page-hero__intro { max-width: 62ch; margin: 1.1rem auto 0; font-size: clamp(1rem, .95rem + .3vw, 1.15rem); line-height: 1.6; }

/* Contact page */
.eg-contact { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; gap: clamp(2rem, 5vw, 5rem); }
.eg-contact__list { display: grid; gap: 1rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.eg-contact__item { display: flex; align-items: flex-start; gap: 1.1rem; margin: 0; padding: 1.25rem 1.4rem; border: 1px solid var(--eg-line); border-radius: var(--eg-radius); background: var(--eg-white); }
.eg-contact__item::before { content: none; }
.eg-contact__item .eg-feature__icon { flex: none; margin: 0; }
.eg-site .eg-contact__label { margin: 0 0 .25rem; color: var(--eg-muted); font-family: var(--eg-font-body); font-size: 13px; font-weight: 600; letter-spacing: .06em; line-height: 1.4; text-transform: uppercase; }
.eg-contact__item address { margin: 0 0 .5rem; color: var(--eg-text); font-style: normal; font-weight: 600; line-height: 1.55; }
.eg-site .eg-contact__value { color: var(--eg-green); font-family: var(--eg-font-head); font-size: 1.25rem; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.eg-site .eg-contact__value:hover { color: var(--eg-accent-strong); }
.eg-contact__form { padding: clamp(1.5rem, 3vw, 2.5rem); border-radius: var(--eg-radius); background: var(--eg-mint); }
.eg-site .eg-contact__form-title { margin: 0; color: var(--eg-green); font-size: 1.6rem; line-height: 1.15; }
.eg-contact__form-intro { margin: .6rem 0 1.5rem; color: var(--eg-muted); }
.eg-contact__form .wpcf7-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.eg-contact__form .wpcf7-form > :not(.input-field) { grid-column: 1 / -1; }
.eg-contact__form .wpcf7-form .hidden-fields-container { display: none; }
.eg-contact__form .input-full { grid-column: 1 / -1; }
.eg-contact__form .input-field p { margin: 0; }
.eg-contact__form .input-field br { display: none; }
.eg-contact__form label { float: none; display: block; margin: 0 0 .35rem; color: var(--eg-text); font-family: var(--eg-font-body); font-size: 14px; font-weight: 600; }
.eg-contact__form .wpcf7-form-control-wrap { display: block; }
.eg-contact__form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) { display: block; width: 100%; min-height: 50px; padding: .7rem .95rem; border: 1px solid #b9c6c0; border-radius: var(--eg-radius-sm); background: var(--eg-white); color: var(--eg-text); font-family: var(--eg-font-body); font-size: 16px; box-shadow: none; }
.eg-contact__form textarea { height: 150px; resize: vertical; }
.eg-contact__form select { padding-right: 2.75rem; background: var(--eg-white) url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%2306463d%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27m6 9 6 6 6-6%27/%3E%3C/svg%3E") no-repeat right .9rem center / 18px; text-overflow: ellipsis; cursor: pointer; -webkit-appearance: none; appearance: none; }
.eg-contact__form :is(input, select, textarea):focus { border-color: var(--eg-green); outline: 2px solid var(--eg-green); outline-offset: 1px; }
.eg-contact__form .wpcf7-submit { display: inline-flex; align-items: center; justify-content: center; width: auto; min-height: 52px; padding: .6rem 2.25rem; border: 0; border-radius: var(--eg-radius-sm); background: var(--eg-accent-strong) linear-gradient(115deg, transparent 40%, rgb(255 255 255 / 26%) 50%, transparent 60%) no-repeat 160% 0 / 250% 100%; color: var(--eg-white); font-family: var(--eg-font-body); font-size: 16px; font-weight: 600; cursor: pointer; }
.eg-contact__form .wpcf7-submit:hover { background-color: var(--eg-accent-hover); }
.eg-contact__form .wpcf7-not-valid-tip { margin-top: .3rem; color: #b3261e; font-size: 13.5px; font-weight: 600; }
.eg-contact__form .wpcf7-response-output { margin: 0; padding: .8rem 1rem; border-width: 1px; border-radius: var(--eg-radius-sm); background: var(--eg-white); font-weight: 600; }
.eg-contact__form .wpcf7-response-output:empty { display: none; }

@media (max-width: 900px) {
	.eg-contact { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 560px) {
	.eg-contact__form .wpcf7-form { grid-template-columns: minmax(0, 1fr); }
	.eg-contact__form .wpcf7-submit { width: 100%; }
}

/* Contact band */
.eg-cta { background: var(--eg-green); color: #e5efe9; }
.eg-cta__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.75rem 3rem; padding-block: clamp(2.75rem, 5vw, 4.25rem); }
.eg-cta__content { flex: 1 1 420px; max-width: 760px; }
.eg-site .eg-cta__title { color: var(--eg-white); font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.25rem); }
.eg-cta__content p { margin: .75rem 0 0; }
.eg-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

@media (max-width: 480px) {
	.eg-cta__actions,
	.eg-cta__actions .eg-btn { width: 100%; }
}

/* 8. Page-builder pages ---------------------------------------------------
   Visual Composer rows keep their full-bleed backgrounds; the content inside
   every row that is not set to "stretch content" follows the shared container.
   (The builder prints its own fixed max-width with !important after wp_head.) */
body.eg-site .vcv-content .entry-content > .vce-row-container > .vce-row:not([data-vce-stretch-content="true"]) > .vce-row-content {
	flex: 0 1 auto;
	width: min(100%, var(--eg-container-w));
	max-width: var(--eg-container-max) !important;
	margin-inline: auto;
}

/* Product listings placed in an edge-to-edge row use the shared container too. */
.eg-site .vcv-content .woocommerce:has(> ul.products) {
	width: min(100%, var(--eg-container-w));
	max-width: var(--eg-container-max);
	margin-inline: auto;
}

/* Landing pages: the copy is centred by inline styles saved in the page builder,
   so !important is needed to left-align it without re-editing every block.
   Banner rows (those with a background) keep their own alignment. */
.eg-landing .vcv-content .vce-text-block-wrapper:not(.vce-row[class*="has-background"] *) :is(h1, h2, h3, h4, h5, h6, p, ul, ol) { text-align: left !important; }
.eg-landing .vcv-content .vce-text-block-wrapper > :is(h2, h3, h4):not(:first-child) { margin-top: 2.5rem; }
.eg-landing .vcv-content .entry-content > .vce-row-container:last-child > .vce-row:not([class*="has-background"]) { padding-bottom: clamp(3rem, 6vw, 5rem); }

.eg-site .vcv-content :where(h1, h2, h3, h4, h5, h6) { text-wrap: balance; }
.eg-site .vcv-content img { max-width: 100%; height: auto; }

/* 9. Product cards -------------------------------------------------------- */
.eg-site .woocommerce ul.products,
.eg-site.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--eg-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.eg-site .woocommerce ul.products::before,
.eg-site .woocommerce ul.products::after,
.eg-site.woocommerce ul.products::before,
.eg-site.woocommerce ul.products::after { content: none; }

.eg-site .woocommerce ul.products li.product,
.eg-site.woocommerce ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	float: none;
	width: auto !important;
	max-width: none !important;
	margin: 0;
	padding: 0;
	border: 1px solid var(--eg-line);
	border-radius: var(--eg-radius);
	background: var(--eg-white);
	text-align: left;
	overflow: hidden;
	transition: border-color .18s ease, box-shadow .18s ease;
}

.eg-site .woocommerce ul.products li.product::before { content: none; }
.eg-site ul.products li.product:hover { border-color: #b9cdc3; box-shadow: var(--eg-shadow); }

.eg-site ul.products li.product .eg-card__media { position: relative; display: block; aspect-ratio: 1 / 1; background: var(--eg-white); overflow: hidden; }

.eg-site ul.products li.product .eg-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: contain;
	transition: transform .35s ease;
}

.eg-site ul.products li.product:hover .eg-card__media img { transform: scale(1.03); }
.eg-site ul.products li.product.outofstock .eg-card__media img { opacity: .6; }

.eg-site .woocommerce ul.products li.product .onsale,
.eg-site.woocommerce ul.products li.product .onsale,
.eg-site .eg-card__badge {
	position: absolute;
	z-index: 2;
	top: .75rem;
	right: auto;
	left: .75rem;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: .3rem .65rem;
	border-radius: 999px;
	background: var(--eg-accent-strong) !important;
	color: var(--eg-white) !important;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .03em;
	line-height: 1.3;
	text-transform: uppercase;
}

.eg-site .eg-card__badge--stock { background: var(--eg-text) !important; }
.eg-site .onsale + img + .eg-card__badge--stock,
.eg-site .onsale ~ .eg-card__badge--stock { top: 2.75rem; }

.eg-card__body { display: flex; flex: 1; flex-direction: column; gap: .5rem; padding: 1rem 1.1rem .25rem; border-top: 1px solid var(--eg-line); }

.eg-site ul.products li.product .woocommerce-loop-product__title {
	display: -webkit-box;
	margin: 0;
	padding: 0;
	color: var(--eg-text);
	font-family: var(--eg-font-body);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.4 !important;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.eg-site ul.products li.product .woocommerce-loop-product__title a { border: 0; color: inherit; text-decoration: none; }
.eg-site ul.products li.product .woocommerce-loop-product__title a:hover { color: var(--eg-primary); text-decoration: underline; }
/* The whole card is a click target for pointer users; the title link stays the single keyboard target. */
.eg-site ul.products li.product .woocommerce-loop-product__title a::after { position: absolute; z-index: 1; inset: 0 0 auto; aspect-ratio: 1 / 1; content: ""; }
.eg-site ul.products li.product .star-rating { margin: 0; color: var(--eg-accent); font-size: 13px; }

.eg-site ul.products li.product .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .15rem .5rem;
	margin: auto 0 0;
	padding: .35rem 0 0;
	border: 0;
	color: var(--eg-green) !important;
	font-family: var(--eg-font-head);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.2;
}

.eg-site ul.products li.product .price del { order: 2; color: var(--eg-muted); font-family: var(--eg-font-body); font-size: 14px; font-weight: 400; opacity: 1; }
.eg-site ul.products li.product .price ins { color: var(--eg-accent-strong); font-weight: 600; text-decoration: none; }
.eg-site ul.products li.product .price .woocommerce-price-suffix { color: var(--eg-muted); font-family: var(--eg-font-body); font-size: 12px; font-weight: 400; }
.eg-card__actions { display: flex; flex-direction: column; gap: .4rem; padding: .85rem 1.1rem 1.1rem; }

.eg-site .woocommerce ul.products li.product .button,
.eg-site.woocommerce ul.products li.product .button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: .5rem .75rem;
	border: 0;
	border-radius: var(--eg-radius-sm);
	background-color: var(--eg-primary) !important;
	color: var(--eg-white) !important;
	font-family: var(--eg-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	white-space: normal;
}

.eg-site .woocommerce ul.products li.product .button:hover,
.eg-site.woocommerce ul.products li.product .button:hover { background-color: var(--eg-primary-hover) !important; color: var(--eg-white) !important; }
.eg-site ul.products li.product.outofstock .button { background-color: var(--eg-white) !important; box-shadow: inset 0 0 0 1px var(--eg-green); color: var(--eg-green) !important; }
.eg-site ul.products li.product .button.loading { opacity: .7; }
.eg-site ul.products li.product .added_to_cart { display: block; min-height: 24px; padding: 0; color: var(--eg-green); font-size: 13px; font-weight: 600; text-align: center; }

@media (max-width: 1180px) {
	.eg-site .woocommerce ul.products,
	.eg-site.woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.eg-site .eg-products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
	.eg-site .woocommerce ul.products,
	.eg-site.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.eg-site .woocommerce ul.products,
	.eg-site.woocommerce ul.products { gap: .75rem; }
	.eg-card__body { padding: .75rem .75rem .15rem; }
	.eg-card__actions { padding: .65rem .75rem .75rem; }
	.eg-site ul.products li.product .woocommerce-loop-product__title { font-size: 14px; }
	.eg-site ul.products li.product .price { font-size: 17px; }
}

@media (max-width: 359px) {
	.eg-site .woocommerce ul.products,
	.eg-site.woocommerce ul.products,
	.eg-site .eg-products ul.products { grid-template-columns: 1fr; }
}

/* 10. Shop archives -------------------------------------------------------- */
.eg-shop { padding-block: clamp(1.25rem, 3vw, 2.25rem) var(--eg-section-y); }
.eg-site .eg-shop a { color: var(--eg-primary); }

.eg-site .eg-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .15rem .5rem;
	margin: 0 0 1.5rem;
	padding: 0;
	color: var(--eg-green); /* the current page; links and separators are lighter */
	font-size: 13.5px;
	line-height: 1.5;
	/* No underline: the page builder draws link underlines from these properties. */
	--p-link-color: var(--eg-muted);
	--p-link-hover-color: var(--eg-green);
	--p-link-border-color: transparent;
	--p-link-border-hover-color: transparent;
}

.eg-site .eg-breadcrumb a { border: 0; color: var(--eg-muted); text-decoration: none; }
.eg-site .eg-breadcrumb a:hover { color: var(--eg-primary); }
.eg-breadcrumb__sep { color: #a9b8b2; }

.eg-site .eg-shop .woocommerce-products-header { margin-bottom: 1.75rem; }
.eg-site .eg-shop .page-title,
.eg-site .eg-shop .woocommerce-products-header__title { margin: 0; font-size: clamp(1.9rem, 1.3rem + 2vw, 2.75rem); }
.eg-site .eg-shop .term-description { max-width: 80ch; margin-top: 1rem; color: var(--eg-muted); }
.eg-site .eg-shop .term-description p + p { margin-top: .85rem; }
.eg-site .eg-shop .term-description :where(h2, h3) { margin: 1.5rem 0 .5rem; font-size: 1.25rem; }
.eg-site .eg-shop .woocommerce-notices-wrapper:not(:empty) { margin-bottom: 1.5rem; }

.eg-site .eg-shop .woocommerce-result-count { float: none; display: inline-block; margin: 0 0 1.25rem; color: var(--eg-muted); font-size: 14px; line-height: 44px; }
.eg-site .eg-shop .woocommerce-ordering { float: right; margin: 0 0 1.25rem; }
.eg-site .eg-shop ul.products { clear: both; }

.eg-site .eg-shop select,
.eg-site .eg-shop .woocommerce-ordering select {
	width: auto;
	max-width: 100%;
	height: 44px;
	padding: 0 2.5rem 0 .9rem;
	border: 1px solid #b9c6c0;
	border-radius: var(--eg-radius-sm);
	background: var(--eg-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2324332f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .8rem center;
	color: var(--eg-text);
	font-family: var(--eg-font-body);
	font-size: 14px;
	appearance: none;
}

.eg-site .eg-shop nav.woocommerce-pagination { margin-top: 2.5rem; text-align: center; }
.eg-site .eg-shop nav.woocommerce-pagination ul { display: inline-flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; border: 0; }
.eg-site .eg-shop nav.woocommerce-pagination ul li { margin: 0; border: 0; overflow: visible; }
.eg-site .eg-shop nav.woocommerce-pagination ul li::before { content: none; }
.eg-site .eg-shop nav.woocommerce-pagination ul li :is(a, span) { display: grid; min-width: 44px; min-height: 44px; padding: 0 .5rem; border: 1px solid var(--eg-line); border-radius: var(--eg-radius-sm); background: var(--eg-white); color: var(--eg-green); font-weight: 600; text-decoration: none; place-items: center; }
.eg-site .eg-shop nav.woocommerce-pagination ul li span.current,
.eg-site .eg-shop nav.woocommerce-pagination ul li a:hover { border-color: var(--eg-primary); background: var(--eg-primary); color: var(--eg-white); }
.eg-site .eg-shop .woocommerce-no-products-found { margin-top: 1rem; }

/* Notices */
.eg-site .woocommerce-message,
.eg-site .woocommerce-info,
.eg-site .woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem 1rem;
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	border: 1px solid var(--eg-line);
	border-left: 4px solid var(--eg-green);
	border-radius: var(--eg-radius-sm);
	background: var(--eg-mint);
	color: var(--eg-text);
	font-size: 15px;
	list-style: none;
}

.eg-site .woocommerce-message::before,
.eg-site .woocommerce-info::before,
.eg-site .woocommerce-error::before { position: static; flex: none; color: var(--eg-green); }
.eg-site .woocommerce-message::after,
.eg-site .woocommerce-info::after,
.eg-site .woocommerce-error::after { content: none; }
.eg-site .woocommerce-error { border-left-color: #b3261e; background: #fdf1f0; }
.eg-site .woocommerce-error::before { color: #b3261e; }
.eg-site .woocommerce-error li { margin: 0; }
.eg-site .woocommerce-error li::before { content: none; }
.eg-site :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button { float: none; order: 2; margin-left: auto; }
.eg-site :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) { color: var(--eg-primary); font-weight: 600; }

/* Generic WooCommerce buttons inside the shop wrapper */
.eg-site .eg-shop :is(a.button, button.button, input.button, .woocommerce-Button),
.eg-site :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-height: 44px;
	padding: .55rem 1.25rem;
	border: 0;
	border-radius: var(--eg-radius-sm);
	background-color: var(--eg-primary);
	color: var(--eg-white);
	font-family: var(--eg-font-body);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
}

.eg-site .eg-shop :is(a.button, button.button, input.button, .woocommerce-Button):hover,
.eg-site :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button:hover { background-color: var(--eg-primary-hover); color: var(--eg-white); }

@media (max-width: 600px) {
	.eg-site .eg-shop .woocommerce-result-count { display: block; margin-bottom: .25rem; line-height: 1.5; }
	.eg-site .eg-shop .woocommerce-ordering { float: none; }
	.eg-site .eg-shop .woocommerce-ordering select { width: 100%; }
}

/* 11. Single product ------------------------------------------------------- */
.eg-site.single-product.woocommerce .eg-shop div.product {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(0, 1fr);
	align-items: start;
	gap: clamp(1.5rem, 4vw, 4rem);
}

.eg-site.single-product.woocommerce .eg-shop div.product > * { min-width: 0; }
.eg-site.single-product.woocommerce .eg-shop div.product > :is(.eg-trust, .woocommerce-tabs, .related, .up-sells, .upsells) { grid-column: 1 / -1; }
/* The trust strip already sits inside the shop container. */
.eg-trust--product > .eg-container { width: 100%; max-width: none; }

.eg-site.single-product.woocommerce .eg-shop div.product div.images,
.eg-site.single-product.woocommerce .eg-shop div.product div.summary { float: none; width: 100%; margin: 0; }

.eg-site.single-product.woocommerce .eg-shop div.product > .onsale {
	position: absolute;
	z-index: 5;
	top: 1rem;
	right: auto;
	left: 1rem;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: .35rem .8rem;
	border-radius: 999px;
	background: var(--eg-accent-strong) !important;
	color: var(--eg-white);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	text-transform: uppercase;
}

.eg-site.single-product.woocommerce .woocommerce-product-gallery .flex-viewport,
.eg-site.single-product.woocommerce .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:only-child { border: 1px solid var(--eg-line); border-radius: var(--eg-radius); background: var(--eg-white); overflow: hidden; }
.eg-site.single-product.woocommerce .woocommerce-product-gallery__wrapper { margin: 0; }
/* One fixed, medium-height frame for every product photo; the whole image stays visible inside it. */
.eg-site.single-product.woocommerce .woocommerce-product-gallery__image img { display: block; width: 100%; height: clamp(320px, 37vw, 540px); object-fit: contain; }
.eg-site.single-product.woocommerce .woocommerce-product-gallery__trigger { top: 1rem; right: 1rem; }

.eg-site.single-product.woocommerce .woocommerce-product-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
	gap: .6rem;
	margin: .75rem 0 0;
	padding: 0;
	list-style: none;
}

.eg-site.single-product.woocommerce .woocommerce-product-gallery .flex-control-thumbs li { float: none; width: auto; margin: 0; }
.eg-site.single-product.woocommerce .woocommerce-product-gallery .flex-control-thumbs li::before { content: none; }
.eg-site.single-product.woocommerce .woocommerce-product-gallery .flex-control-thumbs img { display: block; width: 100%; aspect-ratio: 1 / 1; border: 1px solid var(--eg-line); border-radius: var(--eg-radius-sm); background: var(--eg-white); object-fit: contain; opacity: .7; cursor: pointer; transition: opacity .18s ease, border-color .18s ease; }
.eg-site.single-product.woocommerce .woocommerce-product-gallery .flex-control-thumbs img:is(.flex-active, :hover) { border-color: var(--eg-accent); opacity: 1; }

.eg-site.single-product.woocommerce .summary .product_title { margin: 0; color: var(--eg-green); font-size: clamp(1.5rem, 1.15rem + 1.3vw, 2.1rem); line-height: 1.15; }
.eg-site.single-product.woocommerce .summary .woocommerce-product-rating { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .75rem 0 0; font-size: 14px; }
.eg-site.single-product.woocommerce .summary .star-rating { float: none; margin: 0; color: var(--eg-accent); }
.eg-site.single-product.woocommerce .summary .woocommerce-review-link { color: var(--eg-muted); }

.eg-site.single-product.woocommerce .summary p.price,
.eg-site.single-product.woocommerce .summary span.price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .25rem .75rem;
	margin: 1rem 0 0;
	padding: .85rem 1.1rem;
	border-radius: var(--eg-radius-sm);
	background: var(--eg-mint);
	color: var(--eg-green);
	font-family: var(--eg-font-head);
	font-size: clamp(1.6rem, 1.3rem + 1vw, 2rem);
	font-weight: 600;
	line-height: 1.2;
}

.eg-site.single-product.woocommerce .summary .price del { order: 2; color: var(--eg-muted); font-family: var(--eg-font-body); font-size: 1rem; font-weight: 400; opacity: 1; }
.eg-site.single-product.woocommerce .summary .price ins { color: var(--eg-accent-strong); text-decoration: none; }
.eg-site.single-product.woocommerce .summary .woocommerce-price-suffix { color: var(--eg-muted); font-family: var(--eg-font-body); font-size: 13px; font-weight: 400; }
.eg-site.single-product.woocommerce .summary .woocommerce-product-details__short-description { margin-top: 1.25rem; color: var(--eg-muted); }
.eg-site.single-product.woocommerce .summary .woocommerce-product-details__short-description :is(p, ul, ol) + :is(p, ul, ol) { margin-top: 1.5rem; }
.eg-site.single-product.woocommerce .summary .woocommerce-product-details__short-description strong { color: #111; }
/* Bullet lists in the summary and description use a tick. */
.eg-site.single-product.woocommerce :is(.woocommerce-product-details__short-description, .woocommerce-Tabs-panel--description) ul { display: grid; gap: .5rem; padding-left: 0; list-style: none; }
.eg-site.single-product.woocommerce :is(.woocommerce-product-details__short-description, .woocommerce-Tabs-panel--description) ul > li { position: relative; margin: 0; padding-left: 1.9rem; }
.eg-site.single-product.woocommerce :is(.woocommerce-product-details__short-description, .woocommerce-Tabs-panel--description) ul > li::before {
	position: absolute;
	top: .3em;
	left: 0;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: var(--eg-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 70% no-repeat;
	content: "";
}

.eg-site.single-product.woocommerce .summary .stock { display: inline-flex; align-items: center; gap: .45rem; margin: 1.25rem 0 0; font-size: 14px; font-weight: 600; }
.eg-site.single-product.woocommerce .summary .stock::before { width: 8px; height: 8px; border-radius: 50%; background: currentcolor; content: ""; }
.eg-site.single-product.woocommerce .summary .stock.in-stock { color: #1d7a46; }
.eg-site.single-product.woocommerce .summary .stock.out-of-stock { color: #b3261e; }

.eg-site.single-product.woocommerce .summary form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; margin: 1.5rem 0 0; padding: 1.5rem 0 0; border-top: 1px solid var(--eg-line); }
.eg-site.single-product.woocommerce .summary form.cart::before,
.eg-site.single-product.woocommerce .summary form.cart::after { content: none; }
.eg-site.single-product.woocommerce .summary form.variations_form { display: block; }
.eg-site.single-product.woocommerce .summary .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; }
/* Quantity: one bordered box holding minus, the number and plus. */
.eg-site.single-product.woocommerce .summary form.cart .quantity {
	display: inline-flex;
	float: none;
	align-items: stretch;
	height: 52px;
	margin: 0;
	border: 1px solid #b9c6c0;
	border-radius: var(--eg-radius-sm);
	background: var(--eg-white);
	overflow: hidden;
	transition: border-color .18s ease, box-shadow .18s ease;
}

.eg-site.single-product.woocommerce .summary form.cart .quantity:focus-within { border-color: var(--eg-green); box-shadow: 0 0 0 3px rgb(6 70 61 / 14%); }
.eg-site.single-product.woocommerce .summary form.cart .quantity:has(input[type="hidden"]) { display: none; }

.eg-qty-btn {
	display: inline-grid;
	flex: none;
	width: 46px;
	padding: 0;
	border: 0;
	background: var(--eg-mint);
	color: var(--eg-green);
	cursor: pointer;
	place-items: center;
	transition: background-color .18s ease, color .18s ease;
}

.eg-qty-btn .eg-icon { width: 18px; height: 18px; stroke-width: 2.4; }
.eg-qty-btn:hover:not(:disabled) { background: var(--eg-primary); color: var(--eg-white); }
.eg-qty-btn:focus-visible { outline: 2px solid var(--eg-green); outline-offset: -2px; }
.eg-qty-btn:disabled { color: #9fb1a9; cursor: not-allowed; }
.eg-site.single-product.woocommerce .summary form.cart .quantity .qty::-webkit-inner-spin-button,
.eg-site.single-product.woocommerce .summary form.cart .quantity .qty::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.eg-site.single-product.woocommerce .summary form.cart .quantity .qty:focus { outline: 0; }

.eg-site.single-product.woocommerce .summary form.cart .quantity .qty {
	width: 56px;
	height: 100%;
	margin: 0;
	padding: 0 .25rem;
	border: 0;
	border-radius: 0;
	background: var(--eg-white);
	-moz-appearance: textfield;
	appearance: textfield;
	color: var(--eg-text);
	font-family: var(--eg-font-body);
	font-size: 16px;
	font-weight: 600;
	text-align: center;
}

.eg-site.single-product.woocommerce .summary form.cart .button {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	float: none;
	min-width: 170px;
	min-height: 52px;
	margin: 0;
	padding: .6rem 2rem;
	border: 0;
	border-radius: var(--eg-radius-sm);
	background-color: var(--eg-accent-strong) !important;
	color: var(--eg-white) !important;
	font-family: var(--eg-font-body);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	opacity: 1;
}

.eg-site.single-product.woocommerce .summary form.cart .button:hover { background-color: var(--eg-accent-hover) !important; color: var(--eg-white) !important; }
.eg-site.single-product.woocommerce .summary form.cart .button.eg-buy-now { background-color: var(--eg-green) !important; }
.eg-site.single-product.woocommerce .summary form.cart .button.eg-buy-now:hover { background-color: var(--eg-forest) !important; }
.eg-site.single-product.woocommerce .summary form.cart .button:is(.disabled, :disabled) { background-color: #8b9a94 !important; cursor: not-allowed; }
.eg-site.single-product.woocommerce .summary form.cart .woocommerce-variation-add-to-cart-disabled .eg-buy-now { background-color: #8b9a94 !important; cursor: not-allowed; pointer-events: none; }

.eg-site.single-product.woocommerce .summary table.variations { width: 100%; margin: 0 0 1rem; border: 0; border-collapse: collapse; }
.eg-site.single-product.woocommerce .summary table.variations :is(th, td) { display: block; padding: 0; border: 0; background: none; text-align: left; line-height: 1.4; }
.eg-site.single-product.woocommerce .summary table.variations th.label { margin-bottom: .4rem; }
.eg-site.single-product.woocommerce .summary table.variations label { float: none; margin: 0; color: var(--eg-text); font-family: var(--eg-font-body); font-size: 14px; font-weight: 600; }
.eg-site.single-product.woocommerce .summary table.variations select { width: 100%; min-width: 0; height: 52px; margin: 0; font-size: 15px; }
.eg-site.single-product.woocommerce .summary .reset_variations { display: inline-block; margin-top: .5rem; color: var(--eg-muted); font-size: 13px; }
.eg-site.single-product.woocommerce .summary .woocommerce-variation { margin-bottom: 1rem; }
.eg-site.single-product.woocommerce .summary .woocommerce-variation-price .price { margin: 0; font-size: 1.5rem; }
.eg-site.single-product.woocommerce .summary .woocommerce-variation-availability .stock { margin-top: .5rem; }
.eg-site.single-product.woocommerce .summary :is(.ppc-button-wrapper, .wc-stripe-product-checkout-container, #wc-stripe-express-checkout-element) { flex: 1 0 100%; max-width: 420px; margin-top: .25rem; }
/* PayPal's "Pay in 3" line: its own row with room above and below. */
.eg-site.single-product.woocommerce .summary .ppcp-messages { flex: 1 0 100%; margin: .75rem 0 .5rem; }


.eg-site.single-product.woocommerce .summary .product_meta { display: grid; gap: .3rem; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--eg-line); color: var(--eg-muted); font-size: 13.5px; }
.eg-site.single-product.woocommerce .summary .product_meta a { color: var(--eg-primary); }

.eg-site.single-product.woocommerce .woocommerce-tabs { margin: clamp(1.5rem, 4vw, 3rem) 0 0; }
/* Tabs: a row of pills, the open one filled. */
.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs { display: inline-flex; flex-wrap: wrap; gap: .35rem; max-width: 100%; margin: 0 0 1.75rem; padding: .35rem; border: 0; border-radius: 28px; background: #fff0ea; list-style: none; overflow: visible; }
.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs::before,
.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs::after,
.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs li::before,
.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs li::after { content: none; }
.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; border-radius: 999px; background: none; }
.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs li.active { background: var(--eg-primary); }
.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs li a { display: flex; align-items: center; min-height: 46px; padding: 0 1.4rem; border-bottom: 0; color: var(--eg-muted); font-family: var(--eg-font-head); font-size: 16px; font-weight: 600; letter-spacing: 0; text-decoration: none; white-space: nowrap; }
.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs li a:hover { color: var(--eg-primary); }
.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs li.active a,
.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs li.active a:hover { color: var(--eg-white); }
.eg-site.single-product.woocommerce .woocommerce-tabs .panel { max-width: 100%; margin: 0; padding: 0; color: var(--eg-text); }
.eg-site.single-product.woocommerce .woocommerce-tabs .panel > h2:first-child { margin-bottom: 1rem; font-size: 1.5rem; }
.eg-site.single-product.woocommerce .woocommerce-tabs .panel :is(p, ul, ol, table) + :is(p, ul, ol, table, h2, h3, h4) { margin-top: 1rem; }
.eg-site.single-product.woocommerce .woocommerce-tabs .panel :is(h2, h3, h4):not(:first-child) { margin-top: 1.75rem; }
.eg-site.single-product.woocommerce .woocommerce-tabs .panel :is(h3, h4) { font-size: 1.15rem; }
.eg-site.single-product.woocommerce .woocommerce-tabs .panel :is(ul, ol) { padding-left: 1.3rem; }

.eg-site.single-product.woocommerce table.shop_attributes { width: 100%; margin: 0; border: 1px solid var(--eg-line); border-radius: var(--eg-radius-sm); border-collapse: separate; border-spacing: 0; overflow: hidden; }
.eg-site.single-product.woocommerce table.shop_attributes :is(th, td) { padding: .8rem 1rem; border: 0; border-bottom: 1px solid var(--eg-line); background: none; font-style: normal; text-align: left; vertical-align: top; }
.eg-site.single-product.woocommerce table.shop_attributes tr:last-child :is(th, td) { border-bottom: 0; }
.eg-site.single-product.woocommerce table.shop_attributes th { width: 34%; background: var(--eg-mint); color: var(--eg-green); font-weight: 600; }
.eg-site.single-product.woocommerce table.shop_attributes td p { margin: 0; padding: 0; }

.eg-site.single-product.woocommerce :is(.related, .up-sells) { margin-top: clamp(2rem, 5vw, 4rem); padding-top: clamp(2rem, 5vw, 3.5rem); border-top: 1px solid var(--eg-line); }
.eg-site.single-product.woocommerce :is(.related, .up-sells) > h2 { margin-bottom: 1.75rem; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); }

.eg-site.single-product.woocommerce #reviews #comments > h2 { margin-bottom: 1rem; font-size: 1.5rem; }
.eg-site.single-product.woocommerce #reviews .comment-form label { float: none; display: block; margin: 0 0 .35rem; font-weight: 600; }
.eg-site.single-product.woocommerce #reviews .comment-form :is(input[type="text"], input[type="email"], textarea) { width: 100%; padding: .7rem .9rem; border: 1px solid #b9c6c0; border-radius: var(--eg-radius-sm); }

@media (max-width: 900px) {
	.eg-site.single-product.woocommerce .eg-shop div.product { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 600px) {
	/* Tabs stay on one row and scroll sideways if they do not fit. */
	.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs { display: flex; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
	.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs li { flex: none; }
	.eg-site.single-product.woocommerce .woocommerce-tabs ul.tabs li a { min-height: 44px; padding: 0 1rem; font-size: 14.5px; }
}

@media (max-width: 480px) {
	.eg-site.single-product.woocommerce .summary form.cart .quantity .qty { width: 48px; }
	.eg-qty-btn { width: 42px; }
	.eg-site.single-product.woocommerce .summary form.cart .button { flex: 1 1 140px; min-width: 0; padding-inline: 1rem; }
	.eg-site.single-product.woocommerce .summary form.cart .button.eg-buy-now { flex-basis: 100%; }
	.eg-site.single-product.woocommerce table.shop_attributes :is(th, td) { display: block; width: auto; }
	.eg-site.single-product.woocommerce table.shop_attributes th { border-bottom: 0; padding-bottom: .3rem; }
	.eg-site.single-product.woocommerce table.shop_attributes td { padding-top: .5rem; }
}

/* 12. Cart, checkout, account ----------------------------------------------
   The page builder's site-wide form rules (full-width inputs, floated labels)
   are meant for its contact form; these keep shop controls usable. */
.eg-site :is(.eg-shop, .woocommerce-account .woocommerce) input:is([type="checkbox"], [type="radio"]) { width: auto; padding: 0; }
.eg-site :is(.eg-shop, .woocommerce-account .woocommerce) label { float: none; margin-top: 0; font-family: var(--eg-font-body); }

.eg-site .woocommerce-account .woocommerce,
.eg-site.woocommerce-account .woocommerce { color: var(--eg-text); }
.eg-site.woocommerce-account .woocommerce a { color: var(--eg-primary); }
.eg-site.woocommerce-account .woocommerce :is(h2, h3) { margin: 0 0 1rem; color: var(--eg-green); font-family: var(--eg-font-head); font-size: 1.5rem; font-weight: 600; }
.eg-site.woocommerce-account .woocommerce form :is(.form-row, p) label { display: block; margin-bottom: .35rem; font-size: 14px; font-weight: 600; }
.eg-site.woocommerce-account .woocommerce form .input-text { min-height: 48px; padding: .6rem .9rem; border: 1px solid #b9c6c0; border-radius: var(--eg-radius-sm); }
.eg-site.woocommerce-account .woocommerce form.login,
.eg-site.woocommerce-account .woocommerce form.register { margin: 0; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--eg-line); border-radius: var(--eg-radius); }
.eg-site.woocommerce-account .woocommerce .woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: .5rem; }

.eg-site.woocommerce-account .woocommerce :is(button.button, a.button, .woocommerce-Button) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: .6rem 1.5rem;
	border: 0;
	border-radius: var(--eg-radius-sm);
	background-color: var(--eg-primary);
	color: var(--eg-white);
	font-family: var(--eg-font-body);
	font-size: 15px;
	font-weight: 600;
}

.eg-site.woocommerce-account .woocommerce :is(button.button, a.button, .woocommerce-Button):hover { background-color: var(--eg-primary-hover); color: var(--eg-white); }
.eg-site.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; border: 1px solid var(--eg-line); border-radius: var(--eg-radius); list-style: none; overflow: hidden; }
.eg-site.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; border-bottom: 1px solid var(--eg-line); }
.eg-site.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.eg-site.woocommerce-account .woocommerce-MyAccount-navigation li::before { content: none; }
.eg-site.woocommerce-account .woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 48px; padding: 0 1rem; font-weight: 600; text-decoration: none; }
.eg-site.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.eg-site.woocommerce-account .woocommerce-MyAccount-navigation a:hover { background: var(--eg-mint); }

/* The basket and checkout draw themselves after the page loads; holding their
   space keeps the footer from jumping up and back down while they do. */
.eg-site.woocommerce-cart .wp-block-woocommerce-cart,
.eg-site.woocommerce-checkout .wp-block-woocommerce-checkout { min-height: 80vh; }

/* The cart block's cross-sell tiles add their gutter outside a 100% width. */
.eg-site .wp-block-woocommerce-cart-cross-sells-block .cross-sells-product { box-sizing: border-box; }

/* Checkout: the site's checkout skin resets option padding and select height,
   which left the radio buttons on top of their labels and the country label on
   top of its value. Restore the space each control needs. */
.eg-site .wc-block-checkout .wc-block-components-radio-control__option { padding-left: 52px; }

/* Payment options: one full-width row per method (radio, name, logo), the
   chosen one outlined. The builder's global "label" rule floats labels and adds
   a top margin, and the checkout skin boxes every radio label, so both are
   reset here for the payment rows. */
.eg-site .wc-block-checkout__payment-method .wc-block-components-radio-control { display: grid; gap: .75rem; }
.eg-site .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option {
	margin: 0;
	padding: 0;
	border: 1px solid #d9e0dc;
	border-radius: var(--eg-radius-sm);
	background: var(--eg-white);
	box-shadow: none;
}
.eg-site .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	border-color: var(--eg-primary);
	background: var(--eg-mint);
	box-shadow: inset 0 0 0 1px var(--eg-primary);
}
.eg-site .wc-block-checkout__payment-method .wc-block-components-radio-control__option {
	float: none;
	display: flex;
	align-items: center;
	min-height: 56px;
	margin: 0;
	padding: .75rem 1rem .75rem 3.25rem;
	border: 0;
	border-radius: 0;
	background: transparent;
	font-weight: 600;
}
.eg-site .wc-block-checkout__payment-method .wc-block-components-radio-control__input { top: 50%; left: 1rem; width: 20px; min-height: 0; padding: 0; transform: translateY(-50%); }
.eg-site .wc-block-checkout__payment-method .wc-block-components-radio-control__label-group { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; }
.eg-site .wc-block-checkout__payment-method .wc-block-components-payment-method-label { display: inline-flex; align-items: center; gap: .6rem; }
.eg-site .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content { padding: 0 1rem 1rem 3.25rem; }
/* The skin hides payment descriptions; collapse the box when nothing else (a card form) is in it. */
.eg-site .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content:not(:has(.wcstripe-payment-element)) { display: none; }

/* Shipping options and the billing checkbox: the same floated-label reset, so
   each sits in its own full-width row and its box keeps its height. */
.eg-site .wc-block-checkout .wc-block-components-shipping-rates-control .wc-block-components-radio-control__option { float: none; display: flex; align-items: center; min-height: 56px; margin: 0; }
.eg-site .wc-block-checkout .wc-block-components-checkbox { display: flow-root; margin-top: 1rem; }
.eg-site .wc-block-checkout .wc-block-components-checkbox label { float: none; display: flex; align-items: center; gap: .6rem; margin: 0; }
.eg-site .wc-block-checkout .wc-block-components-shipping-rates-control .wc-block-components-radio-control__option-checked { border-color: var(--eg-primary); background: var(--eg-mint); box-shadow: inset 0 0 0 1px var(--eg-green); }
.eg-site .wc-block-checkout .wc-block-components-checkout-step__content > hr { clear: both; margin: 1rem 0 0; border: 0; border-top: 1px solid #e3e8e5; }

/* PayPal's "Pay in 3" line under the basket and checkout totals. */
.eg-site :is(.wc-block-checkout__sidebar, .wc-block-cart__sidebar) .ppcp-messages { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #e3e8e5; }

.eg-site .wc-block-checkout .wc-blocks-components-select__label {
	position: static;
	display: block;
	max-width: none;
	margin: 0 0 4px;
	color: #666;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	transform: none;
}

/* WooCommerce's toast notices are fixed to the viewport with no width limit, so
   a long notice used to widen the page on phones. Anchor them to both edges. */
@media (max-width: 782px) {
	.eg-site .wc-block-components-notices__snackbar { right: 0; left: 0; width: auto; max-width: 100%; }
}

/* Side cart: the installed plugin stays the source of cart state. */
.eg-site .xoo-wsc-container {
	/* Same link variables as the header and footer (see section 5). */
	--p-link-color: var(--eg-green);
	--p-link-hover-color: var(--eg-green);
	--p-link-border-color: transparent;
	--p-link-border-hover-color: transparent;
	color: var(--eg-text);
	font-family: var(--eg-font-body);
}
.eg-site .xoo-wsc-container :where(*, *::before, *::after) { box-sizing: border-box; }
.eg-site .xoo-wsc-container a { border: 0; color: var(--eg-primary); text-decoration: none; }

.eg-site .xoo-wsc-header { padding: 1rem 1.25rem; border-bottom: 1px solid var(--eg-line); background: var(--eg-white); }
.eg-site .xoo-wsch-top { display: flex; align-items: center; justify-content: space-between; }
.eg-site .xoo-wsch-text { color: var(--eg-green); font-family: var(--eg-font-head); font-size: 20px; font-weight: 600; }
.eg-site .xoo-wsch-basket { color: var(--eg-green); }
.eg-site .xoo-wsch-items-count,
.eg-site .xoo-wsc-items-count { background: var(--eg-accent-strong); color: var(--eg-white); font-weight: 600; }
.eg-site .xoo-wsch-close { display: grid; width: 44px; height: 44px; margin-right: -.6rem; border-radius: var(--eg-radius-sm); color: var(--eg-green); cursor: pointer; place-items: center; }
.eg-site .xoo-wsch-close:hover { background: var(--eg-mint); }

.eg-site .xoo-wsc-body { background: var(--eg-white); }
.eg-site .xoo-wsc-products.xoo-wsc-pattern-row { padding: 0 1.25rem; }

.eg-site .xoo-wsc-pattern-row .xoo-wsc-product {
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr);
	align-items: start;
	gap: 1rem;
	margin: 0;
	padding: 1.1rem 0;
	border: 0;
	border-bottom: 1px solid var(--eg-line);
	border-radius: 0;
	background: none;
	box-shadow: none;
}

.eg-site .xoo-wsc-pattern-row .xoo-wsc-img-col { width: auto; max-width: none; padding: 0; }
.eg-site .xoo-wsc-pattern-row .xoo-wsc-img-col a { display: block; }
.eg-site .xoo-wsc-pattern-row .xoo-wsc-img-col img { display: block; width: 84px; height: 84px; border: 1px solid var(--eg-line); border-radius: var(--eg-radius-sm); background: var(--eg-white); object-fit: contain; }
.eg-site .xoo-wsc-pattern-row .xoo-wsc-sum-col { width: auto; max-width: none; padding: 0; }
.eg-site .xoo-wsc-pattern-row .xoo-wsc-sm-info { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; }
.eg-site .xoo-wsc-pattern-row .xoo-wsc-sm-left { display: grid; gap: .45rem; min-width: 0; padding: 0; }

.eg-site .xoo-wsc-pattern-row .xoo-wsc-pname,
.eg-site .xoo-wsc-pattern-row .xoo-wsc-pname a {
	display: -webkit-box;
	color: var(--eg-text);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.eg-site .xoo-wsc-pattern-row .xoo-wsc-pname a:hover { color: var(--eg-green); text-decoration: underline; }
.eg-site .xoo-wsc-pattern-row .xoo-wsc-priceBox,
.eg-site .xoo-wsc-pattern-row .xoo-wsc-pprice,
.eg-site .xoo-wsc-pattern-row .xoo-wsc-pprice .amount { color: var(--eg-muted); font-size: 13px; font-weight: 400; }
.eg-site .xoo-wsc-pattern-row .xoo-wsc-sm-right { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: .5rem; padding: 0; }
.eg-site .xoo-wsc-pattern-row .xoo-wsc-smr-ptotal,
.eg-site .xoo-wsc-pattern-row .xoo-wsc-smr-ptotal .amount { color: var(--eg-green); font-family: var(--eg-font-head); font-size: 16px; font-weight: 600; white-space: nowrap; }
.eg-site .xoo-wsc-pattern-row .xoo-wsc-smr-del { display: grid; width: 36px; height: 36px; margin: -.5rem -.5rem 0 0; border-radius: var(--eg-radius-sm); color: var(--eg-muted); font-size: 15px; cursor: pointer; place-items: center; }
.eg-site .xoo-wsc-pattern-row .xoo-wsc-smr-del:hover { background: #fdf1f0; color: #b3261e; }

.eg-site .xoo-wsc-container .xoo-wsc-qty-box { display: inline-flex; align-items: stretch; width: max-content; max-width: none; height: 36px; margin: .1rem 0 0; border: 1px solid #b9c6c0; border-radius: var(--eg-radius-sm); background: var(--eg-white); overflow: hidden; }
.eg-site .xoo-wsc-container .xoo-wsc-qty-box .xoo-wsc-chng { display: grid; flex: none; width: 34px; height: auto; border: 0; background: var(--eg-white); color: var(--eg-green); font-size: 16px; font-weight: 600; line-height: 1; cursor: pointer; place-items: center; }
.eg-site .xoo-wsc-container .xoo-wsc-qty-box .xoo-wsc-chng:hover { background: var(--eg-mint); }
.eg-site .xoo-wsc-container .xoo-wsc-qty-box input.xoo-wsc-qty { width: 40px; height: auto; margin: 0; padding: 0; border: 0; border-inline: 1px solid var(--eg-line); border-radius: 0; background: var(--eg-white); color: var(--eg-text); font-family: var(--eg-font-body); font-size: 14px; font-weight: 600; text-align: center; appearance: textfield; }
.eg-site .xoo-wsc-container .xoo-wsc-qty-box input.xoo-wsc-qty::-webkit-outer-spin-button,
.eg-site .xoo-wsc-container .xoo-wsc-qty-box input.xoo-wsc-qty::-webkit-inner-spin-button { margin: 0; appearance: none; }

/* The plugin prints this strip as a fixed 380px table with inline styles. */
.eg-site .xoo-wsc-info-cont { padding: 1rem 1.25rem; }
.eg-site .xoo-wsc-info-cont > div { padding: 0 !important; }
.eg-site .xoo-wsc-info-cont table { width: 100% !important; table-layout: fixed; }
.eg-site .xoo-wsc-info-cont td { padding: .5rem .25rem !important; color: var(--eg-text); font-size: 12px !important; line-height: 1.3; }
.eg-site .xoo-wsc-info-cont td span { color: inherit !important; }
.eg-site .xoo-wsc-info-cont img { margin: 0 auto .35rem; }

.eg-site .xoo-wsc-footer { padding: 1.1rem 1.25rem 1.25rem; border-top: 1px solid var(--eg-line); background: var(--eg-white); box-shadow: 0 -8px 24px rgb(15 47 39 / 6%); }
.eg-site .xoo-wsc-ft-totals { padding: 0; }
.eg-site .xoo-wsc-ft-amt { display: flex; align-items: baseline; justify-content: space-between; margin: 0; padding: 0; border: 0; }
.eg-site .xoo-wsc-ft-amt-label { color: var(--eg-text); font-size: 15px; font-weight: 600; }
.eg-site .xoo-wsc-ft-amt-label::after { content: none; }
.eg-site .xoo-wsc-ft-amt-value,
.eg-site .xoo-wsc-ft-amt-value .amount { color: var(--eg-green); font-family: var(--eg-font-head); font-size: 20px; font-weight: 600; }
.eg-site .xoo-wsc-footer-txt { display: block; margin: .35rem 0 1rem; color: var(--eg-muted); font-size: 12.5px; text-align: left; }
.eg-site .xoo-wsc-ft-buttons-cont { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }

.eg-site .xoo-wsc-ft-buttons-cont a.xoo-wsc-ft-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	--p-link-color: var(--eg-green);
	--p-link-hover-color: var(--eg-green);
	--p-link-border-color: var(--eg-green);
	--p-link-border-hover-color: var(--eg-green);
	gap: .35rem;
	justify-self: stretch;
	width: 100%;
	min-height: 46px;
	margin: 0;
	padding: .5rem .75rem;
	border: 1px solid var(--eg-green);
	border-radius: var(--eg-radius-sm);
	background: var(--eg-white);
	box-shadow: none;
	color: var(--eg-green);
	font-family: var(--eg-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
}

.eg-site .xoo-wsc-ft-buttons-cont a.xoo-wsc-ft-btn:hover { background: var(--eg-mint); color: var(--eg-green); }
.eg-site .xoo-wsc-ft-buttons-cont a.xoo-wsc-ft-btn-checkout { --p-link-color: var(--eg-white); --p-link-hover-color: var(--eg-white); --p-link-border-color: var(--eg-accent-strong); --p-link-border-hover-color: var(--eg-accent-hover); grid-column: 1 / -1; grid-row: 1; min-height: 52px; border-color: var(--eg-accent-strong); background: var(--eg-accent-strong); color: var(--eg-white); font-size: 16px; }
.eg-site .xoo-wsc-ft-buttons-cont a.xoo-wsc-ft-btn-checkout:hover { border-color: var(--eg-accent-hover); background: var(--eg-accent-hover); color: var(--eg-white); }
.eg-site .xoo-wsc-ft-buttons-cont a.xoo-wsc-ft-btn:only-child { grid-column: 1 / -1; }
.eg-site .xoo-wsc-ft-buttons-cont a.xoo-wsc-ft-btn-checkout .amount { color: inherit; font-style: normal; font-weight: 600; }

/* Motion ------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.eg-site :where(.eg-site-header, .eg-site-footer, .vcv-header, .vcv-footer, .eg-main) :where(*, *::before, *::after) {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}

	.eg-site :is(.eg-btn, a.button, button.button, input.button, .woocommerce-Button, .wc-block-components-button, a.xoo-wsc-ft-btn, .wpcf7-submit) { translate: none !important; scale: none !important; }
	.eg-site :is(.eg-btn, a.button, button.button, .woocommerce-Button, .wc-block-components-button, a.xoo-wsc-ft-btn)::before { display: none; }
	.eg-site .eg-btn .eg-icon { transform: none !important; }
}

/* Product specifications (Model Number, Heat Area, Watts…) in two columns. */
.eg-site .woocommerce-product-details__short-description .eg-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: 1.5rem 0 0; padding: 0; }
.eg-specs > div { padding: .7rem .9rem; border: 1px solid var(--eg-line); border-radius: var(--eg-radius-sm); background: var(--eg-white); }
.eg-specs dt { margin: 0 0 .15rem; color: #111; font-size: 13px; font-weight: 600; line-height: 1.3; }
.eg-specs dd { margin: 0; color: var(--eg-text); font-size: 14.5px; line-height: 1.4; overflow-wrap: anywhere; }

@media (max-width: 380px) {
	.eg-site .woocommerce-product-details__short-description .eg-specs { grid-template-columns: minmax(0, 1fr); }
}
