/* KMV Product Carousel - Front */
.kmvpc-section{
  width:100%;
  margin:0;
}

.kmvpc-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin:0 0 14px 0;
}

.kmvpc-title{
  margin:0;
  font-size:22px;
  line-height:1.2;
  font-weight:700;
  color:#fff;
}

/* --- Carrinho: carrossel compacto no topo (shortcode [kmv_cart_also_bought]) --- */
.woocommerce-cart .kmvpc-cart-mini .kmvpc-title{ color:#121212; }
.woocommerce-cart .kmvpc-cart-mini .kmvpc-track{ --kmv-per-view:4; --kmv-gap:14px; }
.woocommerce-cart .kmvpc-cart-mini .kmvpc-body{ padding:10px 10px 12px 10px; gap:8px; }
.woocommerce-cart .kmvpc-cart-mini .kmvpc-name{ font-size:13px; min-height: calc(1.25em * 2); }
.woocommerce-cart .kmvpc-cart-mini .kmvpc-name a{ -webkit-line-clamp:2; }
.woocommerce-cart .kmvpc-cart-mini .kmvpc-price-current{ font-size:16px; }
.woocommerce-cart .kmvpc-cart-mini .kmvpc-price-old{ font-size:12px; }
.woocommerce-cart .kmvpc-cart-mini .kmvpc-buy{ height:38px; border-radius:10px; }

@media (max-width: 767px){
  .woocommerce-cart .kmvpc-cart-mini .kmvpc-track{ --kmv-per-view:2; --kmv-gap:10px; }
  .woocommerce-cart .kmvpc-cart-mini .kmvpc-cta{ min-height:70px; }
}

.kmvpc-carousel{
  position:relative;
}

.kmvpc-track{
  --kmv-gap: 18px;
  --kmv-per-view: 5;
  display:flex;
  gap:var(--kmv-gap);
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding: 4px 54px 10px 4px; /* space for arrows + preview */
  margin:0;
  /* -webkit-overflow-scrolling is deprecated since iOS 13 — removed */
}

.kmvpc-track::-webkit-scrollbar{ height:8px; }
.kmvpc-track::-webkit-scrollbar-thumb{ background: rgba(255,255,255,.15); border-radius:999px; }

@media (max-width: 767px){
  /* Mobile layout: 2 cards + arrows below (no overlay) */
  .kmvpc-carousel{
    display:grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "track track"
      "prev next";
    row-gap: 12px;
    align-items:center;
  }

  .kmvpc-track{
    grid-area: track;
    --kmv-gap: 12px;
    --kmv-per-view: 2;
    padding: 4px 4px 10px 4px;
  }

  .kmvpc-prev{ grid-area: prev; justify-self:start; margin-left:8px; }
  .kmvpc-next{ grid-area: next; justify-self:end; margin-right:8px; }

  .kmvpc-nav{
    position: static;
    transform:none;
  }

  .kmvpc-title{ font-size:18px; }

  /* Keep CTA aligned across cards even when "Ver carrinho" appears */
  .kmvpc-card{ display:flex; flex-direction:column; }
  .kmvpc-body{ flex:1; }
  .kmvpc-price{ min-height: 0 !important; }
  .kmvpc-price-pix{ margin-top: -6px !important; }
  .kmvpc-installment{ font-size:11px !important; }
  .kmvpc-cta{
    margin-top:auto;
    min-height: 86px;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
  }

  /* Aplicar as mesmas regras de card no grid de categorias e relacionados */
  .woocommerce ul.products.kmvpc-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap:12px !important;
  }

  .woocommerce ul.products.kmvpc-grid li.product .kmvpc-card,
  .single-product .related ul.products.kmvpc-grid li.product .kmvpc-card{
    display:flex !important;
    flex-direction:column !important;
    height:100%;
  }

  .woocommerce ul.products.kmvpc-grid .kmvpc-body,
  .single-product .related ul.products.kmvpc-grid .kmvpc-body{
    flex:1 !important;
  }

  .woocommerce ul.products.kmvpc-grid .kmvpc-price,
  .single-product .related ul.products.kmvpc-grid .kmvpc-price{
    min-height:0 !important;
  }

  .woocommerce ul.products.kmvpc-grid .kmvpc-price-pix,
  .single-product .related ul.products.kmvpc-grid .kmvpc-price-pix{
    margin-top:-6px !important;
  }

  .woocommerce ul.products.kmvpc-grid .kmvpc-installment,
  .single-product .related ul.products.kmvpc-grid .kmvpc-installment{
    font-size:11px !important;
  }

  .woocommerce ul.products.kmvpc-grid .kmvpc-cta,
  .single-product .related ul.products.kmvpc-grid .kmvpc-cta{
    margin-top:auto !important;
    min-height:86px !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
  }
}

.kmvpc-card{
  position:relative; /* ancora os .kmvpc-badges no card correto */
  flex:0 0 calc((100% - (var(--kmv-gap) * (var(--kmv-per-view) - 1))) / var(--kmv-per-view));
  scroll-snap-align:start;
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  box-shadow: 0 8px 26px rgba(0,0,0,.18);
  border:1px solid rgba(0,0,0,.06);
}

.kmvpc-media{
  position:relative;
  display:block;
  aspect-ratio: 1/1 !important;
  background: #f6f6f6;
  overflow:hidden;
}

.kmvpc-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  /* Ensure full image is visible (no crop), even if theme/Elementor overrides img rules */
  object-fit:contain !important;
  transition: opacity .25s ease;
}

.kmvpc-img2{
  opacity:0;
}

.kmvpc-card.has-second:hover .kmvpc-img1{ opacity:0; }
.kmvpc-card.has-second:hover .kmvpc-img2{ opacity:1; }
/* Do not zoom images on hover (zoom + overflow hidden crops the photo) */
.kmvpc-card:hover .kmvpc-img{ transform:none !important; }

/* Animação pulsante para chamar atenção */
@keyframes kmvpc-pulse {
  0%,100% { transform: scale(1);   opacity:1; }
  50%      { transform: scale(1.07); opacity:.88; }
}

/* Container dos badges — posicionado sobre a imagem, fora do <a> */
.kmvpc-badges{
  position:absolute;
  top:10px;
  left:10px;
  z-index:3;
  display:flex;
  flex-direction:column;
  gap:5px;
  pointer-events:none;
}

/* Badge base */
.kmvpc-badge{
  pointer-events:auto;
  padding:5px 11px;
  border-radius:999px;
  font-weight:700;
  font-size:11px;
  line-height:1.3;
  display:inline-block;
  text-decoration:none;
  white-space:nowrap;
  align-self:flex-start;
  animation: kmvpc-pulse 2s ease-in-out infinite;
  transition: background .2s, color .2s;
}

/* Badge de desconto — vermelho */
.kmvpc-badge-discount{
  background:#cc0000 !important;
  color:#fff !important;
}
.kmvpc-badge-discount:hover{
  background:#B4567C !important;
  color:#fff !important;
  text-decoration:none;
}

/* Badge de frete grátis — verde */
.kmvpc-badge-shipping{
  background:#1a8a3c !important;
  color:#fff !important;
  cursor:pointer;
}
.kmvpc-badge-shipping:hover{
  background:#B4567C !important;
  color:#fff !important;
  text-decoration:none;
}

/* Badge de lançamento — roxo */
.kmvpc-badge-lancamento{
  background:#7c3aed !important;
  color:#fff !important;
}
.kmvpc-badge-lancamento:hover{
  background:#6d28d9 !important;
  color:#fff !important;
  text-decoration:none;
}

/* Badge de novidades — azul royal */
.kmvpc-badge-novidades{
  background:#0369a1 !important;
  color:#fff !important;
}
.kmvpc-badge-novidades:hover{
  background:#075985 !important;
  color:#fff !important;
  text-decoration:none;
}

.kmvpc-body{
  padding:14px 14px 16px 14px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.kmvpc-name{
  margin:0;
  font-size:13px;
  line-height:1.2;
  font-weight:400 !important;
  color:#666;
  min-height: calc(1.2em * 3);
}

.kmvpc-name a,
.kmvpc-name a:visited{
  color:#666 !important;
  font-weight:400 !important;
  text-decoration:none !important;

  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* Remove hover do nome (sem cor fora do padrao e sem sublinhado) */
.kmvpc-name a:hover,
.kmvpc-name a:focus,
.kmvpc-name a:active{
  color:#666 !important;
  text-decoration:none !important;
  outline:none;
}

.kmvpc-price{
  display:flex;
  align-items:baseline;
  gap:10px;
  flex-wrap:wrap;
}

/* Preco no Pix (10% off) - menos destaque */
.kmvpc-price-pix{
  margin-top:-6px;
  font-size:12px;
  line-height:1.2;
  font-weight:400;
  color:#666;
  display:flex;
  gap:6px;
  align-items:baseline;
}
.kmvpc-price-pix .woocommerce-Price-amount,
.kmvpc-price-pix bdi{
  font-weight:400;
}
.kmvpc-pix-text{ color:#777; }

.kmvpc-installment{
  font-size:11px;
  font-weight:400;
  color:#777;
  line-height:1.4;
  margin-top:-2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.kmvpc-installment-value{
  font-weight:600;
  color:#121212;
  white-space:nowrap;
}

.kmvpc-price-current{
  font-size:18px;
  font-weight:600;
  color:#121212;
}

.kmvpc-price-old{
  font-size:13px;
  color:#777;
  text-decoration:line-through;
}

.kmvpc-price-html{
  font-size:15px;
  font-weight:600;
  color:#121212;
}

.kmvpc-cta{
  margin-top:auto;
}

.kmvpc-buy{
  width:100%;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  height:48px;
  border-radius:12px;
  background:#B4567C !important;
  color:#fff !important;
  font-weight:400;
  text-transform:none;
  border:none;
  box-shadow: 0 10px 18px rgba(180,86,124,.30) !important;
}

.kmvpc-buy:hover{
  filter:brightness(1.03);
  transform: translateY(-1px);
}

/* Destaque do link "Ver carrinho" (WooCommerce ajax add to cart) */
.kmvpc-cta a.added_to_cart{
  display:block;
  margin-top:10px;
  text-align:center;
  color:#B4567C;
  font-weight:900;
  text-decoration:none;
}
.kmvpc-cta a.added_to_cart:hover{
  text-decoration:underline;
}


.kmvpc-nav{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width:44px;
  height:44px;
  border-radius:14px;
  border:none;
  background:#B4567C;
  color:#fff !important;
  font-size:22px;
  font-weight:900;
  line-height:1;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  cursor:pointer;
  z-index:3;
  box-shadow: 0 10px 18px rgba(180,86,124,.30);
}

.kmvpc-prev{ left:6px; }
.kmvpc-next{ right:6px; }

.kmvpc-nav:hover{
  background:#c9759a !important;
  color:#fff !important;
  filter:none;
}

/*
  WooCommerce Shop Archive (/loja/, categorias, tags)
  Single consolidated grid block with !important to beat theme/Elementor overrides.
  The previous version had this declared twice with conflicting breakpoints — merged here.
*/
.woocommerce ul.products.kmvpc-grid{
  display:grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap:18px !important;
  margin:0;
  padding:0;
}

.woocommerce ul.products.kmvpc-grid li.product{
  width:auto;
  margin:0;
  list-style:none;
}

.woocommerce ul.products.kmvpc-grid li.product .kmvpc-card{
  height:100%;
  display:flex;
  flex-direction:column;
}

@media (max-width: 1200px){
  .woocommerce ul.products.kmvpc-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

@media (max-width: 900px){
  .woocommerce ul.products.kmvpc-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 560px){
  .woocommerce ul.products.kmvpc-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap:12px !important;
  }
}

/* Single product: related products — keep 2 cols on mobile */
@media (max-width: 560px){
  .single-product .related ul.products.kmvpc-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap:12px !important;
  }
}

.woocommerce ul.products li.kmvpc-loop-item{
  margin:0 !important;
}
.woocommerce ul.products li.kmvpc-loop-item .kmvpc-card{
  width:100% !important;
}
.woocommerce ul.products li.kmvpc-loop-item .kmvpc-buy{
  background:#B4567C !important;
  color:#fff !important;
}

/* Hide legacy loop CTAs (e.g. WhatsApp) if any plugin/theme injects them */
.woocommerce ul.products li.kmvpc-loop-item > a.button,
.woocommerce ul.products li.kmvpc-loop-item .button:not(.kmvpc-buy):not(.added_to_cart){
  display:none !important;
}

/* FORCE: nunca esconder o botao KMV */
.kmvpc-section .kmvpc-cta a.kmvpc-buy,
.kmvpc-section .kmvpc-cta a.kmvpc-buy.add_to_cart_button,
.woocommerce ul.products li.kmvpc-loop-item .kmvpc-cta a.kmvpc-buy,
.woocommerce ul.products li.kmvpc-loop-item .kmvpc-cta a.kmvpc-buy.add_to_cart_button{
  display:inline-flex !important;
  visibility:visible !important;
  opacity:1 !important;
}

/* FORCE GLOBAL: nome menor em TODOS os cards */
.kmvpc-card .kmvpc-name,
.kmvpc-card .kmvpc-name a,
.kmvpc-card .kmvpc-name a:visited,
.woocommerce ul.products.kmvpc-grid .kmvpc-name,
.woocommerce ul.products.kmvpc-grid .kmvpc-name a,
.woocommerce ul.products.kmvpc-grid .kmvpc-name a:visited{
  font-size:13px !important;
  line-height:1.2 !important;
  font-weight:400 !important;
  color:#666 !important;
}

/* Remove hover do nome globalmente */
.kmvpc-card .kmvpc-name a:hover,
.woocommerce ul.products.kmvpc-grid .kmvpc-name a:hover{
  color:#666 !important;
  text-decoration:none !important;
}