/*
 * Product card pieces: BE Card Media, BE Availability Line, BE Price Range, BE Fill Bar.
 * Ported from reference .pc (base, v9–v11, v27, v29, v42). The Loop Item root container
 * carries the class "pc", so hover effects follow the whole card.
 */

/* ---------- Card media ---------- */
.elementor-widget-be-card-media {
	--cm-ratio: 1;
	--cm-tile: var(--tile, #E3D8C6);
	--cm-wall-1: #EDE4D8;
	--cm-wall-2: #E4D8C8;
	--cm-table-1: #D6C6B0;
	--cm-table-2: #E1D3C0;
	--cm-table-3: #CDBBA3;
	--cm-badge-bg: var(--ink2, #16120E);
	--cm-badge-color: var(--bone, #EFE5D4);
	--cm-sale-bg: var(--sale, #9A2E1A);
	--cm-sale-color: #fff;
	--cm-heart-bg: rgba(244, 237, 226, .92);
	--cm-heart-color: var(--text, #16120E);
	--cm-heart-on: var(--sale, #9A2E1A);
	--cm-quick-bg: var(--ink2, #16120E);
	--cm-quick-color: var(--bone, #EFE5D4);
	--cm-quick-hover-bg: var(--amber, #B97F35);
	width: 100%;
}

.elementor-widget-be-card-media .imw {
	position: relative;
	margin-bottom: 10px;
}

.elementor-widget-be-card-media .im {
	display: block;
	aspect-ratio: var(--cm-ratio);
	max-width: 100%;
	overflow: hidden;
	background: var(--cm-tile);
}

.elementor-widget-be-card-media .im img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	padding: 0;
	transition: transform .7s ease;
}

.be-cm-hover-yes .imw:not(.studio) .im img { will-change: transform; }
.pc:hover .be-cm-hover-yes .imw:not(.studio) .im img,
.e-loop-item:hover .be-cm-hover-yes .imw:not(.studio) .im img { transform: scale(1.05); }

/* Studio backdrop: warm wall, tabletop, soft vignette and contact shadow (v27). */
.elementor-widget-be-card-media .imw.studio .im {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding-bottom: 17%;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
		radial-gradient(70% 55% at 50% 38%, rgba(255, 250, 242, .95), rgba(255, 250, 242, 0) 70%),
		linear-gradient(180deg, var(--cm-wall-1) 0%, var(--cm-wall-2) 68%, var(--cm-table-1) 68.2%, var(--cm-table-2) 78%, var(--cm-table-3) 100%);
}

.elementor-widget-be-card-media .imw.studio .im::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(120% 90% at 50% 40%, transparent 55%, rgba(90, 60, 30, .16));
	pointer-events: none;
}

.elementor-widget-be-card-media .imw.studio .im::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 14.5%;
	width: 56%;
	height: 7%;
	transform: translateX(-50%);
	border-radius: 50%;
	background: radial-gradient(50% 50% at 50% 50%, rgba(60, 38, 20, .38), rgba(60, 38, 20, 0) 72%);
	filter: blur(2px);
}

.elementor-widget-be-card-media .imw.studio .im img {
	position: relative;
	z-index: 1;
	width: auto;
	height: auto;
	max-width: 60%;
	max-height: 70%;
	padding: 0;
	object-fit: contain;
	-webkit-box-reflect: below 1px linear-gradient(transparent 82%, rgba(255, 255, 255, .22));
	transform-origin: 50% 100%;
}

.pc:hover .be-cm-hover-yes .imw.studio .im img,
.e-loop-item:hover .be-cm-hover-yes .imw.studio .im img { transform: translateY(-4px) scale(1.03); }

.elementor-widget-be-card-media .be-cm-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--soft, #7A6D5E);
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
}

/* Badge (v42 sale). */
.elementor-widget-be-card-media .badge {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 2;
	background: var(--cm-badge-bg);
	color: var(--cm-badge-color);
	font-size: 9.5px;
	font-weight: 700;
	letter-spacing: .16em;
	line-height: 1.7;
	text-transform: uppercase;
	padding: 4px 9px;
	border-radius: 999px;
}

.elementor-widget-be-card-media .badge.sale {
	background: var(--cm-sale-bg);
	color: var(--cm-sale-color);
	letter-spacing: .06em;
}

/* Wishlist heart. */
.elementor-widget-be-card-media .heart {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 2;
	width: 38px;
	height: 38px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--cm-heart-bg);
	color: var(--cm-heart-color);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background .2s, color .2s;
}

.elementor-widget-be-card-media .heart:hover { background: #fff; }
.elementor-widget-be-card-media .heart[aria-pressed="true"] { color: var(--cm-heart-on); }
.elementor-widget-be-card-media .heart[aria-pressed="true"] svg { fill: currentColor; }

/* Quick add slides up on hover / focus; always visible on touch. */
.elementor-widget-be-card-media .qadd {
	position: absolute;
	left: 10px;
	right: 10px;
	bottom: 10px;
	z-index: 2;
	min-height: 40px;
	padding: 0 12px;
	border: 0;
	border-radius: 0;
	background: var(--cm-quick-bg);
	line-height: 1.2;
	color: var(--cm-quick-color);
	font-family: var(--f);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	cursor: pointer;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .25s, transform .25s, background .2s;
}

.elementor-widget-be-card-media .qadd:hover,
.elementor-widget-be-card-media .qadd:focus-visible { background: var(--cm-quick-hover-bg); }

.pc:hover .elementor-widget-be-card-media .qadd,
.pc:focus-within .elementor-widget-be-card-media .qadd,
.e-loop-item:hover .elementor-widget-be-card-media .qadd,
.e-loop-item:focus-within .elementor-widget-be-card-media .qadd,
.elementor-widget-be-card-media .imw:hover .qadd,
.elementor-widget-be-card-media .imw:focus-within .qadd {
	opacity: 1;
	transform: none;
}

@media (hover: none) {
	.elementor-widget-be-card-media .qadd { opacity: 1; transform: none; }
}

/* ---------- Availability line (v42) ---------- */
.elementor-widget-be-availability {
	--av-color: #5E6B4E;
	--av-dot: #6E9A4E;
	--av-ring: rgba(110, 154, 78, .18);
	--av-out: var(--soft, #7A6D5E);
}

.elementor-widget-be-availability .avail {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 4px 0 8px;
	font-size: 11.5px;
	line-height: 1.7;
	color: var(--av-color);
}

.elementor-widget-be-availability .avail i {
	flex: none;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--av-dot);
	box-shadow: 0 0 0 3px var(--av-ring);
}

.elementor-widget-be-availability .avail.out { color: var(--av-out); }
.elementor-widget-be-availability .avail.out i { background: var(--av-out); box-shadow: none; }

/* ---------- Price range (base, v9, v42) ---------- */
.elementor-widget-be-price-range {
	--pr-color: var(--text, #16120E);
	--pr-was: #9A8A7C;
}

.elementor-widget-be-price-range .pr {
	margin: 2px 0 0;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: -.01em;
	line-height: 1.7;
	color: var(--pr-color);
}

.elementor-widget-be-price-range .pr s {
	margin-left: 6px;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--pr-was);
}

/* ---------- Fill bar (v9) ---------- */
.elementor-widget-be-fill-bar {
	--fb-track: var(--line, #D8CCBB);
	--fb-fill: var(--amber, #B97F35);
	--fb-height: 4px;
}

.elementor-widget-be-fill-bar .fill {
	position: relative;
	height: var(--fb-height);
	margin: 2px 0 4px;
	background: var(--fb-track);
}

.elementor-widget-be-fill-bar .fill i {
	position: absolute;
	inset: 0 auto 0 0;
	background: var(--fb-fill);
}

@media (prefers-reduced-motion: reduce) {
	.elementor-widget-be-card-media .im img,
	.elementor-widget-be-card-media .qadd { transition: none; }
}

/* ---------- card text (Loop Item "Product card"; base .pc h3, v10) ---------- */
.pc .be-card-title .elementor-heading-title { min-height: 2.8em; }
.pc .be-card-fam .elementor-heading-title,
.pc .be-card-title .elementor-heading-title { margin: 0; }

