/* BestVit Carousel v2.6 */
:root{
  --bestvit-yellow:#F6C42A;
  --bestvit-bg:#18283C;
  --bestvit-blue:#2B4F69;
  --bestvit-white:#ffffff;
}

.bestvit-carousel-wrap{ position:relative; }
.bestvit-carousel-title{ margin:0 0 16px; font-weight:800; font-size:1.6rem; color:#18283C; }
.bestvit-carousel{ overflow:visible; padding: 6px 0 32px 0; }
.bestvit-carousel-wrap .swiper-slide{ background:#ffffff; padding:8px; }

/* Card */
.bestvit-card{ background:var(--bestvit-blue); color:var(--bestvit-white); display:flex; flex-direction:column; overflow:hidden; border:1px solid rgba(255,255,255,.06); }
.bestvit-card.bg-dark{ background:var(--bestvit-bg); }
.bestvit-card.has-shadow{ box-shadow: 0 8px 24px rgba(0,0,0,.22); }

/* Thumb + ratios */
.bestvit-thumb{ display:block; position:relative; overflow:hidden; }
.bestvit-thumb img{ width:100%; height:100%; object-fit:cover; position:absolute; top:0; left:0; }
.bestvit-thumb.ar-1-1{ padding-top:100%; }
.bestvit-thumb.ar-4-3{ padding-top:75%; }
.bestvit-thumb.ar-3-4{ padding-top:133.3333%; }
.bestvit-thumb.ar-16-9{ padding-top:56.25%; }

/* Body text */
.bestvit-card-body{ padding:16px; display:flex; flex-direction:column; gap:10px; }
.bestvit-title{ margin:0 0 6px; font-size:1.125rem; line-height:1.25; color:var(--bestvit-yellow) !important; font-weight:800 !important; display:block !important; }
.bestvit-title a{ color:inherit !important; text-decoration:none; font-weight:inherit; }
.bestvit-title a:hover{ text-decoration:underline; }
/* Title clamp */
.bestvit-title{ display:-webkit-box; -webkit-line-clamp: var(--bestvit-title-lines,1); -webkit-box-orient: vertical; overflow:hidden; max-height: calc(var(--bestvit-title-lines,1) * 1.25em); }

/* Desc clamp with ellipsis */
.bestvit-desc{
  margin:0; color:#e6edf2; opacity:.95; font-size:.95rem; line-height:1.4;
  display:-webkit-box; -webkit-line-clamp: var(--bestvit-desc-lines,2); -webkit-box-orient: vertical; overflow:hidden; text-overflow: ellipsis;
  max-height: calc(var(--bestvit-desc-lines,2) * 1.4em);
  white-space:normal;
}
@media (max-width: 767px){
  .bestvit-carousel-wrap .bestvit-desc{ display:var(--bestvit-desc-mobile-display, block); }
}

/* Price with adjustable sizes */
.bestvit-price{ font-size: var(--bestvit-price-size-d, 24px); font-weight:800; color:var(--bestvit-white); line-height:1.2; }
@media (max-width: 767px){
  .bestvit-price{ font-size: var(--bestvit-price-size-m, 18px); }
}

/* Actions */
.bestvit-actions{ display:flex; gap:12px; margin-top:auto; flex-wrap:wrap; }
.bestvit-btn{ display:flex; align-items:center; justify-content:center; padding:12px 14px; border-radius:12px; font-weight:800; text-decoration:none; transition:transform .06s ease, box-shadow .2s ease, background .2s ease; border:0; outline:0; cursor:pointer; white-space:nowrap; flex:1 1 180px; min-width:0; }
.bestvit-btn:active{ transform:translateY(1px); }
.bestvit-add-to-cart{ background:var(--bestvit-yellow); color:#1a1a1a; }
.bestvit-add-to-cart:hover{ box-shadow:0 6px 16px rgba(246,196,42,.45); }
.bestvit-details{ background:#8fa9bd; color:#0e1a25; }
.bestvit-details:hover{ box-shadow:0 6px 16px rgba(143,169,189,.45); }
.bestvit-add-to-cart:before, .bestvit-details:before{ content:none !important; display:none !important; }

/* Swiper controls */
.swiper-button-next, .swiper-button-prev{ color:#0e1a25; background:#fff; border-radius:999px; width:40px; height:40px; box-shadow:0 6px 16px rgba(0,0,0,.15); }
.swiper-button-next:after, .swiper-button-prev:after{ font-size:16px; }
.swiper-button-next{ right:-10px; } .swiper-button-prev{ left:-10px; }
.swiper-pagination-bullet{ opacity:.4; background:#0e1a25; } .swiper-pagination-bullet-active{ background:var(--bestvit-yellow); opacity:1; }
.bestvit-carousel-wrap.text-center .bestvit-card-body{ align-items:center; text-align:center; }

/* Size variants */
.bestvit-carousel-wrap.size-xs .bestvit-card-body{ padding:12px; } .bestvit-carousel-wrap.size-xs .bestvit-title{ font-size:1rem; } .bestvit-carousel-wrap.size-xs .bestvit-price{ font-size:calc(var(--bestvit-price-size-d,24px) - 4px); } .bestvit-carousel-wrap.size-xs .bestvit-btn{ padding:9px 12px; border-radius:10px; font-size:.9rem; }
.bestvit-carousel-wrap.size-sm .bestvit-card-body{ padding:14px; } .bestvit-carousel-wrap.size-sm .bestvit-title{ font-size:1.05rem; } .bestvit-carousel-wrap.size-sm .bestvit-price{ font-size:calc(var(--bestvit-price-size-d,24px) - 2px); } .bestvit-carousel-wrap.size-sm .bestvit-btn{ padding:10px 12px; border-radius:11px; font-size:.95rem; }
.bestvit-carousel-wrap.size-md .bestvit-card-body{ padding:16px; } .bestvit-carousel-wrap.size-md .bestvit-title{ font-size:1.125rem; }
.bestvit-carousel-wrap.size-lg .bestvit-card-body{ padding:18px; } .bestvit-carousel-wrap.size-lg .bestvit-title{ font-size:1.225rem; } .bestvit-carousel-wrap.size-lg .bestvit-price{ font-size:calc(var(--bestvit-price-size-d,24px) + 2px); } .bestvit-carousel-wrap.size-lg .bestvit-btn{ padding:13px 16px; border-radius:13px; font-size:1rem; }
.bestvit-carousel-wrap.size-xl .bestvit-card-body{ padding:20px; } .bestvit-carousel-wrap.size-xl .bestvit-title{ font-size:1.3rem; } .bestvit-carousel-wrap.size-xl .bestvit-price{ font-size:calc(var(--bestvit-price-size-d,24px) + 4px); } .bestvit-carousel-wrap.size-xl .bestvit-btn{ padding:14px 18px; border-radius:14px; font-size:1.05rem; }

/* Static grid mode */
.bestvit-static-grid{ display:grid; gap:16px; }
.bestvit-static-grid.cols-d-1{ grid-template-columns: repeat(1, minmax(0,1fr)); }
.bestvit-static-grid.cols-d-2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
.bestvit-static-grid.cols-d-3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
.bestvit-static-grid.cols-d-4{ grid-template-columns: repeat(4, minmax(0,1fr)); }
.bestvit-static-grid.cols-d-5{ grid-template-columns: repeat(5, minmax(0,1fr)); }
.bestvit-static-grid.cols-d-6{ grid-template-columns: repeat(6, minmax(0,1fr)); }
@media (max-width: 1023px){
  .bestvit-static-grid.cols-t-1{ grid-template-columns: repeat(1, minmax(0,1fr)); }
  .bestvit-static-grid.cols-t-2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .bestvit-static-grid.cols-t-3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
  .bestvit-static-grid.cols-t-4{ grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (max-width: 767px){
  .bestvit-static-grid.cols-m-1{ grid-template-columns: repeat(1, minmax(0,1fr)); }
  .bestvit-static-grid.cols-m-2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* Modal */
.bestvit-modal-overlay{
  position:fixed; top:0; left:0; right:0; bottom:0; width:100vw; height:100vh;
  background:rgba(2,14,24,.6);
  display:flex; align-items:center; justify-content:center; z-index:2147483000;
  padding:16px; -webkit-backdrop-filter:saturate(120%) blur(2px); backdrop-filter:saturate(120%) blur(2px);
  -webkit-transform: translateZ(0); transform: translateZ(0);
}
.bestvit-modal{
  background:var(--bestvit-blue); color:var(--bestvit-white);
  width:min(720px, 100%); border-radius:18px; box-shadow:0 20px 60px rgba(0,0,0,.4);
  overflow:hidden; position:relative;
}
.bestvit-modal-header{ padding:18px 20px; background:var(--bestvit-bg); }
.bestvit-modal-title{ font-weight:800; color:var(--bestvit-yellow); font-size:1.2rem; }
.bestvit-modal-close{ position:absolute; top:10px; right:14px; border:0; background:transparent; color:#fff; font-size:28px; cursor:pointer; }
.bestvit-modal-close:focus{ outline:2px solid rgba(255,255,255,.5); outline-offset:2px; }

.bestvit-modal-body{ padding:18px 20px; color:#fff; }
.bestvit-modal .variations td.label{ width:38%; color:#dce8f2; }
.bestvit-modal .variations select{
  width:100%; background:#0e1a25; color:#fff; border:1px solid rgba(255,255,255,.15);
  padding:10px 12px; border-radius:10px; -webkit-appearance:none; appearance:none;
}
.bestvit-modal .single_add_to_cart_button{
  margin-top:14px; background: var(--bestvit-yellow) !important; color:#1a1a1a !important; border-radius:12px; padding:12px 16px; font-weight:800;
}
.bestvit-modal .quantity input.qty{
  background:#0e1a25; color:#fff; border-radius:10px; border:1px solid rgba(255,255,255,.15);
}

html.bestvit-lock, body.bestvit-lock{ overflow:hidden !important; }

/* Compatibility */
.swiper, .swiper-wrapper, .swiper-slide{ box-sizing:border-box; }
.swiper-slide{ height:auto; }


/* v2.8 modal text color + select fix */
.bestvit-modal,
.bestvit-modal .variations td,
.bestvit-modal .variations th,
.bestvit-modal label,
.bestvit-modal p,
.bestvit-modal .bestvit-modal-header .bestvit-modal-title { color:#fff !important; }
.bestvit-modal a{ color:#fff !important; text-decoration: underline; text-underline-offset: 2px; }
.bestvit-modal select{ color:#fff !important; background:#0e1a25 !important; border-color: rgba(255,255,255,.2) !important; }
.bestvit-modal .bestvit-modal-error{ margin-top:8px; padding:8px 10px; background:rgba(255,0,0,.12); border:1px solid rgba(255,0,0,.35); border-radius:10px; color:#fff; font-weight:600; }


/* v2.3 – Enforce price font-size inside carousel against global overrides */
.bestvit-carousel-wrap .bestvit-card .bestvit-price,
.bestvit-carousel-wrap .bestvit-card .bestvit-price .woocommerce-Price-amount,
.bestvit-carousel-wrap .bestvit-card .bestvit-price bdi{
  font-size: var(--bestvit-price-size-d, 24px) !important;
  line-height: 1.2 !important;
}
@media (max-width: 767px){
  .bestvit-carousel-wrap .bestvit-card .bestvit-price,
  .bestvit-carousel-wrap .bestvit-card .bestvit-price .woocommerce-Price-amount,
  .bestvit-carousel-wrap .bestvit-card .bestvit-price bdi{
    font-size: var(--bestvit-price-size-m, 18px) !important;
  }
}
