:root {
  --btn: white;
  --text: #0f172a;
  --muted: #64748b;
  --accent: #6c8cff;
  --accent-2: #a78bfa;
  --ring: 0 0 0 4px rgba(108, 140, 255, .25);
}

.espacio-blanco {
    margin-top: 10%;
    margin-bottom: 10%;
}

/* color del fondo general de la página */
body {
  margin: 0;
  padding: 0
}

/* el bloque con el borde superior en diagonal */
.bloque-diagonal {
  background: black;
  /* color del bloque */
  color: #fff;
  padding: 6rem 0;
  /* espacio interno para que no se “corte” el contenido */
  /* Recorta el bloque con una forma poligonal (arriba izquierda baja unos px/vw) */
  clip-path: polygon(0 7vw, 100% 0, 100% 100%, 0 100%);
}

/*MENU*/
/* --- Estilo menu --- */
.menu-nav {
  --accent: #1bb3a8;
}

/* color de activo (verde-agua) */
.bg-black {
  background: #000 !important;
}

.menu-logo {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  letter-spacing: .12em;
  font-size: 28px;
  color: #fff !important;
  line-height: 1;
}

.menu-logo small {
  font-size: 11px;
  letter-spacing: .3em;
  opacity: .85;
}

/* Links */
.menu-nav .nav-link {
  color: #fff !important;
  opacity: .9;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 600;
  position: relative;
  padding: .25rem 0;
}

/* Subrayado fino animado */
.menu-nav .nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  height: 2px;
  background: transparent;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .25s ease, background-color .25s ease;
}

.menu-nav .nav-link:hover::after {
  background: #fff;
  transform: scaleX(1);
}

/* Activo en color acento */
.menu-nav .nav-link.is-active,
.menu-nav .nav-link.is-active:hover {
  color: var(--accent) !important;
  opacity: 1;
}

.menu-nav .nav-link.is-active::after {
  background: var(--accent);
  transform: scaleX(1);
}

/* Alineación de columnas a izquierda/derecha (desktop) */
@media (min-width: 992px) {
  .menu-nav .navbar-nav {
    gap: 1.5rem;
    /* antes 2rem o más */
  }

  .menu-nav .nav-link {
    font-size: .95rem;
    /* un pelín más pequeño */
    letter-spacing: .06em;
  }

  .menu-logo {
    font-size: 26px;
    /* baja 1–2px si hace falta */
  }
}

/*FIN MENU*/

/*BARRA*/
.barra {
  background-color: white;
  /* Color rosa fucsia */
  color: black;
  font-size: 16px;
  font-weight: 500;
  padding: 10px 0;
  overflow: hidden;
  position: relative;
  white-space: nowrap;
}

.texto-movimiento {
  display: inline-block;
  padding-left: 100%;
  /* Comienza fuera de la pantalla */
  animation: moverTexto 15s linear infinite;
}

@keyframes moverTexto {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-100%);
  }
}

/*FIN MENU*/

/*VIDEO REPRODUCCION*/
.video-fondo {
  position: relative;
  height: 100svh;
  overflow: hidden;
  background: #000;
}

.bgv {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity .8s ease;
  z-index: 0;
  object-fit: cover;
  object-position: 50% 50%;
  /* por defecto centrado */
  transform-origin: center;
  transform: translate(var(--tx, 0), var(--ty, 0)) scale(var(--zoom, 1));
  transition: opacity .8s ease, transform 1s ease;
}

.bgv.show {
  opacity: 1;
}

.overlay {
  position: relative;
  z-index: 1;
  height: 100%;
  display: grid;
  place-content: center;
  text-align: center;
  color: #fff;
  padding: 2rem;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .6);
}

/*FIN VIDEO REPRODUCCION*/


/*VIDEO FONDO*/
.video-fondo {
  position: relative;
  /* usa una unidad “segura” para móvil */
  height: 100svh;
  /* alternativas: 100dvh (moderno) o 100vh (clásico) */
  overflow: hidden;
}

/* el video ocupa y “cubre” todo el contenedor */
.video-fondo>video {
  position: absolute;
  inset: 0;
  /* top/right/bottom/left: 0 */
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* rellena sin deformar (recorta lo que sobre) */
  display: block;
}

/* contenido por encima del vídeo */
.overlay {
  position: relative;
  /* crea una nueva capa sobre el video */
  z-index: 1;
  height: 150%;
  align-items: center;
  align-content: center;

  place-items: center;
  /* centra vertical y horizontal */
  color: #fff;
  text-align: center;
  padding: 2rem;
}

/*FIN VIDEO FONDO*/


/*BAILARINES*/
.bailarines {
  position: relative;
  overflow: clip;
  /* o hidden */
  clip-path: inset(0 round 30px);
  /* recorte real con esquinas redondas */
}

.bailarines img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .2s ease-in;
}

.bailarines:hover img {
  transform: scale(1.2);
}


.espacio-entre-letras {
  margin-top: -10px;
}

.redes-sociales a {
  text-decoration: none;
  color: white;
}

/*FIN BAILARINES*/

/*GLASS*/
.glass {
  --bg: rgba(20, 20, 20, .38);
  /* fondo translúcido (oscuro) */
  --bdr: rgba(255, 255, 255, .28);
  /* borde suave */

  padding: clamp(1rem, 3vw, 2rem);
  border-radius: 16px;
  background: var(--bg);
  backdrop-filter: blur(10px) saturate(120%);
  -webkit-backdrop-filter: blur(10px) saturate(120%);
  border: 1px solid var(--bdr);
  box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
}

/* Fallback si el navegador no soporta backdrop-filter */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .glass {
    background: rgba(20, 20, 20, .70);
  }
}

/* Ajustes tipográficos dentro del glass */
.glass h2 {
  margin-bottom: .25em;
}

.glass h3 {
  margin: 0 0 .5em;
  font-weight: 600;
  opacity: .95;
}

.glass p {
  margin: 0 auto 1rem;
  max-width: 70ch;
  line-height: 1.6;
}

/* (Opcional) botones pill sobre glass */


/*FIN GLASS*/

/*IMAGEN FONDO*/

.imagen-fondo.parallax {
  position: relative;
  min-height: 920px;
  /* alto del hero */
  overflow: hidden;
  /* 🔽 parallax simple con una línea */
  background: #000 url('/img/grupos.jpg') center 40% / cover no-repeat fixed;
  filter: grayscale(100%);
  /* blanco y negro */
}

.text-imagen-fondo {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  color: #fff;
  text-align: center;
  z-index: 1;
}






/**/

/*MOVIMIENTO SERVICIOS*/
/* Cabecera fila */
.container-srv {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 .5rem;
  padding: 0 1rem;
}

.srv-h2 {
  margin: 0;
  font: 800 clamp(1.25rem, 2.2vw, 1.8rem)/1 system-ui, sans-serif;
}

/* Controles */
.srv-controls {
  display: flex;
  gap: .5rem;
}

.srv-btn {
  inline-size: 2.25rem;
  block-size: 2.25rem;
  border-radius: 999px;
  border: 0;
  cursor: pointer;
  background: #111;
  color: #fff;
  font-size: 1.2rem;
  display: grid;
  place-items: center;
}

.srv-btn:hover {
  filter: brightness(1.15);
}

/* Carrusel */
.servicios-wrap {
  position: relative;
}

.srv-scroller {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: clamp(240px, 28vw, 340px);
  gap: 1rem;
  overflow-x: auto;
  padding: 0 1rem 1rem;
  /* padding-bottom para que no tape contenido */
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  outline: none;
}

/* 🔒 Ocultar scrollbar en todos los navegadores */
.srv-scroller {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.srv-scroller::-webkit-scrollbar {
  display: none;
}

/* Fades laterales (sugerencia visual) */
.servicios-wrap::before,
.servicios-wrap::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 48px;
  z-index: 2;
  pointer-events: none;
}

.servicios-wrap::before {
  left: 0;
  background: linear-gradient(to right, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
}

.servicios-wrap::after {
  right: 0;
  background: linear-gradient(to left, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
}

/* Si tu fondo es oscuro, cambia 255,255,255 por 0,0,0 o el color de tu fondo. */

/* Tarjeta */
.srv-card {
  scroll-snap-align: start;
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(0, 0, 0, .12);
  display: flex;
  flex-direction: column;
  min-block-size: 100%;
}

/*.srv-img{ inline-size:100%; block-size: 180px; object-fit:cover; }*/
.srv-body {
  padding: .9rem 1rem 1rem;
}

.srv-title {
  font-size: 1.05rem;
  margin: 0 0 .25rem;
  font-weight: 700;
}

.srv-text {
  margin: 0 0 .5rem;
  color: #555;
}

.srv-link {
  margin-top: auto;
  display: inline-block;
  color: #111;
  font-weight: 700;
  text-decoration: none;
  border-bottom: 2px solid currentColor;
  padding-bottom: 2px;
}

.srv-link:hover {
  opacity: .8;
}

/* Accesibilidad: menos movimiento */
@media (prefers-reduced-motion: reduce) {
  .srv-scroller {
    scroll-behavior: auto;
  }
}

/*FIN MOVIMIENTO*/


/*EVENTOS*/

/* ===== HEAD ===== */
.events-wrap {
  position: relative;
}

.events-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 1rem .5rem;
}

.ev-title {
  margin: 0;
  font: 800 clamp(1.2rem, 2.6vw, 2rem)/1.1 system-ui, sans-serif;
}

/* ===== CONTROLES ===== */
.ev-controls {
  display: flex;
  gap: .5rem;
}

.ev-btn {
  inline-size: 2.4rem;
  block-size: 2.4rem;
  border-radius: 999px;
  border: 0;
  cursor: pointer;
  background: #111;
  color: #fff;
  font-size: 1.25rem;
  display: grid;
  place-items: center;
}

.ev-btn:hover {
  filter: brightness(1.15);
}

/* ===== SCROLLER (sin barra) ===== */
.ev-scroller {
  display: grid;
  grid-auto-flow: column;
  /* panel ancho grande tipo “poster” */
  grid-auto-columns: clamp(320px, 20vw, 1000px);
  gap: 1.25rem;
  overflow-x: auto;
  padding: 0 1rem 1rem;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  outline: none;
}

/* esconder scrollbar */
.ev-scroller {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.ev-scroller::-webkit-scrollbar {
  display: none;
}

/* fades laterales */
.events-wrap::before,
.events-wrap::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 48px;
  z-index: 2;
  pointer-events: none;
}

.events-wrap::before {
  left: 0;
  background: linear-gradient(to right, rgba(0, 0, 0, .9), rgba(0, 0, 0, 0));
}

.events-wrap::after {
  right: 0;
  background: linear-gradient(to left, rgba(0, 0, 0, .9), rgba(0, 0, 0, 0));
}

/* ===== CARD ===== */
.ev-card {
  position: relative;
  border-radius: .75rem;
  overflow: hidden;
  isolation: isolate;
  min-block-size: clamp(360px, 72vh, 780px);
  scroll-snap-align: start;
  background: #000;

  box-shadow: 0 10px 40px rgba(0, 0, 0, .35);
}

.ev-media {
  position: absolute;
  inset: 0;
  background-image: var(--img);
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
  filter: saturate(1.05) contrast(1.05);
  z-index: 0;
}

/* oscurecido sutil + viñeta */
.ev-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(100% 100% at 70% 75%, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .55) 65%, rgba(0, 0, 0, .85) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, .25) 0%, rgba(0, 0, 0, .65) 65%);
}

/* Fecha arriba izq */
.ev-date {
  position: absolute;
  left: clamp(12px, 2vw, 24px);
  top: clamp(12px, 2vw, 24px);
  z-index: 2;
  color: #eee;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .6);
  display: flex;
  gap: .5rem;
  align-items: baseline;
  font-weight: 900;
}

.ev-date span {
  font-size: clamp(1rem, 3.2vw, 2.2rem);
  letter-spacing: .04em;
}

.ev-date em {
  font-style: normal;
  opacity: .75;
  font-size: clamp(.9rem, 2.6vw, 1.6rem);
}

/* Info abajo izquierda */
.ev-info {
  position: absolute;
  inset: auto auto clamp(16px, 3vw, 28px) clamp(16px, 3vw, 28px);
  z-index: 2;
  color: #fff;
  max-width: min(80ch, 80%);
}

.ev-city {
  margin: 0 0 .25rem;
  letter-spacing: .04em;
  font-weight: 700;
  opacity: .85;
  font-size: .85rem;
}

.ev-name {
  margin: .1rem 0 .6rem;
  font-weight: 800;
  font-size: clamp(1.1rem, 3.1vw, 2rem);
  line-height: 1.15;
}

.ev-tags {
  display: flex;
  gap: .4rem;
  margin-bottom: .9rem;
}

.tag {
  display: inline-block;
  padding: .25rem .5rem;
  border-radius: .4rem;
  font-size: .8rem;
  font-weight: 700;
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .25);
}

.tag.warn {
  background: #d4a106;
  color: #111;
  border: 0;
}

/* Botones */
.ev-cta {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
}

.btn-ev {
  display: inline-block;
  padding: .9rem 1.1rem;
  border-radius: .55rem;
  font-weight: 800;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.btn-ev.primary {
  background: #fff;
  color: #111;
  box-shadow: 0 6px 22px rgba(255, 255, 255, .2);
}

.btn-ev.primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 30px rgba(255, 255, 255, .28);
}

.btn-ev.ghost {
  background: transparent;
  color: #fff;
  border: 2px solid rgba(255, 255, 255, .85);
}

.btn-ev.ghost:hover {
  background: rgba(255, 255, 255, .12);
  transform: translateY(-1px);
}

/* reducido movimiento */
@media (prefers-reduced-motion: reduce) {
  .ev-scroller {
    scroll-behavior: auto;
  }

  .ev-media {
    transform: none;
  }
}

/*FIN EVENTO*/



/*FORM*/

form {
  padding: 0 28px 28px;
  display: grid;
  gap: 18px;
}

/* Grid responsivo */
.grid-2 {
  display: grid;
  gap: 16px;
}

@media (min-width: 760px) {
  .grid-2 {
    grid-template-columns: 1fr 1fr;
  }
}

.field {
  display: grid;
  gap: 10px;
}

label {
  font-size: 14px;
  color: var(--muted);
}

.req {
  color: color-mix(in srgb, var(--accent) 65%, #fff);
  margin-left: 4px;
}

input,
select,
textarea {
  width: 100%;
  background: rgb(212, 209, 209);
  color: var(--text);
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 12px;
  padding: 14px 14px;
  outline: none;
  transition: border-color .2s, box-shadow .2s, transform .02s;
}

textarea {
  min-height: 110px;
  resize: vertical;
}

input::placeholder,
textarea::placeholder {
  color: #96a0b5a6;
}

input:focus,
select:focus,
textarea:focus {
  border-color: color-mix(in srgb, var(--accent) 60%, #fff 0%);
  box-shadow: var(--ring);
}

/* Radios/checkbox */
.options {
  display: grid;
  gap: 10px;
}

.radio-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.radio-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 999px;
  background: white;
  cursor: pointer;
  transition: border-color .2s, background .2s, transform .02s;
}

.radio-pill input {
  appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid var(--muted);
  display: grid;
  place-items: center;
}

.radio-pill input:checked {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 4px var(--accent);
}

.radio-pill:hover {
  border-color: color-mix(in srgb, var(--accent) 45%, #fff 0%);
}

/* Help text */
.help {
  color: var(--muted);
  font-size: 13px;
}

/* Footer */
.form-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: flex-end;
  margin-top: 8px;
}

.btn {
  border: 0;
  padding: 14px 18px;
  border-radius: 12px;
  font-weight: 700;
  letter-spacing: .2px;
  cursor: pointer;
  transition: transform .04s, box-shadow .2s, opacity .2s, background .2s;
}

.btn:active {
  transform: translateY(1px);
}

.btn-primary {
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  color: #fff;
  box-shadow: 0 6px 24px color-mix(in srgb, var(--accent) 35%, transparent);
}

.btn-ghost {
  background: transparent;
  color: var(--text);
  border: 1px solid rgba(255, 255, 255, .12);
}

/* Divider */
.divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .12), transparent);
  margin: 6px 0 2px;
}

/* Small “badge” */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  color: #d9def0;
  background: #0f1320;
  border: 1px solid rgba(255, 255, 255, .08);
}

/**/

/*BOTON*/




.boton {
  display: inline-block;
  text-decoration: none;
  background: var(--btn);
  color: black;
  padding: .9rem 1.25rem;
  border-radius: 999px;
  /* forma “pill” elegante */
  font: 600 16px/1.1 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto;
  letter-spacing: .2px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .18);
  transition: transform .06s ease, box-shadow .2s ease, filter .2s ease;
  cursor: pointer;
}


.boton2 {
  display: inline-block;
  text-decoration: none;
  background: var(--btn);

  padding: .9rem 1.25rem;
  border-radius: 999px;
  /* forma “pill” elegante */
  font: 600 16px/1.1 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto;
  letter-spacing: .2px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .18);
  transition: transform .06s ease, box-shadow .2s ease, filter .2s ease;
  cursor: pointer;
  background: transparent;
  color: #fff;
  border: 2px solid rgba(255, 255, 255, .85);
   box-shadow: 0 8px 20px rgba(0, 0, 0, .18)
}

.boton3 {
  display: inline-block;
  text-decoration: none;
  background: var(--btn);
  color: black;
  padding: .9rem 1.25rem;
  border-radius: 999px;
  /* forma “pill” elegante */
  font: 600 16px/1.1 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto;
  letter-spacing: .2px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .18);
  transition: transform .06s ease, box-shadow .2s ease, filter .2s ease;
  cursor: pointer;
  background: transparent;
  border: 2px solid black;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .18)
}

.boton+.boton:hover {
  background: rgba(255, 255, 255, .12);
}





/**/



/*LETRA*/
@font-face {
  font-family: "baile1";
  src:
    url("../fonts/baile1.woff") format("woff");
  font-weight: 400;
  /* puedes duplicar la regla para 700 si creas una bold */
  font-style: normal;
  /* crea otra para italic si la tienes */
  font-display: swap;
  /* evita parpadeo de texto invisible */
  /* (opcional) si sub-conjuntas:
    unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+2010-206F;
    */
}

.baile1 {
  font-family: baile1;
}

/*FIN LETRA*/





/*PRODUCTOS*/
/* 🩷 Base común para todos los productos */
.producto {
  position: relative;
  aspect-ratio: 1 / 1.1;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 130px;
  color: white;
  border-radius: 10px;
  overflow: hidden;
  /* evita que ::after se salga */
  transition: transform 0.3s ease;
}

.producto:hover {
  transform: scale(1.03);
}

/* 🖼️ Segunda imagen (hover) — animable con opacidad */
.producto::after {
  content: "";
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 0.6s ease;
  /* 🔥 suaviza el cambio */
}

/* ✅ Al pasar el ratón, la segunda imagen aparece */
.producto:hover::after {
  opacity: 1;
}

/* 🟣 Ejemplos individuales */
.p1 {
  background-image: url("/img/producto1.png");
}

.p1::after {
  background-image: url("/img/producto1.png");
}

.p2 {
  background-image: url("/img/producto1.png");
}

.p2::after {
  background-image: url("/img/producto1.png");
}

.p3 {
  background-image: url("/img/producto1.png");
}

.p3::after {
  background-image: url("/img/producto1.png");
}

.p4 {
  background-image: url("/img/producto1.png");
}

.p4::after {
  background-image: url("/img/producto1.png");
}



/*CLASE ONLINE*/

/*FIN CLASE ONLINE*/



/*NEWSLETTER*/
.newsletter {
  /* menos padding en móvil */
  padding: 3rem 0 4rem 0 !important;
  position: relative;
}

.formulario1 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  justify-content: center;
  max-width: 640px;
  /* limita el ancho en desktop */
  margin: 0 auto;
  padding: 0 1rem;
  /* respiración lateral en móvil */
}

.formulario1>* {
  text-align: center;
}

/* INPUT correo: mobile-first = ocupa todo el ancho disponible */
.formulario1 input.form-correo {
  width: 100%;
  max-width: 100%;
  padding: 0.75rem 1rem;
  border: 2px solid #ccc;
  border-radius: 8px;
  transition: box-shadow 0.3s ease, border-color 0.3s ease;
  box-sizing: border-box;
  /* evita que el padding aumente el ancho total */
  min-width: 0;
  /* previene overflow en flex */
}

/* Focus */
.formulario1 input.form-correo:focus {
  border-color: black;
  outline: none;
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.5);
}

/* Checkbox en su propia línea, centrado */
.checkbox-linea {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  flex: 1 1 100%;
  flex-wrap: wrap;
}

/* Botón: sin ancho fijo */
.formulario1 button,
.button-web {
  background: black;
  color: white;
  padding: 0.75rem 1.5rem;
  border-radius: 8px;
  cursor: pointer;
  border: 0;
  width: auto;
  /* clave: evita 500px fijos */
  max-width: 100%;
}

.checkbox-linea {
  display: flex;
  align-items: center;
  /* alinea checkbox y texto en la misma línea */
  justify-content: center;
  /* centra el conjunto en el formulario */
  gap: 0.6rem;
  /* espacio entre ambos */
  line-height: 1.2;
}

.checkbox-linea input[type="checkbox"] {
  width: 1.1rem;
  height: 1.1rem;
  accent-color: #000000;
  transform: translateY(-1px);
  /* 🔥 ajusta visualmente el alineado */
  cursor: pointer;
  margin-bottom: 25px;
}

.checkbox-linea span {
  font-size: 1rem;
  color: #000;
  line-height: 1.2;
}

/* ——— Layout en pantallas medianas/grandes ——— */
@media (min-width: 768px) {
  .newsletter {
    padding: 4.5rem 0 6rem 0 !important;
  }

  /* Input y botón en la misma línea */
  .formulario1 input.form-correo {
    flex: 1 1 420px;
    /* crece y ocupa */
    max-width: 520px;
  }

  .formulario1 button,
  .button-web {
    flex: 0 0 auto;
  }
}

/*FIN NEWSLETTER*/



/*REDES*/
.redes {
  background: linear-gradient(135deg, #000000 0%, #000000 100%);
  padding: 40px 0;
  text-align: center;
  font-family: 'Poppins', cursive;
  color: black;
}

.redes video {
  width: 100%;
  border-radius: 15px;
  box-shadow: 0 4px 15px rgba(151, 150, 151, 0.25);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.redes video:hover {
  transform: scale(1.05);
  box-shadow: 0 8px 25px rgba(109, 107, 108, 0.4);
}

.redes .text-center {
  font-weight: 700;
  font-size: 1.3rem;
  margin-bottom: 1rem;
}

/*FIN REDES*/


/*ESCUELA*/

/* Fondo sobrio + respiración */
.video-section{
  background:#0b0b0b;
  padding:clamp(24px,4vw,60px) 0;
}

/* Marco “gallery” elegante */
.video-frame{
  width:min(1100px,92vw);
  
  margin-inline:auto;
  background:#0f0f10;                      /* color del marco */
  border:1px solid rgba(255,255,255,.12);  /* borde fino */
  border-radius:20px;                      /* esquinas suaves */
  padding: clamp(10px,1.8vw,18px);         /* marco interior */
  box-shadow: 0 20px 60px rgba(0,0,0,.45); /* sombra premium */
}

/* Respetamos tu 95% inline; solo afinamos detalles */
.video-lazy{
  display:block;           /* quita huecos inline */
  border-radius:14px;      /* redondea el contenido dentro del marco */
  object-fit:cover;        /* por si cambias a height fijo en el futuro */
}

/*FIN ESCUELA*/

/*CURSO ONLINE Y VIDEO*/
:root{
  --accent:#e3138b;           /* cambia a tu color de marca */
  --radius:28px;
}

/* Fondo moderno */
.section-online{
  background:
  
    #0b0b0b;
  color:#eaeaea;
}

/* Card de vidrio con grid */
.online-card{
  display:grid;
  grid-template-columns: 1.1fr 1fr;
  gap: clamp(20px, 4vw, 48px);
  align-items:center;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius);
  padding: clamp(20px, 4vw, 48px);
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
  backdrop-filter: blur(8px);
}

/* Imagen con máscara orgánica */
.online-media{
  margin:0;
  position:relative;
}
.online-media img{
  width:100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  border-radius: calc(var(--radius) - 6px);
  box-shadow: 0 12px 40px rgba(0,0,0,.45);
  /* máscara blob suave (soporta la mayoría de navegadores modernos) */
  -webkit-mask-image: radial-gradient(120% 120% at 80% 10%, #000 60%, transparent 105%);
          mask-image: radial-gradient(120% 120% at 80% 10%, #000 60%, transparent 105%);
  transform: translateZ(0);        /* suprime borrosidad */
}

/* Texto y detalles */
.eyebrow{
  display:inline-block;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.8rem;
  color:#bbb;
  margin-bottom:.5rem;
}
.title{
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 800;
  line-height:1.1;
  margin:0 0 .6rem;
  position:relative;
}


/* Chips/etiquetas */
.chips{ display:flex; gap:.5rem; flex-wrap:wrap; margin:1rem 0 1.5rem;}
.chips span{
  padding:.4rem .7rem;
  border-radius:999px;
  background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  font-size:.9rem;
}

/* CTAs */
.cta{ display:flex; gap:.8rem; flex-wrap:wrap; }
.btn{ border-radius:999px; padding:.7rem 1.2rem; }
.btn-dark{ background: #111; border-color:#222; }
.btn-dark:hover{ background:#161616; transform: translateY(-1px); }
.btn-outline-light:hover{ color:#0b0b0b; background:#fff; }

/* Responsive */
@media (max-width: 991px){
  .online-card{ grid-template-columns: 1fr; }
  .online-media img{ aspect-ratio: 16/9; }
  .online-content{ text-align:center; }
  .title::after{ margin-left:auto; margin-right:auto; }
}

/* Respeto a accesibilidad */
@media (prefers-reduced-motion: reduce){
  .btn-dark:hover{ transform:none; }
}
/*FIN */

/*FOOTER*/
 :root{
    --fp-bg:#0a0b0f;
    --fp-card:#101321;
    --fp-txt:#e9ecf6;
    --fp-muted:#9aa3b5;
    --fp-accent:#7cf5ff;     /* cian neón */
    --fp-accent-2:#a78bfa;   /* violeta suave */
    --fp-radius:18px;
  }
  .footer-pop{
    color:var(--fp-txt);
    background:
      radial-gradient(1200px 500px at 90% -10%, rgba(124,245,255,.08), transparent),
      radial-gradient(1000px 600px at 0% 110%, rgba(167,139,250,.07), transparent),
      var(--fp-bg);
    padding-top: 28px;
  }
  .footer-pop__wave svg{
    width:100%; height:80px; display:block;
  }
  .footer-pop__wave path{
    stroke: var(--fp-accent);
    stroke-width: 3;
    stroke-linejoin: round;
    stroke-linecap: round;
    opacity:.8;
  }
  .footer-pop__inner{
    max-width:1100px; margin: 0 auto; padding: 0 20px 26px;
    display:grid; gap:32px;
    grid-template-columns: 1.2fr 1fr 1fr 1.2fr;
  }
  @media (max-width: 900px){
    .footer-pop__inner{ grid-template-columns: 1fr 1fr; }
  }
  @media (max-width: 560px){
    .footer-pop__inner{ grid-template-columns: 1fr; }
  }

  .footer-pop__brand p{ color:var(--fp-muted); margin:10px 0 14px; }
  .footer-pop__logo{
    font:800 clamp(20px, 3vw, 28px)/1.1 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    letter-spacing:.8px;
  }
  .footer-pop__logo span{ color: var(--fp-accent); }

  .footer-pop__social{ display:flex; gap:10px; margin-top:10px; }
  .fp-social{
    width:40px; height:40px; display:grid; place-items:center;
    border-radius:10px; background: var(--fp-card);
    border:1px solid rgba(255,255,255,.08);
    transition:transform .08s ease, box-shadow .2s ease, border-color .2s ease;
  }
  .fp-social:hover{
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--fp-accent) 60%, transparent);
    box-shadow: 0 8px 24px rgba(124,245,255,.15);
  }
  .fp-social svg{ width:20px; height:20px; fill:var(--fp-txt); opacity:.9; }

  .footer-pop__links h3,
  .footer-pop__contact h3,
  .footer-pop__news h3{
    font-size: clamp(16px, 2.2vw, 18px);
    margin: 6px 0 10px;
  }
  .footer-pop__links ul,
  .footer-pop__contact ul{ list-style:none; margin:0; padding:0; }
  .footer-pop__links li + li,
  .footer-pop__contact li + li{ margin-top:8px; }
  .footer-pop__links a{ color:var(--fp-txt); text-decoration:none; opacity:.9; }
  .footer-pop__links a:hover{ color:var(--fp-accent); }

  .footer-pop__contact li{ color:var(--fp-muted); }
  .footer-pop__contact a{ color:var(--fp-txt); text-decoration:none; }
  .footer-pop__contact a:hover{ color:var(--fp-accent); }

  .footer-pop__news p{ color:var(--fp-muted); margin:0 0 10px; }
  .fp-input{ display:flex; gap:8px; }
  .fp-input input{
    flex:1; padding:12px 14px; border-radius:12px; border:1px solid rgba(255,255,255,.1);
    background:#0f1324; color:var(--fp-txt); outline:none;
  }
  .fp-input input:focus{ border-color: color-mix(in srgb, var(--fp-accent) 60%, transparent);
    box-shadow: 0 0 0 4px rgba(124,245,255,.18);}
  .fp-input button{
    border:0; padding:12px 16px; border-radius:12px; font-weight:700; cursor:pointer;
    background: linear-gradient(135deg, var(--fp-accent), var(--fp-accent-2));
    color:#0a0b0f; transition: transform .05s, box-shadow .2s;
    box-shadow: 0 8px 20px rgba(124,245,255,.15);
  }
  .fp-input button:active{ transform: translateY(1px); }
  .fp-legal{ display:block; margin-top:8px; color:var(--fp-muted); font-size:12px; }
  .fp-legal a{ color:var(--fp-accent); text-decoration:none; }

  .footer-pop__bottom{
    border-top:1px solid rgba(255,255,255,.06);
    max-width:1100px; margin: 0 auto; padding: 14px 20px 26px;
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    color:var(--fp-muted);
  }
  @media (max-width: 560px){
    .footer-pop__bottom{ flex-direction: column; align-items:flex-start; }
  }
  .footer-pop__badges{ display:flex; flex-wrap:wrap; gap:8px; }
  .footer-pop__badges span{
    font-size:12px; color:#cfd6ea; padding:6px 10px; border-radius:999px;
    background:#0f1324; border:1px solid rgba(255,255,255,.08);
  }

  /*FIN FOOTER*/

  /*ESCONDER DERECHA*/
.esconder-derecha{  position: relative; 
  overflow-x: clip;}