/* HiUp Frontend Styles */

.hiup-products-wrap,
.hiup-single-page,
.hiup-archive-page {
	font-family: var(--hiup-font, inherit);
	font-size: var(--hiup-font-size, 16px);
}

/* ── Product Grid ── */
.hiup-products-grid {
	display: grid;
	grid-template-columns: repeat(var(--hiup-cols, 3), 1fr);
	gap: 24px;
}

@media (max-width: 1024px) {
	.hiup-products-grid {
		grid-template-columns: repeat(var(--hiup-cols-tablet, 2), 1fr);
	}
}

@media (max-width: 767px) {
	.hiup-products-grid {
		grid-template-columns: repeat(var(--hiup-cols-mobile, 1), 1fr);
	}
}

.hiup-product-card {
	background: var(--hiup-card-bg, #fff);
	color: var(--hiup-card-text, #333);
	border-radius: var(--hiup-card-radius, 12px);
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	display: flex;
	flex-direction: column;
}

.hiup-product-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.hiup-card-image-link {
	display: block;
	aspect-ratio: 3/4;
	overflow: hidden;
}

.hiup-card-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.hiup-card-placeholder {
	width: 100%;
	height: 100%;
	min-height: 280px;
	background: #f5f5f5;
}

.hiup-card-body {
	padding: 16px 18px 20px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.hiup-card-category {
	display: block;
	font-size: 0.8rem;
	color: var(--hiup-primary, #e91e8c);
	margin-bottom: 4px;
}

.hiup-card-title {
	font-size: 1rem;
	font-weight: 600;
	margin: 0 0 8px;
	line-height: 1.4;
}

.hiup-card-title a {
	color: inherit;
	text-decoration: none;
}

.hiup-card-title a:hover {
	color: var(--hiup-primary, #e91e8c);
}

.hiup-card-price {
	display: block;
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--hiup-price-color, #e91e8c);
}

.hiup-card-installments {
	display: block;
	font-size: 0.85rem;
	color: #888;
	margin-top: 4px;
}

.hiup-card-actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 10px;
	margin-top: auto;
	padding-top: 14px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

/* Evita corte quando o widget fica dentro de coluna/loop do Elementor. */
.elementor-widget-hiup_card_actions,
.elementor-widget-hiup_card_actions .elementor-widget-container,
.hiup-loop-item .hiup-card-actions,
.hiup-product-card .hiup-card-actions {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: visible;
}

.hiup-card-buy-btn,
.hiup-card-actions .hiup-add-to-cart-btn.hiup-card-buy-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin-top: 0;
	padding: 10px 14px;
	border: none;
	border-radius: var(--hiup-btn-radius, 8px);
	background: var(--hiup-add-cart-bg, var(--hiup-primary, #e91e8c));
	color: var(--hiup-add-cart-text, #fff) !important;
	font-family: var(--hiup-font, inherit);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.25;
	text-align: center;
	text-decoration: none !important;
	cursor: pointer;
	white-space: nowrap;
	box-sizing: border-box;
	transition: transform 0.15s ease, opacity 0.15s ease;
}

.hiup-card-buy-btn:hover,
.hiup-card-actions .hiup-add-to-cart-btn.hiup-card-buy-btn:hover {
	opacity: 0.92;
	transform: translateY(-1px);
	color: var(--hiup-add-cart-text, #fff) !important;
}

.hiup-card-actions .hiup-whatsapp-btn.hiup-card-whatsapp-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin-top: 0 !important;
	padding: 10px 14px !important;
	font-size: 0.875rem !important;
	font-weight: 600;
	gap: 8px;
	line-height: 1.25;
	text-align: center;
	white-space: nowrap !important;
	box-sizing: border-box;
}

.hiup-card-actions .hiup-whatsapp-btn.hiup-card-whatsapp-btn svg {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
}

@media (max-width: 767px) {
	.hiup-card-actions {
		flex-direction: column;
		gap: 10px;
	}
}

/* ── Infinite Scroll ── */
.hiup-infinite-sentinel {
	height: 1px;
}

.hiup-grid-pagination {
	margin-top: 28px;
}

.hiup-pagination-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.hiup-pagination-btn {
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--hiup-border-color, #e0e0e0);
	border-radius: var(--hiup-btn-radius, 8px);
	background: #fff;
	color: var(--hiup-card-text, #333);
	font-family: var(--hiup-font, inherit);
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.hiup-pagination-btn:hover,
.hiup-pagination-btn.active {
	background: var(--hiup-primary, #e91e8c);
	border-color: var(--hiup-primary, #e91e8c);
	color: #fff;
}

.hiup-loading-indicator {
	text-align: center;
	padding: 24px;
	color: #888;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.hiup-spinner {
	width: 20px;
	height: 20px;
	border: 2px solid #ddd;
	border-top-color: var(--hiup-primary, #e91e8c);
	border-radius: 50%;
	animation: hiup-spin 0.6s linear infinite;
}

@keyframes hiup-spin {
	to { transform: rotate(360deg); }
}

.hiup-no-products {
	grid-column: 1 / -1;
	text-align: center;
	padding: 40px;
	color: var(--hiup-muted-color, #888);
}

/* ── Single Product ── */
.hiup-single-product {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	max-width: 1100px;
	margin: 40px auto;
	padding: 0 20px;
	align-items: start;
}

@media (max-width: 768px) {
	.hiup-single-product {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

.hiup-main-image {
	position: relative;
	border-radius: var(--hiup-card-radius, 12px);
	overflow: hidden;
	background: #f9f9f9;
}

button.hiup-gallery-zoom-btn,
.hiup-gallery-zoom-btn {
	position: absolute;
	right: 12px;
	bottom: 12px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid var(--hiup-primary, #e91e8c);
	border-radius: 10px;
	background-color: #fafafa !important;
	background-image: none !important;
	color: var(--hiup-primary, #e91e8c) !important;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
	cursor: pointer;
	transition: transform 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
	-webkit-appearance: none;
	appearance: none;
}

.hiup-gallery-zoom-btn svg {
	display: block;
	width: 26px;
	height: 26px;
	flex-shrink: 0;
	stroke: var(--hiup-primary, #e91e8c);
}

button.hiup-gallery-zoom-btn:hover,
.hiup-gallery-zoom-btn:hover {
	transform: scale(1.05);
	background-color: var(--hiup-primary, #e91e8c) !important;
	border-color: var(--hiup-primary, #e91e8c) !important;
	color: #ffffff !important;
}

button.hiup-gallery-zoom-btn:hover svg,
.hiup-gallery-zoom-btn:hover svg {
	stroke: #ffffff;
}

.hiup-image-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.hiup-image-lightbox[hidden] {
	display: none !important;
}

.hiup-image-lightbox-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.82);
}

.hiup-image-lightbox-dialog {
	position: relative;
	z-index: 1;
	max-width: min(960px, 96vw);
	max-height: 90vh;
}

.hiup-image-lightbox-img {
	display: block;
	max-width: min(960px, 96vw);
	max-height: 90vh;
	width: auto;
	height: auto;
	margin: 0 auto;
	border-radius: 8px;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.35);
}

button.hiup-image-lightbox-close,
.hiup-image-lightbox-close {
	position: absolute;
	top: -12px;
	right: -12px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1px solid var(--hiup-primary, #e91e8c);
	border-radius: 10px;
	background-color: #fafafa !important;
	background-image: none !important;
	color: var(--hiup-primary, #e91e8c);
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
	-webkit-appearance: none;
	appearance: none;
}

body.hiup-lightbox-open {
	overflow: hidden;
}

.hiup-main-image img,
.hiup-main-placeholder {
	width: 100%;
	display: block;
	border-radius: var(--hiup-card-radius, 12px);
}

.hiup-main-placeholder {
	min-height: 400px;
}

.hiup-thumbnails {
	display: flex;
	gap: 10px;
	margin-top: 12px;
	flex-wrap: wrap;
}

.hiup-thumb {
	border: 2px solid transparent;
	border-radius: 8px;
	overflow: hidden;
	padding: 0;
	cursor: pointer;
	background: none;
	transition: border-color 0.2s;
	width: 72px;
	height: 72px;
}

.hiup-thumb.active,
.hiup-thumb:hover {
	border-color: var(--hiup-primary, #e91e8c);
}

.hiup-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.hiup-single-title {
	font-size: 1.5rem;
	font-weight: 600;
	margin: 0 0 8px;
	color: var(--hiup-title-color, var(--hiup-card-text, #333));
	line-height: 1.3;
}

.hiup-single-category {
	font-size: 0.9rem;
	color: var(--hiup-muted-color, #666);
	margin: 0 0 16px;
}

.hiup-single-category a {
	color: var(--hiup-primary, #e91e8c);
	text-decoration: none;
}

.hiup-single-price {
	font-size: 2rem;
	font-weight: 700;
	color: var(--hiup-price-color, #e91e8c);
	margin-bottom: 4px;
}

.hiup-single-installments {
	font-size: 0.95rem;
	color: var(--hiup-muted-color, #888);
	margin-bottom: 24px;
}

.hiup-single-options {
	margin-bottom: 20px;
}

.hiup-field {
	margin-bottom: 16px;
}

.hiup-field label {
	display: block;
	font-weight: 600;
	font-size: 0.95rem;
	margin-bottom: 6px;
	color: var(--hiup-card-text, #333);
}

.hiup-select,
.hiup-quantity {
	width: 100%;
	max-width: 320px;
	padding: 10px 14px;
	border: 1px solid var(--hiup-border-color, #e0e0e0);
	border-radius: 8px;
	font-size: 0.95rem;
	font-family: inherit;
	background: var(--hiup-input-bg, #fff);
	color: var(--hiup-card-text, #333);
	appearance: auto;
}

.hiup-select:focus,
.hiup-quantity:focus {
	outline: none;
	border-color: var(--hiup-primary, #e91e8c);
	box-shadow: 0 0 0 2px rgba(233, 30, 140, 0.15);
}

/* Payment icons */
.hiup-payment-icons {
	display: flex;
	gap: 8px;
	margin: 20px 0;
	flex-wrap: wrap;
}

.hiup-pay-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 36px;
	border: 1px solid var(--hiup-border-color, #e0e0e0);
	border-radius: 6px;
	background: var(--hiup-input-bg, #fff);
	color: #444;
}

.hiup-pay-icon i {
	font-size: 1.65rem;
	line-height: 1;
}

.hiup-pay-icon .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.hiup-pay-visa i { color: #1a1f71; }

.hiup-pay-mastercard i { color: #eb001b; }

.hiup-pay-elo i { color: #00a4e0; }

.hiup-pay-amex i { color: #006fcf; }

.hiup-pay-hipercard i { color: #822124; }

.hiup-pay-diners i { color: #0079be; }

.hiup-pay-boleto i { color: #333; font-size: 1.35rem; }

.hiup-pay-pix i { color: #32bcad; }

.hiup-total-wrap {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin-bottom: 20px;
	padding: 12px 0;
	border-top: 1px solid var(--hiup-border-color, #eee);
}

.hiup-total-label {
	font-weight: 600;
	font-size: 1rem;
}

.hiup-total-value {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--hiup-price-color, #e91e8c);
}

/* WhatsApp Button */
.hiup-whatsapp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: var(--hiup-actions-btn-width, 100%);
	max-width: var(--hiup-actions-btn-max-width, 400px);
	padding: 14px 28px;
	background: var(--hiup-whatsapp, #25D366);
	color: var(--hiup-whatsapp-text, #fff) !important;
	font-size: 1.05rem;
	font-weight: 600;
	border: none;
	border-radius: var(--hiup-btn-radius, 10px);
	text-decoration: none !important;
	cursor: pointer;
	transition: background 0.2s, transform 0.15s;
	font-family: inherit;
}

.hiup-whatsapp-btn:hover {
	filter: brightness(0.92);
	transform: translateY(-1px);
	color: var(--hiup-whatsapp-text, #fff) !important;
}

.hiup-whatsapp-btn svg {
	flex-shrink: 0;
}

.hiup-description-section {
	max-width: 1100px;
	margin: 48px auto 40px;
	padding: 0 20px;
}

.hiup-description-divider {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 20px;
}

.hiup-description-divider span {
	flex-shrink: 0;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #9a9a9a;
}

.hiup-description-divider::after {
	content: '';
	flex: 1;
	height: 1px;
	background: #ececec;
}

.hiup-single-description {
	max-width: none;
	margin: 0;
	padding: 0;
}

.hiup-archive-header {
	max-width: 1100px;
	margin: 40px auto 24px;
	padding: 0 20px;
}

.hiup-archive-header h1 {
	font-family: var(--hiup-font, inherit);
}

.hiup-archive-page .hiup-products-wrap {
	max-width: 1100px;
	margin: 0 auto 40px;
	padding: 0 20px;
}

/* ── Category Filter ── */
.hiup-category-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 24px;
	font-family: var(--hiup-font, inherit);
}

.hiup-filter-align-left {
	justify-content: flex-start;
}

.hiup-filter-align-center {
	justify-content: center;
}

.hiup-filter-align-right {
	justify-content: flex-end;
}

.hiup-filter-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 20px;
	border: 1px solid var(--hiup-border-color, #e0e0e0);
	background: var(--hiup-input-bg, #fff);
	color: var(--hiup-card-text, #333);
	font-family: inherit;
	font-size: 0.9rem;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s ease;
	line-height: 1.2;
}

.hiup-filter-btn:hover {
	border-color: var(--hiup-primary, #e91e8c);
	color: var(--hiup-primary, #e91e8c);
}

.hiup-filter-btn.active {
	background: var(--hiup-primary, #e91e8c);
	border-color: var(--hiup-primary, #e91e8c);
	color: var(--hiup-filter-active-text, #fff);
}

.hiup-filter-count {
	opacity: 0.75;
	font-size: 0.85em;
}

/* Pills */
.hiup-filter-pills .hiup-filter-btn {
	border-radius: 999px;
}

/* Tabs */
.hiup-filter-tabs {
	gap: 0;
	border-bottom: 2px solid var(--hiup-border-color, #eee);
}

.hiup-filter-tabs .hiup-filter-btn {
	border: none;
	border-radius: 0;
	background: transparent;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	padding: 12px 20px;
}

.hiup-filter-tabs .hiup-filter-btn.active {
	background: transparent;
	color: var(--hiup-primary, #e91e8c);
	border-bottom-color: var(--hiup-primary, #e91e8c);
}

/* Buttons */
.hiup-filter-buttons .hiup-filter-btn {
	border-radius: 8px;
}

.hiup-filter-buttons .hiup-filter-btn.active {
	box-shadow: 0 4px 12px rgba(233, 30, 140, 0.25);
}

/* ── Catalog layout (sidebar + variations) ── */
.hiup-catalog-layout {
	--hiup-catalog-sidebar-width: 280px;
	display: grid;
	grid-template-columns: minmax(220px, var(--hiup-catalog-sidebar-width)) minmax(0, 1fr);
	gap: 28px;
	align-items: start;
	font-family: var(--hiup-font, inherit);
}

.hiup-catalog-main {
	min-width: 0;
}

.hiup-catalog-sidebar {
	position: sticky;
	top: 24px;
	border: 1px solid var(--hiup-border-color, #e8e8e8);
	border-radius: 14px;
	padding: 18px 16px 20px;
	background: var(--hiup-card-bg, #fff);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
}

.hiup-catalog-sidebar-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}

.hiup-catalog-sidebar-title {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--hiup-card-text, #333);
}

.hiup-catalog-filter-close {
	display: none;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: none;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.06);
	color: inherit;
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
}

.hiup-catalog-filters {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.hiup-catalog-filter-group {
	margin: 0;
	padding: 0;
	border: none;
	min-width: 0;
}

.hiup-catalog-filter-group legend {
	padding: 0;
	margin-bottom: 10px;
	font-size: 0.82rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--hiup-primary, #e91e8c);
}

.hiup-catalog-radio {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 8px;
	padding: 8px 10px;
	border-radius: 10px;
	cursor: pointer;
	transition: background 0.15s ease;
}

.hiup-catalog-radio:hover {
	background: rgba(233, 30, 140, 0.06);
}

.hiup-catalog-radio input {
	margin-top: 3px;
	accent-color: var(--hiup-primary, #e91e8c);
	flex: 0 0 auto;
}

.hiup-catalog-radio span {
	line-height: 1.35;
	font-size: 0.92rem;
	color: var(--hiup-card-text, #333);
}

.hiup-catalog-radio-count {
	opacity: 0.65;
	font-size: 0.85em;
}

.hiup-catalog-filter-fab,
.hiup-catalog-filter-backdrop {
	display: none;
}

button.hiup-catalog-filter-fab,
.hiup-catalog-filter-fab {
	position: fixed;
	left: 16px;
	bottom: 24px;
	z-index: 12040;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border: 1px solid var(--hiup-filter-fab-border, var(--hiup-primary, #e91e8c));
	border-radius: 14px;
	background-color: var(--hiup-filter-fab-surface-bg, #fafafa) !important;
	background-image: none !important;
	color: var(--hiup-filter-fab-icon-color, var(--hiup-primary, #e91e8c));
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.hiup-catalog-filter-backdrop {
	position: fixed;
	inset: 0;
	z-index: 12030;
	background: rgba(0, 0, 0, 0.45);
}

body.hiup-catalog-filter-body-lock {
	overflow: hidden;
}

@media (max-width: 991px) {
	.hiup-catalog-layout {
		display: block;
	}

	.hiup-catalog-sidebar {
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		z-index: 12035;
		width: min(88vw, var(--hiup-catalog-drawer-width, 320px));
		max-width: var(--hiup-catalog-drawer-width, 320px);
		margin: 0;
		border-radius: 0 16px 16px 0;
		overflow-y: auto;
		transform: translateX(-110%);
		transition: transform 0.25s ease;
	}

	.hiup-sidebar-pos-right .hiup-catalog-sidebar {
		left: auto;
		right: 0;
		border-radius: 16px 0 0 16px;
		transform: translateX(110%);
	}

	.hiup-sidebar-pos-right .hiup-catalog-layout.hiup-catalog-filter-open .hiup-catalog-sidebar {
		transform: translateX(0);
	}

	.hiup-catalog-layout.hiup-catalog-filter-open .hiup-catalog-sidebar {
		transform: translateX(0);
	}

	.hiup-catalog-layout.hiup-catalog-filter-open .hiup-catalog-filter-backdrop {
		display: block;
	}

	.hiup-catalog-filter-close {
		display: inline-flex;
	}

	.hiup-catalog-filter-fab {
		display: inline-flex;
	}
}

.hiup-sidebar-pos-right .hiup-catalog-layout {
	grid-template-columns: minmax(0, 1fr) minmax(220px, var(--hiup-catalog-sidebar-width));
}

.hiup-sidebar-pos-right .hiup-catalog-layout .hiup-catalog-sidebar {
	order: 2;
}

.hiup-sidebar-pos-right .hiup-catalog-layout .hiup-catalog-main {
	order: 1;
}

.hiup-archive-filter-category {
	margin: 4px 0 0;
	font-size: 0.85rem;
	color: #666;
}

.hiup-archive-filter-only {
	display: block;
}

.hiup-archive-filter-only .hiup-catalog-sidebar {
	position: sticky;
	top: 24px;
}

.hiup-price-range-control {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.hiup-price-range-values {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--hiup-card-text, #333);
}

.hiup-price-range-sep {
	opacity: 0.5;
}

.hiup-price-range-inputs {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.hiup-price-range-input {
	width: 100%;
	accent-color: var(--hiup-primary, #e91e8c);
}

.hiup-products-wrap.hiup-grid-loading {
	opacity: 0.55;
	pointer-events: none;
	transition: opacity 0.2s;
}

.hiup-elementor-notice {
	padding: 20px;
	background: #fff3cd;
	border: 1px solid #ffc107;
	border-radius: 6px;
	color: #856404;
}

.hiup-single-actions {
	display: flex;
	flex-direction: var(--hiup-actions-direction, column);
	align-items: var(--hiup-actions-align, flex-start);
	gap: var(--hiup-actions-gap-row, 10px) var(--hiup-actions-gap-col, 0px);
	width: 100%;
	margin-top: 12px;
}

.hiup-single-actions .hiup-add-to-cart-btn,
.hiup-single-actions .hiup-whatsapp-btn {
	display: flex !important;
	width: var(--hiup-actions-btn-width, 100%) !important;
	max-width: var(--hiup-actions-btn-max-width, 400px) !important;
	min-width: 0;
	flex: 0 0 auto;
	margin-top: 0 !important;
	box-sizing: border-box;
}

.hiup-single-actions.hiup-actions-align-stretch .hiup-add-to-cart-btn,
.hiup-single-actions.hiup-actions-align-stretch .hiup-whatsapp-btn {
	width: 100% !important;
	max-width: 100% !important;
	align-self: stretch;
	flex: 1 1 auto;
}

/* ── Add to Cart ── */
.hiup-add-to-cart-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: var(--hiup-actions-btn-width, 100%);
	max-width: var(--hiup-actions-btn-max-width, 400px);
	margin-top: 12px;
	padding: 14px 24px;
	border: none;
	border-radius: var(--hiup-btn-radius, 8px);
	background: var(--hiup-add-cart-bg, var(--hiup-primary, #e91e8c));
	color: var(--hiup-add-cart-text, #fff);
	font-family: var(--hiup-font, inherit);
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: transform 0.15s ease, opacity 0.15s ease, background 0.2s ease;
}

.hiup-add-to-cart-btn:hover {
	opacity: 0.92;
	transform: translateY(-1px);
}

.hiup-add-to-cart-btn.is-added {
	background: #2e7d32;
}

.hiup-elementor-cart-btn-wrap {
	display: flex;
	flex-direction: var(--hiup-actions-direction, column);
	align-items: var(--hiup-actions-align, flex-start);
	gap: var(--hiup-actions-gap-row, 10px) var(--hiup-actions-gap-col, 0px);
	width: 100%;
}

.hiup-elementor-cart-btn-wrap .hiup-add-to-cart-btn {
	display: flex !important;
	width: var(--hiup-actions-btn-width, 100%) !important;
	max-width: var(--hiup-actions-btn-max-width, 400px) !important;
	min-width: 0;
	flex: 0 0 auto;
	margin-top: 0 !important;
	box-sizing: border-box;
}

.hiup-elementor-cart-btn-wrap.hiup-actions-align-stretch .hiup-add-to-cart-btn {
	width: 100% !important;
	max-width: 100% !important;
	align-self: stretch;
}

.hiup-cart-open-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 20px;
	border: 1px solid var(--hiup-border-color, #e0e0e0);
	border-radius: var(--hiup-btn-radius, 8px);
	background: var(--hiup-input-bg, #fff);
	color: var(--hiup-card-text, #333);
	font-family: var(--hiup-font, inherit);
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.hiup-cart-open-btn:hover {
	border-color: var(--hiup-primary, #e91e8c);
	color: var(--hiup-primary, #e91e8c);
}

.hiup-cart-open-count,
.hiup-floating-cart-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--hiup-cart-floating-bg, var(--hiup-primary, #e91e8c));
	color: var(--hiup-cart-continue-text, #fff);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1;
}

.hiup-cart-checkout-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	padding: 14px 24px;
	border-radius: 8px;
	text-decoration: none;
}

/* ── Floating Cart ── */
button.hiup-floating-cart-btn,
#hiup-floating-cart-btn.hiup-floating-cart-btn {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 99990;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	border: 1px solid var(--hiup-cart-floating-border, var(--hiup-primary, #e91e8c));
	border-radius: 14px;
	background-color: var(--hiup-cart-floating-surface-bg, #fafafa) !important;
	background-image: none !important;
	color: var(--hiup-cart-floating-icon-color, var(--hiup-cart-floating-bg, var(--hiup-primary, #e91e8c)));
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	cursor: pointer;
	transition: transform 0.15s ease;
	-webkit-appearance: none;
	appearance: none;
}

.hiup-floating-cart-btn:hover {
	transform: scale(1.05);
}

.hiup-floating-cart-btn .hiup-floating-cart-count {
	position: absolute;
	top: -4px;
	right: -4px;
}

/* ── Cart Panel ── */
.hiup-cart-overlay {
	position: fixed;
	inset: 0;
	z-index: 99991;
	background: rgba(0, 0, 0, 0.45);
	opacity: 0;
	transition: opacity 0.25s ease;
}

.hiup-cart-overlay.is-visible {
	opacity: 1;
}

.hiup-cart-panel {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 99992;
	display: flex;
	flex-direction: column;
	width: min(440px, 100vw);
	height: 100vh;
	height: 100dvh;
	background: var(--hiup-cart-bg, #fff);
	box-shadow: -8px 0 32px rgba(0, 0, 0, 0.12);
	transform: translateX(100%);
	transition: transform 0.28s ease;
	font-family: var(--hiup-font, inherit);
	font-size: var(--hiup-font-size, 16px);
	color: var(--hiup-cart-text, #1e293b);
}

.hiup-cart-panel.is-open {
	transform: translateX(0);
}

body.hiup-cart-open {
	overflow: hidden;
}

.hiup-cart-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 22px 22px 14px;
}

.hiup-cart-header-text {
	min-width: 0;
}

.hiup-cart-title {
	margin: 0 0 4px;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--hiup-cart-text, #1e293b);
}

.hiup-cart-header-summary {
	margin: 0;
	color: var(--hiup-cart-muted, #64748b);
	font-size: 0.92rem;
}

.hiup-cart-close {
	flex: 0 0 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1px solid var(--hiup-cart-border, #e2e8f0);
	border-radius: 50%;
	background: var(--hiup-cart-bg, #fff);
	color: var(--hiup-cart-muted, #64748b);
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.hiup-cart-close:hover {
	border-color: var(--hiup-cart-border, #cbd5e1);
	color: var(--hiup-cart-text, #334155);
}

/* Steps */
.hiup-cart-steps-wrap {
	margin: 0 22px 16px;
	padding: 14px 16px 12px;
	border: 1px solid var(--hiup-cart-border, #e2e8f0);
	border-radius: 14px;
	background: var(--hiup-cart-bg, #fff);
}

.hiup-cart-steps {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 0;
	padding: 0;
}

.hiup-cart-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	min-width: 72px;
	flex: 0 0 auto;
}

.hiup-cart-step-dot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: 2px solid #cbd5e1;
	border-radius: 50%;
	background: #fff;
	color: transparent;
	transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.hiup-cart-step-check {
	opacity: 0;
	width: 12px;
	height: 12px;
}

.hiup-cart-step-label {
	font-size: 0.78rem;
	font-weight: 600;
	color: #94a3b8;
	white-space: nowrap;
	transition: color 0.2s ease;
}

.hiup-cart-step-line {
	flex: 1;
	max-width: 56px;
	height: 2px;
	margin-top: 13px;
	background: #e2e8f0;
	transition: background 0.2s ease;
}

.hiup-cart-step-line.is-done {
	background: var(--hiup-cart-primary, var(--hiup-primary, #e91e8c));
}

.hiup-cart-step.is-done .hiup-cart-step-dot {
	border-color: var(--hiup-cart-primary, var(--hiup-primary, #e91e8c));
	background: var(--hiup-cart-primary, var(--hiup-primary, #e91e8c));
	color: #fff;
}

.hiup-cart-step.is-done .hiup-cart-step-check {
	opacity: 1;
}

.hiup-cart-step.is-done .hiup-cart-step-label {
	color: var(--hiup-cart-primary, var(--hiup-primary, #e91e8c));
}

.hiup-cart-step.is-current .hiup-cart-step-dot {
	border-color: var(--hiup-cart-primary, var(--hiup-primary, #e91e8c));
	background: var(--hiup-cart-primary, var(--hiup-primary, #e91e8c));
}

.hiup-cart-step.is-current .hiup-cart-step-check {
	opacity: 0;
}

.hiup-cart-step.is-current .hiup-cart-step-label {
	color: var(--hiup-cart-primary, var(--hiup-primary, #e91e8c));
	font-weight: 700;
}

.hiup-cart-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 14px;
	padding: 0;
	border: none;
	background: transparent;
	color: var(--hiup-cart-muted, #64748b);
	font-size: 0.88rem;
	font-weight: 600;
	cursor: pointer;
	transition: color 0.2s ease;
}

.hiup-cart-back:hover {
	color: var(--hiup-cart-primary, var(--hiup-primary, #e91e8c));
}

.hiup-cart-step-panel {
	animation: hiup-cart-step-in 0.22s ease;
}

@keyframes hiup-cart-step-in {
	from {
		opacity: 0;
		transform: translateY(6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.hiup-cart-body {
	flex: 1;
	overflow-y: auto;
	padding: 0 22px 16px;
}

.hiup-cart-empty {
	padding: 32px 0;
	color: var(--hiup-cart-muted, #64748b);
	text-align: center;
}

.hiup-cart-items {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hiup-cart-item {
	display: flex;
	gap: 14px;
	padding: 16px;
	margin-bottom: 12px;
	border: 1px solid var(--hiup-cart-border, #e2e8f0);
	border-radius: 12px;
	background: var(--hiup-cart-bg, #fff);
}

.hiup-cart-item-media {
	flex: 0 0 88px;
}

.hiup-cart-item-image {
	width: 88px;
	height: 88px;
	object-fit: cover;
	border-radius: 10px;
	background: #f8fafc;
}

.hiup-cart-item-placeholder {
	display: block;
}

.hiup-cart-item-info {
	position: relative;
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
	min-height: 88px;
	padding-right: 28px;
}

.hiup-cart-item-title {
	display: block;
	margin: 0 0 4px;
	font-size: 0.92rem;
	font-weight: 700;
	line-height: 1.35;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--hiup-cart-text, #1e293b);
}

.hiup-cart-item-meta {
	margin: 0 0 8px;
	color: var(--hiup-cart-muted, #64748b);
	font-size: 0.82rem;
	line-height: 1.35;
}

.hiup-cart-item-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
}

.hiup-cart-item-price {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	color: var(--hiup-cart-text, #1e293b);
}

.hiup-cart-item-remove {
	position: absolute;
	top: 0;
	right: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border: none;
	background: transparent;
	color: #94a3b8;
	cursor: pointer;
}

.hiup-cart-item-remove:hover {
	color: #c62828;
}

.hiup-cart-qty-control {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--hiup-cart-border, #e2e8f0);
	border-radius: 999px;
	overflow: hidden;
	background: var(--hiup-cart-bg, #fff);
}

.hiup-cart-qty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: none;
	background: var(--hiup-cart-bg, #fff);
	color: var(--hiup-cart-text, #334155);
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
}

.hiup-cart-qty-btn:hover {
	background: #f8fafc;
}

.hiup-cart-item-qty {
	width: 38px;
	height: 34px;
	padding: 0;
	border: none;
	border-left: 1px solid var(--hiup-cart-border, #e2e8f0);
	border-right: 1px solid var(--hiup-cart-border, #e2e8f0);
	background: var(--hiup-cart-bg, #fff);
	color: var(--hiup-cart-text, #1e293b);
	font-size: 0.95rem;
	font-weight: 600;
	text-align: center;
	-moz-appearance: textfield;
}

.hiup-cart-item-qty::-webkit-outer-spin-button,
.hiup-cart-item-qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.hiup-cart-items-compact .hiup-cart-item {
	padding: 12px;
	margin-bottom: 10px;
}

.hiup-cart-item.is-compact .hiup-cart-item-media {
	flex-basis: 72px;
}

.hiup-cart-item.is-compact .hiup-cart-item-image {
	width: 72px;
	height: 72px;
}

.hiup-cart-item.is-compact .hiup-cart-item-info {
	padding-right: 0;
	display: flex;
	flex-direction: column;
}

.hiup-cart-item.is-compact .hiup-cart-item-title {
	font-size: 0.84rem;
	margin-bottom: 2px;
}

.hiup-cart-item.is-compact .hiup-cart-item-meta {
	margin-bottom: 6px;
	font-size: 0.78rem;
}

.hiup-cart-item.is-compact .hiup-cart-item-price {
	font-size: 0.92rem;
}

.hiup-cart-item-qty-readonly {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 34px;
	padding: 6px 10px;
	border: 1px solid var(--hiup-cart-border, #e2e8f0);
	border-radius: 999px;
	background: var(--hiup-cart-trust-bg, #f8fafc);
	color: var(--hiup-cart-muted, #475569);
	font-size: 0.82rem;
	font-weight: 700;
}

/* Sections (entrega / pagamento) */
.hiup-cart-section {
	margin-bottom: 18px;
}

.hiup-cart-section-title {
	margin: 0 0 12px;
	font-size: 0.92rem;
	font-weight: 700;
	color: var(--hiup-cart-text, #1e293b);
}

.hiup-cart-option-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.hiup-cart-option-card {
	position: relative;
	display: block;
	cursor: pointer;
}

.hiup-cart-option-card input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.hiup-cart-option-body {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	border: 1.5px solid var(--hiup-cart-border, #e2e8f0);
	border-radius: 12px;
	background: var(--hiup-cart-bg, #fff);
	transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.hiup-cart-option-card:hover .hiup-cart-option-body {
	border-color: var(--hiup-cart-border, #cbd5e1);
}

.hiup-cart-option-card input:checked + .hiup-cart-option-body,
.hiup-cart-option-card:has(input:checked) .hiup-cart-option-body {
	border-color: var(--hiup-cart-primary, var(--hiup-primary, #e91e8c));
	background: var(--hiup-cart-option-selected-bg, #fdf2f8);
	box-shadow: 0 0 0 1px rgba(233, 30, 140, 0.08);
}

.hiup-cart-option-main {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.hiup-cart-option-main strong {
	font-size: 0.92rem;
	font-weight: 700;
	color: var(--hiup-cart-text, #1e293b);
}

.hiup-cart-option-main small {
	color: var(--hiup-cart-muted, #64748b);
	font-size: 0.78rem;
	line-height: 1.35;
}

.hiup-cart-option-price {
	flex-shrink: 0;
	font-size: 0.88rem;
	font-weight: 700;
	color: var(--hiup-cart-muted, #64748b);
	white-space: nowrap;
}

.hiup-cart-option-price.is-free {
	color: #16a34a;
}

.hiup-cart-option-badge {
	flex-shrink: 0;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(233, 30, 140, 0.12);
	color: var(--hiup-cart-primary, var(--hiup-primary, #e91e8c));
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.hiup-cart-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.hiup-cart-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.hiup-cart-field-full {
	grid-column: 1 / -1;
}

.hiup-cart-field > span {
	color: var(--hiup-cart-muted, #475569);
	font-size: 0.82rem;
	font-weight: 600;
}

.hiup-cart-field input {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--hiup-cart-border, #e2e8f0);
	border-radius: 10px;
	background: var(--hiup-cart-bg, #fff);
	color: var(--hiup-cart-text, #1e293b);
	font-size: 0.92rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.hiup-cart-field input::placeholder {
	color: var(--hiup-cart-muted, #94a3b8);
}

.hiup-cart-field input:focus {
	outline: none;
	border-color: var(--hiup-cart-primary, var(--hiup-primary, #e91e8c));
	box-shadow: 0 0 0 3px rgba(233, 30, 140, 0.12);
}

.hiup-cart-review-box {
	padding: 14px 16px;
	border: 1px solid var(--hiup-cart-border, #e2e8f0);
	border-radius: 12px;
	background: var(--hiup-cart-trust-bg, #fafafa);
}

.hiup-cart-review-list {
	margin: 0;
}

.hiup-cart-review-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.hiup-cart-review-row + .hiup-cart-review-row {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px dashed var(--hiup-cart-border, #e2e8f0);
}

.hiup-cart-review-row dt {
	margin: 0;
	color: var(--hiup-cart-muted, #64748b);
	font-size: 0.84rem;
	font-weight: 600;
}

.hiup-cart-review-row dd {
	margin: 0;
	color: var(--hiup-cart-text, #1e293b);
	font-size: 0.88rem;
	font-weight: 700;
	text-align: right;
}

/* Trust banner */
.hiup-cart-trust {
	margin: 8px 0 18px;
	padding: 16px;
	border: 1px solid var(--hiup-cart-border, #e2e8f0);
	border-radius: 12px;
	background: var(--hiup-cart-trust-bg, #fafafa);
}

.hiup-cart-trust-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hiup-cart-trust-list li {
	position: relative;
	padding-left: 22px;
	color: var(--hiup-cart-muted, #475569);
	font-size: 0.84rem;
	line-height: 1.45;
}

.hiup-cart-trust-list li + li {
	margin-top: 10px;
}

.hiup-cart-trust-list li::before {
	content: '✓';
	position: absolute;
	left: 0;
	top: 0;
	color: #22c55e;
	font-weight: 700;
}

/* Pricing summary */
.hiup-cart-pricing {
	margin-bottom: 8px;
}

.hiup-cart-pricing-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
	font-size: 0.95rem;
	color: var(--hiup-cart-muted, #475569);
}

.hiup-cart-delivery-pending {
	color: var(--hiup-cart-muted, #64748b);
}

.hiup-cart-pricing-divider {
	height: 1px;
	margin: 14px 0 12px;
	background: var(--hiup-cart-border, #e2e8f0);
}

.hiup-cart-pricing-total {
	margin-bottom: 0;
	font-size: 1rem;
	font-weight: 700;
	color: var(--hiup-cart-text, #1e293b);
}

.hiup-cart-pricing-total strong {
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--hiup-cart-total-color, var(--hiup-cart-primary, var(--hiup-primary, #e91e8c)));
}

.hiup-cart-installments {
	margin: 10px 0 0;
	color: var(--hiup-cart-muted, #64748b);
	font-size: 0.85rem;
}

/* Sticky footer */
.hiup-cart-footer {
	padding: 16px 22px calc(18px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--hiup-cart-border, #e2e8f0);
	background: var(--hiup-cart-bg, #fff);
	box-shadow: 0 -4px 20px rgba(15, 23, 42, 0.06);
}

.hiup-cart-footer-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
}

.hiup-cart-footer-total {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.hiup-cart-footer-total-label {
	color: var(--hiup-cart-muted, #64748b);
	font-size: 0.82rem;
	font-weight: 600;
}

.hiup-cart-total-value {
	font-size: 1.45rem;
	font-weight: 700;
	line-height: 1.1;
	color: var(--hiup-cart-total-color, var(--hiup-cart-primary, var(--hiup-primary, #e91e8c)));
}

.hiup-cart-continue-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	flex: 1;
	max-width: 220px;
	padding: 14px 22px;
	border: none !important;
	border-radius: 999px;
	background-color: var(--hiup-cart-continue-bg, var(--hiup-cart-primary, var(--hiup-primary, #e91e8c))) !important;
	background-image: none !important;
	box-shadow: none !important;
	color: var(--hiup-cart-continue-text, #fff) !important;
	font-size: 0.98rem;
	font-weight: 700;
	font-family: var(--hiup-font, inherit);
	text-decoration: none !important;
	white-space: nowrap;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: opacity 0.2s ease, transform 0.15s ease, filter 0.2s ease;
}

.hiup-cart-continue-btn:hover,
.hiup-cart-continue-btn:focus,
.hiup-cart-continue-btn:active {
	border: none !important;
	background-color: var(--hiup-cart-continue-bg, var(--hiup-cart-primary, var(--hiup-primary, #e91e8c))) !important;
	background-image: none !important;
	box-shadow: none !important;
	opacity: 0.92;
	transform: translateY(-1px);
	color: var(--hiup-cart-continue-text, #fff) !important;
}

.hiup-cart-continue-arrow {
	font-size: 1.1rem;
	line-height: 1;
}

.hiup-cart-footer-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin-top: 12px;
	color: var(--hiup-cart-muted, #64748b);
	font-size: 0.72rem;
}

.hiup-cart-footer-badges span {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.hiup-cart-continue-btn.is-finish {
	max-width: 240px;
	background-color: var(--hiup-cart-finish-bg, #25d366) !important;
	color: var(--hiup-cart-finish-text, #fff) !important;
}

.hiup-cart-continue-btn.is-finish:hover,
.hiup-cart-continue-btn.is-finish:focus,
.hiup-cart-continue-btn.is-finish:active {
	background-color: var(--hiup-cart-finish-bg, #25d366) !important;
	filter: brightness(0.92);
	color: var(--hiup-cart-finish-text, #fff) !important;
}

.hiup-cart-footer-badges span::before {
	content: '✓';
	color: #22c55e;
	font-size: 0.68rem;
	font-weight: 700;
}

.hiup-cart-badge-lock::before {
	content: '';
	display: inline-block;
	width: 11px;
	height: 11px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M7 10V8a5 5 0 0 1 10 0v2' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Crect x='5' y='10' width='14' height='11' rx='2' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M7 10V8a5 5 0 0 1 10 0v2' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Crect x='5' y='10' width='14' height='11' rx='2' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	color: var(--hiup-cart-muted, #64748b) !important;
	font-size: 0 !important;
	font-weight: 400 !important;
}

.hiup-cart-whatsapp-btn {
	width: auto;
	margin-top: 0;
}

a.hiup-whatsapp-btn.is-loading,
.hiup-cart-whatsapp-btn.is-loading,
.hiup-cart-checkout-btn.is-loading,
.hiup-cart-continue-btn.is-loading {
	opacity: 0.7;
	pointer-events: none;
}

@media (max-width: 480px) {
	.hiup-cart-header,
	.hiup-cart-body,
	.hiup-cart-footer {
		padding-left: 16px;
		padding-right: 16px;
	}

	.hiup-cart-steps-wrap {
		margin-left: 16px;
		margin-right: 16px;
		padding: 12px 10px 10px;
	}

	.hiup-cart-step {
		min-width: 58px;
	}

	.hiup-cart-step-label {
		font-size: 0.72rem;
	}

	.hiup-cart-step-line {
		max-width: 36px;
	}

	.hiup-cart-fields {
		grid-template-columns: 1fr;
	}

	.hiup-cart-field-full {
		grid-column: auto;
	}

	.hiup-cart-footer-bar {
		flex-direction: column;
		align-items: stretch;
	}

	.hiup-cart-continue-btn {
		max-width: none;
		width: 100%;
	}
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ── Category Carousel ── */
.hiup-cc {
	--hiup-cc-slides: 2;
	--hiup-cc-gap: 16px;
	--hiup-cc-menu-width: 220px;
	--hiup-cc-arrow-x: 0px;
	--hiup-cc-arrow-y: 0px;
	font-family: var(--hiup-font, inherit);
}

.hiup-cc-heading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-bottom: 24px;
	text-align: center;
}

.hiup-cc-heading-text {
	font-size: clamp(1.25rem, 2vw, 1.75rem);
	font-weight: 700;
	color: var(--hiup-primary, #e91e8c);
}

.hiup-cc-heading-heart {
	color: var(--hiup-primary, #e91e8c);
	font-size: 1.1rem;
}

.hiup-cc-body {
	display: flex;
	align-items: stretch;
	gap: var(--hiup-cc-gap, 16px);
}

.hiup-cc-menu {
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 0 0 var(--hiup-cc-menu-width, 220px);
	max-width: var(--hiup-cc-menu-width, 220px);
}

.hiup-cc-menu-btn {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 14px 16px;
	border: none;
	border-radius: var(--hiup-btn-radius, 10px);
	background: #fff;
	color: var(--hiup-card-text, #333);
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
	transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.hiup-cc-menu-btn:hover:not(:disabled),
.hiup-cc-menu-btn.active {
	background: var(--hiup-primary, #e91e8c);
	color: #fff;
}

.hiup-cc-menu-btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.hiup-cc-menu-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 24px;
	height: 24px;
}

.hiup-cc-menu-label {
	line-height: 1.3;
}

.hiup-cc-stage {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	align-items: center;
}

.hiup-cc-arrows-outside .hiup-cc-stage {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
}

.hiup-cc-arrows-outside .hiup-cc-nav {
	position: static;
	transform: none;
	margin: 0;
	flex-shrink: 0;
}

.hiup-cc-arrows-overlay .hiup-cc-stage {
	display: block;
}

.hiup-cc-arrows-overlay .hiup-cc-track-wrap {
	width: 100%;
}

.hiup-cc-arrows-overlay .hiup-cc-nav {
	position: absolute;
	top: 50%;
	z-index: 3;
	margin-top: -21px;
}

.hiup-cc-arrows-overlay .hiup-cc-prev {
	left: var(--hiup-cc-arrow-x, 8px);
	right: auto;
	transform: translateY(var(--hiup-cc-arrow-y, 0));
}

.hiup-cc-arrows-overlay .hiup-cc-next {
	right: var(--hiup-cc-arrow-x, 8px);
	left: auto;
	transform: translateY(var(--hiup-cc-arrow-y, 0));
}

.hiup-cc-track-wrap {
	overflow: hidden;
	width: 100%;
	min-width: 0;
}

.hiup-cc-track {
	display: flex;
	gap: var(--hiup-cc-gap, 16px);
	transition: transform 0.35s ease;
	will-change: transform;
}

.hiup-cc-card {
	flex: 0 0 auto;
	min-width: 0;
}

.hiup-cc-nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--hiup-border-color, #e5e7eb);
	border-radius: 50%;
	background: #fff;
	color: var(--hiup-primary, #e91e8c);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.15s ease, background 0.2s ease;
}

.hiup-cc:not(.hiup-cc-can-scroll) .hiup-cc-nav {
	opacity: 0.35;
	cursor: not-allowed;
}

.hiup-cc-nav:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.hiup-cc-nav:not(:disabled):hover {
	background: var(--hiup-primary, #e91e8c);
	color: #fff;
	border-color: var(--hiup-primary, #e91e8c);
}

.hiup-cc-nav-icon {
	display: block;
	font-size: 1.6rem;
	line-height: 1;
}

.hiup-cc-card-image-link {
	display: block;
	aspect-ratio: 3/4;
	overflow: hidden;
}

.hiup-cc-card-image,
.hiup-cc-card-placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.hiup-cc-card-body {
	padding: 14px 16px 18px;
	min-width: 0;
	box-sizing: border-box;
}

.hiup-cc .hiup-cc-card-actions {
	--hiup-cc-buy-width: 30%;
	--hiup-cc-whatsapp-width: 60%;
	--hiup-cc-btn-height: 42px;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: flex-start;
	gap: 8px;
	margin-top: auto;
	padding-top: 14px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.hiup-cc .hiup-cc-card-actions .hiup-cc-buy-btn,
.hiup-cc .hiup-cc-card-actions .hiup-card-buy-btn,
.hiup-cc .hiup-cc-card-actions .hiup-add-to-cart-btn,
.hiup-cc .hiup-cc-card-actions a.hiup-whatsapp-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	box-sizing: border-box !important;
	margin: 0 !important;
	min-width: 0 !important;
	height: var(--hiup-cc-btn-height, 42px) !important;
	min-height: var(--hiup-cc-btn-height, 42px) !important;
	max-height: var(--hiup-cc-btn-height, 42px) !important;
	line-height: 1.2 !important;
	flex-grow: 0 !important;
	flex-shrink: 1 !important;
}

/* Desktop: Comprar ~30% | WhatsApp ~60% (encolhem se houver gap). */
.hiup-cc .hiup-cc-card-actions .hiup-cc-buy-btn,
.hiup-cc .hiup-cc-card-actions .hiup-card-buy-btn,
.hiup-cc .hiup-cc-card-actions .hiup-add-to-cart-btn {
	flex-basis: var(--hiup-cc-buy-width, 30%) !important;
	width: var(--hiup-cc-buy-width, 30%) !important;
	max-width: var(--hiup-cc-buy-width, 30%) !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	padding-left: 8px !important;
	padding-right: 8px !important;
}

.hiup-cc .hiup-cc-card-actions a.hiup-whatsapp-btn {
	flex-basis: var(--hiup-cc-whatsapp-width, 60%) !important;
	width: var(--hiup-cc-whatsapp-width, 60%) !important;
	max-width: 100% !important;
	white-space: nowrap !important;
	overflow: hidden;
	text-overflow: ellipsis;
	padding-left: 8px !important;
	padding-right: 8px !important;
}

/* Um único botão ocupa 100% do card. */
.hiup-cc .hiup-cc-card-actions .hiup-cc-buy-btn:only-child,
.hiup-cc .hiup-cc-card-actions .hiup-card-buy-btn:only-child,
.hiup-cc .hiup-cc-card-actions .hiup-add-to-cart-btn:only-child,
.hiup-cc .hiup-cc-card-actions a.hiup-whatsapp-btn:only-child {
	flex-grow: 1 !important;
	flex-basis: 100% !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* Empilhado no desktop só se a opção Elementor for “Empilhado”. */
.hiup-cc-btns-column .hiup-cc .hiup-cc-card-actions {
	flex-direction: column;
	align-items: stretch;
}

.hiup-cc-btns-column .hiup-cc .hiup-cc-card-actions .hiup-cc-buy-btn,
.hiup-cc-btns-column .hiup-cc .hiup-cc-card-actions .hiup-card-buy-btn,
.hiup-cc-btns-column .hiup-cc .hiup-cc-card-actions .hiup-add-to-cart-btn,
.hiup-cc-btns-column .hiup-cc .hiup-cc-card-actions a.hiup-whatsapp-btn {
	flex-grow: 0 !important;
	flex-shrink: 0 !important;
	flex-basis: auto !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* Desktop (≥768px): força lado a lado 30%/60%, mesmo se o widget antigo estiver em “Empilhado”. */
@media (min-width: 768px) {
	.hiup-cc .hiup-cc-card-actions,
	.hiup-cc-btns-column .hiup-cc .hiup-cc-card-actions,
	.hiup-cc-btns-row .hiup-cc .hiup-cc-card-actions {
		flex-direction: row !important;
		align-items: stretch !important;
		flex-wrap: nowrap !important;
	}

	.hiup-cc .hiup-cc-card-actions .hiup-cc-buy-btn,
	.hiup-cc .hiup-cc-card-actions .hiup-card-buy-btn,
	.hiup-cc .hiup-cc-card-actions .hiup-add-to-cart-btn,
	.hiup-cc-btns-column .hiup-cc .hiup-cc-card-actions .hiup-cc-buy-btn,
	.hiup-cc-btns-column .hiup-cc .hiup-cc-card-actions .hiup-card-buy-btn,
	.hiup-cc-btns-column .hiup-cc .hiup-cc-card-actions .hiup-add-to-cart-btn {
		flex-grow: 0 !important;
		flex-shrink: 1 !important;
		flex-basis: var(--hiup-cc-buy-width, 30%) !important;
		width: var(--hiup-cc-buy-width, 30%) !important;
		max-width: var(--hiup-cc-buy-width, 30%) !important;
	}

	.hiup-cc .hiup-cc-card-actions a.hiup-whatsapp-btn,
	.hiup-cc-btns-column .hiup-cc .hiup-cc-card-actions a.hiup-whatsapp-btn {
		flex-grow: 1 !important;
		flex-shrink: 1 !important;
		flex-basis: var(--hiup-cc-whatsapp-width, 60%) !important;
		width: var(--hiup-cc-whatsapp-width, 60%) !important;
		max-width: 100% !important;
	}

	.hiup-cc .hiup-cc-card-actions .hiup-cc-buy-btn:only-child,
	.hiup-cc .hiup-cc-card-actions .hiup-card-buy-btn:only-child,
	.hiup-cc .hiup-cc-card-actions .hiup-add-to-cart-btn:only-child,
	.hiup-cc .hiup-cc-card-actions a.hiup-whatsapp-btn:only-child {
		flex-grow: 1 !important;
		flex-basis: 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}
}

.hiup-cc-btn-align-start .hiup-cc-card-actions {
	justify-content: flex-start;
	align-items: flex-start;
}

.hiup-cc-btn-align-center .hiup-cc-card-actions {
	justify-content: center;
	align-items: center;
}

.hiup-cc-btn-align-end .hiup-cc-card-actions {
	justify-content: flex-end;
	align-items: flex-end;
}

.hiup-cc-btn-align-stretch .hiup-cc-card-actions {
	justify-content: flex-start;
	align-items: stretch;
}

/* Mobile: um botão abaixo do outro, 100% da largura do card (sem estourar altura). */
@media (max-width: 767px) {
	.hiup-cc .hiup-cc-card-actions {
		--hiup-cc-btn-height: 36px;
	}

	.hiup-cc .hiup-cc-card-actions,
	.hiup-cc-btns-row .hiup-cc .hiup-cc-card-actions,
	.hiup-cc-btns-column .hiup-cc .hiup-cc-card-actions {
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		gap: 6px;
	}

	.hiup-cc .hiup-cc-card-actions .hiup-cc-buy-btn,
	.hiup-cc .hiup-cc-card-actions .hiup-card-buy-btn,
	.hiup-cc .hiup-cc-card-actions .hiup-add-to-cart-btn,
	.hiup-cc .hiup-cc-card-actions a.hiup-whatsapp-btn {
		flex: none !important;
		flex-grow: 0 !important;
		flex-shrink: 0 !important;
		flex-basis: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		height: var(--hiup-cc-btn-height, 36px) !important;
		min-height: var(--hiup-cc-btn-height, 36px) !important;
		max-height: var(--hiup-cc-btn-height, 36px) !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		font-size: 0.8125rem !important;
	}

	.hiup-cc .hiup-cc-card-actions a.hiup-whatsapp-btn svg {
		width: 16px;
		height: 16px;
	}
}

.hiup-cc-empty,
.hiup-cc-loading .hiup-cc-track-wrap {
	opacity: 0.55;
}

.hiup-cc-btn-order-whatsapp_buy .hiup-cc-buy-btn {
	order: 2;
}

.hiup-cc-btn-order-whatsapp_buy .hiup-cc-whatsapp-btn {
	order: 1;
}

@media (max-width: 991px) {
	.hiup-cc-body {
		flex-direction: column !important;
	}

	.hiup-cc-menu {
		flex: 1 1 auto;
		max-width: none;
		flex-direction: row;
		flex-wrap: wrap;
	}

	.hiup-cc-menu-btn {
		flex: 1 1 calc(50% - 8px);
	}
}

@media (max-width: 767px) {
	.hiup-cc {
		--hiup-cc-slides: 1;
	}

	.hiup-cc-menu-btn {
		flex: 1 1 100%;
	}
}

/* ── Category Circles Carousel ── */
.hiup-circ {
	--hiup-circ-slides: 4;
	--hiup-circ-gap: 24px;
	--hiup-circ-size: 180px;
	width: 100%;
	font-family: var(--hiup-font, inherit);
}

.hiup-circ-heading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-bottom: 28px;
	text-align: center;
	color: var(--hiup-primary, #e91e8c);
}

.hiup-circ-heading-text {
	font-size: clamp(1.35rem, 2.4vw, 1.85rem);
	font-weight: 700;
	line-height: 1.2;
}

.hiup-circ-heading-heart {
	color: #f7a8c4;
	font-size: 1rem;
	line-height: 1;
	opacity: 0.9;
}

.hiup-circ-stage {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
}

.hiup-circ-track-wrap {
	overflow: hidden;
	flex: 1 1 auto;
	min-width: 0;
	padding: 8px 4px 12px;
}

.hiup-circ-track {
	display: flex;
	align-items: flex-start;
	gap: var(--hiup-circ-gap, 24px);
	transition: transform 0.35s ease;
	will-change: transform;
}

.hiup-circ-item {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-decoration: none !important;
	color: inherit;
	min-width: 0;
	box-sizing: border-box;
}

.hiup-circ-circle {
	display: block;
	width: min(100%, var(--hiup-circ-size, 180px));
	aspect-ratio: 1 / 1;
	height: auto;
	margin: 0 auto;
	border-radius: 50%;
	border-style: solid;
	border-width: 4px;
	border-color: var(--hiup-primary, #e91e8c);
	background-color: #ffe4ec;
	overflow: hidden;
	box-sizing: border-box;
	transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.hiup-circ-image,
.hiup-circ-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hiup-circ-placeholder {
	background:
		radial-gradient(circle at 30% 30%, rgba(233, 30, 140, 0.18), transparent 45%),
		radial-gradient(circle at 70% 60%, rgba(233, 30, 140, 0.12), transparent 40%),
		#ffe4ec;
}

.hiup-circ-label {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: -18px;
	padding: 8px 16px;
	max-width: 92%;
	border-radius: 999px;
	background: var(--hiup-primary, #e91e8c);
	color: #fff;
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	text-decoration: none !important;
	white-space: normal;
	box-sizing: border-box;
	box-shadow: 0 4px 12px rgba(233, 30, 140, 0.22);
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.hiup-circ-item:hover .hiup-circ-label {
	transform: translateY(-1px);
}

.hiup-circ-nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid #f3c4d8;
	border-radius: 50%;
	background: #fff;
	color: var(--hiup-primary, #e91e8c);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.15s ease, background 0.2s ease, color 0.2s ease;
}

.hiup-circ:not(.hiup-circ-can-scroll) .hiup-circ-nav {
	opacity: 0.35;
	cursor: not-allowed;
}

.hiup-circ-nav:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.hiup-circ-nav:not(:disabled):hover {
	background: var(--hiup-primary, #e91e8c);
	color: #fff;
	border-color: var(--hiup-primary, #e91e8c);
}

.hiup-circ-nav-icon {
	display: block;
}

.hiup-circ-empty {
	padding: 16px;
	text-align: center;
	color: #666;
}

@media (max-width: 1024px) {
	.hiup-circ {
		--hiup-circ-slides: 2;
		--hiup-circ-size: 150px;
	}
}

@media (max-width: 767px) {
	.hiup-circ {
		--hiup-circ-slides: 1;
		--hiup-circ-size: 220px;
		--hiup-circ-gap: 16px;
	}

	.hiup-circ-stage {
		gap: 8px;
	}

	.hiup-circ-label {
		font-size: 0.875rem;
		padding: 9px 18px;
	}
}
