/* ==========================================================================
   Extreme Shopping — custom theme styles
   1. Tokens
   2. Base / reset
   3. Layout (container, full-width, buttons)
   4. Header (topbar, main, search, actions, nav, mega-menu)
   5. Footer
   6. Responsive
   ========================================================================== */

/* 1. TOKENS ================================================================ */
:root {
	--es-primary: #ff4757;
	--es-primary-dark: #e02f3f;
	--es-accent: #ffc93c;
	--es-accent-dark: #f0b400;
	--es-teal: #00b8d4;
	--es-ink: #1a1a2e;
	--es-body: #3d3d4e;
	--es-muted: #8a8a99;
	--es-line: #ececf1;
	--es-bg: #ffffff;
	--es-bg-soft: #f6f7fb;

	--es-container: 1280px;
	--es-radius: 14px;
	--es-radius-sm: 10px;
	--es-shadow: 0 6px 24px rgba(26, 26, 46, .08);
	--es-shadow-lg: 0 14px 40px rgba(26, 26, 46, .12);
	--es-font: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--es-trans: .25s ease;
}

/* 2. BASE ================================================================== */
body {
	font-family: var(--es-font);
	color: var(--es-body);
	background: var(--es-bg);
	line-height: 1.6;
}
#page { overflow-x: hidden; }

body h1, body h2, body h3, body h4, body h5 {
	font-family: var(--es-font);
	color: var(--es-ink);
	font-weight: 700;
	line-height: 1.25;
}
a { color: var(--es-primary); text-decoration: none; transition: color var(--es-trans); }
a:hover { color: var(--es-primary-dark); }
img { max-width: 100%; height: auto; }

/* 3. LAYOUT ================================================================ */
.es-container {
	width: 100%;
	max-width: var(--es-container);
	margin: 0 auto;
	padding: 0 20px;
}
/* Widen Storefront's default container to match our design on shop/product/etc. */
.col-full { max-width: var(--es-container); }

/* Full-width breakout for homepage bands nested inside .col-full */
.es-fullwidth {
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}

/* Buttons */
.es-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	padding: .8em 1.6em;
	border: 0;
	border-radius: 50px;
	background: var(--es-primary);
	color: #fff;
	font-family: var(--es-font);
	font-weight: 600;
	font-size: .95rem;
	cursor: pointer;
	transition: transform var(--es-trans), background var(--es-trans), box-shadow var(--es-trans);
}
.es-btn:hover { background: var(--es-primary-dark); color: #fff; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(255, 71, 87, .3); }
.es-btn--accent { background: var(--es-accent); color: var(--es-ink); }
.es-btn--accent:hover { background: var(--es-accent-dark); color: var(--es-ink); box-shadow: 0 8px 20px rgba(255, 201, 60, .35); }
.es-btn--ghost { background: transparent; color: var(--es-ink); border: 2px solid var(--es-line); }
.es-btn--ghost:hover { background: var(--es-ink); color: #fff; border-color: var(--es-ink); }

/* 4. HEADER =============================================================== */
.es-header { position: relative; z-index: 200; background: var(--es-bg); }

/* Top bar */
.es-topbar {
	background: var(--es-ink);
	color: #fff;
	font-size: .82rem;
}
.es-topbar__inner { display: flex; align-items: center; justify-content: space-between; min-height: 40px; }
.es-topbar__msg { font-weight: 500; }
.es-topbar__links { display: flex; align-items: center; gap: 16px; }
.es-topbar__links a { color: rgba(255, 255, 255, .85); }
.es-topbar__links a:hover { color: #fff; }
.es-topbar__sep { color: rgba(255, 255, 255, .3); }

/* Main bar */
.es-header__main { border-bottom: 1px solid var(--es-line); }
.es-header__inner {
	display: flex;
	align-items: center;
	gap: 28px;
	min-height: 86px;
}
.es-branding { flex: 0 0 auto; }
.es-logo { display: inline-flex; align-items: baseline; gap: 4px; font-weight: 800; font-size: 1.7rem; line-height: 1; }
.es-logo__mark { color: var(--es-primary); }
.es-logo__sub { color: var(--es-ink); }
.es-branding .custom-logo { max-height: 60px; width: auto; }

/* Search */
.es-search { flex: 1 1 auto; max-width: 620px; }
.es-search .woocommerce-product-search,
.es-search form {
	display: flex;
	width: 100%;
	border: 2px solid var(--es-line);
	border-radius: 50px;
	overflow: hidden;
	transition: border-color var(--es-trans);
}
.es-search form:focus-within { border-color: var(--es-primary); }
.es-search .search-field,
.es-search input[type="search"] {
	flex: 1 1 auto;
	border: 0;
	padding: .7em 1.2em;
	font-family: var(--es-font);
	font-size: .95rem;
	outline: none;
	background: transparent;
}
.es-search button[type="submit"] {
	flex: 0 0 auto;
	border: 0;
	background: var(--es-primary);
	color: #fff;
	padding: 0 1.5em;
	font-family: var(--es-font);
	font-weight: 600;
	cursor: pointer;
	transition: background var(--es-trans);
}
.es-search button[type="submit"]:hover { background: var(--es-primary-dark); }

/* Header actions */
.es-header__actions { flex: 0 0 auto; display: flex; align-items: center; gap: 22px; }
.es-account-link { display: inline-flex; align-items: center; gap: 8px; color: var(--es-ink); font-weight: 500; font-size: .9rem; }
.es-account-link:hover { color: var(--es-primary); }
.es-cart-link { display: inline-flex; align-items: center; gap: 10px; color: var(--es-ink); }
.es-cart-link:hover { color: var(--es-primary); }
.es-cart-icon { position: relative; display: inline-flex; }
.es-cart-count {
	position: absolute;
	top: -8px;
	right: -10px;
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	border-radius: 50px;
	background: var(--es-primary);
	color: #fff;
	font-size: .7rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
.es-cart-meta { display: flex; flex-direction: column; line-height: 1.2; }
.es-cart-label { font-size: .72rem; color: var(--es-muted); }
.es-cart-total { font-weight: 700; font-size: .9rem; }
.es-cart-total .amount, .es-cart-total bdi { color: var(--es-ink); }

/* Primary nav */
.es-nav { background: var(--es-bg); border-bottom: 1px solid var(--es-line); box-shadow: 0 2px 8px rgba(26,26,46,.04); }
.es-nav__menu { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.es-nav__item { position: relative; }
.es-nav__item > a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 15px 18px;
	color: var(--es-ink);
	font-weight: 600;
	font-size: .92rem;
	white-space: nowrap;
}
.es-nav__item > a:hover { color: var(--es-primary); }
.es-nav__item--mega > a { color: var(--es-primary); }
.es-caret { transition: transform var(--es-trans); }
.es-nav__item--mega:hover .es-caret { transform: rotate(180deg); }

/* Mega menu */
.es-megamenu {
	position: absolute;
	top: 100%;
	left: 0;
	width: 760px;
	max-width: 92vw;
	background: #fff;
	border-radius: var(--es-radius);
	box-shadow: var(--es-shadow-lg);
	padding: 16px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity var(--es-trans), transform var(--es-trans), visibility var(--es-trans);
	z-index: 300;
}
.es-nav__item--mega:hover .es-megamenu { opacity: 1; visibility: visible; transform: translateY(0); }
.es-megamenu__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.es-megamenu__item { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: var(--es-radius-sm); transition: background var(--es-trans); }
.es-megamenu__item:hover { background: var(--es-bg-soft); }
.es-megamenu__icon { font-size: 1.4rem; line-height: 1; flex: 0 0 auto; }
.es-megamenu__text { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.es-megamenu__name { font-weight: 600; font-size: .85rem; color: var(--es-ink); }
.es-megamenu__count { font-size: .72rem; color: var(--es-muted); }

/* Burger (mobile) */
.es-burger { display: none; flex-direction: column; gap: 5px; width: 42px; height: 42px; border: 0; background: var(--es-bg-soft); border-radius: 10px; cursor: pointer; align-items: center; justify-content: center; }
.es-burger span { display: block; width: 20px; height: 2px; background: var(--es-ink); border-radius: 2px; transition: var(--es-trans); }

/* 5. FOOTER =============================================================== */
.es-footer { margin-top: 60px; background: var(--es-ink); color: rgba(255, 255, 255, .75); }
.es-footer a { color: rgba(255, 255, 255, .75); }
.es-footer a:hover { color: #fff; }

.es-footer__newsletter { background: linear-gradient(120deg, var(--es-primary), var(--es-primary-dark)); }
.es-newsletter { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 34px 20px; flex-wrap: wrap; }
.es-newsletter__text h3 { color: #fff; margin: 0 0 4px; font-size: 1.4rem; }
.es-newsletter__text p { color: rgba(255, 255, 255, .9); margin: 0; }
.es-newsletter__form { display: flex; gap: 10px; flex: 0 0 auto; }
.es-newsletter__form input { border: 0; border-radius: 50px; padding: .8em 1.3em; min-width: 280px; font-family: var(--es-font); outline: none; }

.es-footer__main { padding: 50px 0 36px; }
.es-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 36px; }
.es-footer__col h4 { color: #fff; font-size: 1rem; margin: 0 0 16px; }
.es-footer__col ul { list-style: none; margin: 0; padding: 0; }
.es-footer__col li { margin-bottom: 9px; font-size: .9rem; }
.es-footer__about p { font-size: .9rem; margin: 14px 0 18px; max-width: 340px; }
.es-logo--footer { font-size: 1.5rem; }
.es-logo--footer .es-logo__sub { color: #fff; }
.es-footer__logo { display: inline-block; margin-bottom: 16px; }
.es-footer__about .custom-logo { max-width: 240px; width: 100%; height: auto; }
.es-social { display: flex; gap: 10px; }
.es-social a { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; transition: background var(--es-trans), transform var(--es-trans); }
.es-social a:hover { background: var(--es-primary); transform: translateY(-2px); }
.es-footer__usp li { display: flex; gap: 6px; }

.es-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .1); }
.es-footer__bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px; font-size: .82rem; flex-wrap: wrap; }

/* 5b. HOMEPAGE =========================================================== */
.es-section { padding: 56px 0; }
.es-section__head { text-align: center; max-width: 640px; margin: 0 auto 36px; }
.es-section__title { font-size: 2rem; margin: 0 0 8px; }
.es-section__title::after { content: ""; display: block; width: 56px; height: 4px; border-radius: 4px; background: var(--es-primary); margin: 12px auto 0; }
.es-section__sub { color: var(--es-muted); margin: 0; font-size: 1.05rem; }

/* Hero slider — full-bleed background image + text overlay */
.es-hero { position: relative; overflow: hidden; }
.es-hero__slider { position: relative; min-height: 520px; }
.es-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .6s ease, visibility .6s ease;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: #fff;
}
.es-slide.is-active { opacity: 1; visibility: visible; z-index: 2; }
/* Brand-coloured fallbacks shown until a background image is uploaded per slide */
.es-slide--a { background-image: linear-gradient(120deg, #00b8d4 0%, #0a6b86 100%); }
.es-slide--b { background-image: linear-gradient(120deg, #ff4757 0%, #b51b6e 100%); }
.es-slide--c { background-image: linear-gradient(120deg, #4364f7 0%, #1a1a2e 100%); }
.es-slide__inner { display: flex; align-items: center; min-height: 520px; padding: 60px 20px; }
.es-slide__content { max-width: 620px; }

.es-hero__eyebrow { display: inline-block; background: rgba(255,255,255,.2); color: #fff; backdrop-filter: blur(4px); font-weight: 600; font-size: .85rem; padding: 7px 16px; border-radius: 50px; margin-bottom: 18px; }
.es-hero__title { font-size: 3.1rem; font-weight: 800; line-height: 1.1; margin: 0 0 16px; color: #fff; text-shadow: 0 2px 16px rgba(0,0,0,.25); }
.es-hero__subtitle { font-size: 1.18rem; color: rgba(255,255,255,.95); margin: 0 0 28px; max-width: 540px; text-shadow: 0 1px 10px rgba(0,0,0,.25); }
.es-hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* Slider arrows */
.es-slider__arrow {
	position: absolute; top: 50%; transform: translateY(-50%);
	z-index: 5; width: 48px; height: 48px; border: 0; border-radius: 50%;
	background: rgba(255,255,255,.85); color: var(--es-ink);
	display: flex; align-items: center; justify-content: center; cursor: pointer;
	box-shadow: var(--es-shadow); transition: background var(--es-trans), transform var(--es-trans);
}
.es-slider__arrow:hover { background: var(--es-primary); color: #fff; }
.es-slider__arrow--prev { left: 18px; }
.es-slider__arrow--next { right: 18px; }

/* Slider dots */
.es-slider__dots { position: absolute; bottom: 18px; left: 0; right: 0; z-index: 5; display: flex; justify-content: center; gap: 9px; }
.es-slider__dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: rgba(26,26,46,.25); cursor: pointer; transition: background var(--es-trans), width var(--es-trans); }
.es-slider__dot.is-active { background: var(--es-primary); width: 26px; border-radius: 50px; }

/* Trust strip */
.es-trust { background: var(--es-bg-soft); border-top: 1px solid var(--es-line); border-bottom: 1px solid var(--es-line); }
.es-trust__inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; padding: 26px 20px; }
.es-trust__item { display: flex; align-items: center; gap: 14px; }
.es-trust__icon { font-size: 1.9rem; flex: 0 0 auto; }
.es-trust__item span { display: flex; flex-direction: column; font-size: .85rem; color: var(--es-muted); }
.es-trust__item strong { color: var(--es-ink); font-size: .98rem; }

/* Category grid */
.es-catgrid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.es-catgrid__card { background: #fff; border: 1px solid var(--es-line); border-radius: var(--es-radius); padding: 18px 12px; text-align: center; transition: transform var(--es-trans), box-shadow var(--es-trans), border-color var(--es-trans); }
.es-catgrid__card:hover { transform: translateY(-5px); box-shadow: var(--es-shadow-lg); border-color: transparent; }
.es-catgrid__imgwrap { display: block; width: 84px; height: 84px; margin: 0 auto 12px; border-radius: 50%; overflow: hidden; background: var(--es-bg-soft); }
.es-catgrid__img { width: 100%; height: 100%; object-fit: cover; }
.es-catgrid__name { display: block; font-weight: 700; color: var(--es-ink); font-size: 1rem; }
.es-catgrid__count { display: block; font-size: .82rem; color: var(--es-muted); margin-top: 3px; }

/* Promo banner */
.es-promo { background: linear-gradient(90deg, var(--es-primary), var(--es-primary-dark)); color: #fff; }
.es-promo__inner { display: flex; align-items: center; justify-content: space-between; gap: 26px; padding: 44px 20px; flex-wrap: wrap; }
.es-promo__text h2 { color: #fff; font-size: 2.1rem; margin: 0 0 6px; }
.es-promo__text p { margin: 0; font-size: 1.1rem; color: rgba(255,255,255,.92); }

/* Category promo banners (clean action cards) */
.es-banners { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.es-banner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	min-height: 200px;
	padding: 28px;
	border-radius: var(--es-radius);
	overflow: hidden;
	color: var(--es-ink);
}
.es-banner--a { background: linear-gradient(125deg, #e6f7fb 0%, #d3eef6 100%); }
.es-banner--b { background: linear-gradient(125deg, #ffe9f0 0%, #ffd9e6 100%); }
.es-banner--c { background: linear-gradient(125deg, #fff4d6 0%, #ffe9b8 100%); }
.es-banner__body { position: relative; z-index: 1; max-width: 56%; }
.es-banner__tag { display: inline-block; background: rgba(26,26,46,.08); color: var(--es-ink); font-size: .72rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; padding: 4px 12px; border-radius: 50px; margin-bottom: 12px; }
.es-banner__title { color: var(--es-ink); font-size: 1.5rem; line-height: 1.2; margin: 0 0 16px; }
.es-banner__btn { display: inline-flex; align-items: center; gap: 7px; background: var(--es-ink); color: #fff; font-weight: 600; font-size: .85rem; padding: .6em 1.3em; border-radius: 50px; transition: gap var(--es-trans), background var(--es-trans); }
.es-banner:hover .es-banner__btn { gap: 12px; background: var(--es-primary); }
.es-banner__media {
	flex: 0 0 auto;
	width: 138px;
	height: 138px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 10px 26px rgba(26,26,46,.12);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.es-banner__media img { width: 80%; height: 80%; object-fit: contain; transition: transform .4s ease; }
.es-banner:hover .es-banner__media img { transform: scale(1.08); }

/* Flash Sale section accent */
.es-section--flash { background: linear-gradient(180deg, #fff4f5 0%, #fff 100%); }
.es-section--flash .es-section__title { color: var(--es-primary); }
.es-section--flash .es-section__title::after { background: var(--es-accent); }

/* WooCommerce product cards (homepage + shop) */
.es-products-wrap ul.products,
ul.products {
	display: grid !important;
	grid-template-columns: repeat(5, 1fr);
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after,
ul.products::before, ul.products::after { content: none !important; display: none !important; }
ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--es-line);
	border-radius: var(--es-radius);
	padding: 14px !important;
	text-align: center;
	transition: transform var(--es-trans), box-shadow var(--es-trans), border-color var(--es-trans);
	position: relative;
}
ul.products li.product:hover { transform: translateY(-5px); box-shadow: var(--es-shadow-lg); border-color: transparent; }
ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1 1 auto; }
ul.products li.product a img { width: 100%; height: 190px; object-fit: contain; background: #fff; border-radius: var(--es-radius-sm); margin: 0 0 12px !important; }
ul.products li.product .woocommerce-loop-product__title { font-size: .9rem !important; font-weight: 600; color: var(--es-ink); padding: 0 4px !important; min-height: 2.5em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
ul.products li.product .price { color: var(--es-primary) !important; font-weight: 700; font-size: 1.05rem; display: block; margin-top: auto; padding-top: 8px; margin-bottom: 12px; }
ul.products li.product .price del { color: var(--es-muted); font-weight: 400; font-size: .85rem; }
ul.products li.product .price ins { text-decoration: none; }
ul.products li.product .button,
ul.products li.product .added_to_cart {
	background: var(--es-ink) !important;
	color: #fff !important;
	border-radius: 50px !important;
	font-weight: 600 !important;
	font-size: .85rem !important;
	padding: .6em 1.2em !important;
	transition: background var(--es-trans) !important;
}
ul.products li.product .button:hover { background: var(--es-primary) !important; }
ul.products li.product .onsale {
	position: absolute; top: 12px; left: 12px;
	background: var(--es-accent); color: var(--es-ink);
	border-radius: 50px; padding: 3px 12px; font-size: .72rem; font-weight: 700;
	margin: 0; min-height: auto; min-width: auto; line-height: 1.6;
}

/* 5c. SHOP, ARCHIVE & SINGLE PRODUCT ===================================== */

/* Full-width content on all WooCommerce pages (sidebar removed) */
.woocommerce-page.right-sidebar #primary,
.woocommerce-page.left-sidebar #primary,
.woocommerce-page #primary { width: 100% !important; max-width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce-page #secondary,
.woocommerce-page .widget-area.col-1 { display: none !important; }

/* Shop header */
.es-shop__head { padding: 8px 0 24px; border-bottom: 1px solid var(--es-line); margin-bottom: 30px; }
.es-shop__title { font-size: 2rem; margin: 0; }
.es-shop__head .term-description, .es-shop__head p { color: var(--es-muted); margin: 10px 0 0; }

/* Shop layout: filters + products */
.es-shop { display: grid; grid-template-columns: 260px 1fr; gap: 34px; align-items: start; }
.es-shop__main { min-width: 0; }
.es-filters-toggle { display: none; }
@media (min-width: 1025px) { .es-shop__main ul.products { grid-template-columns: repeat(4, 1fr); } }

/* Filter blocks */
.es-filters { position: sticky; top: 20px; }
.es-filter-block { background: #fff; border: 1px solid var(--es-line); border-radius: var(--es-radius); padding: 18px 20px; margin-bottom: 16px; }
.es-filter-block .widgettitle, .es-filter-block .widget-title { font-size: 1rem; font-weight: 700; color: var(--es-ink); margin: 0 0 14px; }
.es-filter-block ul { list-style: none; margin: 0; padding: 0; }
.es-filter-block .product-categories li { margin: 0 0 4px; }
.es-filter-block .product-categories a { display: inline-block; color: var(--es-body); font-size: .9rem; padding: 3px 0; }
.es-filter-block .product-categories a:hover, .es-filter-block .product-categories .current-cat > a { color: var(--es-primary); font-weight: 600; }
.es-filter-block .product-categories .count { color: var(--es-muted); font-size: .8rem; }
.es-filter-block .woocommerce-product-search { display: flex; gap: 0; border: 2px solid var(--es-line); border-radius: 50px; overflow: hidden; }
.es-filter-block .woocommerce-product-search input[type="search"] { flex: 1; border: 0; padding: .55em .9em; font-family: var(--es-font); outline: none; min-width: 0; }
.es-filter-block .woocommerce-product-search button { border: 0; background: var(--es-primary); color: #fff; padding: 0 1em; cursor: pointer; }
.es-filter-block .price_slider_wrapper .ui-slider { background: var(--es-line); border-radius: 50px; height: 6px; margin: 14px 0; position: relative; }
.es-filter-block .ui-slider .ui-slider-range { background: var(--es-primary); height: 6px; border-radius: 50px; }
.es-filter-block .ui-slider .ui-slider-handle { background: var(--es-primary); border: 3px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.2); width: 18px; height: 18px; border-radius: 50%; top: -6px; }
.es-filter-block .price_slider_amount .button { background: var(--es-ink) !important; color: #fff !important; border-radius: 50px !important; font-size: .82rem !important; padding: .5em 1.2em !important; }
.es-filter-block .price_slider_amount .price_label { font-size: .85rem; color: var(--es-body); }

/* Shop toolbar (result count + ordering) */
.woocommerce-result-count { color: var(--es-muted); font-size: .9rem; margin: 0; }
.woocommerce-ordering select, .orderby { border: 2px solid var(--es-line); border-radius: 50px; padding: .5em 1em; font-family: var(--es-font); font-size: .88rem; background: #fff; color: var(--es-ink); }
.es-shop__main .woocommerce-result-count { float: left; }
.es-shop__main .woocommerce-ordering { float: right; margin-bottom: 20px; }

/* Pagination */
.woocommerce-pagination { clear: both; margin-top: 36px; text-align: center; }
.woocommerce-pagination ul { display: inline-flex; gap: 6px; border: 0 !important; }
.woocommerce-pagination ul li { border: 0 !important; }
.woocommerce-pagination ul li a, .woocommerce-pagination ul li span {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; padding: 0 8px; border-radius: 10px;
	background: #fff; border: 1px solid var(--es-line) !important; color: var(--es-ink); font-weight: 600;
}
.woocommerce-pagination ul li span.current { background: var(--es-primary); color: #fff; border-color: var(--es-primary) !important; }
.woocommerce-pagination ul li a:hover { background: var(--es-bg-soft); }

/* ---- Single product ---- */
.single-product div.product {
	display: flex !important;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 30px;
}
/* Neutralise Storefront's clearfix pseudo-elements so they don't become flex items */
.single-product div.product::before,
.single-product div.product::after { content: none !important; display: none !important; }
.single-product div.product .woocommerce-product-gallery {
	flex: 1 1 320px !important;
	max-width: 47% !important;
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	order: 1;
	opacity: 1 !important;
}
.single-product div.product .woocommerce-product-gallery img { border-radius: var(--es-radius); }
.single-product div.product .summary {
	flex: 1 1 320px !important;
	max-width: 49% !important;
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	order: 2;
}
.single-product .product_title { font-size: 2.1rem; margin: 0 0 12px; }
.single-product .summary .price { color: var(--es-primary); font-weight: 700; font-size: 1.7rem; margin-bottom: 18px; }
.single-product .summary .price del { color: var(--es-muted); font-weight: 400; font-size: 1.1rem; margin-right: 8px; }
.single-product .summary .price ins { text-decoration: none; }
.single-product .woocommerce-product-details__short-description { color: var(--es-body); margin-bottom: 22px; }
.single-product .summary .quantity input.qty { border: 2px solid var(--es-line); border-radius: 10px; padding: .6em; width: 70px; height: auto; }
.single-product .single_add_to_cart_button, .single-product .summary .button {
	background: var(--es-primary) !important; color: #fff !important;
	border-radius: 50px !important; font-weight: 700 !important; padding: .9em 2em !important;
	font-size: .95rem !important; transition: background var(--es-trans), transform var(--es-trans) !important;
}
.single-product .single_add_to_cart_button:hover { background: var(--es-primary-dark) !important; transform: translateY(-2px); }
.single-product .product_meta { font-size: .85rem; color: var(--es-muted); margin-top: 20px; border-top: 1px solid var(--es-line); padding-top: 16px; }
.single-product .product_meta a { color: var(--es-body); }

/* Keep tabs / related full width below the 2-column area */
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .related,
.single-product div.product > .upsells { flex: 0 0 100% !important; max-width: 100%; width: 100%; order: 3; }

/* Stock badge + SKU + sold counter */
.es-pd-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0 0 14px; }
.es-stock { display: inline-flex; align-items: center; gap: 7px; font-size: .85rem; font-weight: 700; padding: 5px 14px; border-radius: 50px; }
.es-stock::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.es-stock--in { color: #1f9d57; background: #e7f7ee; }
.es-stock--out { color: #d63b46; background: #fdecee; }
.es-stock--back { color: #c98a00; background: #fff6e3; }
.es-sku { font-size: .85rem; color: var(--es-muted); }
.es-sku strong { color: var(--es-ink); }
.es-sold { display: inline-flex; align-items: center; gap: 7px; font-size: .9rem; color: var(--es-body); background: #fff6e3; border: 1px dashed var(--es-accent-dark); border-radius: 10px; padding: 8px 14px; margin: 0 0 22px; }
.es-sold strong { color: var(--es-primary); font-weight: 800; }

/* Quantity +/- stepper */
.single-product form.cart .quantity { display: inline-flex; align-items: center; border: 2px solid var(--es-line); border-radius: 50px; overflow: hidden; vertical-align: middle; }
.single-product form.cart .quantity input.qty {
	border: 0 !important; text-align: center; width: 54px; height: 44px; padding: 0;
	font-weight: 700; font-family: var(--es-font); background: transparent; -moz-appearance: textfield;
}
.single-product form.cart .quantity input.qty::-webkit-outer-spin-button,
.single-product form.cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.es-qty-btn { width: 40px; height: 44px; border: 0; background: var(--es-bg-soft); color: var(--es-ink); font-size: 1.25rem; font-weight: 600; cursor: pointer; line-height: 1; transition: background var(--es-trans); }
.es-qty-btn:hover { background: var(--es-primary); color: #fff; }

/* Add to cart row + Buy Now (simple products) */
.single-product form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 8px; }
.single-product form.cart .single_add_to_cart_button { flex: 1 1 auto; min-width: 180px; }
.single-product .es-buy-now {
	flex: 1 1 100%; background: var(--es-ink) !important; color: #fff !important;
	border-radius: 50px !important; font-weight: 700 !important; padding: .9em 2em !important;
	font-size: .95rem !important; text-align: center; border: 0; cursor: pointer;
	transition: background var(--es-trans), transform var(--es-trans);
}
.single-product .es-buy-now:hover { background: var(--es-accent) !important; color: var(--es-ink) !important; transform: translateY(-2px); }
/* For variable products the cart form wraps differently — keep buy now full width */
.single-product .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.single-product .woocommerce-variation-add-to-cart .es-buy-now { flex: 1 1 100%; }

/* Guaranteed Safe Checkout badges */
.es-safe-checkout { margin: 22px 0 0; padding: 18px; border: 1px solid var(--es-line); border-radius: var(--es-radius); background: var(--es-bg-soft); }
.es-safe-checkout__img { display: block; width: 100%; height: auto; }
.es-safe-checkout__head { text-align: center; position: relative; margin-bottom: 14px; }
.es-safe-checkout__head::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: var(--es-line); }
.es-safe-checkout__head span { position: relative; z-index: 1; background: var(--es-bg-soft); padding: 0 14px; font-weight: 700; letter-spacing: 2px; font-size: .78rem; color: var(--es-ink); }
.es-safe-checkout__badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.es-pay { display: inline-flex; align-items: center; height: 34px; padding: 0 12px; border: 1px solid var(--es-line); border-radius: 6px; font-weight: 800; font-size: .76rem; background: #fff; color: var(--es-ink); letter-spacing: .02em; }
.es-pay--visa { color: #1a1f71; }
.es-pay--mastercard { color: #eb001b; }
.es-pay--amex { color: #2e77bb; }
.es-pay--discover { color: #ff6000; }
.es-pay--stripe { color: #635bff; }
.es-pay--paypal { color: #003087; }

/* Variations table */
.single-product .variations { margin-bottom: 18px; }
.single-product .variations th.label { text-align: left; padding: 10px 0 4px; font-weight: 700; color: var(--es-ink); vertical-align: top; }
.single-product .variations td.value { padding: 4px 0 12px; }
.single-product .reset_variations { display: inline-block; font-size: .82rem; color: var(--es-muted); margin-top: 6px; }

/* Product tabs */
.woocommerce-tabs { margin-top: 50px; }
.woocommerce-tabs ul.tabs { border: 0; padding: 0; display: flex; gap: 6px; flex-wrap: wrap; }
.woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 50px; margin: 0; padding: 0; }
.woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li a { padding: 10px 22px !important; border-radius: 50px; font-weight: 600; color: var(--es-ink); background: var(--es-bg-soft); }
.woocommerce-tabs ul.tabs li.active a { background: var(--es-primary); color: #fff; }
.woocommerce-tabs .panel { padding-top: 26px; }
.related.products, .upsells.products { margin-top: 56px; }
.related.products > h2, .upsells.products > h2 { font-size: 1.8rem; margin-bottom: 28px; }
/* Slightly larger related/upsell product cards */
.related.products ul.products li.product,
.upsells.products ul.products li.product { padding: 18px !important; }
.related.products ul.products li.product a img,
.upsells.products ul.products li.product a img { height: 220px; }
.related.products ul.products li.product .woocommerce-loop-product__title,
.upsells.products ul.products li.product .woocommerce-loop-product__title { font-size: .95rem !important; }
.related.products ul.products li.product .price,
.upsells.products ul.products li.product .price { font-size: 1.1rem; }

/* ---- Variation swatches ---- */
.es-swatches { display: flex; flex-wrap: wrap; gap: 9px; list-style: none; margin: 6px 0 0; padding: 0; }
.es-swatches + select { display: none !important; }
.es-swatch { cursor: pointer; user-select: none; transition: all var(--es-trans); }
.es-swatch--button {
	border: 2px solid var(--es-line); border-radius: 10px; padding: 8px 16px;
	font-weight: 600; font-size: .85rem; color: var(--es-ink); background: #fff; line-height: 1.2;
}
.es-swatch--button:hover { border-color: var(--es-ink); }
.es-swatch--button.is-selected { border-color: var(--es-primary); background: var(--es-primary); color: #fff; }
.es-swatch--color { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.es-swatch--color span { display: block; width: 38px; height: 38px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--es-line); }
.es-swatch--color em { font-style: normal; font-size: .72rem; color: var(--es-muted); }
.es-swatch--color.is-selected span { box-shadow: 0 0 0 2px var(--es-primary); }
.es-swatch--color.is-selected em { color: var(--es-primary); font-weight: 600; }
.es-swatch.is-disabled { opacity: .35; pointer-events: none; text-decoration: line-through; }

/* 5d. CART, CHECKOUT, MY ACCOUNT ========================================= */

/* Page heading on WC pages */
.woocommerce-cart .entry-header .entry-title,
.woocommerce-checkout .entry-header .entry-title,
.woocommerce-account .entry-header .entry-title { font-size: 2rem; margin-bottom: 24px; }

/* Buttons (shared) */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt {
	background: var(--es-ink); color: #fff; border-radius: 50px;
	font-weight: 600; font-family: var(--es-font); padding: .8em 1.7em;
	border: 0; transition: background var(--es-trans), transform var(--es-trans); line-height: 1.2;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover { background: #000; color: #fff; }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
	background: var(--es-primary); color: #fff;
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover {
	background: var(--es-primary-dark); color: #fff; transform: translateY(-2px);
}

/* Form fields (shared) */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .select2-container .select2-selection,
.woocommerce-page form .form-row input.input-text,
.woocommerce table.cart input,
.woocommerce #order_review input {
	border: 2px solid var(--es-line) !important; border-radius: 10px !important;
	padding: .7em 1em !important; font-family: var(--es-font); min-height: 46px; box-shadow: none !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { border-color: var(--es-primary) !important; outline: none; }
.woocommerce form .form-row label { font-weight: 600; color: var(--es-ink); margin-bottom: 6px; }
.select2-container--default .select2-selection--single { height: 46px !important; display: flex; align-items: center; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
	border-radius: var(--es-radius); border-top: 0; padding: 16px 20px 16px 50px; background: var(--es-bg-soft);
	color: var(--es-ink) !important;
}
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button), .woocommerce-error a:not(.button) { color: var(--es-primary); }
.woocommerce-message { border-left: 4px solid #1f9d57; }
.woocommerce-message::before { color: #1f9d57; }
.woocommerce-info { border-left: 4px solid var(--es-teal); }
.woocommerce-info::before { color: var(--es-teal); }
.woocommerce-error { border-left: 4px solid var(--es-primary); background: #fdecee; }

/* ---- Cart ---- */
.woocommerce-cart table.cart { border: 1px solid var(--es-line); border-radius: var(--es-radius); border-collapse: separate; border-spacing: 0; overflow: hidden; }
.woocommerce-cart table.cart thead th { background: var(--es-bg-soft); padding: 16px; font-weight: 700; color: var(--es-ink); border: 0; }
.woocommerce-cart table.cart td { padding: 18px 16px; border-top: 1px solid var(--es-line); vertical-align: middle; }
.woocommerce-cart table.cart td.product-thumbnail img { width: 72px; border-radius: 10px; }
.woocommerce-cart table.cart td.product-name a { font-weight: 600; color: var(--es-ink); }
.woocommerce-cart table.cart .product-remove a { color: var(--es-primary) !important; font-weight: 700; }
.woocommerce-cart .quantity { display: inline-flex; border: 2px solid var(--es-line); border-radius: 50px; overflow: hidden; }
.woocommerce-cart .quantity input.qty { border: 0 !important; width: 56px; text-align: center; min-height: 42px; }
.woocommerce-cart .actions .coupon input { border-radius: 50px !important; }
.cart-collaterals .cart_totals { background: #fff; border: 1px solid var(--es-line); border-radius: var(--es-radius); padding: 26px; }
.cart-collaterals .cart_totals h2 { font-size: 1.3rem; margin: 0 0 16px; }
.cart-collaterals .cart_totals table { border: 0; }
.cart-collaterals .cart_totals .order-total .amount { color: var(--es-primary); font-size: 1.3rem; }
.cart-collaterals .checkout-button { display: block; text-align: center; font-size: 1rem !important; padding: 1em !important; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 0; }

/* ---- Checkout (2-column on desktop) ---- */
.woocommerce-checkout form.checkout.woocommerce-checkout { display: grid; grid-template-columns: 1fr 400px; gap: 40px; align-items: start; }
.woocommerce-checkout form.checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 14px; font-size: 1.3rem; }
.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: 20px; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; }
.woocommerce-checkout h3 { font-size: 1.2rem; }
.woocommerce-checkout #order_review { background: #fff; border: 1px solid var(--es-line); border-radius: var(--es-radius); padding: 24px; }
.woocommerce-checkout .shop_table { border: 0; }
.woocommerce-checkout .order-total .amount { color: var(--es-primary); font-size: 1.25rem; }
.woocommerce-checkout #payment { background: var(--es-bg-soft); border-radius: var(--es-radius); margin-top: 16px; }
.woocommerce-checkout #payment ul.payment_methods { border: 0; padding: 18px; }
.woocommerce-checkout #payment div.payment_box { background: #fff; border-radius: 10px; }
.woocommerce-checkout #payment #place_order { width: 100%; font-size: 1.05rem !important; padding: 1em !important; }

/* ---- My Account ---- */
.woocommerce-account .woocommerce { display: flex; flex-wrap: wrap; gap: 34px; align-items: start; }
.woocommerce-account .woocommerce-MyAccount-navigation { flex: 0 0 240px; background: #fff; border: 1px solid var(--es-line); border-radius: var(--es-radius); padding: 14px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 11px 16px; border-radius: 10px; color: var(--es-body); font-weight: 600; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--es-primary); color: #fff; }
.woocommerce-account .woocommerce-MyAccount-content { flex: 1 1 0; min-width: 0; }
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account table.shop_table { border: 1px solid var(--es-line); border-radius: var(--es-radius); border-collapse: separate; border-spacing: 0; overflow: hidden; }
.woocommerce-account table.shop_table th { background: var(--es-bg-soft); }

/* Login / Register (logged-out account page) */
.woocommerce-account #customer_login.col2-set {
	display: grid; grid-template-columns: 1fr 1fr; gap: 28px;
	max-width: 900px; margin: 10px auto 0; align-items: start;
}
.woocommerce-account #customer_login .col-1,
.woocommerce-account #customer_login .col-2 {
	width: 100% !important; max-width: 100% !important; float: none !important; margin: 0 !important;
	background: #fff; border: 1px solid var(--es-line); border-radius: var(--es-radius);
	padding: 32px; box-shadow: var(--es-shadow);
}
.woocommerce-account #customer_login h2 {
	font-size: 1.35rem; margin: 0 0 22px; padding-bottom: 14px; border-bottom: 2px solid var(--es-line);
}
.woocommerce-account #customer_login form.login,
.woocommerce-account #customer_login form.register {
	background: transparent !important; border: 0 !important; padding: 0 !important; margin: 0 !important;
}
.woocommerce-account #customer_login .form-row { margin-bottom: 16px; }
.woocommerce-account #customer_login .form-row label { display: block; }
.woocommerce-account #customer_login input.input-text { width: 100%; }
.woocommerce-account #customer_login .button { width: 100%; margin-top: 6px; padding: .9em !important; }
.woocommerce-account #customer_login .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; font-weight: 500; }
.woocommerce-account #customer_login .woocommerce-LostPassword { margin-top: 14px; font-size: .9rem; }
.woocommerce-account #customer_login .woocommerce-LostPassword a { color: var(--es-primary); }
.woocommerce-account #customer_login .woocommerce-privacy-policy-text { font-size: .82rem; color: var(--es-muted); margin-top: 14px; }
.woocommerce-account #customer_login .woocommerce-form-login__submit { margin-bottom: 0; }

/* 5e. STATIC PAGES (policy / contact) =================================== */
.es-no-sidebar #primary { width: 100% !important; max-width: 100% !important; float: none !important; margin: 0 !important; }
.es-no-sidebar #secondary, .es-no-sidebar .widget-area { display: none !important; }

.page:not(.woocommerce-page) .entry-header { margin-bottom: 26px; padding-bottom: 18px; border-bottom: 1px solid var(--es-line); }
.page:not(.woocommerce-page) .entry-title { font-size: 2.1rem; }
.es-no-sidebar.page .entry-header,
.es-no-sidebar.page .entry-content { max-width: 860px; margin-left: auto; margin-right: auto; }

.entry-content h2 { font-size: 1.4rem; margin: 32px 0 12px; color: var(--es-ink); }
.entry-content p { margin: 0 0 16px; color: var(--es-body); line-height: 1.75; }
.entry-content ul, .entry-content ol { margin: 0 0 18px; padding-left: 22px; }
.entry-content li { margin-bottom: 8px; color: var(--es-body); line-height: 1.7; }
.entry-content a { color: var(--es-primary); }
.entry-content a:hover { text-decoration: underline; }

/* Footer legal links */
.es-footer__legal { display: inline-flex; gap: 18px; }
.es-footer__legal a { color: rgba(255, 255, 255, .7); font-size: .82rem; }
.es-footer__legal a:hover { color: #fff; }

/* Contact page */
.es-contact-page.es-no-sidebar.page .entry-content { max-width: 1040px; }
.es-contact-intro { text-align: center; max-width: 680px; margin: 0 auto 36px; font-size: 1.1rem; color: var(--es-body); }
.es-contact { display: grid; grid-template-columns: 1fr 1.25fr; gap: 36px; align-items: start; }
.es-contact__info { display: flex; flex-direction: column; gap: 16px; }
.es-contact__card { display: flex; gap: 16px; background: #fff; border: 1px solid var(--es-line); border-radius: var(--es-radius); padding: 22px; }
.es-contact__icon { font-size: 1.7rem; flex: 0 0 auto; line-height: 1.2; }
.es-contact__card h3 { font-size: 1.05rem; margin: 0 0 6px; }
.es-contact__card p { margin: 0; line-height: 1.65; color: var(--es-body); }
.es-contact__card a { color: var(--es-body); }
.es-contact__card a:hover { color: var(--es-primary); }
.es-contact__formwrap { background: #fff; border: 1px solid var(--es-line); border-radius: var(--es-radius); padding: 30px; box-shadow: var(--es-shadow); }
.es-contact__formwrap h2 { margin: 0 0 20px; font-size: 1.4rem; }
.es-contact-form .es-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.es-contact-form input, .es-contact-form textarea { width: 100%; border: 2px solid var(--es-line); border-radius: 10px; padding: .8em 1em; font-family: var(--es-font); font-size: .95rem; outline: none; transition: border-color .2s; }
.es-contact-form input:focus, .es-contact-form textarea:focus { border-color: var(--es-primary); }
.es-contact-form textarea { margin-bottom: 16px; resize: vertical; }
.es-contact-form .es-btn { width: 100%; }
.es-hp { display: none !important; }
.es-form-success { background: #e7f7ee; color: #1f7a47; border-left: 4px solid #1f9d57; border-radius: 10px; padding: 14px 18px; margin-bottom: 18px; }
.es-form-error { background: #fdecee; color: #c0303a; border-left: 4px solid var(--es-primary); border-radius: 10px; padding: 14px 18px; margin-bottom: 18px; }

/* About page */
.es-about-page.es-no-sidebar.page .entry-content { max-width: 1080px; }
.es-about-page .entry-header { text-align: center; border: 0; margin-bottom: 10px; }
.es-about-hero { text-align: center; max-width: 760px; margin: 0 auto 40px; }
.es-about-eyebrow { display: inline-block; background: #fff4f5; color: var(--es-primary); font-weight: 700; font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; padding: 6px 16px; border-radius: 50px; margin-bottom: 16px; }
.es-about-title { font-size: 2.1rem; margin: 0 0 16px; }
.es-about-lead { font-size: 1.12rem; color: var(--es-body); line-height: 1.7; margin: 0; }

.es-about-focus { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 0 0 18px; }
.es-about-focus__item { background: #fff; border: 1px solid var(--es-line); border-radius: var(--es-radius); padding: 26px 20px; text-align: center; transition: transform .25s, box-shadow .25s; }
.es-about-focus__item:hover { transform: translateY(-4px); box-shadow: var(--es-shadow-lg); }
.es-about-focus__icon { font-size: 2rem; display: block; margin-bottom: 10px; }
.es-about-focus__item h3 { font-size: 1.05rem; margin: 0; }
.es-about-note { text-align: center; color: var(--es-muted); font-style: italic; margin: 0; }

.es-about-h { text-align: center; font-size: 1.9rem !important; margin: 56px 0 28px !important; }
.es-about-h::after { content: ""; display: block; width: 56px; height: 4px; border-radius: 4px; background: var(--es-primary); margin: 14px auto 0; }

.es-about-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 28px; }
.es-stat { background: linear-gradient(135deg, var(--es-primary), var(--es-primary-dark)); color: #fff; border-radius: var(--es-radius); padding: 30px 20px; text-align: center; }
.es-stat__num { display: block; font-size: 2.4rem; font-weight: 800; line-height: 1; }
.es-stat__label { display: block; margin-top: 8px; font-size: .92rem; opacity: .95; }

.es-about-cap { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.es-about-cap__card { background: #fff; border: 1px solid var(--es-line); border-radius: var(--es-radius); padding: 26px; }
.es-about-cap__card h3 { font-size: 1.2rem; margin: 0 0 10px; }
.es-about-cap__card p { margin: 0; color: var(--es-body); line-height: 1.7; }

.es-about-cats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.es-about-cat { background: #fff; border: 1px solid var(--es-line); border-radius: var(--es-radius); padding: 24px; transition: transform .25s, box-shadow .25s, border-color .25s; }
.es-about-cat:hover { transform: translateY(-4px); box-shadow: var(--es-shadow-lg); border-color: transparent; }
.es-about-cat h3 { font-size: 1.1rem; margin: 0 0 14px; padding-bottom: 12px; border-bottom: 2px solid var(--es-bg-soft); }
.es-about-cat ul { margin: 0; padding: 0; list-style: none; }
.es-about-cat li { position: relative; padding-left: 22px; margin-bottom: 9px; color: var(--es-body); font-size: .92rem; line-height: 1.5; }
.es-about-cat li::before { content: "\2713"; position: absolute; left: 0; color: var(--es-primary); font-weight: 800; }

.es-about-cta { background: var(--es-ink); border-radius: var(--es-radius); padding: 42px; text-align: center; margin: 52px 0; }
.es-about-cta p { margin: 0 auto; max-width: 760px; color: #fff; font-size: 1.25rem; font-weight: 600; line-height: 1.6; }

.es-about-vm { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.es-about-vm__card { border-radius: var(--es-radius); padding: 32px; color: #fff; }
.es-about-vm__card h3 { color: #fff; font-size: 1.3rem; margin: 0 0 12px; }
.es-about-vm__card p { margin: 0; line-height: 1.7; color: #fff !important; }
.es-about-vm__card--vision { background: linear-gradient(135deg, #0a93a8, #075063); }
.es-about-vm__card--mission { background: linear-gradient(135deg, #2b3a8f, #15172c); }

/* Floating WhatsApp / Call buttons */
.es-floats { position: fixed; right: 20px; bottom: 20px; z-index: 900; display: flex; flex-direction: column; gap: 12px; }
.es-float { width: 54px; height: 54px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; box-shadow: 0 6px 22px rgba(0, 0, 0, .28); transition: transform .2s ease; }
.es-float:hover { transform: scale(1.1); color: #fff; }
.es-float--wa { background: #25d366; }
.es-float--call { background: var(--es-primary); animation: es-pulse 2s infinite; }
@keyframes es-pulse {
	0% { box-shadow: 0 6px 22px rgba(0,0,0,.28), 0 0 0 0 rgba(255,71,87,.5); }
	70% { box-shadow: 0 6px 22px rgba(0,0,0,.28), 0 0 0 14px rgba(255,71,87,0); }
	100% { box-shadow: 0 6px 22px rgba(0,0,0,.28), 0 0 0 0 rgba(255,71,87,0); }
}

/* 6. RESPONSIVE ========================================================== */
@media (max-width: 1024px) {
	.es-cart-meta, .es-account-text { display: none; }
	.es-header__inner { gap: 18px; }
	ul.products { grid-template-columns: repeat(4, 1fr); }
	.es-catgrid { grid-template-columns: repeat(3, 1fr); }
	.es-hero__title { font-size: 2.6rem; }
}

@media (max-width: 860px) {
	.es-header { z-index: auto; }
	.es-burger { display: flex; order: -1; position: relative; z-index: 1001; }
	.es-header__inner { min-height: 68px; flex-wrap: wrap; }
	.es-search { order: 3; flex-basis: 100%; max-width: none; padding-bottom: 14px; }
	.es-topbar__links { display: none; }
	.es-topbar__inner { justify-content: center; }

	/* Nav becomes a slide-in drawer */
	.es-nav {
		position: fixed;
		top: 0;
		left: 0;
		width: 290px;
		max-width: 85vw;
		height: 100%;
		background: #fff;
		border-bottom: 0;
		box-shadow: var(--es-shadow-lg);
		transform: translateX(-100%);
		transition: transform var(--es-trans);
		z-index: 1000;
		overflow-y: scroll;
		-webkit-overflow-scrolling: touch;
		padding-top: 16px;
	}
	body.es-nav-open .es-nav { transform: translateX(0); }
	.es-nav__inner { padding: 0; }
	.es-nav__menu { flex-direction: column; align-items: stretch; gap: 0; }
	.es-nav__item > a { padding: 14px 22px; border-bottom: 1px solid var(--es-line); }
	.es-megamenu {
		position: static;
		width: auto;
		max-width: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		padding: 6px 14px 14px;
	}
	.es-megamenu__grid { grid-template-columns: 1fr 1fr; }
	body.es-nav-open::after {
		content: "";
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, .45);
		z-index: 999;
	}

	ul.products { grid-template-columns: repeat(3, 1fr); gap: 14px; }
	.es-trust__inner { grid-template-columns: repeat(2, 1fr); gap: 22px; }
	.es-catgrid { grid-template-columns: repeat(3, 1fr); }
	.es-banners { grid-template-columns: 1fr; }
	.es-hero__slider { min-height: 460px; }
	.es-slide__inner { min-height: 460px; padding: 44px 20px; }
	.es-slide__content { max-width: 100%; }
	.es-hero__title { font-size: 2.1rem; }
	.es-section { padding: 44px 0; }
	.es-section__title { font-size: 1.7rem; }

	/* Shop: filters collapse, single product stacks */
	.es-shop { grid-template-columns: 1fr; gap: 0; }
	.es-filters-toggle { display: inline-flex; align-items: center; gap: 8px; background: var(--es-ink); color: #fff; border: 0; border-radius: 50px; padding: .6em 1.4em; font-family: var(--es-font); font-weight: 600; cursor: pointer; margin-bottom: 18px; }
	.es-shop__filters-inner { display: none; margin-bottom: 20px; }
	.es-shop__filters.is-open .es-shop__filters-inner { display: block; }
	.es-filters { position: static; }
	.single-product div.product .woocommerce-product-gallery,
	.single-product div.product .summary { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; }
	.single-product .product_title { font-size: 1.7rem; }

	/* Checkout / account stack on mobile */
	.woocommerce-checkout form.checkout.woocommerce-checkout { grid-template-columns: 1fr; }
	.woocommerce-checkout #customer_details,
	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
	.woocommerce-account .woocommerce { flex-direction: column; }
	.woocommerce-account .woocommerce-MyAccount-navigation { flex-basis: auto; width: 100%; }
	.woocommerce-account #customer_login.col2-set { grid-template-columns: 1fr; }
	.es-contact { grid-template-columns: 1fr; }
	.es-contact-form .es-form-grid { grid-template-columns: 1fr; }

	.es-about-focus { grid-template-columns: 1fr; }
	.es-about-stats { grid-template-columns: 1fr; }
	.es-about-cap { grid-template-columns: 1fr; }
	.es-about-cats { grid-template-columns: 1fr 1fr; }
	.es-about-vm { grid-template-columns: 1fr; }
	.es-about-title { font-size: 1.7rem; }
	.es-about-h { font-size: 1.6rem !important; }
}

@media (max-width: 560px) {
	.es-footer__grid { grid-template-columns: 1fr 1fr; gap: 26px; }
	.es-footer__about { grid-column: 1 / -1; }
	.es-newsletter { flex-direction: column; align-items: stretch; text-align: center; }
	.es-newsletter__form { flex-direction: column; }
	.es-newsletter__form input { min-width: 0; width: 100%; }
	.es-logo { font-size: 1.4rem; }

	/* Topbar: single line on small screens */
	.es-topbar__msg { font-size: .68rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

	ul.products { grid-template-columns: repeat(3, 1fr); gap: 8px; }
	.es-catgrid { grid-template-columns: repeat(2, 1fr); }
	.es-trust__inner { grid-template-columns: 1fr 1fr; }
	.es-hero__title { font-size: 1.9rem; }
	.es-hero__subtitle { font-size: 1.05rem; }
	.es-promo__inner { flex-direction: column; text-align: center; }
	.es-catgrid__imgwrap { width: 80px; height: 80px; }
	.es-banners { grid-template-columns: 1fr; }
	.es-slider__arrow { display: none; }
	.es-hero__slider { min-height: 420px; }
	.es-slide__inner { min-height: 420px; }
	.es-hero__title { font-size: 1.85rem; }
	.es-about-cats { grid-template-columns: 1fr; }
}

/* ==========================================================================
   MOBILE FINE-TUNING
   ========================================================================== */

/* ---- Mobile product count: hide last item so grid stays clean ----------- */
/* Homepage sections: 10 desktop (2×5), 9 mobile (3×3) */
@media (max-width: 860px) {
	.es-products-wrap ul.products li.product:nth-child(10) { display: none !important; }
}
/* Shop/Category: 52 desktop, 51 mobile (3×17) */
@media (max-width: 860px) {
	.es-shop__main ul.products li.product:nth-child(52) { display: none !important; }
}

/* ---- Tablet (≤ 860px) additions ---------------------------------------- */
@media (max-width: 860px) {

	/* Topbar message: allow wrapping so it doesn't overflow narrow screens */
	.es-topbar__msg { font-size: .8rem; line-height: 1.4; }
	.es-topbar__inner { min-height: 38px; padding: 6px 0; }

	/* Shop toolbar: stack result count + ordering vertically */
	.es-shop__main .woocommerce-result-count,
	.es-shop__main .woocommerce-ordering { float: none; display: block; width: 100%; }
	.es-shop__main .woocommerce-ordering { margin-top: 8px; }
	.woocommerce-ordering select, .orderby { width: 100%; }

	/* Product grid: override .es-products-wrap ul.products specificity */
	.es-products-wrap ul.products,
	ul.products { grid-template-columns: repeat(3, 1fr) !important; gap: 10px !important; }

	/* Product card images: slightly less tall on tablet */
	ul.products li.product a img { height: 150px; }

	/* Trust strip: reduce size + add breathing room */
	.es-trust__inner { padding: 18px 20px; gap: 12px; }
	.es-trust__icon { font-size: 1.5rem; }
	.es-trust__item strong { font-size: .88rem; }
	.es-trust__item span { font-size: .78rem; }

	/* Single product: buttons full-width + comfortable stacking */
	.single-product .single_add_to_cart_button { width: 100%; }
	.single-product form.cart:not(.variations_form) { flex-direction: column; align-items: stretch; }
	.single-product form.cart .quantity { align-self: flex-start; }

	/* Cart: make table horizontally scrollable instead of overflowing the page */
	.woocommerce-cart .woocommerce-cart-form { overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.woocommerce-cart table.cart { min-width: 540px; }

	/* Cart collaterals: full width */
	.woocommerce-cart .cart-collaterals .cart_totals { max-width: 100%; width: 100%; }

	/* My Account navigation: horizontal scroll on narrow screens */
	.woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 6px; }
	.woocommerce-account .woocommerce-MyAccount-navigation li a { padding: 9px 14px; white-space: nowrap; }

	/* Floating buttons: nudge up on mobile so they clear the bottom browser bar */
	.es-floats { bottom: 24px; right: 16px; }
	.es-float { width: 50px; height: 50px; }
}

/* ---- Small mobile (≤ 560px) additions ---------------------------------- */
@media (max-width: 560px) {

	/* Header: tighter gap, burger visible above logo */
	.es-header__inner { gap: 12px; min-height: 60px; }
	.es-branding .custom-logo { max-height: 44px; }

	/* Product cards: 3-col on mobile — override specificity + tighter everything */
	.es-products-wrap ul.products,
	ul.products { grid-template-columns: repeat(3, 1fr) !important; gap: 8px !important; }
	ul.products li.product { padding: 8px !important; }
	ul.products li.product a img { height: 95px; }
	ul.products li.product .woocommerce-loop-product__title { font-size: .75rem !important; min-height: 0; -webkit-line-clamp: 2; }
	ul.products li.product .price { font-size: .85rem; margin-bottom: 8px; }
	ul.products li.product .button { font-size: .72rem !important; padding: .45em .7em !important; }

	/* Section headings */
	.es-section { padding: 36px 0; }
	.es-section__title { font-size: 1.55rem; }

	/* Hero actions: stack on small screens */
	.es-hero__actions { flex-direction: column; align-items: flex-start; gap: 10px; }
	.es-hero__actions .es-btn { width: 100%; max-width: 240px; text-align: center; justify-content: center; }

	/* Hero slide: reduce padding */
	.es-slide__inner { padding: 36px 16px; }

	/* Single product: smaller title + price */
	.single-product .product_title { font-size: 1.45rem; }
	.single-product .summary .price { font-size: 1.35rem; }
	.single-product .es-buy-now { font-size: .9rem !important; padding: .85em 1.5em !important; }

	/* Safe checkout badges: tighter */
	.es-safe-checkout { padding: 14px 12px; }
	.es-pay { font-size: .7rem; padding: 0 8px; height: 30px; }

	/* Promo CTA: content was touching top/bottom edges when stacked */
	.es-promo__inner { padding: 36px 20px; gap: 20px; }
	.es-promo__text h2 { font-size: 1.5rem; }

	/* Newsletter: matching vertical breathing room */
	.es-newsletter { padding: 32px 20px; gap: 20px; }
	.es-newsletter__text h3 { font-size: 1.15rem; }

	/* Trust strip: tighter on small mobile */
	.es-trust__inner { grid-template-columns: 1fr 1fr; padding: 16px; gap: 10px; }
	.es-trust__icon { font-size: 1.3rem; }
	.es-trust__item strong { font-size: .82rem; }
	.es-trust__item span { font-size: .72rem; }

	/* Footer bottom bar: stack vertically */
	.es-footer__bottom-inner { flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 18px 16px; }
	.es-footer__legal { gap: 12px; }
	.es-payments { font-size: .78rem; }

	/* Contact cards: tighter */
	.es-contact__card { padding: 16px; gap: 12px; }
	.es-contact__icon { font-size: 1.4rem; }
	.es-about-cta { padding: 28px 20px; }
	.es-about-cta p { font-size: 1.05rem; }
	.es-about-vm__card { padding: 24px 20px; }

	/* WC notices: less padding on small screens */
	.woocommerce-message, .woocommerce-info, .woocommerce-error { padding: 14px 14px 14px 40px; font-size: .9rem; }

	/* Login / register: reduce card padding */
	.woocommerce-account #customer_login .col-1,
	.woocommerce-account #customer_login .col-2 { padding: 22px 18px; }

	/* Floating buttons: smaller on tiny phones */
	.es-floats { right: 12px; bottom: 20px; gap: 10px; }
	.es-float { width: 46px; height: 46px; }
}

/* ---- Very small phones (≤ 380px) --------------------------------------- */
@media (max-width: 380px) {

	/* Hero */
	.es-hero__title { font-size: 1.55rem; }
	.es-hero__subtitle { font-size: .95rem; }
	.es-hero__slider, .es-slide__inner { min-height: 380px; }

	/* General headings */
	.es-section__title { font-size: 1.35rem; }
	.page:not(.woocommerce-page) .entry-title,
	.es-shop__title { font-size: 1.5rem; }

	/* Mega menu in drawer: single column on very small phones */
	.es-megamenu__grid { grid-template-columns: 1fr; }

	/* Category grid: 2 tight columns */
	.es-catgrid { gap: 10px; }
	.es-catgrid__card { padding: 12px 8px; }
	.es-catgrid__imgwrap { width: 60px; height: 60px; }
	.es-catgrid__name { font-size: .82rem; }

	/* Product cards */
	.es-products-wrap ul.products,
	ul.products { grid-template-columns: repeat(3, 1fr) !important; gap: 6px !important; }
	ul.products li.product { padding: 6px !important; }
	ul.products li.product a img { height: 80px; }
	ul.products li.product .woocommerce-loop-product__title { font-size: .7rem !important; }
	ul.products li.product .price { font-size: .78rem; }
	ul.products li.product .button { font-size: .68rem !important; padding: .4em .6em !important; }

	/* Container: reduce side padding only — vertical padding belongs to individual sections */
	.es-container { padding-left: 14px; padding-right: 14px; }
}
