/* =============================================================
   Wellness Store Australia, shop stylesheet
   Replaces woocommerce-general.css. Covers product cards, the
   product page, notices, pagination and the basic form screens.
   ============================================================= */

/* ---------- Category tiles and pills ------------------------- */

.wsa-cat-tile{
  position:relative; display:flex; flex-direction:column; justify-content:flex-end;
  aspect-ratio:1/1; border-radius:var(--radius); overflow:hidden; text-decoration:none;
  background:var(--c-sage); color:#fff; padding:1rem;
}
.wsa-cat-tile img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s ease }
.wsa-cat-tile::after{ content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(22,48,43,.82),rgba(22,48,43,0) 60%) }
.wsa-cat-tile:hover img{ transform:scale(1.04) }
.wsa-cat-name,.wsa-cat-count{ position:relative; z-index:1 }
.wsa-cat-name{ font-family:var(--font-head); font-weight:800; font-size:1.1rem; line-height:1.2 }
.wsa-cat-count{ font-size:.82rem; opacity:.85 }

.wsa-pills{ display:flex; gap:.5rem; list-style:none; margin:var(--sp-sm) 0 0; padding:0 0 .25rem; overflow-x:auto; scrollbar-width:none }
.wsa-pills::-webkit-scrollbar{ display:none }
.wsa-pills li{ margin:0; flex:none }
.wsa-pills a{
  display:inline-flex; min-height:40px; align-items:center; padding:.45rem 1rem; border-radius:999px;
  border:1px solid var(--c-line); background:var(--c-surface); color:var(--c-ink); text-decoration:none;
  font-weight:600; font-size:.9rem; white-space:nowrap;
}
.wsa-pills a:hover{ border-color:var(--c-primary); color:var(--c-primary) }
.wsa-pills a[aria-current]{ background:var(--c-primary); border-color:var(--c-primary); color:#fff }

/* ---------- Toolbar (count and sort) ------------------------- */

.woocommerce-result-count{ color:var(--c-ink-3); font-size:.9rem; margin:0 0 1rem; float:left }
.woocommerce-ordering{ float:right; margin:0 0 1rem }
.woocommerce-ordering select,
.woocommerce select{
  min-height:44px; border:1px solid var(--c-line); border-radius:999px; padding:.4rem 2.2rem .4rem 1rem;
  font:inherit; font-size:.9rem; background:var(--c-surface);
}
.woocommerce-products-header + .woocommerce-notices-wrapper,
ul.products{ clear:both }

/* ---------- Product grid ------------------------------------- */

.woocommerce ul.products,
ul.products{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--sp-md) var(--sp-sm);
  list-style:none; margin:0; padding:0;
}
ul.products::before,ul.products::after{ display:none!important }
@media (max-width:1080px){ ul.products{ grid-template-columns:repeat(3,minmax(0,1fr)) } }
@media (max-width:760px){ ul.products{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sp-sm) .75rem } }

ul.products li.product{
  margin:0!important; width:auto!important; float:none!important; padding:0;
  display:flex; flex-direction:column; position:relative;
}
ul.products li.product > a.woocommerce-LoopProduct-link{ display:flex; flex-direction:column; text-decoration:none; color:inherit; flex:1 }
ul.products li.product img{
  width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:var(--radius);
  background:var(--c-surface-2); margin:0 0 .85rem; transition:transform .3s ease, box-shadow .3s ease;
}
ul.products li.product:hover img{ box-shadow:var(--shadow-md) }
.wsa-card-brand{ font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--c-primary) }
.woocommerce-loop-product__title{ font-size:1rem!important; font-weight:700; margin:.2rem 0 .35rem!important; line-height:1.3; color:var(--c-ink) }
ul.products li.product .price{ display:block; font-weight:700; color:var(--c-ink); margin:0 0 .85rem; font-size:1rem }
.price del{ color:var(--c-ink-3); font-weight:500; margin-right:.35rem; font-size:.9em }
.price ins{ text-decoration:none; color:var(--c-sale) }

ul.products li.product .button{
  width:100%; margin-top:auto;
}

.onsale{
  position:absolute; top:.75rem; left:.75rem; z-index:2;
  background:var(--c-sale); color:#fff; font-size:.75rem; font-weight:700; letter-spacing:.04em;
  padding:.3rem .65rem; border-radius:999px; line-height:1.2; min-height:0; min-width:0;
}

/* ---------- Buttons ------------------------------------------ */

.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button{
  display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
  min-height:48px; padding:.75rem 1.4rem; border-radius:999px; border:2px solid var(--c-primary);
  background:var(--c-primary); color:#fff; font-family:var(--font-head); font-weight:700; font-size:.95rem;
  text-decoration:none; cursor:pointer; line-height:1.2; transition:background-color .15s ease, box-shadow .15s ease;
}
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover{ background:var(--c-primary-800); border-color:var(--c-primary-800); color:#fff; box-shadow:var(--shadow-md) }
.woocommerce .button.alt,
.woocommerce button.button.alt{ background:var(--c-primary-900); border-color:var(--c-primary-900) }
.woocommerce a.added_to_cart{ display:block; text-align:center; font-size:.85rem; margin-top:.4rem }
.woocommerce .button.loading{ opacity:.6 }
.woocommerce .button:disabled,.woocommerce .button.disabled{ opacity:.5; cursor:not-allowed }

/* ---------- Pagination --------------------------------------- */

.woocommerce-pagination{ margin-top:var(--sp-lg); text-align:center }
.woocommerce-pagination ul{ display:inline-flex; gap:.35rem; list-style:none; margin:0; padding:0; border:0 }
.woocommerce-pagination li{ margin:0; border:0 }
.woocommerce-pagination a,.woocommerce-pagination span{
  display:grid; place-items:center; min-width:44px; height:44px; border-radius:50%;
  text-decoration:none; color:var(--c-ink); font-weight:600;
}
.woocommerce-pagination a:hover{ background:var(--c-primary-050) }
.woocommerce-pagination .current{ background:var(--c-primary); color:#fff }

/* ---------- Single product ----------------------------------- */

.single-product div.product{
  display:grid; gap:var(--sp-md) var(--sp-lg); grid-template-columns:minmax(0,1fr); position:relative;
}
@media (min-width:900px){
  .single-product div.product{ grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr) }
  .single-product div.product .woocommerce-tabs,
  .single-product div.product .related,
  .single-product div.product .upsells{ grid-column:1 / -1 }
}
.single-product div.product .woocommerce-product-gallery{ width:auto!important; float:none!important; margin:0; position:relative }
.woocommerce-product-gallery__wrapper{ margin:0 }
.woocommerce-product-gallery__image img{ border-radius:var(--radius-lg); background:var(--c-surface-2); width:100% }
.woocommerce-product-gallery .flex-control-thumbs{
  display:flex; gap:.5rem; list-style:none; margin:.75rem 0 0; padding:0; overflow-x:auto;
}
.woocommerce-product-gallery .flex-control-thumbs li{ margin:0; flex:0 0 72px }
.woocommerce-product-gallery .flex-control-thumbs img{ border-radius:var(--radius-sm); opacity:.6; cursor:pointer }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs img:hover{ opacity:1 }
.woocommerce-product-gallery__trigger{
  position:absolute; top:1rem; right:1rem; z-index:3; width:40px; height:40px; border-radius:50%;
  background:var(--c-surface); box-shadow:var(--shadow-sm); display:grid; place-items:center; font-size:0;
}
.woocommerce-product-gallery__trigger::before{ content:'\2922'; font-size:1rem; color:var(--c-ink) }

.single-product div.product .summary{ width:auto!important; float:none!important; margin:0 }
.single-product .product_title{ font-size:clamp(1.7rem,1.3rem + 1.6vw,2.5rem); margin-bottom:.35em }
.wsa-pdp-brand{ margin-bottom:.4rem }
.single-product .summary .price{ font-family:var(--font-head); font-size:1.6rem; font-weight:800; color:var(--c-ink); margin:0 0 1rem }
.single-product .woocommerce-product-details__short-description{ color:var(--c-ink-2); margin-bottom:1.25rem }
.single-product form.cart{ display:flex; flex-wrap:wrap; gap:.6rem; margin:0 0 1.25rem }
.single-product form.cart .button{ flex:1; min-width:200px; min-height:54px; font-size:1.02rem }
.quantity .qty{
  width:84px; min-height:54px; text-align:center; border:1px solid var(--c-line); border-radius:999px; font:inherit; font-weight:700;
}
.product_meta{ font-size:.85rem; color:var(--c-ink-3); display:grid; gap:.25rem; margin-top:1rem }
.product_meta a{ color:var(--c-ink-2) }

.wsa-pdp-trust{ list-style:none; margin:0 0 .75rem; padding:1rem 1.1rem; display:grid; gap:.55rem; background:var(--c-surface-2); border-radius:var(--radius) }
.wsa-pdp-trust li{ display:flex; gap:.6rem; align-items:center; margin:0; font-size:.92rem; font-weight:600; color:var(--c-ink-2) }
.wsa-pdp-trust svg{ color:var(--c-primary); flex:none }
.wsa-pdp-label-note{ font-size:.8rem; color:var(--c-ink-3); margin:0 }

/* Tabs */
.woocommerce-tabs{ margin-top:var(--sp-md) }
.woocommerce-tabs ul.tabs{
  display:flex; gap:.25rem; list-style:none; margin:0 0 var(--sp-md); padding:0;
  border-bottom:1px solid var(--c-line); overflow-x:auto;
}
.woocommerce-tabs ul.tabs::before,.woocommerce-tabs ul.tabs::after{ display:none }
.woocommerce-tabs ul.tabs li{ margin:0; border:0; background:none; padding:0 }
.woocommerce-tabs ul.tabs li a{
  display:inline-block; padding:.85rem 1.1rem; text-decoration:none; font-weight:700; color:var(--c-ink-3);
  border-bottom:3px solid transparent; margin-bottom:-1px; white-space:nowrap;
}
.woocommerce-tabs ul.tabs li.active a{ color:var(--c-primary); border-bottom-color:var(--c-primary) }
.woocommerce-Tabs-panel{ max-width:820px }
.woocommerce-Tabs-panel h2,.woocommerce-Tabs-panel h3{ margin-top:1.5em }
.woocommerce-Tabs-panel img{ border-radius:var(--radius) }
.woocommerce-product-attributes{ width:100%; border-collapse:collapse }
.woocommerce-product-attributes th,.woocommerce-product-attributes td{ text-align:left; padding:.7rem; border-bottom:1px solid var(--c-line) }

.related.products > h2,.upsells.products > h2{ font-size:clamp(1.4rem,1.1rem + 1.2vw,2rem); margin:var(--sp-lg) 0 var(--sp-md) }

/* ---------- Notices ------------------------------------------ */

.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-notice{
  list-style:none; margin:0 0 var(--sp-sm); padding:1rem 1.2rem; border-radius:var(--radius);
  background:var(--c-primary-050); color:var(--c-primary-900); border-left:4px solid var(--c-primary);
  display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; justify-content:space-between;
}
.woocommerce-error{ background:#FBEDEA; border-left-color:var(--c-sale); color:#5C2417 }
.woocommerce-message .button,.woocommerce-info .button{ min-height:40px; padding:.5rem 1rem; order:2 }

/* ---------- Forms (cart, checkout, account) ----------------- */

.wsa-wc-page{ max-width:var(--w-normal) }
.woocommerce form .form-row{ margin:0 0 1rem; padding:0 }
.woocommerce form .form-row label{ display:block; font-weight:600; font-size:.9rem; margin-bottom:.35rem }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  width:100%; min-height:48px; border:1px solid var(--c-line); border-radius:var(--radius-sm);
  padding:.65rem .9rem; font:inherit; background:var(--c-surface);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus{ outline:none; border-color:var(--c-primary); box-shadow:0 0 0 3px var(--c-primary-100) }
.woocommerce table.shop_table{ width:100%; border-collapse:collapse; border:1px solid var(--c-line); border-radius:var(--radius); overflow:hidden }
.woocommerce table.shop_table th,.woocommerce table.shop_table td{ padding:.85rem; border-bottom:1px solid var(--c-line); text-align:left }
.woocommerce table.shop_table img{ width:64px; border-radius:var(--radius-sm) }
.woocommerce .cart-collaterals,.woocommerce-checkout-review-order{ margin-top:var(--sp-md) }
