@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap');
/*!
 * animate.css -http://daneden.me/animate
 * Version - 3.5.1
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2016 Daniel Eden
 */

.ets_wa_title{
  display: none !important;
}

.payment-detail{
  display: none !important;
}

@media (min-width: 960px){

  .revi-container {
      max-width: 100% !important;
  }

}


.js-product-miniature .product_desc .product_name
{
  text-align: center;
}

.product-price-and-shipping{
  text-align: center;
}

#home1 {
    width: 195px;
    padding-left: 10px;
    padding-top: 10px;
}
 #home2{
  width: 100px;
  margin-top: 10px;
 }
 #home2 img{
  max-width: 100px;
  margin-top: -5px;
 }

#home3{
  width: 400px;
}
.contact-img2{
float: left;
}

.contact-content2{
    margin-left: 45px;
    margin-top: 5px;
    color: #ffffff;
}



.main-menu .pos-menu-horizontal .menu-content .menu-item > a
{
  margin-left: 1.175rem;
}
 .category-image img{
  max-height: 300px;
 }
/*
 .product-flag .on-sale{
  display: none !important;
 }
*/
.buy .buy-now{
  display: none;
}

.product-actions .add-to-cart {
    background-color: #4FB68D !important;
    color: #ffffff;
    border-color: #4FB68D !important;
}

.main-menu .pos-menu-horizontal .menu-content .menu-item .menu-dropdown .pos-menu-row{
margin-bottom: 0.5rem;
}

.main-menu .pos-menu-horizontal .menu-content .menu-item .menu-dropdown .pos-sub-inner{
padding: 0.5rem 1rem 0.5rem 1rem;
}

 .main-menu .pos-menu-horizontal .menu-content .menu-item .menu-dropdown .column_title{
  font-size: 0.8rem;
  white-space: nowrap;
 }

.box-contact{
    background-color: rgba(0,0,0,0.04);
    padding: 5px 15px;
    border: 1px solid rgba(0,0,0,0.07);
    font-size: 13px;
    line-height: 18px;
    margin-left: 8px;
    color: #7f7d74;
}

#payment-icons {
    margin-bottom: 0px;
    overflow: hidden;
    margin-top: 30px;
    margin-left: 15px;
}

#payment-icons li {
    padding: 0;
    float: left;
    margin-right: 10px;
}

/*************HOME*************/
.home h4 {
    color: #686765 !important;
    margin: 0 !important;
    font-size: 40px;
    line-height: 50px !important;
    margin-bottom: 15px !important;
}

.home .message-text {
    font-size: 23px;
    line-height: 30px;
    color: #6d6c67;
}


.home .message-text:after {
    content: '';
    width: 38px;
    height: 4px;
    background: var(--hovercolor);
    margin: 20px auto 20px;
    display: block;
}

.home h1 {
    color: #444645 !important;
    /* font-family: Oswald; */
    border-left: #4FB68D solid 4px;
    font-size: 42px;
    line-height: 42px !important;
    border-left-style: solid;
    order-left-width: 4px;
    padding-left: 9px !important;
    margin-bottom: 16px !important;
    margin-top: 9px !important;
}

.home h2 {
    margin-top: 0px !important;
    font-size: 17px !important;
    line-height: 17px;
    color: #999 !important;
    display: inline-block;
    margin-bottom: 20px !important;
}

.js-product-miniature.style_product1 div.cart button.ajax_add_to_cart_button, .js-product-miniature.style_product1 div.cart span.ajax_add_to_cart_button
{
  background: #4FB68D !important;
}

.cat_desc
{
padding: 110px 20px 20px 0px;
}

.p_tilte_big2{
  padding: 0px;
  margin-bottom: 0px;
}

#category_description_short, #category_description_full {
    padding: 0 20px 20px 20px;
    color: #737373;
}

#category_description_short{
text-align: left;
}

#category_description_short h1{
  font-size: 33px;
}

.cover-item{
  text-align: center;
}

@media (max-width: 720px){

.home h4{
  font-size: 28px;
}
.category-image img{
  display: none;
 }

#category_description_short, #category_description_full{
  padding: 20px 0 10px 0;
}
  #category_description_short h1{
    font-size: 26px;
  }

.cat_desc{
  padding: 0px;
}
.account-login span{
  display: none;
}

.quickmenu-mobile-wrapper{
  display: none;
}

}

.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.animated.infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite; }

.animated.hinge {
  -webkit-animation-duration: 2s;
  animation-duration: 2s; }

.animated.flipOutX,
.animated.flipOutY,
.animated.bounceIn,
.animated.bounceOut {
  -webkit-animation-duration: .75s;
  animation-duration: .75s; }

@-webkit-keyframes bounce {
  from, 20%, 53%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0); }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0); }
  90% {
    -webkit-transform: translate3d(0, -4px, 0);
    transform: translate3d(0, -4px, 0); } }
@keyframes bounce {
  from, 20%, 53%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0); }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0); }
  90% {
    -webkit-transform: translate3d(0, -4px, 0);
    transform: translate3d(0, -4px, 0); } }
.bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom; }

@-webkit-keyframes flash {
  from, 50%, to {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }
@keyframes flash {
  from, 50%, to {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }
.flash {
  -webkit-animation-name: flash;
  animation-name: flash; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  50% {
    -webkit-transform: scale3d(1.15, 1.15, 1.15);
    transform: scale3d(1.15, 1.15, 1.15); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
@keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  50% {
    -webkit-transform: scale3d(1.15, 1.15, 1.15);
    transform: scale3d(1.15, 1.15, 1.15); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
.pulse {
  -webkit-animation-name: pulse;
  animation-name: pulse; }

@-webkit-keyframes rubberBand {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1); }
  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1); }
  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1); }
  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1); }
  75% {
    -webkit-transform: scale3d(1.05, 0.95, 1);
    transform: scale3d(1.05, 0.95, 1); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
@keyframes rubberBand {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1); }
  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1); }
  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1); }
  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1); }
  75% {
    -webkit-transform: scale3d(1.05, 0.95, 1);
    transform: scale3d(1.05, 0.95, 1); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
.rubberBand {
  -webkit-animation-name: rubberBand;
  animation-name: rubberBand; }

@-webkit-keyframes shake {
  from, to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); } }
@keyframes shake {
  from, to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); } }
.shake {
  -webkit-animation-name: shake;
  animation-name: shake; }

@-webkit-keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg); }
  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg); }
  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg); }
  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg); }
  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0); } }
@keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg); }
  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg); }
  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg); }
  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg); }
  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0); } }
.headShake {
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-name: headShake;
  animation-name: headShake; }

@-webkit-keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg); }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg); } }
@keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg); }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg); } }
.swing {
  -webkit-transform-origin: top center;
  transform-origin: top center;
  -webkit-animation-name: swing;
  animation-name: swing; }

@-webkit-keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
@keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
.tada {
  -webkit-animation-name: tada;
  animation-name: tada; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes wobble {
  from {
    -webkit-transform: none;
    transform: none; }
  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
  to {
    -webkit-transform: none;
    transform: none; } }
@keyframes wobble {
  from {
    -webkit-transform: none;
    transform: none; }
  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
  to {
    -webkit-transform: none;
    transform: none; } }
.wobble {
  -webkit-animation-name: wobble;
  animation-name: wobble; }

@-webkit-keyframes jello {
  from, 11.1%, to {
    -webkit-transform: none;
    transform: none; }
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg); }
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg); }
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg); }
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg); }
  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg); }
  77.7% {
    -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
    transform: skewX(0.390625deg) skewY(0.390625deg); }
  88.8% {
    -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg); } }
@keyframes jello {
  from, 11.1%, to {
    -webkit-transform: none;
    transform: none; }
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg); }
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg); }
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg); }
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg); }
  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg); }
  77.7% {
    -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
    transform: skewX(0.390625deg) skewY(0.390625deg); }
  88.8% {
    -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg); } }
.jello {
  -webkit-animation-name: jello;
  animation-name: jello;
  -webkit-transform-origin: center;
  transform-origin: center; }

@-webkit-keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03); }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97); }
  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
@keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03); }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97); }
  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
.bounceIn {
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn; }

@-webkit-keyframes bounceInDown {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0); }
  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }
@keyframes bounceInDown {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0); }
  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }
.bounceInDown {
  -webkit-animation-name: bounceInDown;
  animation-name: bounceInDown; }

@-webkit-keyframes bounceInLeft {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }
@keyframes bounceInLeft {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }
.bounceInLeft {
  -webkit-animation-name: bounceInLeft;
  animation-name: bounceInLeft; }

@-webkit-keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }
@keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }
.bounceInRight {
  -webkit-animation-name: bounceInRight;
  animation-name: bounceInRight; }

@-webkit-keyframes bounceInUp {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0); }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
@keyframes bounceInUp {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0); }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
.bounceInUp {
  -webkit-animation-name: bounceInUp;
  animation-name: bounceInUp; }

@-webkit-keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  50%, 55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); } }
@keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  50%, 55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); } }
.bounceOut {
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut; }

@-webkit-keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }
@keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }
.bounceOutDown {
  -webkit-animation-name: bounceOutDown;
  animation-name: bounceOutDown; }

@-webkit-keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }
@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }
.bounceOutLeft {
  -webkit-animation-name: bounceOutLeft;
  animation-name: bounceOutLeft; }

@-webkit-keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }
@keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }
.bounceOutRight {
  -webkit-animation-name: bounceOutRight;
  animation-name: bounceOutRight; }

@-webkit-keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }
@keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }
.bounceOutUp {
  -webkit-animation-name: bounceOutUp;
  animation-name: bounceOutUp; }

@-webkit-keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn; }

@-webkit-keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -150%, 0);
    transform: translate3d(0, -150%, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -150%, 0);
    transform: translate3d(0, -150%, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown; }

@-webkit-keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInDownBig {
  -webkit-animation-name: fadeInDownBig;
  animation-name: fadeInDownBig; }

@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-10%, 0, 0);
    transform: translate3d(-10%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-10%, 0, 0);
    transform: translate3d(-10%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft; }

@-webkit-keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInLeftBig {
  -webkit-animation-name: fadeInLeftBig;
  animation-name: fadeInLeftBig; }

@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(10%, 0, 0);
    transform: translate3d(10%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(10%, 0, 0);
    transform: translate3d(10%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight; }

@-webkit-keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInRightBig {
  -webkit-animation-name: fadeInRightBig;
  animation-name: fadeInRightBig; }

@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 150%, 0);
    transform: translate3d(0, 150%, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 150%, 0);
    transform: translate3d(0, 150%, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp; }

@-webkit-keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInUpBig {
  -webkit-animation-name: fadeInUpBig;
  animation-name: fadeInUpBig; }

@-webkit-keyframes fadeOut {
  from {
    opacity: 1; }
  to {
    opacity: 0; } }
@keyframes fadeOut {
  from {
    opacity: 1; }
  to {
    opacity: 0; } }
.fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut; }

@-webkit-keyframes fadeOutDown {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }
@keyframes fadeOutDown {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }
.fadeOutDown {
  -webkit-animation-name: fadeOutDown;
  animation-name: fadeOutDown; }

@-webkit-keyframes fadeOutDownBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }
@keyframes fadeOutDownBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }
.fadeOutDownBig {
  -webkit-animation-name: fadeOutDownBig;
  animation-name: fadeOutDownBig; }

@-webkit-keyframes fadeOutLeft {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }
@keyframes fadeOutLeft {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }
.fadeOutLeft {
  -webkit-animation-name: fadeOutLeft;
  animation-name: fadeOutLeft; }

@-webkit-keyframes fadeOutLeftBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }
@keyframes fadeOutLeftBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }
.fadeOutLeftBig {
  -webkit-animation-name: fadeOutLeftBig;
  animation-name: fadeOutLeftBig; }

@-webkit-keyframes fadeOutRight {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }
@keyframes fadeOutRight {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }
.fadeOutRight {
  -webkit-animation-name: fadeOutRight;
  animation-name: fadeOutRight; }

@-webkit-keyframes fadeOutRightBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }
@keyframes fadeOutRightBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }
.fadeOutRightBig {
  -webkit-animation-name: fadeOutRightBig;
  animation-name: fadeOutRightBig; }

@-webkit-keyframes fadeOutUp {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }
@keyframes fadeOutUp {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }
.fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp; }

@-webkit-keyframes fadeOutUpBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }
@keyframes fadeOutUpBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }
.fadeOutUpBig {
  -webkit-animation-name: fadeOutUpBig;
  animation-name: fadeOutUpBig; }

@-webkit-keyframes flip {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; } }
@keyframes flip {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; } }
.animated.flip {
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  -webkit-animation-name: flip;
  animation-name: flip; }

@-webkit-keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }
@keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }
.flipInX {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInX;
  animation-name: flipInX; }

@-webkit-keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }
@keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }
.flipInY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInY;
  animation-name: flipInY; }

@-webkit-keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1; }
  to {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0; } }
@keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1; }
  to {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0; } }
.flipOutX {
  -webkit-animation-name: flipOutX;
  animation-name: flipOutX;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important; }

@-webkit-keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1; }
  to {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0; } }
@keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1; }
  to {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0; } }
.flipOutY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipOutY;
  animation-name: flipOutY; }

@-webkit-keyframes lightSpeedIn {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1; }
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
    opacity: 1; }
  to {
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
@keyframes lightSpeedIn {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1; }
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
    opacity: 1; }
  to {
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
.lightSpeedIn {
  -webkit-animation-name: lightSpeedIn;
  animation-name: lightSpeedIn;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out; }

@-webkit-keyframes lightSpeedOut {
  from {
    opacity: 1; }
  to {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0; } }
@keyframes lightSpeedOut {
  from {
    opacity: 1; }
  to {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0; } }
.lightSpeedOut {
  -webkit-animation-name: lightSpeedOut;
  animation-name: lightSpeedOut;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in; }

@-webkit-keyframes rotateIn {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
@keyframes rotateIn {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
.rotateIn {
  -webkit-animation-name: rotateIn;
  animation-name: rotateIn; }

@-webkit-keyframes rotateInDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
@keyframes rotateInDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
.rotateInDownLeft {
  -webkit-animation-name: rotateInDownLeft;
  animation-name: rotateInDownLeft; }

@-webkit-keyframes rotateInDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
@keyframes rotateInDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
.rotateInDownRight {
  -webkit-animation-name: rotateInDownRight;
  animation-name: rotateInDownRight; }

@-webkit-keyframes rotateInUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
@keyframes rotateInUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
.rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft; }

@-webkit-keyframes rotateInUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
@keyframes rotateInUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
.rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight; }

@-webkit-keyframes rotateOut {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1; }
  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0; } }
@keyframes rotateOut {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1; }
  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0; } }
.rotateOut {
  -webkit-animation-name: rotateOut;
  animation-name: rotateOut; }

@-webkit-keyframes rotateOutDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; } }
@keyframes rotateOutDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; } }
.rotateOutDownLeft {
  -webkit-animation-name: rotateOutDownLeft;
  animation-name: rotateOutDownLeft; }

@-webkit-keyframes rotateOutDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }
@keyframes rotateOutDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }
.rotateOutDownRight {
  -webkit-animation-name: rotateOutDownRight;
  animation-name: rotateOutDownRight; }

@-webkit-keyframes rotateOutUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }
@keyframes rotateOutUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }
.rotateOutUpLeft {
  -webkit-animation-name: rotateOutUpLeft;
  animation-name: rotateOutUpLeft; }

@-webkit-keyframes rotateOutUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0; } }
@keyframes rotateOutUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0; } }
.rotateOutUpRight {
  -webkit-animation-name: rotateOutUpRight;
  animation-name: rotateOutUpRight; }

@-webkit-keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  20%, 60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  40%, 80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1; }
  to {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0; } }
@keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  20%, 60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  40%, 80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1; }
  to {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0; } }
.hinge {
  -webkit-animation-name: hinge;
  animation-name: hinge; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.rollIn {
  -webkit-animation-name: rollIn;
  animation-name: rollIn; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollOut {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }
@keyframes rollOut {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }
.rollOut {
  -webkit-animation-name: rollOut;
  animation-name: rollOut; }

@-webkit-keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  50% {
    opacity: 1; } }
@keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  50% {
    opacity: 1; } }
.zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn; }

@-webkit-keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomInDown {
  -webkit-animation-name: zoomInDown;
  animation-name: zoomInDown; }

@-webkit-keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomInLeft {
  -webkit-animation-name: zoomInLeft;
  animation-name: zoomInLeft; }

@-webkit-keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomInRight {
  -webkit-animation-name: zoomInRight;
  animation-name: zoomInRight; }

@-webkit-keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomInUp {
  -webkit-animation-name: zoomInUp;
  animation-name: zoomInUp; }

@-webkit-keyframes zoomOut {
  from {
    opacity: 1; }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  to {
    opacity: 0; } }
@keyframes zoomOut {
  from {
    opacity: 1; }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  to {
    opacity: 0; } }
.zoomOut {
  -webkit-animation-name: zoomOut;
  animation-name: zoomOut; }

@-webkit-keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomOutDown {
  -webkit-animation-name: zoomOutDown;
  animation-name: zoomOutDown; }

@-webkit-keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center; } }
@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center; } }
.zoomOutLeft {
  -webkit-animation-name: zoomOutLeft;
  animation-name: zoomOutLeft; }

@-webkit-keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center; } }
@keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center; } }
.zoomOutRight {
  -webkit-animation-name: zoomOutRight;
  animation-name: zoomOutRight; }

@-webkit-keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomOutUp {
  -webkit-animation-name: zoomOutUp;
  animation-name: zoomOutUp; }

@-webkit-keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
@keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
.slideInDown {
  -webkit-animation-name: slideInDown;
  animation-name: slideInDown; }

@-webkit-keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
@keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
.slideInLeft {
  -webkit-animation-name: slideInLeft;
  animation-name: slideInLeft; }

@-webkit-keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
@keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
.slideInRight {
  -webkit-animation-name: slideInRight;
  animation-name: slideInRight; }

@-webkit-keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
@keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
.slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp; }

@-webkit-keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }
@keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }
.slideOutDown {
  -webkit-animation-name: slideOutDown;
  animation-name: slideOutDown; }

@-webkit-keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }
@keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }
.slideOutLeft {
  -webkit-animation-name: slideOutLeft;
  animation-name: slideOutLeft; }

@-webkit-keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }
@keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }
.slideOutRight {
  -webkit-animation-name: slideOutRight;
  animation-name: slideOutRight; }

@-webkit-keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }
@keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }
.slideOutUp {
  -webkit-animation-name: slideOutUp;
  animation-name: slideOutUp; }

/**/
@-webkit-keyframes blurFadeIn {
  0% {
    opacity: 0;
    transform: scale(1.3); }
  50% {
    opacity: 0.5; }
  100% {
    opacity: 1;
    transform: scale(1); } }
@keyframes blurFadeIn {
  0% {
    opacity: 0;
    transform: scale(1.3); }
  50% {
    opacity: 0.5; }
  100% {
    opacity: 1;
    transform: scale(1); } }
.blurFadeIn {
  -webkit-animation-name: blurFadeIn;
  animation-name: blurFadeIn; }

@-webkit-keyframes blurFadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-10px);
    -moz-transform: translateY(-10px);
    -ms-transform: translateY(-10px);
    -o-transform: translateY(-10px);
    transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); } }
@keyframes blurFadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-10px);
    -moz-transform: translateY(-10px);
    -ms-transform: translateY(-10px);
    -o-transform: translateY(-10px);
    transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); } }
.blurFadeInDown {
  -webkit-animation-name: blurFadeInDown;
  animation-name: blurFadeInDown; }

@-webkit-keyframes passing {
  0% {
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    opacity: 0; }
  50% {
    -webkit-transform: translateX(0%);
    transform: translateX(0%);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(50%);
    transform: translateX(50%);
    opacity: 0; } }
@keyframes passing {
  0% {
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    opacity: 0; }
  50% {
    -webkit-transform: translateX(0%);
    -ms-transform: translateX(0%);
    transform: translateX(0%);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(50%);
    -ms-transform: translateX(50%);
    transform: translateX(50%);
    opacity: 0; } }
@-webkit-keyframes passing-reverse {
  0% {
    -webkit-transform: translateX(50%);
    transform: translateX(50%);
    opacity: 0; }
  50% {
    -webkit-transform: translateX(0%);
    transform: translateX(0%);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    opacity: 0; } }
@keyframes passing-reverse {
  0% {
    -webkit-transform: translateX(50%);
    -ms-transform: translateX(50%);
    transform: translateX(50%);
    opacity: 0; }
  50% {
    -webkit-transform: translateX(0%);
    -ms-transform: translateX(0%);
    transform: translateX(0%);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    opacity: 0; } }
@keyframes jackInTheBox {
  from {
    opacity: 0;
    transform: scale(0.1) rotate(30deg);
    transform-origin: center bottom; }
  50% {
    transform: rotate(-10deg); }
  70% {
    transform: rotate(3deg); }
  to {
    opacity: 1;
    transform: scale(1); } }
.jackInTheBox {
  animation-name: jackInTheBox; }

.contact-display-1-row .title-contact{
  display: inline;
}
@media (max-width: 1600px) and (min-width: 1024px){
  .banner-left{
    max-width: 52%;
  }
  .banner-right{
    max-width: 46%;
  }
}
.med-bestsale .product-miniature{
  border-bottom: none;
  border-left: none;
  border-right: none;
  padding-left: 0;
  padding-right: 0;
  margin: 0 20px !important;
}
.med-bestsale .product-miniature:hover{
  border-color: #ebebeb;
}
.med-bestsale .pos-product-widget .slick-arrow{
  top: -2.957rem !important;
}
.med-bestsale .pos-product-widget .slick-next{
  right: 1rem !important;
}
.med-bestsale .pos-product-widget .slick-prev{
  right: 3.5rem !important;
}
.toy-bestsale .product-miniature{
  border-bottom: none;
  border-left: none;
  border-right: none;
  padding-left: 0;
  padding-right: 0;
  margin: 0 20px;
  border-radius:0;
}
.toy-bestsale .product-miniature:hover{
  border-color: #ebebeb;
}
.toy-bestsale .pos-product-widget .slick-slide > *:not(:last-child) {
    margin-bottom: 0;
}
.toy-bestsale .pos-product-widget .slick-next{
  right: 1rem !important;
}
.toy-bestsale .pos-product-widget .slick-prev{
  right: 3.5rem !important;
}
/*# sourceMappingURL=animate.css.map */

.list-bigger-image .style_product_list .img_block{
  max-width: 170px;
}

.has-section-inner .elementor-widget-wrap{
  display: block !important;
}
.elementor-widget-wrap > section{
  width: 100% !important;
}
.elementor-editor-active .elementor.elementor-edit-mode .elementor-top-column .elementor-widget-wrap .elementor-inner-section{
  margin-top: 0;
}

/* ============================================================
   SL-UPGRADE-BUNDLE · Flores Nuevas (Singularity)
   CSS unificado, deduplicado y sin conflictos.
   APPEND al final de themes/theme_ecolife/assets/css/custom.css
   (carga DESPUES de theme.css; CCC off en staging).
   Orden: 0) fuentes · 1) tokens :root unicos · 2) tipografia ·
   3) header+topbar · 4) buscador · 5) brand-accent/enlaces/foco ·
   6) hero · 7) trust strip · 8) tarjetas grid · 9) badges ·
   10) reviews · 11) categoria · 12) ficha (PDP) · 13) urgencia ·
   14) carrito vacio · 15) sticky buy bar movil · 16) footer ·
   17) CTAs/botones (vencen al verde #4cbb6c) · 18) responsive movil.
   Verde #4cbb6c degradado a senal funcional (eco/24h/stock).
   ============================================================ */

/* ---------- 0. FUENTES (fallback @import si no se uso <link> en head) ---------- */


/* ---------- 1. DESIGN TOKENS (bloque unico) ---------- */
:root{
  --sl-accent:#c0395b;
  --sl-accent-hover:#9c2c49;
  --sl-accent-soft:#fbeef2;
  --sl-accent-ring:rgba(192,57,91,.30);

  --sl-ink:#23242a;
  --sl-ink-2:#5b5d66;
  --sl-muted:#8a8c95;
  --sl-line:#ece8e4;
  --sl-bg:#ffffff;
  --sl-cream:#faf7f3;

  --sl-eco:#4cbb6c;
  --sl-leaf:#5b7a5e;
  --sl-star:#f5a623;
  --sl-success:#2e7d4f;
  --sl-danger:#c0392b;

  --sl-font-head:"Fraunces","Playfair Display",Georgia,"Times New Roman",serif;
  --sl-font-body:"Inter","Helvetica Neue",Arial,system-ui,sans-serif;

  --fs-display:clamp(2.2rem,4.5vw,3.5rem);
  --fs-h2:clamp(1.6rem,3vw,2.25rem);
  --fs-h3:1.375rem;
  --fs-lead:1.125rem;
  --fs-body:1rem;
  --fs-sm:.875rem;
  --fs-xs:.75rem;
  --lh-tight:1.15; --lh-snug:1.3; --lh-body:1.6;

  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-6:24px;
  --sp-8:32px; --sp-10:40px; --sp-12:48px; --sp-16:64px; --sp-20:80px; --sp-24:96px;

  --r-sm:8px; --r-md:14px; --r-lg:20px; --r-pill:999px;

  --sh-card:0 1px 2px rgba(35,36,42,.04),0 8px 24px rgba(35,36,42,.06);
  --sh-card-hover:0 4px 12px rgba(35,36,42,.08),0 18px 40px rgba(192,57,91,.10);
  --sh-cta:0 6px 18px rgba(192,57,91,.28);

  --t-base:200ms ease;

  --sl-container:1200px;
  --sl-container-narrow:760px;
  --sl-section-y:var(--sp-20);
  --sl-section-y-m:var(--sp-12);
  --sl-head-gap:var(--sp-10);
}

/* ---------- 2. TIPOGRAFIA ---------- */
html body,
html body p, html body li, html body a, html body span,
html body input, html body button, html body select, html body textarea,
html body .text, html body #wrapper, html body #main{
  font-family:var(--sl-font-body) !important;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
html body{
  font-size:var(--fs-body) !important;
  line-height:var(--lh-body) !important;
  color:var(--sl-ink) !important;
  letter-spacing:0;
}
html body h1, html body h2, html body h3,
html body h4, html body h5, html body h6,
html body .h1, html body .h2, html body .h3,
html body .page-heading, html body .page-title,
html body #main .page-header h1,
html body .block-title,
html body .products-section-title,
html body .featured-products .h2,
html body .featured-products .products-section-title,
html body .elementor-heading-title{
  font-family:var(--sl-font-head) !important;
  color:var(--sl-ink) !important;
  font-weight:600 !important;
  letter-spacing:-.01em !important;
  text-transform:none !important;
}
html body h1, html body .h1, html body .page-heading,
html body #main .page-header h1,
html body .elementor-heading-title.elementor-size-xxl,
html body .elementor-heading-title.elementor-size-xl{
  font-size:var(--fs-display) !important;
  line-height:var(--lh-tight) !important;
  font-weight:600 !important;
}
html body h2, html body .h2,
html body .products-section-title,
html body .featured-products .products-section-title,
html body .block-title,
html body .elementor-heading-title.elementor-size-large{
  font-size:var(--fs-h2) !important;
  line-height:var(--lh-snug) !important;
  font-weight:600 !important;
}
html body h3, html body .h3{
  font-size:var(--fs-h3) !important;
  line-height:var(--lh-snug) !important;
  font-weight:600 !important;
}
html body .subtitle, html body .lead, html body .page-subheading,
html body .elementor-heading-title.elementor-size-default + p,
html body p.lead{
  font-family:var(--sl-font-body) !important;
  font-size:var(--fs-lead) !important;
  line-height:var(--lh-snug) !important;
  font-weight:400 !important;
  color:var(--sl-ink-2) !important;
}
html body .product-information h1,
html body h1[itemprop="name"],
html body .product-detail-name,
html body .product-name h1{
  font-family:var(--sl-font-head) !important;
  font-size:var(--fs-h2) !important;
  line-height:var(--lh-snug) !important;
  font-weight:600 !important;
  color:var(--sl-ink) !important;
  text-transform:none !important;
  letter-spacing:-.01em !important;
}
html body .product-miniature .product-title,
html body .product-miniature .product-title a,
html body .thumbnail-container .product-title a,
html body .product-title a{
  font-family:var(--sl-font-body) !important;
  font-size:var(--fs-body) !important;
  line-height:var(--lh-snug) !important;
  font-weight:600 !important;
  color:var(--sl-ink) !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
html body .product-price,
html body .product-miniature .product-price-and-shipping .price,
html body .product-prices .current-price .price,
html body .product-information .current-price span,
html body .price{
  font-family:var(--sl-font-body) !important;
  font-size:var(--fs-h3) !important;
  font-weight:600 !important;
  color:var(--sl-accent) !important;
  font-variant-numeric:tabular-nums !important;
  -moz-font-feature-settings:"tnum";
  -webkit-font-feature-settings:"tnum";
  font-feature-settings:"tnum";
  letter-spacing:0 !important;
}
html body .product-price .regular-price,
html body .regular-price{
  font-size:var(--fs-body) !important;
  font-weight:400 !important;
  color:var(--sl-muted) !important;
}
html body p,
html body .product-description, html body .product-description p,
html body .rte-content, html body .cms-content{
  font-size:var(--fs-body) !important;
  line-height:var(--lh-body) !important;
  color:var(--sl-ink) !important;
}
html body .breadcrumb, html body .breadcrumb a,
html body .product-reference, html body .product-flag,
html body .meta, html body small, html body .text-muted{
  font-family:var(--sl-font-body) !important;
  font-size:var(--fs-sm) !important;
  font-weight:500 !important;
  color:var(--sl-muted) !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

/* ---------- 3. HEADER + TOPBAR ---------- */
html body .header-top,
html body .pos-top-bar,
html body #header .nav-top,
html body .header-nav-top{
  background:var(--sl-cream) !important;
  color:var(--sl-ink-2) !important;
  border-bottom:1px solid var(--sl-line) !important;
  font-family:var(--sl-font-body) !important;
  font-size:var(--fs-sm) !important;
  line-height:1.2 !important;
  min-height:40px !important;
}
html body .header-top *, html body .pos-top-bar *,
html body #header .nav-top *, html body .header-nav-top *{
  text-transform:none !important;
  letter-spacing:0 !important;
}
html body .header-top > .container,
html body .pos-top-bar > .container,
html body .header-nav-top > .container,
html body .header-top .row,
html body .pos-top-bar .row{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  flex-wrap:wrap !important;
  gap:var(--sp-2) var(--sp-6) !important;
  min-height:40px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}
html body .header-top a, html body .pos-top-bar a, html body .header-nav-top a{
  color:var(--sl-ink-2) !important;
  text-decoration:none !important;
  transition:color var(--t-base) !important;
}
html body .header-top a:hover, html body .pos-top-bar a:hover, html body .header-nav-top a:hover{
  color:var(--sl-accent) !important;
}
html body .header-top .shipping-claim,
html body .pos-top-bar .shipping-claim{
  color:var(--sl-success) !important;
  font-weight:600 !important;
}
html body .header-top .stars,
html body .header-top [class*="revi"],
html body .pos-top-bar [class*="revi"]{
  color:var(--sl-star) !important;
}
html body #header .header-top.header-main,
html body #header .header-nav,
html body #header .header-middle{
  background:var(--sl-bg) !important;
  border-bottom:1px solid var(--sl-line) !important;
}
html body #header .header-nav > .container,
html body #header .header-middle > .container,
html body #header .header-nav .row,
html body #header .header-middle .row{
  display:flex !important;
  align-items:center !important;
  gap:var(--sp-8) !important;
  padding-top:var(--sp-3) !important;
  padding-bottom:var(--sp-3) !important;
}
html body #header .logo,
html body #header #_desktop_logo,
html body #header .header-logo{
  flex:0 0 auto !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
}
html body #header .logo img,
html body #header #_desktop_logo img,
html body #header .header-logo img{
  width:auto !important;
  max-width:220px !important;
  height:auto !important;
  max-height:64px !important;
  display:block !important;
  transition:opacity var(--t-base) !important;
}
html body #header .logo a:hover img,
html body #header #_desktop_logo a:hover img{ opacity:.85 !important; }
html body #header .header-right,
html body #header .header-nav .right-nav,
html body #header #_desktop_user_info,
html body #header #_desktop_cart{
  display:flex !important;
  align-items:center !important;
  gap:var(--sp-4) !important;
  flex:0 0 auto !important;
}
html body #header .user-info a,
html body #header .blockcart a,
html body #header #_desktop_cart a{
  color:var(--sl-ink) !important;
  text-decoration:none !important;
  transition:color var(--t-base) !important;
}
html body #header .user-info a:hover,
html body #header .blockcart a:hover{ color:var(--sl-accent) !important; }
html body #header .user-info i,
html body #header .blockcart i,
html body #header [class*="icon"]{ color:var(--sl-ink) !important; }
html body #header .blockcart .cart-products-count,
html body #header .blockcart .header-cart-count{
  background:var(--sl-accent) !important;
  color:#fff !important;
  border:0 !important;
  font-weight:600 !important;
}
html body #header .blockcart .btn,
html body #header #_desktop_cart .btn{
  background:var(--sl-accent) !important;
  border-color:var(--sl-accent) !important;
  color:#fff !important;
  border-radius:var(--r-pill) !important;
  font-weight:600 !important;
  box-shadow:var(--sh-cta) !important;
}
html body #header .blockcart .btn:hover,
html body #header #_desktop_cart .btn:hover{
  background:var(--sl-accent-hover) !important;
  border-color:var(--sl-accent-hover) !important;
}

/* ---------- 4. BUSCADOR (boton de buscar = accion burdeos; sustituye al verde) ---------- */
html body #header .header-search,
html body #header #search_widget,
html body #header .search-widget,
html body #header .pos-search{
  flex:1 1 auto !important;
  max-width:560px !important;
  margin:0 auto !important;
}
html body #header .search-widget form,
html body #header #search_widget form,
html body #header .pos-search form{
  position:relative !important;
  display:flex !important;
  align-items:stretch !important;
  width:100% !important;
}
html body #header .search-widget input[type="text"],
html body #header #search_widget input[type="text"],
html body #header .pos-search input[type="text"],
html body #header .header-search input.ui-autocomplete-input{
  flex:1 1 auto !important;
  height:46px !important;
  padding:0 52px 0 18px !important;
  border:1px solid var(--sl-line) !important;
  border-radius:var(--r-pill) !important;
  background:var(--sl-bg) !important;
  color:var(--sl-ink) !important;
  font-family:var(--sl-font-body) !important;
  font-size:var(--fs-body) !important;
  box-shadow:none !important;
  transition:border-color var(--t-base),box-shadow var(--t-base) !important;
}
html body #header .search-widget input[type="text"]::placeholder,
html body #header #search_widget input[type="text"]::placeholder{
  color:var(--sl-muted) !important;
}
html body #header .search-widget input[type="text"]:focus,
html body #header #search_widget input[type="text"]:focus,
html body #header .pos-search input[type="text"]:focus{
  border-color:var(--sl-accent) !important;
  outline:3px solid var(--sl-accent-ring) !important;
  outline-offset:0 !important;
  box-shadow:0 0 0 4px var(--sl-accent-ring) !important;
}
html body #header .search-widget button[type="submit"],
html body #header #search_widget button[type="submit"],
html body #header .pos-search button[type="submit"],
html body #header .search-widget .btn,
html body #header #search_widget .btn,
html body #header .header-search button,
html body button.search-btn{
  position:absolute !important;
  top:50% !important;
  right:5px !important;
  transform:translateY(-50%) !important;
  width:38px !important;
  height:38px !important;
  min-width:38px !important;
  padding:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:0 !important;
  border-radius:var(--r-pill) !important;
  background:var(--sl-accent) !important;
  color:#fff !important;
  cursor:pointer !important;
  box-shadow:none !important;
  transition:background var(--t-base),transform var(--t-base) !important;
}
html body #header .search-widget button[type="submit"]:hover,
html body #header #search_widget button[type="submit"]:hover,
html body #header .pos-search button[type="submit"]:hover,
html body #header .header-search button:hover,
html body button.search-btn:hover{
  background:var(--sl-accent-hover) !important;
}
html body #header .search-widget button[type="submit"] i,
html body #header #search_widget button[type="submit"] i,
html body #header .search-widget button[type="submit"] .material-icons,
html body #header .header-search button i{
  color:#fff !important;
  font-size:20px !important;
  margin:0 !important;
}
html body .ui-autocomplete,
html body #header .search-widget .ui-menu{
  border:1px solid var(--sl-line) !important;
  border-radius:var(--r-sm) !important;
  box-shadow:var(--sh-card) !important;
  background:var(--sl-bg) !important;
}
html body .ui-autocomplete .ui-menu-item .ui-state-active,
html body .ui-autocomplete .ui-menu-item:hover{
  background:var(--sl-accent-soft) !important;
  color:var(--sl-accent) !important;
  border:0 !important;
}

/* ---------- 5. BRAND-ACCENT · enlaces, foco, iconos, badges, barra util ---------- */
html body a:not(.btn):not(.button):not(.ajax_add_to_cart_button):not(.add-to-cart):not([class*="badge"]):not(.sl-eco):not(.sl-badge--eco){
  color:var(--sl-ink);
  transition:color var(--t-base);
}
html body a:not(.btn):not(.button):not(.ajax_add_to_cart_button):not(.add-to-cart):not([class*="badge"]):not(.sl-eco):not(.sl-badge--eco):hover,
html body a:not(.btn):not(.button):not(.ajax_add_to_cart_button):not(.add-to-cart):not([class*="badge"]):not(.sl-eco):not(.sl-badge--eco):focus{
  color:var(--sl-accent) !important;
}
html body a.sl-link-accent,
html body .breadcrumb li.active a,
html body .breadcrumb li:last-child a,
html body #_desktop_top_menu .sub-menu a:hover{
  color:var(--sl-accent) !important;
}
html body a:focus-visible,
html body button:focus-visible,
html body input:focus-visible,
html body select:focus-visible,
html body textarea:focus-visible,
html body [tabindex]:focus-visible{
  outline:3px solid var(--sl-accent-ring) !important;
  outline-offset:2px !important;
  border-radius:var(--r-sm);
}
html body .form-control:focus,
html body input[type="text"]:focus,
html body input[type="email"]:focus,
html body input[type="search"]:focus,
html body input[type="tel"]:focus,
html body input[type="password"]:focus,
html body textarea:focus{
  border-color:var(--sl-accent) !important;
  box-shadow:0 0 0 3px var(--sl-accent-ring) !important;
  outline:none !important;
}
html body .header-nav a:hover i,
html body .header .material-icons:hover,
html body .wishlist-button-add.active i,
html body .favorite-products a:hover,
html body .cart-products-count{
  color:var(--sl-accent) !important;
}
html body .blockcart .cart-products-count{
  background:var(--sl-accent) !important;
  color:#fff !important;
  border-radius:var(--r-pill);
  font-weight:600;
}
html body .sl-accent-fill,
html body .sl-accent-fill svg,
html body .sl-accent-fill path{
  fill:var(--sl-accent) !important;
  color:var(--sl-accent) !important;
}
html body .sl-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  font-family:var(--sl-font-body);
  font-size:.75rem;
  font-weight:600;
  line-height:1;
  letter-spacing:.01em;
  border-radius:var(--r-pill);
  text-transform:none;
}
html body .sl-badge--key,
html body .product-flag.new,
html body .product-flag.on-sale,
html body .product-flag.discount{
  background:var(--sl-accent) !important;
  color:#fff !important;
  border:0 !important;
}
html body .sl-badge--soft{
  background:var(--sl-accent-soft);
  color:var(--sl-accent);
}
html body .sl-badge--eco,
html body .sl-eco,
html body .product-flag.online-only{
  background:var(--sl-eco) !important;
  color:#fff !important;
  border:0 !important;
}
html body .sl-utility-bar{
  background:var(--sl-cream);
  border-bottom:1px solid var(--sl-line);
  color:var(--sl-ink);
  font-family:var(--sl-font-body);
  font-size:.8125rem;
  line-height:1.2;
}
html body .sl-utility-bar__inner{
  max-width:1280px;
  margin:0 auto;
  padding:8px 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  flex-wrap:wrap;
}
html body .sl-utility-bar__item{
  display:inline-flex;
  align-items:center;
  gap:7px;
  white-space:nowrap;
  color:var(--sl-ink);
}
html body .sl-utility-bar__item strong{font-weight:600;}
html body .sl-utility-bar__item .sl-ico-eco{color:var(--sl-eco);font-size:16px;line-height:1;}
html body .sl-utility-bar__item .sl-ico-star{color:var(--sl-star);font-size:16px;line-height:1;}
html body .sl-utility-bar__item a{color:var(--sl-ink) !important;text-decoration:none;}
html body .sl-utility-bar__item a:hover{color:var(--sl-accent) !important;}
@media (min-width:768px){
  html body .sl-utility-bar__item + .sl-utility-bar__item{
    border-left:1px solid var(--sl-line);
    padding-left:24px;
  }
}
@media (max-width:767px){
  html body .sl-utility-bar__inner{
    justify-content:flex-start;
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    gap:16px;
    padding:8px 12px;
    scrollbar-width:none;
  }
  html body .sl-utility-bar__inner::-webkit-scrollbar{display:none;}
  html body .sl-utility-bar__item + .sl-utility-bar__item{border-left:0;padding-left:0;}
}
html body .sl-trustpill{
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 14px; border:1px solid var(--sl-line);
  border-radius:var(--r-pill); background:#fff;
  font-family:var(--sl-font-body); line-height:1;
  text-decoration:none !important; cursor:pointer;
  transition:border-color var(--t-base), box-shadow var(--t-base);
  vertical-align:middle;
}
html body .sl-trustpill:hover{ border-color:var(--sl-accent); box-shadow:0 2px 8px rgba(192,57,91,.10); }
html body .sl-trustpill:focus-visible{ outline:3px solid var(--sl-accent-ring); outline-offset:2px; }
html body .sl-trustpill__stars{ color:var(--sl-star); font-size:14px; letter-spacing:1px; line-height:1; white-space:nowrap; }
html body .sl-trustpill__score{ font-size:14px; font-weight:600; color:var(--sl-ink); font-variant-numeric:tabular-nums; }
html body .sl-trustpill__sep{ width:1px; height:14px; background:var(--sl-line); display:inline-block; }
html body .sl-trustpill__count{ font-size:13px; color:var(--sl-ink-2); }

/* ---------- 6. HERO ---------- */
.fn-hero{
  position:relative;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  align-items:stretch;
  gap:0;
  background:var(--sl-cream);
  border-bottom:1px solid var(--sl-line);
  font-family:var(--sl-font-body);
  color:var(--sl-ink);
  overflow:hidden;
}
.fn-hero *{box-sizing:border-box;}
.fn-hero__content{
  padding:clamp(28px,5vw,72px) clamp(20px,5vw,64px);
  display:flex; flex-direction:column; justify-content:center;
  gap:var(--sp-6); max-width:680px;
}
.fn-hero__rating{
  display:inline-flex; align-items:center; gap:var(--sp-2);
  font-size:var(--fs-sm); color:var(--sl-ink-2); font-weight:500;
}
.fn-hero__stars{
  display:inline-flex; gap:2px; color:var(--sl-star);
  font-size:1rem; line-height:1; letter-spacing:1px;
}
.fn-hero__rating strong{color:var(--sl-ink);font-weight:700;}
.fn-hero__title{
  font-family:var(--sl-font-head); font-size:var(--fs-display);
  font-weight:600; line-height:var(--lh-tight); letter-spacing:-.01em;
  color:var(--sl-ink); margin:0; text-transform:none;
}
.fn-hero__title em{ font-style:italic; color:var(--sl-accent); }
.fn-hero__lead{
  font-size:var(--fs-lead); line-height:var(--lh-body);
  color:var(--sl-ink-2); margin:0; max-width:46ch;
}
.fn-hero__urgency{
  display:inline-flex; align-items:center; gap:var(--sp-2);
  align-self:flex-start; padding:8px 14px;
  background:var(--sl-bg); border:1px solid var(--sl-line);
  border-radius:var(--r-pill); font-size:var(--fs-sm);
  color:var(--sl-ink); font-weight:500; box-shadow:var(--sh-card);
}
.fn-hero__urgency svg{flex:none;color:var(--sl-accent);}
.fn-hero__urgency b{font-weight:700;}
.fn-hero__actions{
  display:flex; flex-wrap:wrap; gap:var(--sp-3); margin-top:var(--sp-1);
}
.fn-hero__btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px; padding:14px 26px; border-radius:var(--r-pill);
  font-family:var(--sl-font-body); font-size:var(--fs-body);
  font-weight:600; text-decoration:none; cursor:pointer;
  transition:var(--t-base); line-height:1;
}
.fn-hero__btn--primary{
  background:var(--sl-accent); color:#fff;
  border:1px solid var(--sl-accent); box-shadow:var(--sh-cta);
}
.fn-hero__btn--primary:hover,
.fn-hero__btn--primary:focus{
  background:var(--sl-accent-hover); border-color:var(--sl-accent-hover);
  color:#fff; transform:translateY(-1px);
}
.fn-hero__btn--ghost{
  background:transparent; color:var(--sl-accent);
  border:1px solid var(--sl-accent);
}
.fn-hero__btn--ghost:hover,
.fn-hero__btn--ghost:focus{
  background:var(--sl-accent-soft); color:var(--sl-accent-hover);
}
.fn-hero__btn:focus-visible{ outline:3px solid var(--sl-accent-ring); outline-offset:2px; }
.fn-hero__trust{
  display:flex; flex-wrap:wrap; gap:var(--sp-4) var(--sp-6);
  margin-top:var(--sp-2); padding-top:var(--sp-6);
  border-top:1px solid var(--sl-line);
}
.fn-hero__trust li{
  list-style:none; display:flex; align-items:center; gap:8px;
  font-size:var(--fs-sm); color:var(--sl-ink); font-weight:500;
}
.fn-hero__trust ul{display:contents;margin:0;padding:0;}
.fn-hero__trust svg{flex:none;color:var(--sl-eco);}
.fn-hero__media{
  position:relative; min-height:420px;
  background:#efe7e2 url('https://staging.floresnuevas.com/img/p/6/6/3/663-large_default.jpg') center/cover no-repeat;
}
.fn-hero__media::after{
  content:""; position:absolute;inset:0;
  background:linear-gradient(90deg,var(--sl-cream) 0%,rgba(250,247,243,0) 22%);
  pointer-events:none;
}
.fn-hero__card{
  position:absolute; left:clamp(16px,3vw,32px); bottom:clamp(16px,3vw,32px);
  display:flex; align-items:center; gap:var(--sp-3);
  padding:10px 14px 10px 10px;
  background:rgba(255,255,255,.96);
  backdrop-filter:saturate(1.1) blur(2px);
  border:1px solid var(--sl-line); border-radius:var(--r-md);
  box-shadow:var(--sh-card-hover); max-width:280px; z-index:2;
}
.fn-hero__card img{
  width:56px;height:56px; border-radius:var(--r-sm);
  object-fit:cover; flex:none;
}
.fn-hero__card-label{
  font-size:var(--fs-xs); text-transform:uppercase;
  letter-spacing:.04em; color:var(--sl-muted); font-weight:600; margin:0 0 2px;
}
.fn-hero__card-name{
  font-size:var(--fs-sm); font-weight:600; color:var(--sl-ink);
  margin:0; line-height:var(--lh-snug);
}
.fn-hero__card-price{
  font-size:var(--fs-body); font-weight:700; color:var(--sl-accent);
  font-variant-numeric:tabular-nums; margin:4px 0 0;
}
@media (max-width:991px){
  .fn-hero{grid-template-columns:1fr;}
  .fn-hero__media{order:-1;min-height:300px;}
  .fn-hero__media::after{ background:linear-gradient(0deg,var(--sl-cream) 0%,rgba(250,247,243,0) 30%); }
  .fn-hero__content{max-width:none;padding-top:clamp(24px,6vw,40px);}
}
@media (max-width:767px){
  .fn-hero__media{min-height:240px;}
  .fn-hero__title{font-size:clamp(1.9rem,7vw,2.4rem);}
  .fn-hero__actions{flex-direction:column;align-items:stretch;}
  .fn-hero__btn{width:100%;min-height:48px;}
  .fn-hero__card{max-width:calc(100% - 32px);left:16px;right:16px;bottom:16px;}
  .fn-hero__trust{ flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; gap:var(--sp-4); }
  .fn-hero__trust li{white-space:nowrap;}
  .fn-hero__trust::-webkit-scrollbar{display:none;}
}

/* Hero centrado alternativo (sl-hero) */
.sl-hero{ background:var(--sl-cream); padding:var(--sp-20) var(--sp-4); }
.sl-hero__inner{ max-width:760px; margin:0 auto; text-align:center; }
.sl-hero__eyebrow{
  font-family:var(--sl-font-body); font-size:var(--fs-sm); font-weight:500;
  letter-spacing:.04em; text-transform:none; color:var(--sl-ink-2); margin:0 0 var(--sp-4);
}
html body .sl-hero__title.elementor-heading-title{
  font-family:var(--sl-font-head)!important; font-size:var(--fs-display);
  line-height:var(--lh-tight); letter-spacing:-.01em; font-weight:600;
  color:var(--sl-ink)!important; text-transform:none!important; margin:0 0 var(--sp-4);
}
.sl-hero__sub{
  font-family:var(--sl-font-body); font-size:var(--fs-lead);
  line-height:var(--lh-body); color:var(--sl-ink-2); max-width:54ch; margin:0 auto var(--sp-6);
}
.sl-hero__rating{
  display:inline-flex; align-items:center; gap:var(--sp-2);
  font-family:var(--sl-font-body); font-size:var(--fs-sm); color:var(--sl-ink-2); margin-bottom:var(--sp-8);
}
.sl-hero__stars{ color:var(--sl-star); letter-spacing:1px; }
.sl-hero__rating-text strong{ color:var(--sl-ink); font-weight:600; }
.sl-hero__cta{ display:flex; flex-wrap:wrap; justify-content:center; gap:var(--sp-3); margin-bottom:var(--sp-6); }
.sl-hero .sl-btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--sl-font-body); font-size:var(--fs-body); font-weight:600;
  text-transform:none; text-decoration:none; padding:12px 22px;
  border-radius:var(--r-pill); transition:var(--t-base); cursor:pointer;
}
html body .sl-hero .sl-btn--primary{
  background:var(--sl-accent)!important; color:#fff!important;
  border:1px solid var(--sl-accent); box-shadow:var(--sh-cta);
}
html body .sl-hero .sl-btn--primary:hover{ background:var(--sl-accent-hover)!important; transform:translateY(-1px); }
html body .sl-hero .sl-btn--ghost{
  background:transparent!important; color:var(--sl-accent)!important; border:1px solid var(--sl-accent);
}
html body .sl-hero .sl-btn--ghost:hover{ background:var(--sl-accent-soft)!important; }
.sl-hero .sl-btn:focus-visible{ outline:3px solid var(--sl-accent-ring); outline-offset:2px; }
.sl-hero__urgency{
  display:inline-flex; align-items:center; gap:var(--sp-2);
  font-family:var(--sl-font-body); font-size:var(--fs-sm); font-weight:500; color:var(--sl-ink); margin:0;
}
.sl-hero__clock{ color:var(--sl-accent); font-size:1.1em; }
@media (max-width:767px){
  .sl-hero{ padding:var(--sp-12) var(--sp-4); }
  .sl-hero__cta{ flex-direction:column; }
  .sl-hero .sl-btn{ width:100%; min-height:48px; }
}

/* ---------- 7. TRUST STRIP ---------- */
.sl-trust{
  background:var(--sl-cream); padding:var(--sp-12) var(--sp-4);
  border-top:1px solid var(--sl-line); border-bottom:1px solid var(--sl-line);
}
.sl-trust--plain{ background:var(--sl-bg); }
.sl-trust--flush{ border:0; }
.sl-trust__inner{
  max-width:1180px; margin:0 auto; display:grid;
  grid-template-columns:repeat(5,1fr); gap:var(--sp-2); align-items:start;
}
.sl-trust__item{
  display:flex; flex-direction:column; align-items:center;
  text-align:center; padding:var(--sp-2) var(--sp-3);
}
.sl-trust__icon{
  width:46px; height:46px; flex:0 0 46px; border-radius:var(--r-pill);
  background:var(--sl-accent-soft); display:flex; align-items:center; justify-content:center;
  margin-bottom:var(--sp-3);
}
.sl-trust__icon svg{
  width:22px; height:22px; stroke:var(--sl-eco); fill:none;
  stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
}
.sl-trust__title{
  font-family:var(--sl-font-body); font-size:var(--fs-body); font-weight:600;
  line-height:var(--lh-snug); color:var(--sl-ink); text-transform:none; letter-spacing:0; margin:0;
}
.sl-trust__sub{
  font-family:var(--sl-font-body); font-size:var(--fs-sm); font-weight:400;
  line-height:var(--lh-snug); color:var(--sl-ink-2); text-transform:none; margin:var(--sp-1) 0 0;
}
@media (max-width:991px){
  .sl-trust__inner{ grid-template-columns:repeat(3,1fr); row-gap:var(--sp-8); }
  .sl-trust__item:nth-child(4){ grid-column:1 / 2; }
  .sl-trust__item:nth-child(5){ grid-column:2 / 4; }
}
@media (max-width:767px){
  .sl-trust{ padding:var(--sp-8) 0; }
  .sl-trust__inner{
    display:flex; grid-template-columns:none; flex-wrap:nowrap;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory; gap:var(--sp-2);
    padding:0 var(--sp-4) var(--sp-2); scrollbar-width:none;
  }
  .sl-trust__inner::-webkit-scrollbar{ display:none; }
  .sl-trust__item{ flex:0 0 44%; max-width:44%; scroll-snap-align:start; }
  .sl-trust__title{ font-size:var(--fs-sm); }
  .sl-trust__sub{ font-size:var(--fs-xs); }
}
@media (prefers-reduced-motion:reduce){ .sl-trust__inner{ scroll-behavior:auto; } }

/* ---------- 8. SPACING & RHYTHM + TARJETAS DE PRODUCTO ---------- */
.sl-section{ padding-block:var(--sl-section-y); padding-inline:var(--sp-6); }
.sl-section > .sl-inner{ max-width:var(--sl-container); margin-inline:auto; width:100%; }
.sl-section--narrow > .sl-inner{ max-width:var(--sl-container-narrow); }
.sl-section--cream{ background:var(--sl-cream); }
.sl-section--bg{ background:var(--sl-bg); }
.sl-section .sl-section__head{ margin-bottom:var(--sl-head-gap); }
.sl-section .sl-section__head > * + *{ margin-top:var(--sp-3); }
.sl-section + .sl-section{ margin-top:0; }
html body .page-home .elementor-section,
html body .page-home .featured-products,
html body .page-home .products-section,
html body .page-home .block-categories,
html body .page-home .ph_simpleblog_home{
  padding-top:var(--sl-section-y) !important;
  padding-bottom:var(--sl-section-y) !important;
}
html body .page-home .elementor-widget-heading{ margin-bottom:var(--sl-head-gap) !important; }
html body .products,
html body .product_list,
html body .featured-products .products{
  gap:var(--sp-6);
  row-gap:var(--sp-8);
}

html body .product-miniature.thumbnail-container{
  display:flex; flex-direction:column;
  background:var(--sl-bg); border:1px solid var(--sl-line);
  border-radius:var(--r-md); box-shadow:var(--sh-card);
  overflow:hidden;
  transition:transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
  height:100%; margin-bottom:var(--sp-6);
}
html body .product-miniature.thumbnail-container:hover{
  transform:translateY(-4px); box-shadow:var(--sh-card-hover); border-color:var(--sl-accent-soft);
}
html body .product-miniature .img_block{
  position:relative; overflow:hidden; background:var(--sl-cream);
}
html body .product-miniature .img_block .thumbnail.product-thumbnail{ display:block; margin:0; border:0; }
html body .product-miniature .thumbnail img,
html body .product-miniature .img_block img.first-image{
  display:block; width:100% !important; height:auto;
  aspect-ratio:4/5; object-fit:cover; object-position:center;
  transition:transform 320ms ease;
}
html body .product-miniature.thumbnail-container:hover .thumbnail img,
html body .product-miniature.thumbnail-container:hover .img_block img.first-image{ transform:scale(1.04); }
@supports not (aspect-ratio:1/1){
  html body .product-miniature .img_block{height:0;padding-bottom:125%;position:relative;}
  html body .product-miniature .thumbnail img,
  html body .product-miniature .img_block img.first-image{ position:absolute;top:0;left:0;width:100% !important;height:100%; }
}
html body .product-miniature .add-to-links{
  position:absolute; left:0;right:0;bottom:0; margin:0;padding:var(--sp-2);
  list-style:none; display:flex;justify-content:center;
  opacity:0; transform:translateY(8px);
  transition:opacity var(--t-base), transform var(--t-base); pointer-events:none;
}
html body .product-miniature.thumbnail-container:hover .add-to-links{ opacity:1;transform:translateY(0);pointer-events:auto; }
html body .product-miniature .add-to-links .quick-view a.quick_view{
  display:inline-flex;align-items:center; background:rgba(255,255,255,.92);
  color:var(--sl-ink); border:1px solid var(--sl-line); border-radius:var(--r-pill);
  padding:8px 16px; font-family:var(--sl-font-body); font-size:var(--fs-sm);font-weight:500;
  text-transform:none; backdrop-filter:blur(4px); transition:background var(--t-base), color var(--t-base);
}
html body .product-miniature .add-to-links .quick-view a.quick_view:hover{
  background:var(--sl-accent-soft); color:var(--sl-accent); border-color:var(--sl-accent-soft);
}
html body .product-miniature .product_desc{
  display:flex; flex-direction:column; flex:1 1 auto; padding:var(--sp-4);
}
html body .product-miniature .product_desc .inner_desc{ display:flex; flex-direction:column; flex:1 1 auto; }
html body .product-miniature .manufacturer{display:none;}
html body .product-miniature .product-description,
html body .product-miniature .product-desc,
html body .product-miniature .thumbnail-container .product-description{ padding:var(--sp-4) !important; }
html body .product-miniature h3{margin:0 0 var(--sp-2);}
html body .product-miniature .product_name,
html body .product-miniature h3 a.product_name{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  font-family:var(--sl-font-body); font-size:var(--fs-body); font-weight:600;
  line-height:var(--lh-snug); color:var(--sl-ink) !important; text-transform:none !important; min-height:2.6em;
}
html body .product-miniature .product_name.one_line{white-space:normal;}
html body .product-miniature h3 a.product_name:hover{color:var(--sl-accent) !important;}
html body .product-miniature .product-title{ margin:0 0 var(--sp-2); }
html body .product-miniature .product-price-and-shipping{ margin:0 0 var(--sp-4); }
html body .product-miniature .product-price-and-shipping .price{
  font-family:var(--sl-font-body); font-size:var(--fs-h3); font-weight:600;
  line-height:1; color:var(--sl-accent) !important; font-variant-numeric:tabular-nums;
}
html body .product-miniature .hook-reviews{margin:0 0 var(--sp-2);min-height:0;}
html body .product-miniature .hook-reviews:empty{display:none;}
html body .product-miniature .hook-reviews .star,
html body .product-miniature .hook-reviews [class*="star"]{color:var(--sl-star);}
html body .product-miniature .cart{margin-top:auto;}
html body .product-miniature .product-add-to-cart .add-to-cart-or-refresh{margin:0;}
html body .product-miniature .availability{ order:5; padding:0 var(--sp-4) var(--sp-3); margin:0; }
html body .product-miniature .availability .availability-list{
  font-family:var(--sl-font-body); font-size:var(--fs-xs); font-weight:500; color:var(--sl-muted);
}
html body .product-miniature .availability .availability-list.in-stock{color:var(--sl-eco);}
html body .product-miniature .availability .availability-list span{color:inherit;}
html body .product-miniature .product-desc{display:none;}
html body #js-product-list .products,
html body .featured-products .products,
html body .products{ row-gap:var(--sp-6); }
.product-miniature .thumbnail-container{ margin-bottom:0; }
.product-miniature .product-title{ margin:0 0 var(--sp-2); }
.product-miniature .product-price-and-shipping{ margin:0 0 var(--sp-3); }
.product-miniature .product-title + .comments_note,
.product-miniature .product-title + .product-flags{ margin-top:var(--sp-1); }
.product-miniature .product-add-to-cart,
.product-miniature .product-miniature__cta{ margin-top:var(--sp-3); }
html body #product .product-information > * + *{ margin-top:var(--sp-4); }
html body #product .product-prices{ margin-block:var(--sp-4); }
html body #product .product-actions{ margin-top:var(--sp-6); }
html body #product .product-add-to-cart{ margin-top:var(--sp-4); }
@media (max-width:767px){
  .sl-section{ padding-block:var(--sl-section-y-m); padding-inline:var(--sp-4); }
  .sl-section .sl-section__head{ margin-bottom:var(--sp-8); }
  html body .page-home .elementor-section,
  html body .page-home .featured-products,
  html body .page-home .products-section,
  html body .page-home .block-categories,
  html body .page-home .ph_simpleblog_home{
    padding-top:var(--sl-section-y-m) !important; padding-bottom:var(--sl-section-y-m) !important;
  }
  html body .page-home .elementor-widget-heading{ margin-bottom:var(--sp-8) !important; }
  html body .product-miniature .product-description,
  html body .product-miniature .product-desc{ padding:var(--sp-3) !important; }
}
@media (min-width:768px) and (max-width:1199px){
  .sl-section{ padding-block:var(--sp-16); }
  html body .page-home .elementor-section,
  html body .page-home .featured-products,
  html body .page-home .products-section{ padding-top:var(--sp-16) !important; padding-bottom:var(--sp-16) !important; }
}

/* ---------- 9. CARD BADGES ---------- */
html body .product-miniature .thumbnail-container,
html body .product-miniature .thumbnail{ position:relative; }
html body .product-miniature .product-flag{
  position:absolute; top:var(--sp-3); left:var(--sp-3); right:auto; margin:0;padding:0;
  list-style:none; display:flex;flex-direction:column;gap:6px; z-index:2;
}
html body .product-miniature .product-flag:empty{display:none;}
html body .product-miniature .product-flag li{
  display:inline-flex;align-items:center; background:var(--sl-accent); color:#fff;
  font-family:var(--sl-font-body); font-size:var(--fs-xs); font-weight:600; line-height:1;
  text-transform:none; letter-spacing:.01em; padding:5px 10px; border-radius:var(--r-pill);
  box-shadow:0 2px 6px rgba(35,36,42,.18);
}
html body .product-miniature .product-flag li.online-only,
html body .product-miniature .product-flag li.discount,
html body .product-miniature .product-flag li.pack{ background:var(--sl-eco); }
html body .product-miniature .sl-badges{
  position:absolute; top:var(--sp-2,8px); left:var(--sp-2,8px); z-index:3;
  display:flex; flex-direction:column; align-items:flex-start; gap:var(--sp-1,4px);
  pointer-events:none; max-width:calc(100% - 16px);
}
html body .product-miniature .sl-badge{
  display:inline-flex; align-items:center; gap:5px;
  font-family:var(--sl-font-body,"Inter",Arial,sans-serif); font-size:var(--fs-xs,.75rem);
  font-weight:600; line-height:1; letter-spacing:.01em; text-transform:none;
  color:#fff; background:var(--sl-ink,#23242a); padding:6px 10px;
  border-radius:var(--r-pill,999px); box-shadow:0 2px 6px rgba(35,36,42,.18);
  white-space:nowrap; pointer-events:auto;
  -webkit-backdrop-filter:saturate(1.2); backdrop-filter:saturate(1.2);
}
html body .product-miniature .sl-badge svg{ width:13px;height:13px;flex:0 0 auto;display:block;fill:currentColor; }
html body .product-miniature .sl-badge--top{ background:var(--sl-accent,#c0395b); color:#fff; box-shadow:0 2px 8px rgba(192,57,91,.30); }
html body .product-miniature .sl-badge--new{ background:var(--sl-accent-soft,#fbeef2); color:var(--sl-accent-hover,#9c2c49); box-shadow:inset 0 0 0 1px rgba(192,57,91,.22); }
html body .product-miniature .sl-badge--free{ background:var(--sl-eco,#4cbb6c); color:#fff; }
html body .product-miniature .sl-badge--24h{ background:#fff; color:var(--sl-success,#2e7d4f); box-shadow:inset 0 0 0 1px var(--sl-line,#ece8e4),0 2px 6px rgba(35,36,42,.10); }
html body .product-miniature .sl-badge--last{ background:var(--sl-danger,#c0392b); color:#fff; }
html body .product-miniature .sl-badge--top::before{content:"\2605";font-size:.9em;line-height:1;}
html body .product-miniature .sl-badge--free::before{content:"\2713";font-weight:700;}
html body .product-miniature .sl-badge--24h::before{content:"\23F1";font-size:.95em;}
html body .product-miniature .sl-badge--last::before{content:"\26A0";font-size:.9em;}
html body .product-miniature:hover .sl-badge--top{ transform:translateY(-1px); transition:transform var(--t-base,200ms ease); }
html body .product-miniature .sl-badges .sl-badge:nth-of-type(n+3){display:none;}
@media (max-width:575px){
  html body .product-miniature .sl-badges{top:6px;left:6px;gap:3px;}
  html body .product-miniature .sl-badge{font-size:.6875rem;padding:5px 8px;}
  html body .product-miniature .sl-badge svg{width:12px;height:12px;}
}
@media (prefers-reduced-motion:reduce){ html body .product-miniature:hover .sl-badge--top{transform:none;} }

/* ---------- 10. REVIEWS (Revi surfacing + estrellas PDP) ---------- */
.sl-revi{
  background:var(--sl-cream,#faf7f3); padding:var(--sp-20,80px) var(--sp-4,16px);
  font-family:var(--sl-font-body,"Inter","Helvetica Neue",Arial,system-ui,sans-serif); color:var(--sl-ink,#23242a);
}
.sl-revi__inner{max-width:1140px;margin:0 auto;}
.sl-revi__head{text-align:center;margin-bottom:var(--sp-10,40px);}
.sl-revi__eyebrow{
  text-transform:uppercase;letter-spacing:.12em; font-size:var(--fs-xs,.75rem);font-weight:600;
  color:var(--sl-accent,#c0395b);margin:0 0 var(--sp-2,8px);
}
html body .sl-revi__title{
  font-family:var(--sl-font-head,"Fraunces","Playfair Display",Georgia,serif);
  font-size:var(--fs-h2,clamp(1.6rem,3vw,2.25rem)); font-weight:600;line-height:var(--lh-snug,1.3);
  color:var(--sl-ink,#23242a);text-transform:none;margin:0 0 var(--sp-4,16px);
}
.sl-revi__seal{display:inline-flex;align-items:center;gap:var(--sp-2,8px);flex-wrap:wrap;justify-content:center;}
.sl-revi__stars{color:var(--sl-star,#f5a623);font-size:1.25rem;letter-spacing:2px;line-height:1;}
.sl-revi__score{font-weight:700;font-size:1.25rem;color:var(--sl-ink,#23242a);}
.sl-revi__count{font-size:var(--fs-sm,.875rem);color:var(--sl-ink-2,#5b5d66);}
.sl-revi__widget{min-height:120px;}
.sl-revi__widget .revi_widget_wide_889{max-width:1140px;margin:0 auto;}
.sl-revi__cta-wrap{text-align:center;margin-top:var(--sp-8,32px);}
html body .sl-revi__cta{
  display:inline-block; background:var(--sl-accent,#c0395b);color:#fff !important;
  font-weight:600;text-decoration:none; padding:12px 26px;border-radius:var(--r-pill,999px);
  box-shadow:var(--sh-cta,0 6px 18px rgba(192,57,91,.28)); transition:var(--t-base,200ms ease);
}
html body .sl-revi__cta:hover{background:var(--sl-accent-hover,#9c2c49);transform:translateY(-1px);color:#fff !important;}
html body .sl-revi__cta:focus-visible{outline:3px solid var(--sl-accent-ring,rgba(192,57,91,.30));outline-offset:2px;}
.sl-revi__grid{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-6,24px);grid-template-columns:repeat(3,1fr);}
.sl-revi__card{
  background:var(--sl-bg,#fff); border:1px solid var(--sl-line,#ece8e4); border-radius:var(--r-md,14px);
  padding:var(--sp-6,24px); box-shadow:var(--sh-card,0 1px 2px rgba(35,36,42,.04),0 8px 24px rgba(35,36,42,.06));
  display:flex;flex-direction:column;gap:var(--sp-3,12px);
}
.sl-revi__cardstars{color:var(--sl-star,#f5a623);letter-spacing:1px;line-height:1;}
.sl-revi__quote{margin:0;font-size:var(--fs-body,1rem);line-height:var(--lh-body,1.6);color:var(--sl-ink,#23242a);}
.sl-revi__author{margin:0;margin-top:auto;font-weight:600;font-size:var(--fs-sm,.875rem);color:var(--sl-ink,#23242a);}
.sl-revi__meta{font-weight:400;color:var(--sl-muted,#8a8c95);}
html body .revi_widget_wide_889{margin:var(--sp-6,24px) auto 0;max-width:1140px;}
html body .revi_align_center{text-align:center;}
html body .revi_colour{color:var(--sl-accent,#c0395b);}
@media (max-width:991px){ .sl-revi__grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:767px){
  .sl-revi{padding:var(--sp-12,48px) var(--sp-4,16px);}
  .sl-revi__grid{grid-template-columns:1fr;}
  .sl-revi__head{margin-bottom:var(--sp-8,32px);}
}
html body .sl-reviews{
  display:inline-flex; align-items:center; gap:10px; margin:10px 0 16px; padding:0;
  font-family:var(--sl-font-body); text-decoration:none !important; line-height:1; cursor:pointer;
  transition:opacity 200ms ease;
}
html body .sl-reviews:hover{ opacity:.85; }
html body .sl-reviews:focus-visible{ outline:3px solid rgba(192,57,91,.30); outline-offset:3px; border-radius:6px; }
html body .sl-reviews__stars{ display:inline-block; position:relative; font-size:18px; line-height:1; letter-spacing:1px; white-space:nowrap; flex:0 0 auto; }
html body .sl-reviews__stars::before{ content:"\2605\2605\2605\2605\2605"; color:#dcd7cf; }
html body .sl-reviews__stars::after{ content:"\2605\2605\2605\2605\2605"; color:var(--sl-star); position:absolute; left:0; top:0; overflow:hidden; width:96%; }
html body .sl-reviews__score{ font-size:15px; font-weight:600; color:var(--sl-ink); font-variant-numeric:tabular-nums; }
html body .sl-reviews__count{ font-size:14px; color:var(--sl-ink-2); border-bottom:1px solid var(--sl-line); padding-bottom:1px; transition:border-color 200ms ease, color 200ms ease; }
html body .sl-reviews:hover .sl-reviews__count{ color:var(--sl-accent); border-bottom-color:var(--sl-accent); }
html body .product-reviews-revi-loaded .sl-reviews{ display:none !important; }
@media (max-width:767px){
  html body .sl-reviews{ margin:8px 0 14px; }
  html body .sl-reviews__stars{ font-size:17px; }
}

/* ---------- 11. PAGINA DE CATEGORIA ---------- */
html body #content-wrapper #js-product-list-header,
html body #content-wrapper .block-category,
html body #content-wrapper #category .block-category{
  margin:0 0 var(--sp-6,24px) 0 !important;
  padding:var(--sp-8,32px) var(--sp-6,24px) var(--sp-6,24px) !important;
  background:var(--sl-cream,#faf7f3) !important;
  border:1px solid var(--sl-line,#ece8e4) !important;
  border-radius:var(--r-md,14px) !important;
  text-align:left !important;
}
html body #content-wrapper .block-category .category-cover,
html body #content-wrapper .category-cover{
  margin:0 0 var(--sp-4,16px) 0 !important; max-height:180px !important;
  overflow:hidden !important; border-radius:var(--r-sm,8px) !important;
}
html body #content-wrapper .block-category .category-cover img,
html body #content-wrapper .category-cover img{
  width:100% !important; height:180px !important; object-fit:cover !important; object-position:center !important; display:block !important;
}
html body #content-wrapper .block-category h1,
html body #content-wrapper #js-product-list-header h1,
html body #js-product-list-header .h1,
html body .page-header h1{
  font-family:var(--sl-font-head,"Fraunces","Playfair Display",Georgia,serif) !important;
  font-weight:600 !important; font-size:var(--fs-h2,clamp(1.6rem,3vw,2.25rem)) !important;
  line-height:var(--lh-snug,1.3) !important; letter-spacing:-.01em !important;
  color:var(--sl-ink,#23242a) !important; text-transform:none !important; margin:0 0 var(--sp-2,8px) 0 !important;
}
html body #content-wrapper .block-category .category-products-count,
html body #js-product-list-top .total-products,
html body #content-wrapper .block-category p.category-count{
  color:var(--sl-muted,#8a8c95) !important; font-size:var(--fs-sm,.875rem) !important; font-weight:500 !important; margin:0 !important;
}
html body #content-wrapper .breadcrumb,
html body nav.breadcrumb{
  margin:0 0 var(--sp-4,16px) 0 !important; padding:0 !important; background:transparent !important; font-size:var(--fs-sm,.875rem) !important;
}
html body .breadcrumb a{ color:var(--sl-ink-2,#5b5d66) !important; }
html body .breadcrumb a:hover{ color:var(--sl-accent,#c0395b) !important; }
html body .breadcrumb li:last-child a,
html body .breadcrumb .active{ color:var(--sl-muted,#8a8c95) !important; }
html body #content-wrapper .block-category #category-description,
html body #content-wrapper .block-category .category-description{
  font-size:var(--fs-sm,.875rem) !important; line-height:var(--lh-body,1.6) !important;
  color:var(--sl-ink-2,#5b5d66) !important; max-width:70ch !important; margin:var(--sp-2,8px) 0 0 0 !important;
}
html body #content-wrapper #js-product-list-top,
html body #content-wrapper .products-sort-order,
html body #content-wrapper #js-product-list-top .row{
  margin:0 0 var(--sp-4,16px) 0 !important; padding:0 !important; align-items:center !important;
}
html body #content-wrapper .products-sort-order .select-title,
html body #content-wrapper .sort-by-row .sort-by{
  text-transform:none !important; color:var(--sl-ink-2,#5b5d66) !important; font-size:var(--fs-sm,.875rem) !important;
}
html body #content-wrapper #js-product-list,
html body #content-wrapper #products .products,
html body #content-wrapper ul#product_list.products,
html body #content-wrapper .products.row{
  margin-top:0 !important; margin-bottom:var(--sp-12,48px) !important; row-gap:var(--sp-6,24px) !important;
}
html body #content-wrapper .product-miniature .thumbnail-container,
html body #content-wrapper .product-miniature article{
  border:1px solid var(--sl-line,#ece8e4) !important; border-radius:var(--r-md,14px) !important;
  box-shadow:var(--sh-card,0 1px 2px rgba(35,36,42,.04),0 8px 24px rgba(35,36,42,.06)) !important;
  overflow:hidden !important; transition:var(--t-base,200ms ease) !important; background:var(--sl-bg,#fff) !important;
}
html body #content-wrapper .product-miniature:hover .thumbnail-container,
html body #content-wrapper .product-miniature:hover article{
  transform:translateY(-4px) !important;
  box-shadow:var(--sh-card-hover,0 4px 12px rgba(35,36,42,.08),0 18px 40px rgba(192,57,91,.10)) !important;
  border-color:var(--sl-accent-soft,#fbeef2) !important;
}
html body #content-wrapper .product-miniature .thumbnail img{
  aspect-ratio:4/5 !important; width:100% !important; height:auto !important;
  object-fit:cover !important; transition:transform var(--t-base,200ms ease) !important;
}
html body #content-wrapper .product-miniature:hover .thumbnail img{ transform:scale(1.04) !important; }
html body #content-wrapper .product-miniature .product-title a{
  font-family:var(--sl-font-body,"Inter",Arial,sans-serif) !important; font-weight:600 !important;
  color:var(--sl-ink,#23242a) !important; text-transform:none !important; line-height:var(--lh-snug,1.3) !important;
  display:-webkit-box !important; -webkit-line-clamp:2 !important; -webkit-box-orient:vertical !important; overflow:hidden !important;
}
html body #content-wrapper .product-miniature .product-price-and-shipping .price,
html body #content-wrapper .product-miniature .product-price{
  color:var(--sl-accent,#c0395b) !important; font-weight:600 !important;
  font-size:var(--fs-h3,1.375rem) !important; font-variant-numeric:tabular-nums !important;
}
html body #content-wrapper .pagination,
html body #content-wrapper nav.pagination{ margin:var(--sp-8,32px) 0 var(--sp-12,48px) 0 !important; }
html body #content-wrapper .pagination .page-list a,
html body #content-wrapper .pagination .page-list span{ border-radius:var(--r-sm,8px) !important; color:var(--sl-ink-2,#5b5d66) !important; }
html body #content-wrapper .pagination .page-list .current a,
html body #content-wrapper .pagination .page-list li.active a,
html body #content-wrapper .pagination .page-list .current span{
  background:var(--sl-accent,#c0395b) !important; border-color:var(--sl-accent,#c0395b) !important; color:#fff !important;
}
html body #content-wrapper .pagination .page-list a:hover{ color:var(--sl-accent,#c0395b) !important; border-color:var(--sl-accent,#c0395b) !important; }
html body #content-wrapper .fn-seo-block{
  margin:var(--sp-12,48px) 0 var(--sp-8,32px) 0 !important; padding:var(--sp-8,32px) var(--sp-6,24px) !important;
  background:var(--sl-cream,#faf7f3) !important; border:1px solid var(--sl-line,#ece8e4) !important; border-radius:var(--r-md,14px) !important;
}
html body #content-wrapper .fn-seo-block,
html body #content-wrapper .fn-seo-block p,
html body #content-wrapper .fn-seo-block li{
  color:var(--sl-ink-2,#5b5d66) !important; font-size:var(--fs-sm,.875rem) !important; line-height:var(--lh-body,1.6) !important;
}
html body #content-wrapper .fn-seo-block h2,
html body #content-wrapper .fn-seo-block h3{
  font-family:var(--sl-font-head,"Fraunces",Georgia,serif) !important; font-weight:600 !important;
  color:var(--sl-ink,#23242a) !important; text-transform:none !important; font-size:var(--fs-h3,1.375rem) !important; margin:0 0 var(--sp-3,12px) 0 !important;
}
html body #content-wrapper .fn-seo-block a{ color:var(--sl-accent,#c0395b) !important; }
html body #content-wrapper .fn-seo-collapsible.is-collapsed .fn-seo-content{ position:relative !important; max-height:140px !important; overflow:hidden !important; }
html body #content-wrapper .fn-seo-collapsible.is-collapsed .fn-seo-content::after{
  content:"" !important; position:absolute !important; left:0; right:0; bottom:0; height:80px !important;
  background:linear-gradient(to bottom,rgba(250,247,243,0),var(--sl-cream,#faf7f3)) !important; pointer-events:none !important;
}
html body #content-wrapper .fn-seo-collapsible.is-expanded .fn-seo-content{ max-height:none !important; overflow:visible !important; }
html body #content-wrapper .fn-seo-toggle{
  display:inline-flex !important; align-items:center !important; gap:6px !important; margin-top:var(--sp-4,16px) !important;
  padding:8px 0 !important; background:none !important; border:0 !important; cursor:pointer !important;
  font-family:var(--sl-font-body,"Inter",Arial,sans-serif) !important; font-size:var(--fs-sm,.875rem) !important; font-weight:600 !important;
  color:var(--sl-accent,#c0395b) !important; text-transform:none !important;
}
html body #content-wrapper .fn-seo-toggle:hover{ color:var(--sl-accent-hover,#9c2c49) !important; }
html body #content-wrapper .fn-seo-toggle:focus-visible{ outline:3px solid var(--sl-accent-ring,rgba(192,57,91,.30)) !important; outline-offset:2px !important; border-radius:var(--r-sm,8px) !important; }
html body #content-wrapper .fn-seo-toggle .fn-seo-chevron{ transition:transform var(--t-base,200ms ease) !important; font-size:1em !important; }
html body #content-wrapper .fn-seo-collapsible.is-expanded .fn-seo-toggle .fn-seo-chevron{ transform:rotate(180deg) !important; }
html.no-js #content-wrapper .fn-seo-toggle{ display:none !important; }
html.no-js #content-wrapper .fn-seo-collapsible .fn-seo-content{ max-height:none !important; overflow:visible !important; }
html.no-js #content-wrapper .fn-seo-collapsible .fn-seo-content::after{ display:none !important; }
@media (max-width:767px){
  html body #content-wrapper #js-product-list-header,
  html body #content-wrapper .block-category{ padding:var(--sp-6,24px) var(--sp-4,16px) var(--sp-4,16px) !important; margin-bottom:var(--sp-4,16px) !important; }
  html body #content-wrapper .category-cover img,
  html body #content-wrapper .block-category .category-cover img{ height:120px !important; }
  html body #content-wrapper .category-cover{ max-height:120px !important; }
  html body #content-wrapper #js-product-list,
  html body #content-wrapper #products .products{ row-gap:var(--sp-4,16px) !important; }
  html body #content-wrapper .fn-seo-block{ padding:var(--sp-6,24px) var(--sp-4,16px) !important; }
  html body #content-wrapper .fn-seo-collapsible.is-collapsed .fn-seo-content{ max-height:110px !important; }
}

/* ---------- 12. FICHA DE PRODUCTO (PDP conversion) ---------- */
html body .product-information{ font-family:var(--sl-font-body); color:var(--sl-ink); }
html body .product-information .product-description{
  font-size:var(--fs-body); line-height:var(--lh-body); color:var(--sl-ink-2); margin-bottom:var(--sp-6);
}
html body .product-prices .current-price .current-price-value{
  font-family:var(--sl-font-body); font-size:clamp(2rem,4vw,2.6rem) !important; font-weight:600 !important;
  line-height:1.05; color:var(--sl-accent) !important; font-variant-numeric:tabular-nums; letter-spacing:-.01em;
}
html body .product-prices .tax-shipping-delivery-label{ font-size:var(--fs-sm); color:var(--sl-muted); margin-top:var(--sp-1); }
html body .product-add-to-cart .buy{ display:none !important; }
html body .product-quantity{ display:flex; align-items:stretch; gap:var(--sp-3); flex-wrap:wrap; }
html body #add-to-cart-or-refresh .product-add-to-cart .add{ flex:1 1 240px; display:flex; }
html body .product-quantity .qty{ flex:0 0 auto; }
html body .product-quantity .bootstrap-touchspin .form-control{
  height:54px; width:64px; text-align:center; font-weight:600; color:var(--sl-ink);
  border:1px solid var(--sl-line) !important; border-radius:var(--r-sm) 0 0 var(--r-sm) !important; box-shadow:none;
}
html body .product-quantity .bootstrap-touchspin .btn-touchspin{
  background:var(--sl-cream) !important; border:1px solid var(--sl-line) !important; color:var(--sl-ink-2) !important;
}
html body .product-quantity .bootstrap-touchspin .btn-touchspin:hover{ background:var(--sl-accent-soft) !important; color:var(--sl-accent) !important; }
html body .product-variants .control-label{ font-weight:600; color:var(--sl-ink); text-transform:none; }
html body .product-variants .input-container label{
  display:inline-flex; align-items:center; border:1px solid var(--sl-line); border-radius:var(--r-pill);
  padding:6px 16px; margin:0 8px 8px 0; cursor:pointer;
  transition:border-color var(--t-base),background var(--t-base),color var(--t-base); color:var(--sl-ink);
}
html body .product-variants .input-container label:hover{ border-color:var(--sl-accent); background:var(--sl-accent-soft); }
html body .product-variants .input-radio{ position:absolute; opacity:0; }
html body .product-variants .input-radio:checked + .radio-label{ color:var(--sl-accent); font-weight:600; }
html body .product-variants .input-container label:has(.input-radio:checked){ border-color:var(--sl-accent); background:var(--sl-accent-soft); }
html body .product-additional-info #ddw-eta{
  display:flex; align-items:center; gap:var(--sp-2); flex-wrap:wrap; margin-top:var(--sp-4);
  padding:12px 16px; background:var(--sl-accent-soft); border:1px solid rgba(192,57,91,.18);
  border-radius:var(--r-md); color:var(--sl-ink) !important; font-size:var(--fs-sm); font-weight:500; line-height:var(--lh-snug);
}
html body .product-additional-info #ddw-eta::before{
  content:"Pide antes de las 16:30 y sale hoy mismo."; flex:1 1 100%; order:-1; margin-bottom:6px;
  color:var(--sl-ink); font-weight:600; font-size:var(--fs-body); line-height:var(--lh-snug);
}
html body .product-additional-info #ddw-eta .material-icons{ color:var(--sl-accent); font-size:20px; }
html body .product-additional-info #ddw-eta .eta{ color:var(--sl-accent); font-weight:700; white-space:nowrap; }
html body .blockreassurance_product{
  margin-top:var(--sp-6); padding:var(--sp-4); background:var(--sl-cream);
  border:1px solid var(--sl-line); border-radius:var(--r-md);
}
html body .blockreassurance_product > div{ display:flex; align-items:flex-start; gap:var(--sp-3); padding:10px 0; }
html body .blockreassurance_product > div:not(:last-child){ border-bottom:1px solid var(--sl-line); }
html body .blockreassurance_product .item-product::before{
  content:""; display:inline-block; width:22px;height:22px; flex:0 0 22px; border-radius:var(--r-pill); background:var(--sl-eco);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/14px no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/14px no-repeat;
}
html body .blockreassurance_product .block-title{ display:block; font-weight:600; color:var(--sl-ink) !important; font-size:var(--fs-sm); text-transform:none; }
html body .blockreassurance_product p{ margin:2px 0 0; color:var(--sl-ink-2) !important; font-size:var(--fs-sm); line-height:var(--lh-snug); }
html body .blockreassurance_product .payment-detail{ margin-top:var(--sp-3); padding-top:var(--sp-3); border-top:1px solid var(--sl-line); display:flex;align-items:center;gap:var(--sp-3); }
html body .blockreassurance_product .payment-detail img{ max-height:26px; width:auto; }
html body .blockreassurance_product .payment-detail p{ margin:0; font-size:var(--fs-xs); color:var(--sl-muted) !important; }
html body .sl-pdp-trust{ margin-top:var(--sp-4); padding:var(--sp-4); background:var(--sl-cream); border:1px solid var(--sl-line); border-radius:var(--r-md); display:grid; gap:10px; }
html body .sl-pdp-trust__item{ display:flex;align-items:center;gap:var(--sp-3); font-size:var(--fs-sm); color:var(--sl-ink); line-height:var(--lh-snug); }
html body .sl-pdp-trust__item strong{ font-weight:600; }
html body .sl-pdp-trust__ic{
  flex:0 0 22px;width:22px;height:22px;border-radius:var(--r-pill); background:var(--sl-eco);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/14px no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/14px no-repeat;
}
html body #product .product-container,
html body.page-product .row.product-container,
html body #product #content-wrapper .row{ }
@media (max-width:767px){
  html body #product .product-container,
  html body.page-product .row.product-container,
  html body #product #content-wrapper .row{ display:block !important; }
  html body #product .product-cover,
  html body #product #content.product-cover,
  html body #product .col-md-6,
  html body #product .product-information,
  html body #product .product-actions{
    width:100% !important; max-width:100% !important; flex:0 0 100% !important; float:none !important;
    margin-left:0 !important; margin-right:0 !important;
    padding-left:var(--sp-4,16px) !important; padding-right:var(--sp-4,16px) !important;
  }
  html body #product .product-cover img,
  html body #product .product-cover .layer img,
  html body #product .images-container img{ width:100% !important; height:auto !important; border-radius:var(--r-md,14px) !important; }
  html body #product .product-images,
  html body #product .js-qv-mask{
    display:flex !important; gap:var(--sp-2,8px) !important; overflow-x:auto !important; -webkit-overflow-scrolling:touch !important; scrollbar-width:none !important;
  }
  html body #product .product-images::-webkit-scrollbar{display:none !important;}
  html body #product h1,
  html body #product .product-information h1,
  html body #product .page-title{
    font-family:var(--sl-font-head,Georgia,serif) !important; font-size:var(--fs-h2,1.6rem) !important;
    line-height:var(--lh-snug,1.3) !important; font-weight:600 !important; color:var(--sl-ink,#23242a) !important;
    text-transform:none !important; margin:var(--sp-4,16px) 0 var(--sp-2,8px) !important;
  }
  html body #product .product-prices .current-price,
  html body #product .product-price,
  html body #product .current-price-value{
    font-family:var(--sl-font-body,Arial,sans-serif) !important; font-size:1.75rem !important;
    font-weight:600 !important; color:var(--sl-accent,#c0395b) !important; font-variant-numeric:tabular-nums !important;
  }
  html body #product .product-description{ font-size:var(--fs-body,1rem) !important; line-height:var(--lh-body,1.6) !important; color:var(--sl-ink-2,#5b5d66) !important; }
  html body #product .product-quantity .qty,
  html body #product .product-variants .input-container{ margin-bottom:var(--sp-4,16px) !important; }
  html body #product .product-quantity #quantity_wanted{ min-height:48px !important; font-size:1rem !important; }
  html body #product .sl-deadline{
    display:flex !important; align-items:center !important; gap:var(--sp-2,8px) !important;
    margin:var(--sp-3,12px) 0 !important; padding:var(--sp-3,12px) var(--sp-4,16px) !important;
    background:var(--sl-accent-soft,#fbeef2) !important; border-radius:var(--r-sm,8px) !important;
    font-size:var(--fs-sm,.875rem) !important; color:var(--sl-ink,#23242a) !important; line-height:var(--lh-snug,1.3) !important;
  }
  html body #product .sl-deadline svg{flex:0 0 auto;color:var(--sl-accent,#c0395b);}
  html body#product, html body.page-product{padding-bottom:84px !important;}
}

/* ---------- 13. URGENCIA / SHIPPING (banda ficha + chip home) ---------- */
html body .fn-urgency{
  display:flex;align-items:center;gap:var(--sp-3); margin:var(--sp-4) 0; padding:var(--sp-3) var(--sp-4);
  background:var(--sl-accent-soft); border:1px solid var(--sl-accent-ring); border-left:4px solid var(--sl-accent);
  border-radius:var(--r-md); font-family:var(--sl-font-body); color:var(--sl-ink); line-height:var(--lh-snug);
}
html body .fn-urgency__icon{ flex:0 0 auto;width:26px;height:26px;color:var(--sl-accent); }
html body .fn-urgency__icon svg{display:block;width:100%;height:100%}
html body .fn-urgency__text{display:flex;flex-direction:column;gap:2px;min-width:0}
html body .fn-urgency__main{ font-size:var(--fs-body);font-weight:600;color:var(--sl-ink); }
html body .fn-urgency__main strong{color:var(--sl-accent);font-weight:700}
html body .fn-urgency__sub{ font-size:var(--fs-sm);font-weight:500;color:var(--sl-ink-2); display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap; }
html body .fn-urgency__sub .fn-urgency__pill{ display:inline-flex;align-items:center;gap:6px; color:var(--sl-success);font-weight:600;white-space:nowrap; }
html body .fn-urgency__sub .fn-urgency__pill svg{ width:14px;height:14px;color:var(--sl-eco);flex:0 0 auto; }
html body .fn-urgency__margin{ margin-top:2px;font-size:var(--fs-xs);font-weight:600; color:var(--sl-accent-hover); }
html body .fn-urgency__margin[hidden]{display:none}
html body .fn-urgency.is-next-day{ background:var(--sl-cream); border-color:var(--sl-line); border-left-color:var(--sl-leaf); }
html body .fn-urgency.is-next-day .fn-urgency__icon,
html body .fn-urgency.is-next-day .fn-urgency__main strong{color:var(--sl-leaf)}
html body .fn-urgency-home{
  display:inline-flex;align-items:center;gap:var(--sp-2); padding:var(--sp-2) var(--sp-4);
  background:var(--sl-cream); border:1px solid var(--sl-line); border-radius:var(--r-pill);
  font-family:var(--sl-font-body); font-size:var(--fs-sm);font-weight:600;color:var(--sl-ink); line-height:1;
}
html body .fn-urgency-home svg{width:16px;height:16px;color:var(--sl-accent);flex:0 0 auto}
html body .fn-urgency-home strong{color:var(--sl-accent);font-weight:700}
html body .fn-urgency-home .fn-urgency-home__dot{ width:4px;height:4px;border-radius:50%;background:var(--sl-muted);flex:0 0 auto; }
@media (max-width:767px){
  html body .fn-urgency{margin:var(--sp-3) 0;padding:var(--sp-3)}
  html body .fn-urgency__main{font-size:var(--fs-sm)}
  html body .fn-urgency__sub{font-size:var(--fs-xs)}
  html body .fn-urgency-home{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){ html body .fn-urgency,html body .fn-urgency-home{transition:none} }

/* ---------- 14. CARRITO VACIO (escaparate) ---------- */
html body .cart-grid:has(.no-items) .cart-grid-right,
html body .cart-grid:has(.fn-cart-empty) .cart-grid-right{ display:none !important; }
html body .cart-grid:has(.fn-cart-empty) .cart-grid-body,
html body .cart-grid:has(.no-items) .cart-grid-body{ width:100% !important; flex:0 0 100% !important; max-width:100% !important; }
html body .cart-overview.js-cart .no-items > .alert,
html body .cart-grid-body .no-items .cart-empty{ display:none !important; }
.fn-cart-empty{
  max-width:760px; margin:0 auto; padding:8px 0 16px;
  font-family:var(--sl-font-body,"Inter","Helvetica Neue",Arial,system-ui,sans-serif);
  color:var(--sl-ink,#23242a); text-align:center;
}
.fn-empty-hero{ background:var(--sl-cream,#faf7f3); border:1px solid var(--sl-line,#ece8e4); border-radius:var(--r-lg,20px); padding:40px 24px; }
.fn-empty-icon{
  width:64px; height:64px; border-radius:999px; background:var(--sl-accent-soft,#fbeef2);
  display:inline-flex; align-items:center; justify-content:center; margin-bottom:18px;
}
.fn-empty-title{
  font-family:var(--sl-font-head,"Fraunces","Playfair Display",Georgia,serif); font-size:clamp(1.6rem,4vw,2.1rem);
  font-weight:600; line-height:1.15; letter-spacing:-.01em; color:var(--sl-ink,#23242a); margin:0 0 8px; text-transform:none;
}
.fn-empty-sub{ font-size:1.05rem; color:var(--sl-ink-2,#5b5d66); line-height:1.6; max-width:460px; margin:0 auto 22px; }
.fn-empty-cta{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-bottom:14px; }
.fn-cart-empty .fn-btn{
  display:inline-flex; align-items:center; justify-content:center; font-weight:600; font-size:1rem; line-height:1;
  text-decoration:none; border-radius:var(--r-pill,999px); transition:all 200ms ease; cursor:pointer;
}
.fn-cart-empty .fn-btn--primary{
  background:var(--sl-accent,#c0395b) !important; color:#fff !important; padding:14px 26px;
  border:1px solid var(--sl-accent,#c0395b); box-shadow:var(--sh-cta,0 6px 18px rgba(192,57,91,.28));
}
.fn-cart-empty .fn-btn--primary:hover{ background:var(--sl-accent-hover,#9c2c49) !important; border-color:var(--sl-accent-hover,#9c2c49); transform:translateY(-1px); }
.fn-cart-empty .fn-btn--ghost{ background:transparent !important; color:var(--sl-accent,#c0395b) !important; padding:13px 24px; border:1px solid var(--sl-accent,#c0395b); }
.fn-cart-empty .fn-btn--ghost:hover{ background:var(--sl-accent-soft,#fbeef2) !important; }
.fn-cart-empty .fn-btn:focus-visible{ outline:3px solid var(--sl-accent-ring,rgba(192,57,91,.30)); outline-offset:2px; }
.fn-empty-cut{ font-size:.82rem; color:var(--sl-muted,#8a8c95); margin:0; display:inline-flex; align-items:center; gap:6px; }
.fn-empty-eyebrow{ font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; color:var(--sl-muted,#8a8c95); margin:24px 0 12px; }
.fn-empty-cats{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.fn-cart-empty .fn-cat{
  background:var(--sl-bg,#fff); border:1px solid var(--sl-line,#ece8e4); border-radius:var(--r-md,14px);
  padding:18px 16px; text-decoration:none; display:flex; flex-direction:column; align-items:center; gap:2px; transition:all 200ms ease;
}
.fn-cart-empty .fn-cat:hover{
  transform:translateY(-3px); border-color:var(--sl-accent-soft,#fbeef2);
  box-shadow:var(--sh-card-hover,0 4px 12px rgba(35,36,42,.08),0 18px 40px rgba(192,57,91,.10));
}
.fn-cat-ico{ margin-bottom:6px; }
.fn-cat-name{ font-weight:600; color:var(--sl-ink,#23242a); font-size:1rem; }
.fn-cat-hint{ font-size:.82rem; color:var(--sl-muted,#8a8c95); }
.fn-empty-trust{ list-style:none; margin:24px 0 0; padding:18px 0 0; border-top:1px solid var(--sl-line,#ece8e4); display:flex; gap:18px; justify-content:center; flex-wrap:wrap; }
.fn-empty-trust li{ font-size:.85rem; color:var(--sl-ink-2,#5b5d66); display:inline-flex; align-items:center; gap:6px; }
@media (max-width:767px){
  .fn-empty-hero{ padding:32px 18px; }
  .fn-empty-cta .fn-btn{ width:100%; min-height:48px; }
  .fn-empty-cats{ grid-template-columns:1fr; }
  .fn-empty-trust{ gap:10px 16px; }
}

/* ---------- 15. STICKY BUY BAR MOVIL ---------- */
html body .sl-buybar{
  position:fixed; left:0; right:0; bottom:0; z-index:1090; display:flex; align-items:center; gap:var(--sp-3,12px);
  padding:10px var(--sp-4,16px); padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));
  background:var(--sl-bg,#fff); border-top:1px solid var(--sl-line,#ece8e4);
  box-shadow:0 -6px 20px rgba(35,36,42,.12); transform:translateY(120%);
  transition:transform 260ms ease, bottom 200ms ease; will-change:transform;
}
html body .sl-buybar.is-visible{transform:translateY(0);}
html body .sl-buybar.is-above-cookies{bottom:56px;}
html body .sl-buybar__thumb{
  flex:0 0 auto; width:44px; height:44px; border-radius:var(--r-sm,8px); object-fit:cover;
  border:1px solid var(--sl-line,#ece8e4); background:var(--sl-cream,#faf7f3);
}
html body .sl-buybar__info{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; line-height:1.15; }
html body .sl-buybar__name{
  font-family:var(--sl-font-body,Arial,sans-serif); font-size:var(--fs-sm,.875rem); font-weight:500;
  color:var(--sl-ink-2,#5b5d66); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
html body .sl-buybar__price{
  font-family:var(--sl-font-body,Arial,sans-serif); font-size:1.125rem; font-weight:600;
  color:var(--sl-accent,#c0395b); font-variant-numeric:tabular-nums;
}
html body .sl-buybar__btn{
  flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-2,8px);
  min-height:48px; padding:0 var(--sp-6,24px); border:0; border-radius:var(--r-pill,999px);
  background:var(--sl-accent,#c0395b); color:#fff !important; font-family:var(--sl-font-body,Arial,sans-serif);
  font-size:1rem; font-weight:600; text-transform:none; cursor:pointer;
  box-shadow:var(--sh-cta,0 6px 18px rgba(192,57,91,.28));
  transition:background var(--t-base,200ms ease), transform var(--t-base,200ms ease); -webkit-tap-highlight-color:transparent;
}
html body .sl-buybar__btn:hover,
html body .sl-buybar__btn:focus-visible{ background:var(--sl-accent-hover,#9c2c49); }
html body .sl-buybar__btn:active{transform:translateY(1px);}
html body .sl-buybar__btn:focus-visible{ outline:3px solid var(--sl-accent-ring,rgba(192,57,91,.30)); outline-offset:2px; }
html body .sl-buybar__btn[disabled],
html body .sl-buybar__btn.is-disabled{ background:var(--sl-muted,#8a8c95) !important; box-shadow:none; cursor:not-allowed; }
html body .sl-buybar__btn svg{flex:0 0 auto;}
@media (min-width:768px){ html body .sl-buybar{display:none !important;} }
@media (prefers-reduced-motion:reduce){ html body .sl-buybar{transition:none;} }

/* ---------- 16. FOOTER ---------- */
html body #footer,
html body .footer-container{
  background:var(--sl-cream) !important; color:var(--sl-ink-2) !important; border-top:1px solid var(--sl-line) !important;
  padding-top:48px !important; font-family:var(--sl-font-body) !important; font-size:.9375rem !important; line-height:1.6 !important;
}
html body #footer *, html body .footer-container *{ font-family:var(--sl-font-body) !important; }
html body #footer .links h3,
html body #footer .blockcms h3,
html body #footer .block-contact h3,
html body #footer .block_newsletter h3,
html body .footer-container h3.title,
html body .footer-container .h3,
html body #footer .footer-block .title{
  color:var(--sl-ink) !important; font-weight:600 !important; font-size:1rem !important;
  letter-spacing:.01em !important; text-transform:none !important; margin-bottom:16px !important;
}
html body #footer a,
html body .footer-container a,
html body #footer .links a,
html body #footer .blockcms a{
  color:var(--sl-ink-2) !important; text-decoration:none !important; transition:color 200ms ease !important;
}
html body #footer a:hover, html body #footer a:focus,
html body .footer-container a:hover, html body .footer-container a:focus{
  color:var(--sl-accent) !important; text-decoration:underline !important; text-underline-offset:3px !important; text-decoration-thickness:1px !important;
}
html body #footer li{ margin-bottom:8px !important; list-style:none !important; }
html body #footer .block-contact,
html body #footer #block-contact{ color:var(--sl-ink-2) !important; }
html body #footer .block-contact a[href^="tel:"]{ color:var(--sl-accent) !important; font-weight:600 !important; }
html body #footer .block-social ul,
html body #footer .social-sharing,
html body #footer ul.social-share-buttons{ display:flex !important; flex-wrap:wrap !important; gap:10px !important; padding:0 !important; margin:0 !important; }
html body #footer .block-social li,
html body #footer .social-sharing li,
html body #footer ul.social-share-buttons li{ margin:0 !important; list-style:none !important; background:none !important; }
html body #footer .block-social li a,
html body #footer .social-sharing li a,
html body #footer ul.social-share-buttons li a{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:40px !important; height:40px !important; border-radius:999px !important; background-color:#ffffff !important;
  border:1px solid var(--sl-line) !important; color:var(--sl-ink) !important;
  background-position:center !important; background-repeat:no-repeat !important;
  transition:transform 200ms ease, background-color 200ms ease, border-color 200ms ease, color 200ms ease !important;
}
html body #footer .block-social li a:hover,
html body #footer .social-sharing li a:hover,
html body #footer ul.social-share-buttons li a:hover{
  background-color:var(--sl-accent) !important; border-color:var(--sl-accent) !important; color:#ffffff !important; transform:translateY(-2px) !important;
}
html body #footer .block-social li a:hover i,
html body #footer .social-sharing li a:hover i{ color:#ffffff !important; }
html body #footer .block-social li a:hover{ filter:none !important; }
html body #footer img[src*="/img/cms/z"],
html body #footer .blockcms img[src*="z"],
html body #footer .payment img,
html body #footer .footer-payment img{
  height:30px !important; width:auto !important; margin:4px 6px 4px 0 !important; padding:5px 8px !important;
  background:#ffffff !important; border:1px solid var(--sl-line) !important; border-radius:8px !important;
  vertical-align:middle !important; filter:grayscale(100%) opacity(.85) !important;
  transition:filter 200ms ease, border-color 200ms ease, box-shadow 200ms ease !important;
}
html body #footer img[src*="/img/cms/z"]:hover,
html body #footer .blockcms img[src*="z"]:hover,
html body #footer .payment img:hover,
html body #footer .footer-payment img:hover{
  filter:grayscale(0%) opacity(1) !important; border-color:var(--sl-accent-soft) !important; box-shadow:0 2px 8px rgba(35,36,42,.08) !important;
}
html body #footer .copyright,
html body #footer .footer-copyright,
html body #footer .block-footer-bottom,
html body .footer-container .copyright{
  margin-top:32px !important; padding:18px 0 !important; border-top:1px solid var(--sl-line) !important;
  color:var(--sl-muted) !important; font-size:.8125rem !important; text-align:center !important;
}
html body #footer .copyright a,
html body #footer .footer-copyright a{ color:var(--sl-ink-2) !important; }
html body #footer .copyright a:hover{ color:var(--sl-accent) !important; }
html body #footer .block_newsletter input[type="email"]{
  border:1px solid var(--sl-line) !important; border-radius:999px 0 0 999px !important; background:#fff !important; color:var(--sl-ink) !important;
}
html body #footer .block_newsletter input[type="email"]:focus{
  outline:3px solid var(--sl-accent-ring,rgba(192,57,91,.30)) !important; outline-offset:1px !important; border-color:var(--sl-accent) !important;
}
html body #footer .block_newsletter button[type="submit"],
html body #footer .block_newsletter .btn{
  background:var(--sl-accent) !important; border-color:var(--sl-accent) !important; color:#fff !important;
  border-radius:0 999px 999px 0 !important; font-weight:600 !important;
}
html body #footer .block_newsletter button[type="submit"]:hover,
html body #footer .block_newsletter .btn:hover{ background:var(--sl-accent-hover) !important; border-color:var(--sl-accent-hover) !important; }
html body #footer a:focus-visible,
html body #footer button:focus-visible{ outline:3px solid var(--sl-accent-ring,rgba(192,57,91,.30)) !important; outline-offset:2px !important; border-radius:6px; }
html body #footer .secure-payment-note{
  display:inline-flex !important; align-items:center !important; gap:6px !important;
  color:var(--sl-success,#2e7d4f) !important; font-size:.8125rem !important; font-weight:500 !important;
}
@media (max-width:767px){
  html body #footer, html body .footer-container{ padding-top:32px !important; text-align:left !important; }
  html body #footer .footer-block,
  html body #footer .links,
  html body #footer .blockcms,
  html body #footer .block-contact{ border-bottom:1px solid var(--sl-line) !important; padding-bottom:16px !important; margin-bottom:16px !important; }
  html body #footer .block-social ul,
  html body #footer .social-sharing{ justify-content:flex-start !important; }
  html body #footer img[src*="/img/cms/z"]{ height:26px !important; }
}

/* ============================================================
   17. CTAs / BOTONES — vencen al verde #4cbb6c !important del tema
   ============================================================ */
/* 17.1 PRIMARIO: comprar / anadir al carrito / btn-primary */
html body span.ajax_add_to_cart_button.add-to-cart,
html body span.ajax_add_to_cart_button.add-to-cart.btn-default,
html body .ajax_add_to_cart_button.add-to-cart.button,
html body .product-add-to-cart .btn,
html body #add-to-cart-or-refresh .add-to-cart,
html body #add-to-cart-or-refresh button.add-to-cart,
html body .btn-primary,
html body .btn.btn-primary,
html body button.btn-primary,
html body input[type="submit"].btn-primary,
html body .add-to-cart.btn{
  background:var(--sl-accent) !important;
  background-color:var(--sl-accent) !important;
  background-image:none !important;
  border:1px solid var(--sl-accent) !important;
  color:#fff !important;
  font-family:var(--sl-font-body) !important;
  font-weight:600 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  border-radius:var(--r-pill) !important;
  padding:12px 22px !important;
  line-height:1.2 !important;
  box-shadow:var(--sh-cta) !important;
  text-shadow:none !important;
  cursor:pointer !important;
  transition:background-color var(--t-base),transform var(--t-base),box-shadow var(--t-base) !important;
}
html body span.ajax_add_to_cart_button.add-to-cart *,
html body .product-add-to-cart .btn *,
html body #add-to-cart-or-refresh .add-to-cart *,
html body .btn-primary *{ color:#fff !important; }
html body span.ajax_add_to_cart_button.add-to-cart:hover,
html body span.ajax_add_to_cart_button.add-to-cart:focus,
html body .product-add-to-cart .btn:hover,
html body .product-add-to-cart .btn:focus,
html body #add-to-cart-or-refresh .add-to-cart:hover,
html body #add-to-cart-or-refresh .add-to-cart:focus,
html body .btn-primary:hover,
html body .btn-primary:focus,
html body button.btn-primary:hover,
html body input[type="submit"].btn-primary:hover,
html body .add-to-cart.btn:hover{
  background:var(--sl-accent-hover) !important;
  background-color:var(--sl-accent-hover) !important;
  background-image:none !important;
  border-color:var(--sl-accent-hover) !important;
  color:#fff !important;
  transform:translateY(-1px) !important;
  box-shadow:0 8px 22px rgba(192,57,91,.34) !important;
}
html body span.ajax_add_to_cart_button.add-to-cart:active,
html body .product-add-to-cart .btn:active,
html body #add-to-cart-or-refresh .add-to-cart:active,
html body .btn-primary:active{
  transform:translateY(0) !important;
  box-shadow:0 3px 10px rgba(192,57,91,.30) !important;
}
html body span.ajax_add_to_cart_button.add-to-cart:focus-visible,
html body .product-add-to-cart .btn:focus-visible,
html body #add-to-cart-or-refresh .add-to-cart:focus-visible,
html body .btn-primary:focus-visible,
html body .btn-secondary:focus-visible{
  outline:3px solid var(--sl-accent-ring) !important;
  outline-offset:2px !important;
}
/* 17.2 FICHA: boton dominante a ancho completo */
html body #add-to-cart-or-refresh .add-to-cart,
html body #add-to-cart-or-refresh button.add-to-cart,
html body #add-to-cart-or-refresh .product-add-to-cart .add .btn.add-to-cart,
html body .product-add-to-cart .btn.btn-primary.add-to-cart{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-height:54px !important;
  padding:16px 28px !important;
  font-size:1.0625rem !important;
  font-weight:600 !important;
  border-radius:var(--r-pill) !important;
}
html body #add-to-cart-or-refresh .product-add-to-cart .add .btn.add-to-cart,
html body .product-add-to-cart .btn.btn-primary.add-to-cart{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:var(--sp-2) !important;
}
html body .product-add-to-cart .product-quantity .add{ display:block !important; width:100% !important; }
html body .product-add-to-cart .btn.add-to-cart .material-icons{ color:#fff; }
/* 17.3 SECUNDARIO: vista rapida / btn-default fantasma (excluye CTAs de compra) */
html body .quick-view,
html body a.quick-view,
html body .btn-secondary,
html body .btn.btn-secondary,
html body a.btn-default:not(.add-to-cart):not(.ajax_add_to_cart_button),
html body .btn-default:not(.add-to-cart):not(.ajax_add_to_cart_button):not(.btn-primary){
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  color:var(--sl-accent) !important;
  border:1px solid var(--sl-accent) !important;
  border-radius:var(--r-pill) !important;
  font-family:var(--sl-font-body) !important;
  font-weight:600 !important;
  text-transform:none !important;
  box-shadow:none !important;
  transition:background-color var(--t-base),color var(--t-base),border-color var(--t-base) !important;
}
html body .quick-view:hover,
html body a.quick-view:hover,
html body .btn-secondary:hover,
html body a.btn-default:not(.add-to-cart):not(.ajax_add_to_cart_button):hover,
html body .btn-default:not(.add-to-cart):not(.ajax_add_to_cart_button):not(.btn-primary):hover{
  background:var(--sl-accent-soft) !important;
  background-color:var(--sl-accent-soft) !important;
  color:var(--sl-accent-hover) !important;
  border-color:var(--sl-accent) !important;
}
/* 17.4 DISABLED / SIN STOCK: gris solido, sin acento */
html body span.ajax_add_to_cart_button.add-to-cart.disabled,
html body .product-add-to-cart .btn.disabled,
html body .product-add-to-cart .btn:disabled,
html body #add-to-cart-or-refresh .add-to-cart.disabled,
html body #add-to-cart-or-refresh .add-to-cart:disabled,
html body .btn.disabled,
html body .btn:disabled,
html body .btn-primary.disabled,
html body .btn-primary:disabled,
html body button[disabled],
html body .add-to-cart[disabled]{
  background:#e7e5e2 !important;
  background-color:#e7e5e2 !important;
  background-image:none !important;
  border-color:#dcd9d5 !important;
  color:#9a9690 !important;
  box-shadow:none !important;
  cursor:not-allowed !important;
  opacity:1 !important;
  transform:none !important;
  pointer-events:none !important;
}
html body .btn.disabled *,
html body .add-to-cart.disabled *,
html body button[disabled] *{ color:#9a9690 !important; }
/* 17.5 mata Title Case heredado en CTAs */
html body .add-to-cart,
html body .btn-primary,
html body .product-add-to-cart .btn,
html body .quick-view{ text-transform:none !important; }

/* ============================================================
   18. MOBILE HOME (<=767px) — grid 2 col, header, tap targets
   ============================================================ */
@media (max-width:767px){
  html body{ -webkit-text-size-adjust:100%; }
  html body img{ max-width:100%; height:auto; }

  html body .elementor-element-txrshqm .elementor-container > .elementor-row{ display:flex !important; align-items:center !important; flex-wrap:nowrap !important; }
  html body .elementor-element-txrshqm .elementor-column.elementor-sm-33{ display:flex !important; align-items:center !important; }
  html body .elementor-element-txrshqm .elementor-element-dqbyjbr{ flex:0 0 auto !important; }
  html body .elementor-element-txrshqm .elementor-element-ozknwlx{ flex:1 1 auto !important; justify-content:center !important; }
  html body .elementor-element-txrshqm .elementor-element-jpvbmwo{ flex:0 0 auto !important; justify-content:flex-end !important; }
  html body .elementor-element-txrshqm .elementor-widget-wrap{ display:flex !important; align-items:center !important; flex-wrap:nowrap !important; gap:6px; }
  html body #menu-icon{ display:inline-flex !important; align-items:center; justify-content:center; min-width:44px; min-height:44px; margin:0; cursor:pointer; }
  html body #menu-icon i{ font-size:26px !important; color:var(--sl-ink) !important; line-height:1; }
  html body .elementor-element-txrshqm .pos-search__toggle{ display:inline-flex !important; align-items:center; justify-content:center; min-width:44px; min-height:44px; }
  html body .elementor-element-txrshqm .pos-search__toggle i{ font-size:22px !important; color:var(--sl-ink) !important; }
  html body .elementor-element-txrshqm #_desktop_logo .site-logo img{ max-height:46px !important; width:auto !important; margin:0 auto !important; display:block !important; }
  html body .elementor-element-txrshqm .pos-account .account-login{ min-width:44px; min-height:44px; display:inline-flex !important; align-items:center; justify-content:center; }
  html body .elementor-element-txrshqm .pos-account .account-login i{ font-size:24px !important; color:var(--sl-ink) !important; }
  html body .elementor-element-txrshqm .pos-account .account-login span{ display:none !important; }
  html body .elementor-element-txrshqm .blockcart > a{ min-width:44px; min-height:44px; display:inline-flex !important; align-items:center; justify-content:center; gap:4px; position:relative; }
  html body .elementor-element-txrshqm .blockcart .icon-rt-bag2{ font-size:24px !important; color:var(--sl-ink) !important; }
  html body .elementor-element-txrshqm .blockcart .cart-products-total{ font-family:var(--sl-font-body); font-size:13px; font-weight:600; color:var(--sl-ink); }
  html body .elementor-element-txrshqm .blockcart .cart-products-count{
    background:var(--sl-accent) !important; color:#fff !important; font-family:var(--sl-font-body); font-size:11px; font-weight:700;
    min-width:18px; height:18px; line-height:18px; text-align:center; border-radius:var(--r-pill); padding:0 5px;
  }
  html body #mobile_menu_wrapper{ background:var(--sl-bg) !important; }
  html body #mobile_menu_wrapper .menu-close{
    font-family:var(--sl-font-body); font-weight:600; color:var(--sl-ink) !important; min-height:48px;
    display:flex; align-items:center; gap:8px; padding:0 16px !important; border-bottom:1px solid var(--sl-line);
  }
  html body #mobile_menu_wrapper .mobile-menu .menu-item > a{
    font-family:var(--sl-font-body) !important; font-size:16px !important; font-weight:600 !important; color:var(--sl-ink) !important;
    text-transform:none !important; min-height:52px; display:flex; align-items:center; padding:0 16px !important; border-bottom:1px solid var(--sl-line) !important;
  }
  html body #mobile_menu_wrapper .mobile-menu .pos-menu-col .column_title{
    font-family:var(--sl-font-body) !important; font-size:15px !important; font-weight:500 !important; color:var(--sl-ink-2) !important;
    text-transform:none !important; min-height:46px; display:flex; align-items:center; padding:0 16px 0 28px !important;
  }
  html body #mobile_menu_wrapper .icon-drop-mobile{ min-width:46px; min-height:46px; display:inline-flex !important; align-items:center; justify-content:center; }
  html body #mobile_menu_wrapper .icon-drop-mobile i{ color:var(--sl-ink-2) !important; }

  html body .elementor-heading-title{
    font-family:var(--sl-font-head) !important; font-size:clamp(1.8rem,7vw,2.4rem) !important; line-height:1.15 !important;
    letter-spacing:-.01em !important; font-weight:600 !important; color:var(--sl-ink) !important; text-transform:none !important;
  }
  html body #header .elementor-text-editor p,
  html body .elementor-widget-text-editor .elementor-text-editor p{ line-height:1.55; }
  html body .elementor-element-uf9skvg .elementor-text-editor{ text-align:center; font-size:13px; line-height:1.3; }

  html body .products,
  html body ul.products,
  html body .product_list,
  html body .featured-products .products,
  html body .productscategory .products{
    display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:14px !important;
    margin-left:0 !important; margin-right:0 !important; padding-left:0 !important; padding-right:0 !important;
  }
  html body .products > .product-miniature,
  html body .products > li,
  html body .product_list > .product-miniature,
  html body .product_list > li,
  html body .js-product,
  html body .product-miniature{ width:100% !important; max-width:100% !important; flex:0 0 100% !important; float:none !important; margin:0 !important; padding:0 !important; }
  html body .product-miniature .thumbnail-container,
  html body .product-miniature{
    background:var(--sl-bg) !important; border:1px solid var(--sl-line) !important; border-radius:var(--r-md) !important;
    box-shadow:var(--sh-card) !important; overflow:hidden !important; height:100% !important; display:flex !important; flex-direction:column !important;
  }
  html body .product-miniature .thumbnail-container .thumbnail,
  html body .product-miniature .thumbnail{ display:block !important; width:100% !important; }
  html body .product-miniature .thumbnail img,
  html body .product-miniature img.product-thumbnail{ aspect-ratio:4/5 !important; object-fit:cover !important; width:100% !important; height:auto !important; display:block !important; }
  html body .product-miniature .product-description,
  html body .product-miniature .product-info,
  html body .product-miniature .thumbnail-container > .product-description{ padding:10px 10px 12px !important; display:flex !important; flex-direction:column !important; flex:1 1 auto !important; }
  html body .product-miniature .product-title{ margin:0 0 4px !important; min-height:0 !important; }
  html body .product-miniature .product-title a{
    font-family:var(--sl-font-body) !important; font-size:14px !important; font-weight:600 !important; line-height:1.3 !important;
    color:var(--sl-ink) !important; text-transform:none !important; display:-webkit-box !important; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }
  html body .product-miniature .product-price-and-shipping,
  html body .product-miniature .product-price{ margin:2px 0 10px !important; }
  html body .product-miniature .product-price,
  html body .product-miniature .price{
    font-family:var(--sl-font-body) !important; font-size:17px !important; font-weight:600 !important;
    color:var(--sl-accent) !important; font-variant-numeric:tabular-nums !important;
  }

  html body span.ajax_add_to_cart_button.add-to-cart.btn-default,
  html body span.ajax_add_to_cart_button.add-to-cart,
  html body .product-miniature .ajax_add_to_cart_button,
  html body .product-add-to-cart .btn,
  html body .product-miniature .button.add-to-cart{
    display:flex !important; align-items:center !important; justify-content:center !important; width:100% !important;
    min-height:48px !important; margin-top:auto !important; padding:12px 14px !important;
    background:var(--sl-accent) !important; color:#fff !important; border:0 !important; border-radius:var(--r-pill) !important;
    font-family:var(--sl-font-body) !important; font-size:15px !important; font-weight:600 !important; text-transform:none !important;
    box-shadow:var(--sh-cta) !important; transition:background var(--t-base) !important;
  }
  html body span.ajax_add_to_cart_button.add-to-cart:active,
  html body .product-add-to-cart .btn:active{ background:var(--sl-accent-hover) !important; }
  html body span.ajax_add_to_cart_button.add-to-cart:focus-visible,
  html body .product-add-to-cart .btn:focus-visible,
  html body #menu-icon:focus-visible,
  html body .pos-search__toggle:focus-visible{ outline:3px solid var(--sl-accent-ring) !important; outline-offset:2px !important; }
  html body .pos-search__submit{ background:transparent !important; min-width:44px; min-height:44px; }
  html body .pos-search__submit i{ color:var(--sl-ink) !important; }
  html body .pos-search__input{ font-family:var(--sl-font-body) !important; font-size:16px !important; min-height:44px; }

  html body .elementor-section.elementor-top-section{ overflow-x:hidden; }
  html body .page-content,
  html body #content-wrapper,
  html body .container{ padding-left:14px !important; padding-right:14px !important; }
  html body .featured-products .section-title,
  html body .products-section-title,
  html body h2.h2,
  html body .h1{
    font-family:var(--sl-font-head) !important; font-size:clamp(1.4rem,5.5vw,1.8rem) !important; font-weight:600 !important;
    color:var(--sl-ink) !important; text-transform:none !important; line-height:1.2 !important; margin:24px 0 16px !important;
  }
  html body #footer .links,
  html body #footer .block{ margin-bottom:18px; }
  html body #footer a{ min-height:40px; display:inline-flex; align-items:center; }
  html body{ scroll-padding-bottom:84px; }
  html body #footer{ padding-bottom:84px !important; }
  html body .product-miniature button.ajax_add_to_cart_button.add-to-cart{ min-height:48px; }
  html body .product-add-to-cart .btn.btn-primary.add-to-cart{ min-height:48px; }
  html body .product-quantity{ gap:var(--sp-2); }
}
@media (min-width:768px) and (max-width:991px){
  html body .products,
  html body ul.products,
  html body .product_list{ display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:16px !important; }
  html body .products > .product-miniature,
  html body .product-miniature{ width:100% !important; max-width:100% !important; float:none !important; margin:0 !important; }
  html body .product-miniature .thumbnail img{ aspect-ratio:4/5 !important; object-fit:cover !important; width:100% !important; }
}

/* ===== cookie banner (barra inferior) ===== */
#poscookielaw{position:fixed!important;top:auto!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;max-width:none!important;margin:0!important;z-index:2147483000!important;background:rgba(24,22,27,.96)!important;color:#fff!important;padding:10px 16px!important;font-size:13px!important;line-height:1.4!important;box-shadow:0 -2px 16px rgba(0,0,0,.25)!important;border:0!important;border-radius:0!important;}
#poscookielaw a{color:#ffd9e2!important;text-decoration:underline!important;}
#poscookielaw .btn,#poscookielaw button,#poscookielaw a.btn{background:var(--sl-accent)!important;color:#fff!important;border:0!important;border-radius:7px!important;padding:7px 16px!important;font-weight:700!important;}

/* ===== SL cross-sell agresivo (modal "producto anadido" + carrito/checkout) ===== */
.sl-xs{background:#fff7f9;border:1px solid #f3d4dd;border-radius:14px;padding:16px;margin:18px 0;}
.sl-xs__title{font-weight:700;color:#c0395b;font-size:1.05rem;margin-bottom:12px;}
.sl-xs__row{display:flex;gap:12px;flex-wrap:wrap;}
.sl-xs__item{flex:1 1 150px;min-width:140px;display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border:1px solid #eee;border-radius:10px;padding:10px;transition:opacity .2s;}
.sl-xs__img{width:72px;height:72px;object-fit:cover;border-radius:8px;margin-bottom:8px;}
.sl-xs__info{display:flex;flex-direction:column;gap:2px;margin-bottom:8px;}
.sl-xs__name{font-size:.85rem;color:#23242a;font-weight:600;line-height:1.2;}
.sl-xs__price{font-size:.9rem;color:#c0395b;font-weight:700;}
.sl-xs__btn{margin-top:auto;width:100%;background:#c0395b;color:#fff;border:0;border-radius:999px;padding:8px 10px;font-weight:600;font-size:.85rem;cursor:pointer;transition:background .15s;}
.sl-xs__btn:hover{background:#9c2c49;}
.sl-xs__btn[disabled]{opacity:.7;cursor:default;}
.sl-xs--modal{margin-top:18px;}
.sl-xs--compact .sl-xs__img{width:56px;height:56px;}
.products-accessories h2,.product-accessories h2{text-transform:none !important;color:#c0395b;}
@media (max-width:600px){.sl-xs__row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;}.sl-xs__item{flex:0 0 46%;}}

/* ============================================================
   QA FIXES — enjambre clientes (2026-06-19) · reversible
   revertir: borrar este bloque o restaurar custom.css.preqa
   ============================================================ */
/* #1 CTA de tarjetas: verde del tema -> rosa de marca */
html body .product-miniature .add-to-cart,
html body .product-miniature button.add-to-cart,
html body .product-miniature .ajax_add_to_cart_button,
html body .product-miniature .button.ajax_add_to_cart_button{
  background-color:#c0395b !important;
  border-color:#c0395b !important;
  color:#fff !important;
}
html body .product-miniature .add-to-cart:hover,
html body .product-miniature .ajax_add_to_cart_button:hover{
  background-color:#a32f4d !important;
  border-color:#a32f4d !important;
  color:#fff !important;
}
html body .product-miniature .ajax_add_to_cart_button.disabled,
html body .product-miniature .ajax_add_to_cart_button[disabled],
html body .product-miniature .add-to-cart[disabled]{
  background-color:#9aa0a6 !important;
  border-color:#9aa0a6 !important;
  color:#fff !important;
  cursor:not-allowed;
}
/* #7 top bar: 'Mi Cuenta' no pegado al borde */
html body .pos-account.pos-header-element{ padding-right:10px; }
/* #10 hero: rating y urgencia en lineas separadas (no 'verificadasPide') */
#slHeroExtra .sl-hero__rating,
#slHeroExtra .sl-hero__urgency{ display:block !important; }
#slHeroExtra .sl-hero__urgency{ margin-top:4px; }
/* #13 badge carrito a 0 oculto (lo marca el JS con .sl-hide) */
html body .cart-products-count.sl-hide{ display:none !important; }

/* ===== QA FIXES v2 (2026-06-19) — reversible ===== */
/* Quick-view: pastilla rosa rota (texto vertical) -> pill horizontal limpia */
html body .product-miniature a.quick_view,
html body li.quick-view a.quick_view{
  display:inline-flex !important;
  align-items:center !important; justify-content:center !important;
  writing-mode:horizontal-tb !important; text-orientation:mixed !important;
  white-space:nowrap !important;
  width:auto !important; min-width:0 !important; max-width:none !important;
  height:auto !important; line-height:1 !important;
  padding:8px 14px !important;
  border-radius:999px !important;
  background:#ffffff !important; color:#c0395b !important;
  border:1px solid rgba(192,57,91,.55) !important;
  font-size:12px !important; font-weight:700 !important; text-transform:none !important;
  letter-spacing:.2px !important;
  box-shadow:0 3px 10px rgba(0,0,0,.14) !important;
}
html body .product-miniature a.quick_view span{
  display:inline !important; writing-mode:horizontal-tb !important; transform:none !important;
}
html body .product-miniature a.quick_view:hover{ background:#c0395b !important; color:#ffffff !important; border-color:#c0395b !important; }
/* YouTube del antiguo dueño: ocultar el icono social en el footer */
html body .elementor-social-icon-youtube{ display:none !important; }
html body .elementor-grid-item:has(> .elementor-social-icon-youtube){ display:none !important; }
html body span.elementor-grid-item:has(.elementor-social-icon-youtube){ display:none !important; }

/* ===== ENJAMBRE DISEÑO — CAPA PREMIUM (2026-06-19) · reversible ===== */
/* ============================================================
   FLORES NUEVAS — CAPA PREMIUM (CSS, reversible)
   Marca: #c0395b (CTA) / #8f2342 (burdeos oscuro) · Fraunces + Inter
   ============================================================ */

/* ------------------------------------------------------------
   1. CABECERA — BARRA SUPERIOR (matar verde + limpiar tipografía)
   ------------------------------------------------------------ */
.elementor-element-uf9skvg,
#header .elementor-element-uf9skvg {
  background-color: #8f2342 !important; /* burdeos, un punto más oscuro que el CTA */
  padding: 7px 0;
}
.elementor-element-uf9skvg .elementor-text-editor,
.elementor-element-uf9skvg .elementor-text-editor *,
#header .elementor-element-7o1cotm .elementor-text-editor {
  color: #fff !important;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  letter-spacing: .04em;
}
.elementor-element-uf9skvg .elementor-text-editor p,
#header .elementor-element-7o1cotm .elementor-text-editor p {
  margin: 0;
  text-align: center;
}
/* Quitar estética de hipervínculo (negrita bruta + subrayado) */
.elementor-element-uf9skvg .elementor-text-editor u,
#header .elementor-element-7o1cotm .elementor-text-editor u { text-decoration: none; }
.elementor-element-uf9skvg .elementor-text-editor b,
#header .elementor-element-7o1cotm .elementor-text-editor b {
  font-weight: 600;
}

/* ------------------------------------------------------------
   2. CABECERA — TOP BAR OSCURO (estrellas cortadas / alineación)
   ------------------------------------------------------------ */
.elementor-element-ulbsgbc { position: relative; z-index: 2; }
#header .elementor-element-ulbsgbc .elementor-row {
  display: flex; align-items: center; padding: 0 24px;
}
#header .elementor-element-ulbsgbc .elementor-text-editor p {
  margin: 0; line-height: 1.4; font-size: 13px;
}
.elementor-element-ipattid .elementor-widget-wrap,
#header .elementor-element-ipattid .elementor-widget-wrap {
  display: flex; align-items: center; gap: 10px; flex-wrap: nowrap; min-height: 40px;
}
.elementor-element-ipattid .elementor-widget-text-editor p { margin: 0; white-space: nowrap; line-height: 1; }
.elementor-element-ipattid img,
#header .elementor-element-ipattid img { max-height: 18px; width: auto; display: block; }
#header .elementor-element-xhztqns .elementor-widget-wrap {
  display: flex; align-items: center; justify-content: flex-end; gap: 18px;
}
#header .pos-account .account-login { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }

/* ------------------------------------------------------------
   3. CABECERA — BUSCADOR (fuera el borde cian, look de marca)
   ------------------------------------------------------------ */
.pos-search__input,
.search-topbar .pos-search__input {
  height: 42px;
  border: 1px solid #e3d7db !important;
  border-radius: 8px;
  padding: 0 44px 0 16px;
  font-family: 'Inter', sans-serif; font-size: 14px;
  box-shadow: none !important;
}
.pos-search__input:focus,
.search-topbar .pos-search__input:focus {
  border-color: #c0395b !important;
  outline: none;
  box-shadow: 0 0 0 2px rgba(192,57,91,.15) !important;
}
.pos-search__container { border-color: #e3d7db !important; }
.search-topbar .pos-search__submit {
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  width: 34px; height: 34px; border-radius: 6px;
  background: transparent; color: #c0395b; border: none;
}
.search-topbar .pos-search__submit:hover { background: rgba(192,57,91,.08); }
.search-topbar .pos-search__input::placeholder { color: #9a9296; }

/* ------------------------------------------------------------
   4. CABECERA — LOGO (encuadre mientras se reemplaza el JPG)
   ------------------------------------------------------------ */
#header .site-logo img { max-height: 54px; width: auto; display: block; }
#header .elementor-element-itnrjfu .elementor-widget-wrap { display: flex; align-items: center; height: 100%; }
#header #_desktop_logo { display: flex; align-items: center; }

/* ------------------------------------------------------------
   5. HERO / ABOVE-THE-FOLD (banda de color, jerarquía, ritmo)
   ------------------------------------------------------------ */
.elementor-element-kutaoxa.home {
  background: linear-gradient(180deg, #fff 0%, #fdeef2 100%);
  padding: 48px 16px 40px;
  border-bottom: 1px solid rgba(192,57,91,.08);
}
.elementor-element-kutaoxa .elementor-widget:not(:last-child) { margin-bottom: 14px; }
/* Titular: Fraunces, peso y tamaño que mande */
.elementor-element-jw943hp .elementor-heading-title {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: clamp(34px, 5vw, 56px) !important;
  line-height: 1.05 !important;
  font-weight: 600 !important;
  letter-spacing: -.01em;
  color: #3d1420 !important;
  margin-bottom: 6px;
}
/* Subtítulo: tono secundario para contraste de jerarquía */
.elementor-element-ujzp2b2 .message-text {
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.5;
  color: #6b5057;
}
/* Rating + CTAs compactos y subidos */
.sl-hero__rating { margin-bottom: 10px; font-size: 15px; }
.sl-hero__urgency { margin: 6px 0 14px; color: #6b5057; }
.sl-hero__cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ------------------------------------------------------------
   6. FRANJA DE CONFIANZA — iconos al rosa de marca (no verde)
   ------------------------------------------------------------ */
.advantages-reassurance .item-img,
.block-reassurance .item-img,
.reassurance-item .item-img,
.advantages-reassurance svg,
.block-reassurance svg { background-color: rgba(192,57,91,.10) !important; }
.advantages-reassurance svg path,
.block-reassurance svg path,
.reassurance-item svg path { fill: #c0395b !important; stroke: #c0395b !important; }
.advantages-reassurance i,
.block-reassurance i { color: #c0395b !important; }

/* ------------------------------------------------------------
   7. SEPARADORES — fuera el cian, rosa de marca + ritmo vertical
   ------------------------------------------------------------ */
.elementor-divider-separator,
.elementor-widget-divider .elementor-divider__line {
  border-color: #c0395b !important;
  background-color: #c0395b !important;
}
.page-index main section { padding-top: 48px; padding-bottom: 48px; }
@media (max-width: 768px) { .page-index main section { padding-top: 32px; padding-bottom: 32px; } }

/* ------------------------------------------------------------
   8. ENCABEZADOS DE SECCIÓN — unificar a Fraunces
   ------------------------------------------------------------ */
.featured-products .h2,
.featured-products h2,
.products-section-title,
section h2.h2,
.page-home h2 {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 700 !important;
  font-size: 1.6rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: #1f2937 !important;
}
.section-kicker,
.elementor-widget-text-editor p strong { color: #c0395b; }

/* ============================================================
   REJILLA DE CATEGORÍA + TARJETAS DE PRODUCTO
   ============================================================ */

/* 9. Ocultar stock crudo ("938 Disponible") */
.product-miniature .availability { display: none !important; }

/* 10. Tarjeta real: borde, radio, hover elevado */
.product-miniature.thumbnail-container {
  background: #fff;
  border: 1px solid #efe6ea;
  border-radius: 14px;
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  position: relative;
}
.product-miniature.thumbnail-container:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(192,57,91,.12);
  border-color: rgba(192,57,91,.35);
}
.product-miniature .product_desc { padding: 4px 16px 18px; }

/* 11. Ratio cuadrado consistente + encuadre */
.product-miniature .img_block { position: relative; }
.product-miniature .img_block .thumbnail.product-thumbnail {
  display: block; aspect-ratio: 1 / 1; background: #faf6f7;
}
.product-miniature .img_block img.first-image {
  width: 100%; height: 100%; object-fit: contain; object-position: center;
  padding: 8px; transition: transform .4s ease;
}
.product-miniature.thumbnail-container:hover img.first-image { transform: scale(1.04); }

/* 12. Eliminar bloques vacíos que descuadran */
.product-miniature .manufacturer { display: none; }
.product-miniature .hook-reviews:empty { display: none; margin: 0; }
.product-miniature .inner_desc { display: flex; flex-direction: column; }
.product-miniature h3 { margin: 6px 0 2px; min-height: 2.4em; }

/* 13. Precio como ancla visual */
.product-miniature .product-price-and-shipping .price {
  font-size: 1.18rem; font-weight: 700; color: #c0395b;
  letter-spacing: -.01em; display: inline-block; margin: 2px 0 12px;
}

/* 14. Nombre de producto en Fraunces */
.product-miniature .product-title,
.product-miniature .product-title a,
.js-product-miniature .product-title a {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  letter-spacing: .1px;
}

/* 15. Estado AGOTADO consistente (badge + atenuado + CTA gris) */
.product-miniature:has(.availability-list.out-of-stock) .img_block { opacity: .72; filter: saturate(.85); }
.product-miniature:has(.availability-list.out-of-stock) .img_block::after {
  content: "Agotado"; position: absolute; top: 12px; left: 12px;
  background: rgba(40,40,46,.85); color: #fff;
  font-size: .72rem; font-weight: 600; letter-spacing: .03em;
  padding: 4px 10px; border-radius: 999px; z-index: 3;
}
.product-miniature:has(.out-of-stock) .add-to-cart,
.product-miniature:has(.add-to-cart[disabled]) .add-to-cart {
  background: #d9d2d5 !important; color: #8a8086 !important;
  cursor: not-allowed; box-shadow: none !important;
}
.product-miniature:has(.add-to-cart[disabled]) .product-title { color: #9aa0a6 !important; }

/* 16. Barra de herramientas de la rejilla */
.products-selection {
  display: flex; align-items: center; gap: 16px;
  padding: 10px 0 18px; border-bottom: 1px solid #f0e8eb; margin-bottom: 22px;
}
.total-products p, .products-selection .total-products { font-weight: 600; color: #3a3340; }
#products .display a, .view-switcher a, .products-sort-order .select-title { transition: color .2s ease; }
#products .display a.active, .view-switcher a.active { color: #c0395b; }

/* ============================================================
   FICHA DE PRODUCTO
   ============================================================ */

/* 17. Jerarquía título → precio */
.product-information .h1.namne_details {
  font-family: 'Fraunces', serif; font-size: 2.4rem; line-height: 1.15;
  margin-bottom: .5rem; letter-spacing: -.01em;
}
.product-prices.js-product-prices { margin: .25rem 0 1.5rem; }
.product-prices .current-price .product-price.h5 {
  font-family: 'Fraunces', serif; font-size: 2.2rem; font-weight: 700;
  color: #c0395b; display: block;
}
.product-prices .tax-shipping-delivery-label {
  display: block; margin-top: .35rem; font-size: .8rem; color: #8a8a8a; letter-spacing: .01em;
}

/* 18. Selector de variante (12 / 40 rosas) premium */
.product-variants-item label {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 64px; padding: .6rem 1.1rem;
  border: 1.5px solid #e3d5da; border-radius: 10px;
  font-weight: 600; color: #5a3540; cursor: pointer;
  transition: all .15s ease; background: #fff;
}
.product-variants-item label:hover { border-color: #c0395b; box-shadow: 0 2px 8px rgba(192,57,91,.12); }
.product-variants-item input:checked + label,
.product-variants-item input[checked] + label { background: #c0395b; border-color: #c0395b; color: #fff; }
.product-variants-item .control-label { font-weight: 700; color: #3a3a3a; margin-bottom: .6rem; display: block; }

/* 19. Stepper de cantidad + CTA cohesionados */
.product-add-to-cart .product-quantity { display: flex; align-items: center; gap: .75rem; }
.product-quantity .qty { border: 1.5px solid #e3d5da; border-radius: 10px; overflow: hidden; }
.product-quantity .qty .input-group input.input-group__input,
.product-quantity input[name=qty] { height: 54px; font-weight: 600; text-align: center; }
.product-add-to-cart .add-to-cart.btn-primary {
  height: 54px; border-radius: 10px; font-weight: 700; letter-spacing: .02em;
  box-shadow: 0 6px 18px rgba(192,57,91,.25);
}
.product-add-to-cart .add-to-cart.btn-primary:hover {
  filter: brightness(.95); box-shadow: 0 8px 22px rgba(192,57,91,.32);
}

/* 20. Galería: thumbnails mayores + señal de zoom */
.product-images .js-qv-product-images img,
.product-images li img {
  width: 74px; height: 74px; object-fit: cover; border-radius: 10px;
  border: 2px solid transparent;
  transition: border-color .15s ease, transform .15s ease; cursor: pointer;
}
.product-images li img:hover { transform: translateY(-2px); }
.product-images .thumb.selected,
.product-images li.selected img,
.product-images img.selected { border-color: #c0395b; }
.product-cover img, .js-qv-product-cover img { border-radius: 14px; cursor: zoom-in; }

/* 21. Bloques de confianza de la ficha unificados */
.blockreassurance_product {
  margin-top: 1.25rem; border: 1px solid #f0dfe5; border-radius: 14px;
  padding: 1rem 1.25rem; background: #fff;
}
.blockreassurance_product .item-product {
  display: flex; align-items: center; gap: .85rem;
  padding: .65rem 0; border-bottom: 1px solid #f6eef1;
}
.blockreassurance_product .item-product:last-child { border-bottom: 0; }
.blockreassurance_product .item-product img,
.blockreassurance_product svg { width: 26px; height: 26px; }
.sl-hero__urgency { border-radius: 14px; border: 1px solid #f0dfe5; padding: .9rem 1.2rem; }

/* 22. Tabs Descripción / Opiniones con contraste */
.product-tabs .nav-tabs, .tabs .nav-tabs {
  border-bottom: 1px solid #ece0e5; justify-content: flex-start; gap: 1.75rem;
}
.tabs .nav-tabs .nav-link {
  color: #8a7a80; font-weight: 600; font-size: 1rem;
  padding: .65rem 0; border: 0; text-transform: none;
}
.tabs .nav-tabs .nav-link.active {
  color: #c0395b; border-bottom: 3px solid #c0395b; background: transparent;
}

/* 23. Descripción con ritmo de lectura editorial */
.product-description { max-width: 760px; line-height: 1.7; color: #4a4148; font-size: 1.02rem; }
.product-description h2 { font-family: 'Fraunces', serif; font-size: 1.7rem; color: #2b2228; margin: 0 0 1rem; }
.product-description h3, .product-description strong { font-weight: 700; color: #c0395b; }
.product-description ul { padding-left: 1.1rem; }
.product-description ul li { margin-bottom: .4rem; }

/* ============================================================
   FOOTER
   ============================================================ */

/* 24. Footer con alma de marca */
#footer { background: #faf6f4; padding-top: 48px; }
#footer .links-widget-title span, #footer .pos-title {
  font-family: 'Fraunces', serif; font-weight: 600; font-size: 18px;
  color: #3a2a2f; letter-spacing: .01em;
  position: relative; padding-bottom: 10px; display: inline-block;
}
#footer .links-widget-title span:after, #footer .pos-title:after {
  content: ''; position: absolute; left: 0; bottom: 0;
  width: 34px; height: 2px; background: #c0395b;
}
#footer .links-widget-content a, #footer .pos-subtitle {
  font-family: 'Inter', sans-serif; font-size: 14px; color: #6b5f63;
  line-height: 2; transition: color .2s ease;
}
#footer .links-widget-content a:hover { color: #c0395b; padding-left: 3px; }

/* 25. Sociales en círculo + iconos de pago en tarjeta */
#footer .elementor-social-icon {
  background: #fff !important; color: #c0395b !important;
  width: 38px; height: 38px; border: 1px solid #ece6e8; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center; transition: all .2s ease;
}
#footer .elementor-social-icon:hover { background: #c0395b !important; color: #fff !important; border-color: #c0395b; }
#payment-icons ul { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; padding: 0; margin: 8px 0 0; }
#payment-icons li {
  list-style: none; background: #fff; border: 1px solid #ece6e8; border-radius: 6px;
  padding: 6px 10px; display: flex; align-items: center;
}
#payment-icons li img { height: 22px; width: auto; display: block; filter: none; opacity: 1; }

/* ============================================================
   MÓVIL — fixes (2026-06-19) · reversible
   ============================================================ */
/* Modal "producto añadido": apilar info+cross-sell y caber en pantalla */
@media (max-width:768px){
  #blockcart-modal{ overflow-y:auto !important; }
  #blockcart-modal .modal-dialog{ flex-direction:column !important; width:auto !important; max-width:calc(100vw - 20px) !important; margin:10px auto !important; align-items:stretch !important; }
  #blockcart-modal .modal-content{ width:100% !important; max-width:100% !important; }
  #blockcart-modal .sl-xs--modal{ width:100% !important; max-width:100% !important; box-sizing:border-box !important; margin-top:14px !important; flex:1 1 100% !important; }
  /* Copyright Elementor gigante -> tamaño normal y centrado */
  .elementor-element-xp0a7ff .elementor-heading-title{ font-size:13px !important; line-height:1.4 !important; }
  .elementor-element-xp0a7ff{ text-align:center !important; }
}
/* Cross-sell (modal + carrito): lista vertical limpia en móvil (en vez de scroll horizontal) */
@media (max-width:600px){
  .sl-xs__row{ flex-direction:column !important; flex-wrap:nowrap !important; overflow-x:visible !important; gap:10px !important; }
  .sl-xs__item{ flex:1 1 auto !important; width:100% !important; flex-direction:row !important; align-items:center !important; text-align:left !important; gap:12px !important; padding:10px 12px !important; box-sizing:border-box !important; }
  .sl-xs__img, .sl-xs--compact .sl-xs__img{ width:56px !important; height:56px !important; margin-bottom:0 !important; flex:0 0 auto !important; }
  .sl-xs__info{ flex:1 1 auto !important; margin-bottom:0 !important; text-align:left !important; align-items:flex-start !important; }
  .sl-xs__btn{ width:auto !important; flex:0 0 auto !important; margin-top:0 !important; white-space:nowrap !important; padding:9px 16px !important; }
}

/* ===== Agotados al final del listado de categoría (2026-06-19) · reversible ===== */
.product_content.grid.row{ display:flex !important; flex-wrap:wrap !important; align-items:flex-start !important; }
.product_content.grid.row > .item-product:has(.availability-list.out-of-stock),
.product_content.grid.row > .item-product:has(.out-of-stock){ order:99 !important; }

/* ===== Hero 2 columnas con foto (2026-06-19) · reversible ===== */
.elementor-element-kutaoxa.home, #slHeroExtra{ display:none !important; }
.sl-hero2{ background:linear-gradient(180deg,#ffffff 0%,#fdeef2 100%); border-bottom:1px solid rgba(192,57,91,.10); padding:44px 16px; }
.sl-hero2__inner{ max-width:1180px; margin:0 auto; display:flex; align-items:center; gap:44px; }
.sl-hero2__copy{ flex:1 1 50%; min-width:0; }
.sl-hero2__eyebrow{ color:#c0395b; font-weight:700; letter-spacing:.05em; text-transform:uppercase; font-size:.78rem; margin:0 0 10px; }
.sl-hero2__title{ font-family:'Fraunces',Georgia,serif !important; font-size:clamp(32px,4.4vw,54px); line-height:1.04; color:#3d1420; margin:0 0 14px; font-weight:600; letter-spacing:-.01em; }
.sl-hero2__sub{ color:#6b5057; font-size:clamp(15px,1.3vw,18px); line-height:1.55; margin:0 0 16px; max-width:540px; }
.sl-hero2__rating{ font-size:15px; color:#3a3340; margin:0 0 20px; }
.sl-hero2__rating span{ color:#f5a623; letter-spacing:1px; }
.sl-hero2__rating strong{ color:#c0395b; }
.sl-hero2__cta{ display:flex; gap:12px; flex-wrap:wrap; }
.sl-hero2__btn{ display:inline-flex; align-items:center; justify-content:center; padding:13px 26px; border-radius:999px; font-weight:700; font-size:15px; text-decoration:none; transition:all .18s; }
.sl-hero2__btn--primary{ background:#c0395b; color:#fff !important; box-shadow:0 8px 22px rgba(192,57,91,.28); }
.sl-hero2__btn--primary:hover{ background:#a32f4d; transform:translateY(-1px); }
.sl-hero2__btn--ghost{ background:#fff; color:#c0395b !important; border:1.5px solid rgba(192,57,91,.5); }
.sl-hero2__btn--ghost:hover{ background:#fff0f4; }
.sl-hero2__media{ flex:1 1 50%; min-width:0; }
.sl-hero2__media img{ width:100%; height:auto; max-height:440px; object-fit:cover; border-radius:18px; box-shadow:0 22px 55px rgba(192,57,91,.18); background:#fff; display:block; }
@media (max-width:768px){
  .sl-hero2{ padding:26px 16px; }
  .sl-hero2__inner{ flex-direction:column; gap:20px; text-align:center; }
  .sl-hero2__sub{ margin-left:auto; margin-right:auto; }
  .sl-hero2__cta{ justify-content:center; }
  .sl-hero2__media img{ max-height:300px; }
}

/* ===== Top bar oscuro: compactar (48px->4px) + 'Opiniones' legible sobre fondo oscuro (2026-06-19) ===== */
.elementor-element-ulbsgbc{ padding-top:4px !important; padding-bottom:4px !important; }
.elementor-element-ulbsgbc .elementor-column-wrap.elementor-element-populated{ padding-top:4px !important; padding-bottom:4px !important; }
.elementor-element-bxonmid, .elementor-element-bxonmid p, .elementor-element-bxonmid .elementor-text-editor, .elementor-element-bxonmid a{ color:#ece9ea !important; }

/* ===== Franja envío: columna interna verde -> burdeos (home) (2026-06-19) ===== */
.elementor-element-uf9skvg .elementor-column-wrap.elementor-element-populated,
.elementor-element-uf9skvg .elementor-widget-wrap{ background-color:transparent !important; }

/* ===== CRO QUICK-WINS (equipo cro-analyst, 2026-06-19) · reversible ===== */
/* 1. Ficha: un solo CTA primario (ocultar buy-now duplicado) */
html body .product-actions .buy, html body .product-add-to-cart .buy,
html body .btn.buy-now, html body [data-button-action="buy-now"]{ display:none !important; }
/* 2. Variantes 12/40: estado seleccionado visible (input DENTRO del label -> :has) */
html body .product-variants-item label:has(input:checked),
html body .product-variants .input-container label:has(.input-radio:checked){ background:#c0395b !important; border-color:#c0395b !important; color:#fff !important; }
html body .product-variants-item label:has(input:checked) .radio-label{ color:#fff !important; }
/* 3. Variantes: tap targets >=48px en movil */
@media (max-width:767px){
  html body .product-variants-item label, html body .product-variants .input-container label{ min-height:48px !important; padding:0 18px !important; margin:0 12px 12px 0 !important; display:inline-flex !important; align-items:center !important; }
}
/* 4. Cantidad: stepper +/- tactil */
.product-quantity .qty{ display:flex; align-items:stretch; }
.product-quantity .qty .bootstrap-touchspin-down, .product-quantity .qty .bootstrap-touchspin-up{ min-width:46px; min-height:54px; display:inline-flex; align-items:center; justify-content:center; font-size:1.4rem; line-height:1; background:#faf6f7; border:1.5px solid #e3d5da; color:#c0395b; cursor:pointer; }
.product-quantity .qty input[name="qty"], .product-quantity .qty input[name="qty_wanted"]{ min-width:54px; border-left:0; border-right:0; border-radius:0; }
/* 5. Ficha movil: jerarquia precio > rating > impuestos */
@media (max-width:767px){
  html body #product .product-prices .current-price-value, html body #product .product-prices .product-price{ font-size:1.9rem !important; display:block; margin-bottom:6px; }
  html body #product .tax-shipping-delivery-label{ font-size:.78rem !important; color:#8a8c95 !important; }
  html body #product .revi_rating_container{ margin:8px 0 4px !important; display:block; }
}
/* 6. ETA destacado (#ddw-eta) */
#ddw-eta{ background:#fff5f7 !important; border:1px solid #f7c8d6 !important; border-radius:10px !important; padding:12px 14px !important; }
#ddw-eta .eta{ font-weight:700; color:#c0395b; }
/* 7. Categoria: orden + contador visibles en movil */
.products-sort-order, .sort-by{ display:block !important; }
@media (max-width:767px){
  .products-sort-order .select-title{ font-size:14px; padding:8px 12px; }
  .total-products p.hidden-sm-down, .total-products .hidden-sm-down{ display:block !important; font-size:13px; color:#7a7a7a; }
}
/* 8. Carrito: degradar "Continuar comprando" + reaseguro bajo checkout */
.cart-detailed-actions .continue{ background:none !important; border:none !important; color:#9a8a90 !important; text-decoration:underline !important; font-weight:400 !important; box-shadow:none !important; }
.cart-detailed-actions .checkout::after{ content:"🔒 Pago seguro · Entrega en 24 h"; display:block; font-size:.8rem; color:#8a8a8a; margin-top:.5rem; text-align:center; }

/* === CRO: hero trust chips === */
.sl-hero2__chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0}
.sl-hero2__chips li{font-size:13px;font-weight:600;color:#7a2e43;background:#f7e9ee;border:1px solid #eccdd7;border-radius:999px;padding:6px 12px;line-height:1.1}
@media(max-width:600px){.sl-hero2__chips{gap:6px}.sl-hero2__chips li{font-size:12px;padding:5px 10px}}

/* ===== CRO backlog: barra envio gratis + badge resenas (2026-06-19) ===== */
.sl-freeship{margin:0 0 14px;padding:12px 14px;background:#fff5f7;border:1px solid #f7c8d6;border-radius:10px;font-size:13px;line-height:1.3}
.sl-freeship__msg{color:#5a3040;margin-bottom:8px;font-weight:500}
.sl-freeship__msg strong{color:#c0395b}
.sl-freeship__bar-wrap{background:#f0e0e6;border-radius:999px;height:8px;overflow:hidden}
.sl-freeship__bar-fill{height:100%;background:linear-gradient(90deg,#c0395b,#e05a7a);border-radius:999px;transition:width .4s ease}
.sl-freeship--done .sl-freeship__msg{color:#2e7d32;font-weight:600}
.sl-freeship--done .sl-freeship__bar-fill{background:linear-gradient(90deg,#388e3c,#4caf50)}
.blockcart .sl-freeship{margin:10px 0 4px;font-size:12px;padding:9px 12px}
#slReviBadge{margin:0 0 16px;padding:10px 14px;background:#faf6f7;border:1px solid #eccdd7;border-radius:10px;font-size:14px;color:#5a3040;text-align:center}
#slReviBadge .sl-rb__stars{color:#f5a623;letter-spacing:1px}
#slReviBadge strong{color:#c0395b}
@media(max-width:600px){#slReviBadge{font-size:12.5px}}
/* ===== FIN CRO backlog ===== */

/* ===== QA VISUAL (2026-06-20): cabecera móvil — logo desbordaba su columna y tapaba cuenta/carrito ===== */
@media (max-width: 768px) {
  /* El logo no debe exceder su columna (causa del solape con los iconos de cuenta y carrito) */
  a.site-logo img,
  .site-logo img,
  .elementor-element-ozknwlx img,
  header .logo img {
    max-width: 100% !important;
    height: auto !important;
    width: auto !important;
  }
  /* Dar un pelín más de aire al logo encogiendo las columnas de iconos */
  .elementor-element-ozknwlx { text-align: center; }
}
/* ===== FIN QA VISUAL cabecera ===== */

/* ============================================================
   QA VISUAL FIXES (enjambre 50 agentes) — 2026-06-20
   Reversible: borrar todo este bloque hasta FIN-QA-VISUAL-FIXES
   ============================================================ */

/* BUG-13: iconos cuenta/carrito con aire y sin pegarse al borde (móvil) */
@media (max-width: 768px) {
  .blockcart, .blockcart.cart-preview { padding-right: 6px !important; }
  .elementor-element .blockcart a, .blockcart a { padding: 6px !important; }
}

/* BUG-05: checkboxes táctiles en el checkout/registro */
.custom-checkbox input[type="checkbox"],
.psgdpr_consent_message input[type="checkbox"],
input[type="checkbox"].ps-shown-by-js,
.checkout input[type="checkbox"] {
  width: 20px !important; height: 20px !important; min-width: 20px !important;
}
.custom-checkbox { display: inline-flex !important; align-items: flex-start !important; gap: 10px !important; min-height: 40px; line-height: 1.4; }
.custom-checkbox label, .custom-checkbox span:last-child { line-height: 1.4; }

/* BUG-07: el texto de ayuda de los campos (Nombre/Apellidos) no se corta */
.form-control-comment, .help-block, .form-text, .form-control-valid, .input-help {
  overflow: visible !important; height: auto !important; max-height: none !important;
  white-space: normal !important; line-height: 1.4 !important; display: block !important;
}

/* BUG-16: tarjetas de producto a la misma altura + nombre a 2 líneas sin descuadrar */
.products .product-miniature, .featured-products .product-miniature, .js-product-miniature,
#js-product-list .product-miniature { display: flex !important; flex-direction: column !important; height: 100%; }
.product-miniature .thumbnail-container { display: block; }
.product-miniature .product-description, .product-miniature .product-title-block,
.product-miniature .product-meta { display: flex; flex-direction: column; flex: 1 1 auto; }
.product-miniature .product-title, .product-miniature .product_name, .product-miniature h3.product-title a {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; min-height: 2.6em; line-height: 1.3;
}
.product-miniature .product-actions, .product-miniature .button-container,
.product-miniature .product-add-actions { margin-top: auto; }
.products, #js-product-list .products { align-items: stretch; }

/* BUG-17: buscador de escritorio menos ancho y alineado */
@media (min-width: 992px) {
  #search_widget, .search-widget { max-width: 340px; }
  #search_widget form input[type="text"], .search-widget input[type="text"] { height: 42px; }
}

/* BUG-18: limitar la medida de lectura del copy SEO en escritorio */
@media (min-width: 992px) {
  #content .rte, .category-additional-description, .cms-block .rte, .block-cms p,
  #description .rte, .product-description .rte, .category-description {
    max-width: 75ch;
  }
}

/* BUG-19: subir contraste de grises demasiado claros */
.products-selection .total-products, .total-products p, .comments_note .star_content + *,
.products-sort-order .select-title, .facet .facet-title { color: #5a5a5a !important; }

/* FIN-QA-VISUAL-FIXES */

/* ===== QA VISUAL FIXES 2 (listado faceted .item-product) — 2026-06-20 · reversible: borrar hasta FIN-QA2 ===== */
/* BUG-16: tarjetas a misma altura + nombre de producto a 2 líneas (la clase .one_line lo truncaba a 1) */
.product_content.grid { align-items: stretch; }
.item-product { display: flex !important; flex-direction: column !important; }
.item-product .product-container,
.item-product .product_desc,
.item-product .right-block { display: flex; flex-direction: column; flex: 1 1 auto; }
.item-product a.product_name,
.item-product .product_name.one_line,
.item-product .product_name {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  white-space: normal !important;
  overflow: hidden !important;
  min-height: 2.4em;
  line-height: 1.2;
  text-overflow: ellipsis;
}
.item-product .button-container,
.item-product .functional-buttons,
.item-product .add-to-links,
.item-product .product-add-actions,
.item-product .content_price + * { margin-top: auto; }
/* ===== FIN-QA2 ===== */

/* ===== QA VISUAL FIXES 3 (menú móvil) — 2026-06-20 · reversible: borrar hasta FIN-QA3 ===== */
/* BUG-15: barra "Cerrar" del menú móvil legible y on-brand (era verde petróleo #253237 con texto oscuro casi invisible) */
.menu-mobile-content .menu-close, .box-menu .menu-close {
  background: #c0395b !important;
  color: #fff !important;
  display: flex !important;
  align-items: center;
  min-height: 52px;
  padding: 0 18px;
  font-weight: 600;
}
.menu-mobile-content .menu-close *, .box-menu .menu-close * { color: #fff !important; }
.menu-mobile-content .menu-close .material-icons { font-size: 22px; }
/* BUG-14: filas del menú con padding/altura consistente y cómodo al dedo */
.menu-mobile-content .menu-item > a, .box-menu .menu-item > a {
  display: flex !important;
  align-items: center;
  min-height: 52px;
  padding: 13px 20px !important;
  box-sizing: border-box;
}
/* ===== FIN-QA3 ===== */

/* ============================================================
   FASE 1+2 — pulido visual (panel de jueces) — 2026-06-20
   reversible: borrar hasta FIN-FASE12
   ============================================================ */

/* [FASE1] Banner de cookies discreto y on-brand (era bloque casi negro de 125px) */
#poscookielaw {
  background: #fbf3f6 !important;
  color: #4a2c38 !important;
  border-top: 1px solid #e6cdd6 !important;
  box-shadow: 0 -4px 18px rgba(0,0,0,.07) !important;
  padding: 9px 14px !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  gap: 10px;
}
#poscookielaw p { margin: 0 !important; font-size: 12px !important; color: #4a2c38 !important; line-height: 1.35 !important; }
#poscookielaw a { color: #c0395b !important; text-decoration: underline; }
#poscookielaw .btn, #poscookielaw .btn-primary, #poscookielaw-accept {
  background: #c0395b !important; color: #fff !important; border: 0 !important;
  padding: 8px 18px !important; white-space: nowrap; font-weight: 600; border-radius: 8px;
}

/* [FASE2] Consistencia de tarjetas: tiles cuadradas uniformes con fondo blanco (las fotos mezclan fondos) */
.item-product .product-image,
.item-product .product_img_link,
.item-product .img_block,
.product-miniature .thumbnail-container,
.product-miniature .thumbnail {
  display: block !important;
  background: #ffffff !important;
}
.item-product .product-image img,
.item-product .product_img_link img,
.item-product .img_block img,
.product-miniature .thumbnail-container img,
.product-miniature img.center_block {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
  background: #ffffff !important;
  padding: 6px;
  box-sizing: border-box;
}

/* FIN-FASE12 */

/* FASE1: forzar FontAwesome en iconos sociales (el tema los pintaba con Inter = tofu) */
.fa, i.fa, i[class*=" fa-"], i[class^="fa-"]{font-family:"FontAwesome" !important;-webkit-font-smoothing:antialiased;}

/* FASE1: iconos sociales eran blancos sobre circulo blanco (invisibles) -> burdeos visible */
.elementor-social-icon i, .elementor-social-icon .fa, [class*="social-icon"] .fa, [class*="social"] i.fa, .js-footer .fa{color:#c0395b !important;}

/* ===== FASE2: hero a sangre completa con foto lifestyle (2026-06-20) · borrar hasta FIN-FASE2-HERO ===== */
.sl-hero2--full{position:relative;min-height:60vh;display:flex;align-items:center;background:#fcf4f7 url('/themes/theme_ecolife/assets/img/sl-hero.jpg') right center/cover no-repeat;overflow:hidden;}
.sl-hero2--full .sl-hero2__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(252,244,247,.97) 0%,rgba(252,244,247,.88) 32%,rgba(252,244,247,.4) 58%,rgba(252,244,247,0) 80%);}
.sl-hero2--full .sl-hero2__inner{position:relative;z-index:2;max-width:1180px;margin:0 auto;width:100%;padding:52px 24px;display:block;}
.sl-hero2--full .sl-hero2__copy{max-width:560px;}
@media(max-width:768px){
  .sl-hero2--full{min-height:600px;align-items:flex-end;background-position:center 18%;}
  .sl-hero2--full .sl-hero2__scrim{background:linear-gradient(180deg,rgba(252,244,247,0) 0%,rgba(252,244,247,.5) 38%,rgba(252,244,247,.94) 68%,#fcf4f7 100%);}
  .sl-hero2--full .sl-hero2__inner{padding:0 18px 30px;}
  .sl-hero2--full .sl-hero2__copy{max-width:100%;}
}
/* FIN-FASE2-HERO */

/* ===== RONDA 1 (2026-06-20) · borrar hasta FIN-R1 ===== */
.sl-countdown{margin:12px 0;padding:9px 14px;background:#fff3f6;border:1px solid #f3cdd9;border-radius:9px;font-size:13.5px;color:#5a2030;display:inline-block;line-height:1.3}
.sl-countdown strong{color:#c0395b;font-weight:700}
.sl-hero-seals{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:12px;color:#6e4d57;flex-wrap:wrap}
.sl-hero-seals span{font-weight:600}
.sl-hero-seals img{height:22px;object-fit:contain;margin:0}
/* contraste AA en microcopys grises */
.text-muted,.product-comments__count,.products-selection .total-products,.total-products,.facet .facet-title,.color-muted,.comments_note{color:#4a4a4a !important}
/* tiles clicables: feedback hover */
.item-product,.product-miniature{transition:box-shadow .2s ease, transform .2s ease}
.item-product:hover,.product-miniature:hover{box-shadow:0 8px 24px rgba(124,30,60,.12);transform:translateY(-2px)}
/* mas aire en rejilla movil */
@media(max-width:768px){#js-product-list .item-product{margin-bottom:18px}}
/* ===== FIN-R1 ===== */

/* ===== R3 sistema tipografico + tokens (2026-06-20) · borrar hasta FIN-R3 ===== */
.item-product .product_name, .item-product .product-title, .product-miniature .product-title, .product-miniature .product_name, h1.product-name, .product-detail-name, .product-name{font-family:'Fraunces',Georgia,serif !important;font-weight:600 !important}
.price,.product-price,.current-price .price,.item-product .price,.product-miniature .price,.has-discount .price,span.price,.content_price .price{color:#c0395b !important;font-weight:700 !important}
@media(max-width:768px){
 .item-product .ajax_add_to_cart_button,.item-product .add-to-cart,.add-to-cart,.product-quantity .btn,.pagination a{min-height:44px !important}
 .sl-hero2--full .sl-hero2__scrim{background:linear-gradient(180deg,rgba(252,244,247,.15) 0%,rgba(252,244,247,.62) 42%,rgba(252,244,247,.95) 72%,#fcf4f7 100%) !important}
}
/* ===== FIN-R3 ===== */

/* ===== R4 MÓVIL tap-targets (2026-06-20) · borrar hasta FIN-R4 ===== */
@media(max-width:767px){
  /* F08 swatches color + stepper cantidad ficha */
  .product-variants-item label,.product-variants-item .input-color,.input-color{min-width:40px !important;min-height:40px !important}
  .product-variants-item{margin-right:12px}
  .bootstrap-touchspin .btn-touchspin,.btn.js-touchspin,.product-quantity .btn,.bootstrap-touchspin-up,.bootstrap-touchspin-down{min-width:44px !important;min-height:44px !important}
  #quantity_wanted,.product-quantity input,.bootstrap-touchspin input{min-height:44px !important;font-size:16px !important}
  /* F09 select cantidad del carrito */
  .cart-item .qty select,.product-line-grid .qty select,.qty select,.cart-overview select{min-height:44px !important;font-size:16px !important}
  /* F10 checkboxes consentimiento checkout */
  #conditions_to_approve input[type=checkbox],.checkout input[type=checkbox],.ps-shown-by-js input[type=checkbox],.custom-checkbox input[type=checkbox],.psgdpr_consent_message input[type=checkbox]{width:22px !important;height:22px !important;min-width:22px !important}
  /* F11 paginacion */
  .pagination a,.pagination .page-link,.page-list a,nav.pagination a{min-width:44px;min-height:44px;display:inline-flex !important;align-items:center;justify-content:center;margin:0 3px}
}
/* ===== FIN-R4 ===== */


/* ============================================================
   ESTRUCT (sticky bars movil) — 2026-06-20
   F02 mini-cabecera sticky · F04 barra ficha · F05 barra checkout
   Reversible: borrar todo este bloque hasta FIN-ESTRUCT
   ============================================================ */

/* --- F02 mini-cabecera sticky movil --- */
.sl-stickyhdr{position:fixed;top:0;left:0;right:0;z-index:1050;display:none;align-items:center;justify-content:space-between;gap:10px;height:54px;padding:0 12px;background:#fff;box-shadow:0 2px 12px rgba(124,30,60,.13);transform:translateY(-100%);transition:transform .25s ease}
.sl-stickyhdr.is-on{display:flex;transform:translateY(0)}
@media(min-width:769px){.sl-stickyhdr{display:none !important}}
.sl-sh__menu{width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:none;border:0;padding:0;cursor:pointer;flex:0 0 auto}
.sl-sh__menu span{display:block;width:22px;height:2px;background:#3a2630;border-radius:2px}
.sl-sh__logo{flex:1 1 auto;display:flex;justify-content:center;align-items:center;min-width:0;text-decoration:none;color:#3a2630;font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:16px}
.sl-sh__logo img{height:34px;width:auto;object-fit:contain;max-width:60%}
.sl-sh__cart{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#3a2630;text-decoration:none;flex:0 0 auto}
.sl-sh__count{position:absolute;top:1px;right:-1px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#c0395b;color:#fff;font-size:11px;font-weight:700;display:none;align-items:center;justify-content:center;line-height:1}

/* --- F04 barra ficha + F05 barra checkout (movil) --- */
.sl-pdpbar,.sl-cobar{position:fixed;left:0;right:0;bottom:0;z-index:1040;display:none;align-items:center;gap:12px;padding:10px 14px;background:#fff;box-shadow:0 -4px 18px rgba(124,30,60,.16);transform:translateY(115%);transition:transform .25s ease}
.sl-pdpbar.is-on,.sl-cobar.is-on{display:flex;transform:translateY(0)}
@media(min-width:769px){.sl-pdpbar,.sl-cobar{display:none !important}}
.sl-pdpbar__info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.sl-pdpbar__name{font-size:12.5px;color:#5a4751;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sl-pdpbar__price{font-size:17px;font-weight:700;color:#c0395b;font-family:'Fraunces',Georgia,serif}
.sl-pdpbar__btn,.sl-cobar__btn{flex:0 0 auto;background:#c0395b;color:#fff;border:0;border-radius:10px;padding:13px 20px;font-size:15px;font-weight:700;min-height:48px;cursor:pointer;white-space:nowrap}
.sl-pdpbar__btn:active,.sl-cobar__btn:active{filter:brightness(.93)}
.sl-cobar__tot{flex:1 1 auto;display:flex;flex-direction:column;line-height:1.15}
.sl-cobar__lbl{font-size:11.5px;color:#7a6670;text-transform:uppercase;letter-spacing:.04em}
.sl-cobar__amt{font-size:19px;font-weight:800;color:#3a2630;font-family:'Fraunces',Georgia,serif}

/* FIN-ESTRUCT */


/* ============================================================
   FN-FIX (correcciones PDF Ian, 2026-06-21) — staging
   Reversible: borrar todo este bloque hasta FIN-FNFIX
   ============================================================ */

/* #1 swatch de variante: el numero salia invisible (.radio-label tenia fondo blanco y al seleccionar el texto se vuelve blanco -> blanco sobre blanco). Fondo transparente para que el numero se vea sobre el burdeos del seleccionado y sobre el blanco del resto. */
.product-variants .radio-label,
.product-variants-item label .radio-label,
#group_2 .radio-label { background: transparent !important; }

/* #4 tarjetas de resenas reales (home, seccion #slRevi) */
.sl-revi__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px auto 8px;max-width:1120px;padding:0 16px}
.sl-revi__card{background:#fff;border:1px solid #f0e3e8;border-radius:14px;padding:18px 18px 15px;box-shadow:0 4px 18px rgba(124,30,60,.06);display:flex;flex-direction:column;gap:9px;text-align:left}
.sl-revi__card-stars{color:#e8a200;font-size:15px;letter-spacing:1.5px;line-height:1}
.sl-revi__card-text{color:#4a3b42;font-size:14.5px;line-height:1.5;font-style:italic;flex:1;margin:0}
.sl-revi__card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.sl-revi__card-name{font-weight:700;color:#3a2630;font-size:13.5px}
.sl-revi__card-badge{font-size:11px;color:#2e9b57;font-weight:600;white-space:nowrap}
@media(max-width:900px){.sl-revi__grid{grid-template-columns:1fr;max-width:460px}}

/* #5 chip de valoracion real en la barra superior (#home1 = "Opiniones de clientes") */
#home1 .sl-toprating{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;white-space:nowrap}
#home1 .sl-toprating .stars{color:#ffc83d;letter-spacing:.5px}
#home1 .sl-toprating strong{font-weight:800}

/* FIN-FNFIX */

/* FN-FIX: ocultar widget Revi muerto (revi7.com caido) que dejaba hueco vacio sobre las resenas reales · borrar esta linea para revertir */
.revi_align_center{display:none !important}

/* FN-FIX v2 (correccion PDF Ian): chip de opiniones legible sobre blanco + quitar imagen de estrellas duplicada (55starts.png) */
.sl-toprating, #home1 .sl-toprating{color:#23242a !important}
.sl-toprating strong{color:#23242a !important}
.sl-toprating .stars, #home1 .sl-toprating .stars{color:#e8a200 !important}
img[src*="55starts"]{display:none !important}

/* FN-FIX v3: chip de opiniones como BADGE blanco -> legible en cualquier fondo (blanco/granate/teal), el fondo de esa barra cambia por viewport */
.sl-toprating, #home1 .sl-toprating{background:#fff !important;color:#23242a !important;padding:3px 11px !important;border-radius:14px !important;border:1px solid rgba(0,0,0,.10) !important;box-shadow:0 1px 3px rgba(0,0,0,.10) !important}
.sl-toprating .stars, #home1 .sl-toprating .stars{color:#e8a200 !important}
.sl-toprating strong{color:#23242a !important}

/* FN-PAY 2026-06-22: badges Apple Pay + Google Pay en sellos del hero (SVG, misma altura 22px que las tarjetas) */
.sl-hero-seals svg.sl-pay{height:22px;width:auto;display:inline-block;vertical-align:middle}

/* a11y: contraste AA de badges (Lighthouse 2026-06-23) — #1f7a3d = 5.36:1 con blanco */
html body .product-miniature .sl-badge--free{background:#1f7a3d}
html body .sl-badge--free{background:#1f7a3d}
.sl-revi__card-badge{color:#1f7a3d}

/* fix cross-sell modal pointer-events (heredaba none de .modal-dialog -> clics no llegaban al boton Anadir+) */
.sl-xs--modal,.sl-xs--modal *{pointer-events:auto !important}

/* ===== SL-VQA 2026-07-03 — repaso visual móvil (reversible: restaurar custom.css.pre-vqa-20260703) ===== */

/* Bloque A (header/nav): SIN PARCHES — el informe de defectos del auditor visual llegó vacío (timeout de navegador). Nada aplicado en esta mitad. */

/* B-POPUP-FAKEORDER · ocultar módulo posfakeorder (popup 'X compró hace N minutos' generado al azar por front.js = social proof falso; solo desktop por hidden-sm-down). Selector verificado: theme.css L15837 .pos-recent-orders {position:fixed; z-index:999}, especificidad 0,1,0 sin !important → esta regla gana siempre. El JS solo alterna clases fadeInUp/fadeOutDown y no puede re-mostrar un display:none !important. Reversión: borrar este bloque o cp custom.css.pre-vqa-20260703 custom.css */
html body .pos-recent-orders{display:none !important;visibility:hidden !important;pointer-events:none !important}

/* ===== fin SL-VQA 2026-07-03 ===== */


/* ===== SL-VQA2 2026-07-03 (reversible: restaurar custom.css.pre-vqa2-20260703) ===== */
/* Bloque unificado (mitad B + mitad A). Solo CSS, append tras el bloque SL-VQA previo.
   Reversion: borrar desde este marcador hasta 'fin SL-VQA2' o restaurar el backup.
   NOTA DE MERGE: de B1 se ELIMINA el z-index:998 propuesto — evidencia de la mitad A:
   el menu movil real esta a z=99 (theme.css L16541, no ~1001) y C2b ya lo eleva a
   2147483200; bajar cookies a 998 dejaria sl-pdpbar/sl-cobar (1040) tapando el boton
   Aceptar (riesgo LSSI). El z de cookies se mantiene (2147483000, custom.css L4512).
   Orden B->A: la compactacion de cookies de A (con safe-area) gana la cascada. */

/* ---------- SL-VQA2 mitad B: ficha/modal/carrito/checkout1/coronas/local/cookies ---------- */

/* B1 · C2 cookies: compactar #poscookielaw (z-index NO se toca, ver nota de merge). El texto queda scrollable (no se oculta info legal). */
html body #poscookielaw{padding:8px 12px !important;font-size:11px !important;line-height:1.25 !important;gap:10px !important;display:flex !important;align-items:center !important}
html body #poscookielaw p{font-size:11px !important;line-height:1.25 !important;margin:0 !important;max-height:30px;overflow-y:auto}
html body #poscookielaw .btn,html body #poscookielaw .btn-primary,html body #poscookielaw #poscookielaw-accept{padding:9px 14px !important;font-size:12.5px !important;min-height:38px;flex:0 0 auto}

/* B2 · C3 carrito: stepper en L. Causa: R4 (custom L5305) min-height:44 !important sobre botones apilados en vertical (tema: input 34px + 2 botones 17px). Se pasa a layout horizontal [-|qty|+] como hace el propio tema en ficha (patron L14548): botones absolutos a los lados, 46px de alto = tap target OK. */
@media (max-width:767px){
  html body .cart-item .bootstrap-touchspin{position:relative !important;display:inline-block !important;float:none !important;padding:0 46px !important;width:auto !important}
  html body .cart-item .bootstrap-touchspin input.form-control{height:46px !important;min-height:46px !important;width:52px !important;text-align:center !important;border:1px solid #e3d5da !important;border-left:0 !important;border-right:0 !important;border-radius:0 !important}
  html body .cart-item .bootstrap-touchspin .input-group-btn-vertical{position:static !important;float:none !important;width:auto !important;display:block !important}
  html body .cart-item .bootstrap-touchspin .input-group-btn-vertical .btn-touchspin{position:absolute !important;top:0 !important;bottom:0 !important;height:auto !important;min-height:44px !important;width:46px !important;min-width:46px !important;margin:0 !important;padding:0 !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;background:#faf6f7 !important;border:1px solid #e3d5da !important;color:#c0395b !important}
  html body .cart-item .bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up{right:0 !important;left:auto !important;border-radius:0 10px 10px 0 !important}
  html body .cart-item .bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down{left:0 !important;right:auto !important;margin-top:0 !important;border-radius:10px 0 0 10px !important}
  html body .cart-item .bootstrap-touchspin .input-group-btn-vertical .btn-touchspin i{position:static !important;top:auto !important;left:auto !important;font-size:18px !important;line-height:1 !important;color:#c0395b !important}
  html body .cart-item .bootstrap-touchspin .touchspin-up::after{content:'\e98d' !important;font-family:'roadthemes-icon' !important}
  html body .cart-item .bootstrap-touchspin .touchspin-down::after{content:'\e98e' !important;font-family:'roadthemes-icon' !important}
}

/* B3 · M1 ficha: botones +/- sin glifo visible (la i quedaba blanca sobre beige --sl-cream). Se fuerza color crimson y contenido explicito en ::after con roadthemes-icon (mismos codepoints que usa el tema: e98d=+ e98e=-, verificados en roadthemes-icon.css L445-448; fuente cargada segun auditoria). */
html body .product-quantity .bootstrap-touchspin .btn-touchspin i,
html body .product-quantity .qty .bootstrap-touchspin .btn-touchspin i.material-icons{color:#c0395b !important;font-size:20px !important;line-height:1 !important;position:static !important}
html body .product-quantity .bootstrap-touchspin .touchspin-up::after{content:'\e98d' !important;font-family:'roadthemes-icon' !important;font-size:18px}
html body .product-quantity .bootstrap-touchspin .touchspin-down::after{content:'\e98e' !important;font-family:'roadthemes-icon' !important;font-size:18px}

/* B4 · M9 ficha: caja fantasma dentro de los pills de variante. El label exterior (custom) ya pinta el pill; el span.radio-label interior conservaba bordes del tema (dashed d9d9d9 / verde --hovercolor al seleccionar). Se neutraliza SOLO .radio-label (no toca span.color de swatches). */
html body .product-variants .input-container .radio-label,
html body .product-variants > .product-variants-item .radio-label,
html body .product-variants .input-radio:checked + .radio-label{border:0 !important;box-shadow:none !important;background:transparent !important;min-width:0 !important;height:auto !important;padding:0 !important}

/* B5 · M8 checkout paso 1: email/contrasena a 225px porque .input-group (display:table sin width) encoge al contenido. Ancho completo en movil + boton MOSTRAR on-brand (antes bloque #253237). */
@media (max-width:767px){
  body#checkout #customer-form .form-group > .col-md-8,
  body#checkout #customer-form .form-group .input-group{width:100% !important;max-width:100% !important}
  body#checkout #customer-form .form-group .form-control{width:100% !important;max-width:100% !important}
}
body#checkout .input-group .input-group-btn > .btn[data-action='show-password']{background:#c0395b !important;border-radius:0 10px 10px 0 !important;font-weight:700 !important}
body#checkout .input-group .input-group-btn > .btn[data-action='show-password']:hover{background:#9c2c49 !important}

/* B6 · m6 checkout: hints permanentes bajo Nombre/Apellidos -> tono ayuda, no error */
body#checkout #customer-form .form-control-comment{font-size:10.5px !important;color:#a3959b !important;line-height:1.3 !important;padding-top:3px !important;font-style:italic}

/* B7 · M7 pagina local: iframe de Google Maps con width=600 fijo recortado por overflow-x hidden -> fluido */
html body iframe[src*="google.com/maps/embed"]{width:100% !important;max-width:100% !important;display:block !important;margin:0 auto !important;border:0}

/* B8 · m2 modal post-add: la 1a linea decia "Total:" (traduccion ES de la key 'Subtotal:' del tpl). Relabel CSS: solo el p SIN clase .product-total que contiene span.label (la linea de envio no usa .label; verificado en modules/ps_shoppingcart/modal.tpl). */
#blockcart-modal .cart-content p:not(.product-total) span.label{font-size:0 !important}
#blockcart-modal .cart-content p:not(.product-total) span.label::before{content:'Subtotal:';font-size:14px;font-weight:600}

/* B9 · m3 modal post-add: el panel "Completa tu regalo" flotaba separado del modal (margin-top:14px propio en L4974) dejando ver la pagina por el hueco. Se pega al card y se continua el radio. */
#blockcart-modal .sl-xs.sl-xs--modal{margin-top:0 !important;border-radius:0 0 14px 14px !important;border-top:0 !important}
#blockcart-modal .modal-dialog:has(.sl-xs--modal) .modal-content{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:0}

/* B10 · m4 carrito: precio impreso 2 veces sin etiquetas + atributo con el valor descolgado. Micro-etiquetas via ::before (unitario = .product-price-and-shipping .price; total = div.price .product-price, segun cart-detailed-product-line.tpl) y atributo en linea. */
@media (max-width:767px){
  html body .cart-item .product-line-info span.label,
  html body .cart-item .product-line-info span.value{display:inline !important;font-size:12.5px !important;color:#7a6670 !important;font-weight:500 !important}
  html body .cart-item .product-line-grid-right .product-price-and-shipping .price::before{content:'Unidad';display:block;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:#9b8d94;font-weight:600}
  html body .cart-item .product-line-grid-right div.price .product-price::before{content:'Total';display:block;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:#9b8d94;font-weight:600}
}

/* B11 · m9 ficha: img/cms/payment.png esta 404 (asset roto latente en desktop) */
html body .product-information .payment-detail img[src*="payment.png"]{display:none !important}

/* B12 · C1 coronas (cosmetico): empty-state on-brand mientras no haya productos (el fix real es de catalogo, ver pendientes) */
#products .alert,#products .alert-warning{background:#fbf3f6 !important;border:1px solid #e6cdd6 !important;color:#4a2c38 !important;border-radius:12px !important;padding:18px 16px !important;text-align:center !important;font-size:14px !important}

/* ---------- SL-VQA2 mitad A: topbar/menu movil/home/categoria ---------- */

/* [C2a] Cookies #poscookielaw: compactar (108px medidos -> ~60-75px). Pisa nuestras reglas previas L4512 y L5216: mismos selectores + !important, este bloque va despues => gana en cascada. */
html body #poscookielaw{display:flex !important;align-items:center !important;gap:10px !important;padding:7px 12px !important;padding-bottom:calc(7px + env(safe-area-inset-bottom,0px)) !important;font-size:11.5px !important;line-height:1.3 !important}
html body #poscookielaw p{flex:1 1 auto;margin:0 !important;font-size:11.5px !important;line-height:1.3 !important}
html body #poscookielaw .btn,html body #poscookielaw button,html body #poscookielaw #poscookielaw-accept{flex:0 0 auto;padding:7px 14px !important;font-size:12px !important;min-height:34px}

/* [C2b] Cookies pintadas SOBRE el menu hamburguesa abierto: #mobile_menu_wrapper tiene z-index:99 (theme.css L16541) vs cookies 2147483000 (custom L4512). Subimos el menu por encima; cerrado esta translate(-400px) fuera de pantalla, cero efecto. */
html body #mobile_menu_wrapper{z-index:2147483200 !important}

/* [M4] Menu movil: iconos add y remove visibles A LA VEZ (40+40px apilados = filas de 100px). Causa raiz: posmegamenu/posvegamenu front.js (activeMobile) alterna la clase .open_menu sobre el propio span.icon-drop-mobile, pero el tema solo oculta .open_menu i.add (theme.css L16715) y NUNCA i.remove en estado cerrado. Cerrado: solo '+'. Abierto: solo '-'. */
html body #mobile_menu_wrapper .icon-drop-mobile i.material-icons,html body .mobile-menu .icon-drop-mobile i.material-icons{position:static !important}
html body #mobile_menu_wrapper .icon-drop-mobile i.remove,html body .mobile-menu .icon-drop-mobile i.remove{display:none !important}
html body #mobile_menu_wrapper .icon-drop-mobile.open_menu i.remove,html body .mobile-menu .icon-drop-mobile.open_menu i.remove{display:block !important}
html body #mobile_menu_wrapper .icon-drop-mobile.open_menu i.add,html body .mobile-menu .icon-drop-mobile.open_menu i.add{display:none !important}

/* [m1] Topbar 'Envio GRATIS en pedidos +50' partido con '+50' huerfano. Seccion elementor uf9skvg / widget 7o1cotm (13px). Forzamos 1 linea sin riesgo de overflow (texto ~180px @12px << 390px) y anchos 100% en toda la cadena elementor. */
@media (max-width:768px){
  .elementor-element-uf9skvg{overflow:hidden}
  .elementor-element-uf9skvg .elementor-container,.elementor-element-uf9skvg .elementor-row,.elementor-element-uf9skvg .elementor-column,.elementor-element-uf9skvg .elementor-widget-wrap,.elementor-element-uf9skvg .elementor-element-7o1cotm{width:100% !important;max-width:100% !important;min-width:0 !important}
  html body .elementor-element-uf9skvg .elementor-text-editor{font-size:clamp(10.5px,3.1vw,13px) !important}
  .elementor-element-uf9skvg .elementor-text-editor p{white-space:nowrap !important;margin:0 !important;text-align:center}
  .elementor-element-uf9skvg .elementor-text-editor u,.elementor-element-uf9skvg .elementor-text-editor b{white-space:nowrap !important}
}

/* [M5] Categoria: 'Ordenar por:' pisaba el boton Relevancia. Causa: nuestra regla L5055 (.sort-by{display:block !important}) re-mostraba el label span.col-sm-3.hidden-sm-down sin darle sitio. Fila flex alineada; especificidad mayor que L5055 => gana. */
@media (max-width:768px){
  #category .products-selection .sort-by-row,#category .sort-by-row{display:flex !important;align-items:center !important;justify-content:flex-end !important;flex-wrap:nowrap !important;gap:8px}
  #category .sort-by-row .sort-by{display:inline-flex !important;align-items:center !important;width:auto !important;flex:0 0 auto !important;float:none !important;margin:0 !important;padding:0 !important;text-align:left !important;white-space:nowrap !important;font-size:13px !important;position:static !important}
  #category .sort-by-row .products-sort-order{flex:0 1 auto !important;width:auto !important;min-width:170px;max-width:240px;float:none !important;margin:0 !important;padding:0 !important;position:relative !important}
}

/* [M6] Miniatura no comprable: span class='ajax_add_to_cart_button disabled' (SIN .add-to-cart => no le llegaba nuestra regla 17.4 L4339) salia gris #9AA0A6 con 'Enviar flores' blanco = parece roto. Pill neutra + literal honesto via ::after (font-size:0 oculta el literal enganoso). position:relative NO necesario. */
html body article.js-product-miniature span.ajax_add_to_cart_button.disabled{background:#f4f1f2 !important;background-image:none !important;border:1.5px solid #ddd3d7 !important;color:#9a8a90 !important;box-shadow:none !important;cursor:not-allowed !important;pointer-events:none !important;font-size:0 !important}
html body article.js-product-miniature span.ajax_add_to_cart_button.disabled::after{content:'No disponible';font-size:13px;line-height:1.2;font-weight:600;color:#9a8a90}

/* [m7] Bloque SEO inferior de categoria: br suelto + margenes (hueco) y H2 en sans con salmon #c75e59 fuera de paleta. Fraunces + crimson de marca; el span con style inline se pisa con !important (hoja+!important > inline sin !important). Solo el #category-description del final es visible (los otros dos estan comentados en el tpl). */
#category #content-wrapper > br,#category #main > br{display:none}
#category #js-product-list-bottom{margin:0 !important;padding:0 !important;min-height:0 !important}
#category #category-description{margin-top:8px !important;padding-top:0 !important}
#category #category-description h2{font-family:'Fraunces',Georgia,serif !important;font-weight:600 !important;font-size:22px !important;line-height:1.25 !important;color:#3a2630 !important;margin:0 0 12px !important}
#category #category-description h2::after{background:#c0395b !important}
#category #category-description span[style*='c75e59'],#category #category-description span[style*='C75E59']{color:#c0395b !important}

/* [m10] Franja de confianza home (section.sl-trust.sl-trust--flush, scroll-x sin afordancia, item cortado a media palabra): fundido en el borde derecho como pista de scroll. pointer-events:none => no roba taps. */
@media (max-width:767px){
  .sl-trust{position:relative}
  .sl-trust::after{content:'';position:absolute;top:0;right:0;bottom:0;width:44px;pointer-events:none;background:linear-gradient(to left,var(--sl-cream,#faf5f0),rgba(255,255,255,0))}
  .sl-trust--plain::after{background:linear-gradient(to left,var(--sl-bg,#fff),rgba(255,255,255,0))}
}

/* [C1-mitigacion] Coronas (body.category-id-28, 0 productos): el aviso 'No hay productos' (section#content.page-not-found con h4+p) sale crudo y ANTES del resto del contenido. Lo empujamos al final del contenedor y lo vestimos de aviso suave on-brand. El fix REAL (catalogo) es de BO, no de CSS. Scoped SOLO a esta categoria. */
body.category-id-28 #main,body.category-id-28 #products-list{display:flex;flex-direction:column}
body.category-id-28 #main > *,body.category-id-28 #products-list > *{min-width:0}
body.category-id-28 #main > #content.page-not-found,body.category-id-28 #products-list > #content.page-not-found{order:99}
body.category-id-28 #content.page-not-found{background:#fbf3f6;border:1px solid #e6cdd6;border-radius:12px;padding:20px 16px;text-align:center;margin:14px 0}
body.category-id-28 #content.page-not-found h4{font-family:'Fraunces',Georgia,serif;color:#3a2630;font-size:17px;margin:0 0 6px}
body.category-id-28 #content.page-not-found p{color:#7a6670;font-size:13.5px;margin:0}

/* [M7-mapa] La Eliana: iframe Google Maps con width=600 fijo recortado 228px por overflow-x:hidden del main. (Duplicado benigno con B7: mismos valores width:100%, cero colision.) */
@media (max-width:768px){
  iframe[src*='google.com/maps/embed'][width='600'],#main iframe[src*='google.com/maps/embed']{width:100% !important;max-width:100% !important;display:block}
}

/* ===== fin SL-VQA2 ===== */

/* ===== SL-VQA2b 2026-07-03 — retoque post-verificacion: contraste del pill 'No disponible' (M6); el bg gris #9AA0A6 es inline !important del tema, solo podemos subir el texto a blanco ===== */
html body article.js-product-miniature span.ajax_add_to_cart_button.disabled::after{color:#ffffff !important}
/* ===== fin SL-VQA2b ===== */

/* ===== SL-VQA3 2026-07-03 — menu movil: toggles +/- inline (no fila fantasma) + WhatsApp no tapa el menu abierto. Reversible: restaurar custom.css.pre-vqa3-20260703 ===== */
@media (max-width:768px){
  /* D1 nivel 1: el li ya es position:relative; sacamos el span.icon-drop-mobile del FLUJO (era la caja 46x46 del bloque r2 que saltaba a linea nueva y creaba el hueco). Absolute a la derecha del label, 52x52, centrado. */
  html body #mobile_menu_wrapper ul.menu-content > li{position:relative !important;min-height:0 !important}
  html body #mobile_menu_wrapper ul.menu-content > li > a{padding-right:56px !important}
  html body #mobile_menu_wrapper ul.menu-content > li > .icon-drop-mobile{position:absolute !important;top:0 !important;right:0 !important;bottom:auto !important;left:auto !important;width:52px !important;height:52px !important;min-width:0 !important;min-height:0 !important;display:flex !important;align-items:center !important;justify-content:center !important;margin:0 !important;padding:0 !important;z-index:2}
  html body #mobile_menu_wrapper ul.menu-content > li > .icon-drop-mobile i.material-icons{position:static !important;top:auto !important;right:auto !important;width:auto !important;height:auto !important;line-height:1 !important;font-size:22px !important;color:#2e2a26 !important}
  /* alternancia limpia: cerrado solo '+', abierto solo '-' (el tema ya ocultaba i.add en .open_menu; faltaba ocultar i.remove en cerrado -> era el duplicado solapado) */
  html body #mobile_menu_wrapper .icon-drop-mobile:not(.open_menu) i.remove{display:none !important}
  html body #mobile_menu_wrapper .icon-drop-mobile.open_menu i.add{display:none !important}
  html body #mobile_menu_wrapper .icon-drop-mobile.open_menu i.remove{display:inline-flex !important}
  /* subitems (.pos-menu-col): verificado que NO tienen 3er nivel -> sus +/- son toggles muertos: ocultarlos y matar su fila fantasma */
  html body #mobile_menu_wrapper .pos-menu-col{position:relative !important}
  html body #mobile_menu_wrapper .pos-menu-col > .icon-drop-mobile{display:none !important}
  /* D2 WhatsApp: ocultar SOLO con el offcanvas abierto (clase box-menu en el wrapper); al cerrar vuelve. :has() soportado en Safari/Chrome modernos; en navegador viejo simplemente no se oculta (degradacion suave). */
  body:has(#mobile_menu_wrapper.box-menu) .ets_wa_whatsapp_block{display:none !important}
}
/* ===== fin SL-VQA3 ===== */
