/* ============================================================
   PONTI — Catálogo
   Archivo de tienda, categorías, tarjetas de producto.
   ============================================================ */

/* ------------------------------------------------------------
   CABECERA DE CATEGORÍA
   ------------------------------------------------------------ */
.pt-archive-head{
  padding:clamp(1.5rem,3vw,2.5rem) var(--pt-gut) 0;
}
.woocommerce-breadcrumb,
.pt-crumbs{
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--pt-ash);
  margin:0 0 1.5rem;
}
.woocommerce-breadcrumb a,
.pt-crumbs a{ color:var(--pt-ash); text-decoration:none; }
.woocommerce-breadcrumb a:hover,
.pt-crumbs a:hover{ color:var(--pt-ink); }

.pt-archive-head h1,
.woocommerce-products-header__title{
  font-family:var(--pt-sans);
  font-size:clamp(1.9rem,4vw,2.9rem);
  font-weight:600;
  letter-spacing:-.025em;
  line-height:1.05;
  margin:0 0 .55rem;
}
.pt-archive-head .term-description,
.woocommerce-products-header .term-description{
  color:var(--pt-slate);
  font-size:.97rem;
  max-width:56ch;
}
.pt-archive-head .term-description p{ margin:0; }

/* ------------------------------------------------------------
   MOSAICO DE SUBCATEGORÍAS (lógica Ferragamo)
   ------------------------------------------------------------ */
.pt-cat-mosaic{
  padding:clamp(1.75rem,3.5vw,2.75rem) var(--pt-gut) 0;
}
.pt-cat-mosaic__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));
  gap:clamp(.7rem,1.4vw,1.1rem);
  list-style:none;
  margin:.9rem 0 0;
  padding:0;
}
.pt-cat-tile{ margin:0; }
.pt-cat-tile a{ display:block; text-decoration:none; color:var(--pt-ink); }
.pt-cat-tile__stage{
  background:var(--pt-bone);
  aspect-ratio:4/5;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .28s ease;
}
.pt-cat-tile__stage img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .5s cubic-bezier(.2,.7,.3,1);
}
.pt-cat-tile a:hover .pt-cat-tile__stage{ background:var(--pt-taupe); }
.pt-cat-tile a:hover .pt-cat-tile__stage img{ transform:scale(1.04); }
.pt-cat-tile__name{
  display:block;
  font-size:.9rem;
  font-weight:600;
  letter-spacing:-.01em;
  margin-top:.7rem;
}
.pt-cat-tile__count{
  display:block;
  font-size:.72rem;
  color:var(--pt-ash);
  margin-top:.1rem;
  font-variant-numeric:tabular-nums;
}

/* ------------------------------------------------------------
   BARRA DE FILTROS
   ------------------------------------------------------------ */
.pt-filterbar{
  position:sticky;
  top:0;
  z-index:90;
  background:var(--pt-paper);
  border-top:1px solid var(--pt-rule);
  border-bottom:1px solid var(--pt-rule);
  margin:clamp(1.75rem,3.5vw,2.75rem) 0 0;
  padding:.75rem var(--pt-gut);
  display:flex;
  align-items:center;
  gap:.5rem;
  flex-wrap:wrap;
}
.pt-filterbar__spacer{ flex:1; }
.pt-filterbar__count{
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--pt-ash);
  font-variant-numeric:tabular-nums;
}
.pt-chip{
  font-family:var(--pt-sans);
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--pt-slate);
  background:none;
  border:1px solid var(--pt-rule);
  padding:.5rem .85rem;
  cursor:pointer;
  transition:border-color .18s ease, color .18s ease;
}
.pt-chip:hover{ border-color:var(--pt-ink); color:var(--pt-ink); }
.pt-chip[aria-expanded="true"],
.pt-chip.is-active{ background:var(--pt-ink); border-color:var(--pt-ink); color:var(--pt-paper); }

/* Selector de orden de WooCommerce, alineado al sistema */
.woocommerce-ordering select,
.pt-filterbar select{
  font-family:var(--pt-sans);
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--pt-slate);
  background:var(--pt-paper);
  border:1px solid var(--pt-rule);
  padding:.5rem .85rem;
  cursor:pointer;
}
.woocommerce-result-count{ display:none; }

/* ------------------------------------------------------------
   PARRILLA DE PRODUCTOS
   ------------------------------------------------------------ */
.woocommerce ul.products,
ul.products{
  display:grid !important;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(.85rem,2vw,1.6rem) clamp(.85rem,1.8vw,1.4rem);
  list-style:none;
  margin:clamp(1.75rem,3.5vw,2.75rem) 0 0;
  padding:0 var(--pt-gut);
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{ display:none; }

.woocommerce ul.products li.product,
ul.products li.product{
  position:relative;
  float:none !important;
  width:auto !important;
  margin:0 !important;
  text-align:left;
  clear:none !important;
}

/* Escenario de imagen */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
ul.products li.product a.woocommerce-LoopProduct-link{
  display:block;
  position:relative;
  overflow:hidden;
  text-decoration:none;
}
.woocommerce ul.products li.product img,
ul.products li.product img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  background:var(--pt-bone);
  margin:0 !important;
  transition:transform .5s cubic-bezier(.2,.7,.3,1), opacity .35s ease;
}
ul.products li.product:hover img{ transform:scale(1.035); }

/* Segunda foto al pasar el cursor */
.pt-card__alt{
  position:absolute;
  inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .35s ease;
  pointer-events:none;
}
ul.products li.product:hover .pt-card__alt{ opacity:1; }

/* Texto de la tarjeta */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--pt-sans);
  font-size:.9rem !important;
  font-weight:600;
  letter-spacing:-.01em;
  line-height:1.35;
  color:var(--pt-ink);
  padding:.75rem 0 .1rem !important;
  margin:0;
}
.pt-card__meta{
  font-size:.78rem;
  color:var(--pt-ash);
  margin:0 0 .45rem;
}
.woocommerce ul.products li.product .price,
ul.products li.product .price{
  font-family:var(--pt-sans);
  font-size:.9rem;
  font-weight:600;
  color:var(--pt-ink);
  font-variant-numeric:tabular-nums;
  margin:0;
  display:block;
}
.woocommerce ul.products li.product .price del,
ul.products li.product .price del{
  color:var(--pt-ash);
  font-weight:400;
  font-size:.8rem;
  opacity:1;
  margin-right:.4rem;
}
.woocommerce ul.products li.product .price ins,
ul.products li.product .price ins{
  text-decoration:none;
  background:none;
  font-weight:600;
  color:var(--pt-ink);
}

/* Muestras de cuero en la tarjeta */
.pt-card__swatches{
  display:flex;
  gap:.38rem;
  margin-top:.65rem;
}
.pt-card__swatch{
  width:.9rem; height:.9rem;
  border-radius:50%;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.16);
  display:block;
}
.pt-card__swatch--more{
  font-size:.62rem;
  color:var(--pt-ash);
  box-shadow:none;
  width:auto;
  line-height:.9rem;
  font-variant-numeric:tabular-nums;
}

/* Ocultar el botón de añadir del catálogo (decisión de UX aprobada) */
.woocommerce ul.products li.product .button,
ul.products li.product .add_to_cart_button,
ul.products li.product .product_type_variable{
  display:none !important;
}

/* ------------------------------------------------------------
   DISTINTIVOS
   ------------------------------------------------------------ */
.woocommerce span.onsale,
span.onsale{
  position:absolute;
  top:0; left:0;
  z-index:3;
  background:var(--pt-ink) !important;
  color:var(--pt-paper) !important;
  border-radius:0 !important;
  min-height:0 !important;
  min-width:0 !important;
  line-height:1 !important;
  margin:0 !important;
  padding:.45rem .7rem !important;
  font-family:var(--pt-sans);
  font-size:.56rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-variant-numeric:tabular-nums;
}

.pt-badge{
  position:absolute;
  top:0; left:0;
  z-index:4;
  font-family:var(--pt-sans);
  font-size:.56rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1;
  padding:.45rem .7rem;
}
.pt-badge--online{
  background:var(--pt-paper);
  color:var(--pt-ink);
  box-shadow:inset 0 0 0 1px var(--pt-rule);
}
/* Si coexisten, el de oferta baja */
.pt-badge--online ~ .onsale,
li.product .pt-badge--online + a .onsale{ top:1.65rem; }

/* ------------------------------------------------------------
   VER MÁS / PAGINACIÓN
   ------------------------------------------------------------ */
.woocommerce nav.woocommerce-pagination{
  margin:clamp(2.25rem,4.4vw,3.5rem) 0 0;
  padding:0 var(--pt-gut);
  text-align:center;
}
.woocommerce nav.woocommerce-pagination ul{
  border:none;
  display:inline-flex;
  gap:.35rem;
}
.woocommerce nav.woocommerce-pagination ul li{
  border:none;
  margin:0;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  font-family:var(--pt-sans);
  font-size:.78rem;
  font-weight:500;
  min-width:2.35rem;
  padding:.6rem .5rem;
  border:1px solid var(--pt-rule);
  color:var(--pt-slate);
  background:var(--pt-paper);
  font-variant-numeric:tabular-nums;
}
.woocommerce nav.woocommerce-pagination ul li span.current{
  background:var(--pt-ink);
  border-color:var(--pt-ink);
  color:var(--pt-paper);
}

/* ------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------ */
@media(max-width:1000px){
  .woocommerce ul.products,
  ul.products{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:560px){
  .woocommerce ul.products,
  ul.products{ grid-template-columns:repeat(2,1fr); gap:.7rem; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  ul.products li.product .woocommerce-loop-product__title{ font-size:.82rem !important; }
  .pt-cat-mosaic__grid{ grid-template-columns:repeat(3,1fr); }
  .pt-filterbar{ gap:.4rem; padding:.6rem var(--pt-gut); }
  .pt-filterbar__count{ display:none; }
}

/* ============================================================
   CARRITO + CHECKOUT PONTI
   WooCommerce Blocks — layout amplio, limpio y totalmente usable.
   ============================================================ */

/* La plantilla de páginas normales usa 44rem; para compra es demasiado
   estrecha y comprimía el resumen del pedido hasta romper las palabras. */
body.woocommerce-cart .pt-page,
body.woocommerce-checkout .pt-page{
  width:100%;
  max-width:90rem;
  padding-left:var(--pt-gut);
  padding-right:var(--pt-gut);
}
body.woocommerce-cart .pt-page__content,
body.woocommerce-checkout .pt-page__content{
  width:100%;
  max-width:none;
}
body.woocommerce-cart .pt-page__title,
body.woocommerce-checkout .pt-page__title{
  max-width:84rem;
  margin-left:auto;
  margin-right:auto;
}

/* ------------------------------------------------------------
   CARRITO
   ------------------------------------------------------------ */
body.woocommerce-cart .wc-block-cart.wc-block-components-sidebar-layout,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-sidebar-layout{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(20rem,23rem);
  gap:clamp(2rem,4vw,4rem);
  align-items:start;
}
body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-cart .wc-block-cart__sidebar,
body.woocommerce-cart .wc-block-components-main,
body.woocommerce-cart .wc-block-components-sidebar{
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
body.woocommerce-cart .wc-block-cart__sidebar{
  border:1px solid var(--pt-rule);
  padding:1.35rem !important;
  background:var(--pt-paper);
}
body.woocommerce-cart .wc-block-cart-items{
  border-spacing:0;
}
body.woocommerce-cart .wc-block-cart-items th{
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--pt-ash);
  font-weight:600;
}
body.woocommerce-cart .wc-block-cart-items__row{
  border-bottom:1px solid var(--pt-rule);
}
body.woocommerce-cart .wc-block-cart-item__image img,
body.woocommerce-cart .wc-block-cart-items img{
  background:var(--pt-bone);
  object-fit:cover;
}
body.woocommerce-cart .wc-block-components-product-name{
  color:var(--pt-ink) !important;
  font-weight:600;
  line-height:1.3;
  text-decoration:none !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}
body.woocommerce-cart .wc-block-components-product-metadata{
  color:var(--pt-slate);
  font-size:.78rem;
  line-height:1.45;
}
body.woocommerce-cart .wc-block-components-product-badge,
body.woocommerce-cart [class*="sale-badge"]{
  display:inline-flex;
  width:max-content;
  padding:.25rem .45rem;
  background:var(--pt-bone);
  color:var(--pt-slate);
  border:none;
  border-radius:0;
  font-size:.7rem;
  line-height:1;
}
body.woocommerce-cart .wc-block-components-quantity-selector{
  border-color:var(--pt-rule) !important;
  border-radius:0 !important;
}
body.woocommerce-cart .wc-block-components-totals-wrapper{
  border-color:var(--pt-rule) !important;
}
body.woocommerce-cart .wc-block-components-totals-coupon__form{
  gap:.5rem;
}
body.woocommerce-cart .wc-block-components-totals-coupon__form input{
  min-width:0;
}
body.woocommerce-cart .wc-block-components-totals-coupon__button,
body.woocommerce-cart .wc-block-cart__submit-button{
  border-radius:0 !important;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.68rem;
  font-weight:600;
}
body.woocommerce-cart .wc-block-cart__submit-button{
  background:var(--pt-ink) !important;
  color:var(--pt-paper) !important;
  min-height:3.25rem;
}
body.woocommerce-cart .wc-block-components-totals-item__label,
body.woocommerce-cart .wc-block-components-totals-item__value{
  font-size:.88rem;
}
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-weight:600;
  color:var(--pt-ink);
}

/* ------------------------------------------------------------
   CHECKOUT
   ------------------------------------------------------------ */
body.woocommerce-checkout .wc-block-checkout.wc-block-components-sidebar-layout,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout{
  display:grid !important;
  grid-template-columns:minmax(0,1.35fr) minmax(24rem,.8fr);
  gap:clamp(2.5rem,5vw,5rem);
  align-items:start;
  max-width:none !important;
}
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar,
body.woocommerce-checkout .wc-block-components-main,
body.woocommerce-checkout .wc-block-components-sidebar{
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar{
  border:1px solid var(--pt-rule);
  padding:1.35rem !important;
  background:var(--pt-paper);
  align-self:start;
}
body.woocommerce-checkout .wc-block-components-checkout-step{
  margin-bottom:1.7rem;
}
body.woocommerce-checkout .wc-block-components-checkout-step__heading{
  margin-bottom:.8rem;
}
body.woocommerce-checkout .wc-block-components-checkout-step__title{
  font-size:1rem;
  font-weight:600;
  letter-spacing:-.01em;
}
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input,
body.woocommerce-checkout .wc-block-components-address-form input,
body.woocommerce-checkout .wc-block-components-address-form select{
  border-radius:0 !important;
  min-height:3.45rem;
  border-color:var(--pt-rule) !important;
  font-family:var(--pt-sans);
}
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input:focus{
  box-shadow:0 0 0 1px var(--pt-ink) !important;
  border-color:var(--pt-ink) !important;
}

/* Resumen del pedido: evita el fallo de palabras una letra por línea. */
body.woocommerce-checkout .wc-block-components-order-summary{
  margin:0;
}
body.woocommerce-checkout .wc-block-components-order-summary__button-text,
body.woocommerce-checkout .wc-block-components-order-summary__content{
  width:100%;
}
body.woocommerce-checkout .wc-block-components-order-summary-item{
  display:grid !important;
  grid-template-columns:5rem minmax(0,1fr) auto;
  gap:.85rem;
  align-items:start;
  padding:1rem 0 !important;
  border-bottom:1px solid var(--pt-rule);
}
body.woocommerce-checkout .wc-block-components-order-summary-item__image{
  width:5rem !important;
  min-width:5rem !important;
  height:5rem !important;
  overflow:hidden;
  margin:0 !important;
  grid-column:1;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__image img{
  width:5rem !important;
  height:5rem !important;
  aspect-ratio:1 / 1;
  object-fit:cover;
  background:var(--pt-bone);
}
body.woocommerce-checkout .wc-block-components-order-summary-item__description{
  min-width:0 !important;
  width:auto !important;
  grid-column:2;
  margin:0 !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price{
  grid-column:3;
  margin:0 !important;
  white-space:nowrap;
  font-weight:600;
  color:var(--pt-ink);
}
body.woocommerce-checkout .wc-block-components-order-summary-item .wc-block-components-product-name{
  display:block;
  max-width:100%;
  color:var(--pt-ink) !important;
  font-size:.9rem;
  font-weight:600;
  line-height:1.3;
  text-decoration:none !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
  hyphens:none !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item .wc-block-components-product-metadata{
  margin-top:.35rem;
  color:var(--pt-slate);
  font-size:.75rem;
  line-height:1.45;
  word-break:normal !important;
  overflow-wrap:normal !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item .wc-block-components-product-price{
  margin-top:.4rem;
  font-size:.8rem;
  line-height:1.35;
}
body.woocommerce-checkout .wc-block-components-product-badge,
body.woocommerce-checkout [class*="sale-badge"]{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin-top:.35rem;
  padding:.25rem .45rem;
  background:var(--pt-bone);
  color:var(--pt-slate);
  border:none;
  border-radius:0;
  font-size:.68rem;
  line-height:1;
  white-space:nowrap;
}
body.woocommerce-checkout .wc-block-components-product-badge{
  word-break:normal !important;
  overflow-wrap:normal !important;
}
body.woocommerce-checkout .wc-block-components-totals-wrapper{
  border-color:var(--pt-rule) !important;
}
body.woocommerce-checkout .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__value{
  font-size:.86rem;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  color:var(--pt-ink);
  font-size:1rem;
  font-weight:600;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button{
  min-height:3.4rem;
  border-radius:0 !important;
  background:var(--pt-ink) !important;
  color:var(--pt-paper) !important;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.7rem;
  font-weight:600;
}

/* Código postal: respaldo visual adicional al locale PHP de Ecuador. */
body.woocommerce-checkout .wc-block-components-address-form__postcode{
  display:none !important;
}

/* Términos: el enlace queda claro sin añadir ruido visual. */
body.woocommerce-checkout [class*="terms"]{
  color:var(--pt-slate);
  font-size:.78rem;
  line-height:1.55;
}
body.woocommerce-checkout [class*="terms"] a{
  color:var(--pt-ink);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:.18em;
}

/* ------------------------------------------------------------
   RESPONSIVE DE COMPRA
   ------------------------------------------------------------ */
@media(max-width:980px){
  body.woocommerce-cart .wc-block-cart.wc-block-components-sidebar-layout,
  body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-sidebar-layout,
  body.woocommerce-checkout .wc-block-checkout.wc-block-components-sidebar-layout,
  body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout{
    grid-template-columns:1fr;
    gap:2rem;
  }
  body.woocommerce-cart .wc-block-cart__sidebar,
  body.woocommerce-checkout .wc-block-checkout__sidebar{
    width:100% !important;
  }
}

@media(max-width:640px){
  body.woocommerce-cart .pt-page,
  body.woocommerce-checkout .pt-page{
    padding-left:1rem;
    padding-right:1rem;
  }
  body.woocommerce-cart .pt-page__title,
  body.woocommerce-checkout .pt-page__title{
    font-size:1.75rem;
  }
  body.woocommerce-checkout .wc-block-checkout__sidebar,
  body.woocommerce-cart .wc-block-cart__sidebar{
    padding:1rem !important;
  }
  body.woocommerce-checkout .wc-block-components-order-summary-item{
    grid-template-columns:4rem minmax(0,1fr) auto;
    gap:.65rem;
  }
  body.woocommerce-checkout .wc-block-components-order-summary-item__image,
  body.woocommerce-checkout .wc-block-components-order-summary-item__image img{
    width:4rem !important;
    min-width:4rem !important;
    height:4rem !important;
  }
  body.woocommerce-checkout .wc-block-components-order-summary-item__image{
    overflow:hidden;
  }
  body.woocommerce-checkout .wc-block-components-order-summary-item__image img{
    aspect-ratio:1 / 1;
    object-fit:cover;
  }
  body.woocommerce-checkout .wc-block-components-order-summary-item .wc-block-components-product-name{
    font-size:.84rem;
  }
}
