/* Bloques provisionales: se reemplazan con el rediseño (#50). */
.cgp-block { padding: 32px 0; }
.cgp-block.ce-products-section { padding: 3rem 0; }
.cgp-block[hidden] {
  display: block !important;
  visibility: hidden !important;
  height: 1px !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
.cgp-block:not([hidden]) {
  content-visibility: auto;
  contain-intrinsic-size: 1px 340px;
}
.cgp-wrap { max-width: 1300px; margin: 0 auto; padding: 0 16px; box-sizing: border-box; }
.cgp-title { font-size: 24px; font-weight: 700; margin: 0 0 16px; }

ul.cgp-track {
  display: flex;
  gap: 16px;
  margin: 0;
  padding: 8px 4px 16px;
  list-style: none;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
ul.cgp-track > li.prod-inn,
ul.cgp-track > li.cgp-card {
  flex: 0 0 220px;
  max-width: 220px;
  margin: 0 !important;
  padding: 16px;
  scroll-snap-align: start;
  box-sizing: border-box;
}
ul.cgp-track .img-prod img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
ul.cgp-track .product-title {
  font-size: 14px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
ul.cgp-track .price { font-size: 16px; margin: 6px 0 10px; }
ul.cgp-track .button { margin-top: auto; }

@media (max-width: 600px) {
  .cgp-title { font-size: 20px; }
  ul.cgp-track > li.prod-inn,
  ul.cgp-track > li.cgp-card { flex-basis: 46vw; max-width: 46vw; padding: 12px; }
}

/* Combo "Frecuentemente comprados juntos" (#41) */
.cgp-block[data-cg-reco="comprados-juntos"] { clear: both; padding: 24px 0; }
.cgp-combo { border: 1px solid #e5e5e5; border-radius: 12px; padding: 20px; background: #fff; }
/* A lo ancho (debajo de la ficha): fotos, lista y total en una fila. */
@media (min-width: 900px) {
  .cgp-combo { display: grid; grid-template-columns: minmax(0, auto) minmax(0, 1fr) auto; gap: 28px; align-items: center; }
  .cgp-combo-imgs, .cgp-combo-list { margin-bottom: 0; }
  .cgp-combo-buy { flex-direction: column; align-items: flex-start; gap: 10px; }
}
.cgp-combo-imgs { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.cgp-combo-img { display: block; flex: 1 1 0; min-width: 0; max-width: 120px; transition: opacity .2s; }
.cgp-combo-img img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.cgp-combo-img.is-off { opacity: .3; }
.cgp-combo-plus { flex: none; font-size: 28px; font-weight: 300; color: #888; }
.cgp-combo-list { list-style: none; margin: 0 0 16px; padding: 0; }
.cgp-combo-list li { margin: 6px 0; }
.cgp-combo-list label { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; cursor: pointer; }
.cgp-combo-list a { color: inherit; }
.cgp-combo-price { font-weight: 600; }
.cgp-combo-buy { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.cgp-combo-total { font-size: 18px; }
/* Mismo botón que "Añadir al carrito" de la ficha (el rediseño puede reemplazarlo). */
.cgp-combo .button[data-cgp-combo-add] { background: #fee406; color: #0c0c0c; border-radius: 13px; font-weight: 600; padding: 12px 20px; border: 0; }
.cgp-combo .button[data-cgp-combo-add]:hover { filter: brightness(.95); }
.cgp-combo .button[data-cgp-combo-add]:disabled { opacity: .5; cursor: default; }
.cgp-combo-msg a { text-decoration: underline; }

@media (max-width: 600px) {
  .cgp-combo { padding: 14px; }
  .cgp-combo-imgs { gap: 6px; }
  .cgp-combo-plus { font-size: 20px; }
  .cgp-combo-buy .button { width: 100%; }
}

/* «Compatible con tu equipo» (#43) */
.cgp-compat { margin: 14px 0; padding: 12px 14px; border: 1px solid #e6e6e6; border-radius: 12px; background: #fff; font-size: 14px; }
.cgp-compat[hidden], .cgp-compat [hidden] { display: none !important; }
.cgp-compat__estado { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 0; font-weight: 600; }
.cgp-compat__estado.is-si span { color: #1d6b34; }
.cgp-compat__estado.is-no span { color: #a3361b; }
.cgp-compat__estado a { font-weight: 600; text-decoration: underline; }
.cgp-compat__estado button { margin-left: auto; padding: 0; border: 0; background: none; color: #555; font-size: 13px; text-decoration: underline; cursor: pointer; }
.cgp-compat__form label { display: block; margin-bottom: 6px; font-weight: 600; }
.cgp-compat__fila { display: flex; gap: 8px; }
.cgp-compat__fila input { flex: 1; min-width: 0; padding: 8px 12px; border: 1px solid #d9d9d9; border-radius: 999px; }
.cgp-compat__fila button { padding: 8px 16px; border: 0; border-radius: 999px; background: #111; color: #fff; cursor: pointer; }
.cgp-compat-badge { display: inline-block; margin: 4px 0; padding: 2px 8px; border-radius: 999px; background: #e8f6ec; color: #1d6b34; font-size: 12px; font-weight: 600; }
