/* ==========================================================================
   V2 · la propuesta para Rocío (2-oct-2026)
   Sólo carga con ?vista=v2 (inc/portada-v2.php) y todo cuelga de body.rv-v2
   o de clases v2*: fuera de la propuesta este archivo ni existe.

   Plan de diseño (skill frontend-design):
   · Tokens del sitio vivo, sin inventar: negro, magenta, magenta oscuro,
     rubor (--magenta-luz), hueso. Playfair para titulares y precios, Jost
     para lo demás. La V2 convive con la tienda; no puede parecer otra marca.
   · Esquinas casi rectas (--radio, 2 px) como el resto del sitio. La primera
     pasada metió 12–14 px a todo y se veía de plantilla.
   · Lo memorable en DOS lugares y nada más: el bloque negro de paquetes y la
     fila de reels. Lo demás quieto.
   · Movimiento sólo donde lo pidieron (barra y cinta) o donde responde al dedo.
   ========================================================================== */

/* ---------- 1. Barra de arriba: desliza frase por frase, como Ollie ----------
   Medido en miollie.com.mx: la frase entra COMPLETA por la derecha (~0.5 s),
   se queda quieta ~4 s y sale por la izquierda mientras entra la siguiente.
   El @keyframes v2rot lo arma header.php según cuántas frases haya. */
.v2bar{position:relative;height:38px;overflow:hidden;background:var(--magenta);color:#fff}
.v2bar__msg{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  padding-inline:14px;margin:0;text-align:center;line-height:1.2;white-space:nowrap;
  font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  transform:translateX(100%);
  animation:v2rot calc(var(--n) * 4.6s) linear infinite both;
  animation-delay:calc(var(--i) * 4.6s);
}
@media(max-width:420px){.v2bar__msg{font-size:.69rem;letter-spacing:.08em;padding-inline:16px}}
/* Con «Reducir movimiento» se queda la primera frase, entera y quieta. */
@media(prefers-reduced-motion:reduce){
  .v2bar__msg{animation:none;opacity:0}
  .v2bar__msg:first-child{transform:none;opacity:1}
}

/* ---------- 2. Hero: texto a la izquierda, centrado en alto, más llamativo ---------- */
.rv-v2 .ed__cap{top:50%;bottom:auto;transform:translateY(-50%);max-width:min(660px,56vw)}
.rv-v2 .ed__kicker{color:#FF9ACB;margin-bottom:18px}
.rv-v2 .ed__t{font-size:clamp(2.6rem,5vw,4.6rem);line-height:1.02;letter-spacing:-.025em;margin-bottom:20px}
.rv-v2 .ed__p{color:#EFE8EB;font-size:clamp(1rem,1.25vw,1.12rem);max-width:38ch}
.rv-v2 .ed__btn--blanco{background:var(--magenta);border-color:var(--magenta);color:#fff}
.rv-v2 .ed__btn--blanco:hover{background:var(--magenta-osc);border-color:var(--magenta-osc)}
@media(max-width:860px){
  .rv-v2 .ed__track{height:clamp(520px,76vh,660px)}
  /* La cara se recorre a la derecha y el velo oscurece la izquierda, donde va el texto. */
  .rv-v2 .ed__slide:not(.ed__slide--limpia) img{object-position:68% 22%}
  .rv-v2 .ed__slide:not(.ed__slide--limpia)::after{
    background:
      linear-gradient(90deg,rgba(12,10,11,.9) 0%,rgba(12,10,11,.64) 52%,rgba(12,10,11,.2) 100%),
      linear-gradient(180deg,transparent 55%,rgba(12,10,11,.55) 100%);
  }
  .rv-v2 .ed__cap{top:47%;max-width:88%;padding-right:0}
  .rv-v2 .ed__t{font-size:clamp(2.2rem,9.4vw,3rem)}
  .rv-v2 .ed__p{max-width:30ch}
}

/* ---------- 3. Cinta rosa animada debajo del hero ---------- */
.v2cinta{background:var(--magenta);color:#fff;overflow:hidden;padding:16px 0;position:relative}
.v2cinta__pista{display:flex;width:max-content;animation:v2cinta 42s linear infinite}
.v2cinta:hover .v2cinta__pista{animation-play-state:paused}
.v2cinta__grupo{display:flex;flex-shrink:0}
.v2cinta__grupo span{
  display:inline-flex;align-items:center;gap:26px;padding-right:26px;white-space:nowrap;
  font-family:var(--serif);font-style:italic;font-size:1.18rem;letter-spacing:.01em;
}
.v2cinta__grupo span::after{content:"";width:6px;height:6px;background:#fff;transform:rotate(45deg);opacity:.8}
@keyframes v2cinta{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:600px){.v2cinta{padding:13px 0}.v2cinta__grupo span{font-size:1.02rem;gap:20px;padding-right:20px}}
@media(prefers-reduced-motion:reduce){
  .v2cinta{overflow-x:auto}
  .v2cinta__pista{animation:none}
  .v2cinta__grupo:nth-child(2){display:none}
}

/* ---------- 4. Líneas en mosaico compacto ---------- */
.rv-v2 .v2lineas{padding-block:clamp(48px,6vw,88px)}
.rv-v2 .v2lineas .sec-head{margin-bottom:clamp(24px,3vw,40px)}
.v2mosaico{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,1.2vw,16px)}
@media(max-width:860px){.v2mosaico{grid-template-columns:repeat(2,minmax(0,1fr))}}
.v2mosaico .prod{border-radius:var(--radio);overflow:hidden;background:#fff;isolation:isolate}
.v2mosaico .prod__img{aspect-ratio:1/1;background:#EFEBE8}
.v2mosaico .prod__info{
  position:absolute;left:0;right:0;bottom:0;padding:56px 14px 13px;
  /* QA 2-oct: sobre las fotos de fondo blanco el degradado de antes no alcanzaba. */
  background:linear-gradient(0deg,rgba(26,26,26,.9) 0,rgba(26,26,26,.6) 45%,transparent 100%);color:#fff;
}
.v2mosaico .prod__nom{text-shadow:0 1px 8px rgba(0,0,0,.35);color:#fff;font-size:clamp(1rem,1.5vw,1.22rem);margin:0;line-height:1.15}
.v2mosaico .prod__meta{color:rgba(255,255,255,.86);font-size:.72rem;letter-spacing:.05em;margin-top:3px;display:block}
.v2mosaico .prod:focus-visible{outline:2px solid var(--magenta);outline-offset:2px}

/* ---------- 5. Paquetes de mayoreo: el bloque fuerte de la página ---------- */
.rv-v2 .v2paq{background:var(--negro);color:#fff}
.rv-v2 .v2paq .sec-head .h2,.rv-v2 .v2paq .sec-head h2{color:#fff}
.rv-v2 .v2paq .sec-head p{color:#CFC7CA}
.rv-v2 .v2paq .eyebrow{color:#FF9ACB}
.rv-v2 .v2paq .paq__card{border:0;border-radius:var(--radio);overflow:hidden;background:#fff;color:var(--negro)}
.rv-v2 .v2paq .paq__card--top{box-shadow:inset 0 0 0 2px var(--magenta)}
.rv-v2 .v2paq .paq__precio b{color:var(--magenta);font-size:2.4rem}
.rv-v2 .v2paq .paq__unit{font-size:.92rem}
.rv-v2 .v2paq .small.mut{color:#BDB4B8}

/* ---------- 6. Carriles con flechas (paquetes en el cel, liquidación, videos) ---------- */
.v2carr{position:relative}
.v2carril{scrollbar-width:none}
.v2carril::-webkit-scrollbar{display:none}
.v2carr__btn{
  position:absolute;top:38%;z-index:5;width:46px;height:46px;border-radius:50%;
  display:grid;place-items:center;background:#fff;color:var(--negro);border:1px solid var(--gris-linea);
  box-shadow:0 6px 20px rgba(26,26,26,.14);cursor:pointer;transition:opacity .2s,background .2s,color .2s;
}
.v2carr__btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.v2carr__btn:hover{background:var(--magenta);border-color:var(--magenta);color:#fff}
.v2carr__btn:focus-visible{outline:2px solid var(--magenta);outline-offset:3px}
.v2carr__btn:disabled{opacity:0;pointer-events:none}
.v2carr__btn--ant{left:-26px}
.v2carr__btn--sig{right:-26px}
.v2carr--quieto .v2carr__btn{display:none}
@media(max-width:860px){.v2carr__btn{width:40px;height:40px}.v2carr__btn--ant{left:4px}.v2carr__btn--sig{right:4px}}

/* Paquetes: cuatro en fila en escritorio; en el cel, carril. */
@media(max-width:860px){
  .rv-v2 .v2paq .v2carril{
    display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:80%;
    overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;
    margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);
  }
  .rv-v2 .v2paq .v2carril>*{scroll-snap-align:start}
}

/* Liquidación: siempre carril, una tarjeta por flechazo. */
.rv-v2 .v2ult .v2carril{
  display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 3 * 22px) / 4);
  gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
}
.rv-v2 .v2ult .v2carril>*{scroll-snap-align:start;background:#fff;padding:10px 10px 14px;border-radius:var(--radio)}
@media(max-width:1000px){.rv-v2 .v2ult .v2carril{grid-auto-columns:calc((100% - 2 * 16px) / 3);gap:16px}}
@media(max-width:699px){.rv-v2 .v2ult .v2carril{grid-auto-columns:calc((100% - 12px) / 1.6);gap:12px}}

/* ---------- 7. Selección de la casa ----------
   Fuera el tono rosa de la primera pasada (Fer: «bien raro y feo»). Las fotos
   van como son; el fondo sólido llega cuando RV mande las fotos nuevas. */
.rv-v2 .v2sel .prod__img{background:#F2EFEC}

/* ---------- 8a. Instagram: la tarjeta del perfil de siempre, más viva ---------- */
.rv-v2 .v2ig{padding-block:clamp(56px,7vw,100px)}
.v2ig__top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:clamp(22px,3vw,36px)}
.v2ig__cab{display:flex;align-items:center;gap:16px}
.v2ig__logo{
  width:56px;height:56px;border-radius:16px;display:grid;place-items:center;flex-shrink:0;
  background:radial-gradient(circle at 30% 110%,#FDCB52 0%,#FD5949 38%,#D6249F 62%,#285AEB 100%);
}
.v2ig__logo svg{width:28px;height:28px;fill:#fff}
.v2ig__cab .h2{margin:0;line-height:1.1}
.v2ig__user{display:inline-block;margin-top:4px;color:var(--magenta);font-weight:600;font-size:.95rem}
.v2ig__perfil{
  display:flex;align-items:center;gap:18px;padding:14px 16px;background:#fff;
  border:1px solid var(--gris-linea);border-radius:var(--radio);flex-wrap:wrap;
}
.v2ig__ava{width:52px;height:52px;border-radius:50%;padding:2px;background:linear-gradient(45deg,#FDCB52,#FD5949,#D6249F,#285AEB);flex-shrink:0}
.v2ig__ava img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid #fff}
.v2ig__id{display:flex;flex-direction:column;line-height:1.25}
.v2ig__id b{display:flex;align-items:center;gap:5px;font-size:.95rem}
.v2ig__id span{font-size:.8rem;color:var(--gris)}
.v2ig__ok{width:15px;height:15px;fill:#3897F0}
.v2ig__num{display:flex;gap:18px}
.v2ig__num>span{display:flex;flex-direction:column;align-items:center;line-height:1.15}
.v2ig__num b{font-size:1.05rem}
.v2ig__num em{font-style:normal;font-size:.68rem;color:var(--gris)}
.v2ig__seguir{background:var(--magenta);color:#fff;font-size:.78rem;font-weight:600;padding:9px 20px;border-radius:var(--radio);transition:background .2s}
.v2ig__perfil:hover .v2ig__seguir{background:var(--magenta-osc)}
/* Mosaico: la primera foto en grande (2×2); al pasar el dedo la foto se acerca y sale el logo. */
.v2ig__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(6px,.9vw,12px)}
.v2ig__item{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;border-radius:var(--radio);background:var(--hueso)}
.v2ig__item:first-child{grid-column:span 2;grid-row:span 2}
.v2ig__item:nth-child(n+8){display:none} /* 1 grande (4 celdas) + 6 = 10 = 5×2 exacto */
.v2ig__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.22,.61,.36,1)}
.v2ig__hover{
  position:absolute;inset:0;display:grid;place-items:center;background:rgba(214,0,110,.38);
  opacity:0;transition:opacity .3s;
}
.v2ig__hover svg{width:34px;height:34px;fill:#fff;transform:scale(.8);transition:transform .35s}
.v2ig__item:hover img,.v2ig__item:focus-visible img{transform:scale(1.07)}
.v2ig__item:hover .v2ig__hover,.v2ig__item:focus-visible .v2ig__hover{opacity:1}
.v2ig__item:hover .v2ig__hover svg{transform:none}
@media(max-width:860px){
  .v2ig__top{align-items:stretch}
  .v2ig__perfil{width:100%;justify-content:space-between}
  .v2ig__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v2ig__item:nth-child(n+7){display:none} /* 1 grande + 5 = 9 = 3×3 exacto */
}
@media(max-width:420px){.v2ig__num{gap:12px}.v2ig__seguir{width:100%;text-align:center}}

/* ---------- 8b. Videos: «El resultado, en uso» ---------- */
.rv-v2 .v2vid{padding-block:clamp(56px,7vw,100px)}
.v2vid__fila{
  display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3 * 18px) / 4);gap:18px;
  overflow-x:auto;scroll-snap-type:x mandatory;
}
@media(max-width:1000px){.v2vid__fila{grid-auto-columns:calc((100% - 2 * 14px) / 2.6);gap:14px}}
@media(max-width:600px){.v2vid__fila{grid-auto-columns:68%;gap:12px}}
.v2vid__card{scroll-snap-align:start}
.v2vid__card a{display:block}
.v2vid__media{position:relative;display:block;aspect-ratio:9/16;overflow:hidden;border-radius:var(--radio);background:#1A1A1A}
.v2vid__media video,.v2vid__media img{width:100%;height:100%;object-fit:cover;display:block}
.v2vid__tag{
  position:absolute;top:12px;left:12px;background:rgba(255,255,255,.94);color:var(--negro);
  font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border-radius:var(--radio);
}
.v2vid__pie{display:flex;flex-direction:column;gap:4px;padding-top:12px}
.v2vid__nom{font-family:var(--serif);font-size:1.08rem;line-height:1.25}
.v2vid__compra{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-weight:600}
.v2vid__compra i{font-style:normal;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--magenta)}
.v2vid__card a:hover .v2vid__compra i{text-decoration:underline;text-underline-offset:3px}
.v2vid .v2carr__btn{top:42%}

/* ---------- 9. Notas para la revisión de Rocío ----------
   Primera versión: post-its amarillos con cinta. Fer: «están bien sarras».
   Ahora son notas de marca: tarjeta blanca, numerito fucsia, filete fucsia a
   la izquierda, nada chueco. Se leen como anotación de diseño, no de papelería. */
.postit-ancla{position:relative;height:0;z-index:50;max-width:var(--max);margin-inline:auto}
.postit{
  position:absolute;top:18px;right:18px;width:min(270px,64vw);
  background:rgba(255,255,255,.97);color:var(--negro);
  border-left:3px solid var(--magenta);border-radius:4px;
  padding:14px 16px 14px 16px;
  font-family:var(--sans);font-size:.78rem;line-height:1.5;letter-spacing:0;text-transform:none;text-align:left;
  box-shadow:0 18px 40px rgba(26,26,26,.18),0 2px 6px rgba(26,26,26,.08);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.postit-ancla--izq .postit{right:auto;left:18px}
.postit__n{
  display:inline-grid;place-items:center;width:22px;height:22px;margin-right:8px;vertical-align:-5px;
  border-radius:50%;background:var(--magenta);color:#fff;font-size:.7rem;font-weight:600;
}
.postit strong{
  display:inline;font-family:var(--serif);font-weight:400;font-size:1.02rem;line-height:1.25;color:var(--negro);
}
.postit span{display:block;margin-top:8px;color:#5A5355}
.postit b{font-weight:600;color:var(--negro)}
.postit::before{ /* etiqueta discreta arriba, en su renglón: no se encima con títulos largos */
  content:"Cambio";display:block;margin-bottom:8px;
  font-size:.56rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--magenta);
}
/* En el cel no flotan (tapaban lo que Rocío tiene que revisar): van en su
   propio renglón entre bloque y bloque, como una anotación al margen. */
@media(max-width:860px){
  .postit-ancla{height:auto;padding:12px 16px;background:var(--magenta-luz)}
  .postit,.postit-ancla--izq .postit{position:relative;top:auto;left:auto;right:auto;width:auto;box-shadow:none;background:#fff}
}

/* Botón flotante: ocultar notas y comparar con la versión actual. */
.v2ctl{
  position:fixed;left:50%;transform:translateX(-50%);bottom:16px;z-index:80;display:flex;gap:6px;align-items:center;
  background:rgba(26,26,26,.92);color:#fff;border-radius:30px;padding:6px;
  box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:.7rem;font-weight:600;letter-spacing:.06em;
}
.v2ctl input{position:absolute;opacity:0;pointer-events:none}
.v2ctl label,.v2ctl a{padding:8px 12px;border-radius:24px;cursor:pointer;color:#fff;white-space:nowrap}
.v2ctl label{background:var(--magenta)}
.v2ctl a{background:rgba(255,255,255,.12)}
.v2ctl__off{display:none}
.v2ctl input:not(:checked)+label .v2ctl__on{display:none}
.v2ctl input:not(:checked)+label .v2ctl__off{display:inline}
.v2ctl input:focus-visible+label{outline:2px solid #fff;outline-offset:2px}
body:has(#rv-notas:not(:checked)) .postit-ancla{display:none}

/* ---------- 10. Página Mayoreo ---------- */
.v2may-hero .display,.v2may-hero .lead{max-width:22ch}
.v2may-hero .lead{max-width:58ch}
.v2may-hero .display{text-wrap:balance}
.v2pasos{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,26px)}
@media(max-width:860px){.v2pasos{grid-template-columns:1fr}}
.v2pasos li{background:var(--hueso);border-radius:var(--radio);padding:22px 20px;display:flex;flex-direction:column;gap:6px}
.v2pasos b{width:36px;height:36px;border-radius:50%;background:var(--magenta);color:#fff;display:grid;place-items:center;font-size:1rem;margin-bottom:6px}
.v2pasos strong{font-family:var(--serif);font-size:1.25rem;font-weight:400}
.v2pasos span{color:var(--gris);font-size:.92rem;line-height:1.55}
.v2escaleras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,24px)}
@media(max-width:1000px){.v2escaleras{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.v2escaleras{grid-template-columns:1fr}}
.v2esc th,.v2esc td{white-space:nowrap}
.v2esc{background:#fff;border-radius:var(--radio);padding:22px;display:flex;flex-direction:column;border:1px solid var(--gris-linea)}
.v2esc header{margin-bottom:12px}
.v2esc h3{font-family:var(--serif);font-weight:400;font-size:1.4rem}
.v2esc header span{font-size:.72rem;color:var(--magenta);font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.v2esc table{width:100%;border-collapse:collapse;font-size:.9rem}
.v2esc th{text-align:left;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gris);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--gris-linea)}
.v2esc th:last-child,.v2esc td:last-child{text-align:right}
.v2esc td{padding:8px;border-bottom:1px solid var(--gris-linea)}
.v2esc__top td{background:var(--magenta-luz);color:var(--magenta-osc);font-weight:700}
.v2esc__ir{margin-top:auto;padding-top:14px;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--magenta)}
.v2dist{display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--magenta-luz);border-radius:var(--radio);padding:clamp(24px,4vw,44px)}
.v2dist>div:first-child{max-width:620px}
@media(max-width:600px){.v2ctl{font-size:.62rem;padding:4px;gap:4px}.v2ctl label,.v2ctl a{padding:7px 10px}}

/* ---------- 11. Ajustes del QA (2-oct, 3 revisores independientes) ---------- */
/* Botones a todo lo ancho en el cel: antes quedaban apilados con anchos distintos. */
@media(max-width:600px){
  .rv-v2 .ed__cta{flex-direction:column;align-items:stretch}
  .rv-v2 .ed__cta .ed__btn{width:100%}
  .rv-v2 .hero__cta{flex-direction:column;align-items:stretch}
  .rv-v2 .hero__cta .btn{width:100%;text-align:center}
}
/* Hero en el cel: velo más fuerte abajo, donde quedan párrafo y botones. */
@media(max-width:860px){
  .rv-v2 .ed__slide:not(.ed__slide--limpia)::after{
    background:
      linear-gradient(90deg,rgba(12,10,11,.88) 0%,rgba(12,10,11,.55) 55%,rgba(12,10,11,.15) 100%),
      linear-gradient(0deg,rgba(12,10,11,.82) 0%,rgba(12,10,11,.35) 45%,transparent 70%);
  }
}
/* Radios y colores fuera de marca que venían de piezas del sitio. */
.rv-v2 .paq__envio{border-radius:var(--radio);color:var(--negro);background:var(--magenta-luz);border-color:#F3C2DA}
.rv-v2 .promo{border-radius:var(--radio)}
.rv-v2 .promo__ico{border-radius:var(--radio)}
.rv-v2 .split__img .foto{border-radius:var(--radio) !important} /* el tema la trae en línea */
/* Nosotros: la línea de tiempo centrada bajo su título, con la columna del año fija. */
.rv-v2 .hito{grid-template-columns:120px 1fr}
@media(max-width:600px){.rv-v2 .hito{grid-template-columns:118px 1fr;gap:14px}.rv-v2 .hito b{font-size:1.3rem}}
/* El botón de notas no tapa el de WhatsApp ni lo último de la pantalla en el cel. */
@media(max-width:600px){.v2ctl{bottom:12px;left:12px;transform:none}}
/* Cuadrículas sin huérfanos (barrido de 22 anchos, 2-oct): con auto-fit dejaban
   una tarjeta sola abajo entre 700 y 1100 px. Columnas fijas que dividen exacto. */
.v2faq__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1179px){.v2faq__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.v2faq__grid{grid-template-columns:1fr}}
.v2cifras{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:860px){.v2cifras{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:700px) and (max-width:900px){.rv-v2 .v2sel .prods{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Flechas de liquidación arriba del botón «Ver opciones» (a 320 px se le encimaba). */
.rv-v2 .v2ult .v2carr__btn{top:24%}
/* Ligas de texto con área de toque de 40 px en el cel. */
.v2ig__user,.v2esc__ir{padding-block:10px}
.v2esc__ir{display:inline-block;padding-top:14px}
/* Paquetes en el cel: la flecha va a media FOTO, no a media tarjeta. La tarjeta
   mide 80% del carril y la foto es 4:3, así que su mitad cae en ~28vw. Con un
   porcentaje del carril caía sobre «BLÍSTER / Paquete 20 blísters» (QA 2-oct). */
@media(max-width:860px){.rv-v2 .v2paq .v2carr__btn{top:28vw;transform:translateY(-50%)}}
/* Re-QA 2-oct: flechas completamente fuera de la tarjeta donde el margen lo permite. */
/* La flecha vive en el margen lateral (--gutter) y nunca más allá: con un
   valor fijo de -56 px se salía 8 px de la pantalla a 1200-1280. */
@media(min-width:861px){
  /* El botón nunca es más ancho que el margen: entre 861 y 1199 el margen mide 34-48 px. */
  .v2carr__btn{width:min(42px,calc(var(--gutter) - 4px));height:min(42px,calc(var(--gutter) - 4px))}
  .v2carr__btn--ant{left:calc(-1 * var(--gutter) + 2px)}
  .v2carr__btn--sig{right:calc(-1 * var(--gutter) + 2px)}
}
/* Las dos notas del hero van juntas a la derecha: a la izquierda tapaban el «Desde 2014». */
@media(min-width:861px){.postit-ancla--der+.postit-ancla--der .postit{top:246px}}
/* Títulos de producto sin palabra huérfana («Cabello humano — 747 / S»). */
.rv-v2 .prod__nom,.rv-v2 .paq__nom,.rv-v2 .v2vid__nom{text-wrap:balance}

/* ==========================================================================
   12. Toque «shine» (Fer, 2-oct: «más detalle, más shine o girly, no tan seco»)
   Todo sale del mundo de RV, no de una plantilla:
   · el filete bajo cada título es una TIRA DE PESTAÑAS (cat eye hacia la orilla);
   · los fondos grises pasan a rubor, como polvo compacto;
   · el destello de la cinta y de los paquetes son puntitos de luz como el
     glitter de sus sombras líquidas, en dos lugares y nada más.
   ========================================================================== */
.rv-v2 .filete{
  width:96px;height:22px;margin:16px auto 0;background:url(../img/filete-pestana.svg) center/contain no-repeat;
}
.rv-v2 .v2paq .filete{filter:brightness(1.35) saturate(1.1)}
/* Rubor en vez del hueso grisáceo. Las fotos de producto (fondo blanco) van
   sobre blanco para que no se ensucien. */
.rv-v2 .sec--hueso{background:#FCF1F6}
.rv-v2 .sec--hueso .prod__img{background:#fff}
.rv-v2 .v2sel .prod__img{background:#fff}
/* Cinta con destellos que se mueven despacio en dos capas (se nota «vivo»). */
.v2cinta{isolation:isolate}
.v2cinta::before,.v2cinta::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:url(../img/destellos.webp) 0 0/360px auto repeat;opacity:.5;
  animation:v2brillo 26s linear infinite;
}
.v2cinta::after{background-size:250px auto;opacity:.32;animation-duration:38s;animation-direction:reverse}
@keyframes v2brillo{to{background-position:360px 180px}}
/* Paquetes: precio satinado y un destello que cruza la tarjeta al pasar el dedo.
   La tarjeta «Más pedido» lo hace sola cada pocos segundos: es la que se vende. */
.rv-v2 .v2paq .paq__precio b{
  background:linear-gradient(100deg,#B8005D 0%,#E2007A 38%,#FF6FB5 50%,#E2007A 62%,#B8005D 100%);
  background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
}
.rv-v2 .v2paq .paq__card{position:relative}
.rv-v2 .v2paq .paq__img{position:relative}
.rv-v2 .v2paq .paq__img::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);
  transform:translateX(-120%);
}
.rv-v2 .v2paq .paq__card:hover .paq__img::after{transition:transform .9s cubic-bezier(.22,.61,.36,1);transform:translateX(120%)}
.rv-v2 .v2paq .paq__card--top .paq__img::after{animation:v2destello 5.5s cubic-bezier(.22,.61,.36,1) 1.2s infinite}
@keyframes v2destello{0%{transform:translateX(-120%)}22%,100%{transform:translateX(120%)}}
/* Destellos muy tenues sobre el negro (14 %): textura, no feria. */
.rv-v2 .v2paq{position:relative;isolation:isolate}
.rv-v2 .v2paq::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:url(../img/destellos.webp) 0 0/420px auto repeat;opacity:.14;
}
/* La etiqueta del 50% con el mismo satinado del precio. */
.rv-v2 #ultimas-piezas .badge--mag,.rv-v2 #ultimas-piezas .badge{background:linear-gradient(100deg,#B8005D,#E2007A 55%,#FF4FA3)}
@media(prefers-reduced-motion:reduce){
  .v2cinta::before,.v2cinta::after,.rv-v2 .v2paq .paq__card--top .paq__img::after{animation:none}
}

/* ---------- 13. Hero: flechas para pasar de banner (lo mueve assets/js/v2.js) ---------- */
.v2hero__flechas{position:absolute;right:var(--gutter);bottom:clamp(30px,5vh,52px);z-index:6;display:flex;gap:10px}
.v2hero__btn{
  width:52px;height:52px;border-radius:50%;display:grid;place-items:center;cursor:pointer;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.55);color:#fff;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s,border-color .2s;
}
.v2hero__btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.v2hero__btn:hover{background:var(--magenta);border-color:var(--magenta)}
.v2hero__btn:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:860px){
  /* Arriba a la derecha: abajo chocaba con el botón flotante de WhatsApp. */
  .v2hero__flechas{top:16px;bottom:auto;right:14px}
  .v2hero__btn{width:46px;height:46px}
}

/* ---------- 14. Compra rápida en la tarjeta + aviso + barra de envío ---------- */
/* Con compra rápida, la tarjeta ya no necesita el «Ver opciones» encima de la foto. */
.rv-v2 .prod:has(.v2rapida) .prod__quick{display:none}
.v2rapida{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.v2rapida__cant{display:grid;grid-template-columns:40px 1fr 40px;border:1px solid var(--gris-linea);border-radius:var(--radio);background:#fff}
.v2rapida__cant button{height:40px;border:0;background:none;font-size:1.15rem;color:var(--negro);cursor:pointer}
.v2rapida__cant button:hover{color:var(--magenta)}
.v2rapida__cant input{
  width:100%;height:40px;border:0;border-inline:1px solid var(--gris-linea);text-align:center;
  font:600 .95rem var(--sans);color:var(--negro);-moz-appearance:textfield;appearance:textfield;
}
.v2rapida__cant input::-webkit-outer-spin-button,.v2rapida__cant input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.v2rapida__cant :focus-visible{outline:2px solid var(--magenta);outline-offset:-2px}
.v2rapida__ir{min-height:40px}
.v2rapida__ir:disabled{opacity:.75;cursor:default}

.v2aviso{position:fixed;left:50%;bottom:76px;z-index:90;width:min(420px,calc(100vw - 24px));transform:translate(-50%,16px);opacity:0;transition:opacity .25s,transform .25s}
.v2aviso[hidden]{display:none}
.v2aviso--on{opacity:1;transform:translate(-50%,0)}
.v2aviso__in{background:#fff;border-left:3px solid var(--magenta);border-radius:var(--radio);padding:16px 16px 14px;box-shadow:0 18px 44px rgba(26,26,26,.22)}
.v2aviso__t{font-family:var(--serif);font-size:1.05rem;margin:0 0 4px}
.v2aviso__meta{display:block;font-size:.84rem;color:var(--magenta-osc);font-weight:600}
.v2aviso__meta:empty{display:none}
.v2aviso__envio:empty{display:none}
.v2aviso__acc{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
@media(prefers-reduced-motion:reduce){.v2aviso{transition:none}}

.v2envio{padding:12px 16px 14px;background:var(--magenta-luz);border-bottom:1px solid #F3C2DA}
.v2aviso .v2envio{background:none;border:0;padding:10px 0 0}
.v2envio p{margin:0 0 8px;font-size:.86rem;color:var(--negro)}
.v2envio b{color:var(--magenta-osc)}
.v2envio__barra{display:block;height:6px;border-radius:3px;background:#fff;overflow:hidden}
.v2aviso .v2envio__barra{background:var(--magenta-luz)}
.v2envio__barra i{display:block;height:100%;background:linear-gradient(90deg,#B8005D,var(--magenta),#FF4FA3);border-radius:3px;transition:width .5s cubic-bezier(.22,.61,.36,1)}
.v2envio--listo b{color:var(--exito)}

/* ---------- 15. Tienda a todo lo ancho en escritorio (Fer, 2-oct) ----------
   Sólo el contenido de la tienda (#principal), no el encabezado. La retícula
   llena el ancho con columnas de ~210 px: 3 a 1100, 4 a 1440, 6 a 1920. El panel de
   filtros se queda de 260 px fijo a la izquierda. */
@media(min-width:1100px){
  .rv-v2.woocommerce-shop #principal .wrap,
  .rv-v2.tax-product_cat #principal .wrap,
  .rv-v2.woocommerce-shop .hdr>.wrap,
  .rv-v2.tax-product_cat .hdr>.wrap{max-width:none;padding-inline:clamp(28px,3vw,56px)} /* el encabezado acompaña: angosto sobre una retícula ancha se veía desfasado */
  .rv-v2.woocommerce-shop .cat-lay,
  .rv-v2.tax-product_cat .cat-lay{grid-template-columns:260px 1fr}
  .rv-v2.woocommerce-shop .cat-lay .prods,
  .rv-v2.tax-product_cat .cat-lay .prods{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
}

/* Tarjetas parejas: el botón «Agregar» siempre abajo, aunque el nombre o las
   medidas ocupen más renglones en la tarjeta de al lado. */
.rv-v2 .prod:has(.v2rapida){height:100%}
.rv-v2 .prod:has(.v2rapida) .prod__info{flex:1;display:flex;flex-direction:column}
.rv-v2 .v2rapida{margin-top:auto;padding-top:12px}

/* ---------- 16. Filtros de la tienda (QA en cel, 2-oct) ---------- */
/* El primer grupo quedaba pegado a la barra «Filtros»: el selector del tema
   (.fgrupo:first-of-type) nunca aplicaba porque el primer div es la barra. */
.rv-v2 .filtros__cab+.fgrupo{padding-top:18px}
/* Opción que llevaría a 0 productos: visible (se entiende que existe) pero apagada. */
.rv-v2 .fopt--cero{opacity:.38;cursor:not-allowed;pointer-events:none}
/* La rayita del banner activo se llena en 6 s: avisa que va a cambiar solo.
   Sigue a .rv-activo, la clase que pone carrusel.js según lo que SE VE. */
.rv-v2 .ed__indice label em{position:relative;overflow:hidden}
.rv-v2 .v2hero--auto .ed__indice label.rv-activo em{width:64px;height:3px;background:rgba(255,255,255,.35)}
.rv-v2 .v2hero--auto .ed__indice label.rv-activo em::after{
  content:"";position:absolute;inset:0;background:var(--magenta);transform-origin:left;animation:v2llena 6s linear both;
}
/* Más visible (Fer: «que se note que va avanzando»): la rayita activa crece y
   se llena de fucsia, y una línea fina cruza todo el pie del banner. */
.rv-v2 .ed__indice label em{transition:width .4s cubic-bezier(.22,.61,.36,1)}
.rv-v2 .ed.v2hero--auto::after{
  content:"";position:absolute;left:0;bottom:0;z-index:7;height:3px;width:100%;
  background:linear-gradient(90deg,#B8005D,var(--magenta),#FF4FA3);transform-origin:left;
  animation:v2llena 6s linear both;
}
@keyframes v2llena{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---------- 17. Filtros de escritorio con su propio scroll (Fer, 2-oct) ----------
   La columna va pegada (sticky) y medía más que la pantalla: lo de abajo no se
   alcanzaba hasta llegar al final de la página. Ahora cabe en la pantalla y se
   desplaza sola, con un desvanecido abajo que avisa que hay más. */
@media(min-width:901px){
  .rv-v2 .filtros{
    max-height:calc(100vh - 128px);overflow-y:auto;overscroll-behavior:contain;
    padding-right:10px;scrollbar-width:thin;scrollbar-color:#E2B8CC transparent;
    -webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 36px),transparent);
    padding-bottom:36px;
  }
}
/* En el cel el botón de notas se esconde al bajar y vuelve al subir (v2.js). */
.v2ctl{transition:transform .3s cubic-bezier(.22,.61,.36,1),opacity .3s}
.v2ctl--oculto{transform:translateY(150%);opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.v2ctl{transition:none}}
