/* ========================================
   Hello Commerce Elementor Widgets - Frontend Styles
   ======================================== */

:root {
	--theme-color: #82e600;
	--alert-color: #fa3c00;
	--hc-font-family:
		"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
		Roboto, sans-serif;
	--hc-primary-color: var(--theme-color);
	--hc-secondary-color: #6c757d;
	--hc-dark-color: #000;
	--hc-light-color: #f5f5f5;
	--hc-border-color: #e0e0e0;
	--hc-star-color: #ffc107;
	--hc-text-color: #333333;
	--hc-muted-text: #999999;
	--hc-border-radius: 8px;
	--hc-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* ========================================
   Common Styles
   ======================================== */

/* Oraimo typeface for widget UI */
.hc-search-bar-widget,
.hc-product-grid,
.hc-product-card,
.hc-product-content,
.hc-single-product-wrapper,
.hc-rating-wrapper,
.hc-ew-empty-state {
	font-family: var(--hc-font-family);
}

.hc-search-bar-widget button,
.hc-search-bar-widget input,
.hc-product-card button,
.hc-product-card input {
	font-family: inherit;
}

.hc-ew-empty-state {
	padding: 40px 20px;
	text-align: center;
	background-color: var(--hc-light-color);
	border-radius: var(--hc-border-radius);
	color: var(--hc-muted-text);
}

.hc-ew-empty-state p {
	margin: 0;
	font-size: 16px;
}

/* ========================================
   Rating Styles
   ======================================== */

.hc-rating-wrapper {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 8px 0;
}

.hc-stars {
	display: flex;
	gap: 2px;
}

.hc-star {
	font-size: 16px;
	line-height: 1;
}

.hc-star-full {
	color: var(--hc-star-color);
}

.hc-star-empty {
	color: #cccccc;
}

.hc-star-half {
	color: var(--hc-star-color);
	opacity: 0.5;
}

.hc-rating-count {
	color: var(--hc-muted-text);
	font-size: 14px;
}

/* ========================================
   Product Price Styles
   ======================================== */

.hc-product-price-wrapper {
	display: flex;
	align-items: center;
	gap: 10px;
}

.hc-product-price {
	font-size: 24px;
	font-weight: 700;
	color: var(--hc-primary-color);
}

.hc-product-price-sale {
	font-size: 24px;
	font-weight: 700;
	color: var(--hc-primary-color);
}

.hc-product-price-regular {
	font-size: 16px;
	color: var(--hc-muted-text);
	text-decoration: line-through;
}

/* ========================================
   Product Card - Common
   ======================================== */

.hc-product-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background-color: #ffffff;
	/* border: 1px solid var(--hc-border-color); */
	/* border-radius: var(--hc-border-radius); */
	overflow: hidden;
	/* box-shadow: var(--hc-box-shadow); */
	transition: all 0.3s ease;
}

.hc-product-image {
	position: relative;
	width: 100%;
	overflow: hidden;
	background-color: var(--hc-light-color);
	aspect-ratio: 1 / 1;
}

.hc-product-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.hc-product-card:hover .hc-product-image img {
	transform: scale(1.05);
}

.hc-sale-badge,
.hc-stock-badge {
	position: absolute;
	top: 10px;
	right: 10px;
	padding: 6px 12px;
	font-size: 12px;
	font-weight: 700;
	border-radius: 4px;
	z-index: 10;
}

.hc-sale-badge {
	background-color: var(--theme-color);
	color: #ffffff;
}

.hc-stock-badge {
	background-color: var(--alert-color);
	color: #ffffff;
}

.hc-product-content {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 16px;
	gap: 8px;
}

.hc-product-categories {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.hc-term-tag {
	background-color: var(--theme-color);
	border-radius: 0.1867rem;
	color: #fff;
	display: inline-block;
	font-size: 12px;
	line-height: 0.24rem;
	padding: 0.0667rem 0.2667rem;
	white-space: nowrap;
}

@media screen and (min-width: 1280px) {
	.site-product .product-tag-new-content,
	.hc-term-tag.product-tag-new-content {
		border-radius: 10px;
		font-size: 12px;
		line-height: 20px;
		padding: 0 12px;
	}
}

.hc-product-title {
	margin: 0;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--hc-text-color);
	text-decoration: none;
	display: -webkit-box;
	line-clamp: 2;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.hc-product-title a {
	color: inherit;
	text-decoration: none !important;
	transition: color 0.3s ease;
}

.hc-product-title a:hover {
	color: var(--hc-primary-color);
}

.hc-product-rating {
	margin: 4px 0;
}

.hc-product-price-section {
	margin: 4px 0;
}

.hc-add-to-cart-container {
	margin-top: auto;
	padding-top: 8px;
}

.hc-product-card.site-product {
	position: relative;
	width: 100%;
}

.site-product .product-img {
	background-color: #f8f8f8;
	border-radius: 0.16rem;
	display: block;
	position: relative;
	overflow: hidden;
}

.site-product .product-picture {
	width: 100%;
	height: auto;
	display: block;
	border-radius: inherit;
}

.site-product .product-review {
	align-items: center;
	background-color: hsla(0, 0%, 100%, 0.85);
	border-radius: 0.16rem;
	bottom: 0.16rem;
	display: flex;
	font-size: 0.32rem;
	left: 0.16rem;
	padding: 0.08rem 0.16rem;
	position: absolute;
	z-index: 2;
}

.site-product .review-score {
	color: #000;
	font-weight: 600;
}

.site-product .review-star {
	color: var(--theme-color);
	font-size: 0.32rem;
	line-height: 1;
	margin: 0 0.0533rem;
}

.site-product .review-count {
	color: #999;
	font-weight: 300;
}

.site-product .product-points {
	margin-top: 0.1333rem;
}

.site-product .product-point {
	border-bottom: 1px solid #eee;
	color: #000;
	font-size: 0.32rem;
	line-height: 0.48rem;
	overflow: hidden;
	padding: calc(0.1333rem + 0.125em) 0 calc(0.1333rem - 0.125em);
	text-overflow: ellipsis;
	white-space: nowrap;
}

.site-product .product-point:first-child {
	border-top: 1px solid #eee;
}

.site-product .product-price {
	line-height: 1.4;
	margin: 0.24rem 0 0.16rem;
}

.site-product .product-price .hc-product-price {
	color: #000;
	display: inline-block;
	font-size: 0.3733rem;
	font-weight: 600;
}

.site-product .product-price .hc-product-price-regular {
	color: #666;
	font-size: 0.32rem;
	font-weight: 300;
	margin-left: 0.1333rem;
	text-decoration: line-through;
}

@media screen and (min-width: 1280px) {
	.site-product .product-btn {
		background-color: #fff;
		left: 0;
		padding: 12px 0;
		position: absolute;
		right: 0;
		top: auto;
		bottom: 0;
	}
}

.site-product .product-btn {
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: center;
	margin-top: auto;
	padding-top: 12px;
	position: relative;
	z-index: 3;
}

.site-product .product-btn a {
	background-color: #111;
	border-radius: 18px;
	color: #fff;
	display: inline-block;
	font-size: 14px;
	height: 36px;
	line-height: 36px;
	padding: 0 14px;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
}

.site-product .product-btn a.product-learn-more {
	background-color: #fff;
	border: 1px solid #111;
	color: #111;
}

@media (hover: hover) {
	.hc-hover-actions-enabled .hc-product-card .product-btn,
	.hc-hover-actions-enabled .hc-product-card .hc-add-to-cart-container,
	.hc-hover-actions-enabled .hc-product-card .hc-learn-more-btn {
		max-height: 0;
		opacity: 0;
		visibility: hidden;
		overflow: hidden;
		transform: translateY(8px);
		pointer-events: none;
		transition:
			opacity 0.25s ease,
			transform 0.25s ease,
			max-height 0.25s ease,
			visibility 0.25s ease;
		padding-top: 0;
	}

	.hc-hover-actions-enabled .hc-product-card:hover .product-btn,
	.hc-hover-actions-enabled .hc-product-card:focus-within .product-btn,
	.hc-hover-actions-enabled .hc-product-card:hover .hc-add-to-cart-container,
	.hc-hover-actions-enabled
		.hc-product-card:focus-within
		.hc-add-to-cart-container,
	.hc-hover-actions-enabled .hc-product-card:hover .hc-learn-more-btn,
	.hc-hover-actions-enabled .hc-product-card:focus-within .hc-learn-more-btn {
		max-height: 120px;
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto;
		/* padding-top: 8px; */
	}
}

@media screen and (min-width: 1280px) {
	.site-product h3 {
		font-size: 18px;
		height: 24px;
		margin: 24px 0 0;
	}

	.site-product .product-point {
		font-size: 12px;
		line-height: 18px;
		padding: calc(10px + 0.125em) 0 calc(10px - 0.125em);
	}

	.site-product .product-review {
		border-radius: 15px;
		bottom: 12px;
		font-size: 18px;
		left: 12px;
		padding: 4px 12px;
	}

	.site-product .review-star {
		font-size: 18px;
		margin: 0 4px;
	}

	.site-product .product-price {
		margin: 12px 0 16px;
	}

	.site-product .product-price .hc-product-price {
		font-size: 18px;
	}

	.site-product .product-price .hc-product-price-regular {
		font-size: 12px;
		margin-left: 12px;
	}

	.site-product .product-btn {
		position: absolute;
		background-color: transparent;
		padding: 12px 0;
	}

	.site-product .product-btn a:first-child {
		/* margin-right: 20px; */
		width: 100%;
	}
}

.hc-add-to-cart-btn {
	width: 100%;
	padding: 10px 12px;
	background-color: var(--hc-dark-color);
	color: #ffffff;
	border: none;
	border-radius: 4px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.3s ease;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.hc-add-to-cart-btn:hover {
	background-color: var(--hc-primary-color);
	transform: scale(1.02);
}

.hc-add-to-cart-btn:active {
	transform: scale(0.98);
}

/* ========================================
   Product Carousel Styles
   ======================================== */

.hc-product-carousel-wrapper {
	position: relative;
	width: 100%;
}

.hc-swiper-container {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.swiper-wrapper {
	display: flex;
	transition-property: transform;
	box-sizing: border-box;
}

.swiper-slide {
	flex-shrink: 0;
	width: 100%;
	height: auto;
	position: relative;
	box-sizing: border-box;
}

/* Navigation and Pagination */
.swiper-button-prev,
.swiper-button-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 20;
	width: 44px;
	height: 44px;
	background-color: rgba(0, 0, 0, 0.5);
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	transition: all 0.3s ease;
}

.swiper-button-prev:hover,
.swiper-button-next:hover {
	background-color: rgba(0, 0, 0, 0.8);
}

.swiper-button-prev {
	left: 10px;
}

.swiper-button-next {
	right: 10px;
}

.swiper-button-prev::after,
.swiper-button-next::after {
	font-size: 20px;
	font-weight: bold;
}

.hc-product-carousel-wrapper .swiper-pagination {
	display: flex !important;
	justify-content: center;
	font-size: 0;
	position: static !important;
	left: auto !important;
	right: auto !important;
	top: auto !important;
	bottom: auto !important;
	width: 100% !important;
	padding: 12px 0 0 0;
	margin: 0;
	min-height: 8px;
	visibility: visible !important;
}

.hc-product-carousel-wrapper .swiper-pagination .swiper-pagination-bullet {
	background-color: hsla(204, 2%, 41%, 0.3);
	border-radius: 999px;
	height: 8px;
	margin: 0 6px;
	padding: 0;
	width: 8px;
	opacity: 1;
	cursor: pointer;
	transition:
		width 0.35s linear,
		background-color 0.2s ease;
}

.hc-product-carousel-wrapper
	.swiper-pagination
	.swiper-pagination-bullet.swiper-pagination-bullet-active {
	background-color: var(--theme-color);
	border-radius: 999px;
	opacity: 1;
	width: 28px;
}

@media screen and (min-width: 1280px) {
	.hc-product-carousel-wrapper .swiper-pagination .swiper-pagination-bullet {
		border-radius: 12px;
		height: 12px;
		margin: 0 10px;
		width: 12px;
	}

	.hc-product-carousel-wrapper
		.swiper-pagination
		.swiper-pagination-bullet.swiper-pagination-bullet-active {
		border-radius: 6px;
		width: 40px;
	}
}

/* ========================================
   Elementor Slides Pagination
   ======================================== */

/* Match the same dot/pill pagination style for Elementor Slides and carousels.
   Intentionally does NOT override positioning (Elementor controls placement). */
.elementor-widget-slides .swiper-pagination .swiper-pagination-bullet,
.elementor-widget-image-carousel .swiper-pagination .swiper-pagination-bullet,
.elementor-widget-media-carousel .swiper-pagination .swiper-pagination-bullet,
.elementor-widget-testimonial-carousel
	.swiper-pagination
	.swiper-pagination-bullet {
	background-color: hsla(204, 2%, 41%, 0.3) !important;
	border-radius: 999px !important;
	height: 8px !important;
	width: 8px !important;
	margin: 0 6px !important;
	opacity: 1 !important;
	transition:
		width 0.35s linear,
		background-color 0.2s ease;
}

.elementor-widget-slides
	.swiper-pagination
	.swiper-pagination-bullet.swiper-pagination-bullet-active,
.elementor-widget-image-carousel
	.swiper-pagination
	.swiper-pagination-bullet.swiper-pagination-bullet-active,
.elementor-widget-media-carousel
	.swiper-pagination
	.swiper-pagination-bullet.swiper-pagination-bullet-active,
.elementor-widget-testimonial-carousel
	.swiper-pagination
	.swiper-pagination-bullet.swiper-pagination-bullet-active,
.elementor-widget-slides
	.swiper-pagination
	.swiper-pagination-bullet.swiper-pagination-bullet-active-main,
.elementor-widget-image-carousel
	.swiper-pagination
	.swiper-pagination-bullet.swiper-pagination-bullet-active-main,
.elementor-widget-media-carousel
	.swiper-pagination
	.swiper-pagination-bullet.swiper-pagination-bullet-active-main,
.elementor-widget-testimonial-carousel
	.swiper-pagination
	.swiper-pagination-bullet.swiper-pagination-bullet-active-main {
	background-color: var(--theme-color) !important;
	width: 28px !important;
}

@media screen and (min-width: 1280px) {
	.elementor-widget-slides .swiper-pagination .swiper-pagination-bullet,
	.elementor-widget-image-carousel
		.swiper-pagination
		.swiper-pagination-bullet,
	.elementor-widget-media-carousel
		.swiper-pagination
		.swiper-pagination-bullet,
	.elementor-widget-testimonial-carousel
		.swiper-pagination
		.swiper-pagination-bullet {
		height: 12px !important;
		width: 12px !important;
		margin: 0 10px !important;
	}

	.elementor-widget-slides
		.swiper-pagination
		.swiper-pagination-bullet.swiper-pagination-bullet-active,
	.elementor-widget-image-carousel
		.swiper-pagination
		.swiper-pagination-bullet.swiper-pagination-bullet-active,
	.elementor-widget-media-carousel
		.swiper-pagination
		.swiper-pagination-bullet.swiper-pagination-bullet-active,
	.elementor-widget-testimonial-carousel
		.swiper-pagination
		.swiper-pagination-bullet.swiper-pagination-bullet-active,
	.elementor-widget-slides
		.swiper-pagination
		.swiper-pagination-bullet.swiper-pagination-bullet-active-main,
	.elementor-widget-image-carousel
		.swiper-pagination
		.swiper-pagination-bullet.swiper-pagination-bullet-active-main,
	.elementor-widget-media-carousel
		.swiper-pagination
		.swiper-pagination-bullet.swiper-pagination-bullet-active-main,
	.elementor-widget-testimonial-carousel
		.swiper-pagination
		.swiper-pagination-bullet.swiper-pagination-bullet-active-main {
		width: 40px !important;
	}
}

/* ========================================
   Product Grid Styles
   ======================================== */

.hc-product-grid-wrapper {
	width: 100%;
}

.hc-product-grid {
	display: grid;
	grid-template-columns: repeat(var(--hc-grid-columns, 4), minmax(0, 1fr));
	/* gap: var(--hc-grid-gap, 20px); */
	width: 100%;
}

/* ========================================
   Single Product Styles
   ======================================== */

.hc-single-product-wrapper {
	max-width: 100%;
}

.hc-product-image-wrapper {
	width: 100%;
}

.hc-product-gallery {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.hc-main-image {
	width: 100%;
	overflow: hidden;
	border-radius: var(--hc-border-radius);
	box-shadow: var(--hc-box-shadow);
}

.hc-main-image img {
	width: 100%;
	height: auto;
	display: block;
}

.hc-product-thumbnails {
	display: flex;
	gap: 10px;
	flex-wrap: nowrap;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.hc-thumbnail-image {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: 6px;
	cursor: pointer;
	border: 2px solid var(--hc-border-color);
	transition: all 0.3s ease;
}

.hc-thumbnail-image.is-active {
	border-color: var(--hc-text-color);
}

/* Use bottom bar ATC instead of inline ATC button */
body.single-product.hc-sp-has-bottom-bar
	.hc-single-product-wrapper
	.hc-cart-form
	.hc-add-to-cart-btn {
	display: none !important;
}

.hc-thumbnail-image:hover {
	border-color: var(--hc-primary-color);
	box-shadow: var(--hc-box-shadow);
}

.hc-product-content-wrapper {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.hc-product-title {
	margin: 0;
	font-size: 32px;
	font-weight: 700;
	color: var(--hc-text-color);
	line-height: 1.2;
}

.hc-product-description {
	font-size: 16px;
	line-height: 1.6;
	color: var(--hc-text-color);
}

.hc-product-attributes {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 20px;
	background-color: var(--hc-light-color);
	border-radius: var(--hc-border-radius);
}

.hc-attribute-group {
	display: flex;
	align-items: center;
	gap: 12px;
}

.hc-attribute-label {
	min-width: 100px;
	font-weight: 600;
	color: var(--hc-text-color);
}

.hc-attribute-values {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.hc-attribute-value {
	padding: 8px 16px;
	background-color: #ffffff;
	border: 1px solid var(--hc-border-color);
	border-radius: 4px;
	font-size: 14px;
	cursor: pointer;
	transition: all 0.3s ease;
}

.hc-attribute-value:hover {
	border-color: var(--hc-primary-color);
	background-color: rgba(130, 230, 0, 0.1);
}

.hc-product-meta {
	display: flex;
	gap: 10px;
	font-size: 14px;
	color: var(--hc-muted-text);
	padding: 12px 0;
	border-top: 1px solid var(--hc-border-color);
	border-bottom: 1px solid var(--hc-border-color);
}

.hc-meta-label {
	font-weight: 600;
	color: var(--hc-text-color);
}

.hc-meta-value {
	color: var(--hc-muted-text);
}

/* Quantity Input */
.hc-add-to-cart-container {
	display: flex;
	gap: 10px;
	align-items: stretch;
}

.quantity {
	display: flex;
	align-items: center;
	border: 1px solid var(--hc-border-color);
	border-radius: 4px;
	overflow: hidden;
	margin-right: 10px;
}

.quantity input[type="number"] {
	width: 60px;
	padding: 8px;
	border: none;
	text-align: center;
	font-size: 16px;
}

.quantity button {
	width: 36px;
	height: 36px;
	border: none;
	background-color: var(--hc-light-color);
	cursor: pointer;
	font-size: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.3s ease;
}

.quantity button:hover {
	background-color: #e0e0e0;
}

.hc-wishlist-container {
	display: flex;
	gap: 10px;
}

.hc-wishlist-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 20px;
	background-color: transparent;
	border: 2px solid var(--hc-border-color);
	border-radius: 4px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: var(--hc-text-color);
	transition: all 0.3s ease;
}

.hc-wishlist-btn:hover {
	border-color: var(--hc-primary-color);
	color: var(--hc-primary-color);
	background-color: rgba(130, 230, 0, 0.1);
}

.hc-wishlist-btn svg {
	width: 20px;
	height: 20px;
}

/* ========================================
   Responsive Styles
   ======================================== */

/* Oraimo mobile/tablet typography caps */
@media (max-width: 991.98px) {
	.hc-product-title,
	.hc-result-title {
		font-size: 16px;
	}

	/* Hide Product Carousel CTAs on mobile/tablet */
	.hc-product-carousel-wrapper .product-btn,
	.hc-product-carousel-wrapper .hc-learn-more-btn,
	.hc-product-carousel-wrapper .hc-add-to-cart-btn {
		display: none !important;
	}

	/* Hide Product Grid CTAs on mobile/tablet */
	.hc-product-grid-wrapper .product-btn,
	.hc-product-grid-wrapper .hc-learn-more-btn,
	.hc-product-grid-wrapper .hc-add-to-cart-btn {
		display: none !important;
	}

	.hc-product-price,
	.hc-product-price-sale,
	.hc-product-price-regular,
	.hc-rating-count,
	.hc-stars,
	.hc-star,
	.hc-result-meta,
	.hc-result-price,
	.hc-search-no-results,
	.hc-view-all-link,
	.hc-search-input {
		font-size: 14px;
	}

	/* Fix rem-based styles that become unreadably small on typical 16px root font-size sites */
	.hc-term-tag {
		font-size: 12px;
		line-height: 16px;
		padding: 2px 8px;
		border-radius: 10px;
	}

	.site-product .product-review {
		font-size: 14px;
		padding: 2px 8px;
		border-radius: 10px;
		bottom: 8px;
		left: 8px;
	}

	.site-product .review-star {
		font-size: 14px;
		margin: 0 4px;
	}

	.site-product .product-point {
		font-size: 14px;
		line-height: 20px;
		padding: 8px 0;
	}

	.site-product .product-price {
		margin: 8px 0 6px;
	}

	.site-product .product-price .hc-product-price,
	.site-product .product-price .hc-product-price-regular {
		font-size: 14px;
	}
}

@media (max-width: 768px) {
	.hc-product-grid {
		grid-template-columns: repeat(
			var(--hc-grid-columns-tablet, 2),
			minmax(0, 1fr)
		);
		/* gap: var(--hc-grid-gap-tablet, 16px); */
	}

	.hc-product-title {
		font-size: 16px;
	}

	.hc-product-price {
		font-size: 14px;
	}

	.swiper-button-prev,
	.swiper-button-next {
		width: 36px;
		height: 36px;
	}

	.hc-single-product-wrapper.layout-left,
	.hc-single-product-wrapper.layout-right {
		flex-direction: column;
	}

	.hc-product-image-wrapper,
	.hc-product-content-wrapper {
		flex-basis: 100%;
	}

	.hc-product-title {
		font-size: 16px;
	}

	.hc-attribute-group {
		flex-direction: column;
		align-items: flex-start;
	}

	.hc-attribute-label {
		min-width: auto;
	}

	.hc-add-to-cart-container {
		flex-direction: column;
	}

	.quantity {
		width: 100%;
		margin-right: 0;
		margin-bottom: 10px;
	}

	.hc-thumbnail-image {
		width: 60px;
		height: 60px;
	}
}

@media (max-width: 480px) {
	.hc-product-grid {
		grid-template-columns: repeat(
			var(--hc-grid-columns-mobile, 1),
			minmax(0, 1fr)
		);
		gap: 10px;
		/* gap: var(--hc-grid-gap-mobile, 12px); */
	}

	.hc-product-content {
		padding: 12px;
		gap: 6px;
	}

	.hc-product-title {
		font-size: 16px;
		line-clamp: 2;
		-webkit-line-clamp: 2;
	}

	.hc-product-price {
		font-size: 14px;
	}

	.hc-stars {
		font-size: 14px;
	}

	.swiper-button-prev,
	.swiper-button-next {
		width: 32px;
		height: 32px;
		font-size: 16px;
	}

	.hc-main-image {
		border-radius: 8px;
	}

	.hc-main-image img {
		max-height: 500px;
	}
}

/* ========================================
   Search Bar Widget
   ======================================== */

/* --- Wrapper --- */
.hc-search-bar-widget {
	position: relative;
	display: inline-flex;
	align-items: center;
	z-index: 9990;
}

/* --- Trigger button (icon only) --- */
.hc-search-trigger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 6px;
	line-height: 0;
	color: inherit;
	transition:
		color 0.2s ease,
		opacity 0.2s ease;
}

.hc-search-trigger svg {
	width: 22px;
	height: 22px;
	fill: currentColor;
	display: block;
	transition: fill 0.2s ease;
}

.hc-search-trigger i {
	font-size: 22px;
	line-height: 1;
	display: block;
}

.hc-search-trigger:hover {
	opacity: 0.75;
}

/* --- Panel (hidden by default) --- */
.hc-search-panel {
	position: fixed;
	inset: 0;
	z-index: 9999;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transition:
		opacity 0.22s ease,
		visibility 0s linear 0.22s;
}

/* Dim overlay */
.hc-search-overlay-bg {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	transition: opacity 0.22s ease;
}

/* Panel inner box — slides down from top */
.hc-search-panel-inner {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	background: #fff;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.14);
	transform: translateY(-12px);
	transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
	max-height: 80vh;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: 16px 20px 0;
}

/* --- Open state --- */
.hc-search-open .hc-search-panel {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition:
		opacity 0.22s ease,
		visibility 0s linear 0s;
}

.hc-search-open .hc-search-panel-inner {
	transform: translateY(0);
}

/* Prevent body scroll when panel is open (JS adds this class) */
body.hc-search-panel-active {
	overflow: hidden;
}

/* --- Input row --- */
.hc-search-input-wrap {
	display: flex;
	align-items: center;
	gap: 10px;
	border-bottom: 2px solid var(--theme-color, #82e600);
	padding-bottom: 12px;
	margin-bottom: 0;
}

.hc-search-icon-input {
	width: 20px;
	height: 20px;
	fill: var(--hc-muted-text, #999);
	flex-shrink: 0;
	font-size: 20px;
	line-height: 1;
	color: var(--hc-muted-text, #999);
}

.hc-search-input {
	flex: 1;
	border: none;
	outline: none;
	background: transparent;
	font-size: 14px;
	font-weight: 500;
	color: var(--hc-text-color, #333);
	line-height: 1.4;
	padding: 4px 0;
	appearance: none;
	-webkit-appearance: none;
	/* Hide browser's native clear button */
}

.hc-search-input::-webkit-search-cancel-button {
	display: none;
}

.hc-search-input::placeholder {
	color: var(--hc-muted-text, #bbb);
	font-weight: 400;
}

/* Clear (×) and Close (X) buttons */
.hc-search-clear,
.hc-search-close-panel {
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 4px;
	line-height: 0;
	color: var(--hc-muted-text, #888);
	transition: color 0.2s ease;
	flex-shrink: 0;
}

.hc-search-clear svg,
.hc-search-close-panel svg {
	width: 18px;
	height: 18px;
	display: block;
	fill: none;
	stroke: currentColor;
}

.hc-search-clear i,
.hc-search-close-panel i {
	font-size: 18px;
	line-height: 1;
	display: block;
}

.hc-search-clear:hover,
.hc-search-close-panel:hover {
	color: var(--hc-dark-color, #000);
}

.hc-search-close-panel {
	border-left: 1px solid rgba(0, 0, 0, 0.1);
	margin-left: 4px;
	padding-left: 12px;
}

.hc-search-close-panel svg {
	stroke-width: 2.5;
}

/* --- Results list --- */
.hc-search-results {
	padding: 8px 0;
	min-height: 0;
}

.hc-search-result-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 4px;
	border-left: 3px solid transparent;
	text-decoration: none;
	color: var(--hc-text-color, #333);
	border-radius: 0;
	transition:
		background 0.15s ease,
		border-color 0.15s ease;
	cursor: pointer;
	outline: none;
}

.hc-search-result-item:hover,
.hc-search-result-item.hc-result-focused {
	background: rgba(0, 0, 0, 0.04);
	border-left-color: var(--theme-color, #82e600);
}

/* Thumbnail */
.hc-result-thumb {
	width: 56px;
	height: 56px;
	border-radius: 6px;
	overflow: hidden;
	flex-shrink: 0;
	background: var(--hc-light-color, #f5f5f5);
	display: flex;
	align-items: center;
	justify-content: center;
}

.hc-result-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.hc-result-thumb--placeholder svg {
	width: 28px;
	height: 28px;
	color: var(--hc-muted-text, #ccc);
}

/* Result text */
.hc-result-body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.hc-result-title {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--hc-dark-color, #111);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.hc-result-title mark {
	background: transparent;
	color: var(--theme-color, #82e600);
	font-weight: 700;
}

.hc-result-meta {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: var(--hc-muted-text, #999);
}

.hc-result-price {
	font-size: 13px;
	font-weight: 600;
	color: var(--hc-dark-color, #111);
}

.hc-result-price del,
.hc-result-price ins {
	text-decoration: none;
}

.hc-result-sku {
	font-size: 11px;
	color: var(--hc-muted-text, #aaa);
}

.hc-result-type {
	font-size: 11px;
	text-transform: capitalize;
	background: rgba(0, 0, 0, 0.06);
	border-radius: 3px;
	padding: 1px 5px;
}

/* No-results state */
.hc-search-no-results {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 20px 4px;
	color: var(--hc-muted-text, #999);
	font-size: 14px;
}

.hc-search-no-results svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
	flex-shrink: 0;
	opacity: 0.5;
}

/* --- Skeleton loading state --- */
.hc-search-skeleton {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 4px;
}

.hc-sk-thumb {
	width: 56px;
	height: 56px;
	border-radius: 6px;
	background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
	background-size: 200% 100%;
	animation: hcSkeletonShimmer 1.4s infinite linear;
	flex-shrink: 0;
}

.hc-sk-lines {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.hc-sk-line {
	border-radius: 4px;
	background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
	background-size: 200% 100%;
	animation: hcSkeletonShimmer 1.4s infinite linear;
}

.hc-sk-title {
	height: 14px;
	width: 70%;
}

.hc-sk-sub {
	height: 12px;
	width: 40%;
	animation-delay: 0.15s;
}

@keyframes hcSkeletonShimmer {
	0% {
		background-position: 200% 0;
	}
	100% {
		background-position: -200% 0;
	}
}

/* --- View-all footer link --- */
.hc-search-view-all {
	border-top: 1px solid rgba(0, 0, 0, 0.07);
	padding: 12px 4px;
}

.hc-view-all-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--theme-color, #82e600);
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.hc-view-all-link:hover {
	opacity: 0.75;
}

.hc-view-all-link svg {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
	stroke: currentColor;
	fill: none;
}

.hc-view-all-link i {
	font-size: 14px;
	line-height: 1;
	display: block;
}

/* ========================================
   Search Bar — Desktop ≥ 768px
   ======================================== */
@media (min-width: 768px) {
	/* On desktop the panel becomes a dropdown below/near the trigger instead
	   of a full-screen overlay */
	.hc-search-panel {
		position: absolute;
		inset: auto;
		top: calc(100% + 8px);
		right: 0;
		width: 420px;
		max-height: none;
	}

	.hc-search-overlay-bg {
		display: none; /* No dim overlay on desktop */
	}

	.hc-search-panel-inner {
		position: static;
		border: 1px solid rgba(0, 0, 0, 0.1);
		border-radius: 10px;
		max-height: 520px;
		overflow-y: auto;
		box-shadow: 0 8px 32px rgba(0, 0, 0, 0.14);
		transform: translateY(-8px) scale(0.98);
		transition:
			transform 0.22s cubic-bezier(0.4, 0, 0.2, 1),
			box-shadow 0.22s ease;
		padding: 14px 16px 0;
	}

	.hc-search-open .hc-search-panel-inner {
		transform: translateY(0) scale(1);
	}

	/* Don't lock body scroll on desktop */
	body.hc-search-panel-active {
		overflow: auto;
	}

	.hc-search-input {
		font-size: 15px;
	}
}

/* ========================================
   Search Bar — Wide desktop ≥ 1280px
   ======================================== */
@media (min-width: 1280px) {
	.hc-search-panel {
		width: 480px;
	}
}
