:root {
  /* Primary — Violet */
  --pmi-violet-50: #efedf3;
  --pmi-violet-300: #b465ff;
  --pmi-violet-500: #4f17a8;
  --pmi-violet-600: #371075;
  --pmi-violet-800: #200f3b; /* Off-Black */
  --pmi-violet-950: #100522;

  /* Secondary — Aqua */
  --pmi-aqua-50: #eefafa;
  --pmi-aqua-300: #05bfe0;
  --pmi-aqua-500: #00799e;
  --pmi-aqua-600: #005c77;
  --pmi-aqua-800: #023041;
  --pmi-aqua-950: #030d19;

  /* Tertiary — Tangerine (uso de apoyo, no dominante) */
  --pmi-tangerine-50: #fef7f3;
  --pmi-tangerine-300: #ff610f;
  --pmi-tangerine-500: #d5340b;
  --pmi-tangerine-600: #a12608;
  --pmi-tangerine-800: #451409;
  --pmi-tangerine-950: #1a0503;

  /* Quaternary — Saddle (productos / aprendizaje especializado) */
  --pmi-saddle-50: #fff2e8;
  --pmi-saddle-300: #ceb7a6;
  --pmi-saddle-500: #be9577;
  --pmi-saddle-700: #804f29;
  --pmi-saddle-800: #412713;
  --pmi-saddle-950: #1b0e04;

  /* Neutrals */
  --pmi-neutral-50: #f7f4ef;
  --pmi-soft-gray: #808080;

  --pmi-font-primary: "Aeonik", "Aptos", "Helvetica Neue", Satoshi, Helvetica, Arial, sans-serif;
  --pmi-font-mono: "GT Pressura Mono", "Aptos Mono", "IBM Plex Mono", Consolas, monospace;
  --pmi-bg-violet-dark: linear-gradient(to bottom, var(--pmi-violet-950), var(--pmi-violet-800));
  --pmi-headline-violet-x: linear-gradient(to right, var(--pmi-violet-500), var(--pmi-violet-800));
}

.bg-grad-violet-dark { background-image: var(--pmi-bg-violet-dark); }

.headline-grad-violet-x {
  background-image: var(--pmi-headline-violet-x);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.type-display {
  font-family: var(--pmi-font-primary);
  /* Evita que títulos largos (Autoridades, Certificaciones) se corten en mobile */
  font-size: clamp(2.35rem, 8.4vw, 11vw);
  line-height: 0.9;
  font-weight: 900;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
@media (min-width: 768px) {
  .type-display {
    font-size: 11vw;
    line-height: 0.85;
    overflow-wrap: normal;
  }
}

.hero-title {
  font-size: clamp(2.1rem, 5.2vw, 7rem);
  line-height: 0.95;
  letter-spacing: -0.03em;
  overflow-wrap: normal;
}

.type-headline {
  font-family: var(--pmi-font-primary);
  font-size: clamp(3rem, 6vw, 5.5rem);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

.type-marquee {
  font-family: var(--pmi-font-primary);
  font-size: clamp(2.25rem, 5vw, 3.75rem);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

.type-subhead {
  font-family: var(--pmi-font-primary);
  font-size: 1.5rem;
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: -0.02em;
}

.type-body {
  font-family: var(--pmi-font-primary);
  font-size: clamp(1.0625rem, 1.1vw, 1.1875rem);
  line-height: 1.65;
  font-weight: 400;
  letter-spacing: -0.01em;
}

footer .type-body {
  font-size: 0.875rem;
  line-height: 1.5;
}

.footer-legal {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.footer-legal-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  column-gap: 1rem;
  row-gap: 0.2rem;
  line-height: 1.35;
}

.footer-legal-left {
  flex: 1 1 12rem;
  min-width: 0;
  margin: 0;
}

.footer-legal-right {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-end;
  column-gap: 0.45rem;
  margin: 0 0 0 auto;
  text-align: right;
}

.footer-legal-sep {
  opacity: 0.45;
  user-select: none;
}

.footer-cols {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.45fr);
  gap: 0.75rem 0.65rem;
}

@media (min-width: 768px) {
  .footer-cols {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3rem;
  }
}

/* Copyright y legales: una sola columna y menos aire en mobile */
@media (max-width: 767px) {
  .footer-legal {
    gap: 0.2rem;
  }

  .footer-legal-row {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0.15rem;
  }

  .footer-legal-left,
  .footer-legal-right {
    flex: none;
    width: 100%;
    margin: 0;
    justify-content: flex-start;
    text-align: left;
  }
}

/* Nav activo: color + subrayado */
#site-header nav a.is-active,
#mobile-menu a.is-active {
  color: var(--pmi-violet-500);
  text-decoration: underline;
  text-underline-offset: 0.35em;
  text-decoration-thickness: 1.5px;
}

#mobile-menu a.is-active {
  color: var(--pmi-violet-300);
}

.hp-field {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Listas con el mismo ritmo tipográfico que los párrafos + viñetas */
.prose-list {
  list-style: disc;
  margin: 0 0 1.5rem;
  padding: 0 0 0 1.35em;
}

.prose-list > li,
.prose-list > li.type-body {
  display: list-item;
  margin: 0 0 0.85rem;
  padding: 0;
  font-family: var(--pmi-font-primary);
  font-size: clamp(1.4rem, 2.7vw, 2.15rem);
  line-height: 1.35;
  font-weight: 400;
  letter-spacing: -0.02em;
}

.prose-list > li:last-child {
  margin-bottom: 0;
}

.prose-list--bullets > li,
.prose-list--bullets > li.type-body {
  font-size: clamp(1.0625rem, 1.1vw, 1.1875rem);
  line-height: 1.65;
  letter-spacing: -0.01em;
}

.prose-list > li.type-body.text-pmi-violet-800\/95 {
  color: rgb(32 15 59 / 0.97);
}

.prose-list--on-dark > li,
.prose-list--on-dark > li.type-body {
  color: rgb(239 237 243 / 0.92);
}

.prose-list--on-dark > li.type-body.text-pmi-violet-50\/90,
.prose-list--on-dark > li.type-body.text-pmi-violet-50\/95 {
  color: rgb(239 237 243 / 0.92);
}

/* Todo <li> de contenido usa el mismo tamaño que .type-body (salvo .prose-list editorial) */
main li.type-body,
main ul.type-body > li,
#evento-content li.type-body,
#evento-content ul.type-body > li,
body > section li.type-body,
body > section ul.type-body > li {
  font-family: var(--pmi-font-primary);
  font-size: clamp(1.0625rem, 1.1vw, 1.1875rem);
  line-height: 1.65;
  font-weight: 400;
  letter-spacing: -0.01em;
}

/* Acordeón membresía */
.pmi-accordion {
  border-top: 1px solid rgb(180 101 255 / 0.25);
}

.pmi-accordion-item {
  border-bottom: 1px solid rgb(180 101 255 / 0.25);
}

.pmi-accordion-summary {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  padding: 1.25rem 0;
  cursor: pointer;
  list-style: none;
}

.pmi-accordion-summary::-webkit-details-marker {
  display: none;
}

.pmi-accordion-summary::after {
  content: "+";
  margin-left: auto;
  font-family: var(--pmi-font-mono, monospace);
  font-size: 1.1rem;
  color: var(--pmi-aqua-300);
  transition: transform 0.2s ease;
}

.pmi-accordion-item[open] > .pmi-accordion-summary::after {
  content: "−";
}

.pmi-accordion-panel {
  padding: 0 0 1.5rem;
  max-width: 36rem;
}

/* Más contraste en párrafos atenuados (sin pisar links ni hovers) */
.type-body.text-pmi-violet-800\/50,
.type-body.text-pmi-violet-800\/80,
.type-body.text-pmi-violet-800\/85,
.type-body.text-pmi-violet-800\/95 {
  color: rgb(32 15 59 / 0.97);
}
.type-body.text-pmi-violet-50\/60,
.type-body.text-pmi-violet-50\/70,
.type-body.text-pmi-violet-50\/90 {
  color: rgb(239 237 243 / 0.92);
}
.type-body.text-pmi-violet-50\/80,
.type-body.text-pmi-violet-50\/95 {
  color: rgb(239 237 243 / 0.96);
}
.type-body.text-pmi-neutral-50\/80,
.type-body.text-pmi-neutral-50\/95 {
  color: rgb(247 244 239 / 0.96);
}

.type-caption.text-pmi-violet-800\/50 {
  color: rgb(32 15 59 / 0.82);
}

.type-caption.text-pmi-neutral-soft {
  color: rgb(32 15 59 / 0.72);
}

.type-cta {
  font-family: var(--pmi-font-primary);
  font-size: clamp(1.25rem, 3vw, 1.875rem);
  line-height: 1;
  font-weight: 500;
  letter-spacing: -0.01em;
}

.type-caption {
  font-family: var(--pmi-font-mono);
  font-size: 0.8125rem;
  line-height: 1.5;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

body {
  font-family: var(--pmi-font-primary);
  font-weight: 400;
  font-size: 1.0625rem;
  line-height: 1.65;
  background-color: var(--pmi-violet-950);
  background-image: var(--pmi-bg-violet-dark);
  cursor: none;
  font-synthesis: none;
}

#custom-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  mix-blend-mode: difference;
  transition: width 0.3s cubic-bezier(0.25, 1, 0.5, 1), height 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

#custom-cursor .cursor-core {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--pmi-neutral-50);
  flex-shrink: 0;
  transition: width 0.3s cubic-bezier(0.25, 1, 0.5, 1), height 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

#custom-cursor .cursor-ring {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  animation: cursor-spin 12s linear infinite;
}

#custom-cursor .cursor-ring text {
  fill: var(--pmi-neutral-50);
  font-family: var(--pmi-font-mono);
  font-size: 9.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.cursor-hover {
  width: 120px !important;
  height: 120px !important;
}

.cursor-hover .cursor-core {
  width: 12px !important;
  height: 12px !important;
}

@keyframes cursor-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}


.marquee-wrapper {
  overflow: hidden;
  white-space: nowrap;
  display: flex;
}

.marquee-content {
  display: flex;
  animation: marquee 25s linear infinite;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

#service-bg {
  transition: opacity 0.55s ease;
  background-size: cover;
  background-position: center;
}

.service-link.is-active .type-headline,
.service-link.is-active .type-body {
  color: var(--pmi-neutral-50);
}

.member-card { transition: border-color 0.4s ease; }
.member-card:hover { border-color: var(--pmi-violet-300); }

input, textarea, select {
  font-family: var(--pmi-font-primary);
}

/* Disclosure Nosotros (desktop) */
.nav-disclosure-btn {
  line-height: 1;
  border: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 4px;
}

.nav-submenu[hidden] {
  display: none;
}

.nav-disclosure.is-open .nav-submenu {
  display: block;
}
.skip-link {
  position: absolute;
  left: 1rem;
  top: 1rem;
  z-index: 100;
  padding: 0.75rem 1rem;
  background: var(--pmi-neutral-50);
  color: var(--pmi-violet-800);
  font-family: var(--pmi-font-primary);
  font-size: 1rem;
  font-weight: 500;
  text-decoration: underline;
  border-radius: 0.35rem;
  transform: translateY(-160%);
  transition: transform 0.15s ease;
}

.skip-link:focus {
  transform: translateY(0);
  outline: 3px solid var(--pmi-violet-500);
  outline-offset: 2px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--pmi-violet-500);
  outline-offset: 3px;
  border-radius: 4px;
}

.bg-grad-violet-dark a:focus-visible,
.bg-grad-violet-dark button:focus-visible,
#mobile-menu a:focus-visible {
  outline-color: var(--pmi-aqua-300);
}

@media (pointer: coarse) {
  body { cursor: auto; }
  #custom-cursor { display: none; }
}

/* Shape sutil solo como decoración de fondo (footer) */
footer.shape-footer-wrap {
  position: relative;
  overflow: hidden;
}

.shape-footer {
  position: absolute;
  right: -8%;
  bottom: -35%;
  width: min(48vw, 420px);
  aspect-ratio: 1;
  pointer-events: none;
  z-index: 0;
  opacity: 0.18;
}

.shape-footer > img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  filter: brightness(1.6);
}

footer.shape-footer-wrap > *:not(.shape-footer) {
  position: relative;
  z-index: 1;
}

/* Brand patterns — fondos de sección (PNGs de marca) */
.bg-pattern,
[class*="bg-pattern-"] {
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-position: center center;
}

.bg-pattern-primary {
  background-color: var(--pmi-violet-950);
  background-image: url("../assets/patterns/primary_horizontal.png");
  background-repeat: no-repeat;
  background-size: cover;
}

.bg-pattern-secondary {
  background-color: var(--pmi-violet-950);
  background-image: url("../assets/patterns/secondary_horizontal.png");
  background-repeat: no-repeat;
  background-size: cover;
}

.bg-pattern-tertiary {
  background-color: var(--pmi-violet-950);
  background-image: url("../assets/patterns/tertiary_horizontal.png");
  background-repeat: no-repeat;
  background-size: cover;
}

.bg-pattern-cert-violet {
  background-color: var(--pmi-violet-50);
  background-image: url("../assets/patterns/cert-violet-triangle.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}

.bg-pattern-cert-aqua {
  background-color: var(--pmi-aqua-50);
  background-image: url("../assets/patterns/cert-aqua-circle.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}

.bg-pattern-cert-tangerine {
  background-color: var(--pmi-tangerine-50);
  background-image: url("../assets/patterns/cert-tangerine-diamond.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}

.bg-pattern-cert-saddle {
  background-color: var(--pmi-saddle-50);
  background-image: url("../assets/patterns/cert-saddle-pentagon.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}

/* Smooth scroll + motion */
html {
  scroll-behavior: smooth;
}

#site-header > header {
  transition: box-shadow 0.35s ease, background-color 0.35s ease, border-color 0.35s ease;
}

#site-header > header.is-scrolled {
  box-shadow: 0 10px 30px rgb(32 15 59 / 0.08);
  border-color: rgb(32 15 59 / 0.12);
}

.reveal {
  opacity: 0;
  transform: translate3d(0, 1.15rem, 0);
  transition:
    opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal.is-inview {
  opacity: 1;
  transform: none;
}

.reveal-stagger > .reveal-child {
  opacity: 0;
  transform: translate3d(0, 0.85rem, 0);
  transition:
    opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal-stagger.is-inview > .reveal-child {
  opacity: 1;
  transform: none;
}

.reveal-stagger.is-inview > .reveal-child:nth-child(1) { transition-delay: 0.04s; }
.reveal-stagger.is-inview > .reveal-child:nth-child(2) { transition-delay: 0.1s; }
.reveal-stagger.is-inview > .reveal-child:nth-child(3) { transition-delay: 0.16s; }
.reveal-stagger.is-inview > .reveal-child:nth-child(4) { transition-delay: 0.22s; }
.reveal-stagger.is-inview > .reveal-child:nth-child(5) { transition-delay: 0.28s; }
.reveal-stagger.is-inview > .reveal-child:nth-child(6) { transition-delay: 0.34s; }
.reveal-stagger.is-inview > .reveal-child:nth-child(7) { transition-delay: 0.4s; }
.reveal-stagger.is-inview > .reveal-child:nth-child(8) { transition-delay: 0.46s; }

/* Cards: entran desde la derecha, en cascada derecha → izquierda (lento) */
.reveal-stagger--rtl > .reveal-child {
  transform: translate3d(3.25rem, 0, 0);
  transition:
    opacity 1.7s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal-stagger--rtl.is-inview > .reveal-child:nth-child(1) { transition-delay: 0.75s; }
.reveal-stagger--rtl.is-inview > .reveal-child:nth-child(2) { transition-delay: 0.4s; }
.reveal-stagger--rtl.is-inview > .reveal-child:nth-child(3) { transition-delay: 0.05s; }
.reveal-stagger--rtl.is-inview > .reveal-child:nth-child(4) { transition-delay: 0s; }

/* Eventos home: suben en cascada + imagen se revela */
.reveal-stagger--events > .reveal-child {
  opacity: 0;
  transform: translate3d(0, 2.25rem, 0);
  transition:
    opacity 1.05s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.05s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal-stagger--events > .reveal-child > div:first-child {
  clip-path: inset(12% 0 12% 0);
  transition: clip-path 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal-stagger--events > .reveal-child img {
  transform: scale(1.1);
  transition: transform 1.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal-stagger--events.is-inview > .reveal-child {
  opacity: 1;
  transform: none;
}

.reveal-stagger--events.is-inview > .reveal-child > div:first-child {
  clip-path: inset(0 0 0 0);
}

.reveal-stagger--events.is-inview > .reveal-child img {
  transform: none;
}

.reveal-stagger--events.is-inview > .reveal-child:nth-child(1) {
  transition-delay: 0.06s;
}
.reveal-stagger--events.is-inview > .reveal-child:nth-child(1) > div:first-child,
.reveal-stagger--events.is-inview > .reveal-child:nth-child(1) img {
  transition-delay: 0.06s;
}
.reveal-stagger--events.is-inview > .reveal-child:nth-child(2) {
  transition-delay: 0.22s;
}
.reveal-stagger--events.is-inview > .reveal-child:nth-child(2) > div:first-child,
.reveal-stagger--events.is-inview > .reveal-child:nth-child(2) img {
  transition-delay: 0.22s;
}
.reveal-stagger--events.is-inview > .reveal-child:nth-child(3) {
  transition-delay: 0.38s;
}
.reveal-stagger--events.is-inview > .reveal-child:nth-child(3) > div:first-child,
.reveal-stagger--events.is-inview > .reveal-child:nth-child(3) img {
  transition-delay: 0.38s;
}

.reveal-hero > .relative.z-10 > * {
  opacity: 0;
  transform: translate3d(0, 1.1rem, 0);
  transition:
    opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal-hero > .relative.z-10 > h1,
.reveal-hero h1.type-display,
.reveal-hero h1.type-headline {
  opacity: 0;
  transform: translate3d(0, 1.1rem, 0);
  filter: none;
  transition:
    opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal-hero.is-inview > .relative.z-10 > *:nth-child(1) {
  opacity: 1;
  transform: none;
  transition-delay: 0.06s;
}
.reveal-hero.is-inview > .relative.z-10 > *:nth-child(2) {
  opacity: 1;
  transform: none;
  transition-delay: 0.14s;
}
.reveal-hero.is-inview > .relative.z-10 > *:nth-child(3) {
  opacity: 1;
  transform: none;
  transition-delay: 0.22s;
}
.reveal-hero.is-inview > .relative.z-10 > *:nth-child(4) {
  opacity: 1;
  transform: none;
  transition-delay: 0.3s;
}
.reveal-hero.is-inview > .relative.z-10 > *:nth-child(n+5) {
  opacity: 1;
  transform: none;
  transition-delay: 0.38s;
}

.reveal-hero.is-inview > .relative.z-10 > h1,
.reveal-hero.is-inview h1.type-display,
.reveal-hero.is-inview h1.type-headline {
  opacity: 1;
  transform: none;
  transition-delay: 0.18s;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  body {
    cursor: auto;
  }

  #custom-cursor {
    display: none !important;
  }

  .reveal,
  .reveal-stagger > .reveal-child,
  .reveal-stagger--events > .reveal-child,
  .reveal-stagger--events > .reveal-child > div:first-child,
  .reveal-stagger--events > .reveal-child img,
  .reveal-hero > .relative.z-10 > *,
  .reveal-hero h1.type-display,
  .reveal-hero h1.type-headline {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
    transition: none !important;
  }

  .marquee-content {
    animation: none;
  }

  .cursor-ring {
    animation: none;
  }

  .text-reveal-char {
    opacity: 1 !important;
  }
}

/* Large prose — scroll character reveal */
p.text-reveal,
li.type-body.text-reveal {
  font-family: var(--pmi-font-primary);
  font-size: clamp(1.4rem, 2.7vw, 2.15rem);
  line-height: 1.35;
  letter-spacing: -0.02em;
  font-weight: 400;
}

p.text-reveal {
  max-width: 36ch;
}

li.text-reveal {
  max-width: none;
}

.text-reveal-word {
  display: inline-block;
  white-space: nowrap;
}

.text-reveal-char {
  display: inline-block;
  opacity: 0.18;
  will-change: opacity;
}

/* Stack sticky — texto editorial que se superpone (sin look de cards) */
.sticky-stack {
  position: relative;
  padding-bottom: min(18vh, 9rem);
}

.sticky-stack-layer {
  --stack-i: 0;
  --stack-top: calc(7.5rem + 14vh);
  position: sticky;
  top: var(--stack-top);
  z-index: calc(20 + var(--stack-i));
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  /* Misma ancla y altura de viewport: cada capa tapa por completo a la anterior */
  min-height: calc(100vh - 7.5rem - 14vh - 1.5rem);
  margin-bottom: 12vh;
  padding: 2rem 0 3rem;
  background: var(--pmi-neutral-50);
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.sticky-stack-layer--last {
  margin-bottom: 0;
}

/* Timeline de pasos (membresía) */
.steps-timeline {
  display: grid;
  gap: 0;
}

@media (min-width: 768px) {
  .steps-timeline {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    position: relative;
  }

  .steps-timeline::before {
    content: "";
    position: absolute;
    top: 1.15rem;
    left: 8%;
    right: 8%;
    height: 1px;
    background: color-mix(in srgb, var(--pmi-violet-500) 35%, transparent);
    z-index: 0;
  }
}

.steps-timeline-item {
  position: relative;
  z-index: 1;
  padding: 0 0 2rem;
  border-bottom: 1px solid color-mix(in srgb, var(--pmi-violet-500) 22%, transparent);
  margin-bottom: 2rem;
}

.steps-timeline-item:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

@media (min-width: 768px) {
  .steps-timeline-item {
    padding: 0 1rem 0 0;
    margin-bottom: 0;
    border-bottom: 0;
  }
}

.steps-timeline-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin-bottom: 1rem;
  border-radius: 9999px;
  background: var(--pmi-neutral-50);
  border: 1px solid var(--pmi-violet-500);
  color: var(--pmi-violet-500);
  font-family: var(--pmi-font-mono, inherit);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
}

@media (min-width: 768px) {
  .steps-timeline-num {
    margin-bottom: 1.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sticky-stack-layer {
    position: relative;
    top: auto;
    margin-bottom: 3rem;
    min-height: auto;
    padding-top: 0;
  }

  .sticky-stack {
    padding-bottom: 0;
  }
}
