/* Evermed Product Carousel — inlined once per page. */
.ee-pc {
	--ee-pc-cols: 4;
	--ee-pc-gap: 14px;
	--ee-pc-accent: var(--ev-primary, #00a651);
	--ee-pc-badge-bg: var(--ev-badge-bg, #fed700);
	--ee-pc-badge-fg: var(--ev-badge-text, #1f2733);
	--ee-pc-card: #fff;
	--ee-pc-border: var(--ev-line, #e6ecef);
	--ee-pc-title: var(--ev-ink, #1f2733);
	--ee-pc-panel-bg: #fff;
	--ee-pc-radius: var(--ev-radius, 10px);
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
	width: 100%;
	box-sizing: border-box;
}
.ee-pc *,
.ee-pc *::before,
.ee-pc *::after { box-sizing: border-box; }

.ee-pc--panel { grid-template-columns: minmax(220px, 26%) minmax(0, 1fr); align-items: center; }

/* ---- Side panel ---- */
.ee-pc__panel {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 12px;
	padding: 20px 12px;
	background: var(--ee-pc-panel-bg);
	border-radius: var(--ee-pc-radius);
}
.ee-pc__panel-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 84px;
	height: 84px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--ee-pc-accent) 10%, #f3f5f7);
	color: var(--ee-pc-accent);
	font-size: 40px;
}
.ee-pc__panel-icon svg { width: 1em; height: 1em; fill: currentColor; }
.ee-pc__panel-title { margin: 0; font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.2; color: var(--ee-pc-title); }
.ee-pc__panel-text { margin: 0; color: #6b7682; line-height: 1.55; max-width: 32ch; }

.ee-pc__timer { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.ee-pc__unit {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 64px;
	padding: 10px 6px;
	border-radius: 8px;
	background: #f3f6f8;
}
.ee-pc__unit b {
	font-size: 1.5rem;
	line-height: 1.1;
	/* 1.9: the flash colour, darkened enough to read on the light box (bright orange/red failed) */
	color: color-mix(in srgb, var(--ee-pc-accent) 62%, #000);
	font-variant-numeric: tabular-nums;
}
.ee-pc__unit small { font-size: .78rem; color: #4f5a64; margin-top: 2px; } /* 1.9: readable on the grey box */
.ee-pc__unit--d { display: none; }
.ee-pc__timer.has-days .ee-pc__unit--d { display: flex; }
.ee-pc__ended { margin: 0; font-weight: 600; color: #6b7682; }

.ee-pc__all {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 20px;
	border-radius: 999px;
	border: 2px solid var(--ee-pc-accent);
	color: var(--ee-pc-accent);
	font-weight: 600;
	text-decoration: none;
	transition: background-color .2s, color .2s;
}
.ee-pc__all:hover { background: var(--ee-pc-accent); color: #fff; }

/* ---- Slider ---- */
.ee-pc__main { position: relative; min-width: 0; }
.ee-pc__viewport {
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	container-type: inline-size;
	padding: 4px 2px 8px;
}
.ee-pc__viewport::-webkit-scrollbar { display: none; }

.ee-pc__track {
	display: flex;
	gap: var(--ee-pc-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}
.ee-pc__item {
	flex: 0 0 calc((100cqw - (var(--ee-pc-cols) - 1) * var(--ee-pc-gap)) / var(--ee-pc-cols));
	scroll-snap-align: start;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ee-pc__item::before, .ee-pc__item::marker { content: none; }

/* ---- Card ---- */
.ee-pc__card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--ee-pc-card);
	border: 1px solid var(--ee-pc-border);
	border-radius: var(--ee-pc-radius);
	transition: box-shadow .25s, border-color .25s;
}
.ee-pc__card:hover { border-color: color-mix(in srgb, var(--ee-pc-accent) 45%, var(--ee-pc-border)); box-shadow: 0 8px 22px rgba(20, 30, 45, .08); }

.ee-pc__media { position: relative; display: block; aspect-ratio: 1 / 1; background: #f7f9fa; }
.ee-pc__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: transform .35s ease;
}
.ee-pc__card:hover .ee-pc__img { transform: scale(1.04); }

.ee-pc__badge {
	position: absolute;
	top: 8px;
	right: 8px;
	padding: 4px 8px;
	border-radius: 6px;
	background: var(--ee-pc-badge-bg);
	color: var(--ee-pc-badge-fg);
	font-size: .8rem;
	font-weight: 700;
	line-height: 1.2;
}
.ee-pc__badge--oos { right: auto; left: 8px; background: #1f2733; color: #fff; }

.ee-pc__body { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: 10px 12px 12px; }
.ee-pc__title {
	margin: 0;
	font-size: .98rem;
	font-weight: 500;
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.8em;
}
.ee-pc__title a { color: var(--ee-pc-title); text-decoration: none; }
.ee-pc__title a:hover { color: var(--ee-pc-accent); }

.ee-pc__stars {
	position: relative;
	display: inline-block;
	font-size: .85rem;
	line-height: 1;
	letter-spacing: 1px;
	color: #d7dde2;
	width: max-content;
}
.ee-pc__stars::before {
	content: "★★★★★";
	position: absolute;
	inset: 0 auto 0 0;
	width: var(--ee-pc-rating, 0%);
	overflow: hidden;
	color: #f5b301;
	white-space: nowrap;
}

.ee-pc__price { font-weight: 700; color: var(--ee-pc-accent); font-size: 1.02rem; }
.ee-pc__price del { color: #9aa3ad; font-weight: 400; font-size: .85em; margin-right: 4px; }
.ee-pc__price ins { text-decoration: none; }
.ee-pc__save { font-size: .8rem; color: #2e7d32; font-weight: 600; }

.ee-pc__btn {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0 12px;
	border-radius: 8px;
	background: var(--ee-pc-accent);
	color: #fff !important;
	font-size: .9rem;
	font-weight: 600;
	text-decoration: none !important;
	border: 0;
	transition: filter .2s;
}
.ee-pc__btn:hover { filter: brightness(.93); }
.ee-pc__btn--ghost { background: transparent; color: var(--ee-pc-accent) !important; box-shadow: inset 0 0 0 2px var(--ee-pc-accent); }
.ee-pc__btn.loading { opacity: .7; }
.ee-pc .added_to_cart { font-size: .82rem; text-align: center; color: var(--ee-pc-accent); }

/* ---- Site card mode: WooCommerce's own li.product inside the slider ---- */
.ee-pc--site .ee-pc__track.products { margin: 0; padding: 0; }
.ee-pc--site .ee-pc__track.products::before,
.ee-pc--site .ee-pc__track.products::after { content: none; display: none; }
.ee-pc--site .woocommerce ul.products li.product,
.ee-pc--site ul.products li.product {
	float: none !important;
	clear: none !important;
	width: auto !important;
	margin: 0 !important;
	flex: 0 0 calc((100cqw - (var(--ee-pc-cols) - 1) * var(--ee-pc-gap)) / var(--ee-pc-cols));
	scroll-snap-align: start;
	list-style: none;
}

/* ---- Arrows & progress ---- */
.ee-pc__arrow {
	position: absolute;
	top: 38%;
	z-index: 2;
	display: none;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .95);
	color: #1f2733;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
	cursor: pointer;
}
.ee-pc__arrow--prev { left: 4px; }
.ee-pc__arrow--next { right: 4px; }
.ee-pc.is-ready .ee-pc__arrow { display: inline-flex; }
.ee-pc__arrow:hover { color: var(--ee-pc-accent); }

.ee-pc__progress { height: 3px; margin: 10px auto 0; width: min(220px, 60%); border-radius: 3px; background: #e6ecef; overflow: hidden; }
.ee-pc__progress span { display: block; height: 100%; width: 100%; background: var(--ee-pc-accent); transform-origin: left; transform: scaleX(var(--ee-pc-p, 0)); transition: transform .2s; }

.ee-pc a:focus-visible,
.ee-pc button:focus-visible { outline: 3px solid #1a73e8; outline-offset: 2px; }

.ee-pc-empty { padding: 20px; border: 1px dashed #c5ccd3; border-radius: 8px; text-align: center; color: #6b7682; }

@media (max-width: 1024px) {
	.ee-pc { --ee-pc-cols: 3; }
	.ee-pc--panel { grid-template-columns: minmax(0, 1fr); }
	.ee-pc__panel { flex-direction: row; flex-wrap: wrap; justify-content: center; text-align: left; }
	.ee-pc__panel-icon { width: 56px; height: 56px; font-size: 28px; }
	.ee-pc__panel-text { flex-basis: 100%; text-align: center; max-width: none; }
}
@media (max-width: 767px) {
	.ee-pc { --ee-pc-cols: 2; --ee-pc-gap: 10px; }
	.ee-pc__panel { padding: 14px 8px; gap: 8px; }
	.ee-pc__unit { min-width: 56px; padding: 8px 4px; }
	.ee-pc__unit b { font-size: 1.25rem; }
	.ee-pc__arrow { display: none !important; }
	.ee-pc__body { padding: 8px 8px 10px; }
	.ee-pc__title { font-size: .88rem; }
	.ee-pc__btn { min-height: 38px; font-size: .82rem; }
}

@media (prefers-reduced-motion: reduce) {
	.ee-pc__viewport { scroll-behavior: auto; }
	.ee-pc__img, .ee-pc__card, .ee-pc__progress span { transition: none; }
	.ee-pc__card:hover .ee-pc__img { transform: none; }
}

/* 1.3.2 — containment guard: nothing inside this widget can ever make the
   page wider than the screen (no sideways scroll / zoom-out gap on phones),
   whatever the surrounding Elementor layout is. overflow-x: clip does not
   create a scroll container, so vertical layout and sticky elements are
   unaffected. */
.elementor-widget-ee-product-carousel { min-width: 0; max-width: 100%; }
.ee-pc { position: relative; max-width: 100%; min-width: 0; overflow-x: clip; }

/* 1.3.2 — containment guard: on phones/tablets nothing inside this widget
   can make the page wider than the screen. overflow-x: clip (not hidden)
   does not create a scroll container, so the inner slider still scrolls. */
.elementor-widget-ee-product-carousel { min-width: 0; max-width: 100%; }
.ee-pc { max-width: 100%; min-width: 0; }
@media (max-width: 1024px) {
	.ee-pc { overflow-x: clip; }
	.ee-pc__arrow--prev { left: 4px; }
	.ee-pc__arrow--next { right: 4px; }
}
