/* =========================================================
   CDW WooCommerce Complete Beauty
   White premium styling for WooCommerce pages, shortcodes and widgets
   ========================================================= */

:root{
  --cdw-white:#ffffff;
  --cdw-soft:#f7f7f7;
  --cdw-cream:#fafafa;
  --cdw-dark:#1f1f1f;
  --cdw-muted:#666666;
  --cdw-line:#e9e9e9;
  --cdw-gold:#b08d57;
  --cdw-radius:22px;
  --cdw-shadow:0 14px 35px rgba(0,0,0,.08);
  --cdw-shadow-hover:0 18px 45px rgba(0,0,0,.13);
}

/* Only global page background. No homepage white blocks. */
body.cdw-woo-beauty-active,
body.woocommerce,
body.woocommerce-page{
  background:#fff !important;
}

body.cdw-woo-beauty-active main,
body.woocommerce main,
body.woocommerce-page main,
body.cdw-woo-beauty-active .site-main,
body.woocommerce .site-main,
body.woocommerce-page .site-main,
body.cdw-woo-beauty-active .content-area,
body.woocommerce .content-area,
body.woocommerce-page .content-area{
  background:#fff !important;
}

/* Main WooCommerce container */
.woocommerce,
.woocommerce-page .woocommerce{
  background:#fff !important;
  color:var(--cdw-dark);
}

.woocommerce .woocommerce-products-header,
.woocommerce-page .woocommerce-products-header{
  background:linear-gradient(135deg,#fff 0%,#f8f8f8 100%);
  border:1px solid var(--cdw-line);
  border-radius:28px;
  padding:34px 28px;
  margin:0 0 28px;
  box-shadow:0 10px 28px rgba(0,0,0,.05);
}

.woocommerce .woocommerce-products-header__title,
.woocommerce-page .page-title,
.woocommerce div.product .product_title{
  color:#171717 !important;
  font-weight:800 !important;
  letter-spacing:-.04em;
  line-height:1.05;
}

.woocommerce .woocommerce-result-count{
  color:var(--cdw-muted);
  font-size:14px;
  margin:12px 0 20px;
}

/* Dropdown: remove ugly border, make premium */
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering{
  margin:0 0 24px;
}

.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select,
.woocommerce select,
.woocommerce-page select,
.woocommerce-widget-layered-nav-dropdown select,
.widget_layered_nav select,
.widget_product_categories select,
.widget_rating_filter select{
  appearance:none !important;
  -webkit-appearance:none !important;
  -moz-appearance:none !important;
  background-color:#fff !important;
  background-image:linear-gradient(45deg, transparent 50%, #222 50%),linear-gradient(135deg, #222 50%, transparent 50%) !important;
  background-position:calc(100% - 18px) 50%, calc(100% - 12px) 50% !important;
  background-size:6px 6px,6px 6px !important;
  background-repeat:no-repeat !important;
  border:1px solid var(--cdw-line) !important;
  outline:none !important;
  box-shadow:0 8px 20px rgba(0,0,0,.05) !important;
  border-radius:999px !important;
  padding:12px 42px 12px 18px !important;
  color:#222 !important;
  font-size:14px !important;
  min-height:46px;
}

.woocommerce .woocommerce-ordering select:focus,
.woocommerce select:focus,
.woocommerce-page select:focus{
  border-color:#d8d8d8 !important;
  box-shadow:0 0 0 4px rgba(176,141,87,.12),0 8px 20px rgba(0,0,0,.05) !important;
}

/* Product grids: shop, categories and shortcodes */
.woocommerce ul.products,
.woocommerce-page ul.products,
ul.products.columns-1,
ul.products.columns-2,
ul.products.columns-3,
ul.products.columns-4,
ul.products.columns-5,
ul.products.columns-6{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important;
  gap:26px !important;
  margin:26px 0 !important;
  padding:0 !important;
  clear:both;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce-page ul.products[class*=columns-] li.product,
.woocommerce ul.products[class*=columns-] li.product{
  width:auto !important;
  margin:0 !important;
  float:none !important;
  list-style:none !important;
  background:#fff !important;
  border:1px solid var(--cdw-line) !important;
  border-radius:var(--cdw-radius) !important;
  overflow:hidden !important;
  box-shadow:var(--cdw-shadow) !important;
  padding:0 0 20px !important;
  text-align:center !important;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
  position:relative !important;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover{
  transform:translateY(-5px);
  box-shadow:var(--cdw-shadow-hover) !important;
  border-color:#dedede !important;
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce-page ul.products li.product a.woocommerce-LoopProduct-link{
  display:block;
  color:inherit !important;
  text-decoration:none !important;
}

.woocommerce ul.products li.product img,
.woocommerce-page ul.products li.product img{
  width:100% !important;
  aspect-ratio:1/1 !important;
  height:auto !important;
  object-fit:cover !important;
  display:block !important;
  margin:0 0 18px !important;
  border-radius:0 !important;
  background:#f6f6f6 !important;
  transition:transform .35s ease, filter .35s ease !important;
}

.woocommerce ul.products li.product:hover img,
.woocommerce-page ul.products li.product:hover img{
  transform:scale(1.035);
  filter:saturate(1.04) contrast(1.02);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product h2{
  color:#151515 !important;
  font-size:18px !important;
  line-height:1.25 !important;
  font-weight:800 !important;
  padding:0 18px !important;
  margin:8px 0 8px !important;
}

.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price{
  color:#151515 !important;
  font-size:17px !important;
  font-weight:800 !important;
  margin:8px 0 16px !important;
  display:block !important;
}

.woocommerce ul.products li.product .price del{
  color:#999 !important;
  opacity:1 !important;
  font-weight:500 !important;
}
.woocommerce ul.products li.product .price ins{
  text-decoration:none !important;
}

.woocommerce span.onsale,
.woocommerce-page span.onsale{
  min-height:auto !important;
  min-width:auto !important;
  line-height:1 !important;
  padding:9px 12px !important;
  border-radius:999px !important;
  background:#111 !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:800 !important;
  top:14px !important;
  left:14px !important;
  right:auto !important;
  z-index:5;
}

.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit{
  background:#111 !important;
  color:#fff !important;
  border:1px solid #111 !important;
  border-radius:999px !important;
  padding:13px 22px !important;
  font-weight:800 !important;
  font-size:14px !important;
  line-height:1 !important;
  text-decoration:none !important;
  box-shadow:none !important;
  transition:all .2s ease !important;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce-page ul.products li.product .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover{
  background:var(--cdw-gold) !important;
  border-color:var(--cdw-gold) !important;
  color:#fff !important;
  transform:translateY(-1px);
}

/* Category cards */
.woocommerce ul.products li.product.product-category h2,
.woocommerce-page ul.products li.product.product-category h2{
  background:#fff !important;
  padding:18px !important;
  margin:0 !important;
}
.woocommerce ul.products li.product.product-category mark.count{
  background:transparent !important;
  color:var(--cdw-muted) !important;
  font-weight:600 !important;
}

/* Single product page */
.woocommerce div.product,
.woocommerce-page div.product{
  background:#fff !important;
}

.woocommerce div.product div.images,
.woocommerce-page div.product div.images{
  background:#fff !important;
  border:1px solid var(--cdw-line) !important;
  border-radius:28px !important;
  padding:18px !important;
  box-shadow:var(--cdw-shadow) !important;
  overflow:hidden !important;
}

.woocommerce div.product div.images img,
.woocommerce-page div.product div.images img{
  border-radius:20px !important;
  background:#f8f8f8 !important;
  object-fit:cover !important;
  box-shadow:none !important;
}

.woocommerce div.product div.images .flex-control-thumbs{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:12px !important;
  margin-top:14px !important;
}
.woocommerce div.product div.images .flex-control-thumbs li{
  width:auto !important;
  float:none !important;
}
.woocommerce div.product div.images .flex-control-thumbs img{
  border:1px solid var(--cdw-line) !important;
  border-radius:14px !important;
  padding:3px !important;
  opacity:.72 !important;
}
.woocommerce div.product div.images .flex-control-thumbs img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs img:hover{
  opacity:1 !important;
  border-color:var(--cdw-gold) !important;
}

.woocommerce div.product div.summary,
.woocommerce-page div.product div.summary{
  background:#fff !important;
  border:1px solid var(--cdw-line) !important;
  border-radius:28px !important;
  padding:30px !important;
  box-shadow:var(--cdw-shadow) !important;
}

.woocommerce div.product .product_title{
  font-size:clamp(30px,4vw,48px) !important;
  margin:0 0 14px !important;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color:#111 !important;
  font-size:28px !important;
  font-weight:900 !important;
  margin:16px 0 !important;
}

.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .summary p{
  color:#555 !important;
  font-size:16px !important;
  line-height:1.75 !important;
}

.woocommerce div.product form.cart{
  display:flex !important;
  gap:12px !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  margin:24px 0 !important;
}

.woocommerce .quantity .qty,
.woocommerce-page .quantity .qty{
  width:82px !important;
  min-height:48px !important;
  border:1px solid var(--cdw-line) !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#222 !important;
  font-weight:800 !important;
  text-align:center !important;
  box-shadow:0 8px 20px rgba(0,0,0,.04) !important;
}

.woocommerce div.product form.cart .button{
  min-height:48px !important;
  padding:15px 28px !important;
}

.woocommerce div.product .product_meta{
  border-top:1px solid var(--cdw-line) !important;
  margin-top:24px !important;
  padding-top:18px !important;
  color:#666 !important;
  font-size:14px !important;
}
.woocommerce div.product .product_meta a{
  color:#111 !important;
  font-weight:700 !important;
  text-decoration:none !important;
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs,
.woocommerce-page div.product .woocommerce-tabs{
  margin-top:38px !important;
  background:#fff !important;
  border:1px solid var(--cdw-line) !important;
  border-radius:28px !important;
  padding:24px !important;
  box-shadow:var(--cdw-shadow) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs{
  padding:0 !important;
  margin:0 0 20px !important;
  border:0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs:before{display:none !important;}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  border:1px solid var(--cdw-line) !important;
  background:#fff !important;
  border-radius:999px !important;
  margin:0 8px 8px 0 !important;
  padding:0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li:before,
.woocommerce div.product .woocommerce-tabs ul.tabs li:after{display:none !important;}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  padding:12px 18px !important;
  font-weight:800 !important;
  color:#222 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{
  background:#111 !important;
  border-color:#111 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:#fff !important;}
.woocommerce div.product .woocommerce-tabs .panel{
  color:#555 !important;
  line-height:1.75 !important;
}

/* Reviews */
.woocommerce #reviews #comments ol.commentlist li .comment-text{
  border:1px solid var(--cdw-line) !important;
  border-radius:20px !important;
  padding:18px !important;
  background:#fff !important;
}
.woocommerce #review_form #respond{
  background:#fafafa !important;
  border:1px solid var(--cdw-line) !important;
  border-radius:22px !important;
  padding:22px !important;
}
.woocommerce #review_form input,
.woocommerce #review_form textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea{
  border:1px solid var(--cdw-line) !important;
  border-radius:16px !important;
  padding:13px 15px !important;
  background:#fff !important;
  color:#222 !important;
}

/* Related/up-sells/cross-sells */
.woocommerce .related.products,
.woocommerce .upsells.products,
.woocommerce .cross-sells{
  margin-top:38px !important;
}
.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2,
.woocommerce .cross-sells > h2{
  font-size:30px !important;
  font-weight:900 !important;
  letter-spacing:-.03em;
  margin-bottom:20px !important;
}

/* WooCommerce widgets */
.woocommerce .widget,
.woocommerce-page .widget,
.widget.woocommerce,
.widget_product_categories,
.widget_products,
.widget_top_rated_products,
.widget_recent_reviews,
.widget_recently_viewed_products,
.widget_shopping_cart,
.widget_price_filter,
.widget_layered_nav,
.widget_layered_nav_filters,
.widget_rating_filter,
.widget_product_search{
  background:#fff !important;
  border:1px solid var(--cdw-line) !important;
  border-radius:24px !important;
  padding:22px !important;
  box-shadow:0 10px 28px rgba(0,0,0,.06) !important;
  margin-bottom:22px !important;
  overflow:hidden !important;
}

.woocommerce .widget-title,
.woocommerce-page .widget-title,
.widget.woocommerce .widget-title,
.widget_product_categories .widget-title,
.widget_products .widget-title,
.widget_top_rated_products .widget-title,
.widget_recent_reviews .widget-title,
.widget_recently_viewed_products .widget-title,
.widget_shopping_cart .widget-title,
.widget_price_filter .widget-title,
.widget_layered_nav .widget-title,
.widget_layered_nav_filters .widget-title,
.widget_rating_filter .widget-title,
.widget_product_search .widget-title,
.woocommerce .wp-block-heading{
  color:#151515 !important;
  font-size:19px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
  margin:0 0 16px !important;
  padding-bottom:12px !important;
  border-bottom:1px solid var(--cdw-line) !important;
}

.widget_product_categories ul,
.widget_layered_nav ul,
.widget_rating_filter ul,
.widget_layered_nav_filters ul,
.woocommerce .widget ul{
  list-style:none !important;
  padding:0 !important;
  margin:0 !important;
}

.widget_product_categories li,
.widget_layered_nav li,
.widget_rating_filter li,
.widget_layered_nav_filters li,
.woocommerce .widget li{
  border-bottom:1px solid #f0f0f0 !important;
  padding:10px 0 !important;
  color:#555 !important;
}
.widget_product_categories li:last-child,
.widget_layered_nav li:last-child,
.widget_rating_filter li:last-child,
.woocommerce .widget li:last-child{border-bottom:0 !important;}

.woocommerce .widget a,
.widget_product_categories a,
.widget_layered_nav a,
.widget_rating_filter a,
.widget_layered_nav_filters a{
  color:#222 !important;
  font-weight:700 !important;
  text-decoration:none !important;
}
.woocommerce .widget a:hover{color:var(--cdw-gold) !important;}

/* Product list widgets */
.woocommerce ul.product_list_widget li{
  display:grid !important;
  grid-template-columns:64px 1fr !important;
  gap:12px !important;
  align-items:center !important;
  padding:12px 0 !important;
}
.woocommerce ul.product_list_widget li img{
  width:64px !important;
  height:64px !important;
  object-fit:cover !important;
  border-radius:14px !important;
  background:#f7f7f7 !important;
  float:none !important;
  margin:0 !important;
  grid-row:1 / span 3;
}
.woocommerce ul.product_list_widget li .product-title{
  font-weight:800 !important;
  color:#222 !important;
  line-height:1.25 !important;
}
.woocommerce ul.product_list_widget li .amount{
  color:#111 !important;
  font-weight:900 !important;
}
.woocommerce ul.product_list_widget li .star-rating{
  margin:4px 0 !important;
}

/* Search widget */
.woocommerce-product-search,
.widget_product_search form{
  display:flex !important;
  gap:8px !important;
}
.woocommerce-product-search input.search-field,
.widget_product_search input[type=search]{
  flex:1 !important;
  border:1px solid var(--cdw-line) !important;
  border-radius:999px !important;
  min-height:46px !important;
  padding:0 16px !important;
  outline:none !important;
}
.woocommerce-product-search button,
.widget_product_search button{
  border-radius:999px !important;
  background:#111 !important;
  color:#fff !important;
  border:1px solid #111 !important;
  padding:0 18px !important;
  font-weight:800 !important;
}

/* Price filter */
.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content{
  background:#e9e9e9 !important;
  border-radius:999px !important;
}
.woocommerce .widget_price_filter .ui-slider .ui-slider-range,
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle{
  background:#111 !important;
}
.woocommerce .widget_price_filter .price_slider_amount{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  justify-content:space-between !important;
  flex-wrap:wrap !important;
  font-size:14px !important;
  color:#555 !important;
}
.woocommerce .widget_price_filter .button{
  padding:11px 17px !important;
}

/* Star ratings */
.woocommerce .star-rating,
.woocommerce .star-rating span,
.woocommerce p.stars a{
  color:var(--cdw-gold) !important;
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  background:#fff !important;
  border:1px solid var(--cdw-line) !important;
  border-top:4px solid #111 !important;
  border-radius:18px !important;
  color:#222 !important;
  box-shadow:0 8px 20px rgba(0,0,0,.05) !important;
}
.woocommerce-message:before,
.woocommerce-info:before{color:#111 !important;}

/* Blocks / newer WooCommerce widgets */
.wc-block-grid__products{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important;
  gap:26px !important;
}
.wc-block-grid__product{
  background:#fff !important;
  border:1px solid var(--cdw-line) !important;
  border-radius:var(--cdw-radius) !important;
  box-shadow:var(--cdw-shadow) !important;
  padding:0 0 20px !important;
  overflow:hidden !important;
}
.wc-block-grid__product-image img{
  width:100% !important;
  aspect-ratio:1/1 !important;
  object-fit:cover !important;
}
.wc-block-grid__product-title{
  font-weight:900 !important;
  color:#151515 !important;
  font-size:18px !important;
  padding:0 16px !important;
}
.wc-block-grid__product-price{
  font-weight:900 !important;
  color:#111 !important;
}
.wc-block-grid__product-add-to-cart a{
  background:#111 !important;
  color:#fff !important;
  border-radius:999px !important;
  padding:12px 20px !important;
  text-decoration:none !important;
  font-weight:800 !important;
}

/* Mobile */
@media (max-width:768px){
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .wc-block-grid__products{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:16px !important;
  }
  .woocommerce ul.products li.product .woocommerce-loop-product__title{
    font-size:15px !important;
  }
  .woocommerce div.product div.summary{
    padding:22px !important;
  }
  .woocommerce div.product .product_title{
    font-size:30px !important;
  }
  .woocommerce div.product div.images,
  .woocommerce div.product div.summary,
  .woocommerce div.product .woocommerce-tabs{
    border-radius:22px !important;
  }
}

@media (max-width:480px){
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .wc-block-grid__products{
    grid-template-columns:1fr !important;
  }
}

/* =========================================================
   Smooth cart / no scroll lock fixes
   ========================================================= */
html.cdw-cart-unlock,
html.cdw-cart-unlock body,
body.cdw-cart-unlock{
  overflow:auto !important;
  overflow-y:auto !important;
  position:static !important;
  height:auto !important;
  max-height:none !important;
  touch-action:auto !important;
}

body.cdw-cart-working{
  cursor:progress;
}

/* WooCommerce sometimes adds a blocking overlay during cart updates. Keep it visible but non-invasive. */
.woocommerce .blockUI.blockOverlay,
.woocommerce-page .blockUI.blockOverlay,
.blockUI.blockOverlay{
  opacity:.14 !important;
  background:#fff !important;
  cursor:progress !important;
  pointer-events:none !important;
}

/* Prevent loading overlays / notices from trapping page scrolling */
.woocommerce-mini-cart,
.widget_shopping_cart_content,
.woocommerce-notices-wrapper,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  max-height:none !important;
  overflow:visible !important;
}

/* If a theme opens a side cart, make the cart itself scroll instead of locking the whole page */
.xoo-wsc-modal,
.xoo-wsc-container,
.elementor-menu-cart__container,
.wc-block-components-drawer,
.wc-block-mini-cart__drawer,
.woocommerce-mini-cart__drawer{
  overscroll-behavior:contain !important;
}

.xoo-wsc-modal .xoo-wsc-container,
.elementor-menu-cart__main,
.wc-block-components-drawer__screen-overlay,
.wc-block-mini-cart__drawer .wc-block-mini-cart__drawer-content{
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
}

/* Cleaner add-to-cart feedback */
.woocommerce a.button.added,
.woocommerce button.button.added,
.woocommerce .added_to_cart{
  transition:all .18s ease !important;
}

.woocommerce a.added_to_cart,
.woocommerce a.added_to_cart.wc-forward{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-top:10px !important;
  margin-left:0 !important;
  padding:11px 18px !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#111 !important;
  border:1px solid #111 !important;
  font-weight:800 !important;
  text-decoration:none !important;
}
