.cp-product-steps {
	--cp-steps-pink: #e50064;
	--cp-steps-soft: #fff0fa;
	--cp-steps-line: #dfdfdf;
	--cp-steps-ink: #171722;
	width: 100%;
	max-width: 600px;
	box-sizing: border-box;
	margin: 20px 0 26px;
	overflow: hidden;
	border: 1px solid var(--cp-steps-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 14px 36px rgba(17, 24, 39, 0.06);
	font-family: "Open Sans", sans-serif;
}

.cp-product-steps__top {
	padding: 22px 20px 18px;
	border-bottom: 1px solid #ffd4e8;
	background: var(--cp-steps-soft);
}

.cp-product-steps__heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 18px;
}

.cp-product-steps__title {
	margin: 0;
	color: var(--cp-steps-ink);
	font-family: "Open Sans", sans-serif;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: -0.035em;
}

.cp-product-steps-redundant {
	display: none !important;
}

.cp-product-steps__count {
	flex: 0 0 auto;
	padding-bottom: 7px;
	color: #555965;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
}

.cp-product-steps__progress {
	height: 5px;
	margin-top: 14px;
	overflow: hidden;
	border-radius: 999px;
	background: #ffd4e6;
}

.cp-product-steps__progress-bar {
	display: block;
	width: 0;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--cp-steps-pink), #ff5ca8);
	transition: width 240ms ease;
}

.cp-product-steps .wapf-field-container.cp-option-step {
	display: block;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--cp-steps-line) !important;
	border-radius: 0 !important;
	background: #fff !important;
}

.cp-product-steps .wapf-field-container.cp-option-step:last-child {
	border-bottom: 0 !important;
}

.cp-product-steps .cp-option-step.cp-step-unavailable {
	display: block !important;
}

.cp-product-steps .cp-option-step--file.cp-step-unavailable {
	display: none !important;
}

.cp-option-step.cp-step-unavailable .cp-option-step__head {
	cursor: default;
}

.cp-option-step > .wapf-field-label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.cp-option-step__head {
	display: flex;
	width: 100%;
	align-items: center;
	gap: 12px;
	padding: 15px 17px;
	border: 0;
	background: #fff;
	color: var(--cp-steps-ink);
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.cp-option-step__head:hover {
	background: #fffbfd;
}

.cp-option-step__head:focus-visible {
	z-index: 2;
	outline: 3px solid rgba(229, 0, 100, 0.22);
	outline-offset: -3px;
}

.cp-option-step__number {
	display: grid;
	width: 33px;
	height: 33px;
	flex: 0 0 33px;
	place-items: center;
	border: 1px solid #d3d7e0;
	border-radius: 50%;
	background: #fff;
	color: #9ca3af;
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	transition: 180ms ease;
}

.cp-option-step.cp-step-open .cp-option-step__number,
.cp-option-step.cp-step-complete .cp-option-step__number {
	border-color: var(--cp-steps-pink);
	background: var(--cp-steps-pink);
	color: #fff;
}

.cp-option-step__title {
	min-width: 0;
	flex: 1 1 auto;
	color: #9ca3af;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.35;
}

.cp-option-step.cp-step-open .cp-option-step__title,
.cp-option-step.cp-step-complete .cp-option-step__title {
	color: var(--cp-steps-ink);
}

.cp-option-step__value {
	max-width: 42%;
	margin-left: auto;
	overflow: hidden;
	color: var(--cp-steps-pink);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.35;
	text-align: right;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cp-option-step__chevron {
	width: 8px;
	height: 8px;
	flex: 0 0 8px;
	margin: 0 3px 4px 5px;
	border-right: 1.5px solid #6b7280;
	border-bottom: 1.5px solid #6b7280;
	transform: rotate(45deg);
	transition: transform 180ms ease;
}

.cp-option-step.cp-step-open .cp-option-step__chevron {
	margin-bottom: -4px;
	transform: rotate(225deg);
}

.cp-option-step__panel {
	display: none;
	padding: 0 17px 18px;
}

.cp-option-step.cp-step-open > .cp-option-step__panel {
	display: block;
	animation: cp-step-reveal 180ms ease both;
}

.cp-option-step__panel > .wapf-field-input,
.cp-option-step__panel > .wapf-field-description {
	margin: 0 !important;
	padding: 0 !important;
}

.cp-option-step__panel > .wapf-field-description {
	margin-top: 10px !important;
	color: #777b86;
	font-size: 11px;
	line-height: 1.5;
}

.cp-option-step .wapf-swatch-wrapper {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px !important;
	margin: 0 !important;
}

.cp-option-step .wapf-swatch {
	position: relative;
	width: 100% !important;
	margin: 0 !important;
	border: 1px solid var(--cp-steps-line) !important;
	border-radius: 9px !important;
	background: #fff !important;
	box-shadow: none !important;
	transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.cp-option-step .wapf-swatch:hover {
	border-color: #f2a1c3 !important;
	background: #fffbfd !important;
}

.cp-option-step .wapf-swatch.cp-is-selected {
	border-color: var(--cp-steps-pink) !important;
	background: var(--cp-steps-soft) !important;
	box-shadow: none !important;
}

.cp-option-step .wapf-swatch.cp-is-selected::after {
	content: "\2713";
	position: absolute;
	z-index: 3;
	top: 8px;
	right: 8px;
	display: grid;
	width: 18px;
	height: 18px;
	place-items: center;
	border-radius: 50%;
	background: var(--cp-steps-pink);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	pointer-events: none;
}

.cp-option-step .wapf-swatch > label {
	display: flex !important;
	min-height: 58px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0 !important;
	padding: 12px 30px 12px 14px !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--cp-steps-ink);
	font-family: "Open Sans", sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	text-align: center;
	cursor: pointer;
}

.cp-option-step .wapf-swatch--image > label {
	display: block !important;
	padding: 6px !important;
	text-align: left;
}

.cp-option-step .wapf-image-swatch-wrapper {
	grid-template-columns: repeat(auto-fit, minmax(130px, 160px)) !important;
	justify-content: start;
}

.cp-option-step .wapf-swatch--image {
	width: 100% !important;
	max-width: 160px;
}

.cp-option-step .wapf-swatch--image .apf-pick-box {
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 0 !important;
	border-radius: 6px;
	background: #f7f7f7;
}

.cp-option-step .wapf-swatch--image .apf-pick-box img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}

.cp-option-step .wapf-swatch--image .wapf-swatch-label {
	padding: 8px 4px 3px;
	color: var(--cp-steps-ink);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
}

.cp-option-step .wapf-swatch input[type="radio"],
.cp-option-step .wapf-swatch input[type="checkbox"] {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	pointer-events: none;
}

.cp-option-step input[type="text"],
.cp-option-step input[type="number"],
.cp-option-step input[type="email"],
.cp-option-step input[type="tel"],
.cp-option-step input[type="url"],
.cp-option-step textarea,
.cp-option-step select {
	width: 100%;
	min-height: 48px;
	padding: 10px 13px;
	border: 1px solid var(--cp-steps-line);
	border-radius: 10px;
	background: #fff;
	color: var(--cp-steps-ink);
	font-family: "Open Sans", sans-serif;
	font-size: 13px;
	box-shadow: none;
}

.cp-option-step textarea {
	min-height: 96px;
	resize: vertical;
}

.cp-option-step input:focus,
.cp-option-step textarea:focus,
.cp-option-step select:focus {
	border-color: var(--cp-steps-pink);
	outline: 3px solid rgba(229, 0, 100, 0.12);
}

.cp-option-step.field-c0ffee1 .cp-presu-price-table {
	margin-top: 0 !important;
}

.cp-option-step.field-c0ffee1 .wapf-swatch-wrapper {
	display: none !important;
}

.cp-option-step.field-c0ffee1 .cp-presu-price-row.cp-selected::after {
	background: var(--cp-steps-pink) !important;
}

@keyframes cp-step-reveal {
	from {
		opacity: 0;
		transform: translateY(-4px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (max-width: 767px) {
	.cp-product-steps {
		margin: 16px 0 22px;
		border-radius: 14px;
	}

	.cp-product-steps__top {
		padding: 17px 14px 14px;
	}

	.cp-product-steps__heading {
		align-items: flex-start;
	}

	.cp-product-steps__title {
		font-size: 20px;
		line-height: 1.3;
	}

	.cp-product-steps__count {
		padding-top: 7px;
		padding-bottom: 0;
		font-size: 11px;
	}

	.cp-option-step__head {
		gap: 10px;
		padding: 13px 12px;
	}

	.cp-option-step__number {
		width: 30px;
		height: 30px;
		flex-basis: 30px;
	}

	.cp-option-step__value {
		display: none;
	}

	.cp-option-step__panel {
		padding: 0 12px 14px;
	}

	.cp-option-step .wapf-swatch-wrapper {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px !important;
	}

	.cp-option-step .wapf-swatch > label {
		min-height: 52px;
		padding: 10px 26px 10px 10px !important;
		font-size: 12px;
	}
}

@media (max-width: 420px) {
	.cp-product-steps__heading {
		display: block;
	}

	.cp-product-steps__count {
		display: block;
		padding-top: 3px;
	}
}


/* WooCommerce variations are the required first step on variable products. */
form.variations_form {
	width: 100%;
	max-width: 600px;
}

form.variations_form:not(.cp-variation-ready) .cp-product-steps {
	display: none;
}

.cp-variation-intro {
	margin: 0 0 12px;
	color: var(--cp-steps-ink, #171722);
	font-family: "Open Sans", sans-serif;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
}

form.variations_form table.variations,
form.variations_form table.variations tbody,
form.variations_form table.variations tr,
form.variations_form table.variations th,
form.variations_form table.variations td {
	display: block;
	width: 100%;
	box-sizing: border-box;
}

form.variations_form table.variations {
	margin: 0 0 18px;
	border: 0;
}

form.variations_form table.variations tr {
	margin: 0 0 18px;
}

form.variations_form table.variations th.label,
form.variations_form table.variations td.value {
	padding: 0;
	border: 0;
	text-align: left;
}

form.variations_form table.variations th.label {
	margin-bottom: 9px;
}

form.variations_form table.variations th.label label {
	color: #171722;
	font-family: "Open Sans", sans-serif;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
}

form.variations_form table.variations select {
	width: 100%;
	min-height: 46px;
	padding: 9px 12px;
	border: 1px solid #dfdfdf;
	border-radius: 9px;
	background: #fff;
	font-family: "Open Sans", sans-serif;
	font-size: 14px;
}

form.variations_form .variable-items-wrapper {
	display: flex !important;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 !important;
	padding: 0 !important;
}

form.variations_form .variable-items-wrapper .variable-item {
	position: relative;
	display: flex !important;
	width: 118px !important;
	height: auto !important;
	min-height: 126px;
	box-sizing: border-box;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	margin: 0 !important;
	padding: 6px !important;
	border: 1px solid #dfdfdf !important;
	border-radius: 10px !important;
	background: #fff !important;
	box-shadow: none !important;
	color: #171722;
	cursor: pointer;
	transition: border-color 160ms ease, background-color 160ms ease;
}

form.variations_form .variable-items-wrapper .variable-item:hover {
	border-color: #ee7bab !important;
}

form.variations_form .variable-items-wrapper .variable-item.selected,
form.variations_form .variable-items-wrapper .variable-item[aria-checked="true"] {
	border-color: #e50064 !important;
	background: #fff0fa !important;
}

form.variations_form .variable-item .variable-item-contents {
	display: block;
	width: 100%;
	height: 88px;
	overflow: hidden;
	border-radius: 6px;
	background: #f7f7f7;
}

form.variations_form .variable-item .variable-item-image {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}

form.variations_form .cp-variation-option-label {
	display: block;
	padding: 8px 3px 2px;
	font-family: "Open Sans", sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
}

form.variations_form .reset_variations {
	display: inline-flex;
	align-items: center;
	margin-top: 10px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #777b86;
	font-family: "Open Sans", sans-serif;
	font-size: 12px;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

form.variations_form .reset_variations:hover,
form.variations_form .reset_variations:focus-visible {
	color: #e50064;
}

/* Purchase controls reuse WooCommerce's native quantity input and submit. */
form.cart .quantity.cp-quantity-control {
	display: inline-grid !important;
	width: 156px !important;
	min-width: 156px !important;
	max-width: 156px !important;
	height: 56px;
	grid-template-columns: 54px 48px 54px;
	align-items: stretch;
	margin: 0 18px 0 0 !important;
	overflow: hidden;
	border: 1px solid #dfdfdf;
	border-radius: 9px;
	background: #fff;
	vertical-align: top;
}

body.cp-quote-checkout-product form.cart .quantity {
	display: none !important;
}

body.cp-priority-disabled .wapf-field-container.field-c0ffee1 {
	display: none !important;
}

form.cart .cp-purchase-actions {
	display: flex !important;
	width: 100%;
	max-width: 600px;
	box-sizing: border-box;
	align-items: stretch;
	gap: 18px;
	margin: 0;
}

form.cart .cp-purchase-actions .quantity.cp-quantity-control {
	flex: 0 0 156px;
	margin: 0 !important;
}

form.cart .cp-purchase-actions .single_add_to_cart_button {
	width: auto !important;
	max-width: none !important;
	min-width: 0;
	flex: 1 1 auto;
	margin: 0 !important;
}

form.cart .quantity.cp-quantity-control .qty {
	display: block !important;
	width: 48px !important;
	min-width: 0 !important;
	height: 54px !important;
	margin: 0 !important;
	padding: 0 4px !important;
	border: 0 !important;
	border-right: 1px solid #dfdfdf !important;
	border-left: 1px solid #dfdfdf !important;
	border-radius: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
	color: #171722 !important;
	font-family: "Open Sans", sans-serif;
	font-size: 15px !important;
	font-weight: 500;
	text-align: center;
	appearance: textfield;
	-moz-appearance: textfield;
}

form.cart .quantity.cp-quantity-control .qty::-webkit-outer-spin-button,
form.cart .quantity.cp-quantity-control .qty::-webkit-inner-spin-button {
	margin: 0;
	appearance: none;
	-webkit-appearance: none;
}

form.cart .cp-qty-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	min-width: 0;
	height: 54px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: #f1f1f2;
	box-shadow: none;
	color: #171722;
	font-family: "Open Sans", sans-serif;
	font-size: 18px;
	font-weight: 400;
	line-height: 1;
	cursor: pointer;
	transition: background-color 150ms ease, color 150ms ease;
}

form.cart .cp-qty-button:hover,
form.cart .cp-qty-button:focus-visible {
	background: #fff0fa;
	color: #e50064;
}

form.cart .cp-qty-button:focus-visible {
	position: relative;
	z-index: 2;
	outline: 2px solid #e50064;
	outline-offset: -2px;
}

form.cart .cp-qty-button:disabled {
	color: #a7a7ad;
	cursor: not-allowed;
	opacity: 0.65;
}

form.cart .single_add_to_cart_button.cp-add-to-cart-with-icon {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 11px;
	min-height: 56px;
	vertical-align: top;
}

form.cart .single_add_to_cart_button.cp-add-to-cart-with-icon::before {
	content: "";
	width: 21px;
	height: 21px;
	flex: 0 0 21px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2l2.2 10.1a2 2 0 0 0 2 1.6h7.9a2 2 0 0 0 1.9-1.4L21 8H6.1'/%3E%3Ccircle cx='10' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%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' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2l2.2 10.1a2 2 0 0 0 2 1.6h7.9a2 2 0 0 0 1.9-1.4L21 8H6.1'/%3E%3Ccircle cx='10' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Compact summary: existing pricing code remains the source of truth. */
#cp-resumen.cp-resumen-box.cp-resumen-modern {
	width: 100%;
	max-width: 600px;
	box-sizing: border-box;
	margin: 28px 0 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid #dfdfdf;
	border-radius: 14px;
	background: #fff;
	box-shadow: none;
	color: #25252b;
	font-family: "Open Sans", sans-serif;
}

#cp-resumen.cp-resumen-modern .cp-title {
	margin: 0;
	padding: 20px 22px;
	border-bottom: 1px solid #dfdfdf;
	color: #171722;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.35;
}

#cp-resumen.cp-resumen-modern .cp-resumen-table {
	display: block;
	width: auto;
	margin: 24px 16px;
	padding: 14px 16px;
	overflow: hidden;
	border: 0;
	border-radius: 10px;
	background: #f7f7f8;
	border-spacing: 0;
}

#cp-resumen.cp-resumen-modern .cp-resumen-table thead {
	display: none !important;
}

#cp-resumen.cp-resumen-modern .cp-resumen-table tbody,
#cp-resumen.cp-resumen-modern .cp-resumen-table tbody tr {
	display: block;
	width: 100%;
}

#cp-resumen.cp-resumen-modern .cp-resumen-table tbody tr {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

#cp-resumen.cp-resumen-modern .cp-resumen-table tbody tr:first-child td {
	display: flex;
	width: 100%;
	box-sizing: border-box;
	align-items: baseline;
	justify-content: space-between;
	gap: 18px;
	padding: 7px 0;
	border: 0;
	background: transparent;
	color: #3e3e45;
	font-size: 15px;
	font-weight: 500;
	text-align: right;
	white-space: normal;
}

#cp-resumen.cp-resumen-modern .cp-resumen-table tbody tr:first-child td::before {
	content: attr(data-label);
	flex: 1 1 auto;
	color: #4d4d54;
	text-align: left;
}

#cp-resumen.cp-resumen-modern .cp-resumen-table .cp-total-row {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 18px;
	margin-top: 10px;
	padding-top: 14px;
	border-top: 1px solid #d8d8dc;
	background: transparent;
}

#cp-resumen.cp-resumen-modern .cp-resumen-table .cp-total-row td {
	display: block;
	width: auto;
	padding: 0;
	border: 0;
	background: transparent;
	color: #28282e;
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	text-transform: none;
	letter-spacing: normal;
	white-space: normal;
}

#cp-resumen.cp-resumen-modern .cp-total-row .cp-total-amount {
	display: inline;
	min-width: 0;
	padding: 0;
	border-radius: 0;
	background: transparent;
	color: #e50064;
	font-weight: 700;
	line-height: inherit;
	text-align: right;
}

#cp-resumen.cp-resumen-modern #cp-discount-row {
	margin: 8px 0 0;
	padding: 8px 0;
	border-top: 1px solid #e2e2e5;
	background: transparent;
}

#cp-resumen.cp-resumen-modern #cp-discount-row td {
	padding: 0;
	border: 0;
	background: transparent;
}

@media (max-width: 520px) {
	form.cart .quantity.cp-quantity-control {
		width: 136px !important;
		min-width: 136px !important;
		max-width: 136px !important;
		height: 52px;
		grid-template-columns: 46px 44px 46px;
		margin-right: 0 !important;
	}

	form.cart .cp-purchase-actions {
		gap: 10px;
	}

	form.cart .cp-purchase-actions .quantity.cp-quantity-control {
		flex-basis: 136px;
	}

	form.cart .quantity.cp-quantity-control .qty {
		width: 44px !important;
		height: 50px !important;
	}

	form.cart .cp-qty-button {
		width: 46px;
		height: 50px;
	}

	form.cart .single_add_to_cart_button.cp-add-to-cart-with-icon {
		min-height: 52px;
	}

	#cp-resumen.cp-resumen-modern .cp-title {
		padding: 18px;
		font-size: 18px;
	}

	#cp-resumen.cp-resumen-modern .cp-resumen-table {
		margin: 20px 14px;
		padding: 12px 14px;
	}
}

/* Native WooCommerce gallery, polished without replacing FlexSlider. */
.woocommerce-product-gallery.cp-product-gallery {
	--cp-gallery-pink: #e50064;
	width: 100%;
}

.woocommerce-product-gallery.cp-product-gallery .flex-viewport {
	overflow: hidden;
	border-radius: 18px;
	background: #f7f7f8;
	box-shadow: 0 12px 34px rgba(17, 24, 39, 0.06);
	transition: height 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.woocommerce-product-gallery.cp-product-gallery .woocommerce-product-gallery__wrapper {
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.woocommerce-product-gallery.cp-product-gallery .woocommerce-product-gallery__image a,
.woocommerce-product-gallery.cp-product-gallery .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
}

.woocommerce-product-gallery.cp-product-gallery .woocommerce-product-gallery__image img {
	border-radius: 18px;
	transition: opacity 360ms ease, filter 360ms ease, transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}


.woocommerce-product-gallery.cp-product-gallery.cp-gallery-changing .flex-active-slide img {
	opacity: 0.58;
	filter: blur(2px);
	transform: scale(0.992);
}

.woocommerce-product-gallery.cp-product-gallery.cp-gallery-settling .flex-active-slide img {
	animation: cp-gallery-reveal 410ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes cp-gallery-reveal {
	from {
		opacity: 0.6;
		filter: blur(2px);
		transform: scale(0.992);
	}
	to {
		opacity: 1;
		filter: blur(0);
		transform: scale(1);
	}
}

.woocommerce-product-gallery.cp-product-gallery .woocommerce-product-gallery__image:hover img {
	transform: none;
}

.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs {
	display: flex;
	flex-wrap: nowrap;
	gap: 10px;
	margin: 14px 0 0 !important;
	padding: 2px 2px 8px;
	list-style: none;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
}

.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs li {
	flex: 0 0 68px;
	width: 68px !important;
	margin: 0 !important;
	float: none !important;
	scroll-snap-align: start;
}

.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs img {
	display: block;
	width: 68px;
	height: 68px;
	box-sizing: border-box;
	padding: 3px;
	border: 1px solid #dfdfdf;
	border-radius: 12px;
	background: #fff;
	object-fit: cover;
	opacity: 0.72;
	cursor: pointer;
	transition: border-color 180ms ease, box-shadow 180ms ease, opacity 180ms ease, transform 180ms ease;
}

.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs img:hover,
.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs img:focus-visible {
	border-color: #ee7bab;
	opacity: 1;
	transform: translateY(-1px);
}

.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs img:focus-visible {
	outline: 2px solid var(--cp-gallery-pink);
	outline-offset: 2px;
}

.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs img.flex-active {
	border-color: var(--cp-gallery-pink);
	box-shadow: 0 0 0 2px #fff0fa;
	opacity: 1;
}

@media (max-width: 767px) {
	.woocommerce-product-gallery.cp-product-gallery {
		display: block !important;
	}

	.woocommerce-product-gallery.cp-product-gallery .flex-viewport {
		width: 100%;
		margin: 0 !important;
		border-radius: 14px;
	}

	.woocommerce-product-gallery.cp-product-gallery .woocommerce-product-gallery__image img {
		border-radius: 14px;
	}

	.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs {
		display: flex !important;
		flex-direction: row;
		flex-wrap: nowrap;
		width: 100% !important;
		max-height: none;
		margin: 12px 0 0 !important;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x proximity;
	}

	.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs li,
	.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs img {
		width: 62px !important;
		height: 62px;
	}

	.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs li {
		flex: 0 0 62px;
		scroll-snap-align: start;
	}

	.woocommerce-product-gallery.cp-product-gallery .woocommerce-product-gallery__trigger {
		right: 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cp-product-steps *,
	.cp-product-steps *::before,
	.cp-product-steps *::after,
	.woocommerce-product-gallery.cp-product-gallery *,
	.woocommerce-product-gallery.cp-product-gallery *::before,
	.woocommerce-product-gallery.cp-product-gallery *::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

/* Copipunto brand alignment: neutral header and unified site typography. */
.cp-product-steps,
form.variations_form,
form.cart .cp-purchase-actions,
#cp-resumen.cp-resumen-box.cp-resumen-modern{font-family:"Myriad Pro","Open Sans",sans-serif}
.cp-product-steps :where(button,input,select,textarea,label,.cp-product-steps__title,.cp-product-steps__count,.cp-option-step__head,.cp-option-step__number,.cp-option-step__title,.cp-option-step__value,.wapf-field-description,.wapf-swatch-label,.cp-presu-price-table,.cp-presu-price-table *),
form.variations_form :where(button,input,select,label,.cp-variation-intro,.cp-variation-option-label,.reset_variations),
form.cart .cp-purchase-actions :where(button,input),
#cp-resumen.cp-resumen-box.cp-resumen-modern :where(.cp-title,td){font-family:"Myriad Pro","Open Sans",sans-serif!important}
.cp-product-steps__top{border-bottom-color:#526866;background:#354a48}
.cp-product-steps .cp-product-steps__heading{display:flex!important;align-items:center!important}
.cp-product-steps .cp-product-steps__title{display:block!important;visibility:visible!important;flex:1 1 auto!important;width:auto!important;height:auto!important;margin:0!important;opacity:1!important;color:#fff!important}
.cp-product-steps .cp-product-steps__count{display:block!important;visibility:visible!important;margin-left:auto!important;opacity:1!important;color:#fff!important}
.cp-product-steps__progress{background:rgba(255,255,255,.28)}
.cp-product-steps .cp-option-step.cp-step-open>.cp-option-step__head{background:#f7f7f7!important;color:#3d3d3d!important}
.cp-product-steps .cp-option-step.cp-step-open>.cp-option-step__head .cp-option-step__title{color:#3d3d3d!important}


/* Copipunto Single polish 2.5.8. */
.woocommerce-product-gallery.cp-product-gallery{position:relative}
.woocommerce-product-gallery.cp-product-gallery .flex-viewport{box-shadow:0 16px 42px rgba(31,44,46,.08);transition:height .45s cubic-bezier(.22,1,.36,1),box-shadow .25s ease}
.woocommerce-product-gallery.cp-product-gallery .woocommerce-product-gallery__image img{transition:opacity .28s ease,transform .48s cubic-bezier(.22,1,.36,1)}
.woocommerce-product-gallery.cp-product-gallery.cp-gallery-changing .flex-active-slide img{opacity:.76;filter:none;transform:scale(.996)}
.woocommerce-product-gallery.cp-product-gallery.cp-gallery-settling .flex-active-slide img{animation:cp-gallery-reveal-soft .4s cubic-bezier(.22,1,.36,1) both}
@keyframes cp-gallery-reveal-soft{from{opacity:.72;transform:scale(.996)}to{opacity:1;transform:scale(1)}}
.cp-gallery-controls{position:absolute;z-index:8;top:calc(50% - 28px);right:14px;left:14px;display:flex;justify-content:space-between;pointer-events:none}
.cp-gallery-arrow{display:grid;width:42px;height:42px;place-items:center;padding:0;border:1px solid rgba(53,74,72,.16);border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 8px 22px rgba(31,44,46,.12);color:#354a48;font-family:"Myriad Pro","Open Sans",sans-serif;font-size:27px;line-height:1;cursor:pointer;pointer-events:auto;transition:transform .2s ease,background .2s ease,color .2s ease,opacity .2s ease}
.cp-gallery-arrow:hover,.cp-gallery-arrow:focus-visible{background:#354a48;color:#fff;transform:translateY(-1px)}
.cp-gallery-arrow:disabled{opacity:.28;cursor:default;transform:none}
.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs img{box-shadow:0 5px 15px rgba(31,44,46,.05);transition:border-color .2s ease,box-shadow .2s ease,opacity .2s ease,transform .24s ease}
.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs img.flex-active{box-shadow:0 0 0 2px #fff0fa,0 8px 18px rgba(229,0,100,.1)}

@media (max-width:767px){
  .woocommerce-product-gallery.cp-product-gallery .cp-gallery-controls{right:10px;left:10px}
  .cp-gallery-arrow{width:36px;height:36px;font-size:24px}
  .elementor-widget-woocommerce-product-related section.related.products>h2{display:none!important}
  .elementor-widget-woocommerce-product-related section.related.products ul.products{display:flex!important;width:100%!important;margin:0!important;padding:4px 2px 14px!important;gap:10px!important;grid-template-columns:none!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x mandatory;scroll-padding-inline:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .elementor-widget-woocommerce-product-related section.related.products ul.products::-webkit-scrollbar{display:none}
  .elementor-widget-woocommerce-product-related section.related.products ul.products li.product{width:calc((100% - 10px)/2)!important;max-width:calc((100% - 10px)/2)!important;min-width:0!important;flex:0 0 calc((100% - 10px)/2)!important;margin:0!important;padding:8px 8px 12px!important;overflow:hidden;border:1px solid #e4e4e4;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(31,44,46,.06);scroll-snap-align:start}
  .elementor-widget-woocommerce-product-related section.related.products li.product img{width:100%!important;height:auto!important;aspect-ratio:1/1;object-fit:cover;border-radius:10px!important;transition:transform .35s cubic-bezier(.22,1,.36,1)}
  .elementor-widget-woocommerce-product-related section.related.products li.product:active img{transform:scale(.98)}
  .elementor-widget-woocommerce-product-related section.related.products .woocommerce-loop-product__title{margin:9px 2px 4px!important;color:#354a48!important;font-family:"Myriad Pro","Open Sans",sans-serif!important;font-size:13px!important;line-height:1.25!important;font-weight:600!important}
  .elementor-widget-woocommerce-product-related section.related.products .price{margin:0 2px!important;font-family:"Myriad Pro","Open Sans",sans-serif!important;font-size:11px!important}
  .elementor-widget-woocommerce-product-related section.related.products .woocommerce-loop-product__buttons{display:none!important}
  .cp-related-nav{display:grid;grid-template-columns:38px minmax(80px,120px) 38px;align-items:center;justify-content:center;gap:10px;margin:2px auto 0}
  .cp-related-arrow{display:grid;width:38px;height:38px;place-items:center;padding:0;border:1px solid #dfdfdf;border-radius:50%;background:#fff;color:#354a48;font-family:"Myriad Pro","Open Sans",sans-serif;font-size:23px;line-height:1;cursor:pointer}
  .cp-related-arrow:disabled{opacity:.3;cursor:default}
  .cp-related-track{height:4px;overflow:hidden;border-radius:99px;background:#dedede}
  .cp-related-progress{display:block;width:30%;height:100%;border-radius:inherit;background:#e50064;transform:translateX(0);transition:transform .16s linear,width .2s ease}
}
@media (min-width:768px){.cp-related-nav{display:none}}
/* Copipunto product palette and native video, 2.6.0. */
.cp-product-steps__top{border-bottom-color:#d9dedd!important;background:#eef2f1!important}
.cp-product-steps .cp-product-steps__title{color:#354a48!important}
.cp-product-steps .cp-product-steps__count{color:#74817f!important}
.cp-product-steps__progress{background:#dce4e2!important}
.single-product :is(.tiered-pricing-table,.tiered-pricing-horizontal-table,.tiered-pricing-options){overflow:hidden;border:1px solid #d9dedd!important;border-radius:14px!important;background:#fff;font-family:"Myriad Pro","Open Sans",sans-serif}
.single-product .tiered-pricing-table{margin:0 0 30px;border-collapse:separate;border-spacing:0}
.single-product .tiered-pricing-table :is(th,td){padding:11px 14px!important;border-color:#e7eae9!important;color:#465351}
.single-product .tiered-pricing-table thead tr,.single-product .tiered-pricing-table thead th{background:#eef2f1!important;color:#354a48!important;font-weight:700}
.single-product .tiered-pricing-table tbody tr{background:#fff!important;transition:background-color .2s ease,color .2s ease}
.single-product .tiered-pricing-table tbody tr.tiered-pricing--active td{background:#fce4ef!important;color:#354a48!important;font-weight:700}
.single-product .tiered-pricing-table tbody tr.tiered-pricing--active td *{color:#354a48!important}
.single-product .tiered-pricing-table tbody tr.tiered-pricing--active td:first-child{box-shadow:inset 3px 0 #e50064}
.single-product .tiered-pricing-table tbody tr.tiered-pricing--active .amount{color:#354a48!important}
.single-product .tiered-pricing-horizontal-table__labels{background:#eef2f1!important;color:#354a48}
.single-product .tiered-pricing-horizontal-table-cell{border-color:#d9dedd!important}
.single-product .tiered-pricing-option{margin:0;border:0;border-bottom:1px solid #e7eae9;border-radius:0;background:#fff}
.single-product .tiered-pricing-option:last-child{border-bottom:0}
.single-product .tiered-pricing-option.tiered-pricing--active{background:#fce4ef;color:#354a48;box-shadow:inset 3px 0 #e50064}
.cp-product-video-frame{display:grid;width:100%;height:100%;min-height:320px;place-items:center;overflow:hidden;border-radius:18px;background:#eef2f1}
.cp-product-video-frame video{display:block;width:100%;height:100%;max-height:680px;object-fit:contain;background:#1f2928}
.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs li.cp-product-video-thumb{position:relative}
.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs li.cp-product-video-thumb::after{content:"";position:absolute;z-index:2;top:50%;left:50%;width:30px;height:30px;border-radius:50%;background:rgba(53,74,72,.9);box-shadow:0 4px 12px rgba(31,44,46,.18);pointer-events:none;transform:translate(-50%,-50%)}
.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs li.cp-product-video-thumb::before{content:"";position:absolute;z-index:3;top:50%;left:calc(50% + 2px);border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid #fff;pointer-events:none;transform:translate(-50%,-50%)}
@media(max-width:767px){.cp-product-video-frame{min-height:auto;border-radius:14px}}

/* Equal-height gallery: keep one square frame so mixed image ratios do not leave a white gap. */
.woocommerce-product-gallery.cp-product-gallery{
	width:min(100%,680px)!important;
	max-width:680px;
}
.woocommerce-product-gallery.cp-product-gallery .flex-viewport{
	width:100%;
	aspect-ratio:1/1;
	height:auto!important;
	max-height:none;
	background:#f3f5f5;
}
.woocommerce-product-gallery.cp-product-gallery .flex-viewport .woocommerce-product-gallery__image,
.woocommerce-product-gallery.cp-product-gallery .flex-viewport .woocommerce-product-gallery__image a{
	height:100%;
}
.woocommerce-product-gallery.cp-product-gallery .flex-viewport .woocommerce-product-gallery__image img{
	width:100%!important;
	height:100%!important;
	object-fit:cover;
	object-position:center;
	aspect-ratio:1/1;
}
.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs::-webkit-scrollbar{height:4px}
.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs::-webkit-scrollbar-thumb{background:rgba(229,0,100,.35);border-radius:99px}

/* Mobile hierarchy, draggable thumbnails and softer pricing state, 2.6.7. */
.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs{cursor:grab}
.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs.cp-is-dragging{cursor:grabbing;user-select:none}
.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs img{-webkit-user-drag:none;user-select:none}
.single-product .tiered-pricing-table tbody tr.tiered-pricing--active td{background:#fff0fa!important;color:#354a48!important}
.single-product .tiered-pricing-table tbody tr.tiered-pricing--active td *{color:#354a48!important}
.single-product :is(.tiered-pricing-options,.tiered-pricing-blocks) .tiered-pricing--active{background:#fff0fa!important;color:#354a48!important;box-shadow:inset 3px 0 #e50064!important}
@media(max-width:767px){
	.woocommerce-product-gallery.cp-product-gallery{
		width:min(100%,360px)!important;
		max-width:360px;
		margin-inline:auto;
	}
	body.single-product :is(h1.product_title,.elementor-widget-heading h1.elementor-heading-title){font-size:clamp(28px,8vw,34px)!important;line-height:1.08!important;letter-spacing:-.015em}
	body.single-product .woocommerce-product-details__short-description{font-size:15px!important;line-height:1.55!important}
	body.single-product .cp-product-steps__title{font-size:18px!important;line-height:1.2!important}
	body.single-product .cp-benefits-mobile-order{width:100%!important;margin-top:18px!important;margin-bottom:20px!important}
	.woocommerce-product-gallery.cp-product-gallery .flex-control-thumbs{touch-action:pan-x;cursor:grab}
}

/* Copipunto gallery controls 2.7.3. */
.woocommerce-product-gallery.cp-product-gallery .cp-gallery-arrow{
	font-size:0!important;
	background-color:rgba(255,255,255,.96)!important;
	background-position:center!important;
	background-repeat:no-repeat!important;
	background-size:18px 18px!important;
}
.woocommerce-product-gallery.cp-product-gallery .cp-gallery-prev{
	background-image:url("https://wpcopipunto.staging.girolabs.cloud/wp-content/uploads/2026/08/Group-1.svg")!important;
}
.woocommerce-product-gallery.cp-product-gallery .cp-gallery-next{
	background-image:url("https://wpcopipunto.staging.girolabs.cloud/wp-content/uploads/2026/08/right-arrow1.svg")!important;
}
.woocommerce-product-gallery.cp-product-gallery .cp-gallery-arrow:hover,
.woocommerce-product-gallery.cp-product-gallery .cp-gallery-arrow:focus-visible{
	border-color:#e50064;
	background-color:#fff!important;
}
.woocommerce-product-gallery.cp-product-gallery .woocommerce-product-gallery__trigger{
	left:14px!important;
	right:auto!important;
}
body.single-product .elementor-element.elementor-element-9c7065b,
body.single-product .elementor-element.elementor-element-c1462b3{
	left:auto!important;
	right:12px!important;
	z-index:9;
}
@media(max-width:767px){
	.woocommerce-product-gallery.cp-product-gallery .woocommerce-product-gallery__trigger{
		left:12px!important;
		right:auto!important;
	}
	body.single-product .elementor-element.elementor-element-9c7065b,
	body.single-product .elementor-element.elementor-element-c1462b3{
		left:auto!important;
		right:12px!important;
	}
}

/* Product production estimate 2.8.0. */
.cp-presu-col-date{
	margin:-5px 0 10px;
	color:#6f7b79;
	font-size:.72rem;
	font-weight:400;
	line-height:1.3;
}
.cp-product-priority-fields .form-field strong{color:#354a48}

