/* =========================================================
   PUN CORE — woocommerce.css
   Estilos de tienda construidos desde cero (sin depender del CSS core de WC).
   ========================================================= */

.pun-shop__header{ margin-bottom:var(--pun-space-5); }
.pun-shop__layout{
  display:grid;
  grid-template-columns:240px 1fr;
  gap:var(--pun-space-5);
}
.pun-shop__filters{
  border-right:1px solid var(--pun-gray-100);
  padding-right:var(--pun-space-4);
}
.pun-shop__toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:var(--pun-space-4);
}
@media (max-width:960px){
  .pun-shop__layout{ grid-template-columns:1fr; }
  .pun-shop__filters{ border-right:none; border-bottom:1px solid var(--pun-gray-100); padding-bottom:var(--pun-space-4); }
}

/* ---------- GRID DE PRODUCTOS ---------- */
.pun-product-grid,
ul.products{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:var(--pun-space-4);
  list-style:none;
  margin:0;padding:0;
}
@media (max-width:1200px){ .pun-product-grid, ul.products{ grid-template-columns:repeat(3,1fr) !important; } }
@media (max-width:780px){ .pun-product-grid, ul.products{ grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:480px){ .pun-product-grid, ul.products{ grid-template-columns:1fr !important; } }

.pun-product-card{
  position:relative;
  border:1px solid var(--pun-gray-100);
  border-radius:var(--pun-radius-md);
  overflow:hidden;
  background:var(--pun-white);
  transition:transform var(--pun-transition), box-shadow var(--pun-transition);
}
.pun-product-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(0,0,0,.1);
}
.pun-product-card__media{ position:relative; aspect-ratio:1/1; background:var(--pun-gray-100); }
.pun-product-card__media img{ width:100%; height:100%; object-fit:cover; }
.pun-product-card__badge{
  position:absolute;
  top:12px;left:12px;
  background:var(--pun-lime);
  color:var(--pun-black);
  font-size:0.7rem;
  font-weight:800;
  padding:4px 10px;
  border-radius:999px;
  z-index:2;
}
.pun-product-card__body{ padding:var(--pun-space-3); }
.pun-product-card__title{ font-size:0.95rem; font-weight:600; margin:0 0 6px; }
.pun-product-card__price{ font-weight:700; }
.pun-product-card__price ins{ text-decoration:none; }
.pun-product-card__price del{ color:var(--pun-gray-500); margin-right:6px; }
.pun-product-card__actions{ padding:0 var(--pun-space-3) var(--pun-space-3); }
.pun-product-card__actions .button{
  display:block;
  width:100%;
  text-align:center;
  padding:10px;
  border-radius:999px;
  background:var(--pun-black);
  color:var(--pun-white);
  font-weight:700;
  font-size:0.85rem;
}
.pun-product-card__actions .button:hover{ background:var(--pun-lime); color:var(--pun-black); }

/* ---------- FICHA DE PRODUCTO ---------- */
.pun-product-page__grid{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:var(--pun-space-6);
  margin-bottom:var(--pun-space-6);
}
@media (max-width:880px){
  .pun-product-page__grid{ grid-template-columns:1fr; }
}
.pun-product-page__gallery .woocommerce-product-gallery{ border-radius:var(--pun-radius-lg); overflow:hidden; }
.pun-product-page__summary .price{
  font-size:1.6rem;
  font-weight:800;
  display:block;
  margin:var(--pun-space-2) 0 var(--pun-space-4);
}
.pun-product-page__summary .cart{ margin-top:var(--pun-space-4); }
.pun-product-page__summary button.single_add_to_cart_button{
  background:var(--pun-lime);
  color:var(--pun-black);
  border:none;
  padding:16px 32px;
  border-radius:999px;
  font-weight:800;
  font-size:1rem;
  width:100%;
}
.pun-product-page__summary button.single_add_to_cart_button:hover{ background:var(--pun-lime-dark); }
.pun-product-actions{ display:flex; gap:var(--pun-space-2); margin:var(--pun-space-3) 0; }

/* ---------- CARRITO ---------- */
.pun-cart__table{ width:100%; border-collapse:collapse; }
.pun-cart__table th, .pun-cart__table td{
  padding:var(--pun-space-3);
  border-bottom:1px solid var(--pun-gray-100);
  text-align:left;
}
.pun-cart__collaterals{
  margin-top:var(--pun-space-5);
  max-width:420px;
  margin-left:auto;
}
.cart_totals{
  border:1px solid var(--pun-gray-100);
  border-radius:var(--pun-radius-md);
  padding:var(--pun-space-4);
}
.wc-proceed-to-checkout .checkout-button{
  display:block;
  text-align:center;
  background:var(--pun-lime);
  color:var(--pun-black);
  padding:16px;
  border-radius:999px;
  font-weight:800;
  margin-top:var(--pun-space-3);
}

/* ---------- CHECKOUT / MY ACCOUNT (theming del markup core de WooCommerce) ---------- */
.pun-checkout-page #main-content{
  max-width:960px;
  margin-inline:auto;
}
.woocommerce-checkout input.input-text,
.woocommerce-checkout select,
.woocommerce form .form-row textarea{
  width:100%;
  padding:12px;
  border:1px solid var(--pun-gray-300);
  border-radius:var(--pun-radius-sm);
}
#place_order{
  background:var(--pun-lime) !important;
  color:var(--pun-black) !important;
  border-radius:999px !important;
  font-weight:800 !important;
  padding:16px 32px !important;
  border:none !important;
}
.woocommerce-MyAccount-navigation ul{ display:flex; flex-direction:column; gap:8px; }
.woocommerce-MyAccount-navigation a{ font-weight:600; }
.woocommerce-MyAccount-content{ margin-top:var(--pun-space-4); }
