/* ============================================================
   REGALOS 365 · EXTRAS
   1) Revista de lentes (overlay tipo revista)
   2) Sección "Síguenos" antes del footer
   3) Productos similares (página de producto)
   DigitalForce · d-force.cl
   ============================================================ */

/* ============================================================
   1) REVISTA DE LENTES
   ============================================================ */
.rv{
  --paper:#F4EFE6; --paper2:#EAE3D6; --ink:#141210; --ink2:#5B554C;
  --red:#C0142A; --red-d:#7E0A18; --lime:#CCFF00; --line:rgba(20,18,16,.14);
  --top:56px;
  position:fixed; inset:0; z-index:100000;
  background:#0D0C0B; color:var(--ink);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  opacity:0; visibility:hidden;
  transition:opacity .35s ease, visibility 0s linear .35s;
  -webkit-tap-highlight-color:transparent;
}
.rv.is-open{ opacity:1; visibility:visible; transition:opacity .35s ease; }
html.rv-lock, html.rv-lock body{ overflow:hidden !important; }
.rv *{ box-sizing:border-box; }

/* ---------- barra superior ---------- */
.rv-top{
  position:absolute; left:0; right:0; top:0; height:var(--top); z-index:60;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:0 18px; color:#F4EFE6;
  background:linear-gradient(#0D0C0B 70%, rgba(13,12,11,0));
}
.rv-brand{ display:flex; align-items:baseline; gap:10px; min-width:0; }
.rv-brand b{ font-family:'Anton','Outfit',Impact,sans-serif; font-weight:400; font-size:24px; letter-spacing:.02em; }
.rv-brand b i{ font-style:normal; color:var(--lime); }
.rv-brand span{ font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; opacity:.7; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rv-count{ font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:12px; letter-spacing:.08em; opacity:.85; white-space:nowrap; }
.rv-count b{ color:var(--lime); font-weight:600; }
.rv-close{
  width:40px; height:40px; border-radius:50%; flex:0 0 auto; cursor:pointer;
  border:1px solid rgba(244,239,230,.25); background:rgba(244,239,230,.06); color:#F4EFE6;
  display:grid; place-items:center; transition:background .2s, transform .2s;
}
.rv-close:hover{ background:var(--lime); color:#000; transform:rotate(90deg); }
.rv-close svg{ width:18px; height:18px; }
.rv-progress{ position:absolute; left:0; right:0; top:var(--top); height:2px; background:rgba(244,239,230,.12); z-index:60; }
.rv-progress i{ display:block; height:100%; width:0; background:var(--lime); transition:width .45s cubic-bezier(.2,.8,.2,1); }

/* ---------- contenedor con scroll ---------- */
.rv-scroll{
  position:absolute; inset:0; overflow-y:auto; overflow-x:hidden;
  -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
  padding-top:calc(var(--top) + 2px);
}

/* ---------- escenario / libro ---------- */
.rv-stage{
  position:relative; height:calc(100vh - var(--top) - 2px); height:calc(100svh - var(--top) - 2px);
  min-height:520px; display:flex; align-items:center; justify-content:center;
  padding:14px 76px 34px; overflow:hidden; touch-action:pan-y; user-select:none; -webkit-user-select:none;
}
.rv-book{
  position:relative; width:min(1180px,100%); height:min(100%,740px);
  perspective:2200px;
}
.rv-page{
  position:absolute; inset:0; transform-style:preserve-3d;
  transition:transform .6s cubic-bezier(.22,.8,.25,1), opacity .45s ease;
  will-change:transform;
}
.rv-face, .rv-back{
  position:absolute; inset:0; overflow:hidden; border-radius:6px;
  -webkit-backface-visibility:hidden; backface-visibility:hidden;
}
.rv-face{
  background:var(--paper); display:grid; grid-template-columns:1.12fr 1fr;
  box-shadow:0 30px 80px rgba(0,0,0,.55), 0 2px 0 rgba(255,255,255,.06) inset;
}
/* sombra del lomo (centro de la revista abierta) */
.rv-face::after{
  content:""; position:absolute; top:0; bottom:0; left:52.8%; width:70px; transform:translateX(-50%);
  background:linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.10) 42%, rgba(0,0,0,.22) 50%, rgba(255,255,255,.18) 53%, rgba(0,0,0,0) 100%);
  pointer-events:none; z-index:3;
}
.rv-back{
  transform:rotateY(180deg);
  background:linear-gradient(90deg,#E6DED0,#F4EFE6 60%,#EDE6DA);
}
.rv-back::before{
  content:"R365"; position:absolute; inset:0; display:grid; place-items:center;
  font-family:'Anton','Outfit',Impact,sans-serif; font-size:22vw; color:rgba(20,18,16,.05); transform:scaleX(-1);
}
.rv-shade{ position:absolute; inset:0; pointer-events:none; border-radius:6px; background:#000; opacity:0; z-index:5; }
.rv-gloss{ position:absolute; inset:0; pointer-events:none; z-index:6; opacity:0;
  background:linear-gradient(90deg, rgba(255,255,255,0) 40%, rgba(255,255,255,.35) 75%, rgba(0,0,0,.18) 100%); }

/* ---------- media (foto) ---------- */
.rv-media{ position:relative; overflow:hidden; background:var(--paper2); display:grid; place-items:center; }
.rv-bgimg{ position:absolute; inset:-40px; width:calc(100% + 80px); height:calc(100% + 80px); object-fit:cover; filter:blur(28px) saturate(1.15); opacity:.55; transform:scale(1.05); }
.rv-img{
  position:relative; z-index:1; width:100%; height:100%; object-fit:contain; padding:26px;
  filter:drop-shadow(0 22px 30px rgba(0,0,0,.28)); opacity:0; transition:opacity .5s ease;
}
.rv-img.is-loaded{ opacity:1; }
.rv-folio{
  position:absolute; z-index:2; left:18px; top:14px; font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink);
  background:rgba(244,239,230,.82); padding:5px 9px; border-radius:3px;
}
.rv-off{
  position:absolute; z-index:2; right:16px; top:12px; width:68px; height:68px; border-radius:50%;
  background:var(--red); color:#fff; display:grid; place-items:center; text-align:center; line-height:1;
  font-family:'Anton','Outfit',Impact,sans-serif; font-size:21px; transform:rotate(-10deg);
  box-shadow:0 8px 20px rgba(192,20,42,.4);
}
.rv-off small{ display:block; font-family:'IBM Plex Mono',monospace; font-size:8px; letter-spacing:.14em; margin-top:2px; }
.rv-bignum{
  position:absolute; z-index:0; right:-8px; bottom:-40px; font-family:'Anton','Outfit',Impact,sans-serif;
  font-size:240px; line-height:1; color:rgba(20,18,16,.06); pointer-events:none;
}

/* ---------- texto editorial ---------- */
.rv-copy{
  position:relative; display:flex; flex-direction:column; justify-content:center;
  padding:40px 46px 36px 56px; min-width:0;
}
.rv-kick{
  margin:0 0 12px; font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:11px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--red); display:flex; align-items:center; gap:10px;
}
.rv-kick::before{ content:""; width:28px; height:2px; background:var(--red); }
.rv-name{
  margin:0; font-family:'Anton','Outfit',Impact,sans-serif; font-weight:400; text-transform:uppercase;
  font-size:clamp(44px,5.6vw,88px); line-height:.92; letter-spacing:-.005em; color:var(--ink);
  overflow-wrap:anywhere;
}
.rv-deck{
  margin:16px 0 14px; font-family:'Playfair Display',Georgia,'Times New Roman',serif; font-style:italic;
  font-size:clamp(17px,1.6vw,22px); line-height:1.35; color:var(--ink2); max-width:32ch;
}
.rv-rate{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink2); margin-bottom:16px; }
.rv-rate b{ color:#E5A000; letter-spacing:1px; font-size:15px; }
.rv-feats{ list-style:none; margin:0 0 18px; padding:0; border-top:1px solid var(--line); }
.rv-feats li{ display:flex; gap:12px; align-items:baseline; padding:8px 0; border-bottom:1px solid var(--line); font-size:13.5px; color:var(--ink); }
.rv-feats li b{ font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--red); letter-spacing:.1em; }
.rv-price{ display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 12px; margin-bottom:6px; }
.rv-price strong{ font-family:'Anton','Outfit',Impact,sans-serif; font-weight:400; font-size:clamp(38px,3.6vw,52px); line-height:1; color:var(--ink); }
.rv-price s{ font-size:16px; color:var(--ink2); }
.rv-price em{ font-style:normal; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600; background:var(--lime); color:#000; padding:3px 7px; border-radius:3px; }
.rv-stock{ margin:0 0 18px; font-size:12.5px; color:#1F7A3A; font-weight:600; }
.rv-stock.low{ color:var(--red); }
.rv-stock.out{ color:var(--ink2); }
.rv-actions{ display:grid; grid-template-columns:1fr auto; gap:10px; }
.rv-buy, .rv-wa, .rv-more{
  display:flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; border-radius:999px;
  font-weight:800; font-size:15px; min-height:52px; padding:0 22px; transition:transform .15s ease, background .2s, box-shadow .2s;
}
.rv-buy{ background:var(--ink); color:#fff; box-shadow:0 10px 24px rgba(20,18,16,.25); }
.rv-buy:hover{ background:var(--red); transform:translateY(-2px); }
.rv-buy.is-off{ background:#9C968C; pointer-events:none; box-shadow:none; }
.rv-wa{ background:#25D366; color:#fff; width:52px; padding:0; }
.rv-wa svg{ width:22px; height:22px; fill:#fff; }
.rv-wa:hover{ transform:translateY(-2px); }
.rv-more{ grid-column:1 / -1; min-height:40px; font-size:13px; font-weight:700; color:var(--ink); border:1px solid var(--line); }
.rv-more:hover{ border-color:var(--ink); }
.rv-buy:active, .rv-wa:active, .rv-more:active{ transform:scale(.97); }
.rv-buy{ border:0; cursor:pointer; font-family:inherit; }
.rv-buy svg{ width:20px; height:20px; flex:0 0 auto; }
.rv-add.is-added{ background:#1F7A3A !important; }
.rv-add.is-added span{ font-size:0; }
.rv-add.is-added span::after{ content:"¡Añadido! ✓"; font-size:15px; }

/* Fotos con fondo (joyas en estuche, etc.): llenan el recuadro sin márgenes ni sombra flotante */
.rv-media.is-photo{ background:#1a1714; }
.rv-media.is-photo .rv-img{ object-fit:cover; padding:0; filter:none; }
.rv-media.is-photo .rv-bgimg, .rv-media.is-photo .rv-bignum{ display:none; }
.rv-media.is-photo .rv-folio{ background:rgba(244,239,230,.92); }

/* ---------- portada ---------- */
.rv-cover .rv-face{ grid-template-columns:1fr; background:radial-gradient(120% 90% at 50% 10%, #C8142B 0%, #A80F1E 45%, #5E040E 100%); color:#fff; }
.rv-cover .rv-face::after{ display:none; }
.rv-cv{ position:relative; display:flex; flex-direction:column; justify-content:space-between; padding:28px 34px; overflow:hidden; }
.rv-cv-head{ display:flex; justify-content:space-between; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.2em; text-transform:uppercase; position:relative; z-index:2; }
.rv-cv-title{ position:relative; z-index:2; font-family:'Anton','Outfit',Impact,sans-serif; text-transform:uppercase; line-height:.84; margin:0; }
.rv-cv-title span{ display:block; font-size:clamp(76px,13vw,190px); line-height:.92; letter-spacing:0; }
.rv-cv-title em{ display:block; font-style:normal; font-size:clamp(20px,2.4vw,34px); color:var(--lime); letter-spacing:.06em; margin-bottom:6px; }
.rv-cv-img{ position:absolute; z-index:1; right:-2%; top:50%; width:min(62%,640px); transform:translateY(-46%) rotate(-8deg); filter:drop-shadow(0 30px 40px rgba(0,0,0,.45)); pointer-events:none; }
.rv-cv-foot{ position:relative; z-index:2; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:14px; }
.rv-cv-foot p{ margin:0; font-family:'Playfair Display',Georgia,serif; font-style:italic; font-size:clamp(17px,1.8vw,24px); max-width:28ch; line-height:1.3; }
.rv-cv-go{ display:inline-flex; align-items:center; gap:10px; background:var(--lime); color:#000; border:0; border-radius:999px; padding:14px 22px; font-weight:800; font-size:14px; cursor:pointer; font-family:inherit; }
.rv-cv-go svg{ width:18px; height:18px; animation:rvNudge 1.3s ease-in-out infinite; }
.rv-cv-bar{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; opacity:.85; }
@keyframes rvNudge{ 0%,100%{ transform:translateX(0) } 50%{ transform:translateX(6px) } }

/* ---------- flechas ---------- */
.rv-arrow{
  position:absolute; top:50%; z-index:50; width:56px; height:56px; margin-top:-28px; border-radius:50%;
  border:1px solid rgba(244,239,230,.28); background:rgba(244,239,230,.08); color:#F4EFE6; cursor:pointer;
  display:grid; place-items:center; transition:background .2s, color .2s, transform .2s, opacity .2s;
}
.rv-arrow svg{ width:24px; height:24px; }
.rv-arrow.prev{ left:12px; } .rv-arrow.next{ right:12px; }
.rv-arrow:hover{ background:var(--lime); color:#000; transform:scale(1.07); }
.rv-arrow[disabled]{ opacity:.18; pointer-events:none; }
.rv-hint{
  position:absolute; left:50%; bottom:8px; transform:translateX(-50%); z-index:40;
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(244,239,230,.62); white-space:nowrap; display:flex; gap:10px; align-items:center;
}
.rv-hint kbd{ font-family:inherit; border:1px solid rgba(244,239,230,.3); border-radius:4px; padding:1px 6px; }

/* ---------- listado debajo ---------- */
.rv-list{ background:#F6F3EE; padding:46px 20px 90px; border-top:3px solid var(--lime); }
.rv-list-head{ max-width:1200px; margin:0 auto 26px; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:10px; }
.rv-list-head h3{ margin:0; font-family:'Anton','Outfit',Impact,sans-serif; font-weight:400; text-transform:uppercase; font-size:clamp(34px,5vw,56px); line-height:.95; color:var(--ink); }
.rv-list-head p{ margin:0; font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink2); }
.rv-grid{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.rv-grid .product-card{ opacity:1 !important; transform:none !important; }
.rv-back-top{ display:flex; margin:30px auto 0; align-items:center; gap:8px; background:var(--ink); color:#fff; border:0; border-radius:999px; padding:13px 22px; font-weight:800; font-size:14px; cursor:pointer; font-family:inherit; }

@media (max-width:1100px){ .rv-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* ----- Tablet / móvil: una página por pantalla, efecto pasar página ----- */
@media (max-width:820px){
  .rv{ --top:52px; }
  .rv-brand span{ display:none; }
  .rv-stage{ padding:8px 10px 30px; min-height:560px; }
  .rv-book{ height:100%; perspective:1500px; }
  .rv-page{ transform-origin:0 50%; transition:transform .62s cubic-bezier(.3,.7,.2,1); }
  .rv-face{ grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) auto; border-radius:4px 10px 10px 4px; }
  .rv-back, .rv-shade{ border-radius:4px 10px 10px 4px; }
  .rv-face::after{ left:0; width:22px; transform:none; background:linear-gradient(90deg, rgba(0,0,0,.22), rgba(0,0,0,0)); }
  .rv-bgimg{ display:none; }
  .rv-img{ padding:10px 14px 4px; }
  .rv-bignum{ font-size:150px; bottom:-26px; }
  .rv-off{ width:56px; height:56px; font-size:17px; right:12px; top:10px; }
  .rv-copy{ padding:14px 18px 16px 24px; justify-content:flex-start; }
  .rv-kick{ font-size:10px; margin-bottom:6px; letter-spacing:.16em; }
  .rv-kick::before{ width:18px; }
  .rv-name{ font-size:clamp(34px,10vw,48px); }
  .rv-deck{ font-size:15px; margin:6px 0 8px; }
  .rv-rate{ margin-bottom:8px; font-size:12px; }
  .rv-feats{ display:none; }
  .rv-price{ margin-bottom:2px; }
  .rv-price strong{ font-size:34px; }
  .rv-stock{ margin-bottom:10px; font-size:12px; }
  .rv-actions{ grid-template-columns:1fr 48px 1fr; gap:8px; }
  .rv-buy, .rv-more{ min-height:48px; font-size:14px; padding:0 10px; }
  .rv-actions{ grid-template-columns:1.5fr 48px 1fr; }
  .rv-more{ white-space:nowrap; padding:0 6px; font-size:13px; }
  .rv-buy{ font-size:13px; gap:6px; padding:0 8px; white-space:nowrap; }
  .rv-buy svg{ width:18px; height:18px; }
  .rv-add.is-added span::after{ font-size:13.5px; }
  .rv-media.is-photo .rv-img{ padding:0; }
  .rv-wa{ width:48px; min-height:48px; }
  .rv-more{ grid-column:auto; order:3; }
  .rv-arrow{ width:40px; height:40px; margin-top:-20px; background:rgba(13,12,11,.45); border-color:rgba(244,239,230,.2); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
  .rv-arrow svg{ width:18px; height:18px; }
  .rv-arrow.prev{ left:4px; } .rv-arrow.next{ right:4px; }
  .rv-cv{ padding:20px 20px 22px; }
  .rv-cv-img{ width:100%; right:-18%; top:31%; }
  .rv-cv-title span{ font-size:clamp(64px,21vw,124px); }
  .rv-hint{ bottom:6px; font-size:9.5px; }
  .rv-hint kbd{ display:none; }
  .rv-list{ padding:34px 12px 80px; }
  .rv-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
}
@media (max-width:640px){
  /* Igual a la tarjeta destacada: una por fila, foto grande */
  .rv-grid{ grid-template-columns:1fr; gap:16px; padding:0 4px; }
  .rv-grid .product-card.is-featured{ border-radius:22px !important; box-shadow:0 10px 30px rgba(15,23,42,.10) !important; border-color:rgba(255,77,106,.20) !important; }
}
@media (max-width:820px) and (max-height:700px){
  .rv-deck{ display:none; }
  .rv-name{ font-size:34px; }
}
@media (prefers-reduced-motion:reduce){
  .rv, .rv-page, .rv-img, .rv-progress i{ transition:none !important; }
  .rv-cv-go svg{ animation:none; }
}

/* ============================================================
   2) SÍGUENOS EN REDES
   ============================================================ */
.fw-social{
  --fw-lime:#CCFF00; --fw-ink:#0E0D0C;
  position:relative; overflow:hidden; isolation:isolate;
  background:#0E0D0C; color:#fff; padding:86px 20px 0;
  font-family:'Inter',system-ui,-apple-system,sans-serif;
}
.fw-bg{ position:absolute; inset:0; z-index:-1; pointer-events:none; }
.fw-blob{ position:absolute; width:520px; height:520px; border-radius:50%; filter:blur(90px); opacity:.45; }
.fw-blob.b1{ background:#FF0050; left:-160px; top:-140px; }
.fw-blob.b2{ background:#00F2EA; right:-180px; top:30%; opacity:.28; }
.fw-blob.b3{ background:#1877F2; left:30%; bottom:-300px; opacity:.35; }
.fw-social.in .fw-blob{ animation:fwDrift 14s ease-in-out infinite alternate; }
.fw-social.in .fw-blob.b2{ animation-duration:17s; animation-direction:alternate-reverse; }
@keyframes fwDrift{ to{ transform:translate(90px,60px) scale(1.15); } }

.fw-inner{ position:relative; max-width:1180px; margin:0 auto; text-align:center; }
.fw-kicker{ display:inline-flex; align-items:center; gap:10px; margin:0 0 18px; padding:7px 14px; border:1px solid rgba(255,255,255,.18); border-radius:999px; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.fw-live{ width:8px; height:8px; border-radius:50%; background:#FF0050; box-shadow:0 0 0 0 rgba(255,0,80,.7); animation:fwPulse 1.6s infinite; }
@keyframes fwPulse{ 70%{ box-shadow:0 0 0 10px rgba(255,0,80,0); } 100%{ box-shadow:0 0 0 0 rgba(255,0,80,0); } }
.fw-title{ margin:0; line-height:.9; font-weight:400; }
.fw-line{ display:block; font-family:'Outfit','Inter',sans-serif; font-weight:800; font-size:clamp(20px,2.6vw,30px); letter-spacing:-.01em; color:rgba(255,255,255,.8); }
.fw-big{
  position:relative; display:inline-block; margin-top:8px;
  font-family:'Anton','Outfit',Impact,sans-serif; font-weight:400; font-size:clamp(50px,9.5vw,128px); letter-spacing:.005em; color:#fff;
}
.fw-big::before, .fw-big::after{ content:attr(data-text); position:absolute; inset:0; pointer-events:none; mix-blend-mode:screen; opacity:0; }
.fw-big::before{ color:#00F2EA; }
.fw-big::after{ color:#FF0050; }
.fw-social.in .fw-big::before{ animation:fwGlitchA 3.2s infinite steps(1); }
.fw-social.in .fw-big::after{ animation:fwGlitchB 3.2s infinite steps(1); }
@keyframes fwGlitchA{ 0%,86%,100%{ opacity:0; transform:none; } 87%{ opacity:.9; transform:translate(-4px,2px); clip-path:inset(10% 0 55% 0); } 90%{ opacity:.9; transform:translate(3px,-2px); clip-path:inset(60% 0 8% 0); } 93%{ opacity:0; } }
@keyframes fwGlitchB{ 0%,86%,100%{ opacity:0; transform:none; } 88%{ opacity:.9; transform:translate(4px,-1px); clip-path:inset(40% 0 30% 0); } 91%{ opacity:.9; transform:translate(-3px,2px); clip-path:inset(0 0 70% 0); } 94%{ opacity:0; } }
.fw-sub{ max-width:560px; margin:18px auto 40px; font-size:16px; line-height:1.55; color:rgba(255,255,255,.72); }

.fw-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; perspective:1000px; }
.fw-card{
  --rx:0deg; --ry:0deg; --c1:#fff; --c2:#fff;
  position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start; gap:14px; text-align:left;
  padding:24px 22px 22px; border-radius:22px; text-decoration:none; color:#fff;
  background:linear-gradient(160deg, rgba(255,255,255,.09), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.12);
  transform:rotateX(var(--rx)) rotateY(var(--ry)); transform-style:preserve-3d;
  transition:transform .25s ease, border-color .25s, box-shadow .3s;
}
.fw-anim .fw-card{ opacity:0; translate:0 40px; }
.fw-anim.in .fw-card{ animation:fwIn .8s cubic-bezier(.2,.9,.25,1.2) forwards; animation-delay:calc(var(--d) * 110ms); }
@keyframes fwIn{ to{ opacity:1; translate:0 0; } }
.fw-card:hover{ border-color:var(--c1); box-shadow:0 20px 50px -12px var(--c1); }
.fw-card::before{ content:""; position:absolute; inset:0; z-index:-1; opacity:0; transition:opacity .3s; background:linear-gradient(150deg,var(--c1),var(--c2)); }
.fw-card:hover::before{ opacity:.22; }
.fw-tiktok{ --c1:#FF0050; --c2:#00F2EA; }
.fw-instagram{ --c1:#E1306C; --c2:#F77737; }
.fw-facebook, .fw-facebook2{ --c1:#1877F2; --c2:#42A5F5; }
.fw-ico{
  width:58px; height:58px; border-radius:17px; display:grid; place-items:center; flex:0 0 auto;
  background:linear-gradient(140deg,var(--c1),var(--c2)); box-shadow:0 10px 24px -6px var(--c1);
  transform:translateZ(30px);
}
.fw-ico svg{ width:30px; height:30px; }
.fw-tiktok .fw-ico{ background:#000; border:1px solid rgba(255,255,255,.14); }
.fw-tiktok .fw-ico svg{ filter:drop-shadow(-2px -1px 0 #00F2EA) drop-shadow(2px 1px 0 #FF0050); }
.fw-instagram .fw-ico{ background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285AEB 90%); }
.fw-card:hover .fw-ico{ animation:fwWiggle .6s ease; }
@keyframes fwWiggle{ 25%{ transform:translateZ(30px) rotate(-12deg) scale(1.08); } 60%{ transform:translateZ(30px) rotate(8deg) scale(1.08); } }
.fw-txt{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.fw-red{ font-family:'Outfit','Inter',sans-serif; font-weight:800; font-size:21px; }
.fw-handle{ font-size:13.5px; font-weight:600; color:rgba(255,255,255,.85); overflow-wrap:anywhere; }
.fw-desc{ font-size:13px; color:rgba(255,255,255,.58); line-height:1.4; }
.fw-btn{
  margin-top:auto; display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:999px;
  background:#fff; color:#000; font-weight:800; font-size:13.5px; transition:background .2s, gap .2s;
}
.fw-card:hover .fw-btn{ background:var(--fw-lime); gap:12px; }
.fw-shine{ position:absolute; top:0; left:-60%; width:40%; height:100%; transform:skewX(-20deg); pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent); }
.fw-social.in .fw-shine{ animation:fwShine 4.5s ease-in-out infinite; animation-delay:calc(var(--d) * .45s + 1s); }
@keyframes fwShine{ 0%{ transform:translateX(0) skewX(-20deg); } 22%,100%{ transform:translateX(475%) skewX(-20deg); } }

.fw-float{ position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:0; }
.fw-emo{ position:absolute; bottom:-40px; font-size:26px; will-change:transform,opacity; animation:fwRise var(--t,6s) linear forwards; }
@keyframes fwRise{ 0%{ transform:translate(0,0) scale(.6) rotate(0); opacity:0; } 12%{ opacity:.9; } 100%{ transform:translate(var(--x,0px),-620px) scale(1.15) rotate(var(--r,20deg)); opacity:0; } }
.fw-pop{ position:fixed; z-index:100001; pointer-events:none; font-size:20px; animation:fwPop .9s cubic-bezier(.15,.7,.3,1) forwards; }
@keyframes fwPop{ to{ transform:translate(var(--x),var(--y)) scale(.4) rotate(var(--r)); opacity:0; } }

.fw-marquee{ margin:64px -20px 0; padding:18px 0; background:var(--fw-lime); color:#000; overflow:hidden; transform:rotate(-1.2deg) translateY(10px); }
.fw-track{ display:flex; width:max-content; }
.fw-track span{ font-family:'Anton','Outfit',Impact,sans-serif; font-size:clamp(22px,3vw,34px); text-transform:uppercase; white-space:nowrap; }
.fw-social.in .fw-track{ animation:fwMarq 26s linear infinite; }
@keyframes fwMarq{ to{ transform:translateX(-50%); } }

@media (max-width:980px){ .fw-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){
  .fw-social{ padding:62px 14px 0; }
  .fw-sub{ font-size:14.5px; margin-bottom:28px; }
  .fw-grid{ grid-template-columns:1fr 1fr; gap:10px; }
  .fw-card{ padding:16px 13px 14px; gap:10px; border-radius:18px; }
  .fw-ico{ width:46px; height:46px; border-radius:14px; }
  .fw-ico svg{ width:24px; height:24px; }
  .fw-red{ font-size:17px; }
  .fw-handle{ font-size:12px; }
  .fw-desc{ display:none; }
  .fw-btn{ font-size:12px; padding:8px 11px; }
  .fw-marquee{ margin:44px -14px 0; padding:13px 0; }
}
@media (prefers-reduced-motion:reduce){
  .fw-social *, .fw-social *::before, .fw-social *::after{ animation:none !important; }
  .fw-anim .fw-card{ opacity:1; translate:0 0; }
}

/* ============================================================
   3) PRODUCTOS SIMILARES (producto.php)
   ============================================================ */
.sim{ max-width:1240px; margin:0 auto; padding:56px 20px 64px; font-family:'Inter',system-ui,sans-serif; }
.sim-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:22px; }
.sim-head small{ display:block; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#FF4D6A; margin-bottom:6px; }
.sim-head h2{ margin:0; font-family:'Outfit','Inter',sans-serif; font-weight:800; font-size:clamp(24px,3vw,34px); color:#1A1A2E; letter-spacing:-.02em; }
.sim-nav{ display:flex; gap:8px; }
.sim-nav button{ width:44px; height:44px; border-radius:50%; border:1px solid rgba(26,26,46,.14); background:#fff; color:#1A1A2E; cursor:pointer; display:grid; place-items:center; transition:background .2s, color .2s; }
.sim-nav button:hover{ background:#1A1A2E; color:#fff; }
.sim-nav svg{ width:20px; height:20px; }
.sim-track{
  display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 3 * 18px) / 4); gap:18px;
  overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:6px 2px 18px;
  -webkit-overflow-scrolling:touch;
}
.sim-track::-webkit-scrollbar{ display:none; }
.sim-card{
  scroll-snap-align:start; display:flex; flex-direction:column; background:#fff; border-radius:20px; overflow:hidden;
  border:1px solid rgba(26,26,46,.07); box-shadow:0 6px 22px rgba(26,26,46,.07); transition:transform .25s ease, box-shadow .25s;
}
.sim-card:hover{ transform:translateY(-4px); box-shadow:0 16px 36px rgba(26,26,46,.13); }
.sim-img{ position:relative; display:block; aspect-ratio:1/1; background:linear-gradient(150deg,#fff,#F5F6FA 60%,#EFF1F7); }
.sim-img img{ width:100%; height:100%; object-fit:contain; padding:10px; transition:transform .4s ease; }
.sim-card:hover .sim-img img{ transform:scale(1.05); }
.sim-badge{ position:absolute; left:10px; top:10px; background:#FF4D6A; color:#fff; font-size:11px; font-weight:800; padding:4px 9px; border-radius:999px; }
.sim-badge.out{ background:#6B7280; }
.sim-body{ padding:12px 14px 14px; display:flex; flex-direction:column; gap:5px; flex:1; }
.sim-cat{ font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#7A7A8A; }
.sim-name{ margin:0; font-size:15px; font-weight:700; line-height:1.3; color:#1A1A2E; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.sim-name a{ color:inherit; text-decoration:none; }
.sim-stars{ font-size:12px; color:#FFB800; }
.sim-stars span{ color:#7A7A8A; }
.sim-price{ display:flex; align-items:baseline; flex-wrap:wrap; gap:6px; margin-top:2px; }
.sim-price strong{ font-family:'Outfit','Inter',sans-serif; font-size:21px; font-weight:800; color:#FF4D6A; }
.sim-price s{ font-size:12.5px; color:#9A9AA8; }
.sim-btns{ margin-top:auto; padding-top:8px; display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.sim-btns a, .sim-btns span{ display:flex; align-items:center; justify-content:center; min-height:40px; border-radius:11px; font-size:13px; font-weight:800; text-decoration:none; }
.sim-buy{ background:linear-gradient(135deg,#FF4D6A,#FF8C42); color:#fff; }
.sim-buy.off{ background:#E5E7EB; color:#6B7280; }
.sim-see{ background:#F1F2F7; color:#1A1A2E; }
@media (max-width:980px){ .sim-track{ grid-auto-columns:calc((100% - 2 * 14px) / 3); gap:14px; } }
@media (max-width:640px){
  .sim{ padding:40px 0 48px; }
  .sim-head{ padding:0 16px; }
  .sim-nav{ display:none; }
  .sim-track{ grid-auto-columns:64%; gap:12px; padding:6px 16px 16px; scroll-padding:0 16px; }
  .sim-name{ font-size:14px; }
}
/* Teléfonos angostos (≤380px): textos cortos para que los 3 botones quepan en una fila */
@media (max-width:380px){
  .rv-actions{ grid-template-columns:1.3fr 44px 1fr; gap:6px; }
  .rv-wa{ width:44px; }
  .rv-buy span{ font-size:0; }
  .rv-buy span::after{ content:"Añadir"; font-size:13px; }
  .rv-add.is-added span::after{ content:"¡Listo! ✓"; font-size:13px; }
  .rv-more{ font-size:12.5px; }
}
/* Etiqueta de género en la revista */
.rv-gender{ margin-left:4px; padding:2px 9px; border-radius:999px; background:var(--ink); color:var(--lime); font-size:9.5px; letter-spacing:.16em; }
