/* 40 — Shop: product card, category archive, single product sections. */

/* ---------- Product card (Loop Item) ---------- */
.sensa-card {
	position: relative;
	background: var(--c-bg-surface);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	transition: box-shadow var(--motion-fast);
	overflow: hidden;
	block-size: 100%;
}
.sensa-card:hover { box-shadow: var(--shadow-card-hover); }
.sensa-card .elementor-widget-image img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	inline-size: 100%;
	background: var(--c-bg-subtle);
}
.sensa-card .discount-badge {
	position: absolute;
	inset-block-start: 12px;
	inset-inline-start: 12px;
	z-index: 2;
}
.sensa-card .elementor-heading-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.sensa-card .elementor-heading-title a { color: inherit; }
.sensa-mini-desc {
	margin: 0;
	font-size: var(--fs-sm);
	color: var(--c-ink-muted);
}
.sensa-card .price { font-weight: 600; color: var(--c-ink); }
.sensa-card .price del { color: var(--c-ink-muted); font-weight: 400; margin-inline-end: 6px; }
.sensa-card .price ins { text-decoration: none; }
.sensa-loop-atc .button {
	display: block;
	inline-size: 100%;
	text-align: center;
	background: var(--c-accent);
	color: #fff;
	border-radius: var(--radius-sm);
	padding: 10px 12px;
	font-weight: 600;
	font-size: var(--fs-sm);
}
.sensa-loop-atc .button:hover { background: var(--c-accent-hover); color: #fff; }
.sensa-loop-atc .added_to_cart { display: block; text-align: center; font-size: var(--fs-xs); margin-top: 4px; }
@media (hover: hover) and (min-width: 1024px) {
	.sensa-card .sensa-loop-atc { opacity: 0; transition: opacity var(--motion-fast); }
	.sensa-card:hover .sensa-loop-atc,
	.sensa-card:focus-within .sensa-loop-atc { opacity: 1; }
}

.sensa-rating { display: flex; align-items: center; gap: 6px; font-size: var(--fs-xs); }
.sensa-rating a { display: contents; color: inherit; }
.sensa-rating__count { color: var(--c-ink-muted); }

/* ---------- Category archive ---------- */
.sensa-chips {
	display: flex;
	gap: var(--space-tight);
	overflow-x: auto;
	scrollbar-width: none;
	padding-block: 4px;
}
.sensa-chips::-webkit-scrollbar { display: none; }
.sensa-chip {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	min-block-size: 44px;
	padding-inline: 16px;
	border: 1px solid var(--c-border-strong);
	border-radius: var(--radius-pill);
	background: var(--c-bg-surface);
	color: var(--c-ink);
	font-size: var(--fs-sm);
	white-space: nowrap;
	text-decoration: none;
}
.sensa-chip:hover { border-color: var(--c-primary); color: var(--c-primary); }
.sensa-chip.is-active { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.sensa-chip__count { opacity: .75; font-size: var(--fs-xs); }

.sensa-free-shipping-note { margin: 0; font-size: var(--fs-sm); color: var(--c-ink-muted); }

.elementor-widget-woocommerce-archive-description .term-description { max-width: 68ch; }
.elementor-widget-woocommerce-archive-description .term-description p { margin: 0; }

/* ---------- Filters: sidebar ≥1025, drawer ≤1024 ---------- */
.sensa-filters .jet-filter { margin-block-end: var(--space-block); }
.sensa-filters .jet-filter-label {
	font-family: var(--ff-heading);
	font-weight: 600;
	font-size: var(--fs-body);
	margin-block-end: var(--space-tight);
}
.sensa-filters .jet-checkboxes-list__row { margin-block: 6px; }
.sensa-filters .jet-checkboxes-list__item { min-block-size: 32px; align-items: center; }
.sensa-filters .jet-filters-counter { color: var(--c-ink-muted); font-size: var(--fs-xs); margin-inline-start: 4px; }
.sensa-filters .jet-range__slider__track__range { background: var(--c-primary); }

.sensa-filters-toggle,
.sensa-filters__head,
.sensa-filters__foot { display: none; }

@media (max-width: 1024px) {
	.sensa-filters-toggle {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		min-block-size: 44px;
		padding-inline: 20px;
		border: 1px solid var(--c-border-strong);
		border-radius: var(--radius-pill);
		background: var(--c-bg-surface);
		color: var(--c-ink);
		font-weight: 600;
	}
	.sensa-filters {
		position: fixed !important;
		inset-block: 0;
		inset-inline-start: 0;
		inline-size: min(360px, 88vw) !important;
		max-inline-size: none !important;
		z-index: 9999;
		background: var(--c-bg-page);
		overflow-y: auto;
		padding: 0 16px !important;
		transform: translateX(100%);
		visibility: hidden;
		transition: transform var(--motion-drawer), visibility 0s linear 250ms;
	}
	.sensa-filters.is-open {
		transform: none;
		visibility: visible;
		transition: transform var(--motion-drawer);
		box-shadow: 0 0 0 100vmax rgba(42, 36, 34, .45);
	}
	.sensa-filters__head {
		display: flex;
		justify-content: space-between;
		align-items: center;
		position: sticky;
		inset-block-start: 0;
		background: var(--c-bg-page);
		padding-block: 12px;
		z-index: 1;
		border-block-end: 1px solid var(--c-border);
		margin-block-end: var(--space-element);
	}
	.sensa-filters__title { margin: 0; font-family: var(--ff-heading); font-weight: 700; font-size: var(--fs-h3); }
	.sensa-filters__close {
		min-inline-size: 44px; min-block-size: 44px;
		background: none; border: 0; color: var(--c-ink); font-size: 20px;
	}
	.sensa-filters__foot {
		display: block;
		position: sticky;
		inset-block-end: 0;
		background: var(--c-bg-page);
		padding-block: 12px;
		border-block-start: 1px solid var(--c-border);
	}
	.sensa-filters__apply {
		inline-size: 100%;
		min-block-size: 48px;
		background: var(--c-accent);
		color: #fff;
		border: 0;
		border-radius: var(--radius-sm);
		font-weight: 600;
	}
	html.sensa-no-scroll { overflow: hidden; }
}

.sensa-toolbar .jet-sorting-select {
	min-block-size: 44px;
	border: 1px solid var(--c-border-strong);
	border-radius: var(--radius-sm);
	background: var(--c-bg-surface);
	padding-inline: 12px;
	font-size: var(--fs-sm);
}

/* ---------- Sections (product + category) ---------- */
.sensa-section { max-width: 900px; }
.sensa-section h2 { margin: 0 0 var(--space-element); }
.sensa-cat-guide h3 { margin-block: var(--space-element) var(--space-tight); }

.sensa-faq__item {
	border-block-end: 1px solid var(--c-border);
}
.sensa-faq__item summary {
	cursor: pointer;
	list-style: none;
	padding-block: var(--space-element);
	font-family: var(--ff-heading);
	font-weight: 600;
	display: flex;
	justify-content: space-between;
	gap: var(--space-element);
}
.sensa-faq__item summary::-webkit-details-marker { display: none; }
.sensa-faq__item summary::after { content: "+"; color: var(--c-primary); font-size: 1.25em; line-height: 1; }
.sensa-faq__item[open] summary::after { content: "−"; }
.sensa-faq__answer { padding-block-end: var(--space-element); color: var(--c-ink); }
.sensa-faq__answer p:last-child { margin-bottom: 0; }

/* ---------- Single product ---------- */
.sensa-bullets {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--space-tight);
}
.sensa-bullets li {
	position: relative;
	padding-inline-start: 1.6em;
}
.sensa-bullets li::before {
	content: "✓";
	position: absolute;
	inset-inline-start: 0;
	color: var(--c-primary);
	font-weight: 700;
}
.sensa-installments { margin: 0; font-size: var(--fs-sm); color: var(--c-ink-muted); }

.sensa-shipping-line {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	font-size: var(--fs-sm);
}
.sensa-stock { font-weight: 600; }
.sensa-stock--in { color: var(--c-success); }
.sensa-stock--low { color: var(--c-ink); }
.sensa-stock--out { color: var(--c-error); }
.sensa-returns-line { margin: 0; font-size: var(--fs-sm); }

.sensa-anchors {
	position: sticky;
	inset-block-start: 0;
	z-index: 10;
	display: flex;
	gap: var(--space-block);
	overflow-x: auto;
	background: var(--c-bg-page);
	border-block-end: 1px solid var(--c-border);
	padding-block: 12px;
}
.sensa-anchors a {
	flex: none;
	color: var(--c-ink);
	font-weight: 600;
	font-size: var(--fs-sm);
	text-decoration: none;
	min-block-size: 44px;
	display: inline-flex;
	align-items: center;
}
.sensa-anchors a:hover { color: var(--c-primary); }
[id^="sensa-"], #reviews-section { scroll-margin-top: 72px; }

.sensa-spec__grid {
	display: grid;
	gap: var(--space-block);
	grid-template-columns: 1fr;
}
@media (min-width: 768px) {
	.sensa-spec__grid { grid-template-columns: repeat(2, 1fr); }
}
.sensa-spec__group {
	background: var(--c-bg-surface);
	border-radius: var(--radius-md);
	padding: var(--space-element);
}
.sensa-spec__group h3 { font-size: var(--fs-body-lg); margin: 0 0 var(--space-tight); }
.sensa-spec__group dl { margin: 0; }
.sensa-spec__row {
	display: flex;
	justify-content: space-between;
	gap: var(--space-element);
	padding-block: 8px;
	border-block-end: 1px solid var(--c-border);
	font-size: var(--fs-sm);
}
.sensa-spec__row:last-child { border-block-end: 0; }
.sensa-spec__row dt { color: var(--c-ink-muted); }
.sensa-spec__row dd { margin: 0; font-weight: 600; text-align: end; }

.sensa-sticky-atc {
	position: fixed;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: 999;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 16px calc(8px + env(safe-area-inset-bottom));
	background: var(--c-bg-surface);
	box-shadow: var(--shadow-overlay);
}
.sensa-sticky-atc[hidden] { display: none; }
.sensa-sticky-atc__img img { inline-size: 48px; block-size: 48px; object-fit: cover; border-radius: var(--radius-sm); }
.sensa-sticky-atc__info { flex: 1; min-inline-size: 0; }
.sensa-sticky-atc__name { margin: 0; font-size: var(--fs-sm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sensa-sticky-atc__price { margin: 0; font-size: var(--fs-sm); font-weight: 600; }
.sensa-sticky-atc__price del { font-weight: 400; color: var(--c-ink-muted); }
.sensa-sticky-atc__btn {
	flex: none;
	min-block-size: 44px;
	padding-inline: 18px;
	background: var(--c-accent);
	color: #fff;
	border: 0;
	border-radius: var(--radius-sm);
	font-weight: 600;
}

.woocommerce div.product form.cart .button,
.elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button {
	background: var(--c-accent);
	color: #fff;
	border-radius: var(--radius-sm);
	font-weight: 600;
	min-block-size: 48px;
}
.elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button:hover { background: var(--c-accent-hover); }
@media (max-width: 767px) {
	.elementor-widget-woocommerce-product-add-to-cart form.cart { display: flex; gap: 8px; }
	.elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button { flex: 1; }
}

/* ---------- Bug fixes from visual audit (design-review/audit.md) ---------- */
/* Gallery collapsed to 0 width on desktop inside the 55% column */
.elementor-widget-woocommerce-product-images,
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery { inline-size: 100%; }
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery { opacity: 1 !important; float: none !important; }
/* Loop add-to-cart was grey (Elementor/WC button styles won) */
.sensa-loop-atc .button,
.woocommerce .sensa-loop-atc a.button {
	background: var(--c-accent) !important;
	color: #fff !important;
	border: 0 !important;
}
.sensa-loop-atc .button:hover { background: var(--c-accent-hover) !important; }
/* Filters sidebar was squeezed by the growing grid column */
@media (min-width: 1025px) {
	.sensa-filters { flex: 0 0 260px !important; inline-size: 260px !important; max-inline-size: 260px; }
}
