document.addEventListener('DOMContentLoaded',()=>{
setTimeout(()=>{
initSplideSync();
},250);
})
function initSplideSync() {
const mainEl = document.querySelector('.splide-single-product__main');
const thumbsEl = document.querySelector('.splide-single-product__thumbnails');
if (!mainEl || !thumbsEl) return;
const mainId = mainEl.getAttribute('data-script-id');
const thumbsId = thumbsEl.getAttribute('data-script-id');
const mainSplide = window.bricksData.splideInstances[mainId];
const thumbsSplide = window.bricksData.splideInstances[thumbsId];
if (!mainSplide || !thumbsSplide) return;
// Add click listener on thumbnails
thumbsSplide.on('click', (slide) => {
const index = slide.index;
// Move main splide
mainSplide.go(index);
// Remove .is-active from all thumbnails
thumbsEl.querySelectorAll('.splide__slide').forEach(el => {
el.classList.remove('is-active');
});
// Add .is-active to clicked one
slide.slide.classList.add('is-active');
//Pause video instances
plyrPauseVideos();
});
//Change slide when variation changed
splideVariationChange(mainSplide);
}
function plyrPauseVideos(){
if (window.bricksData && window.bricksData.videoInstances) {
Object.values(window.bricksData.videoInstances).forEach(player => {
player.pause();
});
}
}
function splideVariationChange(splide) {
jQuery(function ($) {
$('form.variations_form').on('found_variation', function (event, variation) {
// 1. Get variation ID
const variationId = variation.variation_id;
if (!variationId) return;
// 2. Get the slides list that Splide actually uses (preserves Splide ordering)
const splideSlidesNodeList = splide.root.querySelectorAll('.splide__slide');
const splideSlides = Array.from(splideSlidesNodeList);
// 3. Find a slide matching data-variation-id or data-product-id (ignore clone slides)
const target = splideSlides.find(slide => {
// skip cloned slides (class name may vary by Splide configuration)
if (slide.classList.contains('is-clone') || slide.classList.contains('splide__slide--clone')) {
return false;
}
const vid = slide.getAttribute('data-variation-id') || slide.getAttribute('data-product-id');
return vid && String(vid) === String(variationId);
});
if (!target) return; // no matching slide found
// 4. Compute the index from Splide's slide list (non-clone index)
const nonCloneSlides = splideSlides.filter(s => !s.classList.contains('is-clone') && !s.classList.contains('splide__slide--clone'));
const index = nonCloneSlides.indexOf(target);
if (index >= 0) {
// 5. Move Splide to that index
splide.go(index);
}
});
});
}
Kutis Skincare
Este bálsamo labial de Kutis hidrata y está elaborado con ingredientes naturales y ecológicos, 100% respetuosos con el medio ambiente y con la piel. Está perfumado con aceite esencial de lima para un resultado satisfactorio. Cuida y protege tus labios con este bálsamo hidratante a base de manteca de karité y cera de abejas del que no querrás separarte.
Descripción5,95€
/* Estilos para el formulario Back In Stock Notifier */
.single-p-action-card__add-cart {
margin: 20px 0;
font-family: 'Montserrat', sans-serif;
}
.single-p-action-card__add-cart .col-md-12{padding:0px!important;}
.single-p-action-card__add-cart .cwginstock-subscribe-form {
background: none !important;
border: none !important;
padding: 0 !important;
margin: 0 !important;
box-shadow: none !important;
}
.single-p-action-card__add-cart .cwginstock-panel-primary {
background: none !important;
border: none !important;
box-shadow: none !important;
}
.single-p-action-card__add-cart .cwginstock-panel-heading {
background: none !important;
border: none !important;
padding: 0 0 20px 0 !important;
}
.single-p-action-card__add-cart .cwginstock-panel-heading h4 {
margin: 0 !important;
font-size: 14px !important;
font-weight: 700 !important;
color: #EE5E3D !important;
font-family: 'Montserrat', sans-serif !important;
letter-spacing: 1px !important;
text-align: center !important;
background: none !important;
}
.single-p-action-card__add-cart .cwginstock-panel-body {
background: none !important;
border: none !important;
padding: 0 !important;
}
/*Form wrapper*/
.cwginstock-subscribe-form .row{margin:0!important;}
.single-p-action-card__add-cart .form-group {
margin-bottom: 10px;
}
.single-p-action-card__add-cart .cwgstock_email {
width: 100%;
border: 2px solid #e9ecef;
border-radius: 12px;
font-family: 'Montserrat', sans-serif;
font-weight: 500;
text-align: center;
background-color: white;
transition: all 0.3s ease;
color: #495057;
margin-bottom:0px!important;
}
.single-p-action-card__add-cart .cwgstock_email::placeholder {
color: #6c757d;
font-family: 'Montserrat', sans-serif;
font-weight: 400;
}
.single-p-action-card__add-cart .cwgstock_email:focus {
outline: none;
border-color: #369e7e;
box-shadow: 0 0 0 3px rgba(54, 158, 126, 0.15);
background-color: #f8fffe;
}
.single-p-action-card__add-cart .cwgstock_button {
background-color: #369e7e;
color: white;
border: none;
padding: 12px 30px;
border-radius: 12px;
font-size: 15px;
font-weight: 700;
font-family: 'Montserrat', sans-serif;
cursor: pointer;
text-transform: uppercase;
letter-spacing: 1px;
transition: all 0.3s ease;
min-width: 180px;
box-shadow: 0 4px 12px rgba(54, 158, 126, 0.3);
}
.single-p-action-card__add-cart .cwgstock_button:hover:not(:disabled) {
background-color: #2d7d63;
transform: translateY(-3px);
box-shadow: 0 6px 20px rgba(54, 158, 126, 0.4);
}
.single-p-action-card__add-cart .cwgstock_button:active {
transform: translateY(-1px);
box-shadow: 0 2px 8px rgba(54, 158, 126, 0.3);
}
.single-p-action-card__add-cart .cwgstock_button:disabled {
background-color: #6c757d;
cursor: not-allowed;
transform: none;
box-shadow: none;
opacity: 0.7;
}
.single-p-action-card__add-cart .cwgstock_output {
margin-top: 20px;
text-align: center;
min-height: 24px;
font-family: 'Montserrat', sans-serif;
}
.single-p-action-card__add-cart .cwgstock_output .success {
color: #369e7e;
font-weight: 600;
font-size: 14px;
padding: 10px 15px;
background-color: #ebf5f2;
border-radius: 8px;
border: 1px solid #d1e7dd;
}
.single-p-action-card__add-cart .cwgstock_output .error {
color: #ee5e3d;
font-weight: 600;
font-size: 14px;
padding: 10px 15px;
background-color: rgba(238, 94, 61, 0.1);
border-radius: 8px;
border: 1px solid rgba(238, 94, 61, 0.2);
}
.single-p-action-card__add-cart .mt-12
/* Responsive para mobile-first */
@media (max-width: 768px) {
.single-p-action-card__add-cart .cwginstock-panel-heading h4 {
font-size: 16px;
letter-spacing: 0.8px;
}
.single-p-action-card__add-cart .cwgstock_email {
font-size: 14px; /* Evita zoom en iOS */
padding: 18px 20px;
border-radius: 10px;
}
.single-p-action-card__add-cart .cwgstock_button {
width: 100%;
padding: 15px 18px;
font-size: 15px;
border-radius: 10px;
min-width: auto;
}
.single-p-action-card__add-cart .form-group {
margin-bottom: 25px;
}
}
/* Estilos para pantallas muy pequeñas */
@media (max-width: 480px) {
.single-p-action-card__add-cart .cwginstock-panel-heading h4 {
font-size: 15px;
letter-spacing: 0.6px;
}
.single-p-action-card__add-cart .cwgstock_email {
padding: 16px 18px;
font-size: 16px;
}
.single-p-action-card__add-cart .cwgstock_button {
padding: 16px 18px;
font-size: 15px;
letter-spacing: 0.8px;
}
}
/* Eliminar TODOS los fondos azules del plugin Back In Stock Notifier */
.single-p-action-card__add-cart .panel-primary,
.single-p-action-card__add-cart .panel-primary > .panel-heading,
.single-p-action-card__add-cart .panel-primary > .panel-body,
.single-p-action-card__add-cart .cwginstock-panel-primary,
.single-p-action-card__add-cart .cwginstock-panel-heading,
.single-p-action-card__add-cart .cwginstock-panel-body,
.single-p-action-card__add-cart .cwginstock-subscribe-form,
.single-p-action-card__add-cart .cwginstock-0outofstock {
background: none !important;
background-color: transparent !important;
background-image: none !important;
border: none !important;
box-shadow: none !important;
}
/* Eliminar cualquier clase Bootstrap que pueda estar causando el fondo azul */
.single-p-action-card__add-cart .panel-primary,
.single-p-action-card__add-cart .panel-primary > .panel-heading {
background-color: transparent !important;
border-color: transparent !important;
}
/* Asegurar que no haya colores de fondo heredados
.single-p-action-card__add-cart * {
background-color: transparent !important;
}*/
/* Solo permitir fondo blanco en elementos específicos */
.single-p-action-card__add-cart .cwgstock_email {
background-color: white !important;
}
.single-p-action-card__add-cart .cwgstock_button {
background-color: #369e7e !important;
}
403 Forbidden
Forbidden
You don't have permission to access this resource.
Cómpralo ahora y recíbelo entre el Viernes 15/05 y el Lunes 18/05
/*Low Stock*/
.text-stock[data-stock="low-stock"]{
color: var(--text-cl-low-stock) !important;
}
.bg-stock[data-stock="low-stock"]:not(form *){
background: var(--bg-cl-low-stock);
}
.border-stock[data-stock="low-stock"]:not(form *){
border-color: #ffc107 !important;
}
/* No Stock */
[data-stock="out-stock"]:not(form *){
color: #ee5e3d !important;
}
[data-stock="out-stock"] .woocommerce-Price-amount{
color:#0f4f45;
}
.bg-stock[data-stock="out-stock"]:not(form *){
background: rgba(238, 94, 61, 0.24) !important;
}
.border-stock[data-stock="out-stock"]:not(form *){
border-color: #ee5e3d !important;
}
.single-p-action-card[data-stock="out-stock"] .woocommerce-variation-add-to-cart{display:none !important;}
jQuery(function ($) {
$('form.variations_form').on('found_variation', function (event, variation) {
// Prevent recursion loop
if ($(this).data('syncing')) return;
$(this).data('syncing', true);
const attributes = variation.attributes || {};
const stockQty = variation.max_qty;
const isInStock = variation.is_in_stock;
// Stock status logic
document.querySelector('.single-p-action-card__add-cart .quantity').style.display = 'flex';
document.querySelector('.single-p-action-card__add-cart .quantity input.input-text').setAttribute("type", "")
if (!isInStock || stockQty === 0) {
console.log('no-stock');
} else if (stockQty < 10) {
console.log('low-stock');
} else if (stockQty >= 10) {
console.log('in-stock');
}
console.log('Stock Quantity:', stockQty);
console.log('Is in stock:', isInStock);
console.log(variation);
// Update UI
$('.single-p__price').html(variation.custom_price_html);
$('.single-p-action-card__stock').text(variation.custom_stock_message);
$('[data-stock]').attr('data-stock', variation.custom_stock_status);
// --- Sync with other variation components ---
Object.values(attributes).forEach((value) => {
// Find all elements with matching data-term
const $matchingNodes = $(`[data-term="${value}"]`);
// Click them only if they’re not already active
$matchingNodes.each(function () {
$(this).click();
});
});
$(this).data('syncing', false);
});
// Separate handler to avoid recursion
$(document).on('sync-click', '[data-term]', function () {
// Your normal click logic here
$(this).addClass('active').siblings().removeClass('active');
console.log('Synced variation:', $(this).data('term'));
});
});
/*Variations Input Fix to preserve type="number"*/
jQuery(function ($) {
$('form.variations_form').on('found_variation reset_data', function () {
$(this).find('input[name="quantity"]').attr('type', 'number');
});
});jQuery(function($) {
$(document).on('submit', 'form.cart', function(e) {
e.preventDefault();
var $form = $(this);
var data = $form.serializeArray();
// Check if it's a simple product (no variation_id)
if (!$form.find('input[name="variation_id"]').length) {
// Ensure add-to-cart is included
if (!$form.find('input[name="add-to-cart"]').length) {
data.push({
name: 'add-to-cart',
value: $form.find('button[type="submit"]').val()
});
}
}
$.post($form.attr('action'), $.param(data), function(response) {
if (response.error && response.product_url) {
window.location = response.product_url;
return;
}
// Trigger WooCommerce's fragment update
$(document.body).trigger('added_to_cart', [response.fragments, response.cart_hash, $form]);
});
});
// Open mini cart when an item is added
$(document.body).on('added_to_cart', function() {
$('.mini-cart-link').trigger('click');
});
});
Envío gratis a partir de 50€
Devoluciones hasta 30 días
Descripción del bálsamo para labios de Kutis
- Está formulado con ingredientes naturales, ecológicos, sin conservantes ni colorantes
- Es de comercio justo y respetuoso con el medio ambiente
- Está perfumado con aceite esencial de lima
- Hidrata y protege los labios
- Cura y previene los labios secos y agrietados
- Se presenta en una caja metálica con tapa deslizante
- 8 g
Ingredientes del bálsamo labial de lima
Aceite de semillas de girasol**, manteca de karité**, cera de abejas**, aceite esencial de lima.
** Ingredientes orgánicos
- Aceite de semillas de girasol: El aceite de girasol es un hidratante natural especialmente indicado para cuidar esta delicada parte del rostro como son los labios. Al ser rico en vitamina E, protege de la radiación solar y brinda una mayor suavidad a los labios.
- Manteca de karité: Las nueces son la materia prima de la manteca de karité, una joya de la naturaleza rica en ácidos grasos que protege los labios de los agentes externos. Es muy nutritiva e ideal para tratar la sequedad de los labios.
- Cera de abejas: La cera de abejas tiene una asombrosa capacidad para hidratar los labios, creando una capa protectora que evita la pérdida de agua. Es rica en vitamina A y en antioxidantes.
- Aceite esencial de lima: Este aceite esencial tiene propiedades antisépticas, bactericidas y reconstituyentes. Es astringente y de agradable aroma.
Embalaje
El bálsamo labial de lima se presenta en una caja de metal con tapa deslizante para una aplicación mucho más sencilla.
Leer Másdocument.addEventListener('DOMContentLoaded', () => {
const content = document.querySelector('.single-p-post-content');
const button = document.getElementById('read-more');
if (!content || !button) return;
// Check if content is shorter than visible height
setTimeout(() => {
if (content.scrollHeight <= content.clientHeight) {
button.style.display = 'none';
}
}, 50);
// Toggle expand/collapse
button.addEventListener('click', () => {
content.classList.toggle('expanded');
if (content.classList.contains('expanded')) {
button.textContent = 'Leer menos';
} else {
button.textContent = 'Leer más';
}
});
});Información adicional
Peso: 0,030 kg
Dimensiones: 13 × 2 × 13 cm
INCIO: Calcium Carbonate, Kaolin, Sodium Cocoyl Glutamate, Xylitol, Mentha piperita Oil*, Melaleuca Alternifolia Leaf Oil*, Salvia officinalis Leaf Extract, Thymus vulgaris Flower/Leaf Extract*, Sodium Chloride, Aqua, Glycerin, Potassium Sorbate, Sodium Benzoate, Limonene. *Procedente de agricultura ecológica.
#reviews ol.commentlist{
display:grid!important;
grid-template-columns:1fr;
gap:2rem;
li{
background: #FAF9F7;
border-radius:10px;
padding:2rem !important;
margin-bottom:0px !important;
.comment_container{
img{display:none;}
border:none;
.cr-comment-text{
width:100% !important;
margin-left:0px;
border-bottom:none!important;
padding-bottom:0px;
.meta{
time.woocommerce-review__published-date{
padding-right:0rem;
}
}
.description{
border-bottom:none !important;
padding-bottom:0px!important;
}
}
}
}
}//Handle Anchor
document.querySelector(".cr-ajax-reviews-add-review").addEventListener("click", () => {
document.querySelector(".cr-ajax-reviews-review-form").style.display = "block";
document.querySelector("#open-review").click();
// Remove anchor from URL after it is added
setTimeout(() => {
if (window.location.hash) {
history.replaceState(
null,
document.title,
window.location.pathname + window.location.search
);
}
}, 0);
});
//Handle not logged user and open login modal
document.addEventListener('DOMContentLoaded', () => {
// Select the node to check
const reviewFormNotLoggedIn = document.querySelector('.cr-review-form-not-logged-in');
if (reviewFormNotLoggedIn) {
const loginModal = 125392;
// Create the button
const continueButton = document.createElement('button');
continueButton.className = 'cr-review-form-continue';
continueButton.textContent = 'Ver mas';
continueButton.setAttribute('onclick', `bricksOpenPopup(${loginModal})`);
// Append the button to the first node
reviewFormNotLoggedIn.insertAdjacentElement('beforeend', continueButton);
// Optional: select all links with this class and hide them too
document.querySelector('a.cr-review-form-continue').style.display = "none";
}
});
PRODUCTOS RELACIONADOS
9,90€ El precio original era: 9,90€.9,10€El precio actual es: 9,10€.
7,90€ El precio original era: 7,90€.7,11€El precio actual es: 7,11€.
5,35€ El precio original era: 5,35€.4,99€El precio actual es: 4,99€.
9,90€ El precio original era: 9,90€.9,01€El precio actual es: 9,01€.
17,95€ El precio original era: 17,95€.16,99€El precio actual es: 16,99€.
#add-to-cart-main{
.bundle_sells_title h3{
font-weight:600;
margin-bottom:1rem;
font-size:22px;
}
.bundle_form.bundle_sells_form{
/*text*/
.details{
h4.bundled_product_title{
font-weight:500;
}
.bundled_product_excerpt{
p:not(:first-child){
display:none;
}
}
}
}
}document.addEventListener("DOMContentLoaded", () => {
const container = document.querySelector("#add-to-cart-main");
if (!container) return;
// Select all checkboxes inside #add-to-cart-main
const mainCheckboxes = container.querySelectorAll(
'input.bundled_product_checkbox[type="checkbox"]'
);
mainCheckboxes.forEach((checkbox) => {
checkbox.addEventListener("change", (e) => {
const { name, checked } = e.target;
// Select ALL checkboxes on the page with same name
const allSameName = document.querySelectorAll(
`div:not(#add-to-cart-main) input.bundled_product_checkbox[name="${name}"]`
);
allSameName.forEach((cb) => {
cb.checked = checked;
// Trigger change event if needed
cb.dispatchEvent(new Event("change", { bubbles: true }));
});
});
});
});
Muy bueno
Había probado el de vainilla y son geniales, hidratan mucho y dejan los labios suaves. Este un poco más cítrico.
Me encanta el olor. Deja los labios muy hidratados. Llevo 2 meses usándolo y aun queda más de la mitad del envase.
Muy buen producto. Llevo unos días usándolo y me noto los labios más hidratados y con más volumen. A mi siempre se me han agrietado mucho y he probado demasiados bálsamos que no servían de nada… ¡Pero este sí! Pensé que el aroma de lima no me iba a gustar pero es muy sutil, la textura es muy agradable y la cajita súper práctica.
Hidrata muy bien y tiene un olor riquísimo. Envase muy cómodo para llevar en el bolsillo