
/* PRODUCTO PÚBLICO */
.product-public-body{background:#f4f6f8}
.product-public-main{max-width:1540px;margin:0 auto;padding:34px clamp(20px,4vw,70px) 70px}
.product-breadcrumb{display:flex;gap:8px;align-items:center;margin-bottom:20px;color:#8190a2;font-size:10px}
.product-breadcrumb a{color:#63748a}
.product-detail{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(400px,.95fr);gap:42px;align-items:start}
.product-main-image{aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden;border:1px solid #dfe5ea;border-radius:18px;background:#e9edf0}
.product-main-image img{width:100%;height:100%;object-fit:contain;display:block}
.product-main-image>span{color:#bcc5cf;font-weight:950}
.product-media-note{margin-top:10px;padding:12px 14px;border-radius:10px;background:#fff;border:1px solid #e2e7ec;color:#738196;font-size:10px}
.product-media-note span{margin-right:7px;color:var(--brand-primary);font-weight:950}
.product-detail-info{padding:16px 0}
.product-category{display:block;color:var(--brand-primary);font-size:9px;font-weight:950;letter-spacing:.12em;text-transform:uppercase}
.product-detail-info h1{max-width:680px;margin:8px 0 0;color:var(--brand-secondary);font-size:clamp(34px,4vw,58px);line-height:.98;letter-spacing:-.045em}
.product-short{max-width:650px;margin:16px 0 0;color:#65758a;font-size:13px;line-height:1.6}
.product-price{display:flex;align-items:center;gap:12px;margin:23px 0}
.product-price strong{color:var(--brand-secondary);font-size:28px;font-weight:950}
.product-price del{color:#97a2af;font-size:13px}
.product-price>span{padding:5px 8px;border-radius:999px;background:var(--brand-primary);color:#fff;font-size:8px;font-weight:950}
.product-cart-message{display:flex;justify-content:space-between;gap:12px;margin:0 0 18px;padding:11px 13px;border-radius:9px;font-size:10px;font-weight:800}
.product-cart-message.success{background:#e9f7ef;color:#18754f}
.product-cart-message.warning{background:#fff2df;color:#9d6315}
.product-cart-message a{color:inherit;text-decoration:underline}
.product-buy-form{display:grid;gap:20px}
.product-colors{margin:0;padding:0;border:0}
.product-colors legend,.product-extra>span,.product-qty>span{display:block;margin-bottom:10px;color:var(--brand-secondary);font-size:11px;font-weight:950}
.product-color-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.product-color-option{position:relative;display:flex;align-items:center;gap:8px;min-height:46px;padding:8px;border:1px solid #dce3e9;border-radius:10px;background:#fff;cursor:pointer}
.product-color-option input{position:absolute;opacity:0}
.product-color-swatch{width:28px;height:28px;flex:0 0 28px;border:1px solid rgba(0,0,0,.12);border-radius:8px}
.product-color-option b{min-width:0;color:#536277;font-size:9px;line-height:1.1}
.product-color-option:has(input:checked){border-color:var(--brand-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-primary) 13%,transparent)}
.product-extra small{display:block;margin:-5px 0 8px;color:#7e8a99;font-size:9px}
.product-extra textarea{width:100%;padding:11px;border:1px solid #dce3e9;border-radius:10px;background:#fff;resize:vertical;font:inherit}
.product-buy-actions{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px;align-items:end}
.product-qty select{width:100%;height:50px;border:1px solid #dce3e9;border-radius:10px;background:#fff;padding:0 10px}
.product-add-cart{height:50px;display:flex;align-items:center;justify-content:center;gap:13px;border:0;border-radius:10px;background:var(--brand-primary);color:#fff;font-size:11px;font-weight:950;cursor:pointer;box-shadow:0 8px 19px color-mix(in srgb,var(--brand-primary) 22%,transparent)}
.product-add-cart b{font-size:18px}
.product-quick-benefits{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}
.product-quick-benefits>div{padding:12px;border-top:1px solid #dfe5ea}
.product-quick-benefits strong{display:block;color:var(--brand-secondary);font-size:10px}
.product-quick-benefits span{display:block;margin-top:3px;color:#7b8999;font-size:9px}
.product-description{margin-top:50px;padding:35px;border-radius:16px;background:#fff;border:1px solid #e0e6eb}
.product-description>span{color:var(--brand-primary);font-size:9px;font-weight:950;letter-spacing:.12em}
.product-description h2{margin:6px 0 14px;color:var(--brand-secondary);font-size:25px}
.product-description>div{max-width:950px;color:#65758a;font-size:12px;line-height:1.75}

/* CARRITO */
.cart-page{max-width:1500px;margin:0 auto;padding:45px clamp(20px,4vw,70px) 70px}
.cart-page-head>span{color:var(--brand-primary);font-size:9px;font-weight:950;letter-spacing:.12em}
.cart-page-head h1{margin:5px 0;color:var(--brand-secondary);font-size:42px}
.cart-page-head p{margin:0;color:#7d8998;font-size:11px}
.cart-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;margin-top:28px}
.cart-items{display:grid;gap:9px}
.cart-item{display:grid;grid-template-columns:95px minmax(0,1fr) 70px 110px auto;gap:14px;align-items:center;padding:11px;border:1px solid #dfe5eb;border-radius:12px;background:#fff}
.cart-item-image{width:95px;aspect-ratio:1;display:grid;place-items:center;border-radius:9px;background:#edf0f3;overflow:hidden}
.cart-item-image img{width:100%;height:100%;object-fit:contain}
.cart-item-info h3{margin:0;color:var(--brand-secondary);font-size:12px}
.cart-item-info small{display:block;margin-top:3px;color:#84909f;font-size:9px}
.cart-item-info strong{display:block;margin-top:7px;color:var(--brand-secondary);font-size:11px}
.cart-qty-form select{height:38px;width:60px;border:1px solid #dce3e9;border-radius:8px;background:#fff}
.cart-line-total{color:var(--brand-secondary);font-size:12px;font-weight:950}
.cart-remove{border:0;background:none;color:#be5050;font-size:9px;font-weight:900;cursor:pointer}
.cart-summary{padding:22px;border-radius:14px;background:var(--brand-secondary);color:#fff;align-self:start}
.cart-summary>span{color:var(--brand-primary);font-size:9px;font-weight:950;letter-spacing:.12em}
.cart-summary>div{display:flex;justify-content:space-between;margin-top:14px;color:rgba(255,255,255,.75);font-size:10px}
.cart-summary .cart-total{padding-top:14px;border-top:1px solid rgba(255,255,255,.15);font-size:13px;color:#fff}
.cart-summary p{color:rgba(255,255,255,.58);font-size:9px}
.cart-summary button{width:100%;height:46px;margin-top:10px;border:0;border-radius:9px;background:#748093;color:#dce1e6;font-weight:950}
.cart-summary>small{display:block;margin-top:7px;text-align:center;color:rgba(255,255,255,.45);font-size:8px}
.cart-empty{margin-top:25px;padding:50px;border:1px solid #dfe5eb;border-radius:14px;background:#fff;text-align:center}
.cart-empty h2{color:var(--brand-secondary)}
.cart-empty a{display:inline-flex;margin-top:10px;padding:13px 18px;border-radius:9px;background:var(--brand-primary);color:#fff;font-size:10px;font-weight:950}

@media(max-width:900px){
 .product-detail{grid-template-columns:1fr;gap:20px}
 .product-detail-info{padding-top:0}
 .product-color-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .cart-layout{grid-template-columns:1fr}
}
@media(max-width:620px){
 .product-public-main{padding:20px 14px 45px}
 .product-detail-info h1{font-size:36px}
 .product-color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .product-buy-actions{grid-template-columns:85px minmax(0,1fr)}
 .product-quick-benefits{grid-template-columns:1fr}
 .product-description{margin-top:30px;padding:20px}
 .cart-page{padding:25px 14px 45px}
 .cart-item{grid-template-columns:70px minmax(0,1fr) 60px}
 .cart-item-image{width:70px}
 .cart-line-total{grid-column:2}
 .cart-item>form:last-child{grid-column:3}
}


/* =========================================================
   PRODUCTO v2 — VISOR SVG PÚBLICO
   ========================================================= */
.product-main-image.has-svg-viewer{
  position:relative;
  background:#e9edf0;
}

.product-svg-stage{
  position:absolute;
  inset:0;
  z-index:2;
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  overflow:hidden;
  opacity:0;
  transition:opacity .18s ease;
}

.product-svg-stage.ready{
  opacity:1;
}

.product-svg-stage svg{
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}

.product-svg-fallback{
  position:absolute;
  inset:0;
  z-index:1;
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  transition:opacity .18s ease;
}

.product-svg-fallback.hidden{
  opacity:0;
  pointer-events:none;
}

.product-svg-loading{
  position:absolute;
  left:50%;
  bottom:15px;
  z-index:3;
  transform:translateX(-50%);
  padding:6px 9px;
  border-radius:999px;
  background:rgba(11,31,58,.78);
  color:#fff;
  font-size:8px;
  font-weight:850;
  letter-spacing:.03em;
}

.product-svg-loading.hidden{
  display:none;
}

/* El color seleccionado se siente ligado al visualizador */
.product-color-option:has(input:checked){
  position:relative;
}

.product-color-option:has(input:checked)::after{
  content:'✓';
  position:absolute;
  top:4px;
  right:5px;
  width:16px;
  height:16px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--brand-primary,#ff6413);
  color:#fff;
  font-size:9px;
  font-weight:950;
}


/* =========================================================
   PRODUCTO PÚBLICO — NUEVO PRECIO COLOR ESPECIAL
   ========================================================= */
.public-color-label{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}

.public-color-label b{
  color:#536277;
  font-size:9px;
  line-height:1.1;
}

.public-color-label small{
  color:var(--brand-primary,#ff6413);
  font-size:7.5px;
  font-weight:950;
  line-height:1.15;
}

.product-price.special-price-active strong{
  color:var(--brand-primary,#ff6413);
}

.product-price.special-price-active::after{
  content:'PRECIO COLOR ESPECIAL';
  display:inline-flex;
  padding:4px 6px;
  border-radius:999px;
  background:color-mix(in srgb,var(--brand-primary,#ff6413) 10%,white);
  color:var(--brand-primary,#ff6413);
  font-size:7px;
  font-weight:950;
  letter-spacing:.06em;
}


/* =========================================================
   PRODUCTO PÚBLICO — PRECIO RANGO v4
   ========================================================= */

/* Colores especiales visualmente iguales a los normales */
.public-color-label{
  display:contents !important;
}

.public-color-label small{
  display:none !important;
}

/* No mostrar badge adicional al cambiar a precio especial */
.product-price.special-price-active::after{
  display:none !important;
  content:none !important;
}

.product-price.special-price-active strong{
  color:var(--brand-secondary,#0b1f3a) !important;
}


/* =========================================================
   PRODUCTO — CATEGORÍA H2 / BOTÓN DE RETORNO
   ========================================================= */
.product-detail-info .product-category{
  margin:0 0 10px !important;
  padding:0 !important;
  font-size:inherit !important;
  line-height:1 !important;
}

.product-detail-info .product-category a{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:30px;
  padding:0 10px;
  border:1px solid color-mix(in srgb,var(--brand-primary,#ff6413) 30%,#d9e1e8);
  border-radius:999px;
  background:color-mix(in srgb,var(--brand-primary,#ff6413) 7%,white);
  color:var(--brand-primary,#ff6413) !important;
  font-size:8.5px;
  line-height:1;
  font-weight:950;
  letter-spacing:.11em;
  text-transform:uppercase;
  text-decoration:none;
  transition:
    background .16s ease,
    color .16s ease,
    border-color .16s ease,
    transform .16s ease;
}

.product-detail-info .product-category a span{
  font-size:11px;
  transition:transform .16s ease;
}

@media (hover:hover) and (pointer:fine){
  .product-detail-info .product-category a:hover{
    background:var(--brand-primary,#ff6413);
    border-color:var(--brand-primary,#ff6413);
    color:#fff !important;
    transform:translateY(-1px);
  }

  .product-detail-info .product-category a:hover span{
    transform:translateX(-2px);
  }
}

.product-detail-info h1{
  margin-top:0 !important;
}

@media(max-width:620px){
  .product-detail-info .product-category{
    margin-bottom:8px !important;
  }

  .product-detail-info .product-category a{
    min-height:28px;
    padding:0 9px;
    font-size:8px;
  }
}


/* =========================================================
   PRODUCTO v4 — DETALLES MÁS INTEGRADOS
   ========================================================= */

/* Reduce el vacío entre la ficha principal y detalles */
.product-public-main{
  padding-bottom:48px !important;
}

.product-detail{
  margin-bottom:0 !important;
}

/* Sube visualmente la descripción */
.product-description{
  max-width:none !important;
  margin-top:18px !important;
  padding:26px 30px !important;
  border:1px solid #dfe5ea !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:0 5px 18px rgba(11,31,58,.035);
}

/* Barra superior para que parezca continuación de la ficha */
.product-description::before{
  content:'';
  display:block;
  width:54px;
  height:3px;
  margin-bottom:14px;
  border-radius:999px;
  background:var(--brand-primary,#ff6413);
}

.product-description>span{
  display:block !important;
  margin-bottom:5px !important;
  color:var(--brand-primary,#ff6413) !important;
  font-size:8.5px !important;
  font-weight:950 !important;
  letter-spacing:.12em !important;
}

.product-description h2{
  margin:0 0 12px !important;
  color:var(--brand-secondary,#0b1f3a) !important;
  font-size:22px !important;
  line-height:1.05 !important;
  letter-spacing:-.025em !important;
}

.product-description>div{
  max-width:980px !important;
  color:#65758a !important;
  font-size:11.5px !important;
  line-height:1.7 !important;
}

/* Une mejor visualmente la zona de compra con detalles */
.product-quick-benefits{
  margin-bottom:0 !important;
}

@media(max-width:900px){
  .product-description{
    margin-top:16px !important;
  }
}

@media(max-width:620px){
  .product-description{
    margin-top:14px !important;
    padding:20px !important;
    border-radius:12px !important;
  }

  .product-description h2{
    font-size:20px !important;
  }

  .product-description>div{
    font-size:11px !important;
  }
}


/* =========================================================
   PRODUCTO v5 — BLOQUE DE PRECIO
   ========================================================= */
.product-price-box{
  position:relative;
  display:flex !important;
  flex-direction:column;
  align-items:flex-start !important;
  gap:5px !important;
  margin:18px 0 16px !important;
  padding:15px 17px 16px !important;
  border:1px solid #dce3e9;
  border-left:4px solid var(--brand-primary,#ff6413);
  border-radius:11px;
  background:#fff;
  box-shadow:0 4px 14px rgba(11,31,58,.045);
}

.product-price-label{
  display:block;
  color:#7f8b99;
  font-size:8px;
  line-height:1;
  font-weight:950;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.product-price-box strong{
  display:block;
  color:var(--brand-secondary,#0b1f3a) !important;
  font-size:27px !important;
  line-height:1 !important;
  font-weight:950 !important;
  letter-spacing:-.035em;
}

.product-price-box.special-price-active strong{
  color:var(--brand-secondary,#0b1f3a) !important;
}

@media(max-width:620px){
  .product-price-box{
    padding:13px 14px 14px !important;
  }

  .product-price-box strong{
    font-size:24px !important;
  }
}


/* =========================================================
   PRODUCTO v6 — PRECIO FINAL
   ========================================================= */
.product-price-box{
  border-left:1px solid #dce3e9 !important;
  gap:0 !important;
  padding:16px 17px !important;
}

.product-price-label{
  display:none !important;
}


/* =========================================================
   PRODUCTO v7 — LEGIBILIDAD + DESCRIPCIÓN 30px MÁS ARRIBA
   ========================================================= */

/* Nota bajo la imagen */
.product-media-note{
  font-size:11.5px !important;
  line-height:1.45 !important;
}

.product-media-note span{
  font-size:9px !important;
}

/* Información adicional */
.product-extra>span{
  font-size:12px !important;
  margin-bottom:6px !important;
}

.product-extra small{
  font-size:10px !important;
  line-height:1.4 !important;
}

.product-extra textarea{
  font-size:13px !important;
  line-height:1.45 !important;
}

/* Cantidad */
.product-qty>span{
  font-size:11.5px !important;
}

.product-qty select{
  font-size:12px !important;
}

/* Beneficios bajo botón carrito */
.product-quick-benefits strong{
  font-size:11.5px !important;
  line-height:1.3 !important;
}

.product-quick-benefits span{
  margin-top:4px !important;
  font-size:10px !important;
  line-height:1.4 !important;
}

/* Descripción: 30px más arriba respecto a la versión actual */
.product-description{
  margin-top:-12px !important;
}

.product-description>span{
  font-size:9.5px !important;
}

.product-description h2{
  font-size:24px !important;
}

.product-description>div{
  font-size:12.5px !important;
  line-height:1.75 !important;
}

@media(max-width:620px){
  .product-media-note{
    font-size:11px !important;
  }

  .product-extra>span,
  .product-qty>span{
    font-size:11px !important;
  }

  .product-extra small,
  .product-quick-benefits span{
    font-size:9.5px !important;
  }

  .product-description{
    margin-top:-8px !important;
  }

  .product-description h2{
    font-size:22px !important;
  }

  .product-description>div{
    font-size:12px !important;
  }
}


/* =========================================================
   PRODUCTO v8 — TEXTO GUÍA COMO PLACEHOLDER
   ========================================================= */
.product-extra small{
  display:none !important;
}

.product-extra textarea::placeholder{
  color:#7b8794 !important;
  opacity:1 !important;
}


/* =========================================================
   VISOR PROTEGIDO — TRANSICIÓN ENTRE COLORES
   Mantener SIEMPRE al final del CSS completo.
   ========================================================= */
.product-svg-stage{
  position:relative !important;
  overflow:hidden;
}

.product-svg-stage .product-rendered-preview{
  max-width:100%;
}

/*
 * El JS actual administra opacity/position inline para evitar
 * que el visor pierda altura. No forzamos absolute desde CSS.
 */
.product-main-image.has-svg-viewer .product-svg-loading{
  z-index:3;
}

@media(prefers-reduced-motion:reduce){
  .product-svg-stage .product-rendered-preview{
    transition:none !important;
  }
}
