.ecommerce-products__featured,.ecommerce-products__grid,.ecommerce-products__list,.ecommerce-products__slider{position:relative}.ecommerce-products__list-item{background-color:var(--bs-body-bg);transition:box-shadow .2s ease}.ecommerce-products__list-item:hover{box-shadow:0 4px 12px rgba(0,0,0,.06)}.ecommerce-products__featured-hero{min-height:320px;overflow:hidden}.ecommerce-products__featured-overlay{background:linear-gradient(180deg,transparent,rgba(0,0,0,.55));color:var(--bs-white,#fff)}.ecommerce-products__view-all .btn{min-width:180px}.ecommerce-categories__card{transition:transform .2s ease}.ecommerce-categories__card:hover{transform:translateY(-4px)}.ecommerce-categories__thumb{aspect-ratio:1/1;background-color:var(--bs-light,#f8f9fa)}.ecommerce-categories__thumb img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.ecommerce-categories__list-item .badge{font-weight:500}.ecommerce-brands__logo{opacity:.7;transition:opacity .2s ease}.ecommerce-brands__logo:hover{opacity:1}.ecommerce-flash-sale__banner{background-color:var(--ecommerce-flash-sale-bg,#1a1a1a);background-blend-mode:multiply}.ecommerce-flash-sale__countdown{--countdown-block-bg:var(--ecommerce-countdown-bg,#000)}.ecommerce-flash-sale__countdown-block{min-width:64px}.ecommerce-product-groups__tab-nav .nav-link{font-weight:500}.ecommerce-product-groups__column-item{border-bottom:1px solid var(--bs-border-color,#e5e5e5);padding-bottom:.75rem}.ecommerce-product-groups__column-item:last-child{border-bottom:0;padding-bottom:0}.ecommerce-product-groups__bundle-plus{color:var(--bs-secondary,#6c757d)}.ecommerce-product-groups__bundle-total{color:var(--bs-primary,#1a1a1a)}.ecommerce-coupons__card{transition:box-shadow .2s ease}.ecommerce-coupons__card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}.ecommerce-coupons__value{min-width:84px}.ecommerce-collections__card{transition:transform .25s ease}.ecommerce-collections__card:hover{transform:translateY(-4px)}.ecommerce-collections__thumb img{width:100%;height:auto;transition:transform .4s ease}.ecommerce-collections__card:hover .ecommerce-collections__thumb img{transform:scale(1.05)}.ecommerce-collections__overlay{background:linear-gradient(180deg,transparent,rgba(0,0,0,.6))}.recently-viewed-products__slider{position:relative}
/* ============================================================================
   Kingster custom storefront overrides.
   IMPORTANT: keep this file identical in BOTH locations —
     platform/themes/kingster/public/css/ecommerce.css   (source of truth)
     public/themes/kingster/css/ecommerce.css            (published copy)
   `cms:publish:assets` (runs on composer/plugin operations) copies source →
   published; edits made only to the published copy get wiped.
   ========================================================================== */

/* ===== Kingster: Product card image containment fix ===== */
.card-product_wrapper .product-img{display:block;width:100%;height:100%}
.card-product_wrapper .img-product,
.card-product_wrapper .img-hover{width:100%;height:100%;object-fit:cover}

/* ===== Kingster: Ensure category grid images are contained ===== */
.ecommerce-categories__thumb img,
.collection-item img{max-width:100%;object-fit:cover}

/* ===== Kingster: hide topbar announcement slider arrows ===== */
.tf-topbar .nav-prev-swiper,
.tf-topbar .nav-next-swiper{display:none!important}

/* ===== Kingster: hide header-bottom toggle (grid) button ===== */
.box-open-header-bottom{display:none!important}

/* ===== Kingster: Responsive audit fixes (July 2026) ===== */
/* warranty status result box full width on phones */
#warrantyResultContainer{width:100%!important;max-width:720px;margin:0 auto}
/* quick-view drawer never wider than viewport (iPad portrait) */
@media (min-width:768px){.canvas-quickview{width:min(848px,100vw)!important}}
/* newsletter popup input usable on phones, no iOS zoom */
@media (max-width:575px){.newsletter-popup.modal .bb-newsletter-popup-form input[type=email]{padding:0 110px 0 16px!important;font-size:16px!important}}
/* back-to-top clear of bottom toolbar and sticky ATC bar */
@media (max-width:1199px){
#goTop{bottom:calc(96px + env(safe-area-inset-bottom,0px))!important}
body:has(.tf-sticky-btn-atc) #goTop{bottom:calc(170px + env(safe-area-inset-bottom,0px))!important}
}
/* auth inputs 16px to prevent iOS zoom */
@media (max-width:767px){body#page-auth .kingster-auth-card .form-control,body#page-auth .kingster-auth-card .form-select{font-size:16px!important}}
/* parallax banner heading cap on phones */
@media (max-width:767px){.parallax-banner .text.h1{font-size:36px!important}}
/* contact map height on phones */
@media (max-width:575px){.section-contact iframe{height:300px!important}}
/* payment method logos never overflow */
.widget-payment-methods img{max-width:120px;height:auto}
.widget-payment-methods .d-flex,.widget-payment-methods ul{flex-wrap:wrap}


/* ===== Kingster: hide Orders pending badge ===== */
.pending-orders,.ecommerce-count{display:none!important}

/* ===== Kingster: banner-to-products gap ===== */
body section.ecommerce-products.flat-spacing.pt-0,
body section.flat-spacing.pt-0 {
    padding-top: 80px !important;
    margin-top: 0 !important;
}
body .hero-banner-slider-wrap,
body [class*=hero-banner] {
    margin-bottom: 0 !important;
}
@media (max-width: 767px) {
    body section.ecommerce-products.flat-spacing.pt-0,
    body section.flat-spacing.pt-0 { padding-top: 48px !important; }
}

/* ===== Kingster: card meta row — info left, Add to cart right (July 2026) ===== */
/* Single row on ALL screen sizes (owner request): sold count / rating / price
   stacked on the left, quick-add button on the right. */
.kingster-card-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:auto;width:100%;min-width:0}
.kingster-card-meta_left{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto}
.kingster-card-meta_left .card-product__price{flex-wrap:wrap}
.card-product .kingster-quick-add{margin-top:0;width:auto;flex-shrink:0}
.card-product .kingster-quick-add .tf-btn{width:auto;white-space:nowrap;padding-left:18px;padding-right:18px;border:1px solid rgba(120,120,120,.25)}
@media (max-width:1199px){.card-product .kingster-quick-add .tf-btn{min-height:44px}}
/* phones: keep the same single row, just tighter button padding */
@media (max-width:575px){
.kingster-card-meta{gap:8px}
.card-product .kingster-quick-add .tf-btn{padding-left:12px;padding-right:12px;font-size:13px}
}

/* ===== Kingster: dark shop page fixes (July 2026) ===== */
/* filter sidebar: theme paints it white (var(--white)) — use dark surface so no
   white slivers show behind the rounded widget boxes (also keeps the mobile
   filter drawer readable) */
.sidebar-filter{background-color:var(--surface,#111315)!important}
.sidebar-filter .canvas-body{background-color:transparent}
/* shop toolbar: same white-background problem — dark rounded bar instead */
.tf-shop-control{background:var(--surface,#111315)!important;border-radius:12px}
/* keep only the grid view switch (owner request) — hide the list toggle */
.tf-view-layout-switch.sw-layout-list{display:none!important}
/* product-card action buttons: quick-view rendered square — make all three
   icons the same circle */
.card-product .box-icon,
.product-action_list .box-icon,
.btn-icon-quick_view{border-radius:50%!important;overflow:hidden}
