﻿: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;
}

.footer-chapter-logo {
  display: block;
  width: 100%;
  max-width: 17.5rem;
  height: auto;
}

@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;
}

.marquee-track {
  display: flex;
  width: max-content;
  animation: marquee 25s linear infinite;
}

.marquee-group {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding-right: 2rem;
  flex-shrink: 0;
  white-space: nowrap;
}

.marquee-group span {
  flex-shrink: 0;
}

.marquee-sep {
  font-weight: 400;
  opacity: 0.65;
}

.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.jpg");
  background-repeat: no-repeat;
  background-size: cover;
}

.bg-pattern-secondary {
  background-color: var(--pmi-violet-950);
  background-image: url("../assets/patterns/secondary_horizontal.jpg");
  background-repeat: no-repeat;
  background-size: cover;
}

.bg-pattern-tertiary {
  background-color: var(--pmi-violet-950);
  background-image: url("../assets/patterns/tertiary_horizontal.jpg");
  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.jpg");
  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.jpg");
  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.jpg");
  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.jpg");
  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-track {
    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;
  }
}

/* --- Congreso: manifesto editorial --- */
.congress-page {
  --congress-gap: clamp(4rem, 8vw, 6.5rem);
  --congress-pad: clamp(1.25rem, 4vw, 3rem);
  background: var(--pmi-neutral-50);
  background-image: none;
  color: var(--pmi-violet-800);
}

.congress-page h2,
.congress-page .type-headline {
  font-size: clamp(2.75rem, 6vw, 5rem);
  line-height: 0.95;
}

.congress-page h2.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;
}

.congress-container {
  width: 100%;
  max-width: 87.5rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--congress-pad);
  padding-right: var(--congress-pad);
}

.congress-section {
  padding: var(--congress-gap) 0;
}

.congress-section--light {
  background: var(--pmi-neutral-50);
  color: var(--pmi-violet-800);
}

.congress-section--speakers {
  background-color: #17092a;
  background-image: none;
}

/* Póster */
.congress-poster {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(6rem, 12vh, 9rem) 0 0;
}

.congress-poster__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.congress-poster__bg img,
.congress-poster__bg-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.24;
  mix-blend-mode: luminosity;
}

.congress-poster__bg-video {
  display: none;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.42;
}

.congress-poster__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    165deg,
    rgba(32, 15, 59, 0.42) 0%,
    rgba(32, 15, 59, 0.78) 48%,
    rgba(32, 15, 59, 0.94) 100%
  );
}

@media (min-width: 1024px) {
  .congress-poster__bg img,
  .congress-poster__bg-image {
    opacity: 0.28;
  }

  .congress-poster__veil {
    background: linear-gradient(
      165deg,
      rgba(32, 15, 59, 0.28) 0%,
      rgba(32, 15, 59, 0.62) 48%,
      rgba(32, 15, 59, 0.88) 100%
    );
  }
}

@media (max-width: 1023px) {
  .congress-poster__bg-image {
    display: none;
  }

  .congress-poster__bg-video {
    display: block;
  }

  .congress-poster__veil {
    background: linear-gradient(
      165deg,
      rgba(32, 15, 59, 0.5) 0%,
      rgba(32, 15, 59, 0.82) 50%,
      rgba(32, 15, 59, 0.96) 100%
    );
  }
}

@media (prefers-reduced-motion: reduce) {
  .congress-poster__bg-video {
    display: none !important;
  }

  .congress-poster__bg-image {
    display: block !important;
  }
}

.congress-poster__canvas {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 2rem;
  align-items: end;
  width: 100%;
  padding-bottom: 2rem;
}

@media (min-width: 1024px) {
  .congress-poster__canvas {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(1rem, 4vw, 4rem);
  }
}

.congress-poster__tag {
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.8125rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pmi-violet-300);
}

@media (min-width: 768px) {
  .congress-poster__tag {
    font-size: 0.9375rem;
  }
}

.congress-poster__title {
  margin-top: 1.25rem;
}

.congress-poster__title-line {
  display: block;
  font-family: var(--pmi-font-primary);
  font-size: clamp(2.35rem, 10.5vw, 9.2rem);
  line-height: 0.88;
  font-weight: 900;
  letter-spacing: -0.05em;
  text-transform: uppercase;
  color: var(--pmi-neutral-50);
  overflow-wrap: anywhere;
}

.congress-poster__title-line--accent {
  color: var(--pmi-aqua-300);
}

.congress-poster__lede {
  margin-top: 1.5rem;
  max-width: 28rem;
  color: rgba(250, 250, 250, 0.88);
}

.congress-poster__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 2rem;
}

.congress-poster__stamp {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  line-height: 0.9;
  font-family: var(--pmi-font-primary);
  font-weight: 900;
  letter-spacing: -0.04em;
  text-transform: uppercase;
}

.congress-poster__stamp-day {
  font-size: clamp(4rem, 12vw, 9rem);
  color: var(--pmi-neutral-50);
  text-shadow: 0 4px 32px rgba(32, 15, 59, 0.55);
}

.congress-poster__stamp-month {
  font-size: clamp(1.5rem, 4vw, 3rem);
  color: var(--pmi-aqua-300);
}

.congress-poster__stamp-year {
  font-size: clamp(2rem, 6vw, 4.5rem);
  color: var(--pmi-neutral-50);
}

.congress-poster__dock {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  padding: 1rem 0 1.25rem;
  margin-top: 0;
  border-top: 1px solid rgba(250, 250, 250, 0.14);
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.8125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pmi-violet-300);
}

@media (min-width: 768px) {
  .congress-poster__dock {
    font-size: 0.9375rem;
  }
}

.congress-poster__dock-dot {
  width: 0.25rem;
  height: 0.25rem;
  border-radius: 9999px;
  background: var(--pmi-violet-300);
  flex-shrink: 0;
}

.congress-brand-line {
  width: 4.5rem;
  height: 3px;
  margin-bottom: 1.25rem;
  border-radius: 9999px;
  background: var(--pmi-violet-500);
}

/* Body + rail */
.congress-body {
  display: grid;
  background: var(--pmi-neutral-50);
}

@media (min-width: 1200px) {
  .congress-body {
    grid-template-columns: 10.5rem minmax(0, 1fr);
  }
}

.congress-rail {
  display: none;
}

@media (min-width: 1200px) {
  .congress-rail {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    position: sticky;
    top: 5.5rem;
    align-self: start;
    height: calc(100dvh - 5.5rem);
    padding: 2rem 0.75rem 2rem 1.25rem;
    border-right: 1px solid rgba(32, 15, 59, 0.1);
    background: var(--pmi-neutral-50);
  }
}

.congress-rail__link {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  padding: 0.45rem 0.5rem;
  font-size: 0.8125rem;
  color: rgba(32, 15, 59, 0.55);
  border-radius: 0.25rem;
  transition: color 0.2s, background 0.2s;
}

.congress-rail__link:hover,
.congress-rail__link.is-active {
  color: var(--pmi-violet-800);
  background: rgba(32, 15, 59, 0.05);
}

.congress-rail__num {
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.625rem;
  letter-spacing: 0.08em;
  color: var(--pmi-violet-500);
}

.congress-rail__label {
  font-weight: 500;
}

.congress-stream {
  min-width: 0;
}

/* Capítulos */
.congress-chapter {
  padding: var(--congress-gap) var(--congress-pad);
}

.congress-chapter--light {
  background: var(--pmi-neutral-50);
  color: var(--pmi-violet-800);
}

.congress-chapter--dark {
  background: linear-gradient(180deg, #200f3b 0%, #1a0a32 100%);
  color: var(--pmi-neutral-50);
}

.congress-chapter--tight {
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

.congress-chapter__head {
  display: grid;
  gap: 1rem;
  align-items: start;
}

@media (min-width: 768px) {
  .congress-chapter__head {
    grid-template-columns: 3.5rem minmax(0, 1fr);
    gap: 2rem;
  }
}

.congress-chapter__index {
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  color: var(--pmi-violet-500);
}

.congress-chapter__index--on-dark {
  color: var(--pmi-violet-300);
}

.congress-chapter__title {
  font-family: var(--pmi-font-primary);
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: -0.03em;
}

.congress-chapter__title--on-dark {
  color: var(--pmi-neutral-50);
}

.congress-manifest {
  margin-top: 0.5rem;
  font-family: var(--pmi-font-primary);
  font-size: clamp(1.75rem, 4vw, 3.5rem);
  line-height: 1.1;
  font-weight: 500;
  letter-spacing: -0.03em;
  color: var(--pmi-violet-800);
}

.congress-chapter__intro {
  margin-top: 2rem;
  max-width: 40rem;
}

.congress-chapter__intro--on-dark {
  color: rgba(250, 250, 250, 0.75);
}

/* Banda animada */
.congress-band {
  overflow: hidden;
  background: var(--pmi-aqua-300);
  color: var(--pmi-violet-950);
  border-top: 1px solid rgba(32, 15, 59, 0.08);
  border-bottom: 1px solid rgba(32, 15, 59, 0.08);
  padding: 0.85rem 0;
}

.congress-band__track {
  display: flex;
  width: max-content;
  animation: congress-marquee 32s linear infinite;
}

.congress-band__group {
  display: flex;
  align-items: center;
  gap: 2.5rem;
  padding-right: 2.5rem;
  flex-shrink: 0;
  font-family: var(--pmi-font-primary);
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
}

.congress-band__group span::after {
  content: "·";
  margin-left: 2.5rem;
  font-weight: 400;
  opacity: 0.55;
}

.congress-band__group span:last-child::after {
  content: none;
  margin: 0;
}

.congress-band__group span {
  flex-shrink: 0;
}

@keyframes congress-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .congress-band__track {
    animation: none;
    width: auto;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem 2rem;
    padding: 1rem var(--congress-pad);
  }

  .congress-band__group {
    padding-right: 0;
    white-space: normal;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem 2rem;
  }
}

/* Pilares */
.congress-strip {
  margin-top: 2.5rem;
  border-top: 1px solid rgba(32, 15, 59, 0.12);
}

.congress-strip__row {
  display: grid;
  gap: 0.5rem 1.5rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(32, 15, 59, 0.12);
  align-items: start;
}

@media (min-width: 768px) {
  .congress-strip__row {
    grid-template-columns: 3rem minmax(0, 0.35fr) minmax(0, 1fr);
    gap: 1.5rem 2rem;
    padding: 2rem 0;
  }
}

.congress-strip__num {
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  color: var(--pmi-violet-500);
}

.congress-strip__title {
  font-family: var(--pmi-font-primary);
  font-size: 1.25rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--pmi-violet-800);
}

.congress-strip__text {
  color: rgba(32, 15, 59, 0.75);
}

/* Zigzag agenda */
.congress-zigzag {
  margin-top: 3rem;
  list-style: none;
  padding: 0;
}

.congress-zigzag__item {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 1rem 1.5rem;
  padding: 2rem 0;
  border-top: 1px solid rgba(250, 250, 250, 0.1);
  max-width: 36rem;
}

.congress-zigzag__item--flip {
  margin-left: auto;
  text-align: right;
}

@media (min-width: 768px) {
  .congress-zigzag__item--flip {
    margin-left: 35%;
  }
}

.congress-zigzag__num {
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  color: var(--pmi-aqua-300);
}

.congress-zigzag__title {
  font-family: var(--pmi-font-primary);
  font-size: 1.375rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--pmi-neutral-50);
}

.congress-zigzag__text {
  margin-top: 0.5rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: rgba(250, 250, 250, 0.68);
}

/* Speakers wall */
.congress-speaker-wall {
  margin-top: 3rem;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.congress-speaker-wall__card {
  display: grid;
  gap: 1.5rem;
  padding: 2.5rem 0;
  border-top: 1px solid rgba(250, 250, 250, 0.12);
}

@media (min-width: 900px) {
  .congress-speaker-wall__card {
    grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr);
    gap: 2.5rem;
    align-items: start;
  }

  .congress-speaker-wall__card--flip {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.42fr);
  }

  .congress-speaker-wall__card--flip .congress-speaker-wall__media {
    order: 2;
  }
}

.congress-speaker-wall__media {
  aspect-ratio: 4 / 5;
  background: rgba(250, 250, 250, 0.06);
  border: 1px solid rgba(250, 250, 250, 0.1);
  overflow: hidden;
}

.congress-speaker-wall__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.congress-speaker-wall__media.is-empty::after {
  content: "Foto próximamente";
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 0.8125rem;
  color: rgba(250, 250, 250, 0.45);
}

.congress-speaker-wall__origin {
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pmi-violet-300);
}

.congress-speaker-wall__name {
  margin-top: 0.75rem;
  font-family: var(--pmi-font-primary);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--pmi-neutral-50);
}

.congress-speaker-wall__role {
  margin-top: 1rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: rgba(250, 250, 250, 0.72);
}

.congress-speaker-wall__talk {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(250, 250, 250, 0.1);
}

.congress-speaker-wall__talk-label {
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pmi-aqua-300);
}

.congress-speaker-wall__talk-text {
  margin-top: 0.5rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: rgba(250, 250, 250, 0.8);
}

/* Métricas */
.congress-metrics {
  padding: clamp(3rem, 6vw, 5rem) var(--congress-pad);
  border-top: 1px solid rgba(250, 250, 250, 0.08);
}

.congress-metrics__intro {
  max-width: 28rem;
  margin-bottom: 2.5rem;
}

.congress-metrics__note {
  margin-top: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: rgba(250, 250, 250, 0.6);
}

.congress-metrics__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem 1.5rem;
}

@media (min-width: 768px) {
  .congress-metrics__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
  }
}

.congress-metrics__value {
  font-family: var(--pmi-font-primary);
  font-size: clamp(2.5rem, 6vw, 4rem);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--pmi-aqua-300);
}

.congress-metrics__label {
  margin-top: 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: rgba(250, 250, 250, 0.62);
}

/* Audiencia + venue */
.congress-audience {
  display: grid;
  gap: 2rem;
  margin-top: 2.5rem;
}

@media (min-width: 768px) {
  .congress-audience {
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
  }
}

.congress-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.congress-tag {
  padding: 0.4rem 0.75rem;
  border: 1px solid rgba(32, 15, 59, 0.15);
  border-radius: 9999px;
  font-family: var(--pmi-font-primary);
  font-size: clamp(1.0625rem, 1.1vw, 1.1875rem);
  line-height: 1.65;
  letter-spacing: -0.01em;
  color: var(--pmi-violet-800);
  background: rgba(32, 15, 59, 0.03);
}

.congress-venue {
  margin-top: 3.5rem;
  display: grid;
  gap: 2rem;
  padding-top: 2.5rem;
  border-top: 1px solid rgba(32, 15, 59, 0.12);
}

@media (min-width: 768px) {
  .congress-venue {
    grid-template-columns: 1fr 1.4fr;
    gap: 3rem;
    align-items: end;
  }
}

.congress-venue__label {
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pmi-violet-500);
}

.congress-venue__date {
  margin-top: 0.75rem;
  font-family: var(--pmi-font-primary);
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--pmi-violet-800);
}

.congress-venue__name {
  margin-top: 0.75rem;
  font-family: var(--pmi-font-primary);
  font-size: clamp(2.5rem, 7vw, 5rem);
  line-height: 0.95;
  font-weight: 900;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  color: var(--pmi-violet-800);
}

.congress-venue__sub {
  margin-top: 0.75rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: rgba(32, 15, 59, 0.7);
}

.congress-venue__map {
  display: inline-block;
  margin-top: 1rem;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--pmi-violet-800);
  border-bottom: 1px solid rgba(32, 15, 59, 0.35);
  padding-bottom: 0.1rem;
  transition: color 0.2s, border-color 0.2s;
}

.congress-venue__map:hover {
  color: var(--pmi-violet-500);
  border-color: var(--pmi-violet-500);
}

/* Ticket wall */
.congress-ticket-wall {
  background: var(--pmi-aqua-300);
  color: var(--pmi-violet-950);
  padding: clamp(3.5rem, 8vw, 6rem) 0;
}

.congress-ticket-wall__top {
  display: grid;
  gap: 2.5rem;
  align-items: start;
}

@media (min-width: 900px) {
  .congress-ticket-wall__top {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
    gap: 3.5rem;
  }
}

.congress-ticket-wall__intro .type-body {
  color: rgba(32, 15, 59, 0.9);
}

.congress-ticket-wall__intro .type-headline {
  margin-top: 1.25rem;
  color: var(--pmi-violet-950);
}

.congress-ticket-wall__action {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(32, 15, 59, 0.12);
}

.congress-ticket-wall__badge {
  display: inline-block;
  padding: 0.35rem 0.75rem;
  border: 1px solid rgba(32, 15, 59, 0.25);
  border-radius: 9999px;
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.congress-includes {
  padding-top: 0.25rem;
}

.congress-includes__title {
  margin-bottom: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(32, 15, 59, 0.65);
}

.congress-includes__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.5rem;
  color: rgba(32, 15, 59, 0.9);
}

.congress-includes__list li {
  position: relative;
  padding-left: 1rem;
}

.congress-includes__list li::before {
  content: "·";
  position: absolute;
  left: 0;
  font-weight: 700;
}

.congress-ticket-wall__deadline {
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(32, 15, 59, 0.65);
}

/* Botones */
.congress-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 1.75rem;
  border-radius: 9999px;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--pmi-violet-950);
  background: var(--pmi-neutral-50);
  transition: background-color 0.2s, color 0.2s;
}

.congress-btn-primary:hover {
  background: var(--pmi-aqua-300);
}

.congress-btn-primary--on-aqua {
  background: var(--pmi-violet-950);
  color: var(--pmi-neutral-50);
}

.congress-btn-primary--on-aqua:hover {
  background: var(--pmi-violet-800);
  color: var(--pmi-neutral-50);
}

.congress-btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 1.75rem;
  border-radius: 9999px;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--pmi-neutral-50);
  border: 1px solid rgba(250, 250, 250, 0.28);
  transition: border-color 0.2s, color 0.2s;
}

.congress-btn-ghost:hover {
  border-color: var(--pmi-aqua-300);
  color: var(--pmi-aqua-300);
}

/* Patrocinio */
.congress-sponsor-title {
  margin-top: 0.5rem;
  font-family: var(--pmi-font-primary);
  font-size: clamp(2rem, 4.5vw, 3.75rem);
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--pmi-neutral-50);
  max-width: 40rem;
}

.congress-sponsor-pitch {
  margin-top: 1.5rem;
  max-width: 40rem;
}

.congress-sponsor-pitch p + p {
  margin-top: 1rem;
}

.congress-sponsor-cta {
  margin-top: 2rem;
}

.congress-tiers {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid rgba(250, 250, 250, 0.12);
}

.congress-tier {
  display: grid;
  gap: 1rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(250, 250, 250, 0.1);
  align-items: start;
}

@media (min-width: 900px) {
  .congress-tier {
    grid-template-columns: minmax(0, 0.28fr) minmax(0, 1fr) auto;
    gap: 2rem;
    padding: 1.75rem 0;
    align-items: center;
  }
}

.congress-tier--featured {
  background: rgba(250, 250, 250, 0.04);
  margin: 0 calc(-1 * var(--congress-pad));
  padding-left: var(--congress-pad);
  padding-right: var(--congress-pad);
  border-left: 3px solid var(--pmi-aqua-300);
}

.congress-tier__name {
  font-family: var(--pmi-font-primary);
  font-size: 1.125rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--pmi-neutral-50);
}

.congress-tier__highlights p + p {
  margin-top: 0.35rem;
}

.congress-tier__cta {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--pmi-aqua-300);
  border-bottom: 1px solid rgba(125, 211, 252, 0.35);
  padding-bottom: 0.1rem;
  white-space: nowrap;
  transition: color 0.2s, border-color 0.2s;
}

.congress-tier__cta:hover {
  color: var(--pmi-neutral-50);
  border-color: var(--pmi-neutral-50);
}

.congress-patrocinio-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(250, 250, 250, 0.1);
}

.congress-patrocinio-contact a {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--pmi-aqua-300);
  border-bottom: 1px solid rgba(125, 211, 252, 0.4);
  padding-bottom: 0.1rem;
  transition: color 0.2s, border-color 0.2s;
}

.congress-patrocinio-contact a:hover {
  color: var(--pmi-neutral-50);
  border-color: var(--pmi-neutral-50);
}

/* Split + secciones restauradas */
.congress-split {
  display: grid;
  gap: 3rem;
}

@media (min-width: 768px) {
  .congress-split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 4rem;
    align-items: start;
  }
}

.congress-steps {
  list-style: none;
  padding: 0;
  margin: 0;
}

.congress-step {
  padding: 1.5rem 0;
  border-top: 1px solid rgba(32, 15, 59, 0.12);
}

.congress-step:first-child {
  border-top: none;
  padding-top: 0;
}

.congress-step__num {
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  color: var(--pmi-violet-500);
}

.congress-step__title {
  margin-top: 0.5rem;
  font-family: var(--pmi-font-primary);
  font-size: 1.125rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--pmi-violet-800);
}

.congress-step__text {
  margin-top: 0.5rem;
}

.congress-steps--on-dark .congress-step {
  border-top-color: rgba(250, 250, 250, 0.1);
}

.congress-steps--on-dark .congress-step__num {
  color: var(--pmi-aqua-300);
}

.congress-steps--on-dark .congress-step__title {
  color: var(--pmi-neutral-50);
}

.congress-steps--on-dark .congress-step__text {
  color: rgb(250 250 250 / 0.92);
}

.congress-speakers {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.congress-speaker {
  display: grid;
  gap: 1.5rem;
  padding: 2.5rem 0;
  border-top: 1px solid rgba(250, 250, 250, 0.12);
}

@media (min-width: 768px) {
  .congress-speaker {
    grid-template-columns: minmax(0, 0.35fr) minmax(0, 1fr);
    gap: 2.5rem;
    align-items: start;
  }
}

.congress-speaker__photo {
  aspect-ratio: 4 / 5;
  background: rgba(250, 250, 250, 0.06);
  border: 1px solid rgba(250, 250, 250, 0.1);
  overflow: hidden;
}

.congress-speaker__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.congress-speaker__photo.is-empty::after {
  content: "Foto próximamente";
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 0.8125rem;
  color: rgba(250, 250, 250, 0.45);
}

.congress-speaker__origin {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pmi-violet-300);
}

.congress-speaker__flag {
  width: 1.125rem;
  height: auto;
  border-radius: 2px;
  flex-shrink: 0;
  box-shadow: 0 0 0 1px rgba(250, 250, 250, 0.12);
}

.congress-speaker__name {
  margin-top: 0.75rem;
  font-family: var(--pmi-font-primary);
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.1;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--pmi-neutral-50);
}

.congress-speaker__role {
  margin-top: 1rem;
}

.congress-speaker__talk {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(250, 250, 250, 0.1);
}

.congress-speaker__talk-label {
  margin: 0;
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pmi-aqua-300);
}

.congress-speaker__talk-text {
  margin-top: 0.5rem;
}

.congress-speaker__cta {
  display: inline-block;
  margin-top: 1.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--pmi-aqua-300);
  border-bottom: 1px solid rgba(125, 211, 252, 0.35);
  padding-bottom: 0.1rem;
  transition: color 0.2s, border-color 0.2s;
}

.congress-speaker__cta:hover {
  color: var(--pmi-neutral-50);
  border-color: var(--pmi-neutral-50);
}

.congress-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem 1.5rem;
  padding-top: 1rem;
  margin: 0;
}

.congress-stats > div {
  margin: 0;
}

.congress-stats dt,
.congress-stats dd {
  margin: 0;
}

@media (min-width: 1024px) {
  .congress-stats {
    grid-template-columns: repeat(4, 1fr);
    gap: 2.5rem 2rem;
  }
}

.congress-stat__value {
  font-family: var(--pmi-font-primary);
  font-size: clamp(3.25rem, 7vw, 5rem);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--pmi-aqua-300);
}

.congress-stat__label {
  margin-top: 0.85rem;
  font-family: var(--pmi-font-primary);
  font-size: clamp(0.9375rem, 1.15vw, 1.125rem);
  line-height: 1.45;
  letter-spacing: -0.01em;
  color: rgba(250, 250, 250, 0.72);
}

.congress-stats-intro {
  max-width: 36rem;
}

.congress-facts {
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(32, 15, 59, 0.12);
  text-align: left;
}

.congress-facts--light {
  --congress-facts-border: rgba(32, 15, 59, 0.12);
  --congress-facts-cell-border: rgba(32, 15, 59, 0.12);
  --congress-facts-label: var(--pmi-violet-500);
  --congress-facts-primary: var(--pmi-violet-800);
  --congress-facts-secondary: var(--pmi-violet-500);
  --congress-facts-place: var(--pmi-violet-800);
  --congress-facts-detail: rgba(32, 15, 59, 0.75);
  --congress-facts-link: var(--pmi-violet-800);
  --congress-facts-link-border: rgba(32, 15, 59, 0.35);
  --congress-facts-link-hover: var(--pmi-violet-500);
}

@media (min-width: 768px) {
  .congress-facts {
    grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr) minmax(0, 0.65fr);
  }
}

.congress-facts__cell {
  padding: 2rem 0;
  border-bottom: 1px solid var(--congress-facts-cell-border, rgba(32, 15, 59, 0.12));
}

@media (min-width: 768px) {
  .congress-facts__cell {
    padding: 2.5rem 2rem;
    border-bottom: none;
    border-right: 1px solid var(--congress-facts-cell-border, rgba(32, 15, 59, 0.12));
  }

  .congress-facts__cell:last-child {
    border-right: none;
  }

  .congress-facts__cell--action {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }
}

.congress-facts__label {
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--congress-facts-label);
}

.congress-facts__primary {
  margin-top: 0.75rem;
  font-family: var(--pmi-font-primary);
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--congress-facts-primary);
}

.congress-facts__secondary {
  margin-top: 0.35rem;
  font-family: var(--pmi-font-mono, monospace);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--congress-facts-secondary);
}

.congress-facts__place {
  margin-top: 0.75rem;
  font-family: var(--pmi-font-primary);
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.1;
  font-weight: 900;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: var(--congress-facts-place);
}

.congress-facts__detail {
  margin-top: 0.75rem;
}

.congress-facts__link {
  display: inline-block;
  margin-top: 0.75rem;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--congress-facts-link);
  border-bottom: 1px solid var(--congress-facts-link-border);
  padding-bottom: 0.1rem;
  transition: color 0.2s, border-color 0.2s;
}

.congress-facts__link:hover {
  color: var(--congress-facts-link-hover);
  border-color: var(--congress-facts-link-hover);
}

/* Footer del congreso */
.congress-footer {
  padding: clamp(2.5rem, 5vw, 4rem) 0;
  color: var(--pmi-neutral-50);
}

.congress-footer__top {
  display: grid;
  gap: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid rgba(250, 250, 250, 0.1);
}

@media (min-width: 768px) {
  .congress-footer__top {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 3rem;
  }
}

.congress-footer__event {
  font-family: var(--pmi-font-primary);
  font-size: 1.25rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  text-transform: uppercase;
}

.congress-footer__meta {
  margin-top: 0.5rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: rgba(250, 250, 250, 0.68);
}

.congress-footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  font-size: 0.9375rem;
}

.congress-footer__nav a {
  color: var(--pmi-aqua-300);
  border-bottom: 1px solid rgba(125, 211, 252, 0.35);
  padding-bottom: 0.1rem;
  transition: color 0.2s, border-color 0.2s;
}

.congress-footer__nav a:hover {
  color: var(--pmi-neutral-50);
  border-color: var(--pmi-neutral-50);
}

.congress-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.5rem;
  font-size: 0.8125rem;
  color: rgba(250, 250, 250, 0.55);
}

.congress-footer__home {
  color: var(--pmi-violet-300);
  transition: color 0.2s;
}

.congress-footer__home:hover {
  color: var(--pmi-neutral-50);
}

.congress-footer__legal {
  margin: 0;
}

.congress-footer__bottom--legal {
  margin-top: 0;
  padding-top: 1rem;
  border-top: 1px solid rgba(250, 250, 250, 0.14);
}

.congress-footer__credit-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  transition: color 0.2s;
}

.congress-footer__credit-link:hover {
  color: var(--pmi-neutral-50);
}

/* Nav activo en header */
.congress-nav__link.is-active {
  color: var(--pmi-violet-500);
  font-weight: 500;
}

/* Congreso — responsive */
.congress-page header nav[aria-label="Congreso Proyectando Paraguay"] {
  display: none;
}

.congress-page #mobile-menu-btn {
  display: flex;
}

@media (min-width: 1024px) {
  .congress-page header nav[aria-label="Congreso Proyectando Paraguay"] {
    display: flex;
  }

  .congress-page #mobile-menu-btn {
    display: none;
  }
}

@media (max-width: 1023px) {
  .congress-poster__canvas {
    grid-template-columns: minmax(0, 1fr);
  }

  .congress-poster__stamp {
    order: -1;
    flex-direction: row;
    align-items: baseline;
    justify-content: flex-start;
    gap: 0.5rem 0.75rem;
    text-align: left;
    margin-bottom: 0.25rem;
  }

  .congress-poster__stamp-day {
    font-size: clamp(2.5rem, 12vw, 4rem);
    line-height: 0.9;
  }

  .congress-poster__stamp-month,
  .congress-poster__stamp-year {
    font-size: clamp(1rem, 3.8vw, 1.35rem);
  }

  .congress-poster__stamp-month {
    margin-left: 0.15rem;
  }

  .congress-poster__stamp-year::before {
    content: "·";
    margin-right: 0.35rem;
    opacity: 0.55;
  }
}

@media (max-width: 767px) {
  .congress-page h2,
  .congress-page .type-headline {
    font-size: clamp(2.15rem, 9vw, 2.75rem);
    line-height: 0.98;
  }

  .congress-poster {
    min-height: auto;
    padding-top: clamp(5.5rem, 14vh, 7rem);
  }

  .congress-poster__title-line {
    font-size: clamp(2.1rem, 11.5vw, 3rem);
    line-height: 0.92;
  }

  .congress-poster__lede {
    max-width: none;
  }

  .congress-poster__dock {
    font-size: 0.6875rem;
    letter-spacing: 0.07em;
    gap: 0.5rem 0.65rem;
  }

  .congress-page p.text-reveal {
    max-width: none;
  }

  .congress-speaker__photo {
    max-width: 14rem;
  }

  .congress-tier__cta {
    white-space: normal;
  }

  .congress-footer__meta {
    font-size: 0.8125rem;
    line-height: 1.55;
  }

  .congress-tag {
    font-size: 0.9375rem;
    line-height: 1.45;
  }
}

@media (max-width: 899px) {
  .congress-ticket-wall__intro .type-headline {
    font-size: clamp(2.15rem, 9vw, 3rem);
  }
}

