.hiw-sub{ margin:16px 0 0; font-family:var(--display); font-weight:400; font-size:clamp(19px,1.8vw,24px); line-height:1.45; color:rgba(223,229,255,.82); letter-spacing:-.01em; }
/* ===== REVO Peak · el programa: bloques que se abren al pasar ===== */
.pgm{ padding-block:clamp(96px,14vh,176px); position:relative; }
.pgm-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:clamp(26px,5vw,72px); flex-wrap:wrap; }
.pgm-head h2{ font-family:var(--display); font-weight:400; font-size:clamp(32px,4.2vw,58px); line-height:1.03; letter-spacing:-.024em; margin:22px 0 0; color:#fff; max-width:22ch; text-wrap:balance; }
.pgm-sub{ margin:20px 0 0; font-size:15.5px; line-height:1.64; color:rgba(255,255,255,.7); max-width:52ch; }
.pgm-meta{ flex:none; display:flex; gap:clamp(22px,3vw,44px); padding-bottom:6px; }
.pgm-meta div{ text-align:right; }
.pgm-meta .n{ display:block; font-family:var(--display); font-weight:400; font-size:clamp(28px,3vw,40px); line-height:1; letter-spacing:-.02em; color:#fff; }
.pgm-meta .l{ display:block; margin-top:8px; font-size:9.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.5); }
.pgm-mono{ font-size:9.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }

.pgm-list{ margin-top:clamp(42px,6vh,74px); display:flex; flex-direction:column; gap:16px; }
.pgm-b{ position:relative; border:1px solid rgba(255,255,255,.16); background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.018)); padding:clamp(24px,2.3vw,32px) clamp(22px,2.6vw,36px) clamp(22px,2.2vw,30px); transition:border-color .6s var(--ease), background .6s var(--ease); }
.pgm-b::before,.pgm-b::after{ content:""; position:absolute; width:12px; height:12px; border:1px solid rgba(255,255,255,.6); opacity:0; transition:opacity .6s var(--ease); }
.pgm-b::before{ top:-1px; left:-1px; border-width:1px 0 0 1px; }
.pgm-b::after{ bottom:-1px; right:-1px; border-width:0 1px 1px 0; }
.pgm-b.is-open::before,.pgm-b.is-open::after{ opacity:1; transition-delay:.5s; }
.pgm-b:hover{ border-color:rgba(255,255,255,.34); background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.025)); }
.pgm-b:focus-visible{ outline:1px solid rgba(159,176,255,.9); outline-offset:3px; }
.pgm-b--tap{ cursor:pointer; }

.pgm-t{ display:grid; grid-template-columns:60px minmax(0,1fr) minmax(0,1fr) 30px; gap:clamp(18px,3vw,34px); row-gap:0; align-items:start; padding-bottom:0; border-bottom:1px solid transparent; transition:padding-bottom 1.35s var(--ease), border-color 1.35s var(--ease); }
.pgm-b.is-open .pgm-t{ padding-bottom:26px; border-bottom-color:rgba(255,255,255,.14); }
.pgm-n{ margin:0; font-family:var(--display); font-weight:400; font-size:clamp(32px,3.4vw,44px); line-height:.9; letter-spacing:-.03em; color:rgba(255,255,255,.28); transition:color 1s var(--ease); }
.pgm-b.is-open .pgm-n{ color:rgba(255,255,255,.72); }
.pgm-w{ margin:0; font-size:9.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.pgm-t h3{ font-family:var(--display); font-weight:500; font-size:clamp(23px,2.5vw,31px); line-height:1.06; letter-spacing:-.018em; margin:12px 0 0; color:#fff; }
.pgm-lead{ grid-column:3; grid-row:1; margin:0; font-size:14.5px; line-height:1.62; color:rgba(255,255,255,.72); max-height:0; overflow:hidden; opacity:0; transform:translateY(7px); transition:max-height 1.4s var(--ease), opacity 1.1s var(--ease) .12s, transform 1.1s var(--ease) .12s, margin 1.4s var(--ease); }
.pgm-b.is-open .pgm-lead{ max-height:260px; opacity:1; transform:none; }
.pgm-ind{ grid-column:4; grid-row:1; }
.pgm-ind{ position:relative; width:26px; height:26px; justify-self:end; align-self:start; margin-top:6px; border:1px solid rgba(255,255,255,.3); transition:border-color .5s var(--ease); }
.pgm-ind::before,.pgm-ind::after{ content:""; position:absolute; left:50%; top:50%; width:10px; height:1px; background:rgba(255,255,255,.8); transform:translate(-50%,-50%); transition:transform 1s var(--ease), opacity .8s var(--ease); }
.pgm-ind::after{ transform:translate(-50%,-50%) rotate(90deg); }
.pgm-b.is-open .pgm-ind{ border-color:rgba(255,255,255,.55); }
.pgm-b.is-open .pgm-ind::after{ transform:translate(-50%,-50%) rotate(0deg); opacity:0; }

.pgm-body{ display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows 1.5s var(--ease), opacity 1.2s var(--ease) .15s; }
.pgm-body>div{ overflow:hidden; min-height:0; }
.pgm-b.is-open .pgm-body{ grid-template-rows:1fr; opacity:1; }

/* fichas (01) */
.pgm-g4{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:rgba(255,255,255,.13); }
.pgm-g4 .i{ background:#0b1128; padding:22px 20px 20px; min-height:134px; }
.pgm-g4 .k{ margin:0; font-size:9px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.46); }
.pgm-g4 .v{ margin:10px 0 0; font-family:var(--display); font-weight:500; font-size:18px; line-height:1.14; letter-spacing:-.012em; color:#fff; }
.pgm-g4 .s{ margin:9px 0 0; font-size:12px; line-height:1.5; color:rgba(255,255,255,.55); }

/* lecturas (02) */
.pgm-reads{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:rgba(255,255,255,.11); }
.pgm-rd{ background:rgba(8,12,30,.72); padding:22px 20px 20px; display:flex; flex-direction:column; gap:12px; min-height:132px; }
.pgm-rd .k{ margin:0; font-size:8.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.46); }
.pgm-rd .v{ margin:0; font-family:var(--display); font-weight:400; font-size:27px; line-height:1; letter-spacing:-.02em; color:#fff; }
.pgm-rd .v small{ font-size:11px; font-weight:500; letter-spacing:.02em; color:rgba(255,255,255,.5); margin-left:5px; }
.pgm-rd .d{ margin:0; font-size:11.5px; line-height:1.45; color:rgba(255,255,255,.5); }
.pgm-spark{ margin-top:auto; height:28px; width:100%; display:block; }
.pgm-spark polyline{ fill:none; stroke:#9fb0ff; stroke-width:1.4; stroke-linejoin:round; stroke-linecap:round; }
.pgm-bars{ margin-top:auto; display:flex; align-items:flex-end; gap:3px; height:28px; }
.pgm-bars i{ flex:1; background:linear-gradient(180deg,rgba(159,176,255,.95),rgba(104,129,252,.25)); border-radius:1px; }
.pgm-ring{ margin-top:auto; width:46px; height:46px; border-radius:50%; background:conic-gradient(#9fb0ff var(--p,70%), rgba(255,255,255,.14) 0); display:grid; place-items:center; }
.pgm-ring::after{ content:""; width:34px; height:34px; border-radius:50%; background:#0a0f26; }

/* pasos (03) */
.pgm-steps{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:rgba(255,255,255,.13); }
.pgm-step{ background:#0b1128; padding:26px 24px 24px; }
.pgm-step .sn{ margin:0; font-size:9px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.pgm-step h4{ font-family:var(--display); font-weight:500; font-size:21px; line-height:1.1; letter-spacing:-.016em; margin:12px 0 0; color:#fff; }
.pgm-step p{ margin:10px 0 0; font-size:12.5px; line-height:1.55; color:rgba(255,255,255,.6); }

/* planos (04) */
.pgm-pair{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:rgba(255,255,255,.13); }
.pgm-pl{ background:#0b1128; padding:30px 28px 28px; display:flex; flex-direction:column; }
.pgm-pl .k{ margin:0; font-size:9px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.pgm-pl h4{ font-family:var(--display); font-weight:500; font-size:26px; line-height:1.08; letter-spacing:-.018em; margin:12px 0 0; color:#fff; }
.pgm-pl>p{ margin:12px 0 26px; font-size:13.5px; line-height:1.6; color:rgba(255,255,255,.64); max-width:46ch; }
.pgm-band{ margin-top:auto; display:flex; align-items:center; gap:12px; padding:14px 16px; border:1px solid rgba(159,176,255,.4); background:rgba(104,129,252,.12); }
.pgm-band .pgm-mono{ color:#cfd8ff; }
.pgm-band--soft{ border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.04); }
.pgm-band--soft .pgm-mono{ color:rgba(255,255,255,.62); }

/* pie del bloque */
.pgm-f{ display:flex; align-items:center; gap:26px; flex-wrap:wrap; padding-top:20px; }
.pgm-f p{ margin:0; display:inline-flex; align-items:center; gap:9px; font-size:9.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.62); }
.pgm-f p i{ width:5px; height:5px; border-radius:50%; background:rgba(159,176,255,.8); flex:none; }

.pgm-led{ width:6px; height:6px; border-radius:50%; background:var(--teal); box-shadow:0 0 10px rgba(104,129,252,.9); flex:none; }
@media (prefers-reduced-motion:no-preference){ .pgm-led{ animation:pgmled 2.6s var(--ease) infinite; } }
@keyframes pgmled{ 0%,100%{ opacity:1 } 50%{ opacity:.32 } }

@media (max-width:1100px){
  .pgm-t{ grid-template-columns:52px minmax(0,1fr) 30px; }
  .pgm-lead{ grid-column:2 / 4; grid-row:2; }
  .pgm-b.is-open .pgm-lead{ margin-top:18px; }
  .pgm-ind{ grid-column:3; grid-row:1; }
  .pgm-g4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pgm-reads{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pgm-steps{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width:820px){
  .pgm-list{ gap:12px; }
  .pgm-b{ padding:22px 20px; }
  .pgm-b.is-open .pgm-t{ padding-bottom:20px; }
  .pgm-lead{ font-size:14px; }
  .pgm-meta{ gap:24px; }
}
@media (max-width:620px){
  .pgm-g4,.pgm-reads,.pgm-steps,.pgm-pair{ grid-template-columns:minmax(0,1fr); }
  .pgm-t{ grid-template-columns:42px minmax(0,1fr) 26px; gap:14px; row-gap:0; }
  .pgm-n{ font-size:26px; }
  .pgm-f{ gap:14px; }
}

.pgm-lead .pgm-teknon{ display:block; width:auto; height:62px; filter:brightness(0) invert(1); opacity:.88; }
.hiw{ --T:6s; padding-block:clamp(96px,14vh,176px); position:relative; }
.hiw-head h2{ font-family:var(--display); font-weight:400; font-size:clamp(32px,4.2vw,58px); line-height:1.03; letter-spacing:-.024em; margin:22px 0 0; color:#fff; max-width:22ch; text-wrap:balance; }
.hiw-flow{ margin-top:clamp(46px,7vh,84px); }
/* este bloque no lleva reveal: la capa compuesta de la animación dejaba de pintar conectores y flechas al deshacerse */
.hiw .st{ position:relative; max-width:960px; margin:0 auto; background:linear-gradient(180deg,rgba(23,32,74,.6),rgba(11,17,40,.75)); border:1px solid rgba(159,176,255,.32); box-shadow:inset 0 1px 0 rgba(223,229,255,.14),0 24px 60px -26px rgba(4,7,22,.95),0 0 48px -22px rgba(104,129,252,.5); --stpx:clamp(28px,3vw,40px); --stpy:clamp(28px,2.7vw,38px); padding:var(--stpy) var(--stpx); }
.hiw .st h3{ font-family:var(--display); font-weight:500; font-size:clamp(26px,2.8vw,36px); line-height:1.08; letter-spacing:-.018em; margin:0; color:#fff; }
.hiw .st .p{ margin:12px 0 0; font-size:16px; line-height:1.6; color:rgba(255,255,255,.68); max-width:58ch; }
.hiw .st-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:28px 0 0; }
.hiw .st-chips span{ font-size:13px; line-height:1.35; padding:9px 14px; white-space:nowrap; border:1px solid rgba(159,176,255,.28); background:rgba(104,129,252,.08); color:rgba(223,229,255,.85); }
.hiw .st-planes{ display:flex; flex-direction:column; gap:1px; background:rgba(159,176,255,.22); margin:28px calc(-1 * var(--stpx)) calc(-1 * var(--stpy)); padding-top:1px; }
.hiw .st-pl{ background:rgba(10,15,38,.92); padding:16px var(--stpx); display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.hiw .st-pl b{ font-family:var(--display); font-weight:500; font-size:17.5px; letter-spacing:-.008em; color:#fff; }
.hiw .st-pl span{ flex:none; font-size:10.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.52); }
.hiw .st-pl .inc{ color:#cfd8ff; }
.hiw .st-f{ margin-top:28px; padding-top:22px; border-top:1px solid rgba(159,176,255,.22); display:flex; align-items:center; }
.hiw .st-num{ display:flex; align-items:baseline; gap:9px; }
.hiw .st-nums{ display:flex; align-items:center; gap:22px; }
.hiw .st-nums::after{ content:none; }
.hiw .st-num + .st-num{ padding-left:22px; border-left:1px solid rgba(159,176,255,.22); }
.hiw .st-f b{ font-family:var(--display); font-weight:400; font-size:32px; line-height:1; letter-spacing:-.02em; color:#fff; }
.hiw .st-f span{ font-size:10.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.5); }
.hiw .st-logo{ width:auto; height:62px; margin-left:auto; align-self:center; filter:brightness(0) invert(1); opacity:.85; }
.hiw .dn{ width:16px; height:88px; margin:0 auto; }
.hiw .dn svg{ display:block; width:100%; height:100%; overflow:visible; }
.hiw .cy{ position:relative; width:1140px; height:890px; margin-block:0; margin-inline:calc((100% - 1140px)/2); }
@media (min-width:1101px) and (max-width:1259px){ .hiw .cy{ transform:scale(.84); transform-origin:50% 0; margin-bottom:-142px; } }
@media (min-width:951px) and (max-width:1100px){ .hiw .cy{ transform:scale(.72); transform-origin:50% 0; margin-bottom:-249px; } }
@media (min-width:801px) and (max-width:950px){ .hiw .cy{ transform:scale(.6); transform-origin:50% 0; margin-bottom:-356px; } }
.hiw .cy-glow{ position:absolute; left:50%; top:60%; width:940px; height:720px; transform:translate(-50%,-50%); background:radial-gradient(closest-side,rgba(104,129,252,.26),transparent 74%); filter:blur(10px); }
.hiw .cy-ring{ position:absolute; left:50%; top:540px; transform:translate(-50%,-50%); width:580px; height:580px; border-radius:50%; border:1px solid rgba(159,176,255,.34); box-shadow:0 0 80px -26px rgba(104,129,252,.6),inset 0 0 80px -36px rgba(104,129,252,.45); animation:hiwSpin 60s linear infinite; }
.hiw .cy-comet{ position:absolute; z-index:1; left:50%; top:540px; transform:translate(-50%,-50%); width:584px; height:584px; border-radius:50%; background:conic-gradient(from 0deg,transparent 0 70%,rgba(104,129,252,0) 70%,rgba(104,129,252,.85) 93%,#dfe5ff 100%); -webkit-mask:radial-gradient(closest-side,transparent calc(100% - 3.5px),#000 calc(100% - 2.5px)); mask:radial-gradient(closest-side,transparent calc(100% - 3.5px),#000 calc(100% - 2.5px)); filter:drop-shadow(0 0 10px rgba(104,129,252,.75)); animation:hiwSpin 12s linear infinite; }
@keyframes hiwSpin{ to{ transform:translate(-50%,-50%) rotate(1turn); } }
.hiw .cy-arrows{ position:absolute; z-index:6; left:0; top:0; width:1140px; height:890px; overflow:visible; pointer-events:none; transform:translateZ(0); }
.hiw .cy-arrows path{ fill:none; stroke:#fff; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; }
.hiw .pulse{ position:absolute; left:0; top:0; z-index:3; width:8px; height:8px; border-radius:50%; background:#dfe5ff; box-shadow:0 0 11px rgba(159,176,255,1); offset-path:var(--p); offset-rotate:0deg; opacity:0; animation:var(--k) var(--T) linear infinite; animation-delay:var(--d,0s); }
.hiw .pulse--adj{ width:11px; height:11px; background:#cfd8ff; box-shadow:0 0 16px rgba(159,176,255,1); }
.hiw .pulse--tr{ width:46px; height:3px; border-radius:3px; background:linear-gradient(90deg,transparent,rgba(159,176,255,.95) 60%,#fff); box-shadow:0 0 14px rgba(104,129,252,.95); offset-rotate:auto; }
.hiw .pulse--amb{ width:6px; height:6px; background:rgba(207,216,255,.8); box-shadow:0 0 7px rgba(159,176,255,.8); animation:hiwAmb 14s linear infinite; }
@keyframes hiwAmb{ 0%{ offset-distance:0%; opacity:0; } 4%{ opacity:.5; } 96%{ opacity:.5; } 100%{ offset-distance:100%; opacity:0; } }
@keyframes hiwArc1{ 0%,6%{ offset-distance:0%; opacity:0; } 9%{ opacity:1; } 36%{ opacity:1; } 39%{ offset-distance:100%; opacity:0; } 100%{ offset-distance:100%; opacity:0; } }
@keyframes hiwArc2{ 0%,52%{ offset-distance:0%; opacity:0; } 55%{ opacity:1; } 71%{ opacity:1; } 74%{ offset-distance:100%; opacity:0; } 100%{ offset-distance:100%; opacity:0; } }
@keyframes hiwArc3{ 0%,76%{ offset-distance:0%; opacity:0; } 79%{ opacity:1; } 96%{ opacity:1; } 99%{ offset-distance:100%; opacity:0; } 100%{ offset-distance:100%; opacity:0; } }
.hiw .cy-n{ position:absolute; transform:translate(-50%,-50%); z-index:4; width:390px; text-align:center; background:linear-gradient(180deg,rgba(23,32,74,.72),rgba(11,17,40,.86)); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border:1px solid rgba(159,176,255,.4); padding:30px 32px; box-shadow:0 24px 60px -24px rgba(4,7,22,.95),0 0 54px -18px rgba(104,129,252,.6),inset 0 1px 0 rgba(223,229,255,.14); }
.hiw .cy-n .cad{ margin:0; font-size:11px; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:#9fb0ff; }
.hiw .cy-n h3{ font-family:var(--display); font-weight:500; font-size:27px; line-height:1.1; letter-spacing:-.018em; margin:10px 0 0; color:#fff; }
.hiw .cy-n .p{ margin:10px 0 0; font-size:15px; line-height:1.55; color:rgba(223,229,255,.74); }
.hiw .cy-flash{ position:absolute; inset:-1px; border:1px solid rgba(207,216,255,.95); box-shadow:0 0 44px -6px rgba(104,129,252,1); opacity:0; pointer-events:none; animation:var(--k) var(--T) linear infinite; }
@keyframes hiwFlashMed{ 0%,33%{ opacity:0; } 37%{ opacity:1; } 46%{ opacity:0; } 100%{ opacity:0; } }
@keyframes hiwFlashAdj{ 0%,72%{ opacity:0; } 76%{ opacity:1; } 85%{ opacity:0; } 100%{ opacity:0; } }
.hiw .proc{ position:relative; height:2px; background:rgba(159,176,255,.18); margin-top:18px; overflow:hidden; }
.hiw .proc i{ position:absolute; inset:0; background:linear-gradient(90deg,rgba(104,129,252,.4),#9fb0ff); transform-origin:0 50%; transform:scaleX(0); animation:hiwProc var(--T) linear infinite; }
@keyframes hiwProc{ 0%,38%{ transform:scaleX(0); opacity:1; } 54%{ transform:scaleX(1); opacity:1; } 58%{ transform:scaleX(1); opacity:0; } 100%{ transform:scaleX(0); opacity:0; } }
.hiw .cy-tags{ display:flex; justify-content:center; gap:6px; margin-top:18px; flex-wrap:wrap; }
.hiw .cy-tags span{ font-size:10.5px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; line-height:1; padding:8px 10px; border:1px solid rgba(159,176,255,.35); background:rgba(104,129,252,.1); color:rgba(223,229,255,.85); animation:var(--k) var(--T) linear infinite; }
@keyframes hiwT1{ 0%,73%{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.18); color:rgba(255,255,255,.78); } 75%,79%{ background:rgba(104,129,252,.4); border-color:rgba(159,176,255,.95); color:#fff; } 83%{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.18); color:rgba(255,255,255,.78); } 100%{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.18); color:rgba(255,255,255,.78); } }
@keyframes hiwT2{ 0%,77%{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.18); color:rgba(255,255,255,.78); } 79%,83%{ background:rgba(104,129,252,.4); border-color:rgba(159,176,255,.95); color:#fff; } 87%{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.18); color:rgba(255,255,255,.78); } 100%{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.18); color:rgba(255,255,255,.78); } }
@keyframes hiwT3{ 0%,81%{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.18); color:rgba(255,255,255,.78); } 83%,87%{ background:rgba(104,129,252,.4); border-color:rgba(159,176,255,.95); color:#fff; } 91%{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.18); color:rgba(255,255,255,.78); } 100%{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.18); color:rgba(255,255,255,.78); } }
.hiw .scanbox{ position:relative; width:200px; margin:-124px auto 10px; }
.hiw .wimg{ width:100%; height:auto; aspect-ratio:1308/1501; display:block; position:relative; z-index:2; filter:drop-shadow(0 16px 26px rgba(4,7,22,.85)); }
.hiw .scan-mask{ position:absolute; inset:0; z-index:3; -webkit-mask:url("assets/peak-wearable.webp") center/contain no-repeat; mask:url("assets/peak-wearable.webp") center/contain no-repeat; overflow:hidden; pointer-events:none; }
.hiw .scan-mask i{ position:absolute; top:-10%; bottom:-10%; width:30px; background:linear-gradient(90deg,transparent,rgba(159,176,255,.9),transparent); filter:blur(3px); animation:hiwSweep var(--T) linear infinite; }
@keyframes hiwSweep{ 0%{ transform:translateX(-68px); opacity:0; } 2%{ opacity:1; } 11%{ transform:translateX(238px); opacity:1; } 14%{ opacity:0; } 100%{ transform:translateX(238px); opacity:0; } }
.hiw .tick{ position:absolute; width:15px; height:15px; border:1px solid rgba(159,176,255,.7); z-index:2; }
.hiw .tick.tl{ top:-8px; left:-12px; border-width:1px 0 0 1px; }
.hiw .tick.tr{ top:-8px; right:-12px; border-width:1px 1px 0 0; }
.hiw .tick.bl{ bottom:-6px; left:-12px; border-width:0 0 1px 1px; }
.hiw .tick.br{ bottom:-6px; right:-12px; border-width:0 1px 1px 0; }
/* bucle móvil: circuito vertical con retorno por raíl izquierdo (oculto en desktop) */
.hiw .cy-mloop,.hiw .mpulse{ display:none; }
.hiw .cy-loop{ display:none; position:relative; z-index:5; margin:34px 0 0; align-items:center; gap:9px; font-size:9.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#dfe5ff; padding:9px 14px; border:1px solid rgba(159,176,255,.5); background:linear-gradient(rgba(104,129,252,.16),rgba(104,129,252,.16)),#0a0f26; box-shadow:0 0 26px -10px rgba(104,129,252,.7); }
.hiw .cy-loop::before{ content:""; position:absolute; left:50%; top:-34px; width:1px; height:30px; transform:translateX(-50%); background:linear-gradient(180deg,rgba(159,176,255,.15),rgba(159,176,255,.75)); }
.hiw .cy-loop .lp{ font-size:15px; line-height:1; color:#9fb0ff; font-weight:400; animation:hiwLp var(--T) linear infinite; }
@keyframes hiwLp{ 0%,74%{ transform:rotate(0); } 97%,100%{ transform:rotate(-1turn); } }
@media (max-width:800px){
  .hiw{ overflow:clip; }
  /* la esfera: los tres pasos viven sobre el anillo (geometría vía --cyr/--cyy/--cyty/--cyby, calculadas en revo-peak-programa.js) */
  .hiw .cy{ width:100%; max-width:390px; height:940px; display:block; margin-inline:auto; padding:0; transform:none; margin-bottom:0; }
  .hiw .pulse,.hiw .cy-arrows{ display:none; }
  .hiw .cy-glow{ left:50%; top:var(--cyy,430px); width:calc(var(--cyr,150px)*2 + 180px); height:calc(var(--cyr,150px)*2 + 180px); transform:translate(-50%,-50%); }
  .hiw .cy-ring{ left:50%; top:var(--cyy,430px); width:calc(var(--cyr,150px)*2); height:calc(var(--cyr,150px)*2); transform:translate(-50%,-50%); animation:none; }
  /* el destello recorre el anillo tramo a tramo, con el mismo ritmo que la versión web */
  .hiw .cy-comet{ left:50%; top:var(--cyy,430px); width:calc(var(--cyr,150px)*2 + 4px); height:calc(var(--cyr,150px)*2 + 4px); background:conic-gradient(from 0deg,transparent 0 88%,rgba(104,129,252,0) 88%,rgba(104,129,252,.85) 97%,#dfe5ff 100%); animation:hiwMLegs var(--T) linear infinite; }
  .hiw .cy-mloop{ display:block; position:absolute; inset:0; z-index:2; width:auto; border:0; border-radius:0; box-shadow:none; pointer-events:none; }
  .hiw .cy-mloop::before,.hiw .cy-mloop::after,.hiw .cy::before,.hiw .cy::after{ content:""; position:absolute; z-index:2; width:8px; height:8px; border-right:1.5px solid rgba(200,211,255,.9); border-bottom:1.5px solid rgba(200,211,255,.9); filter:drop-shadow(0 0 3px rgba(104,129,252,.5)); }
  .hiw .cy::before{ left:calc(50% + var(--cyr,150px) - 4px); top:calc(var(--cyy,430px) - 4px); transform:rotate(45deg); }
  .hiw .cy::after{ left:calc(50% - var(--cyr,150px) - 4px); top:calc(var(--cyy,430px) - 4px); transform:rotate(225deg); }
  .hiw .cy-mloop::before{ left:calc(50% - 4px); top:calc(var(--cyy,430px) + var(--cyr,150px) - 4px); transform:rotate(135deg); }
  .hiw .cy-mloop::after{ content:none; }
  .hiw .cy-n{ position:relative; left:auto!important; top:auto!important; transform:none; width:min(250px,72%); margin:92px auto 0; z-index:4; padding:16px 14px 15px; }
  .hiw .cy-n ~ .cy-n{ position:absolute; top:var(--cyty,560px)!important; right:0; left:auto!important; width:calc(50% - 5px); max-width:184px; margin:0; }
  .hiw .cy-n ~ .cy-n ~ .cy-n{ left:0!important; right:auto; }
  .hiw .cy-n::before{ content:none; }
  .hiw .cy-n .cad{ font-size:8.5px; letter-spacing:.2em; }
  .hiw .cy-n h3{ font-size:16.5px; margin-top:7px; }
  .hiw .cy-n .p{ font-size:11px; line-height:1.5; margin-top:7px; }
  .hiw .proc{ margin-top:12px; }
  .hiw .cy-tags{ margin-top:12px; gap:4px; }
  .hiw .cy-tags span{ font-size:8.5px; padding:6px 7px; }
  .hiw .scanbox{ width:150px; margin:-96px auto 6px; }
  .hiw .cy-loop{ display:none; }
}
@keyframes hiwLoopG{ 0%,72%{ box-shadow:0 0 26px -10px rgba(104,129,252,.7); border-color:rgba(159,176,255,.5); } 77%,81%{ box-shadow:0 0 36px -2px rgba(104,129,252,1); border-color:rgba(223,229,255,.95); } 90%,100%{ box-shadow:0 0 26px -10px rgba(104,129,252,.7); border-color:rgba(159,176,255,.5); } }
@keyframes hiwMLegs{ 0%,6%{ transform:translate(-50%,-50%) rotate(0deg); } 39%,52%{ transform:translate(-50%,-50%) rotate(120deg); } 74%,76%{ transform:translate(-50%,-50%) rotate(240deg); } 99%,100%{ transform:translate(-50%,-50%) rotate(360deg); } }
@media (max-width:620px){
  .hiw .st{ --stpx:20px; --stpy:22px; }
  .hiw .st-f{ flex-wrap:wrap; row-gap:16px; }
  .hiw .st-logo{ height:32px; margin-left:auto; }
  .hiw .st-pl{ display:block; }
  .hiw .st-pl span{ display:block; margin-top:5px; }
  .pgm-lead .pgm-teknon{ height:44px; }
}
/* ===== móvil compacto (peak.html · misma hoja para ES y EN) ===== */
@media (max-width:600px){
  /* hero */
  .pk-hero .pk-hero-in{ padding-bottom:30px; }
  .pk-hero .pk-title{ font-size:clamp(44px,16vw,64px); }
  .pk-hero .pk-lede{ margin-top:16px; font-size:16px; max-width:32ch; }
  .pk-hero .hero-cta{ margin-top:24px; }
  .pk-hero .pk-facts-in{ flex-wrap:nowrap; justify-content:space-between; gap:8px; padding-block:13px; padding-bottom:calc(13px + env(safe-area-inset-bottom,0px)); }
  .pk-hero .pk-fact{ font-size:8.5px; letter-spacing:.1em; gap:6px; white-space:nowrap; }
  .pk-hero .pk-fact .blip{ width:5px; height:5px; }
  /* cómo funciona */
  .hiw{ padding-block:64px 70px; }
  .hiw-head h2{ font-size:29px; }
  .hiw-head .hiw-sub{ margin-top:12px; font-size:16.5px; }
  .hiw .hiw-flow{ margin-top:34px; }
  .hiw .st h3{ font-size:21px; }
  .hiw .st .p{ margin-top:9px; font-size:14px; }
  .hiw .st-chips{ margin-top:18px; gap:6px; }
  .hiw .st-chips span{ font-size:11.5px; padding:7px 10px; }
  .hiw .st-planes{ margin-top:18px; }
  .hiw .st-pl{ padding-block:13px; flex-wrap:wrap; row-gap:3px; }
  .hiw .st-pl b{ font-size:15px; }
  .hiw .st-pl span{ font-size:9.5px; }
  .hiw .st-f{ margin-top:18px; padding-top:16px; }
  .hiw .st-nums{ gap:14px; }
  .hiw .st-num + .st-num{ padding-left:14px; }
  .hiw .st-f b{ font-size:26px; }
  .hiw .dn{ height:44px; }
  .hiw .scanbox{ width:128px; margin:-80px auto 6px; }
  .hiw .cy-n{ margin-top:84px; }
  .hiw .cy-loop{ width:150px; }
  /* el acceso (specificidad > bloque inline de la página) */
  section.pk-close{ padding-block:60px 56px; }
  .pk-close .pk-statement{ margin-top:20px; font-size:24px; }
  .pk-close .pk-spec{ margin-top:28px; padding:20px 0; }
  .pk-close .pk-price{ font-size:32px; }
  .pk-close .pk-note{ margin-top:10px; font-size:9.5px; letter-spacing:.12em; }
  .pk-close .pk-close-cta{ margin-top:26px; }
  .pk-close .pk-micro{ margin-top:16px; font-size:12px; }
  .pk-close .backlink{ margin-top:22px; }
}
@media (prefers-reduced-motion:reduce){
  .hiw *{ animation:none !important; }
}
/* ===== efectos sutiles (peak.html · compartidos ES/EN) ===== */
@media (prefers-reduced-motion:no-preference){
  /* hero: deriva lentísima de la foto */
  .pk-hero .pk-media img{ animation:pkDrift 11s ease-in-out infinite alternate; will-change:transform; }
  /* franja de datos: respiración escalonada de los blips */
  .pk-fact .blip{ animation:pkBlip 2s var(--ease) infinite; }
  .pk-fact:nth-child(2) .blip{ animation-delay:.8s; }
  .pk-fact:nth-child(3) .blip{ animation-delay:1.6s; }
  /* cierre: el glow respira + destello ocasional en la línea inferior */
  .pk-glow{ animation:pkBreathe 5s ease-in-out infinite; }
  .pk-line.bottom{ overflow:hidden; }
  .pk-line.bottom::after{ content:""; position:absolute; top:0; left:0; width:220px; height:1px; background:linear-gradient(90deg,transparent,#fff,transparent); animation:pkSweep 5s linear infinite; }
}
@keyframes pkDrift{ from{ transform:scale(1); } to{ transform:scale(1.1); } }
@keyframes pkBlip{ 0%,100%{ opacity:1; transform:scale(1.3); box-shadow:0 0 14px rgba(124,148,255,.95); } 50%{ opacity:.15; transform:scale(.8); box-shadow:0 0 0 rgba(124,148,255,0); } }
@keyframes pkBreathe{ 0%,100%{ opacity:.35; transform:translate(-50%,-50%) scale(.9); } 50%{ opacity:1; transform:translate(-50%,-50%) scale(1.08); } }
@keyframes pkSweep{ 0%,30%{ transform:translateX(-160px); opacity:0; } 33%{ opacity:1; } 82%{ opacity:1; } 85%,100%{ transform:translateX(calc(100vw)); opacity:0; } }
/* móviles estrechos: la franja de datos del hero cabe SIEMPRE en una línea */
@media (max-width:374px){
  .pk-hero .pk-fact{ font-size:7.5px; letter-spacing:.06em; gap:5px; }
  .pk-hero .pk-facts-in{ gap:4px; }
}
/* footer peak: un solo footer con la marca de agua grande anclada abajo (en vez del recorte a sangre) */
.site-footer .footer-inner::before{ inset:auto 24px -4% 24px; aspect-ratio:1570/322; background:url("assets/revo-wordmark.webp") center bottom/contain no-repeat; opacity:.06; }

/* ===== FX premium: aparición, casillas, flechas, whoop (ES/EN) ===== */
.hiw .st{ transition:border-color .5s var(--ease), box-shadow .5s var(--ease); }
.hiw .st:hover{ border-color:rgba(159,176,255,.62); box-shadow:inset 0 1px 0 rgba(223,229,255,.2),0 24px 60px -26px rgba(4,7,22,.95),0 0 66px -16px rgba(104,129,252,.7); }
.hiw .st::before,.hiw .st::after{ content:""; position:absolute; width:14px; height:14px; border:1px solid transparent; pointer-events:none; transition:border-color .9s var(--ease) .55s; }
.hiw .st::before{ top:-1px; left:-1px; border-width:1px 0 0 1px; }
.hiw .st::after{ bottom:-1px; right:-1px; border-width:0 1px 1px 0; }
.hiw .st.fx-in::before,.hiw .st.fx-in::after,.hiw .st:hover::before,.hiw .st:hover::after{ border-color:rgba(223,229,255,.85); }
.hiw .dn{ position:relative; }
.hiw .scanbox + .cad::before{ content:""; display:inline-block; width:5px; height:5px; border-radius:50%; background:#9fb0ff; box-shadow:0 0 9px rgba(159,176,255,1); margin-right:8px; vertical-align:1px; }
@media (prefers-reduced-motion:no-preference){
  .pkfx{ opacity:0; transition:opacity 1s var(--ease) var(--fxd,0s); }
  .pkfx.fx-in{ opacity:1; }
  .hiw .st.pkfx{ transform:translateY(30px); transition:opacity 1s var(--ease), transform 1.1s var(--ease), border-color .5s var(--ease), box-shadow .5s var(--ease); }
  .hiw .st.pkfx.fx-in{ transform:translateY(0); }
  .hiw .dn.pkfx path:first-child{ stroke-dasharray:80; stroke-dashoffset:80; transition:stroke-dashoffset 1.1s var(--ease) .3s; }
  .hiw .dn.pkfx.fx-in path:first-child{ stroke-dashoffset:0; }
  .hiw .dn.pkfx path:last-child{ opacity:0; transition:opacity .5s var(--ease) 1.15s; }
  .hiw .dn.pkfx.fx-in path:last-child{ opacity:1; }
  .hiw .scanbox{ animation:pkFloat 7s ease-in-out infinite alternate; }
  .hiw .scanbox .tick{ animation:pkTickScan var(--T) linear infinite; }
  .hiw .scanbox + .cad::before{ animation:pgmled 2.2s var(--ease) infinite; }
  .pk-facts::after{ content:""; position:absolute; top:-1px; left:0; width:200px; height:1px; background:linear-gradient(90deg,transparent,rgba(223,229,255,.85),transparent); animation:pkSweep 7.5s linear 1.2s infinite; }
  .pk-tick{ animation:pkTickG 9s linear infinite; }
  .pk-tick.tr{ animation-delay:2.25s; }
  .pk-tick.br{ animation-delay:4.5s; }
  .pk-tick.bl{ animation-delay:6.75s; }
}
@media (prefers-reduced-motion:reduce){ .pkfx{ opacity:1; } }
@keyframes pkTickScan{ 0%,16%,100%{ border-color:rgba(159,176,255,.7); } 4%,11%{ border-color:#fff; } }
@keyframes pkTickG{ 0%,88%,100%{ border-color:rgba(255,255,255,.5); box-shadow:0 0 0 rgba(159,176,255,0); } 93%{ border-color:#fff; box-shadow:0 0 14px rgba(159,176,255,.75); } }
@keyframes pkFloat{ from{ transform:translateY(0); } to{ transform:translateY(-8px); } }

/* ---------- párrafo definitorio (El programa) ---------- */
.hiw-head .pk-def{ margin:22px 0 0; max-width:72ch; font-size:16.5px; line-height:1.7; color:rgba(223,229,255,.78); }
@media (max-width:700px){ .hiw-head .pk-def{ margin-top:14px; font-size:14.5px; line-height:1.65; } }

/* ---------- nota bajo un ítem del plan (entrenamiento personal) ---------- */
.hiw .st-pl .st-pl-note{ display:block; flex:none; margin:8px 0 0; font-size:14px; line-height:1.6; color:rgba(255,255,255,.68); letter-spacing:0; text-transform:none; font-weight:400; max-width:58ch; }

/* ---------- preguntas frecuentes ---------- */
section.pk-faq{ padding-block:clamp(56px,9vh,110px); }
.pk-faq-list{ margin-top:clamp(28px,4vh,44px); max-width:860px; border-top:1px solid rgba(159,176,255,.28); }
.pk-faq-item{ border-bottom:1px solid rgba(159,176,255,.18); }
.pk-faq-item summary{ list-style:none; display:flex; align-items:center; gap:18px; padding:22px 2px; cursor:pointer; transition:padding-left .35s var(--ease), color .3s; }
.pk-faq-item summary::-webkit-details-marker{ display:none; }
.pk-faq-item summary h3{ margin:0; font-family:var(--display); font-weight:500; font-size:clamp(18px,1.7vw,22px); line-height:1.25; letter-spacing:-.012em; color:#fff; }
.pk-faq-item summary:hover{ padding-left:10px; }
.pk-faq-ico{ margin-left:auto; width:18px; height:18px; position:relative; flex:none; }
.pk-faq-ico::before,.pk-faq-ico::after{ content:""; position:absolute; background:#cfd8ff; transition:transform .35s var(--ease); }
.pk-faq-ico::before{ left:0; right:0; top:8px; height:1.5px; }
.pk-faq-ico::after{ top:0; bottom:0; left:8px; width:1.5px; }
.pk-faq-item[open] .pk-faq-ico::after{ transform:scaleY(0); }
.pk-faq-item[open] summary h3{ color:#cfd8ff; }
.pk-faq-item p{ margin:0; padding:0 2px 26px; max-width:66ch; font-size:15.5px; line-height:1.72; color:rgba(223,229,255,.74); }
@media (max-width:700px){
  section.pk-faq{ padding-block:52px 48px; }
  .pk-faq-list{ margin-top:18px; }
  .pk-faq-item summary{ padding:16px 0; gap:14px; }
  .pk-faq-item summary h3{ font-size:16.5px; }
  .pk-faq-item p{ font-size:14px; padding-bottom:20px; }
}
.hiw .st-pl .st-pl-logo{ display:block; flex:none; margin:14px 0 2px; width:fit-content; }
.hiw .st-pl .st-pl-logo img{ display:block; width:auto; height:22px; filter:brightness(0) invert(1); opacity:.8; transition:opacity .3s; }
.hiw .st-pl .st-pl-logo:hover img{ opacity:1; }
