/* Paleta violeta (--ma-violet-*) en css/brand-tokens.css (global). */
#hero-animation {
  margin: 0;
  padding: 0;
  background:
    linear-gradient(135deg, rgba(61,26,110,0.94) 0%, rgba(109,40,217,0.88) 100%),
    url("../../img/front-pages/backgrounds/hero-software.d15ab44851cf.jpg") center/cover no-repeat;
  color: #fff;
  position: relative;
  overflow: hidden;
}
#hero-animation::before {
  content: '';
  position: absolute;
  width: 600px; height: 600px;
  border-radius: 50%;
  background: rgba(167,139,250,0.12);
  top: -150px; right: -100px;
  pointer-events: none;
}
#hero-animation::after {
  content: '';
  position: absolute;
  width: 300px; height: 300px;
  border-radius: 50%;
  background: rgba(167,139,250,0.08);
  bottom: -80px; left: 10%;
  pointer-events: none;
}

.hero-banner {
  position: relative;
  padding: 64px 0 48px;
  overflow: hidden;
}

.landing-hero { background: none !important; border-radius: 0 !important; padding-top: 0 !important; }
.landing-hero::after { display: none !important; }

.hero-banner-title {
  font-size: 3.25rem;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.5px;
  color: #fff;
  margin-bottom: 1rem;
}
.hero-banner-title span {
  color: var(--ma-violet-300);
}
.hero-banner-subtitle {
  font-size: 1.125rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.92);
  margin-bottom: 1.75rem;
  max-width: 520px;
}

/* Botones del hero (sobre fondo oscuro) */
.btn-hero-primary {
  display: inline-flex; align-items: center; gap: 6px;
  background: #fff;
  color: var(--ma-violet-700);
  padding: 13px 28px;
  border-radius: 9999px;
  font-weight: 700;
  font-size: 1rem;
  border: none;
  text-decoration: none;
  box-shadow: 0 4px 24px rgba(109,40,217,0.3);
  transition: transform 0.2s, box-shadow 0.2s;
}
.btn-hero-primary:hover {
  color: var(--ma-violet-900);
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(109,40,217,0.4);
}
.btn-hero-secondary {
  display: inline-flex; align-items: center; gap: 6px;
  background: transparent;
  color: #fff;
  padding: 13px 28px;
  border-radius: 9999px;
  font-weight: 600;
  font-size: 1rem;
  border: 2px solid rgba(255,255,255,0.5);
  text-decoration: none;
  transition: border-color 0.2s, background 0.2s;
}
.btn-hero-secondary:hover {
  color: #fff;
  border-color: #fff;
  background: rgba(255,255,255,0.08);
}
.hero-banner-content .btn { margin-top: 0; }

.hero-microcopy {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.8);
  margin-top: 1rem;
}

.hero-microcopy i { vertical-align: middle; }

/* Mockup de la app en el hero (card 3D + badges flotantes) */
.hero-mockup-col {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 1.5rem;
}
.hero-visual { position: relative; }
.hero-card {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 24px;
  padding: 14px;
  box-shadow: 0 24px 60px rgba(30,19,51,.28);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px); /* Safari < 18 solo entiende la versión con prefijo */
  transform: perspective(1400px) rotateY(-8deg) rotateX(3deg);
  transition: transform .5s ease;
}
.hero-card:hover { transform: perspective(1400px) rotateY(0) rotateX(0); }
.hero-card img { border-radius: 14px; width: 100%; display: block; }
.hero-float {
  position: absolute;
  background: #fff;
  color: var(--ma-violet-900);
  border-radius: 14px;
  padding: 12px 16px;
  box-shadow: 0 14px 40px rgba(75,42,156,.16);
  font-weight: 700;
  font-size: 0.92rem;
  display: flex;
  align-items: center;
  gap: 10px;
  animation: hero-bob 4s ease-in-out infinite;
}
.hero-float .ic {
  width: 34px; height: 34px;
  border-radius: 10px;
  display: grid; place-items: center;
  background: var(--ma-violet-50);
  color: var(--ma-violet-700);
  flex-shrink: 0;
}
.hero-float .ic svg { width: 20px; height: 20px; }
.hero-float.f1 { top: -18px; left: -26px; }
.hero-float.f2 { bottom: 24px; right: -22px; animation-delay: 1.4s; }
@keyframes hero-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-float { animation: none; }
  .hero-card { transform: none; }
}

/* Strip de integraciones */
.landing-integrations {
  background: var(--ma-violet-50);
  border-bottom: 1px solid #e5e0f5;
  padding: 18px 0;
}
.landing-integrations .integ-label {
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #6b7280;
  white-space: nowrap;
}
.landing-integrations .integ-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #3D1A6E;
  background: #fff;
  border: 1px solid #d8d0f0;
  border-radius: 20px;
  padding: 4px 12px;
  white-space: nowrap;
}
.landing-integrations .integ-chip i { font-size: 1rem; }

/* Funcionalidades (mock mock-funcionalidades-como-funciona.html): filas compactas */
#landingFeatures {
  background: var(--ma-violet-50) !important;
}
.feature-row-ma {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 18px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid rgba(109,40,217,0.09);
  box-shadow: 0 2px 10px rgba(109,40,217,0.05);
  transition: box-shadow 0.2s, transform 0.2s;
  height: 100%;
}
.feature-row-ma:hover {
  box-shadow: 0 6px 20px rgba(109,40,217,0.13);
  transform: translateY(-2px);
}
.feature-icon-sm-ma {
  flex-shrink: 0;
  width: 40px; height: 40px;
  background: #EDE9FE;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.15rem;
  color: var(--ma-violet-700);
  margin-top: 1px;
}
.feature-row-title-ma { font-size: 0.9rem; font-weight: 700; color: #1E1B2E; margin-bottom: 3px; line-height: 1.3; }
.feature-row-desc-ma { font-size: 0.82rem; color: #6b7280; line-height: 1.5; }
/* Slider de funcionalidades (mobile) */
/* overflow:hidden (default de Swiper) para que el wrapper no desborde el viewport
   en móvil; el contenedor (~92vw) es más ancho que el slide (80vw), así que el
   card siguiente igual asoma sin generar scroll horizontal. */
.feature-swiper-ma { padding-bottom: 40px !important; overflow: hidden !important; }
.feature-swiper-ma .swiper-slide { width: 80vw !important; height: auto; }
.feature-swiper-pagination-ma { bottom: 4px !important; }
.feature-swiper-pagination-ma .swiper-pagination-bullet { background: var(--ma-violet-500); opacity: 0.35; }
.feature-swiper-pagination-ma .swiper-pagination-bullet-active { background: var(--ma-violet-700); opacity: 1; }
/* Separador entre secciones */
.section-divider { height: 1px; background: linear-gradient(90deg, transparent, rgba(109,40,217,0.12), transparent); margin: 0; }

/* Banda de stats violeta */
.landing-stats-band {
  background: linear-gradient(135deg, var(--ma-violet-900) 0%, var(--ma-violet-700) 100%);
  padding: 56px 0;
  position: relative;
  overflow: hidden;
}
.landing-stats-band::before {
  content: '';
  position: absolute;
  width: 500px; height: 500px;
  border-radius: 50%;
  background: rgba(167,139,250,0.1);
  top: -200px; right: -100px;
  pointer-events: none;
}
.landing-stats-band .stat-value {
  font-size: 2.75rem;
  font-weight: 800;
  color: var(--ma-violet-300);
  line-height: 1;
  margin-bottom: 0.35rem;
}
.landing-stats-band .stat-label {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.85);
  font-weight: 500;
}
.landing-stats-band .stat-divider {
  width: 1px;
  background: rgba(255,255,255,0.15);
  height: 60px;
  align-self: center;
}
.hero-badge {
    display: inline-block;
    background: rgba(167, 139, 250, 0.2);
    color: var(--ma-violet-300);
    border: 1px solid rgba(167, 139, 250, 0.4);
    padding: 6px 16px;
    border-radius: 9999px;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 20px;
}
/* ¿Cómo funciona? — stepper (mock mock-funcionalidades-como-funciona.html) */
.how-stepper-ma { display: flex; align-items: flex-start; }
.how-step-ma { flex: 1; display: flex; flex-direction: column; align-items: center; position: relative; text-align: center; }
.how-step-circle-ma {
  width: 44px; height: 44px;
  background: var(--ma-violet-700); color: #fff;
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 1rem;
  position: relative; z-index: 2; flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(109,40,217,0.3);
}
.how-step-connector-ma {
  position: absolute; top: 22px; left: 50%; right: -50%;
  height: 2px;
  background: linear-gradient(90deg, var(--ma-violet-500), var(--ma-violet-300));
  z-index: 1;
}
.how-step-connector-ma.last { display: none; }
.how-step-body-ma { margin-top: 14px; padding: 0 12px; }
.how-step-title-ma { font-size: 0.92rem; font-weight: 700; color: #1E1B2E; margin-bottom: 5px; line-height: 1.3; }
.how-step-desc-ma { font-size: 0.82rem; color: #6b7280; line-height: 1.5; }
.how-cta-btn-ma {
  background: var(--ma-violet-700);
  border: none; border-radius: 10px; font-size: 1rem;
  box-shadow: 0 4px 16px rgba(109,40,217,0.3);
  transition: transform 0.15s, box-shadow 0.15s;
}
.how-cta-btn-ma:hover { background: var(--ma-violet-900); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(109,40,217,0.4); color: #fff; }
@media (max-width: 767.98px) {
  .how-stepper-ma { flex-direction: column; align-items: flex-start; }
  .how-step-ma { flex-direction: row; align-items: flex-start; text-align: left; gap: 14px; width: 100%; padding-bottom: 20px; }
  .how-step-connector-ma {
    position: absolute; top: 44px; left: 22px; right: auto;
    width: 2px; height: calc(100% - 44px);
    background: linear-gradient(180deg, var(--ma-violet-500), var(--ma-violet-300));
  }
  .how-step-body-ma { margin-top: 0; padding: 0; padding-top: 8px; }
}


@media (max-width: 991.98px) {
  .hero-banner { padding: 48px 0 40px; text-align: center; }
  .hero-banner-subtitle { margin-left: auto; margin-right: auto; }
  .hero-mockup-col { padding-top: 2rem; }
  .hero-card { transform: none; max-width: 460px; margin: 0 auto; }
  .hero-float.f1 { left: -6px; }
  .hero-float.f2 { right: -6px; }
  .landing-stats-band .stat-divider { display: none; }
}

@media (max-width: 575.98px) {
  .hero-banner { padding: 32px 0 36px; }
  .hero-banner-title { font-size: 2.25rem; }
  .hero-banner-subtitle { font-size: 1rem; }
  .landing-stats-band .stat-value { font-size: 2rem; }
  .landing-integrations .integ-chip { font-size: 0.75rem; padding: 3px 10px; }
  /* Badges flotantes más chicos en móvil: no deben tapar la imagen del mockup. */
  .hero-float { padding: 6px 9px; font-size: 0.68rem; gap: 6px; border-radius: 9px; }
  .hero-float .ic { width: 22px; height: 22px; border-radius: 6px; }
  .hero-float .ic svg { width: 14px; height: 14px; }
  .hero-float.f1 { top: -10px; left: 0; }
  .hero-float.f2 { bottom: 10px; right: 0; }
}

/* ====== Home B2C: vitrina de clases ====== */
/* Hero con foto (img/home-hero.*): la persona está a la derecha y el degradé
   violeta a la izquierda ya viene en la foto; el velo refuerza el contraste del
   texto. El navbar es transparente encima mientras la página está arriba (ver
   la regla del navbar más abajo), por eso el hero sube bajo él con margen negativo. */
:root{--home-nav-h:88px;} /* la mide home-hero-search.js */
.home-hero{position:relative;z-index:0;overflow:hidden;color:#fff;
  margin-top:calc(-1 * var(--home-nav-h));
  padding:calc(var(--home-nav-h) + 72px) 0 210px; /* el pie deja sitio a la cinta de logos */
  min-height:min(720px,90vh);display:flex;align-items:center;
  /* La foto entra completa a la altura del hero, pegada a la derecha (así la persona
     no se corta en pantallas anchas); el color de fondo es el del borde izquierdo
     de la foto, para que el empalme no se note. */
  background:#29133d url("../../img/home-hero.70f01b0757df.jpg") right center/auto 100% no-repeat;}
.home-hero{background-image:image-set(url("../../img/home-hero.3f26fe3e171a.webp") type("image/webp"),url("../../img/home-hero.70f01b0757df.jpg") type("image/jpeg"));}
.home-hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(43,14,84,.92) 0%,rgba(43,14,84,.78) 34%,rgba(43,14,84,.30) 60%,rgba(43,14,84,0) 100%);}
.home-hero>.container{position:relative;}
.home-hero-inner{max-width:760px;}
.home-hero-title{color:#fff;font-weight:800;font-size:clamp(2.1rem,4.8vw,3.6rem);line-height:1.08;letter-spacing:-.5px;margin-bottom:22px;}
.home-hero-title span{color:#C4B5FD;}
.home-hero-sub{font-size:clamp(1rem,2vw,1.18rem);color:rgba(255,255,255,.92);margin-bottom:28px;max-width:620px;}
.home-hero-sub::after{content:"";display:block;width:48px;height:3px;border-radius:2px;background:#A78BFA;margin-top:18px;}
/* Barra de búsqueda única: campos con icono y divisor, botón al final. */
.home-search{display:flex;align-items:center;gap:0;background:#fff;
  border-radius:14px;padding:8px 8px 8px 6px;box-shadow:0 18px 50px rgba(20,6,45,.35);max-width:620px;}
.home-search-field{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:8px;padding:0 10px 0 12px;
  border-right:1px solid #E8E3F6;color:#6D28D9;}
.home-search-field i{font-size:1.25rem;flex-shrink:0;}
.home-search-select{width:100%;border:none;border-radius:8px;padding:10px 26px 10px 0;
  font-size:1rem;font-weight:600;color:#2b2540;background:transparent;appearance:none;min-height:44px;text-overflow:ellipsis;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%232b2540' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 4px center;cursor:pointer;}
.home-search-select:focus{outline:none;box-shadow:0 0 0 3px rgba(167,139,250,.35);}
.home-search-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-left:8px;
  border:none;background:#6D28D9;color:#fff;border-radius:10px;
  padding:12px 20px;font-weight:700;font-size:1rem;cursor:pointer;min-height:46px;white-space:nowrap;
  transition:transform .15s,box-shadow .15s,background .15s;}
.home-search-btn i{font-size:1.15rem;}
.home-search-btn:hover{background:#5b21b6;transform:translateY(-1px);box-shadow:0 10px 26px rgba(61,26,110,.4);}
.home-hero-hint{margin:14px 0 0;font-size:.9rem;color:rgba(255,255,255,.78);}

/* Cinta de logos de academias al pie del hero (partials/_home_logos_strip.html):
   absoluta sobre el degradado de la foto, sin fondo propio. */
.home-logos{position:absolute;left:0;right:0;bottom:0;z-index:1;overflow:hidden;padding:18px 0 22px;}
.home-logos-track{display:flex;width:max-content;animation:home-logos-scroll 40s linear infinite;}
.home-logos-set{display:flex;align-items:center;gap:7rem;padding-right:7rem;padding-bottom: 1.0rem;}
.home-logos-set a{display:flex;align-items:center;flex-shrink:0;}
/* Siluetas blancas (PNG con transparencia que genera front_pages/siluetas.py). El
   original solo se muestra si la silueta no se pudo generar (`sin-silueta`): ahí se
   invierte el gris y se mezcla con "screen" para que el fondo blanco desaparezca. */
.home-logos-set img{height:88px;width:auto;max-width:240px;object-fit:contain;opacity:.85;transition:opacity .2s;}
.home-logos-set img.sin-silueta{filter:grayscale(1) invert(1) brightness(1.15);mix-blend-mode:screen;}
.home-logos-set a:hover img,.home-logos-set a:focus-visible img{opacity:1;}
.home-logos:hover .home-logos-track{animation-play-state:paused;}
@keyframes home-logos-scroll{to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.home-logos-track{animation:none;}}
@media (max-width:767.98px){
  .home-logos{padding:12px 0 16px;}
  .home-logos-set{gap:6.5rem;padding-right:6.5rem;padding-bottom: 1.0rem;}
  .home-logos-set img{height:61px;max-width:140px;}
}

.home-section{padding:56px 0;}
.home-section-alt{background:#F5F3FF;}
.home-eyebrow{font-weight:700;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#6D28D9;}
.home-section-title{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;color:#1E1B2E;letter-spacing:-.3px;margin:6px 0 6px;}
.home-section-sub{color:#6b7280;max-width:600px;margin-bottom:6px;}

/* Sección [B]: disciplinas + Próximos eventos como franja abajo. La vitrina de
   disciplinas (.home-disc-*) vive en front_pages/css/home-disc.css, compartida
   con /clases/. */

/* Franja de eventos bajo las disciplinas: sin caja, separada por una línea, con el
   encabezado centrado. Las tarjetas (.hev-*) son la variante de la home
   (partials/_home_evento_card.html); el carrusel es el .pub-ev-swiper del grid. */
.home-eventos-strip{margin-top:40px;padding-top:32px;border-top:1px solid #ECE9F6;}
.home-eventos-head{margin-bottom:6px;}
.home-eventos-head .home-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.95rem;letter-spacing:.14em;margin:0;}
.home-eventos-head .home-eyebrow i{font-size:1.2rem;}
.home-eventos-head .home-section-sub{margin:4px 0 0;}
.hev-card{position:relative;display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid #ECE9F6;
  border-radius:18px;overflow:hidden;box-shadow:var(--bs-box-shadow);transition:transform .2s,box-shadow .2s;}
.hev-card:hover,.hev-card:focus-within{transform:translateY(-4px);box-shadow:var(--bs-box-shadow-lg);}
.hev-media{position:relative;}
.hev-media img{display:block;width:100%;aspect-ratio:5/2;object-fit:cover;}
/* Sello de fecha sobre la foto: día grande y mes abreviado. */
.hev-date{position:absolute;left:16px;top:16px;display:flex;flex-direction:column;align-items:center;
  background:rgba(124,92,191,.92);color:#fff;border-radius:12px;padding:9px 14px 8px;line-height:1;}
.hev-date strong{font-size:1.45rem;font-weight:800;}
.hev-date small{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-top:3px;}
.hev-body{display:flex;flex-direction:column;flex:1 1 auto;padding:16px 22px 20px;}
.hev-meta{display:flex;flex-wrap:wrap;gap:6px 24px;color:#5b5670;font-size:.92rem;
  padding-bottom:12px;border-bottom:1px solid #ECE9F6;margin-bottom:12px;}
.hev-meta span{display:inline-flex;align-items:center;gap:7px;}
.hev-meta i{color:#6D28D9;font-size:1.1rem;}
.hev-title{font-size:1.25rem;font-weight:700;line-height:1.3;color:#1E1B2E;margin:0 0 14px;}
.hev-org{display:flex;align-items:center;gap:10px;margin-top:auto;color:#6D28D9;font-weight:600;font-size:.92rem;}
.hev-org img,.hev-ini{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.hev-ini{display:inline-flex;align-items:center;justify-content:center;background:#E9DDFB;color:#6D28D9;font-weight:800;text-transform:uppercase;}

.home-city-wrap{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
.home-city-chip{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid #E8E3F6;
  border-radius:9999px;padding:10px 16px;text-decoration:none;color:#2b2540;font-weight:600;font-size:.95rem;
  transition:border-color .15s,box-shadow .15s,transform .15s;}
.home-city-chip:hover{border-color:#A78BFA;box-shadow:0 8px 20px rgba(109,40,217,.12);transform:translateY(-2px);color:#6D28D9;}
.home-city-chip i{color:#6D28D9;}

.home-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:8px;}
.home-stat{background:#fff;border:1px solid #E8E3F6;border-radius:16px;padding:24px 18px;text-align:center;}
.home-stat .n{font-size:clamp(1.6rem,3.5vw,2.3rem);font-weight:800;color:#3D1A6E;line-height:1;}
.home-stat .l{margin-top:6px;color:#6b7280;font-size:.92rem;}

.home-academia{background:linear-gradient(135deg,#3D1A6E,#6D28D9);border-radius:20px;color:#fff;
  padding:40px 38px;text-align:center;}
.home-academia h2{color:#fff;font-size:clamp(1.5rem,3vw,2rem);font-weight:800;margin-bottom:12px;}
.home-academia p{color:rgba(255,255,255,.92);max-width:640px;margin:0 auto 22px;font-size:1.04rem;line-height:1.6;}
.home-academia .acts{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;}
.home-academia .btn-light-cta{background:#fff;color:#6D28D9;border-radius:9999px;padding:13px 28px;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s;}
.home-academia .btn-light-cta:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.25);color:#3D1A6E;}
.home-academia .btn-ghost-cta{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55);border-radius:9999px;padding:13px 28px;font-weight:700;text-decoration:none;transition:border-color .15s,background .15s;}
.home-academia .btn-ghost-cta:hover{border-color:#fff;background:rgba(255,255,255,.1);color:#fff;}

@media (max-width:991.98px){
  .home-eventos-strip{margin-top:30px;padding-top:26px;}
}
@media (max-width:575.98px){
  .hev-media img{aspect-ratio:16/9;}
  .hev-body{padding:14px 16px 16px;}
}
@media (max-width:767.98px){
  /* En móvil va la foto de 768px (home-hero-m.webp, un tercio del peso): la de
     1168px se ve igual en una pantalla de 400px. */
  .home-hero{padding:calc(var(--home-nav-h) + 36px) 0 140px;min-height:0;background:#29133d url("../../img/home-hero-m.1355ce79f3fd.webp") 68% center/cover no-repeat;}
  .home-hero::before{background:linear-gradient(180deg,rgba(43,14,84,.86) 0%,rgba(43,14,84,.72) 100%);}
  .home-search{flex-direction:column;align-items:stretch;padding:8px;gap:2px;}
  .home-search-field{flex:1 1 auto;border-right:none;border-bottom:1px solid #E8E3F6;padding:2px 8px;}
  .home-search-field:last-of-type{border-bottom:none;}
  .home-search-btn{width:100%;margin:6px 0 0;}
  .home-stats{grid-template-columns:repeat(2,1fr);}
  .home-academia{padding:32px 22px;}
  .home-academia .acts{flex-direction:column;}
  .home-academia .btn-light-cta,.home-academia .btn-ghost-cta{width:100%;}
  /* Los dos botones de eventos, lado a lado y del mismo ancho. */
  .home-eventos-acts{width:100%;}
  .home-eventos-acts .btn{flex:1 1 0;}
}

/* ====== Héroe-vitrina + buscador (markup en partials/_home_hero_search.html) ====== */
.home-hero-grid{ display:flex; align-items:center; gap:48px; }
.home-hero-grid .home-hero-inner{ flex:1 1 0; max-width:640px; }
.home-hero-proof{ display:flex; align-items:center; gap:8px; margin:18px 0 0;
  font-size:.95rem; color:rgba(255,255,255,.9); }
.home-hero-proof i{ color:#C4B5FD; font-size:1.15rem; flex-shrink:0; }
.home-hero-proof strong{ color:#fff; font-weight:700; }
@media (max-width:900px){
  .home-hero-grid{ flex-direction:column; align-items:stretch; gap:28px; }
  .home-hero-grid .home-hero-inner{ max-width:760px; }
  .home-hero-proof{ justify-content:center; text-align:center; }
}

/* Navbar transparente sobre la foto mientras la página está arriba; al hacer scroll
   front-main.js (Sneat) le pone .navbar-active y vuelve el violeta sólido. Solo en la
   home: la regla cuelga de que exista .home-hero en la página. */
body:has(.home-hero) .layout-navbar.landing-navbar-dark{transition:background .25s;}
body:has(.home-hero) .layout-navbar.landing-navbar-dark:not(.navbar-active){background:transparent !important;}