/* ─── Variables ─────────────────────────────────────────────── */
:root {
  --ink:        #10265f;
  --ink-soft:   #1d3a78;
  --gold:       #deb278;
  --warm-a:     #9e786a;
  --warm-b:     #8f746f;
  --white:      #ffffff;
  --header-h:   76px;
  --pad-x:      5%;
  --edge:       5px;
  --font-sans:  "Montserrat", system-ui, -apple-system, sans-serif;
  --fw-medium:  500;
  --fw-bold:    700;
  /* Botones azules: cara con luz superior + sombra (realismo) */
  --btn-blue-face: linear-gradient(
    180deg,
    #2d4a82 0%,
    #243d6e 22%,
    #1a2f58 55%,
    #132447 78%,
    #0e1a38 100%
  );
  --btn-blue-face-hover: linear-gradient(
    180deg,
    #35528c 0%,
    #2a4378 25%,
    #1f3662 55%,
    #162a50 100%
  );
  --btn-blue-shadow:
    0 10px 24px rgba(6, 14, 40, 0.42),
    0 4px 10px rgba(6, 14, 40, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.26),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22),
    inset 0 -8px 16px rgba(0, 0, 0, 0.08);
  --btn-blue-shadow-hover:
    0 14px 32px rgba(6, 14, 40, 0.48),
    0 5px 12px rgba(6, 14, 40, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    inset 0 -1px 0 rgba(0, 0, 0, 0.2),
    inset 0 -8px 18px rgba(0, 0, 0, 0.06);
}

/* ─── Reset ──────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; height: 100%; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-sans);
  font-weight: var(--fw-medium);
  background: var(--white);
  color: var(--ink);
  line-height: 1.5;
  overflow-x: hidden;
}

h1,
h2,
h3 {
  font-family: var(--font-sans);
  font-weight: var(--fw-bold);
}

/* Elite: mismo grosor que en móvil (500), no el bold global de h2 */
h2.elite-title {
  font-weight: var(--fw-medium);
}
img { display: block; max-width: 100%; }
a   { text-decoration: none; color: inherit; }

/* ─── Progreso de lectura + acciones flotantes (Motion / CSS) ───── */
.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  z-index: 10050;
  transform-origin: left center;
  transform: scaleX(0);
  background: linear-gradient(90deg, #152a5c 0%, #274289 42%, #c4a574 100%);
  opacity: 0.88;
  pointer-events: none;
  will-change: transform;
}

body:not(.page-ready) .scroll-progress {
  opacity: 0;
  visibility: hidden;
}

body.page-ready .scroll-progress {
  visibility: visible;
}

.float-dock {
  position: fixed;
  right: max(0.85rem, env(safe-area-inset-right, 0px));
  bottom: max(0.85rem, env(safe-area-inset-bottom, 0px));
  z-index: 9998;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  opacity: 0;
  pointer-events: none;
  transform: translateY(14px) scale(0.96);
}

body:not(.page-ready) .float-dock {
  visibility: hidden;
}

body.page-ready .float-dock {
  visibility: visible;
}

.float-dock.is-visible {
  opacity: 1;
  pointer-events: auto;
  transition:
    opacity 0.38s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
  transform: translateY(0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .float-dock.is-visible {
    transition-duration: 0.2s;
  }
}

/* Widget WhatsApp + minichat */
.wa-widget {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.wa-panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + 14px);
  width: min(340px, calc(100vw - 2rem));
  max-height: min(420px, 70vh);
  display: flex;
  flex-direction: column;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 16px;
  background: #f0f4f8;
  color: #0f1a2e;
  box-shadow:
    0 0 0 1px rgba(15, 38, 95, 0.08),
    0 24px 56px rgba(8, 18, 45, 0.22),
    0 8px 20px rgba(6, 14, 36, 0.12);
  overflow: hidden;
  z-index: 10;
  visibility: hidden;
  opacity: 0;
  transform: translateY(12px) scale(0.97);
  pointer-events: none;
  transition:
    opacity 0.32s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.32s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.32s;
}

.wa-panel.is-open {
  visibility: visible;
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

@media (prefers-reduced-motion: reduce) {
  .wa-panel {
    transition-duration: 0.15s;
  }
}

.wa-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 0.9rem;
  background: linear-gradient(135deg, #075e54 0%, #128c7e 55%, #25d366 100%);
  color: #ffffff;
}

.wa-panel-brand {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.wa-panel-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
  flex-shrink: 0;
}

.wa-panel-title {
  margin: 0;
  font-size: 0.98rem;
  font-weight: var(--fw-bold);
  line-height: 1.2;
}

.wa-panel-sub {
  margin: 0.15rem 0 0;
  font-size: 0.72rem;
  opacity: 0.92;
}

.wa-panel-close {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  color: #ffffff;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease;
}

.wa-panel-close:hover {
  background: rgba(255, 255, 255, 0.28);
}

.wa-panel-chat {
  padding: 0.75rem 0.9rem 0;
  flex-shrink: 0;
}

.wa-bubble {
  display: block;
  max-width: 100%;
  padding: 0.65rem 0.75rem;
  border-radius: 12px 12px 12px 4px;
  background: #ffffff;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #1a2438;
  box-shadow: 0 2px 8px rgba(8, 18, 45, 0.06);
}

.wa-bubble-label {
  display: block;
  font-size: 0.65rem;
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #128c7e;
  margin-bottom: 0.35rem;
}

.wa-bubble strong {
  font-weight: var(--fw-bold);
}

.wa-field-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.wa-message-input {
  margin: 0.65rem 0.9rem 0.5rem;
  width: calc(100% - 1.8rem);
  min-height: 4.5rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(15, 38, 95, 0.12);
  border-radius: 10px;
  font-family: var(--font-sans);
  font-size: 0.88rem;
  line-height: 1.45;
  resize: vertical;
  box-sizing: border-box;
  background: #ffffff;
  color: #0f1a2e;
}

.wa-message-input:focus {
  outline: 2px solid rgba(37, 211, 102, 0.45);
  outline-offset: 1px;
  border-color: rgba(37, 211, 102, 0.5);
}

.wa-send-btn {
  margin: 0 0.9rem 0.45rem;
  width: calc(100% - 1.8rem);
  height: 2.65rem;
  border: none;
  border-radius: 10px;
  background: linear-gradient(135deg, #0a7b6c 0%, #128c7e 50%, #25d366 100%);
  color: #ffffff;
  font-family: var(--font-sans);
  font-size: 0.88rem;
  font-weight: var(--fw-bold);
  letter-spacing: 0.01em;
  cursor: pointer;
  box-shadow: 0 8px 16px rgba(18, 140, 126, 0.28);
  transition: transform 0.18s ease, filter 0.18s ease, box-shadow 0.18s ease;
}

.wa-send-btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.03);
}

.wa-send-btn:active {
  transform: translateY(0);
}

.wa-send-btn:focus-visible {
  outline: 2px solid rgba(37, 211, 102, 0.5);
  outline-offset: 2px;
}

.wa-panel-footnote {
  margin: 0 0.9rem 0.75rem;
  font-size: 0.68rem;
  line-height: 1.4;
  color: #5a6578;
}

.wa-panel-footnote kbd {
  display: inline-block;
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
  background: rgba(15, 38, 95, 0.08);
  font-size: 0.65rem;
  font-family: inherit;
}

@media (max-width: 640px) {
  .wa-panel {
    width: min(360px, calc(100vw - 1rem));
    max-height: min(500px, 78vh);
    bottom: calc(100% + 10px);
  }

  .wa-message-input {
    min-height: 4rem;
    font-size: 0.9rem;
  }

  .wa-send-btn {
    height: 2.8rem;
    font-size: 0.92rem;
  }

  .wa-panel-footnote {
    margin-bottom: 0.65rem;
    font-size: 0.66rem;
  }
}

.wa-launcher {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Anillo tipo “notificación” */
.wa-pulse {
  position: absolute;
  inset: -6px;
  border-radius: 999px;
  border: 2px solid rgba(37, 211, 102, 0.55);
  animation: wa-pulse-ring 2.4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  pointer-events: none;
}

.wa-widget--open .wa-pulse {
  animation: none;
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  .wa-pulse {
    animation: none;
    opacity: 0.35;
  }
}

@keyframes wa-pulse-ring {
  0% {
    transform: scale(1);
    opacity: 0.85;
  }
  70% {
    transform: scale(1.35);
    opacity: 0;
  }
  100% {
    transform: scale(1.35);
    opacity: 0;
  }
}

.wa-badge {
  position: absolute;
  top: -4px;
  left: -2px;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: linear-gradient(180deg, #ff5f57 0%, #e02020 100%);
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: var(--fw-bold);
  line-height: 22px;
  text-align: center;
  box-shadow: 0 4px 12px rgba(224, 32, 32, 0.45);
  z-index: 3;
  animation: wa-badge-pop 2.8s ease-in-out infinite;
}

.wa-badge.is-seen {
  animation: none;
  opacity: 0;
  transform: scale(0.6);
  pointer-events: none;
  transition: opacity 0.35s ease, transform 0.35s ease;
}

@media (prefers-reduced-motion: reduce) {
  .wa-badge {
    animation: none;
  }
}

@keyframes wa-badge-pop {
  0%,
  100% {
    transform: scale(1);
  }
  12% {
    transform: scale(1.15);
  }
  24% {
    transform: scale(1);
  }
}

.float-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  padding: 0;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.22s ease;
}

.float-btn:hover {
  transform: translateY(-3px) scale(1.04);
  box-shadow:
    0 18px 44px rgba(18, 140, 90, 0.45),
    0 6px 16px rgba(8, 18, 45, 0.2);
}

.float-btn:active {
  transform: translateY(-1px) scale(1.01);
}

.float-btn:focus-visible {
  outline: 3px solid rgba(160, 230, 200, 0.95);
  outline-offset: 3px;
}

.float-btn--wa {
  position: relative;
  z-index: 1;
  background: linear-gradient(160deg, #3de576 0%, #25d366 38%, #128c7e 100%);
  color: #ffffff;
  text-decoration: none;
  box-shadow:
    0 4px 0 rgba(7, 94, 84, 0.35),
    0 14px 36px rgba(18, 140, 90, 0.42),
    0 4px 12px rgba(8, 18, 45, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
  animation: wa-floaty 3.2s ease-in-out infinite;
}

.wa-widget--open .float-btn--wa {
  animation: none;
  box-shadow:
    0 3px 0 rgba(7, 94, 84, 0.3),
    0 12px 28px rgba(18, 140, 90, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

@media (prefers-reduced-motion: reduce) {
  .float-btn--wa {
    animation: none;
  }
}

@keyframes wa-floaty {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}

.float-btn-icon {
  display: block;
  flex-shrink: 0;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.15));
}

/* ─── Header global sticky (flota sobre hero + resto de secciones) ── */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: var(--header-h);
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex-shrink: 0;
  background: transparent;
  padding: 0 calc(var(--pad-x) + var(--edge));
  transition: background 300ms ease, backdrop-filter 300ms ease;
}

/* Solo fuera del hero y del bloque Acerca claro (evita barra azul sobre fondo blanco) */
.site-header.scrolled {
  background: rgba(7, 18, 46, 0.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:
    0 4px 6px -1px rgba(5, 14, 36, 0.12),
    0 18px 44px -12px rgba(6, 16, 42, 0.28);
}

/* Header blanco translúcido SOLO cuando el logo está azul */
.site-header.scrolled:not(.logo-on-dark) {
  background: transparent;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: none;
}

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  position: relative;
}

/* Logo (asset oficial: icono + wordmark) */
.logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 0;
}

.logo-img {
  height: auto;
  max-height: 44px;
  width: auto;
  max-width: min(200px, 48vw);
  display: block;
  object-fit: contain;
  transition: filter 280ms ease;
}

/* Mismo tratamiento que el logo del preloader: blanco sobre fondos azules oscuros */
.site-header.logo-on-dark .logo-img {
  filter: brightness(0) invert(1);
}

/* Nav pills */
.nav-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.nav-blog-item {
  display: list-item;
}

.mobile-menu-toggle {
  display: none;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(16, 38, 95, 0.16);
  background: rgba(255, 255, 255, 0.9);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  padding: 0;
  cursor: pointer;
  transition: box-shadow 200ms ease, transform 200ms ease;
}

.mobile-menu-toggle span {
  width: 18px;
  height: 2px;
  background: var(--ink);
  border-radius: 999px;
  transition: transform 200ms ease, opacity 200ms ease;
}

.mobile-menu-toggle:hover,
.mobile-menu-toggle:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(12, 32, 79, 0.18);
}

.mobile-menu-toggle.is-open span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.mobile-menu-toggle.is-open span:nth-child(2) {
  opacity: 0;
}

.mobile-menu-toggle.is-open span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

.nav-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 38px;
  padding: 0 1.4rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(16, 38, 95, 0.12);
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: var(--fw-medium);
  white-space: nowrap;
  transition: background 200ms, box-shadow 200ms, transform 200ms;
}

.nav-pill:hover,
.nav-pill:focus-visible {
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 6px 18px rgba(16, 38, 95, 0.14);
  transform: translateY(-1px);
}

.nav-pill.active {
  background: var(--btn-blue-face);
  color: #f6f8ff;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-bottom-color: rgba(0, 0, 0, 0.12);
  box-shadow: var(--btn-blue-shadow);
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.22),
    0 -1px 1px rgba(0, 0, 0, 0.35);
}

.nav-pill.active:hover,
.nav-pill.active:focus-visible {
  background: var(--btn-blue-face-hover);
  box-shadow: var(--btn-blue-shadow-hover);
  transform: translateY(-1px);
}

/* Decorative lines under nav */
.nav-lines {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 0.4rem;
}

.line-navy {
  display: block;
  width: 100%;
  height: 2.5px;
  background: var(--ink);
}

.line-gold {
  display: block;
  width: 100%;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--gold) 20%,
    #f5d9a8 50%,
    var(--gold) 80%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: goldSlide 3s linear infinite;
}

@keyframes goldSlide {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ─── Hero ────────────────────────────────────────────────────── */
.hero-shell {
  position: relative;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding-inline: var(--edge);
  /* Empuja el contenido hacia abajo para no quedar debajo del header fijo */
  padding-top: var(--header-h);
}

/* Capa de video (o imagen poster): cubre todo el bloque + header */
.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  filter: brightness(1.02);
  transform: scale(1.01);
  pointer-events: none;
  border: 0;
  vertical-align: middle;
}

/* Overlay para legibilidad del texto */
.hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    105deg,
    rgba(255, 255, 255, 0.82) 0%,
    rgba(255, 255, 255, 0.68) 35%,
    rgba(255, 255, 255, 0.38) 60%,
    rgba(255, 255, 255, 0.08) 100%
  );
  pointer-events: none;
}

.hero-main {
  position: relative;
  z-index: 10;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

/* Contenido principal del hero */
.hero-body {
  position: relative;
  z-index: 10;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--pad-x) clamp(1.5rem, 4vh, 2.5rem);
  gap: 1.5rem;
}

/* ─── Hero text block ────────────────────────────────────────── */
.hero-text {
  display: flex;
  flex-direction: column;
  max-width: 64%;
}

h1 {
  margin: 0;
  font-size: clamp(1.9rem, 3.55vw, 4rem);
  line-height: 1.04;
  letter-spacing: -0.01em;
  color: var(--ink);
}

/* Salto extra solo en móvil: evita “de” colgando en línea aparte */
br.br-mobile-only {
  display: none;
}

/* ── Neurona: luz solo dentro de los glifos (background-clip: text) ── */
.h1-neuro {
  display: block;
}

.h1-neuro-stack {
  display: grid;
  align-items: start;
  justify-items: start;
}

.h1-neuro-stack > * {
  grid-area: 1 / 1;
}

/* Capa inferior: colores reales (cobre + navy) */
.h1-neuro-base {
  position: relative;
  z-index: 1;
}

/*
 * Capa superior: mismas palabras, transparentes + gradientes animados.
 * background-clip: text → la animación solo existe donde hay tinta de letra.
 */
.h1-neuro-shine {
  z-index: 2;
  pointer-events: none;
  color: transparent;
  background-image:
    /* Impulso principal: franja más nítida (como potencial de acción) */
    linear-gradient(
      102deg,
      transparent 0%,
      transparent 34%,
      rgba(255, 255, 255, 0.22) 42%,
      rgba(255, 255, 255, 0.82) 48.5%,
      rgba(170, 210, 255, 0.65) 50%,
      rgba(255, 236, 200, 0.55) 51.5%,
      rgba(255, 255, 255, 0.28) 56%,
      transparent 64%,
      transparent 100%
    ),
    /* Segundo frente desfasado (doble disparo sináptico) */
    linear-gradient(
      92deg,
      transparent 0%,
      transparent 40%,
      rgba(222, 178, 120, 0.55) 48%,
      rgba(255, 255, 255, 0.35) 50%,
      rgba(222, 178, 120, 0.45) 52%,
      transparent 60%,
      transparent 100%
    ),
    /* Brillo difuso tipo soma */
    radial-gradient(
      ellipse 65% 140% at 50% 50%,
      rgba(200, 225, 255, 0.28) 0%,
      rgba(255, 255, 255, 0.08) 40%,
      transparent 62%
    );
  background-size: 320% 100%, 260% 100%, 120% 120%;
  background-position: 0% 50%, 100% 50%, 50% 50%;
  -webkit-background-clip: text;
  background-clip: text;
  mix-blend-mode: screen;
  animation:
    neuroAxon 6.2s cubic-bezier(0.42, 0, 0.2, 1) infinite,
    neuroSynapse 3.6s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite -0.6s;
}

/* Recorrido lento + pausa “refractaria” antes del siguiente impulso */
@keyframes neuroAxon {
  0% {
    background-position: -35% 48%, 125% 52%, 28% 38%;
  }
  28% {
    background-position: 42% 50%, 38% 48%, 55% 52%;
  }
  52% {
    background-position: 108% 51%, -35% 49%, 72% 58%;
  }
  68% {
    background-position: 125% 50%, -48% 50%, 50% 50%;
  }
  82% {
    background-position: 125% 50%, -48% 50%, 50% 50%;
  }
  100% {
    background-position: -35% 48%, 125% 52%, 28% 38%;
  }
}

@keyframes neuroSynapse {
  0%,
  100% {
    opacity: 0.52;
    filter: brightness(1) contrast(1);
  }
  18% {
    opacity: 0.88;
    filter: brightness(1.08) contrast(1.02);
  }
  32% {
    opacity: 1;
    filter: brightness(1.28) contrast(1.06);
  }
  48% {
    opacity: 0.72;
    filter: brightness(1.05) contrast(1.02);
  }
  62% {
    opacity: 0.95;
    filter: brightness(1.18) contrast(1.04);
  }
  78% {
    opacity: 0.58;
    filter: brightness(1) contrast(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .h1-neuro-shine {
    animation: none;
    opacity: 0;
  }
}

/* warm-colored words */
.warm {

  
  background: linear-gradient(
    357deg, #000000 0%, #9c7b72 38%, #b49185 68%, #9f8178 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero-desc {
  margin: 1.4rem 0 0;
  font-size: clamp(0.95rem, 1.5vw, 1.35rem);
  line-height: 1.58;
  max-width: 62ch;
  color: var(--ink);
  font-weight: var(--fw-medium);
}

/* ── Entrada elegante al terminar el preloader (menu + textos + botones) ── */
body:not(.page-ready) .site-header {
  opacity: 0;
  transform: translateY(-12px);
  filter: blur(2px);
}

body:not(.page-ready) .nav-pill {
  opacity: 0;
  transform: translateY(-8px) scale(0.98);
}

body:not(.page-ready) .hero-text h1,
body:not(.page-ready) .hero-desc,
body:not(.page-ready) .cta-btn {
  opacity: 0;
  transform: translateY(14px) scale(0.995);
  filter: blur(3px);
}

body.page-ready .site-header {
  animation: heroTextReveal 1.05s cubic-bezier(0.19, 1, 0.22, 1) 0.02s forwards;
}

body.page-ready .nav-pill {
  animation: menuPillReveal 0.75s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

body.page-ready .nav-list li:nth-child(1) .nav-pill { animation-delay: 0.13s; }
body.page-ready .nav-list li:nth-child(2) .nav-pill { animation-delay: 0.2s; }
body.page-ready .nav-list li:nth-child(3) .nav-pill { animation-delay: 0.27s; }
body.page-ready .nav-list li:nth-child(4) .nav-pill { animation-delay: 0.34s; }
body.page-ready .nav-list li:nth-child(5) .nav-pill { animation-delay: 0.41s; }

body.page-ready .hero-text h1 {
  animation: heroTextReveal 1.25s cubic-bezier(0.19, 1, 0.22, 1) 0.22s forwards;
}

body.page-ready .hero-desc {
  animation: heroTextReveal 1.2s cubic-bezier(0.19, 1, 0.22, 1) 0.4s forwards;
}

body.page-ready .cta-btn {
  animation:
    heroTextReveal 1.05s cubic-bezier(0.19, 1, 0.22, 1) 0.56s forwards,
    ctaFloat 3.4s ease-in-out 1.75s infinite;
}

body.page-ready .cta-btn::after {
  animation:
    ctaAura 3.4s ease-in-out 1.75s infinite;
}

@keyframes heroTextReveal {
  0% {
    opacity: 0;
    transform: translateY(14px) scale(0.995);
    filter: blur(3px);
  }
  45% {
    opacity: 0.68;
    transform: translateY(5px) scale(0.998);
    filter: blur(1.2px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

@keyframes menuPillReveal {
  from {
    opacity: 0;
    transform: translateY(-8px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* ─── CTA button ─────────────────────────────────────────────── */
.cta-btn {
  position: relative;
  align-self: flex-end;
  margin-bottom: 2.5rem;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.72rem 1.9rem;
  border-radius: 999px;
  background: var(--btn-blue-face);
  color: #f6f8ff;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-bottom-color: rgba(0, 0, 0, 0.1);
  font-size: 0.95rem;
  font-weight: var(--fw-medium);
  white-space: nowrap;
  box-shadow: var(--btn-blue-shadow);
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.2),
    0 -1px 1px rgba(0, 0, 0, 0.32);
  transition: transform 220ms ease, box-shadow 220ms ease, background 220ms ease, filter 220ms ease;
  animation: ctaFloat 3.8s ease-in-out infinite;
}

/* Halo sutil para llamar la atencion sin perder elegancia */
.cta-btn::after {
  content: "";
  position: absolute;
  inset: -7px;
  border-radius: inherit;
  background: radial-gradient(
    ellipse at center,
    rgba(222, 178, 120, 0.2) 0%,
    rgba(122, 164, 226, 0.14) 42%,
    transparent 72%
  );
  z-index: -1;
  opacity: 0.5;
  filter: blur(5px);
  animation: ctaAura 3.4s ease-in-out infinite;
}

.cta-btn:hover,
.cta-btn:focus-visible {
  transform: translateY(-2px);
  background: var(--btn-blue-face-hover);
  box-shadow: var(--btn-blue-shadow-hover);
  filter: brightness(1.02);
}

/* ─── Sección Acerca de nosotros ─────────────────────────────── */
.about-shell {
  position: relative;
  min-height: 100dvh;
  overflow: hidden;
  padding: 0 calc(var(--pad-x) + var(--edge));
}

.about-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 115%;
  top: -7.5%;
  object-fit: cover;
  object-position: 50% 45%;
  filter: grayscale(0.02) brightness(1.02) contrast(0.98);
  will-change: transform;
  transform: translateY(0px) scale(1);
}

/* Overlay claro: deja ver el volumen del cerebro mármol */
.about-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.86) 0%,
    rgba(248, 246, 243, 0.78) 45%,
    rgba(240, 237, 232, 0.72) 100%
  );
}

/* Columna: título | párrafo | flex-1 (pilares centrados) | CTA abajo */
.about-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
  padding-top: calc(var(--header-h) + 4rem);
  padding-bottom: 3.5rem;
  text-align: center;
  align-items: center;
  --about-line-w: min(92vw, 1180px);
}

/* Mismo degradado que .warm en el hero (“de alta exigencia”).
   En móvil el título va en varias líneas: sin repetir, el gradiente 180deg se estira
   en todo el bloque y cambia el aspecto. 1lh + repeat-y repite el mismo degradado
   por cada línea (misma sensación que desktop en una sola línea). */
.about-content h2 {
  margin: 0 0 1.6rem;
  font-size: clamp(1.9rem, 3.55vw, 4rem);
  line-height: 1.04;
  width: var(--about-line-w);
  color: transparent;
  -webkit-text-fill-color: transparent;
  background-image: linear-gradient(
    180deg,
    #000000 0%,
    #9c7b72 68%,
    #9c7b72 78%,
    #b49185 88%,
    #9f8178 100%
  );
  background-size: 100% 1.08em;
  background-size: 100% 1lh;
  background-repeat: repeat-y;
  background-position: 0 0;
  -webkit-background-clip: text;
  background-clip: text;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.about-content p {
  margin: 0;
  width: var(--about-line-w);
  font-size: clamp(0.95rem, 1.5vw, 1.35rem);
  line-height: 1.6;
  color: var(--ink);
  text-align: justify;
}

/* Espacio entre párrafo y botón: pilares centrados en el hueco */
.about-pillars-bridge {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: var(--about-line-w);
  margin-inline: auto;
  padding-top: 10px;
  box-sizing: border-box;
}

.about-pillars-rotate {
  position: relative;
  width: 100%;
  margin: 0;
  min-height: 3em;
  font-family: var(--font-sans);
  font-size: clamp(1.2rem, 2.15vw, 1.92rem);
  font-style: italic;
  font-weight: var(--fw-bold);
  text-align: center;
  line-height: 1.35;
}

.about-pillar-word {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  padding-inline: 0.5rem;
  box-sizing: border-box;
  color: transparent;
  background: linear-gradient(135deg, #1d3a78 0%, #355ba8 48%, #10265f 100%);
  -webkit-background-clip: text;
  background-clip: text;
  pointer-events: none;
  white-space: normal;
  text-wrap: balance;
  opacity: 0;
  transform: translateY(calc(-50% + 18px));
  filter: blur(5px);
  transition:
    opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.45s ease;
}

.about-pillar-word.is-active {
  opacity: 1;
  transform: translateY(-50%);
  filter: blur(0);
  z-index: 1;
}

/* Sin animación: los cuatro pilares visibles en una línea (o varias) */
.about-pillars-rotate.is-static-pillars {
  position: relative;
  min-height: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.65rem;
}

.about-pillars-rotate.is-static-pillars .about-pillar-word {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  translate: none;
  transform: none;
  opacity: 1;
  filter: none;
  pointer-events: none;
  padding-inline: 0;
  max-width: 100%;
}

.about-pillars-rotate.is-static-pillars .about-pillar-word:not(:last-child)::after {
  content: "·";
  margin-left: 0.65rem;
  color: rgba(29, 58, 120, 0.35);
  font-style: normal;
  font-weight: 400;
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
}

.about-bottom {
  flex: 0 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  padding-top: clamp(0.85rem, 2.2vh, 1.6rem);
}

.about-cta-row {
  display: flex;
  justify-content: flex-end;
  width: 100%;
}

.about-cta {
  align-self: auto;
  margin-bottom: 0;
}

@keyframes ctaFloat {
  0%,
  100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

@keyframes ctaAura {
  0%,
  100% {
    opacity: 0.42;
    transform: scale(0.98);
  }
  50% {
    opacity: 0.72;
    transform: scale(1.04);
  }
}

/* ─── Acerca de nosotros (bloque clinico oscuro) ─────────────── */
.about-clinical-shell {
  position: relative;
  min-height: 100dvh;
  overflow: hidden;
  /* Misma malla lateral que el resto del sitio (maquetado editorial alineado a la izquierda) */
  padding: 0 calc(var(--pad-x) + var(--edge));
}

.about-clinical-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 115%;
  top: -7.5%;
  object-fit: cover;
  object-position: center center;
  pointer-events: none;
  border: 0;
  vertical-align: middle;
  will-change: transform;
  transform: translateY(0px) scale(1);
}

/* Azul marino del maquetado (#0d1425) con transparencia: se ve el video de moléculas */
.about-clinical-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(
      105deg,
      rgba(13, 20, 37, 0.82) 0%,
      rgba(13, 20, 37, 0.74) 38%,
      rgba(13, 20, 37, 0.68) 62%,
      rgba(13, 20, 37, 0.62) 100%
    ),
    radial-gradient(ellipse 80% 70% at 70% 40%, rgba(30, 50, 90, 0.22) 0%, transparent 55%);
}

/* ─── Sección clínica (brief):
   Bloque superior: título (2 líneas) + párrafo apilados, mismo eje izquierdo, ~85% ancho.
   Tarjetas + CTA debajo.
─────────────────────────────────────────────────────────────────── */
.about-clinical-content {
  position: relative;
  z-index: 3;
  min-height: 100dvh;
  width: min(85vw, 100%);
  margin-inline: auto;
  padding-top: calc(var(--header-h) + clamp(2.2rem, 5.5vh, 4rem));
  padding-bottom: clamp(2rem, 4vh, 2.8rem);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: clamp(0.9rem, 2vh, 1.35rem);
}

.about-clinical-left {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  width: 100%;
}

.clinical-intro {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: clamp(0.95rem, 2vh, 1.4rem);
}

.clinical-intro .clinical-hero-title,
.about-clinical-left h2.clinical-hero-title {
  margin: 0;
  width: 100%;
  max-width: 100%;
  color: transparent;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(
    95deg,
    #9aaed0 0%,
    #b4c2dc 22%,
    #c9d4ea 48%,
    #dce5f4 78%,
    #e6edf8 100%
  );
  background-size: 100% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  font-size: clamp(1.85rem, 3.2vw, 3.65rem);
  line-height: 1.06;
  letter-spacing: 0.03em;
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  text-align: left;
}

.clinical-intro .clinical-hero-title br {
  display: block;
}

.clinical-intro .clinical-hero-desc,
.about-clinical-left p.clinical-hero-desc {
  margin: 0;
  width: 100%;
  max-width: 100%;
  color: rgba(245, 247, 252, 0.94);
  font-size: clamp(0.92rem, 1.22vw, 1.14rem);
  line-height: 1.62;
  font-weight: var(--fw-medium);
  text-align: left;
  text-wrap: pretty;
  hyphens: none;
  -webkit-hyphens: none;
}

/* Bloque inferior: 3 tarjetas + CTA (layout original; no tocar al ajustar título/párrafo) */
.about-clinical-bottom {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(1rem, 2.2vw, 2.25rem);
  width: 100%;
  margin-top: clamp(0.45rem, 1.2vh, 0.85rem);
}

.about-clinical-right {
  flex: 1 1 min(0, 820px);
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 1fr;   /* filas iguales → misma altura para las 3 tarjetas */
  gap: clamp(1rem, 2vw, 1.4rem);
  align-items: stretch;
  max-width: 900px;
}

.risk-card {
  position: relative;
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 2rem;
  /* altura fija igual para las 3 tarjetas (grid stretch + height: 100%) */
  height: 100%;
  padding: 1.5rem 1.5rem 1.25rem;
  box-shadow: 0 18px 30px rgba(5, 12, 35, 0.22);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
}

.risk-card h3 {
  margin: 0;
  padding: 0;
  background: none;
  color: #1f3472;
  font-size: clamp(1.2rem, 1.65vw, 1.72rem);
  line-height: 1.15;
  letter-spacing: -0.01em;
  white-space: normal;
  text-align: center;
}

.risk-card p {
  margin: 0.95rem 0 0;
  color: #1d2f64;
  font-size: clamp(1.05rem, 1.38vw, 1.42rem);
  line-height: 1.34;
  text-align: center;
  font-weight: var(--fw-medium);
}

.about-clinical-cta-row {
  margin-top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  flex-shrink: 0;
}

/* Solo en móvil: CTA después de descripción (bloque 1) */
.about-clinical-cta-row--intro {
  display: none;
}

/* CTA visible en todas las resoluciones */

.about-clinical-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.58rem 1.6rem;
  border-radius: 999px;
  background: linear-gradient(
    180deg,
    #e8d5c0 0%,
    #ddc0a0 22%,
    #d0aa82 55%,
    #c79870 80%,
    #be8e62 100%
  );
  color: #2e1405;
  border: 1px solid rgba(255, 255, 255, 0.48);
  border-bottom-color: rgba(100, 55, 20, 0.28);
  font-size: clamp(0.88rem, 1vw, 1rem);
  font-family: var(--font-sans);
  font-weight: var(--fw-medium);
  letter-spacing: 0.01em;
  text-decoration: none;
  box-shadow:
    0 10px 26px rgba(80, 40, 10, 0.38),
    0 4px 12px rgba(80, 40, 10, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.60),
    inset 0 -1px 0 rgba(100, 55, 20, 0.28),
    inset 0 -10px 22px rgba(140, 85, 45, 0.12);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.40);
  transition: transform 220ms ease, box-shadow 220ms ease, filter 220ms ease;
}

.about-clinical-cta:hover,
.about-clinical-cta:focus-visible {
  transform: translateY(-2px);
  background: linear-gradient(
    180deg,
    #f0deca 0%,
    #e5caaa 22%,
    #d8b48a 55%,
    #cfa078 80%,
    #c5966a 100%
  );
  box-shadow:
    0 14px 32px rgba(80, 40, 10, 0.44),
    0 6px 14px rgba(80, 40, 10, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.66),
    inset 0 -1px 0 rgba(100, 55, 20, 0.22),
    inset 0 -10px 24px rgba(140, 85, 45, 0.08);
  filter: brightness(1.03);
}


/* ═══════════════════════════════════════════════════════════════
   METODOLOGÍA
═══════════════════════════════════════════════════════════════ */
.metodologia-shell {
  position: relative;
  min-height: 100dvh;
  overflow: hidden;
  padding: 0 calc(var(--pad-x) + var(--edge));
  display: flex;
  align-items: center;
}

.metodologia-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 115%;
  top: -7.5%;
  object-fit: cover;
  object-position: center;
  will-change: transform;
  z-index: 0;
}

.metodologia-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(105deg, rgba(7, 18, 46, 0.88) 0%, rgba(7, 18, 46, 0.78) 50%, rgba(7, 18, 46, 0.65) 100%);
}

.metodologia-content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: min(1240px, 100%);
  margin-inline: auto;
  min-height: 100dvh;
  padding-top: calc(var(--header-h) + clamp(2.5rem, 6vh, 4.5rem));
  padding-bottom: clamp(2rem, 4vh, 3rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  grid-template-rows: auto;
  column-gap: clamp(1.75rem, 4.5vw, 3.5rem);
  row-gap: 0;
  align-items: center;
}

.metodologia-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: min(42rem, 100%);
}

/* Escritorio: una sola fila — texto+botón en columna izq.; imagen más compacta a la derecha */
@media (min-width: 901px) {
  .metodologia-content {
    min-height: auto;
    padding-top: calc(var(--header-h) + clamp(1rem, 2.6vh, 1.85rem));
    padding-bottom: clamp(1rem, 2.6vh, 1.85rem);
    align-items: center;
  }

  .metodologia-left {
    align-self: center;
    gap: clamp(0.5rem, 1.2vh, 0.85rem);
  }

  .metodologia-left h2 {
    margin-bottom: 0;
  }

  .metodologia-left .metodologia-intro {
    margin-bottom: 0;
  }

  .metodologia-cta {
    margin-top: clamp(1.05rem, 2.4vh, 1.85rem);
  }

  .metodologia-schema-picture {
    max-width: min(455px, 42vw);
  }

  .metodologia-right {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    align-self: center;
    justify-self: center;
    gap: clamp(0.45rem, 1.1vh, 0.75rem);
    min-width: 0;
  }

  .metodologia-leadout {
    width: 100%;
    max-width: min(28rem, 100%);
    text-align: center;
    text-align-last: center;
    margin-bottom: 0;
  }
}

/* Misma escala tipográfica que el H1 de Home (clamp 1.9rem → 4rem) */
.metodologia-left h2 {
  margin: 0;
  font-weight: var(--fw-medium);
  font-size: clamp(1.9rem, 3.55vw, 4rem);
  line-height: 1.04;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: transparent;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(
    95deg,
    #9aaed0 0%,
    #b4c2dc 22%,
    #c9d4ea 45%,
    #dce5f4 72%,
    #e6edf8 100%
  );
  background-size: 100% 100%;
  -webkit-background-clip: text;
  background-clip: text;
}

.metodologia-intro {
  margin: 0;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(0.82rem, 1.15vw, 1.05rem);
  line-height: 1.58;
  max-width: 52ch;
  text-align: justify;
  text-align-last: left;
  hyphens: auto;
  -webkit-hyphens: auto;
  text-wrap: pretty;
}

.metodologia-leadout {
  margin: 0;
  font-weight: var(--fw-bold);
  color: rgba(255, 255, 255, 0.95);
  font-size: clamp(0.82rem, 1.1vw, 0.98rem);
  line-height: 1.45;
  letter-spacing: 0.02em;
}

.metodologia-cta {
  align-self: flex-start;
  margin-bottom: 0;
}

.metodologia-right {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
}

/* Tamaños por breakpoint (evitar que una regla base pise el max-width de escritorio) */
.metodologia-schema-picture {
  display: block;
  width: 100%;
  margin-inline: auto;
}

.metodologia-schema {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.35));
}

/* ═══════════════════════════════════════════════════════════════
   ELITE WOMANS
═══════════════════════════════════════════════════════════════ */
.elite-shell {
  position: relative;
  min-height: 100dvh;
  overflow: hidden;
  padding: 0 calc(var(--pad-x) + var(--edge));
  display: flex;
  align-items: center;
}

.elite-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 115%;
  top: -7.5%;
  object-fit: cover;
  object-position: center 25%;
  will-change: transform;
  z-index: 0;
}

.elite-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: transparent;
}

.elite-content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: min(1240px, 100%);
  margin-inline: auto;
  min-height: 100dvh;
  padding-top: calc(var(--header-h) + clamp(3rem, 8vh, 7rem));
  padding-bottom: clamp(2.5rem, 5vh, 4rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: clamp(1.4rem, 3vh, 2.2rem);
}

.elite-content h2.elite-title {
  margin: 0;
  font-size: clamp(3.2rem, 7.3vw, 8.2rem);
  line-height: 0.98;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  max-width: 16ch;
  text-align: center;
  font-weight: var(--fw-medium);
  font-synthesis: none;
}

/* Escritorio: gradiente vertical en el bloque de 2 líneas */
.elite-title__wrap--mobile {
  display: none;
}

/* Escritorio: vertical oscuro → bronce → oscuro (brief) + sombra suave */
.elite-title__wrap--desktop {
  display: block;
  font-weight: var(--fw-medium);
  color: transparent;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(
    180deg,
    #3b3440 0%,
    #2e2a33 22%,
    #9e8074 48%,
    #8b6f63 58%,
    #2e2a33 78%,
    #3b3440 100%
  );
  background-size: 100% 1.08em;
  background-repeat: repeat-y;
  -webkit-background-clip: text;
  background-clip: text;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.28))
    drop-shadow(0 1px 2px rgba(30, 26, 34, 0.35));
}

.elite-nowrap {
  white-space: nowrap;
}

.elite-content p {
  margin: 0;
  font-size: clamp(0.95rem, 1.5vw, 1.35rem);
  color: var(--ink);
  font-weight: var(--fw-medium);
  max-width: none;
  line-height: 1.58;
  text-align: center;
  white-space: nowrap;
}

.elite-cta {
  align-self: center;
  margin-bottom: 0;
  background: linear-gradient(
    180deg,
    #e8d5c0 0%,
    #ddc0a0 22%,
    #d0aa82 55%,
    #c79870 80%,
    #be8e62 100%
  );
  color: #2e1405;
  border: 1px solid rgba(255, 255, 255, 0.48);
  border-bottom-color: rgba(100, 55, 20, 0.28);
  box-shadow:
    0 10px 26px rgba(80, 40, 10, 0.38),
    0 4px 12px rgba(80, 40, 10, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.6),
    inset 0 -1px 0 rgba(100, 55, 20, 0.28),
    inset 0 -10px 22px rgba(140, 85, 45, 0.12);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
}

.elite-cta:hover,
.elite-cta:focus-visible {
  background: linear-gradient(
    180deg,
    #f0deca 0%,
    #e5caaa 22%,
    #d8b48a 55%,
    #cfa078 80%,
    #c5966a 100%
  );
  box-shadow:
    0 14px 32px rgba(80, 40, 10, 0.44),
    0 6px 14px rgba(80, 40, 10, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.66),
    inset 0 -1px 0 rgba(100, 55, 20, 0.22),
    inset 0 -10px 24px rgba(140, 85, 45, 0.08);
  filter: brightness(1.03);
}

/* ═══════════════════════════════════════════════════════════════
   PROGRAMA (5 BLOQUES)
═══════════════════════════════════════════════════════════════ */
.programa-layout--mobile {
  display: none;
}

.programa-layout--desktop {
  display: block;
}

@media (min-width: 721px) {
  html {
    scroll-snap-type: none;
  }
}

.programa-shell {
  position: relative;
  background: #f2ede4;
  overflow: hidden;
  min-height: 100dvh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  box-sizing: border-box;
  /* Solo despeje bajo el header fijo + aire inferior; el centrado lo hace margin auto en .programa-content */
  padding: calc(var(--header-h) + clamp(0.28rem, 0.9vh, 0.5rem))
    calc(var(--pad-x) + var(--edge))
    clamp(1.25rem, 3.5vh, 2.25rem);
  box-shadow: inset 0 0 100px rgba(88, 72, 58, 0.045);
}

.programa-content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: min(1240px, 100%);
  margin-inline: auto;
  margin-top: auto;
  margin-bottom: auto;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  gap: clamp(1.5rem, 3.2vh, 2.35rem);
  padding: 0;
  box-sizing: border-box;
}

.programa-blocks {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  grid-template-rows: auto;
  gap: clamp(1rem, 2vw, 1.4rem);
  width: 100%;
}

.prog-block {
  position: relative;
  background: linear-gradient(
    165deg,
    #1a264e 0%,
    #1c2a55 38%,
    #243a68 62%,
    #b08d71 100%
  );
  border-radius: 0;
  padding: clamp(1.4rem, 2.5vw, 2rem) clamp(1.2rem, 2vw, 1.7rem);
  min-height: clamp(12rem, 14vw, 14rem);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0.7rem;
  overflow: hidden;
  clip-path: polygon(0 0, 100% 0, 100% 76%, 78% 100%, 0 100%);
}

.prog-block::after {
  display: none;
}

.prog-block h3 {
  margin: 0;
  font-size: clamp(1.2rem, 1.35vw, 1.45rem);
  line-height: 1.15;
  color: #ffffff;
  font-weight: var(--fw-bold);
  letter-spacing: 0.005em;
}

.prog-block p {
  margin: 0;
  font-size: clamp(1rem, 1.2vw, 1.25rem);
  color: rgba(228, 235, 252, 0.96);
  line-height: 1.33;
  font-weight: var(--fw-medium);
}

/* Título (móvil centrado); el CTA es hermano de .programa-blocks — al final en ≤720px */
.programa-text {
  width: 100%;
  max-width: 100%;
}

.programa-text h2 {
  margin: 0;
  flex: none;
  max-width: min(52ch, 100%);
  font-size: clamp(1.28rem, 1.85vw, 1.95rem);
  line-height: 1.22;
  letter-spacing: 0.02em;
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  text-wrap: balance;
  text-align: center;
  color: #1a264e;
  -webkit-text-fill-color: #1a264e;
  background: none;
}

.programa-text h2 .programa-lead-mark {
  display: inline;
  color: transparent;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(180deg, #5c4a42 0%, #8b6a58 42%, #b89278 72%, #c9a080 100%);
  background-size: 100% 100%;
  -webkit-background-clip: text;
  background-clip: text;
}

.programa-cta {
  margin: 0;
  width: auto;
  min-width: min(220px, 100%);
  white-space: nowrap;
  align-self: center;
}

@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
  .programa-text h2 {
    color: #1a264e;
    -webkit-text-fill-color: currentColor;
  }

  .programa-text h2 .programa-lead-mark {
    color: #9b7b62;
    -webkit-text-fill-color: currentColor;
    background: none;
  }

  .programa-text h2 .programa-lead-mark--accent {
    color: #8b6a58;
    -webkit-text-fill-color: currentColor;
  }
}

/* Escritorio: fila 1 con flex — título alineado a la izquierda con la rejilla de tarjetas; CTA a la derecha del bloque */
@media (min-width: 901px) {
  .programa-content {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    align-content: flex-start;
    justify-content: flex-start;
    column-gap: clamp(1rem, 2.2vw, 1.75rem);
    row-gap: clamp(2rem, 4.2vh, 3.35rem);
  }

  /* DOM: texto → bloques → CTA; visual fila 1: texto + botón, fila 2: bloques */
  .programa-text {
    order: 1;
    flex: 0 1 auto;
    max-width: 70%;
    min-width: 0;
    width: auto;
  }

  .programa-cta {
    order: 2;
    flex: 0 0 auto;
    align-self: center;
  }

  .programa-blocks {
    order: 3;
    flex: 1 1 100%;
    min-width: 0;
    width: 100%;
  }

  .programa-text h2 {
    max-width: 100%;
    text-align: left;
    text-align-last: left;
    text-wrap: balance;
    hyphens: none;
    -webkit-hyphens: none;
    hyphenate-limit-chars: unset;
  }

  .prog-block {
    min-height: clamp(13rem, 15vw, 15.25rem);
  }

  .programa-blocks {
    gap: clamp(1.1rem, 2.2vw, 1.55rem);
  }
}

/* Programa — solo celular (≤720px): título centrado → tarjetas cuadradas → CTA al final */
@media (max-width: 720px) {
  .programa-content {
    gap: clamp(1.35rem, 4vh, 2rem);
  }

  .programa-text h2 {
    text-align: center;
    text-wrap: balance;
    max-width: 100%;
    font-size: clamp(0.92rem, 4vw, 1.08rem);
    line-height: 1.28;
    hyphens: none;
  }

  .programa-blocks {
    /* Misma rejilla 2×2 + 1 que en tablet; gap acorde al móvil (el 5.º usa --programa-gap en el ancho) */
    --programa-gap: clamp(0.5rem, 2.2vw, 0.75rem);
    gap: var(--programa-gap);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    max-width: min(400px, calc(100% - clamp(1.25rem, 8vw, 2.5rem)));
    margin-inline: auto;
  }

  .prog-block {
    min-height: unset;
    aspect-ratio: 1 / 1;
    height: auto;
    width: 100%;
    max-width: 100%;
    justify-content: center;
    align-items: center;
    padding: clamp(0.65rem, 3.2vw, 1rem);
  }

  /* Debe ir después de .prog-block { width: 100% } para no quedar a la izquierda ocupando media fila */
  .programa-blocks .prog-block:last-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc((100% - var(--programa-gap)) / 2);
    max-width: 100%;
    box-sizing: border-box;
  }

  .prog-block h3 {
    text-align: center;
    font-size: clamp(0.88rem, 3.4vw, 1.04rem);
  }

  .prog-block p {
    text-align: center;
    font-size: clamp(0.8rem, 3vw, 0.96rem);
    line-height: 1.3;
  }

  .programa-cta {
    display: inline-flex;
    justify-content: center;
    width: auto;
    min-width: min(220px, 100%);
    max-width: min(300px, calc(100% - 2rem));
    margin-inline: auto;
    white-space: normal;
    text-align: center;
  }
}

/* ═══════════════════════════════════════════════════════════════
   APLICACIONES (PRÓXIMAMENTE)
═══════════════════════════════════════════════════════════════ */
.apps-shell {
  --apps-scroll-shift: 0px;
  --apps-content-lift: 0px;
  --apps-bg-nudge: 0px;
  position: relative;
  min-height: calc(100dvh - var(--header-h));
  min-height: calc(100svh - var(--header-h));
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  box-sizing: border-box;
  background:
    radial-gradient(120% 80% at 50% calc(0% + var(--apps-bg-nudge)), rgba(27, 52, 108, 0.1) 0%, rgba(27, 52, 108, 0) 58%),
    linear-gradient(180deg, #fbfaf7 0%, #f2eee7 48%, #f5f1ea 100%);
  background-position: center calc(50% + var(--apps-bg-nudge));
  overflow: hidden;
  padding: 0 calc(var(--pad-x) + var(--edge));
  padding-top: clamp(0.2rem, 0.8vh, 0.5rem);
  padding-bottom: clamp(0.55rem, 1.6vh, 1rem);
}

/* Lavado dorado al entrar la sección (scroll) + parallax ligero vía --apps-scroll-shift */
.apps-shell::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  transition: opacity 1.15s cubic-bezier(0.22, 1, 0.36, 1);
  transform: translate3d(0, var(--apps-scroll-shift), 0);
  will-change: transform;
  background:
    radial-gradient(ellipse 92% 58% at 50% 5%, rgba(212, 177, 143, 0.26) 0%, transparent 58%),
    radial-gradient(ellipse 48% 38% at 88% 82%, rgba(200, 155, 116, 0.16) 0%, transparent 62%),
    radial-gradient(ellipse 42% 36% at 10% 72%, rgba(245, 232, 218, 0.12) 0%, transparent 55%);
}

.apps-shell.section-in-view::after {
  opacity: 1;
}

/* Barra superior de la sección: tono bronce/dorado (coherente con el CTA) */
.apps-shell .section-sweep.section-sweep--dark {
  height: 3px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(180, 130, 88, 0.35) 16%,
    rgba(212, 177, 143, 0.82) 48%,
    rgba(232, 205, 175, 0.95) 52%,
    rgba(200, 155, 116, 0.78) 84%,
    transparent 100%
  );
}

/* Entrada al scroll más marcada solo en esta sección */
.apps-shell .apps-header [data-reveal="up"] {
  transform: translateY(52px);
}

.apps-shell .apps-card[data-reveal="up"] {
  transform: translateY(92px) scale(0.93);
  transition-duration: 1.08s, 1.08s;
  transition-timing-function: cubic-bezier(0.14, 0.9, 0.22, 1);
}

.apps-shell.section-in-view .apps-card.is-revealed {
  filter: drop-shadow(0 18px 42px rgba(166, 124, 82, 0.32));
}

.apps-content {
  position: relative;
  z-index: 2;
  flex: 0 1 auto;
  width: 100%;
  max-width: min(1240px, 100%);
  margin-inline: auto;
  margin-top: 0;
  margin-bottom: auto;
  min-height: 0;
  padding-top: clamp(0.1rem, 0.5vh, 0.3rem);
  padding-bottom: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  gap: clamp(0.72rem, 1.35vh, 1.05rem);
  box-sizing: border-box;
  transform: translate3d(0, var(--apps-content-lift), 0);
  will-change: transform;
}

.apps-header {
  max-width: 100%;
  width: 100%;
  margin-inline: auto;
  text-align: center;
}

.apps-kicker {
  margin: 0 0 clamp(0.45rem, 1vh, 0.75rem);
  font-size: clamp(0.82rem, 1vw, 0.95rem);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #2f446f;
  font-weight: var(--fw-bold);
}

.apps-header h2 {
  margin: 0;
  font-size: clamp(1.7rem, 3.1vw, 3rem);
  line-height: 1.08;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #1a264e;
}

.apps-header p {
  margin: clamp(0.5rem, 1.1vh, 0.75rem) auto 0;
  max-width: 100%;
  font-size: clamp(0.9rem, 1.2vw, 1.12rem);
  line-height: 1.55;
  color: rgba(27, 38, 73, 0.88);
  text-wrap: auto;
}

.apps-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, clamp(220px, 26vw, 320px)));
  gap: clamp(0.8rem, 1.8vw, 1.25rem);
  width: auto;
  max-width: min(700px, 100%);
  margin-inline: auto;
  justify-content: center;
  align-items: stretch;
}

/* Borde con “luz” que orbita (conic-gradient rotando detrás del vidrio) */
.apps-card {
  --apps-radius: clamp(1.05rem, 2.2vw, 1.5rem);
  position: relative;
  aspect-ratio: 5 / 4;
  border-radius: var(--apps-radius);
  padding: 0;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1), filter 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.apps-card::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 185%;
  height: 185%;
  transform: translate(-50%, -50%);
  /* Paleta tipo CTA dorado/bronce (#D4B18F / #C89B74): sin azul, más contraste en el anillo */
  background: conic-gradient(
    from 0deg,
    rgba(255, 255, 255, 0) 0deg,
    rgba(255, 255, 255, 0) 58deg,
    rgba(255, 248, 238, 0.55) 78deg,
    rgba(245, 228, 208, 1) 98deg,
    rgba(232, 205, 175, 1) 118deg,
    rgba(212, 177, 143, 1) 142deg,
    rgba(200, 155, 116, 1) 168deg,
    rgba(255, 250, 242, 0.98) 198deg,
    rgba(166, 124, 82, 0.95) 228deg,
    rgba(232, 205, 175, 0.88) 258deg,
    rgba(255, 248, 238, 0.75) 288deg,
    rgba(255, 255, 255, 0.12) 318deg,
    rgba(255, 255, 255, 0) 360deg
  );
  animation: apps-glow-orbit 9.5s linear infinite;
  z-index: 0;
  opacity: 1;
  filter: saturate(1.28) brightness(1.14) contrast(1.06);
  pointer-events: none;
}

.apps-card--alt::before {
  animation-duration: 11.5s;
  animation-direction: reverse;
  animation-delay: -4.2s;
}

@keyframes apps-glow-orbit {
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

.apps-card-inner {
  position: relative;
  z-index: 1;
  margin: 3px;
  border-radius: calc(var(--apps-radius) - 3px);
  padding: clamp(1.1rem, 2.2vw, 1.5rem);
  min-height: 100%;
  height: 100%;
  background:
    linear-gradient(155deg, rgba(16, 34, 78, 0.97) 0%, rgba(18, 38, 88, 0.95) 46%, rgba(30, 56, 118, 0.92) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.13) 0%, rgba(255, 255, 255, 0.03) 100%);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 22px 44px rgba(10, 22, 52, 0.24);
  backdrop-filter: blur(12px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.apps-card:hover {
  transform: translateY(-8px) scale(1.01);
  filter: drop-shadow(0 24px 50px rgba(122, 82, 45, 0.42));
}

.apps-card-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(120% 70% at 20% 0%, rgba(255, 255, 255, 0.14) 0%, transparent 55%);
  pointer-events: none;
  mix-blend-mode: screen;
  opacity: 0.85;
}

.apps-card-inner h3 {
  margin: 0;
  position: relative;
  z-index: 1;
  font-size: clamp(1.08rem, 1.55vw, 1.42rem);
  line-height: 1.2;
  color: #ffffff;
  letter-spacing: 0.01em;
  text-align: center;
  max-width: 92%;
  text-wrap: balance;
}

.apps-card-inner p {
  margin: 0;
  position: relative;
  z-index: 1;
  font-size: clamp(0.8rem, 1.02vw, 0.94rem);
  line-height: 1.45;
  color: rgba(232, 238, 252, 0.92);
  max-width: 42ch;
}

.apps-pill {
  position: relative;
  z-index: 1;
  position: absolute;
  top: clamp(0.85rem, 1.6vw, 1.15rem);
  left: clamp(0.85rem, 1.6vw, 1.15rem);
  display: inline-flex;
  align-items: center;
  height: 1.9rem;
  padding: 0 0.78rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.32);
  color: #ffffff;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: var(--fw-bold);
}

/* Programas: layout tarjeta con icono + texto */
.apps-shell--programs .apps-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: min(1180px, 100%);
}

.apps-shell--programs .apps-card {
  aspect-ratio: auto;
}

.apps-shell--programs .apps-card-inner {
  min-height: clamp(15rem, 25vw, 18.5rem);
  align-items: stretch;
  justify-content: flex-start;
  padding: clamp(0.95rem, 1.55vw, 1.2rem);
}

.apps-shell--programs .apps-pill {
  left: auto;
  right: clamp(0.8rem, 1.3vw, 1rem);
}

@media (min-width: 901px) {
  .apps-shell--programs .apps-content {
    align-items: flex-start;
  }

  .apps-shell--programs .apps-header {
    text-align: left;
    margin-inline: 0;
    max-width: 100%;
    width: 100%;
  }

  .apps-shell--programs .apps-header p {
    margin-left: 0;
    margin-right: auto;
    text-align: left;
    max-width: 100%;
  }

  .apps-shell--programs .apps-grid {
    margin-inline: 0;
    justify-content: flex-start;
  }

  .apps-shell--programs .apps-pill {
    left: clamp(0.8rem, 1.3vw, 1rem);
    right: auto;
    transform: none;
  }
}

.apps-card-layout {
  display: grid;
  grid-template-columns: clamp(70px, 6vw, 92px) 1fr;
  gap: clamp(0.75rem, 1vw, 0.95rem);
  align-items: center;
  min-height: 100%;
}

.apps-card-icon {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 14px;
  border: 1px solid rgba(196, 218, 255, 0.24);
  background-color: rgba(8, 34, 86, 0.9);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.2),
    0 10px 18px rgba(3, 12, 34, 0.45);
  position: relative;
  overflow: hidden;
}

.apps-card-icon::before {
  content: none;
}

.apps-card-icon::after {
  content: none;
}

.apps-card-icon--1 {
  background-image: url("./assets/apps-icon-cognitive.png");
}

.apps-card-icon--2 {
  background-image: url("./assets/apps-icon-performance.png");
}

.apps-card-icon--3 {
  background-image: url("./assets/apps-icon-preventive.png");
}

/* Desactiva trazos simulados previos para mantener icono real */
.apps-card-icon--2::after {
  content: none;
  inset: auto;
  border-radius: 8px;
}

.apps-card-icon--1::before {
  content: none;
  inset: auto;
}

.apps-card-icon--1::after {
  content: none;
  inset: auto;
  border-color: transparent;
}

.apps-card-icon--2::before {
  content: none;
  inset: auto;
}

.apps-card-icon--3::after {
  content: none;
  inset: auto;
  border-radius: 0;
  border-color: transparent;
}

.apps-card-icon--3::before {
  content: none;
  inset: auto;
}

.apps-card-icon .apps-icon-hex {
  display: none;
}

.apps-card-copy {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  align-items: flex-start;
}

.apps-shell--programs .apps-card-inner h3 {
  max-width: 100%;
  text-align: left;
  font-size: clamp(0.95rem, 1.12vw, 1.12rem);
  line-height: 1.13;
}

.apps-shell--programs .apps-card-inner p {
  max-width: 34ch;
  font-size: clamp(0.74rem, 0.86vw, 0.84rem);
  line-height: 1.34;
  text-align: left;
}

@media (max-width: 900px) {
  .apps-shell {
    min-height: auto;
    overflow: visible;
    padding-bottom: clamp(1.6rem, 5vh, 2.6rem);
  }

  .apps-content {
    gap: clamp(1rem, 3vh, 1.5rem);
  }

  .apps-grid {
    grid-template-columns: 1fr;
    max-width: min(470px, 100%);
    margin-inline: auto;
  }

  .apps-shell--programs .apps-grid {
    grid-template-columns: 1fr !important;
    max-width: min(560px, 100%);
    width: 100%;
  }

  .apps-card {
    aspect-ratio: auto;
  }

  .apps-card-inner {
    min-height: clamp(12.5rem, 58vw, 14.8rem);
    height: auto;
  }

  .apps-shell--programs .apps-card-inner {
    min-height: auto;
    padding: 0.9rem 0.88rem 0.82rem;
  }

  .apps-shell--programs .apps-card-layout {
    grid-template-columns: 74px 1fr;
    gap: 0.7rem;
    align-items: start;
  }

  .apps-shell--programs .apps-card-copy {
    padding-top: 1.45rem;
  }

  .apps-shell--programs .apps-pill {
    top: 0.55rem;
    right: 0.55rem;
    height: 1.5rem;
    padding: 0 0.58rem;
    font-size: 0.58rem;
    letter-spacing: 0.06em;
  }

  .apps-shell--programs .apps-card-inner h3 {
    font-size: clamp(1.02rem, 4.45vw, 1.3rem);
    line-height: 1.08;
  }

  .apps-shell--programs .apps-card-title--preventive {
    font-size: clamp(0.98rem, 4.2vw, 1.2rem);
    line-height: 1.06;
  }

  .apps-shell--programs .apps-card-inner p {
    font-size: clamp(0.78rem, 3.25vw, 0.92rem);
    line-height: 1.3;
    max-width: 100%;
  }

  .apps-header h2 {
    font-size: clamp(1.35rem, 6vw, 2.15rem);
  }
}

@media (max-width: 720px) {
  .apps-shell {
    padding-inline: calc(var(--pad-x) + clamp(0.2rem, 1.2vw, 0.4rem));
    padding-top: clamp(0.35rem, 0.9vh, 0.7rem);
    padding-bottom: clamp(4.2rem, 14vh, 6.4rem);
    min-height: auto;
  }

  .apps-content {
    padding-top: 0;
    padding-bottom: clamp(1.8rem, 6.5vh, 3rem);
    margin-bottom: 0;
  }

  .apps-header p {
    font-size: clamp(0.82rem, 3.5vw, 0.95rem);
  }

  .apps-card-inner {
    min-height: clamp(12rem, 60vw, 14.5rem);
    padding: clamp(1rem, 4vw, 1.25rem);
  }

  .apps-shell--programs .apps-grid {
    max-width: min(520px, 100%);
  }

  .apps-shell--programs .apps-card-inner {
    border-radius: 16px;
    padding: 0.86rem 0.82rem 0.78rem;
  }

  .apps-shell--programs .apps-pill {
    top: 0.52rem;
    right: 0.52rem;
    font-size: 0.56rem;
    letter-spacing: 0.06em;
    height: 1.42rem;
    padding: 0 0.52rem;
  }

  .apps-shell--programs .apps-card-layout {
    grid-template-columns: 66px 1fr;
    gap: 0.62rem;
  }

  .apps-shell--programs .apps-card-copy {
    padding-top: 1.32rem;
  }

  .apps-shell--programs .apps-card-inner h3 {
    font-size: clamp(0.96rem, 6.2vw, 1.22rem);
    line-height: 1.1;
  }

  .apps-shell--programs .apps-card-title--preventive {
    font-size: clamp(0.92rem, 5.65vw, 1.12rem);
    line-height: 1.08;
  }

  .apps-shell--programs .apps-card-inner p {
    font-size: clamp(0.74rem, 3.75vw, 0.86rem);
    line-height: 1.28;
  }
}

@media (prefers-reduced-motion: reduce) {
  .apps-shell.section-in-view::after {
    opacity: 0.5;
    transition: none;
    transform: none;
  }

  .apps-content {
    transform: none;
    will-change: auto;
  }

  .apps-shell.section-in-view .apps-card.is-revealed {
    filter: none;
  }

  .apps-card::before {
    animation: none;
    opacity: 0.55;
    transform: translate(-50%, -50%) rotate(52deg);
  }
}

/* ═══════════════════════════════════════════════════════════════
   CONTACTO
═══════════════════════════════════════════════════════════════ */
.contacto-shell {
  position: relative;
  min-height: 100dvh;
  overflow: hidden;
  padding: 0 calc(var(--pad-x) + var(--edge));
  display: flex;
  align-items: center;
}

.contacto-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 115%;
  top: -7.5%;
  object-fit: cover;
  object-position: center 30%;
  will-change: transform;
  z-index: 0;
}

.contacto-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      115deg,
      rgba(4, 10, 26, 0.82) 0%,
      rgba(6, 12, 30, 0.74) 45%,
      rgba(8, 16, 38, 0.8) 100%
    ),
    radial-gradient(ellipse 70% 40% at 50% 65%, rgba(0, 0, 0, 0.3) 0%, transparent 60%);
}

.contacto-content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: min(1320px, 100%);
  margin-inline: auto;
  min-height: 100dvh;
  padding-top: calc(var(--header-h) + clamp(2.5rem, 6vh, 5rem));
  padding-bottom: clamp(2.5rem, 5vh, 4rem);
  display: flex;
  flex-direction: column;
  gap: clamp(1.1rem, 2.8vh, 1.8rem);
  align-items: center;
  justify-content: center;
}

.contacto-left {
  display: block;
  width: 100%;
  text-align: center;
}

.contacto-title {
  margin: 0;
  text-align: center;
}

.contacto-headline-line {
  display: inline-block;
  max-width: 100%;
  white-space: nowrap;
  font-size: clamp(2rem, 4.8vw, 5.5rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: #ffffff;
  text-shadow: 0 6px 20px rgba(0, 0, 0, 0.45);
  text-align: center;
  will-change: transform, opacity;
}

.contacto-shell.contacto-motion-on .contacto-headline-line,
.contacto-shell.contacto-motion-on .contacto-reveal-block {
  will-change: transform, opacity;
}

.contacto-shell.contacto-motion-on .contacto-bg {
  will-change: transform;
  transform-origin: center center;
}

.contacto-right {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(0.8rem, 2vh, 1.2rem);
  width: 100%;
  max-width: min(120ch, 100%);
  text-align: center;
}

.contacto-label {
  margin: 0;
  font-size: clamp(1.05rem, 1.55vw, 1.65rem);
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: #dce7ff;
  font-weight: var(--fw-bold);
  line-height: 1.25;
  max-width: 72ch;
  margin-inline: auto;
  text-align: center;
}

.contacto-desc {
  margin: 0;
  font-size: clamp(0.95rem, 1.5vw, 1.35rem);
  color: #ffffff;
  line-height: 1.58;
  text-align: center;
  hyphens: auto;
  -webkit-hyphens: auto;
  max-width: 48ch;
  margin-inline: auto;
}

.contacto-desc strong {
  font-weight: 700;
}

.contacto-cta {
  align-self: center;
  margin-bottom: 0;
  margin-inline: auto;
  white-space: normal;
  text-align: center;
  width: min(520px, 100%);
  margin-top: 0.35rem;
}

/* Contacto — escritorio: descripción más ancha (alineada al bloque del título) y justificada */
@media (min-width: 901px) {
  .contacto-right {
    max-width: min(1180px, 100%);
  }

  .contacto-desc {
    text-align: justify;
    text-align-last: center;
    max-width: min(85ch, 96%);
    text-wrap: pretty;
  }
}

/* Contacto — celular: descripción justificada (título y botón siguen centrados) */
@media (max-width: 720px) {
  .contacto-desc {
    text-align: justify;
    text-align-last: center;
    max-width: 100%;
    padding-inline: clamp(0.25rem, 2vw, 0.5rem);
    box-sizing: border-box;
  }
}

/* ═══════════════════════════════════════════════════════════════
   BLOG / INSIGHTS
═══════════════════════════════════════════════════════════════ */
.blog-shell {
  position: relative;
  background: linear-gradient(180deg, #eef1ea 0%, #d8dde8 48%, #1a2748 100%);
  overflow: hidden;
  padding: 0 calc(var(--pad-x) + var(--edge));
}

.blog-content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: min(1120px, 100%);
  margin-inline: auto;
  padding-top: calc(var(--header-h) + clamp(1.75rem, 4vh, 2.75rem));
  padding-bottom: clamp(2.5rem, 5vh, 4rem);
  display: flex;
  flex-direction: column;
  gap: clamp(1.35rem, 2.8vh, 2rem);
}

.blog-header {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-width: 52ch;
  margin: 0 auto;
  text-align: center;
}

.blog-kicker {
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #3d5a9e;
  font-weight: var(--fw-medium);
}

.blog-header h2 {
  margin: 0;
  font-size: clamp(1.65rem, 3.2vw, 2.45rem);
  color: #1a2f66;
  -webkit-text-fill-color: currentColor;
  background: none;
  letter-spacing: -0.02em;
  line-height: 1.12;
}

.blog-header p {
  margin: 0;
  font-size: clamp(0.88rem, 1.25vw, 1.02rem);
  color: #243056;
  line-height: 1.55;
}

/* Carrusel compacto: hasta 3 tarjetas visibles (desktop) */
.blog-carousel {
  width: 100%;
  outline: none;
}

.blog-carousel:focus-visible {
  outline: 2px solid rgba(39, 66, 137, 0.45);
  outline-offset: 6px;
  border-radius: 16px;
}

.blog-carousel-panel {
  background: rgba(255, 255, 255, 0.09);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 18px;
  padding: clamp(0.85rem, 2vw, 1.15rem);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.06) inset,
    0 24px 56px rgba(6, 12, 32, 0.28),
    0 8px 20px rgba(6, 14, 36, 0.14);
  backdrop-filter: blur(10px);
}

.blog-carousel-viewport {
  overflow: hidden;
  width: 100%;
  border-radius: 14px;
  container-type: inline-size;
  container-name: blog-vp;
}

.blog-carousel-track {
  display: flex;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.blog-slide {
  flex: 0 0 calc((100cqi - 2 * 0.75rem) / 3);
  min-width: 0;
  box-sizing: border-box;
  padding: 0;
}

@media (max-width: 960px) {
  .blog-slide {
    flex: 0 0 calc((100cqi - 0.75rem) / 2);
  }
}

@media (max-width: 640px) {
  .blog-slide {
    flex: 0 0 100cqi;
  }
}

.blog-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.65rem, 1.8vw, 1rem);
  margin-top: clamp(0.85rem, 2vh, 1.15rem);
}

.blog-carousel-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.12);
  color: #f0f4ff;
  font-size: 1.45rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.blog-carousel-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.22);
  transform: translateY(-1px);
}

.blog-carousel-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.blog-carousel-dots {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
}

.blog-carousel-dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.35);
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease;
}

.blog-carousel-dot.is-active {
  background: #c8d7ff;
  transform: scale(1.12);
}

.blog-card {
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
  transition: transform 240ms ease, box-shadow 240ms ease;
  cursor: default;
  height: 100%;
}

.blog-card--slide {
  display: flex;
  flex-direction: column;
  background: rgba(12, 22, 52, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.blog-card--slide:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22);
}

.blog-card-img {
  width: 100%;
  aspect-ratio: 4 / 5;
  min-height: 0;
  background: linear-gradient(145deg, #7a8494 0%, #5c6472 100%);
  display: grid;
  place-items: center;
  color: rgba(0, 0, 0, 0.35);
  font-size: clamp(0.72rem, 1.1vw, 0.82rem);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.blog-card-img::before {
  content: "Imagen";
}

.blog-card-img.has-cover {
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: rgba(10, 19, 45, 0.9);
}

.blog-card-img.has-cover::before {
  content: "";
}

.blog-card-img--manual-1 {
  background-image: linear-gradient(rgba(18, 24, 54, 0.22), rgba(18, 24, 54, 0.22)), url("./assets/linkedin-post-3.png");
}

.blog-card-img--manual-2 {
  background-image: linear-gradient(rgba(18, 24, 54, 0.22), rgba(18, 24, 54, 0.22)), url("./assets/linkedin-post-4.png");
}

.blog-card-img--manual-3 {
  background-image: linear-gradient(rgba(18, 24, 54, 0.22), rgba(18, 24, 54, 0.22)), url("./assets/linkedin-post-5.png");
}

.blog-card-img--manual-4 {
  background-image: linear-gradient(rgba(18, 24, 54, 0.22), rgba(18, 24, 54, 0.22)), url("./assets/linkedin-post-1.png");
}

.blog-card-img--manual-5 {
  background-image: linear-gradient(rgba(18, 24, 54, 0.22), rgba(18, 24, 54, 0.22)), url("./assets/linkedin-post-2.png");
}

.blog-card-body {
  padding: 0.65rem 0.75rem 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  align-items: flex-start;
  text-align: left;
  flex: 1;
}

.blog-card-meta {
  margin: 0;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}

.blog-card-excerpt {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.42;
  color: rgba(255, 255, 255, 0.82);
  text-align: left;
  max-width: none;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.blog-card-body h3 {
  margin: 0;
  font-size: clamp(0.88rem, 1.15vw, 0.98rem);
  color: #ffffff;
  font-weight: var(--fw-medium);
  line-height: 1.25;
  text-align: left;
}

.blog-card-link {
  display: none;
}

.blog-card-link--visible {
  display: inline-flex;
  margin-top: auto;
  padding-top: 0.35rem;
  font-size: 0.76rem;
  font-weight: var(--fw-medium);
  color: #b8ceff;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.blog-card-link--visible:hover,
.blog-card-link--visible:focus-visible {
  color: #ffffff;
}

/* ─── Responsive ─────────────────────────────────────────────── */

/* Tablet */
@media (max-width: 900px) {
  :root { --pad-x: 4%; }

  .hero-text { max-width: 62%; }

  .nav-pill {
    padding: 0 1rem;
    font-size: 0.86rem;
    height: 34px;
  }

  .about-content p {
    max-width: 62ch;
    font-size: clamp(0.95rem, 1.65vw, 1.28rem);
  }

  .about-content h2 {
    white-space: normal;
  }

  .about-pillars-rotate {
    font-size: clamp(1.12rem, 1.75vw, 1.52rem);
  }

  .about-clinical-content {
    gap: 1.4rem;
    padding-top: calc(var(--header-h) + 1.8rem);
  }

  .clinical-intro {
    width: 100%;
    text-align: left;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }

  .about-clinical-left h2.clinical-hero-title {
    font-size: clamp(1.65rem, 2.85vw, 3.35rem);
    line-height: 1.08;
    letter-spacing: 0.02em;
    text-align: left;
    width: 100%;
    max-width: 100%;
  }

  .about-clinical-left p.clinical-hero-desc {
    max-width: 100%;
    text-align: left;
  }

  .about-clinical-content {
    width: 92%;
  }

  .about-clinical-right {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    flex: 1 1 min(0, 100%);
    max-width: 720px;
    width: 100%;
    margin-inline: 0;
  }

  .about-clinical-cta-row {
    display: flex;
    justify-content: center;
    margin-left: 0;
    width: 100%;
  }

  /* Metodología: una columna — orden vía grid + display:contents en ambas columnas */
  .metodologia-content {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    row-gap: 1.8rem;
    column-gap: 0;
    padding-top: calc(var(--header-h) + 1.8rem);
  }

  .metodologia-left {
    display: contents;
  }

  .metodologia-right {
    display: contents;
  }

  .metodologia-left h2 {
    order: 1;
    text-align: center;
  }

  .metodologia-intro {
    order: 2;
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
    -webkit-hyphens: auto;
    font-size: clamp(0.8rem, 1.9vw, 0.98rem);
    margin-bottom: clamp(0.45rem, 1.2vh, 0.75rem);
  }

  .metodologia-leadout {
    order: 3;
    text-align: center;
    text-align-last: center;
    max-width: 100%;
    margin-bottom: clamp(0.65rem, 1.8vh, 1.1rem);
    hyphens: none;
  }

  .metodologia-schema-picture {
    order: 4;
    max-width: min(468px, 100%);
    margin-inline: auto;
  }

  .metodologia-cta {
    order: 5;
    justify-self: center;
    margin-inline: auto;
    margin-top: clamp(0.35rem, 1.5vh, 0.85rem);
  }

  /* Elite */
  .elite-content h2.elite-title { font-size: clamp(2rem, 6vw, 4rem); }
  .elite-content p { white-space: normal; }

  /* Programa (tablet): título centrado; tarjetas 2 col; CTA debajo de las tarjetas */
  .programa-text {
    padding-inline: clamp(1rem, 5vw, 2rem);
    box-sizing: border-box;
  }

  .programa-text h2 {
    max-width: 100%;
    min-width: 0;
    font-size: clamp(1.05rem, 2.6vw, 1.35rem);
    text-align: center;
  }

  .programa-cta {
    align-self: center;
    margin-inline: auto;
    white-space: normal;
    text-align: center;
  }

  .programa-blocks {
    --programa-gap: clamp(0.65rem, 2vw, 1rem);
    gap: var(--programa-gap);
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .prog-block:nth-child(4), .prog-block:nth-child(5) {
    grid-column: auto;
    grid-row: auto;
  }

  /* 5.ª tarjeta sola: misma anchura que una celda (sin estirar a ancho completo) */
  .prog-block:last-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc((100% - var(--programa-gap)) / 2);
    max-width: 100%;
    box-sizing: border-box;
  }

}

/* Small tablet / large phone */
@media (max-width: 720px) {
  :root {
    --header-h: 86px;
    --pad-x: 5%;
  }

  .nav-inner {
    padding-top: 0.2rem;
  }

  .mobile-menu-toggle {
    display: inline-flex;
  }

  .site-header nav {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: min(320px, 92vw);
    border-radius: 16px;
    border: 1px solid rgba(16, 38, 95, 0.14);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 16px 28px rgba(12, 32, 79, 0.18);
    backdrop-filter: blur(10px);
    padding: 0.7rem;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
    transition: opacity 220ms ease, transform 220ms ease;
  }

  .site-header nav.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }

  .nav-pill {
    width: 100%;
    justify-content: flex-start;
    height: 40px;
    padding: 0 1rem;
    font-size: 0.87rem;
  }

  .hero-body {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2rem;
  }

  .hero-text { max-width: 100%; }

  .cta-btn {
    align-self: flex-start;
    margin-bottom: 0;
  }

  /* Metodología: texto arriba, diagrama móvil debajo; márgenes laterales coherentes */
  .metodologia-shell {
    align-items: stretch;
  }

  .metodologia-content {
    min-height: auto;
    grid-template-columns: 1fr;
    row-gap: clamp(1.75rem, 4vh, 2.5rem);
    column-gap: 0;
    padding-top: calc(var(--header-h) + 1.5rem);
    padding-bottom: clamp(1.75rem, 4vh, 2.5rem);
  }

  .metodologia-left {
    display: contents;
  }

  .metodologia-right {
    display: contents;
  }

  .metodologia-left h2 {
    font-size: clamp(1.62rem, 6.2vw, 2.65rem);
    line-height: 1.1;
    text-align: center;
  }

  .metodologia-intro {
    max-width: 100%;
    color: rgba(255, 255, 255, 0.92);
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
    -webkit-hyphens: auto;
    font-size: clamp(0.78rem, 3.6vw, 0.92rem);
    line-height: 1.55;
    margin-bottom: clamp(0.35rem, 1.2vh, 0.65rem);
  }

  .metodologia-leadout {
    max-width: 100%;
    text-align: center;
    font-size: clamp(0.82rem, 3.8vw, 0.95rem);
    margin-bottom: clamp(0.75rem, 2.2vh, 1.25rem);
    line-height: 1.35;
  }

  .metodologia-cta {
    justify-self: center;
    margin-inline: auto;
    margin-top: clamp(0.25rem, 1.2vh, 0.65rem);
  }

  .metodologia-schema-picture {
    max-width: min(275px, 71vw);
  }

  .metodologia-schema {
    max-width: 100%;
  }

  br.br-mobile-only {
    display: block;
  }

  h1 {
    font-size: clamp(1.62rem, 6.2vw, 2.65rem);
    line-height: 1.12;
    letter-spacing: -0.02em;
    max-width: 22ch;
  }

  .about-content {
    padding-top: calc(var(--header-h) + 2.2rem);
    padding-bottom: 2.5rem;
    --about-line-w: min(67vw, 640px);
    gap: 0.2rem;
  }

  .about-content h2 {
    font-size: clamp(1.45rem, 5.8vw, 2.2rem);
    max-width: 100%;
    white-space: normal;
    text-wrap: balance;
    margin-bottom: 1rem;
  }

  .about-content p {
    width: var(--about-line-w);
    font-size: 0.98rem;
    line-height: 1.58;
    text-align: justify;
  }

  /* Puente flexible: pilares centrados entre texto y CTA */
  .about-pillars-bridge {
    width: var(--about-line-w);
    max-width: 100%;
    padding-top: 10px;
  }

  .about-pillars-rotate {
    font-size: clamp(1.05rem, 4vw, 1.28rem);
    min-height: 3.35em;
  }

  .about-bottom {
    width: var(--about-line-w);
    flex: 0 0 auto;
    min-height: 0;
    margin-top: 0;
    padding-top: clamp(0.55rem, 1.4vh, 0.95rem);
  }

  .about-cta-row {
    flex-shrink: 0;
    justify-content: center;
    margin-top: 0;
    padding-top: 0.65rem;
    padding-bottom: 0.25rem;
  }

  .about-cta.cta-btn {
    width: min(280px, 100%);
    max-width: 100%;
  }

  .about-clinical-shell {
    min-height: auto;
  }

  .about-clinical-content {
    min-height: auto;
    gap: 0.9rem;
    padding-top: calc(var(--header-h) + 1.4rem);
    padding-bottom: 1.8rem;
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    box-sizing: border-box;
  }

  .about-clinical-left {
    align-items: flex-start;
  }

  .clinical-intro {
    width: 100%;
    align-items: stretch;
    flex-direction: column;
    max-width: 100%;
    margin-inline: 0;
    padding-inline: clamp(0.85rem, 4.5vw, 1.2rem);
    box-sizing: border-box;
  }

  .about-clinical-left h2.clinical-hero-title {
    font-size: clamp(1.62rem, 6.2vw, 2.65rem);
    line-height: 1.12;
    letter-spacing: 0.015em;
    text-align: center;
    word-spacing: normal;
    align-self: stretch;
    width: 100%;
    max-width: 100%;
  }

  .about-clinical-left p.clinical-hero-desc {
    margin-top: 0;
    max-width: 100%;
    text-align: justify;
    text-align-last: left;
    font-size: 0.92rem;
    line-height: 1.58;
    text-wrap: wrap;
    hyphens: auto;
    -webkit-hyphens: auto;
  }

  .about-clinical-cta-row--intro {
    display: flex;
    margin-top: 0.45rem;
    justify-content: center;
  }

  .about-clinical-bottom {
    flex-direction: column;
    gap: 0.85rem;
  }

  .about-clinical-right {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    flex: 1 1 100%;
    max-width: 100%;
    align-items: center;
  }

  /* Orden móvil como referencia: Ansiedad, Fatiga, Sobrecarga */
  .about-clinical-right .risk-card:nth-child(1) { order: 3; }
  .about-clinical-right .risk-card:nth-child(2) { order: 2; }
  .about-clinical-right .risk-card:nth-child(3) { order: 1; }

  .risk-card {
    border-radius: 1.3rem;
    padding: 1.05rem 0.95rem 0.95rem;
    width: min(290px, 80vw);
    min-height: 190px;
    justify-content: center;
    align-items: center;
  }

  .risk-card h3 {
    font-size: 0.92rem;
    width: 100%;
    text-align: center !important;
    margin-inline: auto;
  }

  .risk-card p {
    font-size: 0.92rem;
    line-height: 1.3;
    width: 100%;
    text-align: center !important;
    margin-inline: auto;
  }

  .about-clinical-cta-row {
    margin-top: 0.6rem;
    margin-left: 0;
    display: flex;
    justify-content: center;
    width: 100%;
  }

  /* Botón inferior siempre visible debajo de las tarjetas */
  .about-clinical-bottom .about-clinical-cta-row {
    display: flex !important;
    order: 4;
    opacity: 1 !important;
    transform: none !important;
    visibility: visible !important;
    width: 100%;
    margin-top: 0.75rem;
  }

  .about-clinical-cta {
    width: min(300px, 82vw);
    font-size: 1rem;
    padding: 0.7rem 1.2rem;
  }

  /* Elite móvil/tablet: composición como maqueta */
  .elite-shell {
    min-height: 100svh;
    padding: 0 6px;
  }

  .elite-bg {
    height: 108%;
    top: -4%;
    object-position: 58% center;
  }

  .elite-content {
    min-height: 100svh;
    padding-top: calc(var(--header-h) + 1.55rem);
    padding-bottom: max(1.35rem, env(safe-area-inset-bottom));
    padding-left: clamp(8px, 2.1vw, 12px);
    padding-right: clamp(6px, 1.8vw, 10px);
    align-items: flex-start;
    justify-content: center;
    text-align: left;
    gap: 0.78rem;
  }

  .elite-title__wrap--desktop {
    display: none !important;
  }

  .elite-title__wrap--mobile {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.12em;
    width: 100%;
    max-width: min(90vw, 20rem);
    filter:
      drop-shadow(0 1px 1px rgba(0, 0, 0, 0.2))
      drop-shadow(0 4px 12px rgba(20, 22, 45, 0.2));
  }

  .elite-content h2.elite-title {
    font-size: clamp(1.75rem, 7.5vw, 2.45rem);
    line-height: 1.05;
    letter-spacing: 0.03em;
    font-weight: var(--fw-medium);
    text-align: left;
    max-width: 100%;
    margin-left: 0;
    color: inherit;
    -webkit-text-fill-color: inherit;
    background: none;
    -webkit-background-clip: unset;
    background-clip: unset;
  }

  .elite-mline {
    display: block;
    font-weight: var(--fw-medium);
    line-height: 1.05;
  }

  /* Colores brief móvil (solo ≤720px) */
  .elite-mline--1 {
    color: transparent;
    -webkit-text-fill-color: transparent;
    background: linear-gradient(90deg, #3a384b 0%, #5a484c 100%);
    -webkit-background-clip: text;
    background-clip: text;
  }

  .elite-mline--2 {
    color: transparent;
    -webkit-text-fill-color: transparent;
    background: linear-gradient(90deg, #c49a82 0%, #a37d64 48%, #8a6548 100%);
    -webkit-background-clip: text;
    background-clip: text;
  }

  .elite-mline--3 {
    color: transparent;
    -webkit-text-fill-color: transparent;
    background: linear-gradient(90deg, #2d2e50 0%, #3d2b40 100%);
    -webkit-background-clip: text;
    background-clip: text;
  }

  .elite-content p {
    font-size: 0.94rem;
    line-height: 1.38;
    white-space: normal;
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
    -webkit-hyphens: auto;
    max-width: min(92vw, 34ch);
    margin-left: 0;
    color: #1e2545;
  }

  .elite-cta {
    align-self: flex-start;
    width: auto;
    min-width: 158px;
    padding: 0.48rem 1.05rem;
    font-size: 0.9rem;
    margin-top: 0.18rem;
    margin-left: 0;
  }

  /* Programa — 3 etapas de scroll (maqueta móvil); escritorio oculto */
  html {
    scroll-snap-type: y proximity;
  }

  .programa-layout--desktop {
    display: none !important;
  }

  .programa-layout--mobile {
    display: block;
    width: 100%;
    max-width: min(1240px, 100%);
    margin-inline: auto;
  }

  .programa-shell {
    min-height: 0;
    display: block;
    background: #eae3d6;
    /* Mismo hueco entre todas las tarjetas (incl. entre etapa 1 y 2) */
    --programa-card-gap: 0.5rem;
    padding-left: max(0px, env(safe-area-inset-left, 0px));
    padding-right: max(0px, env(safe-area-inset-right, 0px));
  }

  .programa-layout--mobile,
  .programa-stage,
  .programa-stage-grid {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  /* Etapas compactas; tarjetas en columna (un cuadro por fila) */
  .programa-stage {
    min-height: 0;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding-bottom: 0;
    scroll-snap-align: start;
    scroll-margin-top: var(--header-h);
    scroll-snap-stop: normal;
  }

  .programa-stage--1 {
    justify-content: flex-start;
    gap: var(--programa-card-gap);
    padding-top: calc(var(--header-h) + 0.28rem);
  }

  /* Un solo “salto” entre tarjeta 3 y 4 = mismo gap que dentro de cada grid */
  .programa-stage--2 {
    justify-content: flex-start;
    gap: var(--programa-card-gap);
    padding-top: var(--programa-card-gap);
    padding-bottom: clamp(0.65rem, 2.2vh, 1.1rem);
  }

  .programa-stage-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--programa-card-gap);
    flex: 0 0 auto;
    align-content: start;
    width: 100%;
    /* Maqueta: cuadros no a pantalla completa (márgenes laterales amplios) */
    padding-left: max(clamp(2.45rem, 13vw, 4rem), env(safe-area-inset-left, 0px));
    padding-right: max(clamp(2.45rem, 13vw, 4rem), env(safe-area-inset-right, 0px));
  }

  .programa-stage--2 .programa-cta--stage {
    margin-top: 0;
    padding-top: 0;
    flex-shrink: 0;
  }

  .programa-text--mobile {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--programa-card-gap);
    width: 100%;
    max-width: none;
    margin-inline: 0;
    /* Título/CTA con aire lateral (los cuadros llevan margen en .programa-stage-grid) */
    padding-inline: clamp(0.6rem, 3.5vw, 1rem);
    box-sizing: border-box;
  }

  .programa-text--mobile .programa-title-mobile,
  .programa-text--mobile h2.programa-title-mobile {
    flex: none;
    max-width: 100%;
    margin: 0;
    text-align: justify;
    text-align-last: center;
    hyphens: auto;
    -webkit-hyphens: auto;
    hyphenate-limit-chars: 6 3 3;
    font-size: clamp(0.92rem, 4.05vw, 1.12rem);
    line-height: 1.22;
    letter-spacing: 0.032em;
    text-wrap: pretty;
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    color: #1a264e !important;
    -webkit-text-fill-color: #1a264e !important;
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
  }

  .programa-text--mobile .programa-lead-mark,
  .programa-text--mobile .programa-lead-mark--accent {
    color: #b87355 !important;
    -webkit-text-fill-color: #b87355 !important;
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    font-weight: var(--fw-bold);
  }

  .programa-layout--mobile .prog-block {
    width: 100%;
    align-self: stretch;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin: 0;
    /* Cuadrados dentro del ancho ya acotado por el grid (no full-bleed) */
    aspect-ratio: 1 / 1;
    min-height: 0;
    height: auto;
    max-width: 100%;
    padding: clamp(0.65rem, 3.2vw, 1rem) clamp(0.6rem, 2.8vw, 0.95rem);
    gap: 0.3rem;
    /* Degradado vertical: navy → transición cálida → melocotón (ref. imagen) */
    background: linear-gradient(
      180deg,
      #0a1128 0%,
      #1a2238 14%,
      #3a3848 38%,
      #6b5f62 52%,
      #a88872 76%,
      #d9b398 100%
    );
    border-radius: 0;
    clip-path: polygon(0 0, 100% 0, 100% 76%, 76% 100%, 0 100%);
    box-shadow:
      0 1px 0 rgba(255, 255, 255, 0.07) inset,
      0 10px 22px rgba(8, 12, 28, 0.28);
  }

  .programa-layout--mobile .prog-block h3 {
    font-size: clamp(0.95rem, 3.55vw, 1.12rem);
    text-align: center;
    letter-spacing: 0.01em;
    margin: 0;
    width: 100%;
  }

  .programa-layout--mobile .prog-block p {
    font-size: clamp(0.86rem, 3.1vw, 1.02rem);
    line-height: 1.32;
    text-align: center;
    margin: 0;
    width: 100%;
  }

  .programa-layout--mobile .programa-cta.cta-btn,
  .programa-layout--mobile .programa-cta--stage {
    align-self: center;
    width: 100%;
    max-width: min(320px, 100%);
    margin-inline: auto;
    margin-top: 0;
    animation: none;
    padding: 0.55rem 1.2rem;
    font-size: 0.86rem;
    box-shadow: 0 6px 16px rgba(14, 26, 60, 0.28);
  }

}

/* Mobile */
@media (max-width: 480px) {
  :root { --header-h: 84px; }

  .hero-body {
    padding-left: max(var(--pad-x), 1rem);
    padding-right: max(var(--pad-x), 1rem);
  }

  .hero-text {
    max-width: 100%;
  }

  h1 {
    font-size: clamp(1.42rem, 8.2vw, 2.05rem);
    line-height: 1.14;
    max-width: 100%;
  }

  .metodologia-left h2 {
    font-size: clamp(1.42rem, 8.2vw, 2.05rem);
    line-height: 1.14;
    text-align: center;
  }

  .metodologia-schema-picture {
    max-width: min(248px, 64vw);
  }

  .hero-desc {
    max-width: 100%;
    font-size: 0.875rem;
    line-height: 1.5;
    letter-spacing: 0.01em;
    hyphens: auto;
    -webkit-hyphens: auto;
    hyphenate-limit-chars: 8 4 4;
  }

  .cta-btn {
    width: 100%;
    max-width: 280px;
  }

  .about-content h2 {
    font-size: clamp(1.3rem, 7vw, 1.85rem);
    line-height: 1.12;
    max-width: 100%;
    margin-bottom: 0.9rem;
  }

  .about-content p {
    font-size: 0.9rem;
    line-height: 1.52;
    margin-bottom: 0.4rem;
    text-align: justify;
  }

  .about-pillars-rotate {
    font-size: clamp(1rem, 3.8vw, 1.18rem);
    min-height: 3.5em;
  }

  .about-cta-row {
    justify-content: center;
  }

  .about-cta.cta-btn {
    width: min(280px, 100%);
    max-width: 100%;
  }

  .about-clinical-content {
    gap: 0.75rem;
    padding-bottom: 1.5rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .clinical-intro {
    max-width: 100%;
    flex-direction: column;
    align-items: stretch;
    padding-inline: clamp(0.75rem, 4.2vw, 1.1rem);
  }

  .about-clinical-left h2.clinical-hero-title {
    font-size: clamp(1.42rem, 8.2vw, 2.05rem);
    line-height: 1.14;
    text-align: center;
    word-spacing: normal;
    align-self: stretch;
    width: 100%;
    max-width: 100%;
  }

  .about-clinical-left p.clinical-hero-desc {
    max-width: 100%;
    font-size: 0.9rem;
    line-height: 1.55;
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
    -webkit-hyphens: auto;
    text-wrap: wrap;
  }

  .risk-card {
    padding: 1rem 0.9rem 0.9rem;
    width: min(300px, 84vw);
    min-height: 182px;
    justify-content: center;
    align-items: center;
  }

  /* Asegura segundo botón visible debajo de tarjetas en móvil */
  .about-clinical-bottom .about-clinical-cta-row {
    display: flex !important;
    order: 4;
    opacity: 1 !important;
    transform: none !important;
    visibility: visible !important;
    margin-top: 0.9rem;
  }

  .risk-card h3 {
    font-size: 0.86rem;
  }

  .risk-card p {
    font-size: 0.86rem;
  }

  .about-clinical-cta {
    width: min(270px, 100%);
    font-size: 0.95rem;
  }

  /* Programa móvil (refino ≤480px) */
  .programa-text--mobile {
    width: 100%;
    max-width: none;
  }

  .programa-text--mobile .programa-title-mobile {
    font-size: clamp(0.88rem, 4.15vw, 1.06rem);
    line-height: 1.2;
  }

  .programa-layout--mobile .programa-cta.cta-btn,
  .programa-layout--mobile .programa-cta--stage {
    max-width: min(300px, 90vw);
    font-size: 0.85rem;
  }

  /* Contacto móvil */
  .contacto-content {
    min-height: auto;
    padding-top: calc(var(--header-h) + 1.6rem);
  }
  .contacto-headline-line {
    font-size: clamp(1.05rem, 4.5vw + 0.25rem, 1.95rem);
    letter-spacing: -0.03em;
  }
  .contacto-label { max-width: 100%; }
  .contacto-desc { font-size: 0.88rem; }

  /* Clinical bottom */
  .about-clinical-bottom { gap: 0.85rem; }

  /* Blog móvil */
  .blog-header h2 { font-size: clamp(1.35rem, 7vw, 1.85rem); }
}

/* ═══════════════════════════════════════════════════════════════
   PIE DE PÁGINA
═══════════════════════════════════════════════════════════════ */
.site-footer {
  background: #0a0a0a;
  color: rgba(255, 255, 255, 0.88);
  padding: clamp(1.5rem, 3vh, 2rem) calc(var(--pad-x) + var(--edge));
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.site-footer--centered .footer-inner {
  max-width: min(640px, 100%);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(1rem, 2.5vh, 1.35rem);
  text-align: center;
}

.footer-brand {
  display: flex;
  justify-content: center;
  width: 100%;
}

.footer-logo-link {
  display: inline-block;
  line-height: 0;
}

.footer-logo-img {
  height: auto;
  max-width: min(180px, 62vw);
  width: 180px;
  filter: brightness(0) invert(1);
}

.footer-contact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.5rem;
}

.footer-legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.5rem;
  padding-top: 0.15rem;
}

.footer-dot {
  color: rgba(255, 255, 255, 0.35);
  user-select: none;
}

.footer-link {
  color: rgba(230, 235, 248, 0.92);
  font-size: clamp(0.82rem, 1.1vw, 0.9rem);
  text-decoration: none;
  transition: color 0.2s ease, opacity 0.2s ease;
}

.footer-link:hover,
.footer-link:focus-visible {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.footer-link--linkedin {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.footer-linkedin-icon {
  display: inline-flex;
  color: #ffffff;
  flex-shrink: 0;
}

.footer-legal-link {
  color: rgba(200, 210, 235, 0.88);
  font-size: clamp(0.78rem, 1vw, 0.85rem);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  font-weight: var(--fw-medium);
  transition: color 0.2s ease;
}

.footer-legal-link:hover,
.footer-legal-link:focus-visible {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.footer-copy {
  margin: 0;
  padding-top: 0.15rem;
  font-size: 0.75rem;
  letter-spacing: 0.03em;
  color: rgba(255, 255, 255, 0.38);
}

/* ─── Páginas legales (Términos, Aviso de privacidad) ───────────── */
.legal-body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  font-family: var(--font-sans);
  background: #eef0f5;
  color: #1a2238;
}

.legal-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem clamp(1rem, 4vw, 2rem);
  background: #ffffff;
  border-bottom: 1px solid rgba(15, 38, 95, 0.1);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
}

.legal-back {
  font-size: 0.88rem;
  font-weight: var(--fw-medium);
  color: #274289;
  text-decoration: none;
  transition: color 0.2s ease;
}

.legal-back:hover,
.legal-back:focus-visible {
  color: #0f1a3d;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.legal-header-logo {
  height: auto;
  max-width: min(150px, 42vw);
  width: 150px;
  margin-left: auto;
}

.legal-main {
  flex: 1;
  width: 100%;
  max-width: min(720px, 100%);
  margin-inline: auto;
  padding: clamp(1.75rem, 4vh, 2.75rem) clamp(1rem, 4vw, 1.5rem) clamp(2.5rem, 5vh, 3.5rem);
  box-sizing: border-box;
}

.legal-title {
  margin: 0 0 0.5rem;
  font-size: clamp(1.45rem, 3.5vw, 1.85rem);
  font-weight: var(--fw-bold);
  color: #0f1a3d;
  line-height: 1.2;
}

.legal-meta {
  margin: 0 0 1.75rem;
  font-size: 0.82rem;
  color: #5a6578;
}

.legal-doc {
  background: #ffffff;
  border-radius: 14px;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border: 1px solid rgba(15, 38, 95, 0.08);
  box-shadow: 0 12px 32px rgba(12, 28, 64, 0.06);
}

.legal-section {
  margin-bottom: 1.5rem;
}

.legal-section:last-child {
  margin-bottom: 0;
}

.legal-section h2 {
  margin: 0 0 0.65rem;
  font-size: clamp(1rem, 2vw, 1.12rem);
  font-weight: var(--fw-bold);
  color: #274289;
}

.legal-section p {
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
  line-height: 1.65;
  color: #2c3548;
}

.legal-section p:last-child {
  margin-bottom: 0;
}

.legal-list {
  margin: 0 0 0.75rem;
  padding-left: 1.25rem;
  font-size: 0.92rem;
  line-height: 1.55;
  color: #2c3548;
}

.legal-list li {
  margin-bottom: 0.4rem;
}

.legal-doc a {
  color: #1d4ed8;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.legal-doc a:hover,
.legal-doc a:focus-visible {
  color: #1e3a8a;
}

.legal-footer {
  padding: 1.25rem clamp(1rem, 4vw, 2rem);
  text-align: center;
  background: #0a0a0a;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.82rem;
}

.legal-footer p {
  margin: 0.35rem 0;
}

.legal-footer a {
  color: rgba(200, 215, 255, 0.95);
  text-decoration: none;
}

.legal-footer a:hover,
.legal-footer a:focus-visible {
  text-decoration: underline;
}

.legal-footer-sep {
  margin: 0 0.4rem;
  opacity: 0.5;
}

.legal-footer-copy {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.38);
}

@media (max-width: 520px) {
  .legal-header {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .legal-header-logo {
    margin-left: 0;
  }
}

/* ═══════════════════════════════════════════════════════════════
   PRELOADER  (~3 s visibles; salida: disolución suave + ligera elevación)
═══════════════════════════════════════════════════════════════ */

.preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transition: none;
}

/* ── z-index 1: fondo ── */
.pl-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: #07122e;
}

/* ── z-index 3: contenido central (encima de todo) ── */
.pl-center {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6rem;
}

/* Logo — entra rápido (todo el intro cabe antes de los 3 s) */
.pl-logo {
  width: min(220px, 56vw);
  height: auto;
  opacity: 0;
  filter: brightness(0) invert(1);
  animation: plLogoIn 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.12s forwards;
}

@keyframes plLogoIn {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Tagline bajo el logo: entrada + brillo lento solo sobre el trazo ── */
.pl-tagline {
  margin: 0;
  max-width: 22rem;
  padding: 0 0.75rem;
  text-align: center;
  font-family: var(--font-sans);
  font-size: clamp(0.7rem, 2.5vw, 0.88rem);
  font-weight: var(--fw-medium);
  line-height: 1.45;
  letter-spacing: 0.08em;
  text-transform: none;
  color: transparent;
  background-image: linear-gradient(
    100deg,
    #8f7262 0%,
    #b8946e 18%,
    var(--gold) 35%,
    #fff8ec 50%,
    var(--gold) 65%,
    #a67f5c 82%,
    #8f7262 100%
  );
  background-size: 260% 100%;
  background-position: 0% 50%;
  -webkit-background-clip: text;
  background-clip: text;
  opacity: 0;
  transform: translateY(12px);
  will-change: transform, opacity, filter, background-position;
  animation:
    plTaglineIn 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.35s forwards,
    plTaglineAura 8s ease-in-out 1s infinite;
}

@keyframes plTaglineIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Luz que va y viene + pulsación muy suave (ritmo lento, tipo “estado activo”) */
@keyframes plTaglineAura {
  0%,
  100% {
    background-position: 0% 50%;
    filter: brightness(1) saturate(1) drop-shadow(0 0 0 transparent);
  }
  28% {
    background-position: 72% 50%;
    filter: brightness(1.18) saturate(1.12) drop-shadow(0 0 14px rgba(222, 178, 120, 0.35));
  }
  52% {
    background-position: 100% 50%;
    filter: brightness(1.12) saturate(1.08) drop-shadow(0 0 10px rgba(222, 178, 120, 0.28));
  }
  78% {
    background-position: 38% 50%;
    filter: brightness(1.06) saturate(1.04) drop-shadow(0 0 6px rgba(222, 178, 120, 0.18));
  }
}

/* ── Barra de progreso dorada ── */
.pl-bar-wrap {
  position: relative;
  width: min(220px, 56vw);
  height: 1.5px;
  opacity: 0;
  animation: plFadeIn 0.35s ease 0.32s forwards;
}

@keyframes plFadeIn {
  to { opacity: 1; }
}

.pl-bar-track {
  position: absolute;
  inset: 0;
  background: rgba(222, 178, 120, 0.18);
  border-radius: 999px;
}

.pl-bar-fill {
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 0%;
  background: linear-gradient(90deg, var(--gold), #f5dda8, var(--gold));
  background-size: 200% 100%;
  border-radius: 999px;
  animation:
    plBarGrow 1.45s cubic-bezier(0.4, 0, 0.2, 1) 0.35s forwards,
    goldSlide 1.3s linear infinite;
}

@keyframes plBarGrow {
  0%   { width: 0%; }
  50%  { width: 72%; }
  78%  { width: 90%; }
  100% { width: 100%; }
}

/* ── Salida circular minimalista ── */
.preloader.pl-exit {
  pointer-events: none;
  will-change: clip-path, opacity;
  animation: plIrisClose 1.15s cubic-bezier(0.62, 0.08, 0.28, 1) forwards;
}

/* Anillo único y suave, sin ruido */
.preloader.pl-exit::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 200vmax;
  height: 200vmax;
  margin: -100vmax 0 0 -100vmax;
  border-radius: 50%;
  z-index: 2;
  pointer-events: none;
  background: radial-gradient(
    circle,
    transparent 0 48.4%,
    rgba(222, 178, 120, 0.33) 49.2%,
    rgba(255, 255, 255, 0.18) 50%,
    transparent 51.6%
  );
  filter: drop-shadow(0 0 10px rgba(222, 178, 120, 0.22));
  opacity: 0;
  animation: plIrisRing 1.15s cubic-bezier(0.62, 0.08, 0.28, 1) forwards;
}

.preloader.pl-exit .pl-center {
  animation: plCenterIrisOut 0.42s ease forwards;
}

@keyframes plCenterIrisOut {
  to {
    opacity: 0;
    transform: translateY(-6px) scale(0.97);
  }
}

@keyframes plIrisRing {
  0% {
    opacity: 0;
    transform: scale(0.08);
  }
  28% {
    opacity: 0.75;
    transform: scale(0.64);
  }
  100% {
    opacity: 0;
    transform: scale(1.03);
  }
}

@keyframes plIrisClose {
  0% {
    clip-path: circle(150vmax at 50% 50%);
    -webkit-clip-path: circle(150vmax at 50% 50%);
    opacity: 1;
  }
  90% {
    clip-path: circle(0.8rem at 50% 50%);
    -webkit-clip-path: circle(0.8rem at 50% 50%);
    opacity: 1;
  }
  100% {
    clip-path: circle(0 at 50% 50%);
    -webkit-clip-path: circle(0 at 50% 50%);
    opacity: 0;
    visibility: hidden;
  }
}

/* ═══════════════════════════════════════════════════════════════
   SCROLL-REVEAL SYSTEM
   Cada elemento con [data-reveal] arranca invisible+desplazado y
   obtiene .is-revealed cuando entra en el viewport (vía JS IO).
═══════════════════════════════════════════════════════════════ */

/* ── Base: oculto y desplazado ── */
[data-reveal] {
  opacity: 0;
  will-change: transform, opacity;
}

[data-reveal="up"] {
  transform: translateY(78px);
}

[data-reveal="left"] {
  transform: translateX(-72px) translateY(16px);
}

[data-reveal="right"] {
  transform: translateX(72px) translateY(16px);
}

[data-reveal="fade"] {
  transform: translateY(30px);
}

/* ── Duraciones y easing ── */
[data-reveal] {
  transition:
    opacity 0.96s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.96s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ── Delays en cascada ── */
[data-delay="1"] { transition-delay: 0.14s; }
[data-delay="2"] { transition-delay: 0.26s; }
[data-delay="3"] { transition-delay: 0.40s; }
[data-delay="4"] { transition-delay: 0.56s; }
[data-delay="5"] { transition-delay: 0.72s; }

/* ── Estado final: visible en posición ── */
[data-reveal].is-revealed {
  opacity: 1;
  transform: none;
}

/* ── Línea de barrido por sección ──────────────────────────── */
.section-sweep {
  position: absolute;
  top: 0;
  left: 0;
  width: 0%;
  height: 3px;
  z-index: 10;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(29, 58, 120, 0.55) 20%,
    rgba(53, 91, 168, 0.75) 50%,
    rgba(29, 58, 120, 0.55) 80%,
    transparent 100%
  );
  transition: width 1.05s cubic-bezier(0.22, 1, 0.36, 1);
}

.section-sweep--dark {
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(100, 160, 255, 0.35) 20%,
    rgba(140, 200, 255, 0.55) 50%,
    rgba(100, 160, 255, 0.35) 80%,
    transparent 100%
  );
}

.section-sweep.is-sweeping {
  width: 100%;
}

/* Indicador lateral eliminado */

@media (prefers-reduced-motion: reduce) {
  .preloader {
    display: none !important;
  }

  body:not(.page-ready) .site-header,
  body:not(.page-ready) .nav-pill,
  body:not(.page-ready) .hero-text h1,
  body:not(.page-ready) .hero-desc,
  body:not(.page-ready) .cta-btn,
  body.page-ready .site-header,
  body.page-ready .nav-pill,
  body.page-ready .hero-text h1,
  body.page-ready .hero-desc,
  body.page-ready .cta-btn {
    opacity: 1;
    transform: none;
    filter: none;
    animation: none;
  }

  .cta-btn,
  .cta-btn::after {
    animation: none;
  }

  .pl-tagline {
    animation: none;
    color: var(--gold);
    background: none;
    background-image: none;
    -webkit-background-clip: unset;
    background-clip: unset;
    filter: none;
    opacity: 1;
    transform: none;
    will-change: auto;
  }

  .about-pillars-rotate {
    position: relative;
    min-height: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem 0.65rem;
  }

  .about-pillar-word {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    padding-inline: 0;
  }

  .about-pillar-word:not(:last-child)::after {
    content: "·";
    margin-left: 0.65rem;
    color: rgba(29, 58, 120, 0.35);
    font-style: normal;
    font-weight: 400;
    background: none;
    -webkit-background-clip: unset;
    background-clip: unset;
  }

  /* Scroll-reveal: reducido → mostrar todo inmediatamente */
  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .section-sweep,
  .about-shell::before,
  .about-clinical-shell::before {
    display: none;
  }

  .apps-shell.section-in-view::after {
    opacity: 0.45 !important;
    transition: none !important;
  }

  .apps-shell.section-in-view .apps-content {
    transform: none !important;
  }

  .apps-shell.section-in-view .apps-card.is-revealed {
    filter: none !important;
  }
}
