/* =========================================================
   testimonios-video.css
   Tarjetas "02 · Transformaciones" con FOTO antes/después y
   apertura del testimonio en VIDEO (modal).
   Se carga después de components.css / glass.css / carousel.css.
   Modular y reversible: borra el <link> y vuelve al estado anterior.
   ========================================================= */

/* ---- Tarjeta clicable: todo el bloque abre el video ---- */
.transform--video {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.transform--video:focus-visible {
  outline: 2px solid var(--c-cyan);
  outline-offset: 3px;
}

/* ---- Marco de cada foto (sustituye al slot vacío .transform__ph) ---- */
.transform__img {
  position: relative;
  margin: 0;
  aspect-ratio: 3 / 4;
  border-radius: var(--r-md);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.30);          /* pozo oscuro de fondo mientras carga */
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.transform__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.transform--video:hover .transform__img img {
  transform: scale(1.04);                   /* zoom muy sutil al pasar el cursor */
}

/* Etiqueta "Antes" / "Después" sobre cada foto */
.transform__img figcaption {
  position: absolute;
  left: 8px;
  bottom: 8px;
  padding: 3px 9px;
  border-radius: 999px;
  font-family: var(--font-head);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  background: rgba(6, 12, 34, 0.55);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.14);
}

/* ---- Pie: nombre + llamada a "Ver testimonio" ---- */
.transform__caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  flex-wrap: wrap;
}
.transform__name {
  font-family: var(--font-head);
  font-weight: 600;
  color: #fff;
  font-size: var(--fs-base);
}
.transform__play {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--c-cyan);
  white-space: nowrap;
}
.transform__play-icon {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--grad-accent, var(--c-cyan));
  color: #fff;
  font-size: 0.6rem;
  padding-left: 1px;
  box-shadow: 0 0 14px rgba(25, 212, 255, 0.35);
}

/* =========================================================
   MODAL de video
   ========================================================= */
html.vmodal-open { overflow: hidden; }   /* bloquea el scroll del fondo */

.vmodal[hidden] { display: none; }
.vmodal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 48px);
  opacity: 0;
  transition: opacity 0.25s ease;
}
.vmodal.is-open { opacity: 1; }

.vmodal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(3, 6, 16, 0.82);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.vmodal__dialog {
  position: relative;
  z-index: 1;
  width: min(1000px, 100%);
  max-height: 90vh;
  border-radius: 18px;
  overflow: hidden;
  background: #000;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 40px 100px rgba(0, 0, 0, 0.6);
  transform: scale(0.96);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.vmodal.is-open .vmodal__dialog { transform: scale(1); }

.vmodal__player { display: block; }
.vmodal__player video {
  display: block;
  width: 100%;
  max-height: 90vh;
  background: #000;
}

.vmodal__close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  color: #fff;
  background: rgba(6, 12, 34, 0.6);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  transition: background 0.2s, transform 0.2s;
}
.vmodal__close:hover { background: rgba(6, 12, 34, 0.9); transform: scale(1.06); }
.vmodal__close:focus-visible { outline: 2px solid var(--c-cyan); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  .vmodal,
  .vmodal__dialog,
  .transform__img img { transition: none; }
  .vmodal__dialog { transform: none; }
  .transform--video:hover .transform__img img { transform: none; }
}
