/* =========================================================
   DA360-PUPPY – v2.0.0
   - El CTA hereda colores del tema (normal y hover)
   - Solo layout para el CTA
   - Badges, bordes por stock y sello responsive
   ========================================================= */

/* ===== Cards – bordes por stock ===== */
.woocommerce ul.products li.product{
  border: 2px solid transparent;
  border-radius: 16px;
}
.woocommerce ul.products li.product:not(.outofstock){
  border-color: var(--du-badge-in-text);
}
.woocommerce ul.products li.product.outofstock{
  border-color: var(--du-badge-out-text);
}

/* ===== Badges ===== */
.du-badge, .du-badge-mini{
  display:inline-block;
  padding:.35em .75em;
  border-radius:999px;
  font-weight:600;
  line-height:1;
  font-size:.875rem;
}
.du-badge.in, .du-badge-mini.in{ background:var(--du-badge-in-bg); color:var(--du-badge-in-text); }
.du-badge.out, .du-badge-mini.out{ background:var(--du-badge-out-bg); color:var(--du-badge-out-text); }

/* ===== Meta en cards ===== */
.du-archive-extras{ margin-top:.5rem; }
.du-archive-extras .du-meta{ list-style:none; padding:0; margin:.25rem 0 0 0; }
.du-archive-extras .du-meta li{ margin:.15rem 0; }
.du-archive-extras .du-total strong,
.du-archive-extras .du-reserve strong{ font-weight:800; }

/* ===== Botón inferior en cards =====
   (sin color ni background; los define el tema a través de .button) */
.du-cta-card{
  display:block;
  width:100%;
  text-align:center;
  margin:.85rem 0 0 0;
  padding:.9rem 1.1rem;
  border-radius:999px;
  font-weight:700;
  text-decoration:none;
  transition:transform .05s ease, opacity .2s ease;
}
.du-cta-card.out{
  opacity:.6;
  cursor:not-allowed;
  pointer-events:none;
}
.du-cta-card:active{ transform:scale(.99); }

/* ===== Recuadro de precios en SINGLE ===== */
.du-price-box{
  background: var(--du-info-bg);
  border: 2px solid var(--du-info-border);
  border-radius: 12px;
  padding: 14px 16px;
  margin: 10px 0 14px 0;
}
.du-price-box .du-row{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:.35rem 0;
}
.du-price-box .du-label{ font-weight:800; }
.du-price-box .du-amount{ font-weight:700; }

/* ===== Sticky IMG backup ===== */
@media (min-width: 1024px){
  .single-product .product{ align-items:flex-start !important; }
  .woocommerce-product-gallery{ position:sticky !important; top:96px !important; align-self:flex-start !important; }
  .single-product .product .entry-summary{ align-self:stretch !important; }
}

/* ===== Sello RESERVADO ===== */
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{ position:relative; }
.woocommerce div.product.outofstock .woocommerce-product-gallery::after,
.woocommerce ul.products li.product.outofstock a.woocommerce-LoopProduct-link::after{
  position:absolute;
  left: var(--du-seal-x);
  top: var(--du-seal-y);
  transform: translate(-50%, -50%) rotate(var(--du-seal-rotate));
  color: var(--du-seal-text);
  opacity: var(--du-seal-opacity);
  letter-spacing:2px;
  font-weight:700;
  text-transform:uppercase;
  background: transparent;
  padding:.35em .6em;
  white-space:nowrap;
}
.woocommerce div.product.outofstock .woocommerce-product-gallery::after{
  border: var(--du-seal-border-single) solid var(--du-seal-color);
  font-size: clamp(14px, 2.6vw, 32px);
}
.woocommerce ul.products li.product.outofstock a.woocommerce-LoopProduct-link::after{
  border: var(--du-seal-border-grid) solid var(--du-seal-color);
  font-size: clamp(12px, 3.2vw, 22px);
}

/* ===== Carrusel en tarjetas ===== */
.du-carousel{ position:relative; overflow:hidden; border-radius:inherit; }
.du-track{
  display:flex; overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory; scrollbar-width:none; -ms-overflow-style:none;
  -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;
}
.du-track::-webkit-scrollbar{ display:none; }
.du-slide{ flex:0 0 100%; min-width:0; scroll-snap-align:start; }
.du-slide img{ display:block; width:100%; height:auto; margin:0 !important; }
.du-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:30px; height:30px; line-height:28px; text-align:center; font-size:22px;
  border-radius:50%; background:rgba(255,255,255,.85); color:#222; cursor:pointer;
  user-select:none; opacity:0; transition:opacity .2s ease;
}
.du-prev{ left:6px; } .du-next{ right:6px; }
.du-carousel:hover .du-nav, .du-carousel:focus-within .du-nav{ opacity:1; }
@media (hover:none){ .du-nav{ opacity:.9; } }
.du-dots{ position:absolute; left:0; right:0; bottom:8px; display:flex; justify-content:center; gap:5px; z-index:3; pointer-events:none; }
.du-dot{ width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,.6); box-shadow:0 0 2px rgba(0,0,0,.5); }
.du-dot.is-active{ background:#fff; transform:scale(1.25); }

/* ===== Misma raza en la ficha ===== */
.du-breed{ clear:both; margin:2.5rem 0; }
.du-breed-title{ margin:0 0 1rem 0; }
.du-breed-puppy{ margin-bottom:1.5rem; }
.du-breed-head{ font-weight:700; margin-bottom:.5rem; }
.du-breed-head a{ text-decoration:none; }
.du-breed-meta{ font-weight:400; opacity:.8; }
.du-breed-photos{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; }
.du-breed-photos img{ display:block; width:100%; height:auto; border-radius:10px; }
