/* RUPTLINE_WAVES_OCEAN_R24_1 */

.rl-wave-page{
  --wave-text:#f7fbff;
  --wave-muted:rgba(229,240,255,.72);
  --wave-line:rgba(255,255,255,.10);
  --wave-soft:rgba(255,255,255,.05);
  --wave-glass:rgba(5,15,32,.18);
  color:var(--wave-text);
  background:#040916;
  overflow:hidden;
}

html[data-theme="light"] .rl-wave-page{
  --wave-text:#102039;
  --wave-muted:rgba(16,32,57,.66);
  --wave-line:rgba(14,34,58,.12);
  --wave-soft:rgba(14,34,58,.07);
  --wave-glass:rgba(255,255,255,.30);
  background:#d8edf5;
}

.rl-wave-logo--light{display:none}
html[data-theme="light"] .rl-wave-logo--dark{display:none}
html[data-theme="light"] .rl-wave-logo--light{display:block}

.rl-wave-ocean{
  position:relative;
  min-height:100svh;
  isolation:isolate;
  overflow:hidden;
  background:#040916;
}

html[data-theme="light"] .rl-wave-ocean{
  background:#d8edf5;
}

.rl-wave-ocean__world{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}

.rl-wave-ocean__canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  touch-action:pan-y;
}

.rl-wave-ocean__surface-light{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(255,255,255,.12),transparent 18%),
    radial-gradient(ellipse at 50% -10%,rgba(153,220,255,.18),transparent 45%),
    linear-gradient(180deg,transparent 0 48%,rgba(0,0,0,.10) 100%);
  mix-blend-mode:screen;
  opacity:.72;
}

html[data-theme="light"] .rl-wave-ocean__surface-light{
  opacity:.56;
}

.rl-wave-ocean__depth{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 52% 18%,transparent 0 22%,rgba(0,0,0,.10) 64%,rgba(0,0,0,.28) 100%),
    linear-gradient(180deg,transparent 0 42%,rgba(1,7,22,.22) 100%);
}

html[data-theme="light"] .rl-wave-ocean__depth{
  background:
    radial-gradient(circle at 52% 18%,transparent 0 28%,rgba(26,55,82,.04) 68%,rgba(26,55,82,.10) 100%),
    linear-gradient(180deg,transparent 0 48%,rgba(35,74,103,.08) 100%);
}

.rl-wave-ocean__content{
  position:relative;
  z-index:2;
  width:min(1220px,calc(100% - 48px));
  min-height:100svh;
  margin:0 auto;
  padding:150px 0 76px;
  display:grid;
  grid-template-columns:minmax(0,700px) minmax(240px,1fr);
  gap:72px;
  align-items:center;
}

.rl-wave-ocean__copy{
  align-self:center;
}

.rl-wave-ocean__eyebrow{
  margin:0 0 18px;
  color:var(--wave-muted);
  font-size:11px;
  line-height:1;
  letter-spacing:.25em;
  text-transform:uppercase;
}

.rl-wave-ocean__logo{
  margin:0 0 26px;
}

.rl-wave-ocean__logo img{
  display:block;
  width:min(430px,72vw);
  height:auto;
}

.rl-wave-ocean h1{
  margin:0;
  max-width:8.7ch;
  color:var(--wave-text);
  font-size:clamp(52px,8vw,108px);
  line-height:.94;
  font-weight:500;
  letter-spacing:-.058em;
}

.rl-wave-ocean__lead{
  max-width:630px;
  margin:28px 0 0;
  color:var(--wave-muted);
  font-size:clamp(17px,1.9vw,22px);
  line-height:1.66;
}

.rl-wave-ocean__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:34px;
}

.rl-wave-ocean__actions a{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 19px;
  border:1px solid var(--wave-line);
  border-radius:999px;
  color:var(--wave-text);
  text-decoration:none;
  font-size:13px;
  background:var(--wave-glass);
  backdrop-filter:blur(16px) saturate(1.08);
  -webkit-backdrop-filter:blur(16px) saturate(1.08);
  transition:transform .22s ease,border-color .22s ease,background .22s ease;
}

.rl-wave-ocean__actions a:hover{
  transform:translateY(-1px);
  border-color:rgba(139,200,255,.34);
  background:rgba(92,150,255,.10);
}

.rl-wave-ocean__actions a:last-child{
  background:rgba(90,115,255,.14);
}

.rl-wave-ocean__aside{
  align-self:end;
  justify-self:end;
  width:min(260px,100%);
  padding-bottom:30px;
}

.rl-wave-ocean__aside p{
  margin:0;
  padding:12px 0;
  border-bottom:1px solid var(--wave-soft);
  color:var(--wave-muted);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-align:right;
}

.rl-wave-ocean__hint{
  position:absolute;
  left:50%;
  bottom:30px;
  z-index:3;
  transform:translateX(-50%);
  margin:0;
  color:rgba(235,246,255,.45);
  font-size:10px;
  letter-spacing:.19em;
  text-transform:uppercase;
}

html[data-theme="light"] .rl-wave-ocean__hint{
  color:rgba(16,32,57,.38);
}

.rl-wave-body{
  position:relative;
  z-index:2;
  background:
    linear-gradient(180deg,rgba(4,9,22,.94),#040916 14%,#050b19 100%);
}

html[data-theme="light"] .rl-wave-body{
  background:
    linear-gradient(180deg,rgba(216,237,245,.96),#eef7fa 16%,#f3f8fa 100%);
}

.rl-wave-section,
.rl-wave-signature{
  width:min(1120px,calc(100% - 48px));
  margin:0 auto;
}

.rl-wave-section{
  padding:108px 0;
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:40px;
  border-top:1px solid var(--wave-soft);
}

.rl-wave-section__label,
.rl-wave-flow__step,
.rl-wave-signature__index{
  margin:0;
  color:var(--wave-muted);
  font-size:11px;
  line-height:1;
  letter-spacing:.23em;
  text-transform:uppercase;
}

.rl-wave-section__body h2,
.rl-wave-statement h2{
  margin:0;
  max-width:11ch;
  color:var(--wave-text);
  font-size:clamp(34px,4.4vw,60px);
  line-height:1.02;
  font-weight:500;
  letter-spacing:-.05em;
}

.rl-wave-section__body p,
.rl-wave-statement p{
  max-width:700px;
  margin:20px 0 0;
  color:var(--wave-muted);
  font-size:18px;
  line-height:1.75;
}

.rl-wave-rhythm{
  display:flex;
  flex-wrap:wrap;
  gap:10px 12px;
}

.rl-wave-rhythm span{
  padding:11px 0;
  margin-right:18px;
  color:var(--wave-text);
  font-size:16px;
  border-bottom:1px solid var(--wave-line);
}

.rl-wave-flow{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:34px;
}

.rl-wave-flow h3{
  margin:16px 0 0;
  color:var(--wave-text);
  font-size:clamp(21px,2.2vw,29px);
  line-height:1.12;
  font-weight:500;
  letter-spacing:-.032em;
}

.rl-wave-flow p:last-child{
  margin:14px 0 0;
  color:var(--wave-muted);
  font-size:15px;
  line-height:1.7;
}

.rl-wave-statement__line{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  align-items:center;
  margin-top:34px;
}

.rl-wave-statement__line span{
  color:var(--wave-text);
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.rl-wave-statement__line i{
  width:30px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(128,200,255,.6),transparent);
}

.rl-wave-signature{
  padding:118px 0 132px;
  text-align:center;
  border-top:1px solid var(--wave-soft);
}

.rl-wave-signature h2{
  margin:18px 0 0;
  color:var(--wave-text);
  font-size:clamp(44px,5vw,74px);
  line-height:1;
  font-weight:500;
  letter-spacing:-.05em;
}

.rl-wave-signature__meta{
  margin:14px 0 0;
  color:var(--wave-muted);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.rl-wave-signature__quote{
  margin:20px auto 0;
  color:var(--wave-muted);
  font-size:18px;
  line-height:1.7;
}

@media(max-width:980px){
  .rl-wave-ocean__content{
    grid-template-columns:1fr;
    gap:22px;
    padding-top:132px;
    align-content:center;
  }

  .rl-wave-ocean__aside{
    justify-self:start;
    width:100%;
    display:flex;
    flex-wrap:wrap;
    gap:0 20px;
    padding-bottom:0;
  }

  .rl-wave-ocean__aside p{
    text-align:left;
  }

  .rl-wave-section{
    grid-template-columns:1fr;
    gap:22px;
    padding:84px 0;
  }

  .rl-wave-flow{
    grid-template-columns:1fr;
    gap:28px;
  }
}

@media(max-width:720px){
  .rl-wave-ocean__content,
  .rl-wave-section,
  .rl-wave-signature{
    width:min(100% - 32px,100%);
  }

  .rl-wave-ocean__content{
    padding-top:118px;
    padding-bottom:72px;
  }

  .rl-wave-ocean__logo img{
    width:min(84vw,350px);
  }

  .rl-wave-ocean h1{
    font-size:clamp(46px,13vw,72px);
  }

  .rl-wave-ocean__lead{
    font-size:16px;
  }

  .rl-wave-ocean__aside{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .rl-wave-ocean__aside p{
    font-size:10px;
  }

  .rl-wave-ocean__hint{
    display:none;
  }

  .rl-wave-section__body p,
  .rl-wave-statement p,
  .rl-wave-signature__quote{
    font-size:16px;
  }
}

@media(prefers-reduced-motion:reduce){
  .rl-wave-ocean__actions a{
    transition:none;
  }
}

/* ==========================================================
   RUPTLINE_WAVES_HERO_R24_2A_FIX
   ========================================================== */

.rl-wave-ocean__logo .rl-wave-logo--dark{display:block!important;}
.rl-wave-ocean__logo .rl-wave-logo--light{display:none!important;}
html[data-theme="light"] .rl-wave-ocean__logo .rl-wave-logo--dark{display:none!important;}
html[data-theme="light"] .rl-wave-ocean__logo .rl-wave-logo--light{display:block!important;}


.rl-wave-ocean{
  min-height:100svh;
  background:#030812;
}
html[data-theme="light"] .rl-wave-ocean{
  background:#d7e7ed;
}
.rl-wave-ocean__center{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:13px;
  pointer-events:none;
}

.rl-wave-ocean__ruptline{
  width:88px!important;
  max-width:88px!important;
  margin:0!important;
  padding:0!important;
  pointer-events:none!important;
}

.rl-wave-ocean__ruptline img,
.rl-wave-ocean__ruptline picture{
  max-width:100%!important;
}

.rl-wave-ocean__logo{
  width:min(52vw,980px);
  margin:0;
}
.rl-wave-ocean__logo img{
  width:100%;
  height:auto;
}
.rl-wave-ocean h1.rl-wave-ocean__tagline{
  position:absolute;
  z-index:3;
  left:50%;
  bottom:18px;
  width:min(760px,calc(100% - 40px));
  max-width:none;
  margin:0;
  transform:translateX(-50%);
  color:rgba(245,250,255,.46);
  font-size:10px!important;
  line-height:1!important;
  font-weight:300!important;
  letter-spacing:.12em!important;
  text-align:center;
}
html[data-theme="light"] .rl-wave-ocean h1.rl-wave-ocean__tagline{
  color:rgba(16,32,57,.42);
}

.rl-wave-ocean__surface-light{
  opacity:.28;
  background:
    linear-gradient(180deg,rgba(126,190,218,.055),transparent 20%),
    radial-gradient(ellipse at 50% -12%,rgba(96,178,210,.09),transparent 46%),
    linear-gradient(180deg,transparent 0 50%,rgba(0,0,0,.14) 100%);
}
.rl-wave-ocean__depth{
  background:
    radial-gradient(circle at 50% 16%,transparent 0 18%,rgba(0,0,0,.14) 58%,rgba(0,0,0,.43) 100%),
    linear-gradient(180deg,rgba(1,5,14,.04) 0 34%,rgba(1,6,18,.28) 100%);
}
html[data-theme="light"] .rl-wave-ocean__surface-light{opacity:.40;}
html[data-theme="light"] .rl-wave-ocean__depth{
  background:
    radial-gradient(circle at 50% 16%,transparent 0 25%,rgba(31,67,86,.04) 60%,rgba(31,67,86,.12) 100%),
    linear-gradient(180deg,transparent 0 46%,rgba(35,74,103,.09) 100%);
}

@media(max-width:980px){
  .rl-wave-ocean__ruptline{
    width:82px!important;
    max-width:82px!important;
  }
  .rl-wave-ocean__logo{width:min(68vw,720px);}
}

@media(max-width:720px){
  .rl-wave-ocean__center{gap:11px;}
  .rl-wave-ocean__ruptline{
    width:72px!important;
    max-width:72px!important;
  }
  .rl-wave-ocean__logo{width:min(84vw,520px);}
  .rl-wave-ocean h1.rl-wave-ocean__tagline{
    bottom:14px;
    font-size:9px!important;
  }
}

/* ==========================================================
   RUPTLINE_WAVES_HEADER_OVERLAY_R24_2B
   El menú flota sobre el hero; no reserva una franja superior.
   ========================================================== */

/*
 * public-pages-r2.css reserva espacio superior para páginas
 * públicas convencionales. Waves es una experiencia full-bleed:
 * el agua debe comenzar en el pixel 0 y el header fixed flota
 * encima del canvas.
 */
body.rl-wave-route,
body:has(.rl-wave-page){
  padding-top:0!important;
  margin-top:0!important;
}

body.rl-wave-route main.rl-wave-page,
body:has(.rl-wave-page) main.rl-wave-page{
  padding-top:0!important;
  margin-top:0!important;
}

body.rl-wave-route .rl-wave-ocean,
body:has(.rl-wave-page) .rl-wave-ocean{
  margin-top:0!important;
  min-height:100svh;
}

/* El header conserva exactamente su geometría global,
   pero se asegura que sea una capa por encima del agua. */
body.rl-wave-route .rl-r4-header,
body:has(.rl-wave-page) .rl-r4-header{
  position:fixed!important;
  z-index:2147482000!important;
  top:12px;
}

/* El espacio detrás del header pertenece ahora al océano. */
body.rl-wave-route .rl-wave-page,
body:has(.rl-wave-page) .rl-wave-page{
  position:relative;
  z-index:0;
}

@media(max-width:720px){
  body.rl-wave-route .rl-r4-header,
  body:has(.rl-wave-page) .rl-r4-header{
    top:7px;
  }
}

/* RUPTLINE_WAVES_WATER_REAL_R24_3 */
.rl-wave-ocean{
  position:relative;
  overflow:hidden;
}
.rl-wave-waterfx{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  z-index:0;
  pointer-events:none;
  opacity:.98;
}

/* ==========================================================
   RUPTLINE_WAVES_WATER_NATURAL_R24_3A
   ========================================================== */

.rl-wave-ocean > .rl-wave-waterfx{
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
}

.rl-wave-ocean > .rl-wave-ocean__world{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
}

.rl-wave-ocean > .rl-wave-ocean__center{
  position:absolute!important;
  inset:0!important;
  z-index:3!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:13px!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  pointer-events:none!important;
}

.rl-wave-ocean > .rl-wave-ocean__tagline{
  position:absolute!important;
  z-index:4!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:18px!important;
  margin:0!important;
  transform:translateX(-50%)!important;
}

html[data-theme="dark"] .rl-wave-waterfx,
html:not([data-theme="light"]) .rl-wave-waterfx{
  opacity:.64;
}

@media(max-width:720px){
  .rl-wave-ocean > .rl-wave-ocean__center{
    gap:11px!important;
  }

  .rl-wave-ocean > .rl-wave-ocean__tagline{
    bottom:14px!important;
  }
}

/* ==========================================================
   RUPTLINE_WAVES_MODULE2_VIDEO_R24_4
   Dos módulos / un solo fondo vivo.
   ========================================================== */
.rl-wave-stage{position:relative;isolation:isolate;overflow:visible;background:#030812;}
html[data-theme="light"] .rl-wave-stage{background:#d7e7ed;}
.rl-wave-stage__atmosphere{position:fixed;inset:0;z-index:1;overflow:hidden;pointer-events:none;}
.rl-wave-stage__surface-light,.rl-wave-stage__depth{position:absolute;inset:0;pointer-events:none;}
.rl-wave-stage__surface-light{opacity:.20;background:linear-gradient(180deg,rgba(126,190,218,.04),transparent 23%),radial-gradient(ellipse at 50% -12%,rgba(96,178,210,.07),transparent 48%);}
.rl-wave-stage__depth{background:radial-gradient(circle at 50% 16%,transparent 0 20%,rgba(0,0,0,.12) 58%,rgba(0,0,0,.38) 100%),linear-gradient(180deg,rgba(1,5,14,.02) 0 35%,rgba(1,6,18,.22) 100%);}
html[data-theme="light"] .rl-wave-stage__surface-light{opacity:.34;background:linear-gradient(180deg,rgba(255,255,255,.10),transparent 23%),radial-gradient(ellipse at 50% -12%,rgba(255,255,255,.16),transparent 48%);}
html[data-theme="light"] .rl-wave-stage__depth{background:radial-gradient(circle at 50% 16%,transparent 0 24%,rgba(31,67,86,.03) 62%,rgba(31,67,86,.09) 100%),linear-gradient(180deg,transparent 0 48%,rgba(35,74,103,.07) 100%);}
.rl-wave-stage > .rl-wave-waterfx{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;z-index:0!important;pointer-events:none!important;}
.rl-wave-stage > section{position:relative;z-index:3;}
.rl-wave-stage .rl-wave-ocean{min-height:100svh;background:transparent!important;overflow:visible;}
.rl-wave-stage .rl-wave-ocean__world{display:none!important;}

.rl-wave-story{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:128px 24px 118px;background:transparent;}
.rl-wave-story__inner{width:min(1040px,100%);margin:0 auto;}
.rl-wave-video-shell{position:relative;width:min(960px,100%);margin:0 auto;aspect-ratio:16/9;overflow:hidden;border-radius:28px;border:1px solid rgba(255,255,255,.075);background:rgba(3,8,18,.46);box-shadow:0 34px 90px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.035);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
html[data-theme="light"] .rl-wave-video-shell{border-color:rgba(17,40,64,.10);background:rgba(240,249,252,.42);box-shadow:0 34px 90px rgba(39,77,103,.12),inset 0 1px 0 rgba(255,255,255,.48);}
.rl-wave-video{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;opacity:0;transition:opacity .35s ease;}
.rl-wave-video-shell.is-ready .rl-wave-video{opacity:1;}
.rl-wave-video__placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:rgba(242,248,255,.58);transition:opacity .35s ease;}
html[data-theme="light"] .rl-wave-video__placeholder{color:rgba(16,32,57,.50);}
.rl-wave-video-shell.is-ready .rl-wave-video__placeholder{opacity:0;pointer-events:none;}
.rl-wave-video__placeholder-mark{font-size:clamp(26px,3.4vw,44px);line-height:1;font-weight:300;letter-spacing:-.05em;}
.rl-wave-video__placeholder-copy{font-size:9px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;opacity:.58;}
.rl-wave-video__play{position:absolute;left:50%;top:50%;z-index:4;width:58px;height:58px;display:none;align-items:center;justify-content:center;padding:0;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.16);border-radius:50%;color:#fff;background:rgba(4,10,21,.28);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer;transition:transform .2s ease,background .2s ease,opacity .2s ease;}
.rl-wave-video-shell.is-ready .rl-wave-video__play{display:flex;}
.rl-wave-video-shell.is-playing .rl-wave-video__play{opacity:0;pointer-events:none;}
.rl-wave-video__play:hover{transform:translate(-50%,-50%) scale(1.05);background:rgba(8,18,34,.46);}
.rl-wave-video__play span{width:0;height:0;margin-left:4px;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:11px solid currentColor;}
html[data-theme="light"] .rl-wave-video__play{color:#102039;border-color:rgba(16,32,57,.14);background:rgba(255,255,255,.34);}
.rl-wave-story__copy{width:min(680px,calc(100% - 24px));margin:42px auto 0;text-align:center;}
.rl-wave-story__eyebrow{margin:0;color:rgba(229,240,255,.42);font-size:9px;line-height:1;font-weight:400;letter-spacing:.22em;text-transform:uppercase;}
html[data-theme="light"] .rl-wave-story__eyebrow{color:rgba(16,32,57,.42);}
.rl-wave-story__copy h2{margin:15px 0 0;color:var(--wave-text);font-size:clamp(26px,3.2vw,42px);line-height:1.03;font-weight:400;letter-spacing:-.045em;}
.rl-wave-story__text{width:min(620px,100%);margin:18px auto 0;color:rgba(229,240,255,.58);font-size:14px;line-height:1.75;font-weight:300;}
html[data-theme="light"] .rl-wave-story__text{color:rgba(16,32,57,.60);}
@media(max-width:720px){.rl-wave-story{min-height:100svh;padding:104px 16px 88px;}.rl-wave-video-shell{border-radius:20px;}.rl-wave-video__play{width:50px;height:50px;}.rl-wave-story__copy{width:min(100%,560px);margin-top:30px;}.rl-wave-story__copy h2{font-size:30px;}.rl-wave-story__text{font-size:13px;line-height:1.72;}}

/* ==========================================================
   RUPTLINE_WAVES_GLASS_GLOBAL_R24_4A
   RUPTLINE_WAVES_GLASS_SOFT_R24_4B

   Capa fija entre:
     waterfx z0
     atmosphere z1
     GLASS z2
     content z3

   Suaviza las líneas y convierte el movimiento en textura,
   sin borrar la física del agua.
   ========================================================== */

.rl-wave-stage__glass{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;

  background:
    linear-gradient(
      180deg,
      rgba(3,8,18,.10) 0%,
      rgba(3,8,18,.16) 46%,
      rgba(3,8,18,.20) 100%
    );

  backdrop-filter:
    blur(8px)
    saturate(.92)
    contrast(.98);

  -webkit-backdrop-filter:
    blur(8px)
    saturate(.92)
    contrast(.98);

  transform:translateZ(0);
  will-change:backdrop-filter;
}

html[data-theme="light"] .rl-wave-stage__glass{
  background:
    linear-gradient(
      180deg,
      rgba(232,245,250,.10) 0%,
      rgba(232,245,250,.16) 48%,
      rgba(232,245,250,.20) 100%
    );

  backdrop-filter:
    blur(8px)
    saturate(.94)
    contrast(.99);

  -webkit-backdrop-filter:
    blur(8px)
    saturate(.94)
    contrast(.99);
}

/* Garantizar que el contenido quede totalmente nítido. */
.rl-wave-stage > section{
  z-index:3;
}


/* RUPTLINE_WAVES_GLASS_SCOPE_R24_4C
   El vidrio queda limitado al main de Waves; el footer queda fuera. */
.rl-wave-stage__glass{
  position:absolute!important;
  inset:0!important;
}

/* ==========================================================
   RUPTLINE_WAVES_FOOTER_LIGHT_R24_4D
   El canvas del agua es fixed; el footer debe formar una capa
   opaca superior propia para que ninguna onda pueda atravesarlo.
   ========================================================== */

body.rl-wave-route .rl-r4-footer,
body:has(.rl-wave-page) .rl-r4-footer{
  position:relative!important;
  z-index:20!important;
  isolation:isolate!important;
  background:#000!important;
}

body.rl-wave-route .rl-r4-footer::before,
body:has(.rl-wave-page) .rl-r4-footer::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:#000;
  pointer-events:none;
}

/* En Waves el footer permanece negro también cuando la página está clara. */
html[data-theme="light"] body.rl-wave-route .rl-r4-footer,
html[data-theme="light"] body:has(.rl-wave-page) .rl-r4-footer,
html[data-theme="light"] body.rl-wave-route .rl-r4-footer::before,
html[data-theme="light"] body:has(.rl-wave-page) .rl-r4-footer::before{
  background:#000!important;
}

/* ==========================================================
   RUPTLINE_WAVES_STORY_EXTENDED_R24_4E
   Historia editorial en tres actos.
   ========================================================== */

.rl-wave-story__copy{
  width:min(760px,calc(100% - 24px));
}

.rl-wave-story__prose{
  width:min(700px,100%);
  margin:24px auto 0;
  display:grid;
  gap:18px;
}

.rl-wave-story__prose .rl-wave-story__text{
  width:100%;
  margin:0;
  font-size:15px;
  line-height:1.82;
  letter-spacing:-.005em;
}

.rl-wave-story__prose .rl-wave-story__text:first-child{
  color:rgba(236,244,255,.70);
}

html[data-theme="light"] .rl-wave-story__prose .rl-wave-story__text:first-child{
  color:rgba(16,32,57,.72);
}

@media(max-width:720px){
  .rl-wave-story__copy{
    width:min(100%,600px);
  }

  .rl-wave-story__prose{
    margin-top:22px;
    gap:16px;
  }

  .rl-wave-story__prose .rl-wave-story__text{
    font-size:14px;
    line-height:1.76;
  }
}

/* ==========================================================
   RUPTLINE_WAVES_PHASE2_SIMPLE_R24_5
   Story a la izquierda + módulos conceptuales simples.
   ========================================================== */

/* Historia: contenedor centrado, lectura cargada a la izquierda. */
.rl-wave-story__copy{
  width:min(760px,calc(100% - 24px));
  margin:42px auto 0;
  text-align:left;
}

.rl-wave-story__copy h2,
.rl-wave-story__eyebrow,
.rl-wave-story__prose,
.rl-wave-story__text{
  text-align:left;
}

.rl-wave-story__prose{
  width:min(700px,100%);
  margin:24px 0 0;
  display:grid;
  gap:18px;
}

.rl-wave-story__prose .rl-wave-story__text{
  width:100%;
  margin:0;
  font-size:15px;
  line-height:1.82;
}

/* Base de los nuevos módulos: mismo stage, sin tarjetas. */
.rl-wave-module{
  position:relative;
  z-index:3;
  min-height:92svh;
  display:flex;
  align-items:center;
  padding:120px 24px;
  background:transparent;
}

.rl-wave-module__inner{
  width:min(1120px,100%);
  margin:0 auto;
}

.rl-wave-module__inner--narrow{
  width:min(900px,100%);
}

.rl-wave-module__eyebrow{
  margin:0;
  color:rgba(229,240,255,.42);
  font-size:9px;
  line-height:1;
  font-weight:400;
  letter-spacing:.22em;
  text-transform:uppercase;
}

html[data-theme="light"] .rl-wave-module__eyebrow{
  color:rgba(16,32,57,.45);
}

.rl-wave-module h2{
  max-width:850px;
  margin:17px 0 0;
  color:var(--wave-text);
  font-size:clamp(38px,5.7vw,76px);
  line-height:.98;
  font-weight:400;
  letter-spacing:-.055em;
}

.rl-wave-module__lead{
  max-width:680px;
  margin:24px 0 0;
  color:rgba(229,240,255,.60);
  font-size:15px;
  line-height:1.8;
  font-weight:300;
}

html[data-theme="light"] .rl-wave-module__lead{
  color:rgba(16,32,57,.64);
}

/* 1. La señal se propaga */
.rl-wave-signal-field{
  position:relative;
  height:300px;
  margin-top:54px;
  border-top:1px solid rgba(255,255,255,.05);
  border-bottom:1px solid rgba(255,255,255,.05);
}

html[data-theme="light"] .rl-wave-signal-field{
  border-color:rgba(16,32,57,.07);
}

.rl-wave-signal-field span{
  position:absolute;
  color:rgba(238,246,255,.42);
  font-size:clamp(18px,2.4vw,34px);
  line-height:1;
  font-weight:300;
  letter-spacing:-.035em;
  transition:color .22s ease,transform .22s ease,opacity .22s ease;
}

html[data-theme="light"] .rl-wave-signal-field span{
  color:rgba(16,32,57,.46);
}

.rl-wave-signal-field span:hover{
  color:var(--wave-text);
  transform:scale(1.04);
}

.rl-wave-signal-field span:nth-child(1){left:3%;top:21%;}
.rl-wave-signal-field span:nth-child(2){left:30%;top:11%;}
.rl-wave-signal-field span:nth-child(3){right:8%;top:28%;}
.rl-wave-signal-field span:nth-child(4){left:16%;bottom:18%;}
.rl-wave-signal-field span:nth-child(5){left:48%;bottom:12%;}
.rl-wave-signal-field span:nth-child(6){right:5%;bottom:24%;}

.rl-wave-chain{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:9px 14px;
  margin:34px 0 0;
  color:rgba(229,240,255,.52);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

html[data-theme="light"] .rl-wave-chain{
  color:rgba(16,32,57,.52);
}

.rl-wave-chain i{
  opacity:.38;
  font-style:normal;
}

/* 2. Antes de responder, entiende */
.rl-wave-understand{
  text-align:center;
}

.rl-wave-understand .rl-wave-module__eyebrow,
.rl-wave-understand h2{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

.rl-wave-question{
  max-width:1000px!important;
}

.rl-wave-context-lines{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px 0;
  margin:48px auto 0;
}

.rl-wave-context-lines span{
  position:relative;
  padding:0 20px;
  color:rgba(234,244,255,.58);
  font-size:13px;
  font-weight:300;
}

.rl-wave-context-lines span + span::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:3px;
  height:3px;
  border-radius:50%;
  background:currentColor;
  opacity:.32;
  transform:translate(-50%,-50%);
}

html[data-theme="light"] .rl-wave-context-lines span{
  color:rgba(16,32,57,.62);
}

.rl-wave-understand__answer{
  max-width:700px;
  margin:34px auto 0;
  color:var(--wave-text);
  font-size:clamp(17px,2vw,23px);
  line-height:1.55;
  font-weight:300;
  letter-spacing:-.02em;
}

/* 3. De señal a movimiento */
.rl-wave-action{
  text-align:center;
}

.rl-wave-action .rl-wave-module__eyebrow,
.rl-wave-action h2{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

.rl-wave-action__steps{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px 20px;
  margin:54px auto 0;
  color:var(--wave-text);
  font-size:clamp(30px,5vw,70px);
  line-height:1;
  font-weight:300;
  letter-spacing:-.055em;
}

.rl-wave-action__steps i{
  color:rgba(229,240,255,.22);
  font-size:.48em;
  font-style:normal;
}

html[data-theme="light"] .rl-wave-action__steps i{
  color:rgba(16,32,57,.24);
}

.rl-wave-action__examples{
  margin:32px auto 0;
  color:rgba(229,240,255,.46);
  font-size:11px;
  line-height:1.7;
  letter-spacing:.08em;
  text-transform:uppercase;
}

html[data-theme="light"] .rl-wave-action__examples{
  color:rgba(16,32,57,.48);
}

.rl-wave-module__lead--center{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

/* 4. La superficie */
.rl-wave-surface{
  min-height:96svh;
  text-align:center;
}

.rl-wave-surface__inner{
  width:min(900px,100%);
  margin:0 auto;
}

.rl-wave-surface .rl-wave-module__eyebrow{
  text-align:center;
}

.rl-wave-surface h2{
  max-width:none;
  margin:18px 0 0;
  text-align:center;
  font-size:clamp(78px,14vw,190px);
  font-weight:300;
  letter-spacing:-.075em;
}

.rl-wave-surface__statement{
  margin:24px 0 0;
  color:var(--wave-text);
  font-size:clamp(20px,2.7vw,32px);
  line-height:1.2;
  font-weight:300;
  letter-spacing:-.035em;
}

.rl-wave-surface__copy{
  max-width:650px;
  margin:20px auto 0;
  color:rgba(229,240,255,.54);
  font-size:14px;
  line-height:1.8;
  font-weight:300;
}

html[data-theme="light"] .rl-wave-surface__copy{
  color:rgba(16,32,57,.60);
}

@media(max-width:720px){
  .rl-wave-story__copy{
    width:min(100%,600px);
    margin-top:30px;
    text-align:left;
  }

  .rl-wave-story__prose{
    margin-top:22px;
    gap:16px;
  }

  .rl-wave-story__prose .rl-wave-story__text{
    font-size:14px;
    line-height:1.76;
  }

  .rl-wave-module{
    min-height:auto;
    padding:106px 18px;
  }

  .rl-wave-module h2{
    font-size:clamp(36px,11vw,58px);
  }

  .rl-wave-signal-field{
    height:auto;
    margin-top:42px;
    padding:30px 0;
    display:flex;
    flex-wrap:wrap;
    gap:18px 24px;
  }

  .rl-wave-signal-field span{
    position:static;
    font-size:22px;
  }

  .rl-wave-context-lines{
    margin-top:38px;
    gap:14px 0;
  }

  .rl-wave-context-lines span{
    width:50%;
    padding:0 10px;
    font-size:12px;
  }

  .rl-wave-context-lines span + span::before{
    display:none;
  }

  .rl-wave-action__steps{
    margin-top:42px;
    gap:12px;
    font-size:clamp(34px,10vw,48px);
  }

  .rl-wave-action__steps i{
    width:100%;
    font-size:18px;
  }

  .rl-wave-action__examples{
    max-width:330px;
  }

  .rl-wave-surface{
    min-height:88svh;
  }

  .rl-wave-surface h2{
    font-size:clamp(82px,24vw,132px);
  }
}


/* ==========================================================
   RUPTLINE_WAVES_CLOSURE_REAL_LOGOS_R24_5A
   Cierre final con logos reales pequeños.
   ========================================================== */

.rl-wave-u-sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.rl-wave-surface__inner{
  width:min(920px, calc(100% - 32px));
  margin:0 auto;
  display:grid;
  justify-items:center;
  gap:22px;
  text-align:center;
}

.rl-wave-closure__logos{
  display:grid;
  justify-items:center;
  gap:14px;
}

.rl-wave-closure__ruptline-logo{
  display:block;
  max-width:min(180px, 42vw);
  width:100%;
  height:auto;
  opacity:.96;
}

.rl-wave-closure__waves-logo{
  display:block;
  max-width:min(220px, 50vw);
  width:100%;
  height:auto;
  opacity:.98;
}

.rl-wave-closure__waves-logo--light{ display:none; }

html[data-theme="light"] .rl-wave-closure__waves-logo--dark{ display:none; }
html[data-theme="light"] .rl-wave-closure__waves-logo--light{ display:block; }

.rl-wave-surface__copy{
  width:min(640px, 100%);
  margin:0 auto;
}

@media (max-width: 720px){
  .rl-wave-closure__ruptline-logo{ max-width:min(150px, 46vw); }
  .rl-wave-closure__waves-logo{ max-width:min(180px, 58vw); }
}
