/* ==================================================================
   COLD2HORSE — ficha de producto (plantilla común)
   La opción «Ficha», elegida para toda la gama. Añade sobre base.css:
   bloque de compra (galería + panel pegado), reel vertical, pestañas de
   detalle, tira de packaging, barra de compra al pie y rejilla del
   resto de la gama.

   La usan producto-cryoboots.html (CryoBoots) y producto-cryohock.html.
   ================================================================== */

/* ---------- migas ---------- */

.buyer { padding-block: clamp(6.5rem, 13vh, 9.5rem) clamp(3rem, 7vw, 5rem); }

.crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s--1);
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--dimmer);
  margin-bottom: clamp(1.75rem, 4vw, 3rem);
}

.crumbs a { text-decoration: none; transition: color 0.3s var(--ease); }
.crumbs a:hover { color: var(--ice); }
.crumbs span[aria-hidden] { color: var(--ice); }
.crumbs [aria-current] { color: var(--paper); }

/* ---------- rejilla de compra ---------- */

.buyer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}

@media (max-width: 980px) { .buyer__grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- galería ---------- */

.gal { position: sticky; top: 5.5rem; display: grid; gap: 0.75rem; }

@media (max-width: 980px) { .gal { position: static; } }

.gal__stage {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--ink-2);
  border: 1px solid var(--hair);
  overflow: clip;
}

.gal__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.55s var(--ease), visibility 0.55s;
}

.gal__slide.is-on { opacity: 1; visibility: visible; }

.gal__slide img { width: 100%; height: 100%; object-fit: cover; }

/* Las tomas de estudio llegan recortadas sobre blanco: el fondo se pinta
   con --paper, nunca con #fff, para que el recorte no delate un blanco
   distinto del de la marca. */
.gal__slide img[src$='.webp'] { background: var(--paper); }

.gal__badge {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  background: var(--ice);
  color: var(--ink);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s--1);
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  padding: 0.45rem 0.95rem;
}

.gal__thumbs {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.75rem;
}

.gal__thumb {
  position: relative;
  padding: 0;
  border: 1px solid var(--hair);
  background: var(--ink-2);
  aspect-ratio: 1 / 1;
  overflow: clip;
  cursor: pointer;
  transition: border-color 0.4s var(--ease);
}

.gal__thumb img { width: 100%; height: 100%; object-fit: cover; opacity: 0.55; transition: opacity 0.4s var(--ease); }
.gal__thumb:hover img { opacity: 0.85; }
.gal__thumb.is-on { border-color: var(--ice); }
.gal__thumb.is-on img { opacity: 1; }

/* ---------- panel de compra ---------- */

.buy { position: sticky; top: 5.5rem; }

@media (max-width: 980px) { .buy { position: static; } }

.buy__name {
  font-size: clamp(2.75rem, 1.2rem + 5.4vw, 6rem);
  margin-block: clamp(0.75rem, 2vw, 1.25rem) 0;
}

.buy__price {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.6rem);
  font-weight: 700;
  line-height: 1;
  color: var(--ice);
  margin: clamp(1rem, 2.5vw, 1.5rem) 0 0;
}

.buy__price span { font-size: 0.6em; margin-left: 0.15em; }

/* El español escribe «190,00 €» y el inglés «€190.00»: el símbolo cambia
   de lado y el hueco tiene que cambiar con él. Se resuelve por posición,
   no por idioma, así que no hay que declarar aquí ninguna lista de
   idiomas ni duplicar la hoja. */
.buy__price span:first-child { margin-left: 0; margin-right: 0.12em; }

.buy__lead { color: var(--dim); max-width: 52ch; margin: 1.1rem 0 0; }
.buy__lead strong { color: var(--paper); font-weight: 600; }

/* ---------- cifras ---------- */

.figs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--hair);
  border: 1px solid var(--hair);
  margin: clamp(1.75rem, 4vw, 2.5rem) 0 0;
}

.figs > div { background: var(--ink); padding: 0.9rem 0.85rem; }

.figs dt {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--dimmer);
}

.figs dd {
  margin: 0.35rem 0 0;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(1.15rem, 0.9rem + 0.8vw, 1.65rem);
  font-weight: 800;
  line-height: 1;
}

.figs dd i { font-style: normal; font-size: 0.55em; color: var(--ice); margin-left: 0.15em; }

@media (max-width: 520px) { .figs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- añadir al carrito ---------- */

.buy__cta { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: clamp(1.5rem, 3vw, 2rem); }

.qty { display: flex; border: 1px solid var(--hair); }

.qty button {
  width: 2.9rem;
  background: none;
  border: 0;
  color: var(--paper);
  font-size: 1.1rem;
  cursor: pointer;
  transition: background 0.3s var(--ease), color 0.3s var(--ease);
}

.qty button:hover { background: var(--ice); color: var(--ink); }

.qty input {
  width: 3rem;
  background: none;
  border: 0;
  border-inline: 1px solid var(--hair);
  color: var(--paper);
  font: inherit;
  font-variant-numeric: tabular-nums;
  text-align: center;
  -moz-appearance: textfield;
}

.qty input::-webkit-outer-spin-button,
.qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.buy__add { flex: 1 1 14rem; justify-content: center; }
.buy__add[data-done='true'] > span::after { content: ' ✳'; }

.buy__notes { list-style: none; margin: clamp(1.5rem, 3vw, 2rem) 0 0; padding: 0; display: grid; gap: 0.55rem; font-size: var(--s--1); color: var(--dim); }
.buy__notes li { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); gap: 0.6rem; }
.buy__notes li::before { content: '✳'; color: var(--ice); font-size: 0.85em; line-height: 1.7; }
.buy__notes b { color: var(--paper); font-weight: 600; }

/* ---------- sellos ---------- */

.marks {
  list-style: none;
  margin: clamp(1.75rem, 4vw, 2.5rem) 0 0;
  padding: clamp(1.25rem, 3vw, 1.75rem) 0 0;
  border-top: 1px solid var(--hair);
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1.5rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s--1);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--dim);
}

.marks li { display: flex; align-items: center; gap: 0.5rem; }
.marks img { width: 1.6rem; height: 1.6rem; object-fit: contain; }

/* ---------- reel ---------- */

.reel { background: oklch(0.1 0.008 240); padding-block: clamp(4rem, 10vw, 8rem); }

.reel__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

@media (max-width: 900px) { .reel__grid { grid-template-columns: minmax(0, 1fr); } }

.reel__marks { list-style: none; margin: clamp(2rem, 4vw, 3rem) 0 0; padding: 0; display: grid; gap: 0.7rem; max-width: 34rem; }

.reel__marks li {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: 1rem;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid var(--hair);
  color: var(--dim);
  font-size: var(--s--1);
  font-family: 'Barlow Condensed', sans-serif;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.reel__marks b { color: var(--ice); font-weight: 700; }

.reel__frame {
  position: relative;
  max-width: 26rem;
  margin-inline: auto;
  width: 100%;
}

.reel__video {
  width: 100%;
  aspect-ratio: 9 / 16;
  background: var(--ink-2);
  border: 1px solid var(--hair);
  object-fit: cover;
}

/* El botón cubre el vídeo hasta que se pulsa: así el navegador no descarga
   los 25 MB del reel al abrir la página (el <video> va con preload="none"). */
.reel__play {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  gap: 1rem;
  justify-items: center;
  background: color-mix(in oklch, var(--ink) 34%, transparent);
  border: 0;
  cursor: pointer;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s--1);
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--paper);
  transition: background 0.4s var(--ease), opacity 0.4s var(--ease);
}

.reel__play:hover { background: color-mix(in oklch, var(--ink) 12%, transparent); }
.reel__play[hidden] { display: none; }

.reel__tri {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 50%;
  background: var(--ice);
  display: grid;
  place-items: center;
  box-shadow: 0 0 0 0 color-mix(in oklch, var(--ice) 45%, transparent);
  transition: box-shadow 0.5s var(--ease);
}

.reel__tri::after {
  content: '';
  border-left: 1.15rem solid var(--ink);
  border-block: 0.72rem solid transparent;
  margin-left: 0.3rem;
}

.reel__play:hover .reel__tri { box-shadow: 0 0 0 12px color-mix(in oklch, var(--ice) 18%, transparent); }

.reel__frame figcaption { margin-top: 0.9rem; font-size: var(--s--1); color: var(--dimmer); text-align: center; }

/* ---------- pestañas ---------- */

.tabs__bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-bottom: 1px solid var(--hair);
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
}

.tabs__b {
  position: relative;
  background: none;
  border: 0;
  padding: 0.9rem clamp(0.85rem, 2vw, 1.6rem);
  margin-bottom: -1px;
  color: var(--dim);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s--1);
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color 0.35s var(--ease);
}

.tabs__b::after {
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 2px;
  background: var(--ice);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.45s var(--ease);
}

.tabs__b:hover { color: var(--paper); }
.tabs__b.is-on { color: var(--ice); }
.tabs__b.is-on::after { transform: scaleX(1); }

.tabs__panel { display: none; }
.tabs__panel.is-on { display: grid; }

#p-desc.is-on {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

@media (max-width: 900px) { #p-desc.is-on { grid-template-columns: minmax(0, 1fr); } }

.prose { max-width: 64ch; }
.prose p { margin: 0; color: var(--dim); }
.prose p + p, .prose ul + p { margin-top: 1.1rem; }
.prose strong { color: var(--paper); font-weight: 600; }
.prose--wide { max-width: 70ch; }

.prose__link a {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s--1);
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ice);
  text-decoration: none;
  display: inline-flex;
  gap: 0.5rem;
  transition: gap 0.4s var(--ease);
}

.prose__link a:hover { gap: 1rem; }

.prose__aside img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 1px solid var(--hair); }
.prose__aside figcaption { margin-top: 0.75rem; font-size: var(--s--1); color: var(--dimmer); }

.dots { list-style: none; margin: 1.1rem 0 0; padding: 0; display: grid; gap: 0.6rem; }
.dots li { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); gap: 0.6rem; color: var(--dim); }
.dots li::before { content: '✳'; color: var(--ice); font-size: 0.85em; line-height: 1.7; }

/* ---------- beneficios ---------- */

.bens { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--hair); max-width: 70rem; }

.bens li {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  gap: clamp(1rem, 3vw, 2.5rem);
  align-items: baseline;
  padding: clamp(1.1rem, 2.5vw, 1.75rem) 0;
  border-bottom: 1px solid var(--hair);
}

.bens b {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s-1);
  font-weight: 800;
  color: var(--ice);
}

.bens span {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(1.15rem, 0.9rem + 1.1vw, 1.9rem);
  font-weight: 700;
  line-height: 1.12;
  text-transform: uppercase;
}

@media (max-width: 620px) { .bens li { grid-template-columns: 3rem minmax(0, 1fr); } }

/* ---------- pasos ---------- */

.steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  gap: 1px;
  background: var(--hair);
  border: 1px solid var(--hair);
}

.steps li { background: var(--ink); padding: clamp(1.5rem, 3vw, 2.25rem); }

.steps__n {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s-2);
  font-weight: 800;
  line-height: 1;
  color: color-mix(in oklch, var(--ice) 40%, transparent);
}

.steps h3 {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s-1);
  font-weight: 800;
  text-transform: uppercase;
  margin: 0.75rem 0 0.6rem;
}

.steps p { margin: 0; color: var(--dim); font-size: 0.95em; }
.steps strong { color: var(--paper); font-weight: 600; }

.steps__foot { margin: 1.25rem 0 0; color: var(--dimmer); font-size: var(--s--1); }

/* ---------- especificaciones ---------- */

.spec { margin: 0; border-top: 1px solid var(--hair); max-width: 78rem; }

.spec > div {
  display: grid;
  grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr);
  gap: clamp(1rem, 3vw, 2.5rem);
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--hair);
}

.spec dt {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s--1);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--dimmer);
}

.spec dd { margin: 0; color: var(--paper); }

@media (max-width: 620px) { .spec > div { grid-template-columns: minmax(0, 1fr); gap: 0.3rem; } }

/* ---------- tira de packaging ---------- */

.box__strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
  gap: clamp(1rem, 2.5vw, 2rem);
}

.box__strip figure { overflow: clip; }

.box__strip img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border: 1px solid var(--hair);
  transition: transform 0.9s var(--ease);
}

.box__strip figure:hover img { transform: scale(1.03); }

.box__strip figcaption {
  margin-top: 0.75rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s--1);
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--dimmer);
}

/* ---------- resto de la gama ---------- */

.more__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: clamp(1rem, 2.5vw, 2rem); }

.pcard { text-decoration: none; display: block; }

.pcard__media {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: clip;
  background: var(--ink-2);
  border: 1px solid var(--hair);
  transition: border-color 0.4s var(--ease);
}

.pcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--ease); }
.pcard:hover .pcard__media { border-color: var(--ice); }
.pcard:hover .pcard__media img { transform: scale(1.04); }

.pcard__media span {
  position: absolute;
  left: 0;
  bottom: 0;
  background: var(--ink);
  color: var(--ice);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s--1);
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 0.4rem 0.8rem;
}

.pcard__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin-top: 0.9rem;
  font-family: 'Barlow Condensed', sans-serif;
  text-transform: uppercase;
}

.pcard__row b { font-size: var(--s-1); font-weight: 800; }
.pcard__row span { color: var(--ice); font-weight: 700; }
.pcard p { margin: 0.4rem 0 0; color: var(--dim); font-size: var(--s--1); }

/* ---------- barra de compra pegada ---------- */

.dock {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 70;
  background: color-mix(in oklch, var(--ink) 90%, transparent);
  backdrop-filter: blur(16px);
  border-top: 1px solid var(--hair);
  transform: translateY(101%);
  transition: transform 0.55s var(--ease);
}

.dock[data-show='true'] { transform: none; }

.dock__in { display: flex; align-items: center; gap: clamp(0.75rem, 2vw, 1.5rem); padding-block: 0.7rem; }

.dock__in > img { width: 3rem; height: 3rem; object-fit: cover; border: 1px solid var(--hair); background: var(--paper); }

.dock__id { display: grid; line-height: 1.2; }
.dock__id b { font-family: 'Barlow Condensed', sans-serif; font-size: var(--s-1); font-weight: 800; text-transform: uppercase; }
.dock__id span { font-size: 0.78rem; color: var(--dimmer); }

.dock__price {
  margin-left: auto;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: var(--s-1);
  font-weight: 700;
  color: var(--ice);
}

.dock__btn { padding-block: 0.7rem; }

@media (max-width: 620px) {
  .dock__in > img, .dock__id span { display: none; }
  .dock__btn { padding-inline: 1rem; }
}
