/* ============================================================
   Retail Experts — capa de refresh visual
   Se carga DESPUÉS del <style> de cada página, así que sobreescribe
   los fondos planos sin tocar el HTML ni el contenido.
   ============================================================ */

:root {
  --rx-purple-900: #1C0327;
  --rx-purple-800: #240430;
  --rx-purple-700: #2E0640;
  --rx-purple-600: #45095C;
  --rx-purple-500: #5A0D74;
  --rx-purple-400: #6B1288;
  --rx-purple-300: #8A2BA8;
  --rx-purple-200: #B15ACF;
  --rx-purple-100: #C77DE0;
  --rx-lilac: #E9C6F7;
  --rx-orange: #FF5A1F;
  --rx-orange-200: #FFB08A;
}

/* ---------- 1. Profundidad en las superficies moradas ---------- */
/* Pozos de luz claros y zonas oscuras, en vez de un morado fijo */

.hero,
.page-hero {
  background:
    radial-gradient(1100px 720px at 6% -8%, var(--rx-purple-300) 0%, rgba(138,43,168,0) 62%),
    radial-gradient(900px 620px at 96% 112%, var(--rx-purple-400) 0%, rgba(107,18,136,0) 60%),
    radial-gradient(760px 540px at 64% 36%, var(--rx-purple-600) 0%, rgba(69,9,92,0) 70%),
    linear-gradient(162deg, var(--rx-purple-700) 0%, var(--rx-purple-900) 56%, var(--rx-purple-800) 100%);
}

.clients {
  background:
    radial-gradient(820px 560px at 88% 8%, var(--rx-purple-300) 0%, rgba(138,43,168,0) 58%),
    radial-gradient(900px 620px at 4% 92%, var(--rx-purple-400) 0%, rgba(107,18,136,0) 62%),
    linear-gradient(150deg, var(--rx-purple-900) 0%, var(--rx-purple-700) 52%, var(--rx-purple-800) 100%);
}

.services {
  background:
    radial-gradient(880px 600px at 96% 4%, var(--rx-purple-400) 0%, rgba(107,18,136,0) 60%),
    radial-gradient(760px 520px at 10% 96%, var(--rx-purple-300) 0%, rgba(138,43,168,0) 58%),
    linear-gradient(200deg, var(--rx-purple-800) 0%, var(--rx-purple-900) 55%, var(--rx-purple-700) 100%);
}

.what,
.svc-cta,
.case-cta,
.footer {
  background:
    radial-gradient(760px 520px at 12% 0%, var(--rx-purple-600) 0%, rgba(69,9,92,0) 62%),
    radial-gradient(680px 480px at 94% 100%, var(--rx-purple-500) 0%, rgba(90,13,116,0) 60%),
    linear-gradient(170deg, var(--rx-purple-900) 0%, #150220 60%, var(--rx-purple-900) 100%);
}

/* El velo naranja de los heroes ya existía: lo suavizamos para que
   no compita con los nuevos pozos de luz */
.hero::before,
.page-hero::before,
.clients::before {
  opacity: 0.55;
}

/* ---------- 2. Movimiento ambiental (auroras lentas) ---------- */

.hero::after,
.page-hero::after,
.clients::after,
.services::after,
.what::after {
  content: '';
  position: absolute;
  inset: -20% -10%;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(420px 420px at 20% 30%, rgba(255,90,31,0.16), transparent 62%),
    radial-gradient(520px 520px at 78% 68%, rgba(199,125,224,0.18), transparent 64%);
  animation: rxAurora 26s ease-in-out infinite alternate;
}
.services::after { animation-duration: 34s; animation-direction: alternate-reverse; }
.what::after { animation-duration: 30s; }
.clients::after { animation-duration: 38s; animation-direction: alternate-reverse; }

@keyframes rxAurora {
  0%   { transform: translate3d(-3%, -2%, 0) scale(1); }
  50%  { transform: translate3d(2%, 3%, 0) scale(1.08); }
  100% { transform: translate3d(4%, -3%, 0) scale(1.02); }
}

.hero .container,
.page-hero .container,
.clients .container,
.services .container,
.what .container,
.hero-grid,
.hero-stats { position: relative; z-index: 2; }

/* ---------- 3. Costura entre secciones: la "ruta" del login ---------- */

.what,
.clients,
.services,
.diff,
.values,
.contact,
.svc-cta,
.case-cta,
.story,
.team,
.case {
  position: relative;
}

.what::before,
.clients::before,
.services::before,
.svc-cta::before,
.case-cta::before {
  z-index: 3;
}

.rx-seam {
  position: relative;
  height: 0;
  overflow: visible;
  z-index: 5;
}
.rx-seam::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(255,90,31,0.75) 22%, rgba(255,176,138,0.9) 50%, rgba(255,90,31,0.75) 78%, transparent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 1.1s cubic-bezier(.4,0,.2,1);
}
.rx-seam.in-view::before { transform: scaleX(1); }

/* ---------- 4. Superficies claras con algo de aire ---------- */

.diff,
.values,
.about,
.story,
.team,
.case,
.svc {
  background-image:
    radial-gradient(700px 420px at 92% 0%, rgba(199,125,224,0.13), transparent 62%),
    radial-gradient(620px 420px at 4% 100%, rgba(255,90,31,0.07), transparent 60%);
  background-repeat: no-repeat;
}

/* ---------- 5. Nav consistente con el login ---------- */

.nav {
  background: rgba(255, 248, 231, 0.78);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  backdrop-filter: blur(16px) saturate(140%);
  border-bottom: 1px solid rgba(90, 13, 116, 0.1);
}
.nav.rx-scrolled {
  background: rgba(36, 4, 48, 0.9);
  border-bottom-color: rgba(255, 248, 231, 0.14);
  box-shadow: 0 14px 40px rgba(12, 1, 20, 0.4);
}
.nav.rx-scrolled .nav-links a,
.nav.rx-scrolled .logo { color: var(--rx-lilac); }
.nav.rx-scrolled .nav-links a:hover { color: var(--rx-orange); }
.nav.rx-scrolled .logo-img { filter: brightness(0) invert(1) opacity(0.92); }
.nav.rx-scrolled .mobile-toggle .mt-bar { background: var(--rx-lilac); }
.nav.rx-scrolled .nav-cta-client {
  background: transparent;
  border-color: rgba(255, 248, 231, 0.32);
  box-shadow: none;
}
.nav.rx-scrolled .nav-cta-client:hover {
  background: rgba(255, 248, 231, 0.12);
  border-color: var(--rx-orange);
  color: #fff;
}

/* Barra de progreso de lectura */
.rx-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0;
  z-index: 200;
  background: linear-gradient(90deg, var(--rx-orange), var(--rx-orange-200));
  box-shadow: 0 0 14px rgba(255, 90, 31, 0.55);
  transition: width 0.12s linear;
  pointer-events: none;
}

/* Guía de scroll en celular */
.rx-rail { display: none; }
@media (max-width: 900px) {
  html { scrollbar-width: none; }
  html::-webkit-scrollbar { display: none; }
  .rx-rail {
    display: block;
    position: fixed;
    top: 0;
    right: 2px;
    bottom: 0;
    width: 3px;
    z-index: 200;
    pointer-events: none;
    background: rgba(255, 248, 231, 0.14);
    border-radius: 3px;
  }
  .rx-rail span {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    border-radius: 3px;
    background: var(--rx-accent);
    box-shadow: 0 0 8px rgba(255, 90, 31, 0.55);
  }
}

/* ---------- 6. Tarjetas y bloques con relieve ---------- */

.diff-card,
.value-card,
.comparison-col,
.case-card {
  transition: transform .45s cubic-bezier(.4,0,.2,1), box-shadow .45s ease, border-color .35s ease, background .35s ease;
}
.diff-card:hover,
.value-card:hover,
.case-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 34px 64px rgba(61, 8, 80, 0.18);
}
.comparison-col:not(.highlight):hover {
  background: rgba(255, 248, 231, 0.08);
  border-color: rgba(255, 176, 138, 0.45);
  transform: translateY(-6px);
}
.comparison-col.highlight {
  background: linear-gradient(150deg, var(--rx-orange), #E8410B);
  box-shadow: 0 26px 60px rgba(255, 90, 31, 0.34);
}

/* El número gigante de las tarjetas respira al pasar el mouse */
.diff-card::before { transition: color .35s ease, transform .5s cubic-bezier(.4,0,.2,1); }
.diff-card:hover::before { transform: translateY(-6px) scale(1.06); }

/* Íconos con destello suave */
.diff-icon,
.svc-icon,
.value-icon,
.contact-list .icon {
  position: relative;
  overflow: hidden;
}
.diff-icon::after,
.svc-icon::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.4) 48%, transparent 66%);
  transform: translateX(-120%);
  animation: rxSheen 6.5s ease-in-out infinite;
}
.svc-icon::after { animation-delay: 1.4s; }
@keyframes rxSheen {
  0%, 62% { transform: translateX(-120%); }
  78%, 100% { transform: translateX(120%); }
}

/* Grilla de servicios: la celda activa se ilumina desde el borde */
.service-item { overflow: hidden; }
.service-item::after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, var(--rx-orange), rgba(255,176,138,0.2));
  transform: scaleY(0);
  transform-origin: top;
  transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.service-item:hover::after { transform: scaleY(1); }
.service-item:hover { background: rgba(255, 90, 31, 0.1); }

/* Logos de clientes sobre morado con profundidad */
.client-logo {
  background: rgba(255, 248, 231, 0.045);
  backdrop-filter: blur(2px);
}
.client-logo:hover { background: rgba(255, 90, 31, 0.14); }
.clients-grid {
  background: rgba(255, 248, 231, 0.1);
  box-shadow: 0 30px 70px rgba(12, 1, 20, 0.35);
}

/* ---------- 7. Botones ---------- */

.btn-primary,
.nav-cta,
.form-submit,
.nav-cta-client {
  position: relative;
  overflow: hidden;
}
.btn-primary::after,
.nav-cta::after,
.form-submit::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 34%, rgba(255,255,255,0.38) 50%, transparent 66%);
  transform: translateX(-130%);
  transition: transform .7s cubic-bezier(.4,0,.2,1);
}
.btn-primary:hover::after,
.nav-cta:hover::after,
.form-submit:hover::after { transform: translateX(130%); }

/* ---------- 8. Cifras y textos destacados ---------- */

.stat-num {
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 34px rgba(255, 90, 31, 0.35);
}
.hero-eyebrow-dot {
  animation: rxPulse 2.4s ease-in-out infinite;
}
@keyframes rxPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255,90,31,0.55); }
  50% { box-shadow: 0 0 0 7px rgba(255,90,31,0); }
}

/* ---------- 9. Reveal con escalonado ---------- */

.reveal {
  transition: opacity .85s cubic-bezier(.4,0,.2,1), transform .85s cubic-bezier(.4,0,.2,1);
}
.rx-stagger > * {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .8s cubic-bezier(.4,0,.2,1), transform .8s cubic-bezier(.4,0,.2,1);
}
.rx-stagger.in-view > * { opacity: 1; transform: none; }
.rx-stagger.in-view > *:nth-child(1) { transition-delay: .04s; }
.rx-stagger.in-view > *:nth-child(2) { transition-delay: .12s; }
.rx-stagger.in-view > *:nth-child(3) { transition-delay: .2s; }
.rx-stagger.in-view > *:nth-child(4) { transition-delay: .28s; }
.rx-stagger.in-view > *:nth-child(5) { transition-delay: .36s; }
.rx-stagger.in-view > *:nth-child(6) { transition-delay: .44s; }

/* ---------- 10. Transición entre páginas (fluidez al navegar) ---------- */

body { opacity: 1; transition: opacity .34s ease; }
body.rx-leaving { opacity: 0; }

.rx-curtain {
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  background: linear-gradient(160deg, var(--rx-purple-700), var(--rx-purple-900));
  transform: translateY(100%);
  transition: transform .5s cubic-bezier(.65,0,.35,1);
}
body.rx-leaving .rx-curtain { transform: translateY(0); }

/* ---------- 11. Formularios ---------- */

.form-group input:focus,
.form-group textarea:focus {
  border-color: var(--rx-orange);
  box-shadow: 0 0 0 3px rgba(255, 90, 31, 0.18);
}

/* ---------- 12. Accesibilidad ---------- */

@media (prefers-reduced-motion: reduce) {
  .hero::after, .page-hero::after, .clients::after, .services::after, .what::after,
  .diff-icon::after, .svc-icon::after, .hero-eyebrow-dot { animation: none; }
  .reveal, .rx-stagger > * { transition: none; }
  .rx-curtain { display: none; }
}


/* ============================================================
   Ajustes v2
   ============================================================ */

/* ---------- Nav: dentro del mismo fondo morado ---------- */

.nav,
.nav.rx-scrolled {
  background:
    radial-gradient(620px 300px at 4% 0%, var(--rx-purple-300) 0%, rgba(138,43,168,0) 66%),
    radial-gradient(560px 280px at 82% 120%, var(--rx-purple-400) 0%, rgba(107,18,136,0) 64%),
    linear-gradient(120deg, var(--rx-purple-700) 0%, var(--rx-purple-900) 58%, var(--rx-purple-800) 100%);
  border-bottom: 1px solid rgba(255, 248, 231, 0.12);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
.nav.rx-scrolled { box-shadow: 0 16px 44px rgba(12, 1, 20, 0.45); }

.nav-inner { position: relative; }
.nav .logo { margin-right: auto; }
.nav .logo-img,
.nav.rx-scrolled .logo-img { filter: none; }

.nav-links a,
.nav.rx-scrolled .nav-links a { color: rgba(255, 248, 231, 0.84); }
.nav-links a:hover,
.nav.rx-scrolled .nav-links a:hover { color: var(--rx-orange-200); }
.nav-links a::after { background: var(--rx-orange); }

.nav-cta,
.nav .nav-cta {
  background: var(--rx-orange);
  border-color: var(--rx-orange);
  color: #240430;
  box-shadow: 0 10px 24px rgba(255, 90, 31, 0.28);
}
.nav-cta:hover,
.nav .nav-cta:hover {
  background: var(--rx-orange-200);
  border-color: var(--rx-orange-200);
  color: #240430;
}
.nav-cta-client,
.nav.rx-scrolled .nav-cta-client {
  background: transparent;
  border: 1.5px solid rgba(255, 248, 231, 0.36);
  color: #FFF8E7;
  box-shadow: none;
}
.nav-cta-client:hover,
.nav.rx-scrolled .nav-cta-client:hover {
  background: rgba(255, 248, 231, 0.14);
  border-color: var(--rx-orange);
  color: #FFF8E7;
}
.mobile-toggle .mt-bar,
.nav.rx-scrolled .mobile-toggle .mt-bar { background: var(--rx-lilac); }

.nav-links-mobile {
  background: linear-gradient(160deg, var(--rx-purple-700), var(--rx-purple-900));
  border-top: 1px solid rgba(255, 248, 231, 0.12);
}
.nav-links-mobile a { color: rgba(255, 248, 231, 0.88); border-bottom-color: rgba(255, 248, 231, 0.1); }
.nav-links-mobile a:hover { color: var(--rx-orange-200); }

/* ---------- Títulos legibles sobre los nuevos fondos ---------- */

.what .section-title,
.clients .section-title,
.services .section-title { color: #FFF8E7; }
.what .section-title em,
.clients .section-title em,
.services .section-title em { color: var(--rx-orange-200); }
.what .section-lead,
.clients-sub { color: rgba(255, 248, 231, 0.76); }
.what .section-tag,
.clients .section-tag { color: var(--rx-orange-200); }
.what .section-tag::before,
.clients .section-tag::before { background: var(--rx-orange); }
.clients::before { display: none; }

/* ---------- Clientes: una sola fila navegable ---------- */

.rx-carousel {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 14px;
}
.rx-carousel .clients-grid {
  display: flex;
  grid-template-columns: none;
  gap: 0;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  scroll-behavior: smooth;
  border-radius: 20px;
  border: 1px solid rgba(255, 248, 231, 0.16);
  background: rgba(255, 248, 231, 0.07);
  box-shadow: 0 26px 60px rgba(12, 1, 20, 0.34);
}
.rx-carousel .client-logo {
  flex: 0 0 25%;
  max-width: 25%;
  background: transparent;
  border-right: 1px solid rgba(255, 248, 231, 0.12);
  padding: 38px 26px;
}
.rx-carousel .client-logo:last-child { border-right: none; }
.rx-carousel .client-logo img { max-height: 54px; width: auto; }

.rx-arrow {
  flex: none;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 248, 231, 0.34);
  background: rgba(255, 248, 231, 0.08);
  color: #FFF8E7;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.rx-arrow:hover {
  background: var(--rx-orange);
  border-color: var(--rx-orange);
  color: #240430;
  transform: scale(1.06);
}
.rx-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 22px;
  position: relative;
  z-index: 2;
}
.rx-dots button {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 248, 231, 0.3);
  cursor: pointer;
  transition: background .25s ease, width .25s ease, border-radius .25s ease;
}
.rx-dots button.active {
  width: 24px;
  border-radius: 999px;
  background: var(--rx-orange);
}
@media (max-width: 900px) {
  .rx-carousel .client-logo { flex-basis: 50%; max-width: 50%; }
}
@media (max-width: 560px) {
  .rx-carousel .client-logo { flex-basis: 100%; max-width: 100%; }
  .rx-arrow { width: 38px; height: 38px; }
}

/* ---------- Contacto: naranjo pastel con profundidad ---------- */

.contact {
  background:
    radial-gradient(900px 620px at 6% -10%, #FFE2CF 0%, rgba(255,226,207,0) 62%),
    radial-gradient(760px 560px at 96% 110%, #F6C7A6 0%, rgba(246,199,166,0) 60%),
    radial-gradient(640px 460px at 62% 44%, #FFF1E2 0%, rgba(255,241,226,0) 68%),
    linear-gradient(158deg, #FFD9BE 0%, #F2B695 52%, #FFE7D3 100%);
  color: #2E0640;
}
.contact::before {
  background: radial-gradient(circle, rgba(90,13,116,0.14) 0%, transparent 70%);
}
.contact::after {
  content: '';
  position: absolute;
  inset: -18% -8%;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(420px 420px at 24% 34%, rgba(255,255,255,0.5), transparent 62%),
    radial-gradient(480px 480px at 76% 66%, rgba(90,13,116,0.1), transparent 64%);
  animation: rxAurora 30s ease-in-out infinite alternate;
}
.contact .section-tag { color: var(--rx-purple-500); }
.contact .section-tag::before { background: var(--rx-purple-500); }
.contact .section-title { color: var(--rx-purple-700); }
.contact .section-title em { color: #D9430E; }
.contact-lead { color: rgba(46, 6, 64, 0.8); }
.contact-list li {
  color: var(--rx-purple-700);
  border-bottom-color: rgba(90, 13, 116, 0.18);
}
.contact-list .icon {
  background: rgba(90, 13, 116, 0.12);
  color: var(--rx-purple-500);
}
.contact-form,
.contact .form-card {
  background: rgba(255, 255, 255, 0.72);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.8);
  box-shadow: 0 30px 70px rgba(90, 13, 116, 0.18);
}
.contact .form-submit {
  background: var(--rx-purple-500);
  border-color: var(--rx-purple-500);
  color: #FFF8E7;
}
.contact .form-submit:hover {
  background: var(--rx-purple-700);
  border-color: var(--rx-purple-700);
}


/* ============================================================
   Ajustes v3
   ============================================================ */

/* ---------- Un solo naranjo en toda la marca ---------- */

:root {
  --rx-accent: #FF6F3C;
  --rx-accent-soft: #FF9166;
  --rx-accent-deep: #E8541C;
  --orange: #FF6F3C;
  --orange-light: #FF9166;
}

.nav-links a::after,
.hero-eyebrow-dot,
.section-tag::before,
.diff-icon,
.service-item::after,
.rx-seam::before,
.rx-progress,
.footer-bottom .tag,
::selection { background: var(--rx-accent); }

.hero h1 .accent,
.section-title em,
.stat-num,
.footer-col h4,
.service-num,
.footer-col a:hover,
.nav-links a:hover { color: var(--rx-accent); }

.hero-eyebrow-dot { box-shadow: 0 0 12px var(--rx-accent); }
.btn-primary,
.nav-cta,
.nav .nav-cta { background: var(--rx-accent); border-color: var(--rx-accent); }
.btn-primary:hover,
.nav-cta:hover,
.nav .nav-cta:hover { background: var(--rx-accent-soft); border-color: var(--rx-accent-soft); }
.rx-arrow:hover { background: var(--rx-accent); border-color: var(--rx-accent); }
.rx-dots button.active { background: var(--rx-accent); }
.what .section-title em,
.clients .section-title em,
.services .section-title em,
.what .section-tag,
.clients .section-tag { color: var(--rx-accent-soft); }
.what .section-tag::before,
.clients .section-tag::before { background: var(--rx-accent); }

/* ---------- "impulsa": destacado sin subrayado ---------- */

.hero h1 .underline::after { display: none; }
.hero h1 .underline {
  background: linear-gradient(100deg, #FFF8E7 0%, var(--rx-accent-soft) 42%, var(--rx-accent) 58%, #FFF8E7 100%);
  background-size: 260% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  font-weight: 800;
  animation: rxSweep 7s ease-in-out infinite;
}
@keyframes rxSweep {
  0%, 100% { background-position: 0% 0; }
  50% { background-position: 100% 0; }
}

/* ---------- Qué hacemos + Diferencial en un solo apartado ---------- */

.rx-merged-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
  position: relative;
  z-index: 2;
}
.rx-merged-right {
  border-left: 1px solid rgba(255, 248, 231, 0.16);
  padding-left: 56px;
}
.rx-pillars-title {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2vw, 1.85rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #FFF8E7;
  margin-bottom: 28px;
}
.rx-pillars-title em { color: var(--rx-accent-soft); font-style: italic; }

.rx-flow { display: flex; flex-direction: column; gap: 12px; margin-top: 28px; }
.rx-flow-step {
  border: 1px solid rgba(255, 248, 231, 0.16);
  border-radius: 16px;
  padding: 18px 20px;
  background: linear-gradient(140deg, rgba(255,248,231,0.09), rgba(255,248,231,0.02));
}
.rx-flow-step.highlight {
  border-color: rgba(255, 111, 60, 0.5);
  background: linear-gradient(140deg, rgba(255,111,60,0.2), rgba(255,111,60,0.05));
}
.rx-flow-label {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--rx-accent-soft);
  margin-bottom: 8px;
}
.rx-flow-step p {
  color: rgba(255, 248, 231, 0.84);
  font-size: 0.96rem;
  line-height: 1.55;
}
.rx-flow-arrow { display: flex; justify-content: center; }
.rx-flow-arrow svg { width: 24px; height: 24px; stroke: var(--rx-accent); }

.rx-pillars { display: flex; flex-direction: column; gap: 18px; }
.rx-pillar {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 18px 20px;
  border-radius: 16px;
  border: 1px solid rgba(255, 248, 231, 0.14);
  background: linear-gradient(140deg, rgba(255,248,231,0.08), rgba(255,248,231,0.015));
  transition: border-color .3s ease, transform .3s ease, background .3s ease;
}
.rx-pillar:hover {
  border-color: rgba(255, 111, 60, 0.55);
  background: linear-gradient(140deg, rgba(255,111,60,0.16), rgba(255,111,60,0.03));
  transform: translateX(6px);
}
.rx-pillar-num {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1;
  color: var(--rx-accent);
  flex: none;
  min-width: 34px;
}
.rx-pillar h4 {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  color: #FFF8E7;
  letter-spacing: -0.01em;
  margin-bottom: 6px;
  line-height: 1.2;
}
.rx-pillar-kicker {
  display: inline-block;
  margin-left: 8px;
  padding: 3px 9px;
  border-radius: 999px;
  font-family: var(--font-body, inherit);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rx-accent-soft);
  border: 1px solid rgba(255, 145, 102, 0.5);
  vertical-align: middle;
}
.rx-pillar p {
  color: rgba(255, 248, 231, 0.76);
  font-size: 0.92rem;
  line-height: 1.5;
}
@media (max-width: 900px) {
  .rx-merged-grid { grid-template-columns: 1fr; gap: 40px; }
  .rx-merged-right { border-left: 0; padding-left: 0; padding-top: 34px; border-top: 1px solid rgba(255,248,231,0.16); }
}

/* ---------- Clientes: fila centrada, sin barra divisoria ---------- */

.rx-carousel .clients-grid {
  border: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  justify-content: flex-start;
}
.rx-carousel .client-logo {
  border-right: 0;
  background: transparent;
  padding: 30px 22px;
}
.rx-carousel { justify-content: center; }
.rx-dots { display: none; }

/* ---------- Contacto: una sola paleta morada ---------- */

.contact .section-tag,
.contact .section-title,
.contact .section-title em,
.contact-lead,
.contact-list li,
.contact-list li span,
.contact-form h3,
.contact-form p,
.form-group label { color: var(--rx-purple-700); }
.contact .section-title em { color: var(--rx-purple-500); font-style: italic; }
.contact-lead { color: rgba(46, 6, 64, 0.82); }

.contact-list a {
  color: var(--rx-purple-500);
  text-decoration: none;
  font-weight: 700;
  border-bottom: 1px solid rgba(90, 13, 116, 0.35);
  transition: color .25s ease, border-color .25s ease;
}
.contact-list a:hover {
  color: var(--rx-purple-300);
  border-bottom-color: var(--rx-purple-300);
}
.contact-list .placeholder { color: inherit; }
.contact-list .icon svg { stroke: var(--rx-purple-500); }
.contact-list .icon {
  background: rgba(90, 13, 116, 0.14);
  color: var(--rx-purple-500);
}
.form-group input,
.form-group textarea {
  background: rgba(255, 255, 255, 0.9);
  border: 1.5px solid rgba(90, 13, 116, 0.22);
  color: var(--rx-purple-900);
}
.form-group input:focus,
.form-group textarea:focus {
  border-color: var(--rx-purple-500);
  box-shadow: 0 0 0 3px rgba(90, 13, 116, 0.14);
  background: #fff;
}
.contact .form-submit,
.contact .form-submit:hover { color: #FFF8E7; }


/* ============================================================
   Ajustes v4
   ============================================================ */

/* ---------- El barrido de luz en todas las palabras acento ---------- */

.hero h1 .accent,
.section-title em,
.rx-pillars-title em,
.footer-bottom .tag,
.rx-flow-label,
.service-item:hover .service-title,
.stat-num {
  background-image: linear-gradient(100deg, #FFF8E7 0%, var(--rx-accent-soft) 40%, var(--rx-accent) 56%, #FFF8E7 100%);
  background-size: 260% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: rxSweep 7s ease-in-out infinite;
}
/* sobre fondos claros el barrido va de naranjo a morado, para que se lea */
.what.rx-merged .section-title em,
.rx-pillars-title em { animation-delay: .6s; }
.clients .section-title em { animation-delay: 1.2s; }
.services .section-title em { animation-delay: 1.8s; }
.contact .section-title em {
  background-image: linear-gradient(100deg, var(--rx-purple-500) 0%, var(--rx-accent-deep) 46%, var(--rx-purple-500) 100%);
}
.footer-bottom .tag { background-size: 300% 100%; }

/* ---------- Barrido de luz sobre el logo ---------- */

.nav .logo,
.footer-brand .logo { position: relative; display: inline-flex; }
.nav .logo::after,
.footer-brand .logo::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(100deg, rgba(255,248,231,0) 34%, rgba(255,248,231,0.85) 50%, rgba(255,248,231,0) 66%);
  background-size: 260% 100%;
  -webkit-mask-image: url("logo-rx.png");
  mask-image: url("logo-rx.png");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: left center;
  mask-position: left center;
  mix-blend-mode: soft-light;
  animation: rxSweep 7s ease-in-out infinite;
}
.footer-brand .logo::after { animation-delay: 1.4s; }

/* ---------- Qué hacemos: título más chico, flujo horizontal ---------- */

.what.rx-merged .section-title {
  font-size: clamp(1.5rem, 2.1vw, 2rem);
  line-height: 1.12;
  margin-bottom: 4px;
}
.rx-merged-grid { grid-template-columns: 0.92fr 1.08fr; gap: 48px; }
.rx-merged-right { padding-left: 48px; }
@media (max-width: 900px) {
  .rx-merged-grid { grid-template-columns: 1fr; gap: 40px; }
  .rx-merged-right { padding-left: 0; }
}

.rx-flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  margin-top: 26px;
}
.rx-flow-step {
  border: 0;
  border-radius: 0;
  padding: 0;
  background: none;
}
.rx-flow-step.highlight {
  border: 0;
  background: none;
  padding-left: 18px;
  border-left: 2px solid rgba(255, 111, 60, 0.55);
}
.rx-flow-label {
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  margin-bottom: 10px;
}
.rx-flow-step p { font-size: 0.93rem; line-height: 1.5; }
.rx-flow-step.highlight p { color: #FFF8E7; font-weight: 500; }
.rx-flow-arrow svg { width: 26px; height: 26px; opacity: .9; }
@media (max-width: 620px) {
  .rx-flow { grid-template-columns: 1fr; }
  .rx-flow-arrow svg { transform: rotate(90deg); }
}

/* ---------- Diferencial en escalera ---------- */

.rx-stairs {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 4px;
}
.rx-stairs .rx-pillar {
  display: grid;
  grid-template-columns: auto auto 1fr;
  grid-template-areas: 'ico num title' '. . desc';
  column-gap: 14px;
  row-gap: 4px;
  align-items: center;
  padding: 16px 18px;
  width: 88%;
}
.rx-stairs .rx-pillar[data-step="2"] { margin-left: 6%; }
.rx-stairs .rx-pillar[data-step="3"] { margin-left: 12%; }
.rx-stairs .rx-pillar:hover { transform: translateX(4px); }
.rx-pillar-ico {
  grid-area: ico;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: rgba(255, 111, 60, 0.16);
  border: 1px solid rgba(255, 111, 60, 0.4);
  flex: none;
}
.rx-pillar-ico svg { width: 20px; height: 20px; stroke: var(--rx-accent-soft); }
.rx-stairs .rx-pillar-num {
  grid-area: num;
  font-size: 1.05rem;
  min-width: 0;
  opacity: .85;
}
.rx-stairs .rx-pillar h4 { grid-area: title; font-size: 1rem; margin-bottom: 0; }
.rx-stairs .rx-pillar p { grid-area: desc; font-size: 0.875rem; }
.rx-pillar-kicker { font-size: 0.6rem; padding: 2px 7px; margin-left: 6px; }
@media (max-width: 900px) {
  .rx-stairs .rx-pillar,
  .rx-stairs .rx-pillar[data-step="2"],
  .rx-stairs .rx-pillar[data-step="3"] { width: 100%; margin-left: 0; }
}

/* ---------- Clientes: fotos sin recorte, 5 marcas ---------- */

.clients-showcase { align-items: flex-start; }
.clients-photo { overflow: visible; }
.clients-photo img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}
.clients-photo.left {
  width: 176px;
  align-self: flex-start;
  margin-top: -18px;
  transform: rotate(-4deg);
}
.clients-photo.right {
  width: 206px;
  align-self: flex-end;
  margin-top: 74px;
  transform: rotate(4deg);
}
.clients-showcase .rx-carousel { align-self: center; }

.rx-carousel .client-logo {
  flex: 0 0 20%;
  max-width: 20%;
  padding: 24px 16px;
}
.rx-carousel .client-logo img { max-height: 44px; }
@media (max-width: 1100px) {
  .clients-photo.left, .clients-photo.right { margin-top: 0; align-self: center; }
  .clients-showcase .rx-carousel { align-self: stretch; }
}
@media (max-width: 900px) {
  .rx-carousel .client-logo { flex-basis: 33.333%; max-width: 33.333%; }
}
@media (max-width: 560px) {
  .rx-carousel .client-logo { flex-basis: 50%; max-width: 50%; }
}

/* ---------- Servicios: tipografía más contenida ---------- */

.services .section-title { font-size: clamp(1.5rem, 2.2vw, 2.1rem); }
.services .section-lead { font-size: 1rem; }
.service-num { font-size: 0.82rem; }
.service-title { font-size: 1.22rem; }
.service-desc { font-size: 0.9rem; line-height: 1.58; }

/* ---------- Footer: el claim ya no desaparece ---------- */

.footer-bottom .tag {
  font-weight: 700;
  letter-spacing: 0.01em;
}
.footer-bottom span:not(.tag) { color: rgba(255, 248, 231, 0.62); }


/* ---------- Carrusel por transform ---------- */
.rx-viewport {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}
.rx-carousel .clients-grid {
  overflow: visible;
  will-change: transform;
}


/* ============================================================
   Ajustes v5
   ============================================================ */

/* ---------- Barrido: más rápido, más naranjo, sin cortar la última letra ---------- */

:root {
  --rx-accent-soft: #FF8547;
  --rx-accent-strong: #FF4E12;
}

.hero h1 .underline,
.hero h1 .accent,
.section-title em,
.rx-pillars-title em,
.footer-bottom .tag,
.rx-flow-label,
.stat-num {
  background-image: linear-gradient(100deg, #FFD3BC 0%, var(--rx-accent-soft) 34%, var(--rx-accent-strong) 52%, #FFD3BC 100%);
  background-size: 240% 100%;
  animation-duration: 3.4s;
  /* el glifo en cursiva sobresale del cuadro: sin este aire se corta la última letra */
  display: inline-block;
  padding-right: 0.14em;
  margin-right: -0.14em;
  padding-bottom: 0.06em;
  margin-bottom: -0.06em;
}
.contact .section-title em {
  background-image: linear-gradient(100deg, var(--rx-purple-400) 0%, var(--rx-accent-strong) 48%, var(--rx-purple-400) 100%);
}
.footer-bottom .tag { background-size: 280% 100%; }

/* ---------- Jerarquía: los titulares por sobre el tag ---------- */

.what.rx-merged .section-title {
  font-size: clamp(1.85rem, 2.7vw, 2.55rem);
  margin-bottom: 2px;
}
.rx-pillars-title {
  font-size: clamp(1.7rem, 2.5vw, 2.3rem);
  margin-bottom: 24px;
}

/* ---------- Problemática / solución más abajo + cita ---------- */

.rx-merged-left { display: flex; flex-direction: column; }
.rx-flow { margin-top: auto; padding-top: 34px; }

.rx-quote {
  margin: 30px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid rgba(255, 248, 231, 0.16);
}
.rx-quote blockquote {
  margin: 0;
  font-style: italic;
  font-size: 1rem;
  line-height: 1.55;
  color: rgba(255, 248, 231, 0.9);
  text-wrap: pretty;
}
.rx-quote figcaption {
  margin-top: 12px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--rx-accent-soft);
}

/* ---------- Ícono del pilar centrado en toda la tarjeta ---------- */

.rx-stairs .rx-pillar {
  grid-template-areas: 'ico num title' 'ico . desc';
  align-items: start;
  row-gap: 5px;
}
.rx-pillar-ico { align-self: center; }

/* ---------- Contacto: tipografía alineada con el resto ---------- */

.contact .section-title { font-size: clamp(1.5rem, 2.2vw, 2.1rem); line-height: 1.14; }
.contact .section-tag { font-size: 0.72rem; }
.contact-lead { font-size: 1rem; line-height: 1.58; margin-bottom: 30px; }
.contact-list li { font-size: 0.94rem; padding: 14px 0; gap: 13px; }
.contact-list .icon { width: 38px; height: 38px; }
.contact-list .icon svg { width: 17px; height: 17px; }
.contact-form h3 { font-size: 1.28rem; }
.contact-form > p { font-size: 0.9rem; }
.form-group label { font-size: 0.82rem; }
.form-group input,
.form-group textarea { font-size: 0.94rem; padding: 12px 14px; }
.form-submit { font-size: 0.95rem; padding: 14px 26px; }


/* ============================================================
   Ajustes v6
   ============================================================ */

/* Cita con más aire respecto al flujo */
.rx-quote { margin-top: 54px; padding-top: 26px; }

/* Servicios: frase destacada */
.rx-lead-strong {
  display: inline-block;
  font-weight: 700;
  color: #FFF8E7;
  border-bottom: 2px solid var(--rx-accent);
  padding-bottom: 1px;
}

/* Servicios: al pasar el mouse solo cambia el color */
.service-item,
.service-item:hover {
  transform: none !important;
  box-shadow: none !important;
}
.service-item::after { display: none; }
.service-item:hover { background: rgba(255, 111, 60, 0.1); }
.service-item .service-num,
.service-item .service-title,
.service-item .service-desc { transition: color .3s ease; }
.service-item:hover .service-title {
  background-image: none;
  -webkit-text-fill-color: var(--rx-accent-soft);
  color: var(--rx-accent-soft);
  animation: none;
  display: block;
  padding-right: 0;
  margin-right: 0;
}


/* ============================================================
   Ajustes v7
   ============================================================ */

/* Titular más arriba y separado de la bajada */
.hero-eyebrow { margin-bottom: 14px; }
.hero h1 { margin-bottom: 38px; }
.hero-lead { margin-top: 0; }

/* Ícono de músculo provisto por el cliente */
.rx-ico-muscle::before {
  content: '';
  display: block;
  width: 22px;
  height: 22px;
  background: var(--rx-accent-soft);
  -webkit-mask-image: url("icon-muscle.png");
  mask-image: url("icon-muscle.png");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

/* Servicios: negrita sin subrayado */
.rx-lead-strong { border-bottom: 0; padding-bottom: 0; }

/* Servicios: el hover solo cambia color — el título no cambia de caja */
.service-item .service-title,
.service-item:hover .service-title {
  display: block;
  background-image: none;
  background-size: auto;
  animation: none;
  padding: 0;
  margin: 0 0 16px;
  -webkit-text-fill-color: currentColor;
}
.service-item:hover .service-title { color: var(--rx-accent-soft); }

/* Contacto: título a la escala de los demás */
.contact .section-title { font-size: clamp(2.2rem, 4.2vw, 3.9rem); line-height: 1.04; }


/* ============================================================
   Ajustes v8 — base morada más clara
   ============================================================ */

:root {
  --rx-purple-900: #2B0A3D;
  --rx-purple-800: #360D4B;
  --rx-purple-700: #431159;
  --rx-purple-600: #5A1676;
  --rx-purple-500: #6E1B8E;
  --rx-purple-400: #85239F;
  --rx-purple-300: #9E3BB8;
}

/* los degradados vuelven a mezclarse sobre la nueva base */
.hero,
.page-hero {
  background:
    radial-gradient(1100px 720px at 6% -8%, var(--rx-purple-300) 0%, rgba(158,59,184,0) 62%),
    radial-gradient(900px 620px at 96% 112%, var(--rx-purple-400) 0%, rgba(133,35,159,0) 60%),
    radial-gradient(760px 540px at 64% 36%, var(--rx-purple-600) 0%, rgba(90,22,118,0) 70%),
    linear-gradient(162deg, var(--rx-purple-700) 0%, var(--rx-purple-900) 56%, var(--rx-purple-800) 100%);
}
.clients {
  background:
    radial-gradient(820px 560px at 88% 8%, var(--rx-purple-300) 0%, rgba(158,59,184,0) 58%),
    radial-gradient(900px 620px at 4% 92%, var(--rx-purple-400) 0%, rgba(133,35,159,0) 62%),
    linear-gradient(150deg, var(--rx-purple-900) 0%, var(--rx-purple-700) 52%, var(--rx-purple-800) 100%);
}
.services {
  background:
    radial-gradient(880px 600px at 96% 4%, var(--rx-purple-400) 0%, rgba(133,35,159,0) 60%),
    radial-gradient(760px 520px at 10% 96%, var(--rx-purple-300) 0%, rgba(158,59,184,0) 58%),
    linear-gradient(200deg, var(--rx-purple-800) 0%, var(--rx-purple-900) 55%, var(--rx-purple-700) 100%);
}
.what,
.svc-cta,
.case-cta,
.footer {
  background:
    radial-gradient(760px 520px at 12% 0%, var(--rx-purple-600) 0%, rgba(90,22,118,0) 62%),
    radial-gradient(680px 480px at 94% 100%, var(--rx-purple-500) 0%, rgba(110,27,142,0) 60%),
    linear-gradient(170deg, var(--rx-purple-800) 0%, #2A0A3B 60%, var(--rx-purple-900) 100%);
}
.nav,
.nav.rx-scrolled {
  background:
    radial-gradient(620px 300px at 4% 0%, var(--rx-purple-300) 0%, rgba(158,59,184,0) 66%),
    radial-gradient(560px 280px at 82% 120%, var(--rx-purple-400) 0%, rgba(133,35,159,0) 64%),
    linear-gradient(120deg, var(--rx-purple-700) 0%, var(--rx-purple-900) 58%, var(--rx-purple-800) 100%);
}
.nav.rx-scrolled { box-shadow: 0 16px 44px rgba(28, 6, 40, 0.42); }
.rx-curtain { background: linear-gradient(160deg, var(--rx-purple-700), var(--rx-purple-900)); }

/* la dirección se comporta como los demás datos de contacto */
.contact-list a[href*="google.com/maps"] { font-weight: 700; }


/* ============================================================
   Ajustes v9
   ============================================================ */

/* Clientes: visibles desde el primer pintado */
.clients-showcase,
.clients-grid,
.clients-head {
  opacity: 1 !important;
  transform: none !important;
}

/* Contacto: un solo morado para correo, teléfono, dirección y LinkedIn */
.contact-list li,
.contact-list li span,
.contact-list a,
.contact-list a span,
.contact-list .placeholder {
  color: var(--rx-purple-500) !important;
  font-weight: 700;
}
.contact-list a,
.contact-list a span,
.contact-list .placeholder { text-decoration: none; }
.contact-list a { border-bottom: 1px solid rgba(110, 27, 142, 0.35); }
.contact-list a:hover,
.contact-list a:hover span,
.contact-list a:hover .placeholder {
  color: var(--rx-purple-300) !important;
  border-bottom-color: var(--rx-purple-300);
}


/* ============================================================
   Ajustes v10 — base morada un punto más clara
   ============================================================ */

:root {
  --rx-purple-900: #35124A;
  --rx-purple-800: #401657;
  --rx-purple-700: #4D1A66;
  --rx-purple-600: #662082;
  --rx-purple-500: #7A249B;
  --rx-purple-400: #922CAD;
  --rx-purple-300: #AB45C4;
}

.what,
.svc-cta,
.case-cta,
.footer {
  background:
    radial-gradient(760px 520px at 12% 0%, var(--rx-purple-600) 0%, rgba(102,32,130,0) 62%),
    radial-gradient(680px 480px at 94% 100%, var(--rx-purple-500) 0%, rgba(122,36,155,0) 60%),
    linear-gradient(170deg, var(--rx-purple-800) 0%, #331046 60%, var(--rx-purple-900) 100%);
}
.nav.rx-scrolled { box-shadow: 0 16px 44px rgba(40, 12, 58, 0.4); }


/* ============================================================
   Ajustes v11 — base morada final
   ============================================================ */

:root {
  --rx-purple-900: #401A58;
  --rx-purple-800: #4C1F67;
  --rx-purple-700: #5A2477;
  --rx-purple-600: #742B93;
  --rx-purple-500: #8730AB;
  --rx-purple-400: #9E3BC0;
  --rx-purple-300: #B554D2;
}

.what,
.svc-cta,
.case-cta,
.footer {
  background:
    radial-gradient(760px 520px at 12% 0%, var(--rx-purple-600) 0%, rgba(116,43,147,0) 62%),
    radial-gradient(680px 480px at 94% 100%, var(--rx-purple-500) 0%, rgba(135,48,171,0) 60%),
    linear-gradient(170deg, var(--rx-purple-800) 0%, #3D1854 60%, var(--rx-purple-900) 100%);
}
.nav.rx-scrolled { box-shadow: 0 16px 44px rgba(52, 20, 74, 0.38); }


/* ============================================================
   Nosotros · Servicios · Casos de Éxito
   Misma paleta, mismo naranjo con barrido y misma escala tipográfica
   ============================================================ */

/* ---------- Superficies moradas que quedaban planas ---------- */

.team,
.case-cta,
.svc-cta {
  background:
    radial-gradient(820px 560px at 8% -6%, var(--rx-purple-600) 0%, rgba(116,43,147,0) 62%),
    radial-gradient(720px 500px at 96% 106%, var(--rx-purple-500) 0%, rgba(135,48,171,0) 60%),
    linear-gradient(168deg, var(--rx-purple-800) 0%, #3D1854 58%, var(--rx-purple-900) 100%);
  color: #FFF8E7;
  position: relative;
  overflow: hidden;
}
.team::after,
.case-cta::after,
.svc-cta::after {
  content: '';
  position: absolute;
  inset: -20% -10%;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(420px 420px at 22% 32%, rgba(255,111,60,0.14), transparent 62%),
    radial-gradient(520px 520px at 78% 70%, rgba(181,84,210,0.2), transparent 64%);
  animation: rxAurora 32s ease-in-out infinite alternate;
}
.team .container,
.case-cta .container,
.svc-cta .container { position: relative; z-index: 2; }

.about-card,
.case-head {
  background:
    radial-gradient(520px 380px at 10% 0%, var(--rx-purple-500) 0%, rgba(135,48,171,0) 64%),
    radial-gradient(460px 340px at 96% 100%, var(--rx-purple-600) 0%, rgba(116,43,147,0) 62%),
    linear-gradient(155deg, var(--rx-purple-700) 0%, var(--rx-purple-900) 100%);
}
.diff-icon,
.svc-icon,
.team-icon,
.case-meta-item .icon {
  background: var(--rx-purple-500);
}
.diff-card:nth-child(2) .diff-icon,
.svc.reverse .svc-icon,
.team-card:nth-child(2) .team-icon { background: var(--rx-accent); }
.client-logo { background: rgba(255, 248, 231, 0.06); }
.client-logo:hover { background: rgba(255, 111, 60, 0.16); }

.team-band,
.comparison-col.highlight {
  background: linear-gradient(150deg, var(--rx-accent) 0%, var(--rx-accent-strong) 100%);
  border-color: var(--rx-accent);
}

/* ---------- El barrido de luz en los titulares de cada página ---------- */

.page-hero h1 em,
.svc-cta h2 em,
.case-cta h2 em,
.team-band em,
.story-title em,
.case-title em,
.svc-text h2 em,
.case-num,
.metric-num {
  background-image: linear-gradient(100deg, #FFD3BC 0%, var(--rx-accent-soft) 34%, var(--rx-accent-strong) 52%, #FFD3BC 100%);
  background-size: 240% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: rxSweep 3.4s ease-in-out infinite;
  display: inline-block;
  padding-right: 0.14em;
  margin-right: -0.14em;
  padding-bottom: 0.06em;
  margin-bottom: -0.06em;
}
.svc-cta h2 em { animation-delay: .5s; }
.case-cta h2 em { animation-delay: .5s; }

/* sobre superficies claras el barrido va de naranjo a morado */
.svc-text h2 em,
.story-title em,
.case-title em {
  background-image: linear-gradient(100deg, var(--rx-purple-400) 0%, var(--rx-accent-strong) 48%, var(--rx-purple-400) 100%);
}

/* ---------- Naranjo unificado en los elementos propios de cada página ---------- */

.svc-num::before,
.case-dot,
.svc-feats li .icon,
.team-card .team-icon.accent { background: var(--rx-accent); }
.page-hero .section-tag,
.team .section-tag,
.svc-num,
.case-tag { color: var(--rx-accent-soft) !important; }
.page-hero .section-tag::before,
.team .section-tag::before { background: var(--rx-accent); }
.team-card:hover h3 { color: var(--rx-accent-soft); }
.value-card:hover .value-icon { background: var(--rx-accent); }
.svc-icon svg,
.diff-icon svg,
.team-icon svg { stroke: #FFF8E7; }

/* ---------- Escala tipográfica alineada con la portada ---------- */

.page-hero h1 { font-size: clamp(2.2rem, 4.2vw, 3.9rem); line-height: 1.04; }
.page-hero p { font-size: clamp(1rem, 1.3vw, 1.2rem); }
.team .section-title,
.story .section-title,
.case .section-title { font-size: clamp(1.85rem, 3.2vw, 3rem); }
.team .section-lead,
.story .section-lead { font-size: 1rem; line-height: 1.58; }
.svc-text h2 { font-size: clamp(1.5rem, 2.6vw, 2.2rem); line-height: 1.12; }
.svc-text p,
.svc-feats li,
.case-body p,
.story-text p,
.team-card p { font-size: 0.93rem; line-height: 1.6; }
.svc-cta h2,
.case-cta h2 { font-size: clamp(1.7rem, 3.2vw, 2.8rem); line-height: 1.1; }
.team-card h3,
.case-title { font-size: 1.22rem; }
.diff-title { font-size: 1.22rem; }
.diff-desc,
.value-desc { font-size: 0.9rem; line-height: 1.58; }

/* ---------- Textos claros donde el fondo pasó a morado ---------- */

.team .section-title,
.svc-cta h2,
.case-cta h2,
.case-head h3,
.case-head .case-title { color: #FFF8E7; }
.team .section-lead { color: rgba(255, 248, 231, 0.78); }
.case-head p { color: rgba(255, 248, 231, 0.82); }
