/* ==========================================================================
   WeatherShields — WooCommerce overrides
   ========================================================================== */

/* Kill default Woo chrome we replace */
.woocommerce-breadcrumb{display:none;}
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering{display:none;}
.woocommerce-message,.woocommerce-info,.woocommerce-error{
  border-top:none;font-family:var(--ws-font);border-radius:11px;
  background:var(--ws-blue-tint);color:var(--ws-ink);padding:16px 20px;margin-bottom:22px;
}
.woocommerce-message::before,.woocommerce-info::before{color:var(--ws-blue);}
.woocommerce-error{background:#fdecec;}
.woocommerce-error::before{color:#d64545;}

/* ---------- Shop archive ---------- */
.ws-shop{padding:48px 0 80px;}
.ws-shop__head{margin-bottom:22px;}
.ws-shop__head .ws-eyebrow{margin-bottom:8px;}
.ws-shop__count{font-size:14px;color:var(--ws-muted);}

/* Woo product grid uses our card styles */
ul.products{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(3,1fr);gap:22px;}
ul.products.columns-4{grid-template-columns:repeat(4,1fr);}
ul.products li.product{margin:0;width:auto;float:none;text-align:left;}
ul.products li.product{
  border:1px solid var(--ws-line);border-radius:var(--ws-radius);overflow:hidden;background:#fff;
  display:flex;flex-direction:column;transition:box-shadow .18s,transform .18s,border-color .18s;
}
ul.products li.product:hover{box-shadow:var(--ws-shadow);transform:translateY(-2px);border-color:var(--ws-line-2);}
ul.products li.product a.woocommerce-LoopProduct-link{display:block;}
ul.products li.product .ws-loop-media{height:200px;background:var(--ws-surface);position:relative;overflow:hidden;}
ul.products li.product .ws-loop-media img{width:100%;height:100%;object-fit:cover;margin:0;}
ul.products li.product .ws-loop-body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1;}
ul.products li.product .ws-loop-meta{font-size:12px;color:var(--ws-faint);margin-bottom:6px;}
ul.products li.product .woocommerce-loop-product__title{
  padding:0;margin:0 0 8px;font-weight:700;font-size:15px;line-height:1.3;color:var(--ws-ink);
}
ul.products li.product .ws-loop-rating{font-size:13px;color:var(--ws-faint);margin-bottom:14px;display:flex;gap:7px;align-items:center;}
ul.products li.product .ws-loop-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;}
ul.products li.product .price{color:var(--ws-ink);font-weight:800;font-size:19px;margin:0;}
ul.products li.product .price del{color:var(--ws-faint);font-weight:600;font-size:14px;margin-left:6px;}
ul.products li.product .price ins{text-decoration:none;}
ul.products li.product .button,
ul.products li.product .added_to_cart{
  background:var(--ws-blue);color:#fff;border-radius:9px;padding:9px 18px;font-weight:700;
  font-size:13px;margin:0;border:0;line-height:1;
}
ul.products li.product .button:hover{background:var(--ws-blue-dark);}
ul.products li.product .ws-loop-badge{position:absolute;top:12px;left:12px;background:var(--ws-teal);
  color:#fff;font-family:var(--ws-mono);font-weight:600;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;padding:5px 9px;border-radius:6px;z-index:2;}

/* ---------- Single product ---------- */
.ws-pdp{padding:8px 0 72px;}
.ws-pdp__top{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:flex-start;}
.woocommerce div.product div.images,
.woocommerce div.product div.summary{width:auto;float:none;margin:0;}
.woocommerce div.product{margin:0;}

/* Gallery */
.ws-pdp .woocommerce-product-gallery{margin:0;}
.ws-pdp .woocommerce-product-gallery__wrapper{margin:0;}
.ws-pdp .woocommerce-product-gallery .flex-viewport,
.ws-pdp .woocommerce-product-gallery figure{border-radius:var(--ws-radius-lg);overflow:hidden;background:var(--ws-surface);}
.ws-pdp .woocommerce-product-gallery img{border-radius:var(--ws-radius-lg);}
/* Thumbnails: a tidy row of larger tiles that sit close together, regardless
   of how many images the product has. Hardened against WooCommerce's default
   float/percentage-width thumbnail styles. */
.woocommerce div.product .flex-control-thumbs{
  display:flex !important;flex-wrap:wrap;gap:10px;margin:12px 0 0;list-style:none;padding:0;
}
.woocommerce div.product .flex-control-thumbs li{
  width:auto !important;float:none !important;margin:0 !important;list-style:none;
}
.woocommerce div.product .flex-control-thumbs li::before{display:none;}
.woocommerce div.product .flex-control-thumbs img{
  width:96px;height:96px;object-fit:cover;border-radius:10px;opacity:.72;transition:.15s;
  border:2px solid transparent;cursor:pointer;margin:0;
}
.woocommerce div.product .flex-control-thumbs img.flex-active,
.woocommerce div.product .flex-control-thumbs img:hover{opacity:1;border-color:var(--ws-blue);}
@media(max-width:560px){
  .woocommerce div.product .flex-control-thumbs img{width:72px;height:72px;}
}

/* Summary / buybox */
.ws-pdp .product_meta{display:none;}
.ws-pdp__tag{font-family:var(--ws-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ws-teal);margin-bottom:12px;}
.woocommerce div.product .product_title{font-size:34px;letter-spacing:-.02em;line-height:1.08;margin:0 0 12px;}
.ws-pdp__rating{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ws-muted);margin-bottom:18px;}
.ws-pdp__rating .ws-stars{font-size:15px;}
.ws-pdp__rating b{color:var(--ws-ink);}
.woocommerce div.product p.price,
.woocommerce div.product span.price{color:var(--ws-ink);font-size:32px;font-weight:800;margin:0 0 22px;
  display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
.woocommerce div.product p.price del{color:var(--ws-faint);font-size:16px;font-weight:600;opacity:1;}
.woocommerce div.product p.price ins{text-decoration:none;}

.ws-fitbox{border:1px solid var(--ws-blue);background:var(--ws-blue-tint);border-radius:12px;
  padding:14px 18px;display:flex;gap:12px;align-items:flex-start;margin-bottom:20px;}
.ws-fitbox svg{color:var(--ws-blue);flex:none;margin-top:2px;}
.ws-fitbox b{color:var(--ws-ink);font-size:14px;}
.ws-fitbox span{font-size:13px;color:var(--ws-body-2);display:block;margin-top:2px;}
.ws-fitbox a{font-weight:700;}
/* Selected vehicle doesn't fit this product. */
.ws-fitbox.is-nofit{border-color:#e3b7b7;background:#fdf4f4;}
.ws-fitbox.is-nofit svg{color:#c0392b;}
.ws-pdp__setline{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ws-body);margin-bottom:18px;}
.ws-pdp__setline svg{color:var(--ws-blue);flex:none;}

/* qty + add to cart row */
.woocommerce div.product form.cart{display:flex;gap:12px;margin:0 0 20px;align-items:stretch;}
.woocommerce div.product form.cart .quantity{margin:0;}
.woocommerce .quantity{display:flex;align-items:center;border:1px solid var(--ws-line-3);border-radius:11px;overflow:hidden;height:52px;}
.woocommerce .quantity input.qty{width:52px;height:50px;border:0;text-align:center;font-weight:700;font-size:16px;
  -moz-appearance:textfield;background:#fff;}
.woocommerce .quantity input.qty::-webkit-outer-spin-button,
.woocommerce .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.woocommerce div.product form.cart .button{
  flex:1;background:var(--ws-blue);color:#fff;border-radius:12px;font-weight:700;font-size:16px;
  padding:0 28px;border:0;min-height:52px;transition:background .15s;
}
.woocommerce div.product form.cart .button:hover{background:var(--ws-blue-dark);}

.ws-pdp__ship{display:flex;flex-direction:column;gap:12px;padding-top:20px;border-top:1px solid var(--ws-line);}
.ws-pdp__ship div{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--ws-body);}
.ws-pdp__ship svg{color:var(--ws-blue);flex:none;}

/* PDP long description grid */
.ws-pdp__lower{padding:56px 0 0;}
.ws-pdp__desc-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:48px;align-items:flex-start;}
.ws-pdp__desc h2{font-size:24px;margin-bottom:18px;line-height:1.2;}
.ws-pdp__desc p{font-size:15px;line-height:1.7;color:var(--ws-body);margin-bottom:16px;}
.ws-pdp__desc h3{font-weight:700;font-size:17px;margin:26px 0 14px;}
.ws-featlist{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin:0 0 8px;padding:0;}
.ws-featlist li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ws-body);list-style:none;}
.ws-featlist li::before{content:"✓";color:var(--ws-blue);font-weight:800;flex:none;line-height:1.5;}
.ws-featlist li svg{display:none;} /* authored lists use the ::before check */
.ws-faqbox{background:var(--ws-surface-3);border-radius:var(--ws-radius);padding:26px 26px 6px;}
.ws-faqbox .ws-eyebrow{margin-bottom:20px;}
.ws-faq{padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--ws-line);}
.ws-faq:last-child{border-bottom:0;}
.ws-faq b{display:block;font-size:15px;margin-bottom:6px;color:var(--ws-ink);}
.ws-faq p{margin:0;font-size:14px;color:var(--ws-body-2);line-height:1.55;}

/* Woo tabs restyle */
.woocommerce div.product .woocommerce-tabs{padding-top:48px;margin-top:48px;border-top:1px solid var(--ws-line);}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 30px;border:0;display:flex;gap:28px;}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs{list-style:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:none;border:0;border-radius:0;padding:0 0 12px;margin:0;list-style:none;display:inline-block;}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{font-weight:700;font-size:16px;color:var(--ws-faint);padding:0;}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--ws-ink);}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{border-bottom:2px solid var(--ws-blue);}
.woocommerce-Tabs-panel h2{display:none;}
.ws-spectable{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;max-width:820px;}
.ws-spec{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--ws-line);}
.ws-spec span{color:var(--ws-muted);font-size:14px;}
.ws-spec b{font-weight:700;font-size:14px;color:var(--ws-ink);}

/* ---------- Related products ---------- */
.woocommerce .related.products,
.woocommerce .up-sells{padding-top:24px;margin-top:24px;border-top:1px solid var(--ws-line);}
.woocommerce .related.products > h2,
.woocommerce .up-sells > h2{
  font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--ws-ink);
  margin:0 0 34px;padding-bottom:6px;
}

/* ---------- Cart ---------- */
.ws-cart-page{padding:40px 0 80px;}
.ws-cart-page h1{font-size:30px;margin-bottom:26px;}
.ws-cart-page h1 span{color:var(--ws-faint);font-weight:600;font-size:20px;}
.woocommerce-cart .woocommerce{display:grid;grid-template-columns:1.6fr .9fr;gap:40px;align-items:start;}
.woocommerce-cart form.woocommerce-cart-form{margin:0;}
.woocommerce table.shop_table{border:0;border-radius:0;}
.woocommerce-cart table.cart{margin:0;}
.woocommerce-cart table.cart thead{display:none;}
.woocommerce-cart table.cart td{border-top:1px solid var(--ws-line);padding:22px 0;vertical-align:middle;}
.woocommerce-cart table.cart td.product-remove{width:0;padding:0;}
.woocommerce-cart table.cart img{width:96px;height:96px;border-radius:11px;object-fit:cover;}
.woocommerce-cart table.cart td.product-thumbnail{width:120px;}
.woocommerce-cart .product-name a{font-weight:700;color:var(--ws-ink);font-size:16px;}
.woocommerce-cart .product-name .ws-cart-variant{display:block;font-size:13px;color:var(--ws-faint);margin-top:4px;font-weight:400;}
.woocommerce a.remove{color:var(--ws-blue)!important;font-weight:700;font-size:0;position:relative;width:auto;height:auto;line-height:1;}
.woocommerce-cart .product-name a.remove{font-size:13px;}
.woocommerce-cart td.product-price,.woocommerce-cart td.product-subtotal{font-weight:700;color:var(--ws-ink);}
.woocommerce-cart .actions{padding:20px 0 0!important;}
.woocommerce-cart .actions .button{background:none;color:var(--ws-blue);padding:0;font-weight:700;}
.woocommerce-cart .coupon{display:flex;gap:10px;}
.woocommerce-cart .coupon .input-text{border:1px solid var(--ws-line-3);border-radius:11px;padding:12px 14px;height:auto;}
.woocommerce-cart .coupon .button{background:var(--ws-ink);color:#fff;border-radius:11px;padding:12px 22px;}

.cart-collaterals,.cart_totals{width:auto!important;float:none!important;}
.cart_totals{background:var(--ws-surface-3);border-radius:var(--ws-radius);padding:28px;}
.cart_totals h2{font-size:18px;margin-bottom:20px;}
.cart_totals table{border:0;}
.cart_totals table th,.cart_totals table td{border:0;padding:8px 0;font-size:14px;color:var(--ws-body);}
.cart_totals .order-total th,.cart_totals .order-total td{border-top:1px solid var(--ws-line-2);padding-top:16px;
  font-weight:800;font-size:16px;color:var(--ws-ink);}
.cart_totals .wc-proceed-to-checkout{padding:20px 0 0;}
.cart_totals .checkout-button{background:var(--ws-blue)!important;color:#fff!important;border-radius:12px;
  font-weight:700;font-size:16px;padding:16px;text-align:center;}
.cart_totals .checkout-button:hover{background:var(--ws-blue-dark)!important;}

/* ---------- Checkout ---------- */
.ws-checkout-page{padding:40px 0 80px;}
.woocommerce-checkout .woocommerce{max-width:none;}
.woocommerce form.checkout{display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:start;}
.woocommerce .col2-set,.woocommerce-page .col2-set{width:auto;}
.woocommerce form .form-row label{font-weight:600;font-size:13px;color:var(--ws-body);margin-bottom:6px;}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .select2-container--default .select2-selection--single,
.woocommerce form .form-row .select2-selection{
  border:1px solid var(--ws-line-3);border-radius:11px;padding:13px 15px;height:auto;font-size:15px;
  box-shadow:none;line-height:1.3;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:1.3;padding:0;color:var(--ws-ink);}
.select2-container--default .select2-selection--single .select2-selection__arrow{top:12px;}
#customer_details h3{font-size:22px;margin-bottom:18px;}
.woocommerce-checkout #payment{background:var(--ws-surface-3);border-radius:var(--ws-radius);}
.woocommerce #order_review,.woocommerce-checkout #order_review{background:var(--ws-surface-3);border-radius:var(--ws-radius);padding:28px;}
.woocommerce-checkout #order_review_heading{font-size:20px;margin-bottom:18px;}
.woocommerce-checkout #order_review table.shop_table{background:none;}
#order_review .order-total th,#order_review .order-total td{font-weight:800;font-size:18px;color:var(--ws-ink);}
.woocommerce-checkout #payment div.form-row{padding:16px 0 0;}
.woocommerce #payment #place_order,.woocommerce-checkout #payment #place_order{
  background:var(--ws-blue);color:#fff;border-radius:12px;font-weight:700;font-size:16px;padding:16px;width:100%;
}
.woocommerce #payment #place_order:hover{background:var(--ws-blue-dark);}

@media(max-width:900px){
  ul.products,ul.products.columns-4{grid-template-columns:repeat(2,1fr);}
  .ws-pdp__top{grid-template-columns:1fr;gap:32px;}
  .ws-pdp__desc-grid{grid-template-columns:1fr;gap:28px;}
  .ws-featlist{grid-template-columns:1fr;}
  .woocommerce-cart .woocommerce,
  .woocommerce form.checkout{grid-template-columns:1fr;}
  .ws-spectable{grid-template-columns:1fr;}
}
@media(max-width:560px){
  ul.products,ul.products.columns-4{grid-template-columns:1fr;}
  .woocommerce div.product form.cart{flex-direction:column;}
}

/* ==========================================================================
   Harden the product grid against WooCommerce core float/width defaults.
   Core uses `.woocommerce ul.products li.product { float; width }` which
   out-specifies a bare `ul.products` rule — so we match that specificity.
   ========================================================================== */
.woocommerce ul.products,
.woocommerce-page ul.products{
  display:grid !important;grid-template-columns:repeat(3,1fr);gap:22px;margin:0;padding:0;
}
.woocommerce ul.products.columns-4,
.woocommerce-page ul.products.columns-4{grid-template-columns:repeat(4,1fr);}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  width:auto !important;float:none !important;margin:0 !important;clear:none !important;padding:0;
}
.woocommerce ul.products li.product::before,
.woocommerce ul.products li.product::after{display:none;content:none;}
.woocommerce ul.products li.product .ws-loop-media img{width:100%;height:100%;object-fit:cover;}
@media(max-width:900px){
  .woocommerce ul.products,.woocommerce ul.products.columns-4,
  .woocommerce-page ul.products,.woocommerce-page ul.products.columns-4{grid-template-columns:repeat(2,1fr) !important;}
}
@media(max-width:560px){
  .woocommerce ul.products,.woocommerce ul.products.columns-4,
  .woocommerce-page ul.products,.woocommerce-page ul.products.columns-4{grid-template-columns:1fr !important;}
}

/* WooCommerce adds ::before/::after clearfix on ul.products; in a grid these
   become phantom empty cells. Remove them. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after{content:none !important;display:none !important;}
