/* THE ACADEMY by MSDA — Público (Corporativa, Programa, Solicitud, panel de
 * estado, condiciones) y superficie institucional CEREBRO.
 * Norma MSDA/Apple: FOUNDATIONS -> COMPONENTS -> PATTERNS -> SHELL -> SCREENS.
 * CSS scoped a .msda-aca-app / .msda-aca-site, cero contaminación global.
 *
 * LOTE 02 (2026-09-14): identidad SIEMPRE OSCURA — fondo oscuro, titulares
 * crema/dorado, CTA magenta — fijada como base visual de este laboratorio
 * por instrucción expresa de Dirección sobre la referencia confirmada
 * (captura 2026-08-06, sitio academy-msda-corporativa). Es una decisión de
 * MARCA deliberada, no una regresión de accesibilidad: los pares de color de
 * abajo se han comprobado por cálculo de contraste WCAG 2.2 (ink/oro sobre
 * fondo oscuro >= 9:1; CTA magenta con texto blanco ~5.7:1) y superan AA en
 * todos los casos. Ya no hay una rama @media (prefers-color-scheme) — un
 * único tema, para que todo el recorrido (Corporativa/Programa/Solicitud/
 * Confirmación/Condiciones/Seguimiento/Panel institucional) se vea como el
 * mismo producto.
 *
 * Tipografía vía custom properties (documentado: no tenemos los archivos de
 * fuente reales en este laboratorio, así que los fallback son los que
 * realmente se renderizan hoy — la identidad tipográfica MSDA no cambia, ver
 * skill msda-apple-design-system § regla no negociable):
 *  --msda-font-display  -> Bulevar Poster, fallback Georgia/serif
 *  --msda-font-heading  -> N27, fallback system sans-serif
 *  --msda-font-body     -> Inter MSDA, fallback "Inter", system-ui
 */

/* ===== FOUNDATIONS ===== */
.msda-aca-app,
.msda-aca-site {
  --msda-font-display: 'Bulevar Poster', Georgia, 'Times New Roman', serif;
  --msda-font-heading: 'N27', -apple-system, 'Segoe UI', Roboto, sans-serif;
  --msda-font-body: 'Inter MSDA', 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  /* Base siempre oscura — ver nota LOTE 02 arriba. */
  --msda-color-bg: #14100d;
  --msda-color-bg-raised: #1b1510;
  --msda-color-ink: #f5ecdd;
  --msda-color-muted: #c9b8a3;
  --msda-color-border: #3c3226;
  --msda-color-surface: #1f1912;
  --msda-color-surface-tint: #241a12;
  --msda-color-surface-tint-border: #4a3320;
  --msda-color-gold: #d9b46a;
  --msda-color-gold-ink: #f0e0b3;
  --msda-color-brand: #c11f6b;       /* magenta — CTA/acento */
  --msda-color-brand-strong: #9c1656;
  --msda-color-brand-tint: #2a1420;
  --msda-color-brand-tint-ink: #f6c9df;
  --msda-color-error-bg: #3a1e1c;
  --msda-color-error-ink: #ffb3a7;
  --msda-color-error-border: #7a3a34;
  --msda-color-focus: #e37fb0;

  --msda-space-1: 4px;
  --msda-space-2: 8px;
  --msda-space-3: 12px;
  --msda-space-4: 16px;
  --msda-space-5: 24px;
  --msda-space-6: 32px;
  --msda-space-7: 48px;
  --msda-space-8: 72px;

  --msda-radius: 10px;
  --msda-radius-sm: 8px;
  --msda-radius-lg: 20px;
  --msda-touch-min: 44px;

  /* Fotografía orquestal: sin archivo real disponible en este laboratorio
   * (no se fabrica ningún asset) — placeholder premium por degradado que
   * Dirección puede sustituir asignando una imagen real a esta variable
   * (p.ej. vía un ajuste del tema) sin tocar ninguna otra regla. */
  --msda-hero-image: none;

  color: var(--msda-color-ink);
  font-family: var(--msda-font-body);
}

.msda-aca-app {
  max-width: 640px;
  margin: 0 auto;
  font-size: 16px;
  line-height: 1.5;
}

.msda-aca-site {
  max-width: none;
  font-size: 16px;
  line-height: 1.55;
  background: var(--msda-color-bg);
}

.msda-aca-app,
.msda-aca-app *,
.msda-aca-site,
.msda-aca-site * {
  box-sizing: border-box;
}

.msda-aca-app :focus-visible,
.msda-aca-site :focus-visible {
  outline: 3px solid var(--msda-color-focus);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .msda-aca-app *,
  .msda-aca-site * {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

/* ===== COMPONENTS (compartidos con el formulario ya existente) ===== */
.msda-aca-claim {
  font-family: var(--msda-font-heading);
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--msda-color-gold);
  text-transform: uppercase;
  font-size: 14px;
  margin: 0 0 var(--msda-space-4);
}

.msda-aca-app h1,
.msda-aca-app h2,
.msda-aca-site h1,
.msda-aca-site h2 {
  font-family: var(--msda-font-heading);
  font-weight: 700;
  color: var(--msda-color-ink);
  margin: 0 0 var(--msda-space-2);
  letter-spacing: -0.01em;
}

.msda-aca-app fieldset {
  border: 1px solid var(--msda-color-border);
  border-radius: var(--msda-radius);
  margin: 0 0 var(--msda-space-5);
  padding: var(--msda-space-4);
  background: var(--msda-color-surface);
}

.msda-aca-app legend {
  font-family: var(--msda-font-heading);
  font-weight: 700;
  padding: 0 var(--msda-space-2);
  font-size: 15px;
  color: var(--msda-color-gold-ink);
}

.msda-aca-app label {
  display: block;
  margin-bottom: var(--msda-space-4);
  font-size: 14px;
  font-weight: 600;
}

.msda-aca-hint {
  display: block;
  font-weight: 400;
  color: var(--msda-color-muted);
  font-size: 12px;
  margin-top: var(--msda-space-1);
}

.msda-aca-app input,
.msda-aca-app select,
.msda-aca-app textarea {
  width: 100%;
  padding: 12px;
  margin-top: 6px;
  border: 1px solid var(--msda-color-border);
  border-radius: var(--msda-radius-sm);
  font-size: 16px;
  font-family: var(--msda-font-body);
  color: var(--msda-color-ink);
  background: var(--msda-color-bg-raised);
  min-height: var(--msda-touch-min);
}

.msda-aca-app textarea {
  min-height: 96px;
}

.msda-aca-app input[aria-invalid="true"],
.msda-aca-app select[aria-invalid="true"],
.msda-aca-app textarea[aria-invalid="true"] {
  border-color: var(--msda-color-error-border);
  border-width: 2px;
}

.msda-aca-field-error {
  color: var(--msda-color-error-ink);
  font-size: 13px;
  margin-top: var(--msda-space-1);
  font-weight: 600;
}

.msda-aca-checkline {
  display: flex;
  align-items: flex-start;
  gap: var(--msda-space-2);
  font-weight: 400;
}

.msda-aca-checkline input {
  width: 20px;
  height: 20px;
  min-height: 20px;
  margin-top: 2px;
  flex-shrink: 0;
}

.msda-aca-submit {
  background: var(--msda-color-brand);
  color: #fff;
  border: none;
  border-radius: var(--msda-radius-sm);
  padding: 14px 22px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  width: 100%;
  min-height: var(--msda-touch-min);
  font-family: var(--msda-font-heading);
  transition: background-color 120ms ease;
}

.msda-aca-submit:hover {
  background: var(--msda-color-brand-strong);
}

.msda-aca-submit:disabled {
  opacity: 0.6;
  cursor: progress;
}

/* ===== PATTERNS ===== */
.msda-aca-error {
  background: var(--msda-color-error-bg);
  color: var(--msda-color-error-ink);
  border: 1px solid var(--msda-color-error-border);
  border-radius: var(--msda-radius-sm);
  padding: var(--msda-space-3);
  margin-bottom: var(--msda-space-4);
  font-size: 14px;
}

.msda-aca-error ul {
  margin: var(--msda-space-2) 0 0;
  padding-left: 20px;
}

.msda-aca-success {
  background: var(--msda-color-brand-tint);
  color: var(--msda-color-brand-tint-ink);
  border: 1px solid var(--msda-color-surface-tint-border);
  border-radius: var(--msda-radius);
  padding: var(--msda-space-5);
  text-align: center;
}

.msda-aca-success a {
  color: var(--msda-color-brand-tint-ink);
  font-weight: 600;
}

.msda-aca-conditions {
  background: var(--msda-color-surface);
  border: 1px solid var(--msda-color-border);
  border-radius: var(--msda-radius);
  padding: var(--msda-space-4);
  font-size: 14px;
}

/* Estados de UI genéricos (LOADING/EMPTY/ERROR) del panel de estado por
 * token — NUNCA son estados de negocio (esos viven solo en Domain\States y
 * se muestran como .msda-aca-status-badge). */
.msda-aca-panel-status {
  background: var(--msda-color-surface);
  border: 1px solid var(--msda-color-border);
  border-radius: var(--msda-radius);
  padding: var(--msda-space-5);
  text-align: center;
}

.msda-aca-status-badge {
  display: inline-block;
  background: var(--msda-color-brand-tint);
  color: var(--msda-color-brand-tint-ink);
  padding: 6px 14px;
  border-radius: 999px;
  font-weight: 600;
  margin-top: var(--msda-space-2);
}

.msda-aca-ui-loading,
.msda-aca-ui-empty {
  padding: var(--msda-space-5);
  text-align: center;
  color: var(--msda-color-muted);
}

.msda-aca-retry {
  margin-top: var(--msda-space-3);
  background: transparent;
  border: 1px solid var(--msda-color-brand);
  color: var(--msda-color-gold-ink);
  border-radius: var(--msda-radius-sm);
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  min-height: var(--msda-touch-min);
}

.msda-aca-skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
}

.msda-aca-skip-link:focus {
  position: static;
  display: inline-block;
  margin-bottom: var(--msda-space-3);
}

/* ===== SCREENS: Corporativa / Programa y Admisiones ===============
 * Nuevas en LOTE 02 — construidas dentro del propio producto WordPress
 * (msda-academy), no como páginas externas aparte, para que Corporativa,
 * Programa, Solicitud, Confirmación, Condiciones y Seguimiento sean
 * visualmente el mismo producto (Frontend\PublicPages). */

.msda-aca-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--msda-space-4);
  padding: var(--msda-space-4) var(--msda-space-5);
  border-bottom: 1px solid var(--msda-color-border);
}

.msda-aca-nav-brand {
  font-family: var(--msda-font-display);
  font-size: 20px;
  color: var(--msda-color-ink);
  text-decoration: none;
  letter-spacing: 0.01em;
}

.msda-aca-nav-cta {
  display: inline-block;
  background: var(--msda-color-brand);
  color: #fff;
  border-radius: var(--msda-radius-sm);
  padding: 10px 18px;
  font-family: var(--msda-font-heading);
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  min-height: var(--msda-touch-min);
  line-height: calc(var(--msda-touch-min) - 20px);
}

.msda-aca-nav-cta:hover {
  background: var(--msda-color-brand-strong);
}

/* ===== LOTE 03: cabecera de dos niveles (topbar + pestañas), igual
 * disposición que la referencia oscura/dorada confirmada por Dirección:
 * franja superior con la marca, y debajo una barra de pestañas con la
 * sección activa resaltada y "Solicitar plaza" como píldora magenta. */
.msda-aca-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--msda-space-4);
  padding: var(--msda-space-3) var(--msda-space-5);
  border-bottom: 1px solid var(--msda-color-border);
}

.msda-aca-topbar-brand {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-family: var(--msda-font-display);
  font-size: 19px;
  color: var(--msda-color-ink);
  text-decoration: none;
  letter-spacing: 0.01em;
}

.msda-aca-topbar-brand small {
  font-family: var(--msda-font-heading);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--msda-color-muted);
}

.msda-aca-topbar-cta {
  display: inline-block;
  border: 1px solid var(--msda-color-gold);
  color: var(--msda-color-gold-ink);
  border-radius: 999px;
  padding: 9px 18px;
  font-family: var(--msda-font-heading);
  font-weight: 600;
  font-size: 13px;
  text-decoration: none;
}

.msda-aca-topbar-cta:hover {
  border-color: var(--msda-color-ink);
  color: var(--msda-color-ink);
}

.msda-aca-tabs {
  display: flex;
  align-items: center;
  gap: var(--msda-space-2);
  flex-wrap: wrap;
  padding: var(--msda-space-3) var(--msda-space-5);
  background: var(--msda-color-bg-raised);
  border-bottom: 1px solid var(--msda-color-border);
}

.msda-aca-tab {
  display: inline-block;
  padding: 9px 16px;
  border-radius: 999px;
  font-family: var(--msda-font-heading);
  font-size: 13px;
  font-weight: 600;
  color: var(--msda-color-muted);
  text-decoration: none;
}

.msda-aca-tab:hover {
  color: var(--msda-color-ink);
}

.msda-aca-tab[aria-current="page"] {
  background: var(--msda-color-surface);
  color: var(--msda-color-gold-ink);
}

.msda-aca-tab-cta {
  margin-left: auto;
  background: var(--msda-color-brand);
  color: #fff;
}

.msda-aca-tab-cta:hover {
  background: var(--msda-color-brand-strong);
  color: #fff;
}

.msda-aca-hero {
  position: relative;
  padding: var(--msda-space-8) var(--msda-space-5) calc(var(--msda-space-8) + 24px);
  text-align: center;
  overflow: hidden;
  isolation: isolate;
  background-image:
    radial-gradient(ellipse at 50% -10%, rgba(217, 180, 106, 0.16), transparent 60%),
    var(--msda-hero-image, none),
    linear-gradient(180deg, #1a140f 0%, var(--msda-color-bg) 65%);
  background-size: cover;
  background-position: center;
}

/* Atmósfera decorativa (degradados + textura de grano SVG en línea) --
 * NUNCA una fotografía: no hay ningún archivo de foto real en este
 * laboratorio (ver informe LOTE 03) y no se fabrica ninguno. Es
 * deliberadamente abstracta -- luz de escenario, no un retrato. */
.msda-aca-hero::before,
.msda-aca-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}

.msda-aca-hero::before {
  background:
    radial-gradient(60% 55% at 12% 15%, rgba(217, 180, 106, 0.20), transparent 70%),
    radial-gradient(50% 50% at 92% 82%, rgba(193, 31, 107, 0.22), transparent 70%);
  filter: blur(2px);
}

.msda-aca-hero::after {
  opacity: 0.5;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

.msda-aca-hero-motif {
  position: absolute;
  right: -60px;
  bottom: -40px;
  width: 320px;
  height: 320px;
  opacity: 0.16;
  color: var(--msda-color-gold);
  z-index: -1;
  pointer-events: none;
}

.msda-aca-hero-inner {
  position: relative;
  z-index: 1;
}

.msda-aca-hero-eyebrow {
  font-family: var(--msda-font-heading);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 13px;
  color: var(--msda-color-gold);
  margin: 0 0 var(--msda-space-3);
}

.msda-aca-hero-title {
  font-family: var(--msda-font-display);
  font-weight: 700;
  font-size: clamp(32px, 6vw, 56px);
  line-height: 1.05;
  color: var(--msda-color-ink);
  margin: 0 auto var(--msda-space-4);
  max-width: 18ch;
}

.msda-aca-hero-lede {
  font-size: 18px;
  color: var(--msda-color-muted);
  max-width: 46ch;
  margin: 0 auto var(--msda-space-6);
}

.msda-aca-hero-actions {
  display: flex;
  gap: var(--msda-space-3);
  justify-content: center;
  flex-wrap: wrap;
}

.msda-aca-cta-primary,
.msda-aca-cta-secondary {
  display: inline-block;
  font-family: var(--msda-font-heading);
  font-weight: 600;
  font-size: 16px;
  text-decoration: none;
  border-radius: var(--msda-radius-sm);
  padding: 14px 28px;
  min-height: var(--msda-touch-min);
}

.msda-aca-cta-primary {
  background: var(--msda-color-brand);
  color: #fff;
}

.msda-aca-cta-primary:hover {
  background: var(--msda-color-brand-strong);
}

.msda-aca-cta-secondary {
  background: transparent;
  color: var(--msda-color-gold-ink);
  border: 1px solid var(--msda-color-border);
}

.msda-aca-cta-secondary:hover {
  border-color: var(--msda-color-gold);
}

.msda-aca-section {
  padding: var(--msda-space-7) var(--msda-space-5);
  max-width: 960px;
  margin: 0 auto;
}

.msda-aca-section-eyebrow {
  font-family: var(--msda-font-heading);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 12px;
  color: var(--msda-color-gold);
  margin: 0 0 var(--msda-space-2);
}

.msda-aca-section-title {
  font-family: var(--msda-font-heading);
  font-size: clamp(24px, 3.4vw, 32px);
  margin: 0 0 var(--msda-space-5);
}

.msda-aca-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--msda-space-4);
}

.msda-aca-card {
  background: var(--msda-color-surface);
  border: 1px solid var(--msda-color-border);
  border-radius: var(--msda-radius-lg);
  padding: var(--msda-space-5);
}

.msda-aca-card h3 {
  font-family: var(--msda-font-heading);
  color: var(--msda-color-gold-ink);
  margin: 0 0 var(--msda-space-2);
  font-size: 17px;
}

.msda-aca-card p {
  color: var(--msda-color-muted);
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
}

.msda-aca-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--msda-space-4);
}

.msda-aca-steps li {
  display: flex;
  gap: var(--msda-space-4);
  align-items: flex-start;
}

.msda-aca-step-number {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--msda-color-gold);
  color: var(--msda-color-gold-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--msda-font-heading);
  font-weight: 700;
}

.msda-aca-step-body h3 {
  margin: 0 0 4px;
  font-size: 15px;
  font-family: var(--msda-font-heading);
  color: var(--msda-color-ink);
}

.msda-aca-step-body p {
  margin: 0;
  font-size: 14px;
  color: var(--msda-color-muted);
}

.msda-aca-footer-note {
  text-align: center;
  padding: var(--msda-space-5);
  font-size: 12px;
  color: var(--msda-color-muted);
  border-top: 1px solid var(--msda-color-border);
}

/* ===== LOTE 03: scroll cue, franja de datos reales, divisor, FAQ,
 * iconos de paso y cabecera premium de Solicitud ===== */

.msda-aca-scrollcue {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: var(--msda-space-7);
  font-family: var(--msda-font-heading);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--msda-color-muted);
}

.msda-aca-scrollcue svg {
  width: 14px;
  height: 14px;
  animation: msda-aca-bob 1.6s ease-in-out infinite;
}

@keyframes msda-aca-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(4px); }
}

.msda-aca-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--msda-space-5);
  padding: var(--msda-space-6) var(--msda-space-5);
  max-width: 960px;
  margin: 0 auto;
  border-top: 1px solid var(--msda-color-border);
  border-bottom: 1px solid var(--msda-color-border);
}

.msda-aca-stat {
  text-align: center;
}

.msda-aca-stat-value {
  display: block;
  font-family: var(--msda-font-display);
  font-size: clamp(28px, 3.6vw, 40px);
  color: var(--msda-color-gold-ink);
  line-height: 1;
  margin-bottom: 6px;
}

.msda-aca-stat-label {
  display: block;
  font-size: 13px;
  color: var(--msda-color-muted);
}

.msda-aca-divider {
  display: flex;
  align-items: center;
  gap: var(--msda-space-3);
  max-width: 960px;
  margin: 0 auto;
  padding: 0 var(--msda-space-5);
}

.msda-aca-divider::before,
.msda-aca-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--msda-color-border);
}

.msda-aca-divider span {
  color: var(--msda-color-gold);
  font-size: 12px;
}

.msda-aca-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: var(--msda-color-gold-ink);
}

.msda-aca-step-number {
  position: relative;
}

.msda-aca-step-number .msda-aca-icon {
  position: absolute;
  width: 14px;
  height: 14px;
  bottom: -3px;
  right: -3px;
  background: var(--msda-color-bg);
  border-radius: 50%;
}

.msda-aca-faq {
  display: grid;
  gap: var(--msda-space-3);
}

.msda-aca-faq-item {
  background: var(--msda-color-surface);
  border: 1px solid var(--msda-color-border);
  border-radius: var(--msda-radius);
  padding: 0 var(--msda-space-4);
}

.msda-aca-faq-item summary {
  cursor: pointer;
  padding: var(--msda-space-4) 0;
  font-family: var(--msda-font-heading);
  font-weight: 600;
  color: var(--msda-color-ink);
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--msda-space-3);
}

.msda-aca-faq-item summary::-webkit-details-marker { display: none; }

.msda-aca-faq-item summary::after {
  content: '+';
  font-size: 20px;
  color: var(--msda-color-gold);
  flex-shrink: 0;
}

.msda-aca-faq-item[open] summary::after {
  content: '–';
}

.msda-aca-faq-item p {
  margin: 0 0 var(--msda-space-4);
  color: var(--msda-color-muted);
  font-size: 14px;
  line-height: 1.6;
}

.msda-aca-closing {
  text-align: center;
  padding: var(--msda-space-8) var(--msda-space-5);
  background: linear-gradient(180deg, var(--msda-color-bg) 0%, #1a140f 100%);
  border-top: 1px solid var(--msda-color-border);
}

.msda-aca-closing h2 {
  font-family: var(--msda-font-display);
  font-size: clamp(26px, 3.6vw, 38px);
}

/* Cabecera premium del formulario de Solicitud (envuelve el mismo mount
 * point que ya usa assets/js/solicitud.js, sin tocar ni una línea de ese
 * fichero -- ver Frontend\Shortcodes::render_form()). */
.msda-aca-form-shell {
  background: var(--msda-color-bg);
}

.msda-aca-form-head {
  text-align: center;
  padding: var(--msda-space-7) var(--msda-space-5) var(--msda-space-5);
  max-width: 640px;
  margin: 0 auto;
}

.msda-aca-progress {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: var(--msda-space-4) 0 0;
  list-style: none;
  padding: 0;
  flex-wrap: wrap;
}

.msda-aca-progress li {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--msda-font-heading);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--msda-color-muted);
}

.msda-aca-progress li::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 1px solid var(--msda-color-muted);
  display: inline-block;
}

.msda-aca-progress li[aria-current="step"] {
  color: var(--msda-color-gold-ink);
}

.msda-aca-progress li[aria-current="step"]::before {
  background: var(--msda-color-brand);
  border-color: var(--msda-color-brand);
}

.msda-aca-progress li:not(:last-child)::after {
  content: '';
  width: 20px;
  height: 1px;
  background: var(--msda-color-border);
  margin-left: 4px;
}

/* Estados de error/éxito con acento visual (icono vía ::before, sin JS) --
 * las clases y el HTML que rellena assets/js/solicitud.js no cambian. */
.msda-aca-error {
  position: relative;
  padding-left: var(--msda-space-6);
}

.msda-aca-error::before {
  content: '!';
  position: absolute;
  left: var(--msda-space-3);
  top: var(--msda-space-3);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--msda-color-error-ink);
  color: #2a0e0a;
  font-weight: 700;
  font-size: 12px;
  line-height: 18px;
  text-align: center;
}

.msda-aca-success {
  position: relative;
  padding-top: calc(var(--msda-space-5) + 30px);
}

.msda-aca-success::before {
  content: '✓';
  position: absolute;
  top: var(--msda-space-4);
  left: 50%;
  transform: translateX(-50%);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--msda-color-brand);
  color: #fff;
  font-size: 18px;
  line-height: 36px;
  text-align: center;
}

/* ===== SHELL / responsive ===== */
@media (max-width: 600px) {
  .msda-aca-app {
    padding: 0 var(--msda-space-3);
  }
  .msda-aca-nav {
    padding: var(--msda-space-3) var(--msda-space-4);
  }
}

@media (min-width: 768px) {
  .msda-aca-app fieldset {
    padding: var(--msda-space-5);
  }
}

/* 1.0.18-rc1 · integración visual selectiva desde producción 3.2.3 */
.msda-aca-prod-topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:86px;padding:14px clamp(18px,4vw,54px);background:#0e0726;border-bottom:1px solid rgba(255,255,255,.16)}
.msda-aca-prod-msda,.msda-aca-prod-academy{display:block;text-decoration:none}
.msda-aca-prod-msda img{display:block;width:170px;height:auto;object-fit:contain}
.msda-aca-prod-academy{width:112px;height:58px;overflow:hidden}
.msda-aca-prod-academy img{width:100%;height:100%;object-fit:contain;transform:scale(1.18)}
.msda-aca-form-head-production{position:relative;overflow:hidden;isolation:isolate;padding-top:80px;padding-bottom:72px;background:#070f1a;color:#fff}
.msda-aca-form-head-production:before{content:"";position:absolute;inset:0;z-index:-2;background:url('../images/academy-hero-cello.jpeg') center 42%/cover no-repeat;opacity:.48}
.msda-aca-form-head-production:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,15,26,.97),rgba(7,15,26,.79) 52%,rgba(7,15,26,.48)),linear-gradient(0deg,rgba(7,15,26,.85),transparent 58%)}
.msda-aca-form-head-production .msda-aca-hero-eyebrow{color:#ff8b00}
.msda-aca-form-head-production .msda-aca-hero-title{color:#fff}
.msda-aca-form-head-production .msda-aca-hero-lede{color:rgba(255,255,255,.84)}
.msda-aca-form-head-production .msda-aca-progress{color:#fff}
@media(max-width:700px){.msda-aca-prod-topbar{min-height:72px;padding:10px 16px}.msda-aca-prod-msda img{width:132px}.msda-aca-prod-academy{width:88px;height:48px}.msda-aca-form-head-production{padding-top:58px;padding-bottom:54px}.msda-aca-form-head-production:before{background-position:64% 32%;opacity:.38}}

/* 1.0.18-rc4 · Condiciones: hereda el shell/variables de Academy y ocupa toda la pantalla. */
.msda-aca-conditions-shell{min-height:100vh;background:var(--msda-color-bg);}
.msda-aca-conditions-page{min-height:36vh;padding:var(--msda-space-7) var(--msda-space-5) var(--msda-space-8);background:var(--msda-color-bg);}
.msda-aca-conditions-page .msda-aca-conditions{max-width:900px;margin:0 auto;background:var(--msda-color-surface);border:1px solid var(--msda-color-border);border-radius:var(--msda-radius-lg);padding:clamp(22px,4vw,42px);font-size:16px;line-height:1.7;color:var(--msda-color-ink);}
.msda-aca-conditions-page .msda-aca-conditions p{margin:0 0 var(--msda-space-4);}
.msda-aca-conditions-page .msda-aca-conditions p:last-child{margin-bottom:0;}
.msda-aca-conditions-actions{max-width:900px;margin:var(--msda-space-5) auto 0;text-align:center;}
.msda-aca-conditions-actions .msda-aca-prod-btn{display:inline-flex;justify-content:center;align-items:center;text-decoration:none;min-height:48px;padding:12px 22px;border-radius:10px;font-family:var(--msda-font-heading);font-weight:700;}
.msda-aca-conditions-actions .msda-aca-prod-btn-primary{background:var(--msda-color-brand);color:#fff;}
.msda-aca-conditions-actions .msda-aca-prod-btn-primary:hover{background:var(--msda-color-brand-strong);}
@media(max-width:600px){.msda-aca-conditions-page{padding:var(--msda-space-5) var(--msda-space-3) var(--msda-space-7);}.msda-aca-conditions-page .msda-aca-conditions{padding:20px;border-radius:14px;}}
