/* BD Software Shop - shop archive skin. Frontend only. */

body.bdss-shop{
--s-bg:#F5F7FC;--s-card:#FFF;--s-line:#E4EAF5;--s-line2:#DCE4F2;--s-line3:#C9D9F4;
--s-ink:#0A2350;--s-body:#33476B;--s-mut:#5D7095;--s-faint:#93A4C1;
--s-blue:#1A7BFF;--s-blued:#0B57D0;--s-tint:#EFF5FF;
--s-sale:#D42A16;--s-ok:#16A34A;--s-thumb:#EAF1FD;--s-head:#F8FAFE;
--s-h:'Space Grotesk','IBM Plex Sans',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
--s-t:'Hind Siliguri','IBM Plex Sans',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
--s-sh:0 1px 2px rgba(10,35,80,.04);
--s-shh:0 4px 14px rgba(10,35,80,.07);
}

/* ------------------------------------------------------------ zoom guards
 * Browser zoom changes the CSS pixel viewport, so the breakpoints below do
 * the real work. These rules stop anything from spilling sideways at any
 * zoom step, and let every flex/grid child shrink instead of pushing.
 */
body.bdss-shop{overflow-x:clip}
body.bdss-shop .main-page-wrapper,
body.bdss-shop .wd-content-area,
body.bdss-shop .site-content{max-width:100%;overflow-x:clip}
body.bdss-shop .wd-content-area,
body.bdss-shop .wd-content-area *,
body.bdss-shop .site-content,
body.bdss-shop .site-content *{box-sizing:border-box}
body.bdss-shop .wd-products,
body.bdss-shop .wd-product,
body.bdss-shop .wd-product *,
body.bdss-shop .bdss-shop-head,
body.bdss-shop .bdss-shop-head *,
body.bdss-shop .bdss-cats,
body.bdss-shop .bdss-cats *,
body.bdss-shop .bdss-trust,
body.bdss-shop .bdss-trust *,
body.bdss-shop .woocommerce-pagination *{min-width:0}
body.bdss-shop img,
body.bdss-shop svg,
body.bdss-shop video{max-width:100%}
body.bdss-shop .wd-product .wd-entities-title,
body.bdss-shop .bdss-card-cat,
body.bdss-shop .bdss-shop-title,
body.bdss-shop .bdss-shop-sub{overflow-wrap:anywhere}

/* The shop archive has no theme .container, only .wd-content-area, so the
   centred column is built here. Side padding scales with the viewport so the
   grid keeps breathing room at every zoom step. */
body.bdss-shop{background:var(--s-bg)}
body.bdss-shop .main-page-wrapper{background:var(--s-bg);padding-block:0}
body.bdss-shop .wd-content-area.site-content,
body.bdss-shop .wd-content-area{
/* identical to the site header's .bdss-hdr-in so the shop column lines up
   with the logo and menu above it at every width and zoom level */
width:min(1240px,94vw);
max-width:100%;
margin-inline:auto;
padding-inline:0;
padding-block:0 44px;
background:transparent;float:none}
body.bdss-shop .wd-content-layout,
body.bdss-shop .site-content>.row{margin-inline:0;width:auto;max-width:100%}

/* ------------------------------------------------- strip the theme clutter */
body.bdss-shop .wd-sidebar,
body.bdss-shop .sidebar-container,
body.bdss-shop .wd-show-sidebar-btn,
body.bdss-shop .wd-products-per-page,
body.bdss-shop .wd-products-shop-view,
body.bdss-shop .wd-shop-tools,
body.bdss-shop .shop-loop-head,
body.bdss-shop .woocommerce-ordering,
body.bdss-shop .wd-ordering,
body.bdss-shop .woocommerce-result-count,
body.bdss-shop .wd-breadcrumbs,
body.bdss-shop .woocommerce-breadcrumb,
body.bdss-shop .wd-page-title,
body.bdss-shop .page-title,
body.bdss-shop .term-description,
body.bdss-shop .wd-product .wd-buttons,
body.bdss-shop .wd-product .wd-action-btn,
body.bdss-shop .wd-product .wd-compare-btn,
body.bdss-shop .wd-product .wd-wishlist-btn,
body.bdss-shop .wd-product .wd-quick-view-btn,
body.bdss-shop .wd-product .product-labels,
body.bdss-shop .wd-product .hover-content,
body.bdss-shop .wd-product .wd-more-desc,
body.bdss-shop .wd-product .wd-more-desc-btn,
body.bdss-shop .wd-product .wrapp-swatches,
body.bdss-shop .wd-product .wrap-wishlist-button,
body.bdss-shop .wd-product .wrap-quickview-button,
body.bdss-shop .wd-product .content-product-imagin,
body.bdss-shop .wd-product .wd-product-cats,
body.bdss-shop .wd-product .product-rating-price .wd-rating,
body.bdss-shop .wd-product .star-rating,
body.bdss-shop .wd-product .wd-product-stock,
body.bdss-shop .wd-product .woocommerce-product-details__short-description,
body.bdss-shop .tagcloud,
body.bdss-shop .product_meta{display:none!important}

/* the theme reserves space for a hover panel - reclaim it for the button */
body.bdss-shop .wd-product .fade-in-block{
position:static;visibility:visible;opacity:1;display:block;
margin:0;padding:0!important;border:0;inset:auto;transform:none}
body.bdss-shop .wd-product .wd-bottom-actions{
display:block;position:static;width:100%;margin:auto 0 0;padding:0;border:0;background:none;
opacity:1;visibility:visible;transform:none}
body.bdss-shop .wd-product .wd-add-btn-replace,
body.bdss-shop .wd-product .wd-add-btn{position:static;width:100%;max-width:none}

/* ============================================================ shop header */
.bdss-shop-head{
display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;
margin:20px 0 14px;padding:18px 22px;
background:var(--s-card);border:1px solid var(--s-line);border-radius:14px;
box-shadow:var(--s-sh)}
.bdss-head-text{flex:1 1 240px;min-width:0}
.bdss-shop-title{
margin:0 0 3px;font-family:var(--s-h);font-size:clamp(20px,2.2vw,27px);font-weight:700;
letter-spacing:-.6px;line-height:1.15;color:var(--s-ink)}
.bdss-shop-sub{
margin:0;font-family:var(--s-t);font-size:13.5px;line-height:1.5;color:var(--s-mut)}
.bdss-head-count{
flex:0 0 auto;display:inline-flex;align-items:center;
height:30px;padding:0 13px;border-radius:20px;
background:var(--s-head);border:1px solid var(--s-line);
font-family:var(--s-t);font-size:12.5px;font-weight:700;letter-spacing:.2px;
color:var(--s-mut);white-space:nowrap}

/* ======================================================== category nav */
.bdss-cats{margin:0 0 16px;max-width:100%}
.bdss-cats-scroll{
display:flex;align-items:center;gap:8px;flex-wrap:wrap;
max-width:100%;padding:0}
.bdss-cat{
flex:0 1 auto;display:inline-flex;align-items:center;gap:7px;
min-height:38px;padding:6px 15px;
background:var(--s-card);border:1px solid var(--s-line);border-radius:9px;
font-family:var(--s-t);font-size:13px;font-weight:600;letter-spacing:.1px;
line-height:1.3;color:var(--s-body);text-decoration:none}
.bdss-cat:hover{border-color:var(--s-line3);background:var(--s-tint);color:var(--s-blued)}
.bdss-cat.is-on{background:var(--s-ink);border-color:var(--s-ink);color:#fff}
.bdss-cat-n{
flex:0 0 auto;font-size:11px;font-weight:600;color:var(--s-faint);
padding:1px 6px;border-radius:20px;background:var(--s-head)}
.bdss-cat:hover .bdss-cat-n{background:#fff;color:var(--s-blued)}
.bdss-cat.is-on .bdss-cat-n{background:rgba(255,255,255,.16);color:#fff}

/* ========================================================= product grid */
body.bdss-shop .wd-products{
--wd-col-lg:4!important;--wd-col-md:3!important;--wd-col-sm:2!important;
--wd-gap-lg:18px;--wd-gap-sm:12px;
max-width:100%}

body.bdss-shop .wd-product{
display:flex;flex-direction:column;height:100%;
margin:0;padding:0;
background:var(--s-card);border:1px solid var(--s-line);border-radius:12px;
overflow:hidden;box-shadow:var(--s-sh);text-align:left}
body.bdss-shop .wd-product:hover{border-color:var(--s-line3);box-shadow:var(--s-shh)}
body.bdss-shop .wd-product .product-wrapper{display:flex;flex-direction:column;height:100%}

/* image area - one fixed ratio so every card lines up */
body.bdss-shop .wd-product .product-element-top{
position:relative;margin:0;border-bottom:1px solid var(--s-line);
background:var(--s-thumb);border-radius:0}
body.bdss-shop .wd-product .product-image-link,
body.bdss-shop .wd-product .wd-product-holder{
display:block;position:relative;width:100%;aspect-ratio:4/3;overflow:hidden}
body.bdss-shop .wd-product .product-image-link img,
body.bdss-shop .wd-product .attachment-woocommerce_thumbnail{
position:absolute;inset:0;width:100%;height:100%;
object-fit:contain;padding:14px;border-radius:0}
body.bdss-shop .wd-product .wd-product-grid-slider,
body.bdss-shop .wd-product .hover-img{display:none!important}

/* single discount badge */
body.bdss-shop .wd-product .onsale{
position:absolute;top:9px;left:9px;z-index:2;
min-width:0;min-height:0;width:auto;height:auto;
padding:3px 8px;border:0;border-radius:6px;
background:var(--s-sale);
font-family:var(--s-t);font-size:11px;font-weight:700;letter-spacing:.2px;
line-height:1.45;color:#fff;text-transform:none}

/* body */
body.bdss-shop .wd-product .product-element-bottom{display:block}
body.bdss-shop .wd-product .product-information,
body.bdss-shop .wd-product .wd-product-info{
display:flex;flex-direction:column;flex:1 1 auto;
gap:0;padding:13px;margin:0;text-align:left}

.bdss-card-cat{
display:block;margin:0 0 5px;
font-family:var(--s-t);font-size:10.5px;font-weight:700;letter-spacing:.75px;
text-transform:uppercase;color:var(--s-faint);line-height:1.4}

body.bdss-shop .wd-product .wd-entities-title{
margin:0 0 8px;padding:0;
font-family:var(--s-h);font-size:13.5px;font-weight:600;line-height:1.4;
letter-spacing:-.1px;color:var(--s-ink);
display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
overflow:hidden;min-height:2.8em}
body.bdss-shop .wd-product .wd-entities-title a{color:inherit;text-decoration:none}
body.bdss-shop .wd-product .wd-entities-title a:hover{color:var(--s-blue)}

body.bdss-shop .wd-product .product-rating-price{display:block;margin:0}
body.bdss-shop .wd-product .price{
display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 7px;
margin:0 0 11px;padding:0;
font-family:var(--s-h);font-size:16.5px;font-weight:700;letter-spacing:-.3px;
color:var(--s-ink);line-height:1.3}
body.bdss-shop .wd-product .price ins{
order:1;text-decoration:none;background:none;color:var(--s-sale);font-weight:700}
body.bdss-shop .wd-product .price del{
order:2;opacity:1;font-size:12.5px;font-weight:600;color:var(--s-faint);
text-decoration:line-through}
body.bdss-shop .wd-product .price .amount{color:inherit}
body.bdss-shop .wd-product .price bdi{white-space:nowrap}

/* the one CTA */
body.bdss-shop .wd-product .wd-add-btn>a,
body.bdss-shop .wd-product .add_to_cart_button,
body.bdss-shop .wd-product .added_to_cart{
display:flex;align-items:center;justify-content:center;gap:6px;
width:100%;min-height:42px;margin:0;padding:8px 12px;
border:0;border-radius:9px;box-shadow:none;
background:var(--s-blue);
font-family:var(--s-t);font-size:13.5px;font-weight:700;letter-spacing:.1px;
line-height:1.25;color:#fff;text-transform:none;text-decoration:none;text-align:center}
body.bdss-shop .wd-product .wd-add-btn>a:hover,
body.bdss-shop .wd-product .add_to_cart_button:hover{background:var(--s-blued);color:#fff}
body.bdss-shop .wd-product .wd-add-btn>a::before,
body.bdss-shop .wd-product .add_to_cart_button::before{display:none!important}
body.bdss-shop .wd-product .added_to_cart{margin-top:7px;background:var(--s-ink)}

/* ========================================================== pagination */
body.bdss-shop .wd-pagination,
body.bdss-shop .woocommerce-pagination{margin:24px 0 0;text-align:center}
body.bdss-shop .wd-pagination ul.page-numbers,
body.bdss-shop .woocommerce-pagination ul{
display:inline-flex;flex-wrap:wrap;justify-content:center;gap:7px;
border:0;margin:0;padding:0}
body.bdss-shop .woocommerce-pagination li{border:0;margin:0}
body.bdss-shop .woocommerce-pagination .page-numbers{
display:inline-flex;align-items:center;justify-content:center;
min-width:38px;min-height:38px;padding:0 11px;
border:1px solid var(--s-line);border-radius:9px;background:#fff;
font-family:var(--s-t);font-size:13.5px;font-weight:600;color:var(--s-body);
text-decoration:none}
body.bdss-shop .woocommerce-pagination .page-numbers:hover{
border-color:var(--s-line3);background:var(--s-tint);color:var(--s-blued)}
body.bdss-shop .woocommerce-pagination .page-numbers.current{
background:var(--s-ink);border-color:var(--s-ink);color:#fff}

/* ============================================================ no results */
body.bdss-shop .woocommerce-info,
body.bdss-shop .woocommerce-no-products-found>.woocommerce-info{
margin:0;padding:26px 22px;
background:var(--s-card);border:1px solid var(--s-line);border-radius:14px;
box-shadow:var(--s-sh);text-align:center;
font-family:var(--s-t);font-size:14px;color:var(--s-body)}

/* =============================================================== trust */
.bdss-trust{
display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;
margin:26px 0 0;padding:0;overflow:hidden;max-width:100%;
background:var(--s-line);border:1px solid var(--s-line);border-radius:12px}
.bdss-trust-item{
display:flex;align-items:center;justify-content:center;gap:8px;
min-width:0;padding:13px 12px;background:var(--s-card);
font-family:var(--s-t);font-size:12.5px;font-weight:600;color:var(--s-body);
text-align:center;line-height:1.35}
.bdss-trust-item svg{flex:0 0 15px;width:15px;height:15px;color:var(--s-ok)}

/* ============================================================== laptop */
@media(max-width:1200px){
body.bdss-shop .wd-products{--wd-col-lg:3!important}
}

/* ============================================================== tablet */
@media(max-width:1024px){
body.bdss-shop .wd-products{--wd-col-lg:3!important;--wd-col-md:3!important}
.bdss-shop-head{padding:16px 18px}
}

@media(max-width:900px){
body.bdss-shop .wd-products{--wd-col-md:2!important}
}

/* ============================================================== mobile */
@media(max-width:768.98px){
body.bdss-shop .wd-content-area.site-content,
body.bdss-shop .wd-content-area{width:min(1240px,92vw);padding-inline:0;padding-block:0 32px}
.bdss-shop-head{margin:14px 0 12px;padding:15px 16px;border-radius:12px;gap:10px 14px}
.bdss-shop-sub{font-size:12.5px}
.bdss-head-count{height:28px;padding:0 11px;font-size:12px}
.bdss-cats{margin:0 0 12px}
.bdss-cats-scroll{gap:7px}
.bdss-cat{min-height:36px;padding:6px 13px;font-size:12.5px}

body.bdss-shop .wd-products{--wd-col-sm:2!important;--wd-gap-sm:10px}
body.bdss-shop .wd-product{border-radius:11px}
body.bdss-shop .wd-product .product-information,
body.bdss-shop .wd-product .wd-product-info{padding:10px 10px 11px}
body.bdss-shop .wd-product .product-image-link,
body.bdss-shop .wd-product .wd-product-holder{aspect-ratio:1/1}
body.bdss-shop .wd-product .product-image-link img{padding:10px}
.bdss-card-cat{font-size:10px;letter-spacing:.6px;margin-bottom:4px}
body.bdss-shop .wd-product .wd-entities-title{font-size:12.5px;margin-bottom:6px}
body.bdss-shop .wd-product .price{font-size:15px;margin-bottom:9px}
body.bdss-shop .wd-product .price del{font-size:11.5px}
body.bdss-shop .wd-product .wd-add-btn>a,
body.bdss-shop .wd-product .add_to_cart_button{min-height:40px;font-size:12.5px;border-radius:8px}

.bdss-trust{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:20px}
.bdss-trust-item{font-size:12px;padding:11px 8px;gap:6px}
}

@media(max-width:400px){
body.bdss-shop .wd-products{--wd-gap-sm:8px}
body.bdss-shop .wd-product .wd-entities-title{font-size:12px}
body.bdss-shop .wd-product .price{font-size:14px}
body.bdss-shop .wd-product .wd-add-btn>a{font-size:12px;min-height:38px}
.bdss-cat{font-size:12px;padding:6px 11px}
}

@media(prefers-reduced-motion:reduce){
body.bdss-shop *{transition:none!important;animation:none!important}
}

/* ====================================== Buy And Download: no slide, brand colour ====
 * Two separate Woodmart behaviours had to be handled.
 *
 * 1. COLOUR. The theme paints the loop button through
 *      .wd-product.wd-hover-base .wd-bottom-actions:not(.wd-add-small-btn) .wd-add-btn>a
 *    which is five classes deep, so a plainer BDSS selector loses on specificity. Rather
 *    than fight it with !important, we set the variables that rule reads. The theme keeps
 *    control of the button; only the colours change, and only on the shop archive.
 *    Values match the single product page Buy And Download button: #0A2350, #1A7BFF hover.
 *
 * 2. SLIDE. Woodmart's "add to cart button replace" effect slides the label out of view
 *    on hover and slides a cart glyph in from below (.add-to-cart-loop span is animated,
 *    .add-to-cart-loop:before starts at translateY(100%)). The block itself also lives in
 *    .fade-in-block, which is absolutely positioned and hidden until hover. All of it is
 *    pinned here so the button simply sits there, always readable, and never moves. */

body.bdss-shop{
--btn-accented-bgcolor:var(--s-ink);
--btn-accented-bgcolor-hover:var(--s-blue);
--btn-accented-color:#fff;
--btn-accented-color-hover:#fff;
--btn-accented-box-shadow:none;
--btn-accented-box-shadow-hover:none;
--btn-accented-box-shadow-active:none}

/* the whole bottom block stays put */
body.bdss-shop .wd-product .fade-in-block,
body.bdss-shop .wd-product .fade-in-block.wd-scroll,
body.bdss-shop .wd-product.wd-hover-base .fade-in-block,
body.bdss-shop .wd-hover-with-fade .fade-in-block{
position:static!important;inset:auto!important;top:auto!important;
opacity:1!important;visibility:visible!important;
transform:none!important;transition:none!important;
margin:0;padding:0!important;border:0;width:100%;pointer-events:auto}

body.bdss-shop .wd-product:hover .fade-in-block,
body.bdss-shop .wd-product:hover .wd-bottom-actions,
body.bdss-shop .wd-product:hover .wd-add-btn{transform:none!important}

/* kill the label-slides-out / cart-icon-slides-in swap */
body.bdss-shop .wd-product .wd-add-btn-replace .add-to-cart-loop span,
body.bdss-shop .wd-product .add-to-cart-loop span{
transform:none!important;opacity:1!important;transition:none!important}

body.bdss-shop .wd-product .wd-add-btn-replace .add-to-cart-loop::before,
body.bdss-shop .wd-product .add-to-cart-loop::before,
body.bdss-shop .wd-product .add_to_cart_button::before{
display:none!important;content:none!important;transform:none!important;opacity:0!important}

body.bdss-shop .wd-product .add-to-cart-loop{overflow:visible}

/* belt and braces on the colours, in case a theme update reshuffles the variables */
body.bdss-shop .wd-product.wd-hover-base .wd-bottom-actions .wd-add-btn>a,
body.bdss-shop .wd-product .wd-add-btn>a,
body.bdss-shop .wd-product .add_to_cart_button{
background-color:var(--s-ink);color:#fff;fill:#fff;box-shadow:none;
transition:background-color .18s ease}

body.bdss-shop .wd-product.wd-hover-base .wd-bottom-actions .wd-add-btn>a:hover,
body.bdss-shop .wd-product .wd-add-btn>a:hover,
body.bdss-shop .wd-product .wd-add-btn>a:focus,
body.bdss-shop .wd-product .add_to_cart_button:hover,
body.bdss-shop .wd-product .add_to_cart_button:focus{
background-color:var(--s-blue);color:#fff;fill:#fff;box-shadow:none}

body.bdss-shop .wd-product .wd-add-btn>a svg,
body.bdss-shop .wd-product .add_to_cart_button svg,
body.bdss-shop .wd-product .wd-add-btn>a i,
body.bdss-shop .wd-product .add_to_cart_button i{color:#fff;fill:#fff}

/* ============================================ card title size + price alignment ====
 * Two small corrections after reviewing the live grid.
 *
 * 1. The title was 13.5px, which read small against the 16.5px price and the full-width
 *    button. Raised to 15px on desktop and stepped down gently on smaller screens. The
 *    two-line clamp stays, and min-height is restated in em so rows still line up.
 *
 * 2. .price is a flex container, so the left alignment set on the card text did not
 *    reach it and the theme was centring it -- the price sat off to one side while the
 *    category, title and everything else stayed left. Pinned to flex-start so the whole
 *    card reads down one edge. */

body.bdss-shop .wd-product .wd-entities-title{
font-size:15px;line-height:1.4;min-height:2.8em;margin:0 0 9px}

body.bdss-shop .wd-product .price{
justify-content:flex-start;text-align:left;width:100%}

body.bdss-shop .wd-product .product-information,
body.bdss-shop .wd-product .wd-product-info,
body.bdss-shop .wd-product .wd-product-cats,
body.bdss-shop .wd-product .bdss-card-cat{align-items:flex-start}

@media(max-width:1024px){
body.bdss-shop .wd-product .wd-entities-title{font-size:14.5px}
}

@media(max-width:767px){
body.bdss-shop .wd-product .wd-entities-title{font-size:13.5px;margin-bottom:7px}
}

@media(max-width:400px){
body.bdss-shop .wd-product .wd-entities-title{font-size:13px}
}
