/* Hemdox Ecommerce Kit — Product / Category / Banner grids (TEREA HUB light + glossy) */

.hemdox-grid {
	--ph-surface: #FFFFFF;
	--ph-elevated: #FFFFFF;
	--ph-border: #DCE6EB;
	--ph-ink: #0B1F2A;
	--ph-muted: #4A5A63;
	--ph-accent: #0098DA;
	--ph-accent-h: #0077B0;
	--ph-flame: linear-gradient(120deg, #0098DA 0%, #0077B0 100%);
	--ph-media-bg: #F1F7FA;
	--ph-cols: 4;
	--ph-gap: 24px;
	--ph-radius: 18px;
	--ph-title-fs: 16px;
	--ph-price-fs: 16px;
	--ph-qty-fs: 16px;
	--ph-shadow: 0 10px 30px -16px rgba(11, 31, 42, .22);
	--ph-shadow-h: 0 22px 46px -22px rgba(11, 31, 42, .32);
	display: grid;
	grid-template-columns: repeat(var(--ph-cols), minmax(0, 1fr));
	gap: var(--ph-gap);
	width: 100%;
}

/* ============================ PRODUCT GRID ============================ */
.hemdox-pcard {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--ph-elevated);
	border: 1px solid var(--ph-border);
	border-radius: var(--ph-radius);
	overflow: hidden;
	box-shadow: var(--ph-shadow);
	transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.hemdox-pcard:hover {
	transform: translateY(-5px);
	border-color: color-mix(in srgb, var(--ph-accent) 45%, var(--ph-border));
	box-shadow: var(--ph-shadow-h);
}
.hemdox-pcard__media {
	position: relative;
	display: block;
	aspect-ratio: var(--ph-ratio, 1 / 1);
	background: var(--ph-media-bg);
	overflow: hidden;
}
.hemdox-pcard__media img {
	width: 100%; height: 100%;
	object-fit: var(--ph-fit, cover);
	transition: transform .45s ease;
}
.hemdox-pcard:hover .hemdox-pcard__media img { transform: scale(1.05); }
.hemdox-pcard__badges { position: absolute; top: 12px; left: 12px; display: flex; gap: 6px; z-index: 3; }
.hemdox-badge {
	font-size: 11px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase;
	padding: 5px 11px; border-radius: 999px; line-height: 1;
}
.hemdox-badge--sale { background: var(--ph-flame); color: #fff; }
.hemdox-badge--feat { background: rgba(0, 152, 218, .1); color: var(--ph-accent); }
.hemdox-pcard__body { display: flex; flex-direction: column; gap: 6px; padding: 16px 16px 10px; text-align: var(--ph-align, left); position: relative; z-index: 2; }
.hemdox-pcard__cat { font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--ph-accent); }
/* title/price: .hemdox-grid prefix raises specificity so theme/global h3 rules can't override the size */
.hemdox-grid h3.hemdox-pcard__title,
.hemdox-grid .hemdox-pcard__title {
	margin: 0; font-size: var(--ph-title-fs, 16px); font-weight: 700; line-height: 1.3;
	display: -webkit-box; -webkit-line-clamp: var(--ph-title-lines, 99); -webkit-box-orient: vertical; overflow: hidden;
}
.hemdox-pcard__title a { color: var(--ph-ink); text-decoration: none; }
.hemdox-pcard__title a:hover { color: var(--ph-accent); }
.hemdox-pcard__rating { color: #F5A623; font-size: 13px; letter-spacing: 2px; }
.hemdox-grid .hemdox-pcard__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; font-weight: 800; color: var(--ph-ink); font-size: var(--ph-price-fs, 16px); }
.hemdox-pcard__price del { color: var(--ph-muted); font-weight: 500; font-size: .875em; opacity: .8; }
.hemdox-pcard__price ins { text-decoration: none; color: var(--ph-ink); }
.hemdox-pcard__price .woocommerce-Price-amount { white-space: nowrap; }
.hemdox-pcard__foot { margin-top: auto; padding: 6px 16px 16px; position: relative; z-index: 2; }
.hemdox-btn {
	--ph-btn-radius: 12px;
	--ph-btn-bg: transparent;
	--ph-btn-color: var(--ph-accent);
	--ph-btn-bd: var(--ph-accent);
	--ph-btn-bg-h: var(--ph-accent);
	--ph-btn-color-h: #fff;
	--ph-btn-pad-y: 12px;
	--ph-btn-fs: 14px;
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	width: 100%; padding: var(--ph-btn-pad-y) 16px; border-radius: var(--ph-btn-radius);
	border: 1.5px solid var(--ph-btn-bd);
	background: var(--ph-btn-bg); color: var(--ph-btn-color);
	font-size: var(--ph-btn-fs); font-weight: 700; line-height: 1.2; text-align: center;
	white-space: nowrap; text-decoration: none; cursor: pointer;
	transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.hemdox-btn:hover { background: var(--ph-btn-bg-h); color: var(--ph-btn-color-h); border-color: var(--ph-btn-bg-h); }
.hemdox-btn.loading { opacity: .7; pointer-events: none; }
.hemdox-btn.added { background: var(--ph-btn-bg-h); color: var(--ph-btn-color-h); border-color: var(--ph-btn-bg-h); }
/* style variants (base = outline) */
.hemdox-btn--fill { --ph-btn-bg: var(--ph-accent); --ph-btn-color: #fff; --ph-btn-bd: var(--ph-accent); --ph-btn-bg-h: var(--ph-accent-h, #0077B0); }
.hemdox-btn--soft { --ph-btn-bg: rgba(0, 152, 218, .1); --ph-btn-color: var(--ph-accent); --ph-btn-bd: transparent; --ph-btn-bg-h: var(--ph-accent); --ph-btn-color-h: #fff; }
.hemdox-btn--flame { --ph-btn-bd: transparent; background: var(--ph-flame); color: #fff; --ph-btn-color: #fff; }
.hemdox-btn--flame:hover { filter: brightness(1.06); background: var(--ph-flame); color: #fff; }

/* ============================ CATEGORY GRID (flat + highlighted, no shadow) ============================ */
.hemdox-ctile {
	position: relative; display: flex; align-items: flex-end;
	min-height: var(--ph-tile-h, 240px);
	border-radius: var(--ph-radius); overflow: hidden;
	text-decoration: none; isolation: isolate; color: #fff;
	background: #F1F7FA;
	outline: 2px solid transparent; outline-offset: 0;
	transition: transform .28s ease, outline-color .2s ease;
}
.hemdox-ctile:hover { transform: translateY(-5px); outline-color: #0077B0; }
.hemdox-ctile:focus-visible { outline: 2px solid var(--ph-accent); }

.hemdox-ctile__bg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; transition: transform .5s ease; }
.hemdox-ctile:hover .hemdox-ctile__bg { transform: scale(1.06); }
.hemdox-ctile__overlay { position: absolute; inset: 0; z-index: 1; }

/* SOLID tiles (category has no image) — vivid brand gradient blocks, cycled for variety */
.hemdox-ctile--solid .hemdox-ctile__bg { background-image: linear-gradient(150deg, #0098DA 0%, #4C1D95 100%); }
.hemdox-cgrid .hemdox-ctile--solid:nth-child(4n+2) .hemdox-ctile__bg { background-image: linear-gradient(150deg, #0B1F2A 0%, #2A2F6B 100%); }
.hemdox-cgrid .hemdox-ctile--solid:nth-child(4n+3) .hemdox-ctile__bg { background-image: linear-gradient(150deg, #0098DA 0%, #0077B0 100%); }
.hemdox-cgrid .hemdox-ctile--solid:nth-child(4n+4) .hemdox-ctile__bg { background-image: linear-gradient(150deg, #1E1B4B 0%, #0098DA 100%); }
.hemdox-ctile--solid .hemdox-ctile__overlay { background: radial-gradient(120% 80% at 100% 0, rgba(255,255,255,.18), rgba(255,255,255,0) 55%); }

/* IMAGE tiles — cover image + dark bottom gradient so white text stays legible */
.hemdox-ctile--img .hemdox-ctile__overlay { background: linear-gradient(180deg, rgba(11,31,42,0) 28%, rgba(11,31,42,.55) 66%, rgba(11,31,42,.9) 100%); }

.hemdox-ctile__body { position: relative; z-index: 2; padding: 22px; width: 100%; }
.hemdox-ctile__name { margin: 0; font-size: 19px; font-weight: 800; letter-spacing: -.3px; line-height: 1.2; color: #fff; text-shadow: 0 1px 14px rgba(11,31,42,.3); }
.hemdox-ctile__count { display: inline-block; margin-top: 6px; font-size: 12.5px; font-weight: 600; color: rgba(255,255,255,.85); }
.hemdox-ctile__cta {
	display: inline-flex; align-items: center; gap: 6px; margin-top: 14px;
	font-size: 13px; font-weight: 800; letter-spacing: .2px; color: #fff;
	background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.42);
	padding: 7px 15px; border-radius: 999px;
	opacity: 0; transform: translateY(6px); transition: opacity .25s ease, transform .25s ease, background .2s ease;
}
.hemdox-ctile:hover .hemdox-ctile__cta { opacity: 1; transform: translateY(0); }
.hemdox-ctile:hover .hemdox-ctile__cta { background: rgba(255,255,255,.28); }

/* ============================ BANNER GRID ============================ */
.hemdox-bcard {
	position: relative; display: flex; align-items: var(--ph-b-valign, center);
	min-height: var(--ph-b-h, 260px);
	border-radius: var(--ph-radius); overflow: hidden;
	border: 1px solid var(--ph-border);
	grid-column: span var(--ph-b-span, 1);
	background: var(--ph-media-bg);
	box-shadow: var(--ph-shadow);
}
.hemdox-bcard__bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .6s ease; }
.hemdox-bcard:hover .hemdox-bcard__bg { transform: scale(1.04); }
.hemdox-bcard__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, .94) 0%, rgba(255, 255, 255, .7) 48%, rgba(255, 255, 255, .2) 100%); }
.hemdox-bcard__body { position: relative; z-index: 2; padding: clamp(22px, 4vw, 46px); max-width: 560px; text-align: var(--ph-b-align, left); }
.hemdox-bcard__eyebrow { font-size: 12px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; color: var(--ph-accent); }
.hemdox-bcard__heading { margin: 8px 0 10px; font-size: clamp(24px, 3.2vw, 38px); font-weight: 800; line-height: 1.08; color: var(--ph-ink); letter-spacing: -.5px; }
.hemdox-bcard__text { margin: 0 0 18px; color: var(--ph-muted); font-size: 15px; line-height: 1.6; }
.hemdox-bcard__btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 13px 24px; border-radius: 999px;
	background: var(--ph-flame); color: #fff; font-weight: 700; font-size: 14px;
	text-decoration: none; box-shadow: 0 12px 26px -12px rgba(0, 152, 218, .6);
	transition: transform .2s ease, box-shadow .2s ease;
}
.hemdox-bcard__btn:hover { transform: translateY(-2px); box-shadow: 0 16px 30px -12px rgba(0, 152, 218, .7); }
.hemdox-bcard__btn--ghost { background: transparent; color: var(--ph-ink); border: 1.5px solid var(--ph-accent); box-shadow: none; }
.hemdox-bcard__btn--ghost:hover { background: var(--ph-accent); color: #fff; }

/* ============================ QUANTITY + ADD TO CART ============================ */
.hemdox-atc { display: flex; flex-direction: column; gap: 8px; }
.hemdox-qty {
	display: flex; align-items: stretch; width: 100%;
	border: 1px solid var(--ph-border); border-radius: var(--ph-btn-radius, 12px); overflow: hidden; background: #fff;
}
.hemdox-qty__btn {
	flex: 0 0 40px; border: 0; background: transparent; color: var(--ph-ink);
	font-size: 18px; font-weight: 700; line-height: 1; cursor: pointer;
	display: flex; align-items: center; justify-content: center; min-height: 42px;
	transition: background .15s ease, color .15s ease;
}
.hemdox-qty__btn:hover { background: rgba(0, 152, 218, .08); color: var(--ph-accent); }
/* hard reset so the number field never shows its own box; .hemdox-grid prefix + !important
   so theme/Woo global `input` rules can't shrink or hide the quantity value */
.hemdox-grid .hemdox-qty__input,
.hemdox-qty__input {
	flex: 1 1 auto; width: 100%; min-width: 0; height: auto; margin: 0; padding: 0;
	border: 0 !important; outline: 0 !important; box-shadow: none !important; background: transparent !important;
	text-align: center; line-height: 1 !important;
	font-size: var(--ph-qty-fs, 16px) !important; font-weight: 700 !important; color: var(--ph-qty-color, var(--ph-ink)) !important;
	-moz-appearance: textfield; -webkit-appearance: none; appearance: none; border-radius: 0; opacity: 1 !important;
}
.hemdox-qty__input:focus { border: 0 !important; box-shadow: none !important; }
.hemdox-qty__input::-webkit-outer-spin-button,
.hemdox-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.hemdox-btn--muted { border-color: var(--ph-border); color: var(--ph-muted); }
.hemdox-btn--muted:hover { background: var(--ph-border); color: var(--ph-ink); box-shadow: none; }
.hemdox-badge--oos { background: #DCE6EB; color: var(--ph-muted); }

/* ============================ CATALOGUE (mobile-first) ============================ */
.hemdox-catalogue {
	--ph-ink: #0B1F2A; --ph-muted: #4A5A63; --ph-accent: #0098DA; --ph-border: #DCE6EB;
	width: 100%;
}
/* breadcrumb */
.hemdox-crumbs { font-size: var(--ph-crumb-fs, 14px); color: var(--ph-muted); margin: 0 0 12px; line-height: 1.6; }
.hemdox-crumbs a { color: var(--ph-muted); text-decoration: none; }
.hemdox-crumbs a:hover { color: var(--ph-accent); }
.hemdox-crumbs .sep, .hemdox-crumbs .separator { margin: 0 8px; opacity: .5; }
.hemdox-crumbs .rank-math-breadcrumb p { margin: 0; }
/* heading */
.hemdox-cat-title {
	margin: 0 0 12px; color: var(--ph-ink); font-weight: 800; letter-spacing: -.5px;
	font-size: var(--ph-h1-fs, clamp(26px, 6vw, 40px)); line-height: 1.1;
}
/* category image */
.hemdox-cat-hero {
	width: 100%; aspect-ratio: 16 / 7; border-radius: 16px; margin: 0 0 20px;
	background-size: cover; background-position: center; border: 1px solid var(--ph-border);
	box-shadow: var(--ph-shadow, 0 10px 30px -16px rgba(11,31,42,.22));
}
/* toolbar */
.hemdox-cat-toolbar {
	display: flex; flex-direction: column; gap: 10px; align-items: stretch;
	margin: 0 0 18px; padding-bottom: 16px; border-bottom: 1px solid var(--ph-border);
}
.hemdox-cat-toolbar .woocommerce-result-count { margin: 0; color: var(--ph-muted); font-size: var(--ph-count-fs, 15px); }
.hemdox-cat-toolbar .woocommerce-ordering { margin: 0; }
.hemdox-cat-toolbar select {
	width: 100%; padding: 10px 14px; border-radius: 999px; border: 1px solid var(--ph-border);
	background: #fff; color: var(--ph-ink); font-size: 14px; font-weight: 600;
}
/* pagination */
.hemdox-cat-pagination { margin-top: 28px; }
.hemdox-cat-pagination .woocommerce-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; list-style: none; margin: 0; padding: 0; border: 0; }
.hemdox-cat-pagination .woocommerce-pagination ul li { border: 0; margin: 0; }
.hemdox-cat-pagination .woocommerce-pagination a,
.hemdox-cat-pagination .woocommerce-pagination span {
	display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px;
	border-radius: 999px; border: 1px solid var(--ph-border); background: #fff; color: var(--ph-ink);
	font-weight: 700; text-decoration: none; transition: all .18s ease;
}
.hemdox-cat-pagination .woocommerce-pagination a:hover { border-color: var(--ph-accent); color: var(--ph-accent); }
.hemdox-cat-pagination .woocommerce-pagination .current { background: var(--ph-accent); color: #fff; border-color: var(--ph-accent); }

/* ============================ RICH-TEXT DESCRIPTION (JUUL-blue) ============================ */
/* Self-scoping brand tokens: honour the widget's --ph-* when set, JUUL-blue fallbacks otherwise. */
.hemdox-rte {
	--rte-accent: var(--ph-accent, #0098DA);
	--rte-accent-2: #005E8C;
	--rte-accent-dark: #0077B0;
	--rte-ink: var(--ph-ink, #0B1F2A);
	--rte-muted: #4A5A63;
	--rte-border: #DCE6EB;
	--rte-tint: #EAF7FD;
	--rte-tint-2: #F5FBFE;
	margin-top: 44px; padding-top: 32px; border-top: 1px solid var(--rte-border);
	color: var(--rte-muted); font-size: 16.5px; line-height: 1.8; max-width: 860px;
	-webkit-font-smoothing: antialiased;
}
.hemdox-rte > *:first-child { margin-top: 0; }

/* Headings — navy ink, accent underline marker on h2 */
.hemdox-rte h2 {
	position: relative; color: var(--rte-ink); font-size: clamp(23px, 4vw, 30px); font-weight: 800;
	letter-spacing: -.5px; line-height: 1.18; margin: 42px 0 18px; padding-bottom: 14px;
}
.hemdox-rte h2::after {
	content: ""; position: absolute; left: 0; bottom: 0; width: 48px; height: 4px;
	border-radius: 999px; background: linear-gradient(90deg, var(--rte-accent), #33B5E6);
}
.hemdox-rte h3 { color: var(--rte-ink); font-size: clamp(19px, 3vw, 23px); font-weight: 700; letter-spacing: -.3px; line-height: 1.3; margin: 30px 0 12px; }
.hemdox-rte h4 { color: var(--rte-ink); font-size: 17px; font-weight: 700; margin: 24px 0 8px; }

/* Body */
.hemdox-rte p { margin: 0 0 18px; }
.hemdox-rte strong, .hemdox-rte b { color: var(--rte-ink); font-weight: 700; }

/* Links — accent, animated underline */
.hemdox-rte a {
	color: var(--rte-accent); font-weight: 600; text-decoration: underline;
	text-decoration-thickness: 1.5px; text-underline-offset: 3px;
	text-decoration-color: rgba(0,152,218,.4);
	transition: color .15s ease, text-decoration-color .15s ease;
}
.hemdox-rte a:hover { color: var(--rte-accent-dark); text-decoration-color: currentColor; }

/* Lists — accent square bullets + accent numeral chips */
.hemdox-rte ul, .hemdox-rte ol { margin: 0 0 18px; padding-left: 4px; }
.hemdox-rte li { position: relative; margin: 0 0 10px; padding-left: 30px; }
.hemdox-rte ul { list-style: none; }
.hemdox-rte ul > li::before {
	content: ""; position: absolute; left: 2px; top: .58em; width: 9px; height: 9px;
	border-radius: 3px; background: linear-gradient(135deg, var(--rte-accent), var(--rte-accent-2));
	box-shadow: 0 1px 3px rgba(0,152,218,.35);
}
.hemdox-rte ol { list-style: none; counter-reset: rte; }
.hemdox-rte ol > li { counter-increment: rte; }
.hemdox-rte ol > li::before {
	content: counter(rte); position: absolute; left: 0; top: .05em;
	width: 22px; height: 22px; border-radius: 999px; background: var(--rte-tint);
	color: var(--rte-accent-dark); font-size: 12px; font-weight: 800; line-height: 22px; text-align: center;
}
.hemdox-rte li > ul, .hemdox-rte li > ol { margin: 10px 0 0; }

/* Blockquote — accent border + light-blue tint */
.hemdox-rte blockquote {
	margin: 24px 0; padding: 16px 22px; border-left: 4px solid var(--rte-accent);
	background: var(--rte-tint); border-radius: 0 14px 14px 0; color: var(--rte-ink);
	font-size: 16px; font-style: normal;
}
.hemdox-rte blockquote p { margin-bottom: 10px; }
.hemdox-rte blockquote p:last-child { margin-bottom: 0; }

/* Media & rules */
.hemdox-rte img { max-width: 100%; height: auto; border-radius: 14px; }
.hemdox-rte hr { border: 0; border-top: 1px solid var(--rte-border); margin: 28px 0; }

/* Tables — cool borders, tinted header, zebra rows */
.hemdox-rte table { width: 100%; border-collapse: collapse; margin: 0 0 18px; font-size: 15px; }
.hemdox-rte th, .hemdox-rte td { border-bottom: 1px solid var(--rte-border); padding: 12px 14px; text-align: left; }
.hemdox-rte th { background: var(--rte-tint); color: var(--rte-ink); font-weight: 700; }
.hemdox-rte tbody tr:nth-child(even) td { background: var(--rte-tint-2); }
.hemdox-rte tbody tr:last-child td { border-bottom: 0; }

/* ============================ AJAX SEARCH (clean single pill) ============================ */
.hemdox-search-wrap { --ph-accent: #0098DA; --ph-ink: #0B1F2A; --ph-muted: #4A5A63; --ph-border: #DCE6EB; width: 100%; }
.hemdox-search {
	position: relative; display: flex; align-items: center; width: 100%; max-width: 100%;
	background: #fff; border: 1px solid var(--ph-border); border-radius: 999px; padding: 5px 8px 5px 6px;
	box-shadow: 0 6px 20px -14px rgba(11,31,42,.28);
	transition: border-color .18s ease, box-shadow .18s ease;
}
.hemdox-search:focus-within { border-color: var(--ph-accent); box-shadow: 0 8px 22px -12px rgba(0,152,218,.4); }
/* magnifier sits in a soft accent circle */
.hemdox-search__icon {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 34px; height: 34px; margin-right: 6px; border: 0; border-radius: 50%;
	background: #F1EFFA; color: var(--ph-accent); cursor: pointer; padding: 0;
	transition: background .18s ease, color .18s ease;
}
.hemdox-search__icon:hover { background: var(--ph-accent); color: #fff; }
/* hard reset the input so there is no inner box / native styling */
.hemdox-search__input {
	flex: 1 1 auto; min-width: 0; height: 38px; margin: 0;
	border: 0 !important; outline: 0 !important; box-shadow: none !important;
	background: transparent !important; padding: 0 8px 0 2px; font-size: 15px; font-weight: 500; color: var(--ph-ink);
	-webkit-appearance: none; appearance: none;
}
.hemdox-search__input::placeholder { color: var(--ph-muted); opacity: 1; }
.hemdox-search__input::-webkit-search-decoration,
.hemdox-search__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.hemdox-search__panel {
	position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 300;
	background: #fff; border: 1px solid var(--ph-border); border-radius: 16px; overflow: hidden;
	box-shadow: 0 24px 50px -20px rgba(11,31,42,.4); max-height: 70vh; overflow-y: auto;
}
.hemdox-search__item { display: flex; align-items: center; gap: 12px; padding: 10px 14px; text-decoration: none; border-bottom: 1px solid var(--ph-border); }
.hemdox-search__item:last-child { border-bottom: 0; }
.hemdox-search__item:hover { background: #EAF7FD; }
.hemdox-search__thumb { flex: 0 0 48px; width: 48px; height: 48px; border-radius: 10px; overflow: hidden; background: #F1F7FA; }
.hemdox-search__thumb img { width: 100%; height: 100%; object-fit: cover; }
.hemdox-search__meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hemdox-search__name { font-size: 14px; font-weight: 700; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hemdox-search__price { font-size: 13px; color: var(--ph-muted); }
.hemdox-search__price .woocommerce-Price-amount { color: var(--ph-ink); font-weight: 700; }
.hemdox-search__loading, .hemdox-search__empty { padding: 16px; text-align: center; color: var(--ph-muted); font-size: 14px; }
@media (max-width: 767px) {
	.hemdox-search__input { font-size: 16px; height: 42px; } /* 16px avoids iOS zoom */
}

/* ============================ HEMDOX BREADCRUMB ============================ */
.hemdox-breadcrumb { --ph-accent: #0098DA; --ph-ink: #0B1F2A; --ph-muted: #4A5A63; --ph-chip: #EAF7FD; width: 100%; }
.hemdox-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.hemdox-breadcrumb li { display: inline-flex; align-items: center; gap: 6px; }
.hemdox-breadcrumb .sep { color: var(--ph-muted); opacity: .55; font-size: 14px; }
.hemdox-breadcrumb a { color: var(--ph-muted); text-decoration: none; font-size: 13px; font-weight: 600; transition: color .18s ease, background .18s ease; }
.hemdox-breadcrumb .current { color: var(--ph-ink); font-size: 13px; font-weight: 700; }
.hemdox-breadcrumb .home-ico { font-size: 15px; }
/* soft-chip variant (decorative) */
.hemdox-breadcrumb--chips a { background: var(--ph-chip); padding: 6px 12px; border-radius: 999px; }
.hemdox-breadcrumb--chips a:hover { background: rgba(0,152,218,.12); color: var(--ph-accent); }
.hemdox-breadcrumb--chips .current { background: linear-gradient(120deg, rgba(0,152,218,.12), rgba(255,61,46,.1)); padding: 6px 12px; border-radius: 999px; }
.hemdox-breadcrumb--plain a:hover { color: var(--ph-accent); }

/* ============================ HEMDOX PRODUCT INFO (brand, original) ============================ */
.hemdox-pinfo {
	--ph-accent: #0098DA; --ph-accent2: #0077B0; --ph-accent3: #0B1F2A;
	--ph-ink: #0B1F2A; --ph-muted: #4A5A63; --ph-border: #DCE6EB; --ph-panel: #F1F7FA;
	display: flex; flex-direction: column; gap: 22px; width: 100%;
}
.hemdox-pinfo__head { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 800; letter-spacing: -.2px; color: var(--ph-ink); }
.hemdox-pinfo__head--plain { margin-bottom: -6px; }
.hemdox-pinfo__cardico { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 8px; background: rgba(0,152,218,.12); color: var(--ph-accent); }

/* payment panel */
.hemdox-pinfo__pay { background: var(--ph-panel); border: 1px solid var(--ph-border); border-radius: 18px; padding: 18px; }
.hemdox-pinfo__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.hemdox-chip { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--ph-border); background: #fff; color: var(--ph-ink); font-size: 13.5px; font-weight: 700; }
.hemdox-chip.is-active { background: linear-gradient(120deg, var(--ph-accent), var(--ph-accent2)); border-color: transparent; color: #fff; box-shadow: 0 8px 18px -10px rgba(0,152,218,.6); }
.hemdox-chip__tick { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%; background: rgba(255,255,255,.28); font-size: 11px; }
.hemdox-pinfo__note { margin: 14px 0 0; color: var(--ph-muted); font-size: 13.5px; line-height: 1.6; }

/* delivery ladder — light cards, per-tier accent rail + medallion + corner tag */
.hemdox-pinfo__ladder { display: flex; flex-direction: column; gap: 10px; }
.hemdox-pinfo__tier {
	--tier: var(--ph-accent);
	position: relative; display: flex; align-items: center; gap: 14px;
	padding: 16px 18px 16px 20px; border-radius: 16px; background: #fff;
	border: 1px solid var(--ph-border); border-left: 4px solid var(--tier); overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease;
}
.hemdox-pinfo__tier:hover { transform: translateX(3px); box-shadow: 0 14px 30px -20px rgba(11,31,42,.4); }
.hemdox-pinfo__tier--0 { --tier: var(--ph-accent); }
.hemdox-pinfo__tier--1 { --tier: var(--ph-accent2); }
.hemdox-pinfo__tier--2 { --tier: var(--ph-accent3); }
.hemdox-pinfo__medal { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 14px; background: color-mix(in srgb, var(--tier) 14%, #fff); font-size: 22px; }
.hemdox-pinfo__tierbody h4 { margin: 0 0 3px; font-size: 15.5px; font-weight: 800; color: var(--ph-ink); }
.hemdox-pinfo__tierbody p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ph-muted); }
.hemdox-pinfo__tag { position: absolute; top: 0; right: 0; font-size: 10px; font-weight: 800; letter-spacing: .8px; color: #fff; background: var(--tier); padding: 4px 10px; border-radius: 0 0 0 12px; }

/* guarantee strip */
.hemdox-pinfo__guarantee { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 16px; background: linear-gradient(120deg, rgba(0,152,218,.08), rgba(255,61,46,.07)); border: 1px dashed color-mix(in srgb, var(--ph-accent) 40%, var(--ph-border)); }
.hemdox-pinfo__guaricon { font-size: 26px; }
.hemdox-pinfo__guarantee strong { display: block; font-size: 14.5px; font-weight: 800; color: var(--ph-ink); }
.hemdox-pinfo__guarantee span { display: block; font-size: 13px; color: var(--ph-muted); margin-top: 2px; }

/* trust badges */
.hemdox-pinfo__badges { display: flex; flex-wrap: wrap; gap: 8px; }
.hemdox-pinfo__badge { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 10px; background: #fff; border: 1px solid var(--ph-border); font-size: 12.5px; font-weight: 700; color: var(--ph-ink); }

/* ============================ SINGLE PRODUCT ============================ */
.hemdox-pgallery { --ph-media-bg: #F1F7FA; --ph-accent: #0098DA; width: 100%; }
.hemdox-pgallery__stage {
	position: relative; aspect-ratio: 1 / 1; width: 100%; background: var(--ph-media-bg);
	border: 1px solid #DCE6EB; border-radius: 20px; overflow: hidden;
}
.hemdox-pgallery__main { width: 100%; height: 100%; object-fit: contain; display: block; }
.hemdox-pgallery__badges { position: absolute; top: 14px; left: 14px; z-index: 2; display: flex; gap: 6px; }
.hemdox-badge--new { background: #16B364; color: #fff; }
.hemdox-pgallery__thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 12px; }
.hemdox-pgallery__thumb { padding: 0; border: 1px solid #DCE6EB; border-radius: 12px; overflow: hidden; background: var(--ph-media-bg); cursor: pointer; aspect-ratio: 1 / 1; transition: border-color .18s ease; }
.hemdox-pgallery__thumb img { width: 100%; height: 100%; object-fit: contain; }
.hemdox-pgallery__thumb.is-active, .hemdox-pgallery__thumb:hover { border-color: var(--ph-accent); }

.hemdox-psummary { --ph-ink: #0B1F2A; --ph-muted: #4A5A63; --ph-accent: #0098DA; --ph-border: #DCE6EB; display: flex; flex-direction: column; gap: 14px; }
.hemdox-psummary__eyebrow { font-size: 12px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; color: var(--ph-accent); }
.hemdox-psummary__title { margin: 0; color: var(--ph-ink); font-weight: 800; letter-spacing: -.5px; font-size: clamp(24px, 5vw, 34px); line-height: 1.12; }
.hemdox-psummary__rating { display: flex; align-items: center; gap: 10px; }
.hemdox-psummary__rating .star-rating { color: #F5A623; }
.hemdox-psummary__reviews { font-size: 13px; color: var(--ph-muted); }
.hemdox-psummary__short { border-top: 1px solid var(--ph-border); border-bottom: 1px solid var(--ph-border); padding: 14px 0; margin: 0; font-size: 15px; color: var(--ph-muted); }
.hemdox-psummary__short ul { margin: 0; }
.hemdox-psummary__price { font-size: 26px; font-weight: 800; color: var(--ph-ink); }
.hemdox-psummary__price del { color: var(--ph-muted); font-weight: 500; font-size: 18px; opacity: .7; margin-right: 8px; }
.hemdox-psummary__price ins { text-decoration: none; }
.hemdox-psummary__stock { font-size: 13px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; }
.hemdox-psummary__stock.is-in { color: #16B364; }
.hemdox-psummary__stock.is-in::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #16B364; }
.hemdox-psummary__stock.is-out { color: #E5484D; }
.hemdox-psummary__meta { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--ph-muted); border-top: 1px solid var(--ph-border); padding-top: 14px; }
.hemdox-psummary__meta b { color: var(--ph-ink); }
.hemdox-psummary__meta a { color: var(--ph-accent); text-decoration: none; }

.hemdox-atc--single { flex-direction: row; align-items: center; gap: 12px; }
.hemdox-atc--single .hemdox-qty { width: 140px; flex: 0 0 auto; }
.hemdox-atc--single .hemdox-btn { flex: 1 1 auto; width: auto; }
.hemdox-btn--solid { background: linear-gradient(120deg, #0098DA, #0077B0); color: #fff !important; border: 0; padding: 15px 22px; font-size: 15px; box-shadow: 0 12px 26px -12px rgba(0,152,218,.6); }
.hemdox-btn--solid:hover { filter: brightness(1.05); background: linear-gradient(120deg, #0098DA, #0077B0); color: #fff !important; }

.hemdox-tabs { --ph-ink: #0B1F2A; --ph-muted: #4A5A63; --ph-accent: #0098DA; --ph-border: #DCE6EB; --ph-track: #EAF3F8; width: 100%; }
/* Modern segmented-control nav (iOS-style): light track, active tab = white chip.
   High specificity + !important so the site-wide `button{}` fill can't bleed through. */
.hemdox-tabs__nav {
	display: inline-flex; gap: 4px; max-width: 100%; margin: 0 0 28px; padding: 5px;
	background: var(--ph-track); border: 1px solid var(--ph-border); border-radius: 14px;
	overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.hemdox-tabs__nav::-webkit-scrollbar { display: none; }
.hemdox-tabs .hemdox-tabs__btn {
	appearance: none; border: 0 !important; box-shadow: none !important; background: transparent !important;
	cursor: pointer; margin: 0 !important; padding: 10px 22px !important; border-radius: 10px !important;
	font-size: 14.5px; font-weight: 700; letter-spacing: .2px; line-height: 1.2;
	color: var(--ph-muted); white-space: nowrap;
	transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}
.hemdox-tabs .hemdox-tabs__btn:hover { color: var(--ph-ink) !important; background: rgba(255,255,255,.5) !important; }
.hemdox-tabs .hemdox-tabs__btn.is-active {
	color: var(--ph-ink) !important;
	background: #fff !important;
	box-shadow: 0 2px 8px -2px rgba(11,31,42,.22) !important;
}
.hemdox-tabs__panel { animation: hemdoxFade .25s ease; }
@keyframes hemdoxFade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* WooCommerce reviews inside the tab */
.hemdox-reviews .commentlist { list-style: none; margin: 0 0 24px; padding: 0; }
.hemdox-reviews .commentlist li { border: 1px solid #DCE6EB; border-radius: 14px; padding: 16px; margin: 0 0 12px; }
.hemdox-reviews .comment-form { display: flex; flex-direction: column; gap: 12px; max-width: 640px; }
.hemdox-reviews .comment-form input:not([type=submit]):not([type=checkbox]),
.hemdox-reviews .comment-form textarea,
.hemdox-reviews .comment-form select { width: 100%; padding: 12px 14px; border: 1px solid #DCE6EB; border-radius: 12px; background: #fff; font-size: 15px; color: #0B1F2A; }
.hemdox-reviews .comment-form label { font-weight: 600; color: #0B1F2A; font-size: 14px; }
.hemdox-reviews .comment-form .submit,
.hemdox-reviews #respond input#submit { background: linear-gradient(120deg, #0098DA, #0077B0); color: #fff; border: 0; border-radius: 999px; padding: 13px 26px; font-weight: 700; font-size: 15px; cursor: pointer; width: fit-content; }
.hemdox-reviews .stars a { color: #F5A623; }

/* Hide the Elementor nav-menu widget's unused mobile "dropdown" clone in our header.
   We provide our own Hemdox drawer for mobile, so the clone is a redundant 3rd copy
   of the menu — remove it from layout + a11y tree (keeps the DOM lean, no dup landmark).
   IMPORTANT: qualify with `nav` so this ONLY hides the mobile <nav> clone and NOT the
   desktop <ul class="sub-menu elementor-nav-menu--dropdown"> dropdown (same class name). */
.hemdox-desktop-nav nav.elementor-nav-menu--dropdown,
.hemdox-desktop-nav .elementor-menu-toggle { display: none !important; }

/* Deterministic desktop-nav underline: show ONLY on hover / current-page item and
   always retract otherwise. Fixes Elementor's fade pointer leaving underlines
   "painted" when the pointer moves between items. Targets top-level items only
   (.elementor-item), never the dropdown links (.elementor-sub-item). */
.hemdox-desktop-nav .elementor-nav-menu--main .elementor-item::after,
.hemdox-desktop-nav .elementor-nav-menu--main .elementor-item::before {
	opacity: 0 !important;
	transform: scaleX(0) !important;
	transform-origin: left center;
	transition: opacity .2s ease, transform .2s ease !important;
}
.hemdox-desktop-nav .elementor-nav-menu--main .elementor-item:hover::after,
.hemdox-desktop-nav .elementor-nav-menu--main .elementor-item:focus-visible::after,
.hemdox-desktop-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::after {
	opacity: 1 !important;
	transform: scaleX(1) !important;
}

/* ============================ HEADER ICONS + XOO CART (thin, navy) ============================ */
/* plain outline icons in the header (no chip background) */
.hemdox-header-icon .elementor-icon { background: transparent !important; border: 0 !important; padding: 0 !important; color: #0B1F2A; transition: color .18s ease; }
.hemdox-header-icon .elementor-icon:hover { color: #0098DA; background: transparent !important; }
.hemdox-header-icon .elementor-icon svg, .hemdox-header-icon .elementor-icon i { color: inherit; }
/* Xoo side-cart trigger: icon only + count badge, no subtotal text */
.xoo-wsc-sc-cont { line-height: 1; }
.xoo-wsc-sc-subt { display: none !important; }
.xoo-wsc-cart-trigger { color: #0B1F2A; }
.xoo-wsc-cart-trigger .xoo-wsc-sc-bki { color: #0B1F2A; font-size: 22px; }
.xoo-wsc-cart-trigger:hover .xoo-wsc-sc-bki { color: #0098DA; }
.xoo-wsc-sc-count { background: #0098DA !important; color: #fff !important; }

/* ============================ RESPONSIVE (mobile-first up) ============================ */
.hemdox-grid { grid-template-columns: repeat(var(--ph-cols-m, 2), minmax(0, 1fr)); }
.hemdox-bcard { grid-column: span var(--ph-b-span-m, 1); }
@media (min-width: 768px) {
	.hemdox-grid { grid-template-columns: repeat(var(--ph-cols-t, 3), minmax(0, 1fr)); }
	.hemdox-bcard { grid-column: span var(--ph-b-span-t, 1); }
	.hemdox-cat-toolbar { flex-direction: row; align-items: center; justify-content: space-between; }
	.hemdox-cat-toolbar select { width: auto; }
}
@media (min-width: 1025px) {
	.hemdox-grid { grid-template-columns: repeat(var(--ph-cols, 4), minmax(0, 1fr)); }
	.hemdox-bcard { grid-column: span var(--ph-b-span, 1); }
}
@media (max-width: 767px) {
	.hemdox-grid { gap: 14px; --ph-title-fs: 14px; --ph-price-fs: 14px; }
	.hemdox-bcard { min-height: 220px; }
	.hemdox-pcard__body { padding: 12px 12px 8px; gap: 4px; }
	.hemdox-pcard__foot { padding: 4px 12px 14px; }
	.hemdox-pcard__badges { top: 8px; left: 8px; }
	.hemdox-badge { font-size: 10px; padding: 4px 8px; }
	.hemdox-qty__btn { flex-basis: 34px; min-height: 38px; }
	.hemdox-pcard .hemdox-btn { --ph-btn-fs: 13px; --ph-btn-pad-y: 10px; padding-left: 10px; padding-right: 10px; }
}
@media (max-width: 400px) {
	.hemdox-grid { --ph-title-fs: 13px; --ph-price-fs: 13px; gap: 10px; }
	.hemdox-pcard__body { padding: 10px 10px 6px; }
}

/* ============================ BLOG: article, TOC, meta, author (mobile-first) ============================ */
.hemdox-article { margin: 0; max-width: 760px; color: #3B4256; font-size: 17px; line-height: 1.8; }
.hemdox-article h2, .hemdox-article h3, .hemdox-article h4 { scroll-margin-top: 96px; }
.hemdox-article.has-dropcap > p:first-of-type::first-letter { float: left; font-size: 3.4em; line-height: .8; font-weight: 800; padding: 6px 10px 0 0; color: var(--ph-accent, #0098DA); }

/* Post meta / E-E-A-T header */
.hemdox-pmeta { --ph-ink:#0B1F2A; --ph-muted:#4A5A63; --ph-accent:#0098DA; display:flex; flex-direction:column; gap:14px; }
.hemdox-pmeta__cats { display:flex; flex-wrap:wrap; gap:8px; }
.hemdox-pmeta__cat { font-size:12px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; color:var(--ph-accent); background:rgba(0,152,218,.1); padding:6px 12px; border-radius:999px; text-decoration:none; }
.hemdox-pmeta__cat:hover { background:var(--ph-accent); color:#fff; }
.hemdox-pmeta__title { margin:0; color:var(--ph-ink); font-weight:800; letter-spacing:-.6px; line-height:1.12; font-size:clamp(28px,6vw,46px); }
.hemdox-pmeta__stand { margin:0; color:var(--ph-muted); font-size:clamp(16px,2.4vw,19px); line-height:1.6; max-width:760px; }
.hemdox-pmeta__byline { display:flex; align-items:center; gap:12px; padding-top:6px; }
.hemdox-pmeta__avatar img { width:44px; height:44px; border-radius:50%; display:block; }
.hemdox-pmeta__line { color:var(--ph-ink); font-size:14px; font-weight:600; }
.hemdox-pmeta__line a { color:var(--ph-ink); text-decoration:none; }
.hemdox-pmeta__line a:hover { color:var(--ph-accent); }
.hemdox-pmeta__dates { color:var(--ph-muted); font-size:13px; margin-top:2px; }
.hemdox-pmeta__dates .is-updated { color:var(--ph-accent); font-weight:600; }
.hemdox-pmeta .dot { margin:0 8px; opacity:.5; }
.hemdox-pmeta__reviewed { display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--ph-muted); background:#F1F7FA; border:1px solid #DCE6EB; border-radius:999px; padding:8px 14px; width:fit-content; }
.hemdox-pmeta__reviewed span { display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:50%; background:#16B364; color:#fff; font-size:11px; }

/* ============================ TABLE OF CONTENTS (unique: progress rail + numbered chips) ============================ */
.hemdox-toc { --ph-accent:#0098DA; --ph-ink:#0B1F2A; --ph-muted:#4A5A63; --ph-panel:#FFFFFF; --ph-border:#DCE6EB;
	background:var(--ph-panel); border:1px solid var(--ph-border); border-radius:18px; padding:4px 18px 14px;
	box-shadow:0 14px 34px -22px rgba(11,31,42,.30); }
.hemdox-toc__head { padding:14px 0 12px; margin-bottom:4px; border-bottom:1px solid var(--ph-border); }
.hemdox-toc__title, .hemdox-toc__toggle { display:flex; align-items:center; gap:10px; width:100%; border:0; background:transparent; cursor:pointer; padding:0;
	font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--ph-ink); }
.hemdox-toc__label { display:inline-flex; align-items:center; gap:9px; }
.hemdox-toc__ico { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:8px; background:rgba(0,152,218,.12); color:var(--ph-accent); flex:0 0 auto; }
.hemdox-toc__pct { margin-left:auto; font-size:11px; font-weight:800; letter-spacing:.4px; color:var(--ph-accent); background:rgba(0,152,218,.1); padding:3px 9px; border-radius:999px; font-variant-numeric:tabular-nums; }
.hemdox-toc__chevron { color:var(--ph-accent); transition:transform .2s ease; }
.hemdox-toc[aria-collapsed="true"] .hemdox-toc__chevron { transform:rotate(-90deg); }
.hemdox-toc[aria-collapsed="true"] .hemdox-toc__list { display:none; }

.hemdox-toc__list { list-style:none; margin:0; padding:8px 0 2px 16px; position:relative; counter-reset:toc; }
/* vertical reading-progress rail (fill driven by --toc-progress from JS) */
.hemdox-toc.is-progress .hemdox-toc__list::before { content:""; position:absolute; left:4px; top:12px; bottom:12px; width:3px; border-radius:3px; background:var(--ph-border); }
.hemdox-toc.is-progress .hemdox-toc__list::after { content:""; position:absolute; left:4px; top:12px; width:3px; height:var(--toc-progress,0%); max-height:calc(100% - 24px); border-radius:3px; background:linear-gradient(180deg,var(--ph-accent),#33B5E6); transition:height .15s linear; }
.hemdox-toc.is-numbered .hemdox-toc__item--l2 { counter-increment:toc; }
.hemdox-toc__item { margin:0; }
.hemdox-toc__item a { display:flex; align-items:center; gap:11px; padding:8px 10px; border-radius:10px; color:var(--ph-muted); text-decoration:none; font-size:14px; line-height:1.4; transition:background .18s ease, color .18s ease; }
/* numbered circular chip on H2 */
.hemdox-toc.is-numbered .hemdox-toc__item--l2 > a::before { content:counter(toc); flex:0 0 auto; width:22px; height:22px; border-radius:50%; background:rgba(0,152,218,.12); color:var(--ph-accent); font-size:11.5px; font-weight:800; display:flex; align-items:center; justify-content:center; transition:background .18s ease, color .18s ease; }
/* H3 dash marker + indent */
.hemdox-toc__item--l3 > a { padding-left:34px; font-size:13.5px; }
.hemdox-toc__item--l3 > a::before { content:""; flex:0 0 auto; width:12px; height:2px; border-radius:2px; background:var(--ph-border); }
.hemdox-toc__txt { min-width:0; }
.hemdox-toc__item a:hover { color:var(--ph-ink); background:rgba(0,152,218,.06); }
.hemdox-toc__item a.is-active { color:var(--ph-ink); font-weight:700; background:rgba(0,152,218,.1); }
.hemdox-toc.is-numbered .hemdox-toc__item--l2 > a.is-active::before { background:var(--ph-accent); color:#fff; }
.hemdox-toc__item--l3 > a.is-active::before { background:var(--ph-accent); }

/* Author box */
.hemdox-author { --ph-ink:#0B1F2A; --ph-muted:#4A5A63; --ph-accent:#0098DA; --ph-panel:#F1F7FA; --ph-border:#DCE6EB;
	background:var(--ph-panel); border:1px solid var(--ph-border); border-radius:20px; padding:24px; }
.hemdox-author__eyebrow { font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--ph-accent); margin-bottom:14px; }
.hemdox-author__row { display:flex; gap:18px; align-items:flex-start; }
.hemdox-author__avatar img { width:72px; height:72px; border-radius:50%; display:block; }
.hemdox-author__name { font-size:18px; font-weight:800; color:var(--ph-ink); }
.hemdox-author__site { color:var(--ph-accent); text-decoration:none; font-size:14px; }
.hemdox-author__role { font-size:13px; font-weight:700; color:var(--ph-accent); text-transform:uppercase; letter-spacing:.5px; margin-top:2px; }
.hemdox-author__bio { margin:10px 0 0; color:var(--ph-muted); font-size:14.5px; line-height:1.7; }
.hemdox-author__more { display:inline-block; margin-top:12px; color:var(--ph-accent); font-weight:700; font-size:14px; text-decoration:none; }

@media (min-width: 1025px) {
	/* Sticky sidebar TOC. Requires its parent column to be full-height
	   (row container = align-items:stretch). align-self:flex-start keeps the TOC
	   its natural height so it can travel; long TOCs scroll internally. */
	.hemdox-toc.is-sticky {
		position: sticky;
		top: 96px;
		align-self: flex-start;
		max-height: calc(100vh - 112px);
		overflow-y: auto;
	}
	/* Make the column holding a sticky TOC reach full row height even when the
	   parent row uses align-items:flex-start — so sticky has room to travel.
	   This lets a plugin-only update fix the TOC without editing the template. */
	.e-con:has( > .hemdox-toc.is-sticky ),
	.e-con:has( > .e-con-inner > .hemdox-toc.is-sticky ) { align-self: stretch; }
}
@media (max-width: 767px) {
	.hemdox-author__row { flex-direction:column; }
	.hemdox-author__avatar img { width:60px; height:60px; }
}
.hemdox-pmeta__featured { margin-top:8px; }
.hemdox-pmeta__featured img { width:100%; height:auto; border-radius:20px; display:block; border:1px solid #DCE6EB; }

/* ============================ BLOG ARCHIVE (post grid) ============================ */
.hemdox-archead { --ph-ink:#0B1F2A; --ph-muted:#4A5A63; --ph-accent:#0098DA; text-align:center; max-width:760px; margin:0 auto 8px; }
.hemdox-archead__title { margin:0; color:var(--ph-ink); font-weight:800; letter-spacing:-.6px; line-height:1.1; font-size:clamp(30px,6vw,48px); }
.hemdox-archead__desc { margin-top:10px; color:var(--ph-muted); font-size:16px; line-height:1.6; }
.hemdox-bpost { display:flex; flex-direction:column; background:var(--ph-elevated,#fff); border:1px solid var(--ph-border,#DCE6EB); border-radius:var(--ph-radius,18px); overflow:hidden; box-shadow:var(--ph-shadow,0 10px 30px -16px rgba(11,31,42,.22)); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.hemdox-bpost:hover { transform:translateY(-5px); box-shadow:var(--ph-shadow-h,0 22px 46px -22px rgba(11,31,42,.32)); border-color:color-mix(in srgb, var(--ph-accent) 45%, var(--ph-border,#DCE6EB)); }
.hemdox-bpost__media { display:block; aspect-ratio:16/10; background:var(--ph-media-bg,#F1F7FA); overflow:hidden; }
.hemdox-bpost__media img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.hemdox-bpost:hover .hemdox-bpost__media img { transform:scale(1.05); }
.hemdox-bpost__body { display:flex; flex-direction:column; gap:10px; padding:18px 18px 20px; }
.hemdox-bpost__cat { align-self:flex-start; font-size:11px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; color:var(--ph-accent,#0098DA); background:rgba(0,152,218,.1); padding:5px 11px; border-radius:999px; text-decoration:none; }
.hemdox-bpost__cat:hover { background:var(--ph-accent,#0098DA); color:#fff; }
.hemdox-bpost__title { margin:0; font-size:19px; font-weight:800; line-height:1.25; letter-spacing:-.3px; }
.hemdox-bpost__title a { color:var(--ph-ink,#0B1F2A); text-decoration:none; }
.hemdox-bpost__title a:hover { color:var(--ph-accent,#0098DA); }
.hemdox-bpost__excerpt { margin:0; color:var(--ph-muted,#4A5A63); font-size:14.5px; line-height:1.6; }
.hemdox-bpost__meta { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:auto; padding-top:6px; color:var(--ph-muted,#4A5A63); font-size:13px; }
.hemdox-bpost__avatar img { width:26px; height:26px; border-radius:50%; display:block; }
.hemdox-bpost__author { font-weight:700; color:var(--ph-ink,#0B1F2A); }
.hemdox-bpost__meta .dot { opacity:.5; }

/* ============================ SINGLE PRODUCT — zoom, sticky, specs ============================ */
.hemdox-pgallery.has-zoom .hemdox-pgallery__main { cursor: zoom-in; }
.hemdox-pgallery__zoom {
	position: absolute; bottom: 14px; right: 14px; z-index: 3;
	width: 40px; height: 40px; border-radius: 50%; border: 1px solid #DCE6EB;
	background: rgba(255,255,255,.9); color: #0B1F2A; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	box-shadow: 0 6px 16px -8px rgba(11,31,42,.4); transition: background .15s ease, color .15s ease;
}
.hemdox-pgallery__zoom:hover { background: #0098DA; color: #fff; border-color: #0098DA; }
.hemdox-lightbox { position: fixed; inset: 0; z-index: 100000; background: rgba(10,12,18,.86); display: flex; align-items: center; justify-content: center; padding: 24px; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.hemdox-lightbox img { max-width: 92vw; max-height: 88vh; border-radius: 12px; background: #fff; }
.hemdox-lightbox__close { position: absolute; top: 18px; right: 22px; width: 46px; height: 46px; border-radius: 50%; border: 0; background: rgba(255,255,255,.14); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; }
.hemdox-lightbox__close:hover { background: rgba(255,255,255,.28); }

.hemdox-psummary__specs { margin: 4px 0 0; padding: 4px 0; border-top: 1px solid var(--ph-border); }
.hemdox-psummary__spec { display: flex; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--ph-border); font-size: 14.5px; }
.hemdox-psummary__spec dt { flex: 0 0 40%; margin: 0; color: var(--ph-muted); font-weight: 600; }
.hemdox-psummary__spec dd { margin: 0; color: var(--ph-ink); font-weight: 700; }

@media (min-width: 1025px) {
	.hemdox-pgallery.is-sticky { position: sticky; top: 96px; align-self: flex-start; }
}

/* ============================ FLOATING WHATSAPP BUTTON ============================ */
.hemdox-wa {
	position: fixed; z-index: 9500; bottom: var(--wa-y, 24px);
	width: var(--wa-size, 58px); height: var(--wa-size, 58px); padding: var(--wa-pad, 16px);
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	background: var(--wa-bg, #25D366); color: #fff; border-radius: 999px;
	box-shadow: 0 12px 30px -8px rgba(11,31,42,.45); text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease;
}
.hemdox-wa:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 16px 34px -8px rgba(37,211,102,.6); color: #fff; }
.hemdox-wa--left  { left: var(--wa-x, 24px); }
.hemdox-wa--right { right: var(--wa-x, 24px); }
.hemdox-wa__icon { width: 60%; height: 60%; flex: 0 0 auto; }
.hemdox-wa--labelled { width: auto; border-radius: 999px; padding-left: 18px; padding-right: 22px; }
.hemdox-wa--labelled::after { content: attr(aria-label); }
.hemdox-wa--labelled .hemdox-wa__icon { width: 26px; height: 26px; }
@media (max-width: 767px) {
	.hemdox-wa--hide-mobile { display: none !important; }
	.hemdox-wa--labelled::after { display: none; } /* icon-only on mobile to save space */
	.hemdox-wa--labelled { width: var(--wa-size, 58px); padding: var(--wa-pad, 16px); }
}

/* ============================ STICKY MOBILE ADD-TO-CART BAR ============================ */
.hemdox-stickybar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 9400;
	display: flex; align-items: center; gap: 12px; padding: 10px 14px;
	background: #fff; border-top: 1px solid #DCE6EB; box-shadow: 0 -8px 24px -14px rgba(11,31,42,.4);
	transform: translateY(110%); transition: transform .28s ease;
	padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
}
.hemdox-stickybar.is-visible { transform: translateY(0); }
.hemdox-stickybar__info { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1 1 auto; }
.hemdox-stickybar__thumb img { width: 44px; height: 44px; border-radius: 10px; object-fit: cover; display: block; background: #F1F7FA; }
.hemdox-stickybar__meta { display: flex; flex-direction: column; min-width: 0; }
.hemdox-stickybar__name { font-size: 13px; font-weight: 700; color: #0B1F2A; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hemdox-stickybar__price { font-size: 14px; font-weight: 800; color: #0B1F2A; }
.hemdox-stickybar__price del { color: #4A5A63; font-weight: 500; font-size: 12px; margin-right: 4px; }
.hemdox-stickybar .hemdox-btn { width: auto; flex: 0 0 auto; padding-left: 22px; padding-right: 22px; }
@media (min-width: 768px) { .hemdox-stickybar { display: none !important; } }

/* ============================ HERO — animated floating device/flavours ============================ */
.hemdox-hero-rel { position: relative; }
.hemdox-hero-fly { animation: hemdoxHeroFloat 4.6s ease-in-out infinite; will-change: transform; }
.hemdox-hero-fly img { filter: drop-shadow(0 18px 26px rgba(11,31,42,.18)); }
.hemdox-hero-fly:nth-child(2) { animation-delay: .6s; }
.hemdox-hero-fly:nth-child(3) { animation-delay: 1.1s; }
.hemdox-hero-fly:nth-child(4) { animation-delay: 1.6s; }
@keyframes hemdoxHeroFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
@media (prefers-reduced-motion: reduce) { .hemdox-hero-fly { animation: none !important; } }

/* ============================ HEMDOX FAQ (AEO) ============================ */
.hemdox-faq { --faq-accent:#0098DA; --faq-ink:#0B1F2A; --faq-muted:#4A5A63; --faq-border:#DCE6EB; width:100%; }
.hemdox-faq__title { margin:0 0 20px; color:var(--faq-ink); font-weight:800; letter-spacing:-.4px; font-size:clamp(24px,4vw,32px); }
.hemdox-faq__list { display:flex; flex-direction:column; gap:12px; }
.hemdox-faq__item { border:1px solid var(--faq-border); border-radius:14px; background:#fff; overflow:hidden; transition:border-color .2s ease; }
.hemdox-faq__item.is-open { border-color:color-mix(in srgb, var(--faq-accent) 45%, var(--faq-border)); }
.hemdox-faq__qwrap { margin:0; }
.hemdox-faq__q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; background:transparent; border:0; cursor:pointer; text-align:left; font-size:16.5px; font-weight:700; color:var(--faq-ink); }
.hemdox-faq__q:focus-visible { outline:2px solid var(--faq-accent); outline-offset:-2px; }
.hemdox-faq__ico { position:relative; flex:0 0 auto; width:18px; height:18px; }
.hemdox-faq__ico::before, .hemdox-faq__ico::after { content:""; position:absolute; top:50%; left:50%; width:14px; height:2px; background:var(--faq-accent); border-radius:2px; transform:translate(-50%,-50%); transition:transform .25s ease; }
.hemdox-faq__ico::after { transform:translate(-50%,-50%) rotate(90deg); }
.hemdox-faq__item.is-open .hemdox-faq__ico::after { transform:translate(-50%,-50%) rotate(0); }
.hemdox-faq__a { padding:0 20px 18px; color:var(--faq-muted); font-size:15px; line-height:1.7; }
.hemdox-faq__a .hemdox-rte { margin-top:0; padding-top:0; border-top:0; }

/* ============================ SINGLE PRODUCT (PDP) LAYOUT ============================ */
.hemdox-pdp { --pdp-max: 1200px; }
.hemdox-pdp-crumbs { margin-bottom: 14px; }
.hemdox-pdp-cols { display: flex !important; flex-wrap: wrap; gap: clamp(24px, 4vw, 56px); align-items: flex-start; }
.hemdox-pdp-media { flex: 1 1 52% !important; min-width: 280px; }
.hemdox-pdp-buy   { flex: 1 1 40% !important; min-width: 300px; display: flex; flex-direction: column; gap: 24px; }
.hemdox-pdp-tabs    { margin-top: clamp(40px, 6vw, 64px) !important; }
.hemdox-pdp-related { margin-top: clamp(48px, 7vw, 72px) !important; }
.hemdox-pdp-related__head .elementor-heading-title {
	font-size: clamp(22px, 4vw, 30px); font-weight: 800; letter-spacing: -.4px;
	color: #0B1F2A; text-align: center; margin: 0 0 26px; position: relative; padding-bottom: 14px;
}
.hemdox-pdp-related__head .elementor-heading-title::after {
	content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
	width: 52px; height: 4px; border-radius: 999px; background: linear-gradient(90deg, #0098DA, #33B5E6);
}
@media (max-width: 1024px) {
	.hemdox-pdp-media, .hemdox-pdp-buy { flex-basis: 100% !important; }
}

/* ============================ SINGLE POST LAYOUT ============================ */
.hemdox-blog { --blog-max: 1180px; }
.hemdox-blog-crumbs { margin-bottom: 14px; }
/* align-items:stretch is REQUIRED — it makes the sidebar column as tall as the article
   so the sticky TOC has room to travel. With flex-start the column is only as tall as the
   TOC itself and sticky has nowhere to stick → it scrolls away. */
.hemdox-blog-cols { display: flex !important; flex-wrap: wrap; gap: clamp(28px, 4vw, 52px); align-items: stretch !important; margin-top: 30px; }
.hemdox-blog-side { flex: 0 0 300px !important; max-width: 300px; }
.hemdox-blog-main { flex: 1 1 520px !important; min-width: 0; }
.hemdox-blog-after { margin-top: clamp(36px, 5vw, 56px) !important; display: flex; flex-direction: column; gap: clamp(32px, 5vw, 52px); }
.hemdox-blog-related__head .elementor-heading-title {
	font-size: clamp(22px, 4vw, 30px); font-weight: 800; letter-spacing: -.4px; color: #0B1F2A;
	text-align: center; margin: 0 0 26px; position: relative; padding-bottom: 14px;
}
.hemdox-blog-related__head .elementor-heading-title::after {
	content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
	width: 52px; height: 4px; border-radius: 999px; background: linear-gradient(90deg, #0098DA, #33B5E6);
}
@media (max-width: 1024px) {
	.hemdox-blog-side { flex-basis: 100% !important; max-width: 100%; order: -1; }
	.hemdox-blog-main { flex-basis: 100% !important; }
}

/* ============================ COMPLIANCE / NICOTINE WARNING ============================ */
.hemdox-compliance{ display:flex; gap:11px; align-items:flex-start; margin-top:18px; padding:12px 14px;
  background:#FFF7E6; border:1px solid #F1D08A; border-left:4px solid #C77700; border-radius:12px;
  color:#7A5200; font-size:13px; line-height:1.5; font-weight:600; }
.hemdox-compliance__ico{ flex:0 0 auto; color:#C77700; margin-top:1px; }
.hemdox-compliance__txt{ min-width:0; }
@media (prefers-color-scheme:dark){ .hemdox-compliance{ background:#241C0A; border-color:#5A4718; color:#E7C56B; } }

/* ============================ KEY TAKEAWAYS / TL;DR (AEO answer-first) ============================ */
.hemdox-tldr{ --tldr-accent:#0098DA; --tldr-ink:#0B1F2A; --tldr-bg:#EAF7FD;
  background:var(--tldr-bg); border:1px solid #CBE8F6; border-radius:16px; padding:18px 20px; margin:0 0 26px;
  position:relative; overflow:hidden; }
.hemdox-tldr::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--tldr-accent),#33B5E6); }
.hemdox-tldr__label{ display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:800; letter-spacing:1.2px;
  text-transform:uppercase; color:var(--tldr-accent); margin-bottom:9px; }
.hemdox-tldr__spark{ display:inline-flex; }
.hemdox-tldr__summary{ margin:0; color:var(--tldr-ink); font-size:16.5px; line-height:1.65; font-weight:500; }
.hemdox-tldr__points{ margin-top:14px; padding-top:14px; border-top:1px dashed #CBE8F6; }
.hemdox-tldr__points-label{ display:block; font-size:11px; font-weight:800; letter-spacing:.8px; text-transform:uppercase; color:var(--tldr-ink); opacity:.6; margin-bottom:8px; }
.hemdox-tldr__points ul{ list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.hemdox-tldr__points li{ position:relative; padding-left:20px; }
.hemdox-tldr__points li::before{ content:""; position:absolute; left:3px; top:.62em; width:7px; height:7px; border-radius:2px; background:var(--tldr-accent); }
.hemdox-tldr__points a{ color:var(--tldr-ink); text-decoration:none; font-size:14.5px; font-weight:600; }
.hemdox-tldr__points a:hover{ color:var(--tldr-accent); text-decoration:underline; }
@media (prefers-color-scheme:dark){ .hemdox-tldr{ --tldr-bg:#0E2A36; --tldr-ink:#E9F2F6; border-color:#1C455A; } .hemdox-tldr__points{ border-top-color:#1C455A; } }

/* ============================ TOC sticky travel-room + mobile collapse fix ============================ */
/* NOTE: do NOT set height:100% on .hemdox-blog-side — an unresolved height on a flex
   item cancels align-items:stretch, leaving the column short so the sticky TOC can't
   travel. align-items:stretch on .hemdox-blog-cols is what makes the column full-height. */
.hemdox-toc.is-collapsible .hemdox-toc__toggle { cursor: pointer; }
/* MOBILE: lift the TOC out of its short column with display:contents so its containing
   block becomes the tall content area — then position:sticky can travel the whole article
   and the compact bar stays attached while scrolling (collapsed by default). */
@media (max-width: 1024px) {
	.hemdox-blog-cols { display: block !important; }
	.hemdox-blog-side { display: contents !important; }
	.hemdox-blog-main { display: block; }
	.hemdox-toc.is-collapsible {
		position: sticky; top: 68px; z-index: 40; margin: 0 0 26px;
		display: flex; flex-direction: column; max-height: calc(100vh - 84px); overflow: hidden;
	}
	.hemdox-toc.is-collapsible .hemdox-toc__list { overflow-y: auto; }
	.hemdox-toc.is-collapsible .hemdox-toc__head { margin-bottom: 0; border-bottom: 0; }
	.hemdox-toc.is-collapsible[aria-collapsed="false"] .hemdox-toc__head { margin-bottom: 6px; border-bottom: 1px solid var(--ph-border); }
}

/* ============================ CONTACT WIDGET ============================ */
.hemdox-contact{ --c-accent:#0098DA; --c-ink:#0B1F2A; display:grid; gap:clamp(20px,3vw,40px); grid-template-columns:1fr; align-items:start; }
@media (min-width:900px){ .hemdox-contact{ grid-template-columns:0.85fr 1fr; } }
.hemdox-contact__info{ background:#F1F7FA; border:1px solid #DCE6EB; border-radius:18px; padding:22px 22px 8px; }
.hemdox-contact__info-title,.hemdox-contact__form-title{ margin:0 0 16px; font-size:19px; font-weight:800; color:var(--c-ink); letter-spacing:-.3px; }
.hemdox-contact__list{ list-style:none; margin:0; padding:0; display:grid; gap:16px; }
.hemdox-contact__list li{ display:flex; gap:12px; align-items:flex-start; }
.hemdox-contact__ic{ flex:0 0 auto; font-size:18px; line-height:1.4; }
.hemdox-contact__list b{ display:block; font-size:12px; font-weight:800; letter-spacing:.6px; text-transform:uppercase; color:var(--c-accent); margin-bottom:2px; }
.hemdox-contact__list div{ font-size:14.5px; color:#33414D; line-height:1.5; }
.hemdox-contact__list a{ color:#33414D; text-decoration:none; }
.hemdox-contact__list a:hover{ color:var(--c-accent); }
.hemdox-contact__map{ margin:16px -22px -8px; }
.hemdox-contact__map iframe{ display:block; border:0; border-top:1px solid #DCE6EB; }
.hemdox-contact__form{ background:#fff; border:1px solid #DCE6EB; border-radius:18px; padding:24px; box-shadow:0 12px 30px -20px rgba(11,31,42,.25); }
.hemdox-contact__row{ display:grid; gap:14px; grid-template-columns:1fr; }
@media (min-width:560px){ .hemdox-contact__row{ grid-template-columns:1fr 1fr; } }
.hemdox-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.hemdox-field span{ font-size:12.5px; font-weight:700; color:var(--c-ink); }
.hemdox-field input,.hemdox-field textarea{ width:100%; border:1px solid #DCE6EB; border-radius:12px; padding:11px 13px; font-size:15px; color:var(--c-ink); background:#fff; font-family:inherit; transition:border-color .15s ease, box-shadow .15s ease; }
.hemdox-field input:focus,.hemdox-field textarea:focus{ outline:0; border-color:var(--c-accent); box-shadow:0 0 0 3px rgba(0,152,218,.15); }
.hemdox-contact__form .hemdox-btn{ width:100%; margin-top:4px; }
.hemdox-contact__hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.hemdox-contact__consent{ margin:12px 0 0; font-size:12px; color:#6B7A82; line-height:1.5; }
.hemdox-contact__ok{ background:#E7F6EF; border:1px solid #B8E6CE; color:#0E7A50; padding:12px 14px; border-radius:12px; font-weight:600; font-size:14px; margin:0 0 16px; }
.hemdox-contact__err{ background:#FDECEC; border:1px solid #F5C2C2; color:#C0392B; padding:12px 14px; border-radius:12px; font-weight:600; font-size:14px; margin:0 0 16px; }

/* ============================ LEGAL / POLICY PAGE ============================ */
.hemdox-legal__title{ font-size:clamp(28px,5vw,42px); font-weight:850; letter-spacing:-.02em; color:#0B1F2A; line-height:1.1; margin:0 0 8px; }
.hemdox-legal__updated{ margin:0 0 22px; font-size:13px; font-weight:600; color:#6B7A82; }
.hemdox-legal .hemdox-rte{ margin-top:0; padding-top:0; border-top:0; }
