/* Covers Models: fichas de modelo, rejillas y filtros. Variables sobrescribibles desde el tema o Elementor. */
:root {
  --cmcpt-acento: #9c5b52;
  --cmcpt-texto: #1a1a1a;
  --cmcpt-suave: #faf8f6;
  --cmcpt-radio: 2px;
}

.cmcpt-ficha { max-width: 1100px; margin: 0 auto; color: var(--cmcpt-texto); }
.cmcpt-ficha__cabecera { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: start; margin-bottom: 32px; }
.cmcpt-ficha__principal img { width: 100%; height: auto; display: block; border-radius: var(--cmcpt-radio); }

.cmcpt-datos { width: 100%; border-collapse: collapse; font-size: 16px; }
.cmcpt-datos th, .cmcpt-datos td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #e5e0dc; }
.cmcpt-datos th { width: 40%; font-weight: 600; letter-spacing: .04em; text-transform: none; color: var(--cmcpt-acento); }

.cmcpt-galeria { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.cmcpt-galeria__item { display: block; overflow: hidden; border-radius: var(--cmcpt-radio); background: var(--cmcpt-suave); }
.cmcpt-galeria__item img { width: 100%; height: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; transition: transform .25s ease; }
.cmcpt-galeria__item:hover img { transform: scale(1.03); }

.cmcpt-rejilla { display: grid; grid-template-columns: repeat(var(--cmcpt-cols, 4), minmax(0, 1fr)); gap: 16px; }
.cmcpt-tarjeta, .cmcpt-tarjeta:hover, .cmcpt-tarjeta * { text-decoration: none !important; }
.cmcpt-tarjeta { position: relative; display: block; overflow: hidden; background: var(--cmcpt-suave); text-decoration: none; color: inherit; border-radius: var(--cmcpt-radio); }
.cmcpt-tarjeta img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; transition: transform .25s ease; }
.cmcpt-tarjeta:hover img { transform: scale(1.03); }
.cmcpt-tarjeta__nombre { display: block; padding: 10px 12px 2px; font-weight: 600; }
.cmcpt-tarjeta__dato { display: block; padding: 0 12px 10px; font-size: 14px; color: var(--cmcpt-acento); }
.cmcpt-gris img { filter: grayscale(1); transition: filter .25s ease, transform .25s ease; }
.cmcpt-gris .cmcpt-tarjeta:hover img { filter: none; }

.cmcpt-filtros { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.cmcpt-filtros button { border: 1px solid var(--cmcpt-acento); background: transparent; color: var(--cmcpt-acento); padding: 6px 14px; cursor: pointer; border-radius: var(--cmcpt-radio); }
.cmcpt-filtros button.is-activo, .cmcpt-filtros button:hover { background: var(--cmcpt-acento); color: #fff; }
.cmcpt-tarjeta.is-oculta { display: none; }

.cmcpt-zoom { position: fixed; inset: 0; z-index: 99999; background: rgba(0, 0, 0, .9); display: flex; align-items: center; justify-content: center; padding: 24px; }
.cmcpt-zoom img { max-width: 100%; max-height: 100%; object-fit: contain; }
.cmcpt-zoom button { position: absolute; top: 14px; right: 18px; font-size: 30px; line-height: 1; color: #fff; background: transparent; border: 0; cursor: pointer; }

@media (max-width: 860px) {
  .cmcpt-ficha__cabecera { grid-template-columns: 1fr; }
  .cmcpt-rejilla { grid-template-columns: repeat(min(var(--cmcpt-cols, 4), 3), minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .cmcpt-galeria { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cmcpt-rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
