/* ================== VARIABLES CSS Y CONFIGURACIÃ“N GLOBAL ================== */

/* DefiniciÃ³n de variables CSS (custom properties) reutilizables en todo el sitio */
:root {
  /* ===== DIMENSIONES ===== */
  --nav-h: 52px;                 /* Altura fija de la barra de navegaciÃ³n superior (.top-nav) */
  
  /* ===== COLORES BASE ===== */
  --bg: #ffffff;                 /* Color de fondo principal del sitio (body background) */
  --text: #111111;               /* Color de texto principal (usado en pÃ¡rrafos, tÃ­tulos) */
  --text-dim: rgba(17,17,17,.72);/* Color de texto secundario/atenuado (subtÃ­tulos, descripciones) */
  --border: rgba(17,17,17,.10);  /* Color para bordes suaves (tarjetas, separadores) */
  
  /* ===== FONDOS DE PANELES ===== */
  --panel: #faebeb;              /* Fondo blanco para paneles principales */
  --panel-2: #fafafa;            /* Fondo gris muy claro para paneles secundarios */
  --panel-3: #ffffff;            /* Fondo azul claro especÃ­fico para secciÃ³n "Aprendizaje musical" */
  
  /* ===== FONDOS DE BANDAS/SECCIONES ===== */
  --band-white: #ffffff;         /* Fondo blanco para la banda de "Canales" */
  --band-ivory: #f7f3eb;         /* Fondo marfil/crema para la banda de "Servicios" */
  
  /* ===== COLORES DE MARCA ===== */
  --brand-1: #E74C3C;            /* Color primario de marca (rojo) - usado en gradientes CTA */
  --brand-2: #f39c12;            /* Color secundario de marca (Ã¡mbar) - usado en gradientes CTA */
  --ok-1: #27ae60;               /* Verde para estados positivos (badges "Disponible") */
  --ok-2: #2ecc71;               /* Verde alternativo para estados positivos */
  --accent: #1f2a44;             /* Azul profesional para elementos de acento */
  
  /* ===== COLORES DE NAVEGACIÃ“N ===== */
  --nav-purple: rgba(122, 60, 255, .50); /* Fondo pÃºrpura semitransparente de la barra de navegaciÃ³n */
  --nav-line: rgba(255,255,255,.55);     /* Color de la lÃ­nea decorativa bajo la navegaciÃ³n */
  
  /* ===== EFECTOS VISUALES ===== */
  --shadow: 0 10px 30px rgba(0,0,0,.10); /* Sombra estÃ¡ndar para elementos elevados (hover cards) */
  
  /* ===== GRADIENTES REUTILIZABLES ===== */
  --accent-grad: linear-gradient(135deg, #a3834f 0%, #715831 50%, #eebe7b 100%); /* Gradiente dorado para tÃ­tulo principal */
}

/* Reset CSS bÃ¡sico - elimina estilos por defecto del navegador */
* {
  box-sizing: border-box;        /* Incluye padding y border en el cÃ¡lculo del ancho total del elemento */
  margin: 0;                     /* Elimina mÃ¡rgenes por defecto de todos los elementos */
  padding: 0;                    /* Elimina relleno interno por defecto de todos los elementos */
}

/* ================== CONFIGURACIÃ“N BASE DEL DOCUMENTO ================== */

/* ConfiguraciÃ³n para que html y body ocupen toda la altura de la ventana */
html, body {
  height: 100%;                  /* Altura completa de la ventana del navegador */
}

/* ConfiguraciÃ³n tipogrÃ¡fica y visual base para todo el documento */
body {
  font-family: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, sans-serif; /* Pila de fuentes: Poppins principal, fallbacks del sistema */
  color: var(--text);            /* Aplica color de texto principal definido en variables CSS */
  background: var(--bg);         /* Aplica color de fondo principal (blanco) */
  line-height: 1.55;             /* Interlineado optimizado para legibilidad */
}

/* Contenedor centrado responsive usado en todas las secciones */
.container {
  max-width: 1200px;             /* Ancho mÃ¡ximo para evitar lÃ­neas de texto muy largas en pantallas grandes */
  margin: 0 auto;                /* Centra horizontalmente el contenedor en la pÃ¡gina */
  padding: 0 16px;               /* Espacio interno lateral para que el contenido no toque los bordes */
}

/* ================== ACCESIBILIDAD Y ELEMENTOS ESPECIALES ================== */

/* Enlace "Saltar al contenido" para usuarios que navegan con teclado */
.skip-link {
  position: absolute;            /* Posicionamiento absoluto respecto al viewport */
  left: -9999px;                 /* Oculta el enlace fuera de la pantalla inicialmente */
  top: 0;                        /* Posicionado en la parte superior */
  background: #000;              /* Fondo negro para mÃ¡ximo contraste visual */
  color: #fff;                   /* Texto blanco para contrastar con fondo negro */
  padding: .6rem .9rem;          /* Relleno interno que crea Ã¡rea clicable cÃ³moda */
  z-index: 1100;                 /* Ãndice Z muy alto para aparecer por encima de todo */
  border-radius: 8px;            /* Esquinas redondeadas suaves */
}

/* Estado visible del enlace cuando recibe foco del teclado (Tab) */
.skip-link:focus {
  left: 12px;                    /* Mueve el enlace a posiciÃ³n visible en pantalla */
  top: 12px;                     /* SeparaciÃ³n del borde superior de la ventana */
  outline: 2px solid #fff;       /* Borde de foco blanco visible para accesibilidad */
}

/* Clase para contenido accesible solo a lectores de pantalla (screen readers only) */
.sr-only {
  position: absolute;            /* Posicionamiento absoluto */
  width: 1px;                    /* Ancho mÃ­nimo (tÃ©cnicamente visible pero imperceptible) */
  height: 1px;                   /* Alto mÃ­nimo */
  padding: 0;                    /* Sin relleno interno */
  margin: -1px;                  /* Margen negativo para ocultar completamente */
  overflow: hidden;              /* Oculta cualquier contenido que pueda desbordarse */
  clip: rect(0,0,0,0);           /* Recorta el elemento para hacerlo visualmente invisible */
  white-space: nowrap;           /* Evita saltos de lÃ­nea que podrÃ­an afectar el layout */
  border: 0;                     /* Sin borde */
}

/* Campo trampa para formularios (honeypot) - detecta bots de spam */
.honeypot {
  position: absolute;            /* Posicionamiento absoluto */
  left: -9999px;                 /* Oculta el campo fuera de la pantalla */
  opacity: 0;                    /* Completamente transparente */
}

/* ================== NAVEGACIÃ“N PRINCIPAL FIJA ================== */

/* Contenedor principal de la barra de navegaciÃ³n superior */
.top-nav {
  position: fixed;               /* PosiciÃ³n fija para permanecer visible durante el scroll */
  top: 0;                        /* Anclada al borde superior de la ventana */
  left: 0;                       /* Anclada al borde izquierdo */
  right: 0;                      /* Anclada al borde derecho (ocupa ancho completo) */
  z-index: 1000;                 /* Ãndice Z alto para aparecer por encima del contenido */
  background: var(--nav-purple); /* Fondo pÃºrpura semitransparente definido en variables */
  border-bottom: 1px solid transparent; /* Borde inferior transparente (base para otros estados) */
}

/* Pseudoelemento que crea la lÃ­nea decorativa bajo la barra de navegaciÃ³n */
.top-nav::after {
  content: "";                   /* Contenido vacÃ­o requerido para que el pseudoelemento sea visible */
  position: absolute;            /* Posicionamiento absoluto respecto al contenedor .top-nav */
  left: 0;                       /* Alineado al borde izquierdo del contenedor */
  right: 0;                      /* Alineado al borde derecho (ancho completo) */
  bottom: 0;                     /* Posicionado en la parte inferior del contenedor */
  height: 1px;                   /* Altura de la lÃ­nea decorativa */
  background: var(--nav-line);   /* Color blanco semitransparente definido en variables */
}

/* Contenedor flexbox que organiza elementos dentro de la barra de navegaciÃ³n */
.nav-container {
  height: var(--nav-h);          /* Altura fija definida en variables (52px) */
  display: flex;                 /* Layout flexbox para alinear elementos horizontalmente */
  align-items: center;           /* Centra verticalmente todos los elementos hijo */
  justify-content: space-between;/* Logo a la izquierda, menÃº al centro, extras a la derecha */
  gap: 12px;                     /* Espacio mÃ­nimo entre elementos flexbox */
}

/* ================== BRANDING (LOGO Y MARCA) ================== */

/* Contenedor del logo y elementos de marca */
.brand {
  display: flex;                 /* Layout flexbox para alinear logo y posible texto */
  align-items: center;           /* Centra verticalmente logo y texto */
  gap: .5rem;                    /* Espacio entre logo y cualquier texto adicional */
}

/* Estilo aplicado a la imagen del logo */
.brand-logo {
  width: 50px;                   /* Ancho fijo del logo */
  height: 50px;                  /* Alto fijo del logo (proporciÃ³n cuadrada 1:1) */
  border-radius: 10px;           /* Esquinas redondeadas del logo */
  border: 0px solid rgba(255,255,255,.25); /* Sin borde actualmente (0px) pero preparado para variaciones */
}

/* ================== MENÃš HORIZONTAL PRINCIPAL ================== */

/* Lista que contiene todos los elementos del menÃº de navegaciÃ³n */
.nav-menu {
  list-style: none;              /* Elimina las viÃ±etas por defecto de la lista */
  display: flex;                 /* Layout flexbox para disposiciÃ³n horizontal */
  align-items: center;           /* Centra verticalmente todos los elementos del menÃº */
  gap: 14px;                     /* Espacio entre cada elemento del menÃº */
  margin: 0;                     /* Sin margen externo */
  padding: 0;                    /* Sin relleno interno */
  flex-wrap: nowrap;             /* Evita que los elementos se ajusten en mÃºltiples lÃ­neas */
  white-space: nowrap;           /* Evita que el texto de los elementos se parta automÃ¡ticamente */
}

/* Contenedor individual de cada elemento del menÃº (li) */
.nav-item {
  position: relative;            /* Posicionamiento relativo para servir de referencia a dropdowns posicionados absolutamente */
}

/* ================== ENLACES DE NAVEGACIÃ“N ================== */

/* Estilo base para todos los enlaces del menÃº principal */
.nav-link {
  display: inline-flex;          /* Layout flexbox en lÃ­nea para alinear icono + texto */
  align-items: center;           /* Centra verticalmente el icono y el texto */
  gap: 8px;                      /* Espacio entre el icono y el texto */
  text-decoration: none;         /* Elimina el subrayado por defecto de los enlaces */
  font-weight: 700;              /* Peso de fuente en negrita para jerarquÃ­a visual */
  color: #ffffff;                   /* Texto blanco para contrastar con el fondo pÃºrpura */
  padding: 8px 10px;             /* Relleno interno que crea Ã¡rea clicable cÃ³moda */
  border-radius: 10px;           /* Esquinas redondeadas del Ã¡rea clicable */
  opacity: .98;                  /* Ligera transparencia para efecto visual sutil */
}

/* Asegura que el texto dentro de los enlaces no se parta en mÃºltiples lÃ­neas */
.nav-link span {
  white-space: nowrap;           /* Evita que textos como "QuiÃ©nes somos" se partan */
}

/* Estado hover (al pasar el ratÃ³n) para los enlaces del menÃº */
.nav-link:hover {
  background: rgba(255,255,255,.10); /* Fondo blanco semitransparente para feedback visual */
}

/* Estilo especial para el enlace Call-to-Action "Empieza gratis" */
.nav-link.cta {
  color: #111;                   /* Texto oscuro para contrastar con el fondo colorido */
  background: linear-gradient(45deg, var(--brand-1), var(--brand-2)); /* Gradiente usando colores de marca */
  border-radius: 999px;          /* Forma completamente redondeada (pÃ­ldora) */
  padding: .55rem .9rem;         /* Relleno mÃ¡s generoso para destacar visualmente */
}

/* ================== ESTADO ACTIVO DE NAVEGACIÃ“N ================== */

/* Estilo para el enlace que corresponde a la pÃ¡gina actual */
.nav-link.is-active {
  box-shadow: inset 0 -2px 0 rgba(255, 255, 255, 0.46); /* Subrayado interno blanco para indicar pÃ¡gina activa */
  background: rgba(255, 255, 255, 0.303); /* Fondo ligeramente resaltado */
  border-radius: 10px;           /* Mantiene las esquinas redondeadas consistentes */
}

/* VariaciÃ³n del estado activo cuando la barra no estÃ¡ sobre el hero */
.top-nav:not(.over-hero) .nav-link.is-active {
  box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0); /* Subrayado oscuro para fondos claros */
  background: var();    /* Fondo gris claro definido en variables */

}

/* ================== MENÃšS DESPLEGABLES (DROPDOWNS) ================== */

/* Contenedor del menÃº desplegable que aparece bajo elementos como "Servicios" y "Canales" */
.dropdown {
  position: absolute;            /* Posicionamiento absoluto respecto al .nav-item padre */
  top: calc(100% + 6px);         /* Posicionado justo debajo del elemento padre con espacio de 6px */
  left: 0;                       /* Alineado al borde izquierdo del elemento padre */
  min-width: 260px;              /* Ancho mÃ­nimo para asegurar legibilidad del contenido */
  border-radius: 12px;           /* Esquinas redondeadas para consistencia visual */
  padding: 8px;                  /* Relleno interno del contenedor */
  display: none;                 /* Oculto por defecto (se muestra con hover/focus) */
  z-index: 999;                  /* Ãndice Z alto para aparecer por encima del contenido */
  background: rgba(0,0,0,.92);   /* Fondo oscuro semitransparente */
  border: 1px solid rgba(255,255,255,.18); /* Borde blanco sutil para definiciÃ³n */
  box-shadow: 0 10px 30px rgba(0,0,0,.18); /* Sombra para efecto de elevaciÃ³n */
}

/* Muestra el dropdown cuando se hace hover sobre el elemento del menÃº padre */
.nav-item:hover .dropdown {
  display: block;                /* Cambia de oculto a visible */
}

/* Estilo para los enlaces dentro del menÃº desplegable */
.dropdown a {
  display: flex;                 /* Layout flexbox para alinear icono + texto */
  align-items: center;           /* Centra verticalmente el contenido */
  gap: 10px;                     /* Espacio entre icono y texto */
  padding: 8px 10px;             /* Relleno interno para Ã¡rea clicable cÃ³moda */
  text-decoration: none;         /* Sin subrayado */
  border-radius: 8px;            /* Esquinas redondeadas mÃ¡s pequeÃ±as que el contenedor */
  color: #fff;                   /* Texto blanco para contrastar con fondo oscuro */
}

/* Estado hover para los enlaces dentro del dropdown */
.dropdown a:hover {
  background: rgba(255,255,255,.08); /* Fondo blanco muy sutil para feedback visual */
}

/* Estilo para enlaces deshabilitados en el dropdown */
.dropdown a.is-disabled {
  opacity: .55;                  /* Reduce la opacidad para indicar estado deshabilitado */
  pointer-events: none;          /* Desactiva todos los eventos del ratÃ³n */
  cursor: default;               /* Muestra cursor normal en lugar de puntero */
}

/* Badge "PrÃ³ximamente" que aparece junto a elementos deshabilitados */
.badge.soon {
  display: inline-block;         /* Elemento en lÃ­nea que permite control de dimensiones */
  margin-left: .4rem;            /* SeparaciÃ³n del texto principal del enlace */
  font-size: .72rem;             /* TamaÃ±o de fuente pequeÃ±o para badge */
  line-height: 1;                /* Altura de lÃ­nea compacta */
  padding: .2rem .4rem;          /* Relleno mÃ­nimo para forma de pÃ­ldora */
  border-radius: 999px;          /* Forma completamente redondeada */
  background: var(--brand-2);    /* Fondo Ã¡mbar de la marca */
  color: #111;                   /* Texto oscuro para contraste con fondo Ã¡mbar */
  font-weight: 800;              /* Peso extra fuerte para mÃ¡xima visibilidad */
}

/* ================== NAVEGACIÃ“N MÃ“VIL ================== */

/* BotÃ³n hamburguesa para abrir/cerrar el menÃº en dispositivos mÃ³viles */
.mobile-menu-btn {
  display: none;                 /* Oculto por defecto en desktop */
  background: transparent;       /* Fondo transparente */
  border: 0;                     /* Sin borde */
  color: #fff;                   /* Icono blanco */
  font-size: 1.35rem;            /* TamaÃ±o del icono hamburguesa */
}

/* Media query para dispositivos mÃ³viles y tablets */
@media (max-width: 900px) {
  /* Muestra el botÃ³n hamburguesa en pantallas pequeÃ±as */
  .mobile-menu-btn {
    display: inline-flex;        /* Cambia a visible con layout flexbox */
    align-items: center;         /* Centra el icono verticalmente */
    justify-content: center;     /* Centra el icono horizontalmente */
    width: 42px;                 /* Ancho fijo para Ã¡rea clicable cÃ³moda */
    height: 42px;                /* Alto fijo cuadrado */
  }

  /* Convierte el menÃº horizontal en panel desplegable vertical en mÃ³vil */
  .nav-menu {
    display: none;               /* Oculto por defecto en mÃ³vil */
    flex-direction: column;      /* Cambia de horizontal a vertical */
    align-items: stretch;        /* Los elementos ocupan ancho completo */
    gap: 8px;                    /* Espacio menor entre elementos en mÃ³vil */
    position: fixed;             /* PosiciÃ³n fija para panel desplegable */
    top: var(--nav-h);           /* Justo debajo de la barra de navegaciÃ³n */
    left: 0;                     /* Borde izquierdo */
    right: 0;                    /* Borde derecho (ancho completo) */
    background: var(--nav-purple); /* Mismo fondo pÃºrpura que la barra */
    border-bottom: 1px solid var(--nav-line); /* LÃ­nea inferior del panel */
    padding: 12px 16px 16px;     /* Relleno interno del panel mÃ³vil */
    z-index: 999;                /* Ãndice Z alto para aparecer sobre contenido */
    white-space: normal;         /* Permite partir texto en mÃ³vil para legibilidad */
  }

  /* Muestra el menÃº cuando la barra tiene clase 'open' (controlado por JavaScript) */
  .top-nav.open .nav-menu {
    display: flex;               /* Hace visible el panel mÃ³vil */
  }

  /* Ajusta los dropdowns para mÃ³vil */
  .dropdown {
    position: static;            /* Cambia de absoluto a estÃ¡tico */
    display: none;               /* Oculto por defecto */
    border: 0;                   /* Sin borde en mÃ³vil */
    background: transparent;     /* Fondo transparente */
    padding: 4px 6px;            /* Relleno reducido */
    box-shadow: none;            /* Sin sombra en mÃ³vil */
  }

  /* Muestra dropdown en mÃ³vil cuando el nav-item tiene clase 'open' */
  .nav-item.open .dropdown {
    display: block;              /* Hace visible el dropdown en mÃ³vil */
  }
}

/* ================== REDES SOCIALES EN LA NAVEGACIÃ“N ================== */

/* Contenedor de iconos de redes sociales en la barra de navegaciÃ³n */
.nav-social {
  display: flex;                 /* Layout flexbox horizontal */
  align-items: center;           /* Centra verticalmente los iconos */
  gap: 10px;                     /* SeparaciÃ³n entre iconos */
  margin-left: 12px;             /* Espacio respecto al Ãºltimo elemento del menÃº */
  white-space: nowrap;           /* Evita saltos de lÃ­nea inesperados */
}

/* Estilo individual de cada icono de red social */
.nav-social a {
  width: 36px;                   /* Ancho fijo del botÃ³n circular */
  height: 36px;                  /* Alto fijo del botÃ³n circular */
  display: inline-flex;          /* Layout flexbox para centrar el icono */
  align-items: center;           /* Centra verticalmente el icono */
  justify-content: center;       /* Centra horizontalmente el icono */
  border-radius: 50%;            /* Forma circular perfecta */
  border: 1px solid rgba(255,255,255,.35); /* Borde blanco sutil */
  color: #fff;                   /* Iconos blancos */
  text-decoration: none;         /* Sin subrayado */
  transition: transform .15s ease, background .15s ease, border-color .15s ease; /* Transiciones suaves */
  background: transparent;       /* Fondo transparente inicialmente */
}

/* Estado hover para los iconos de redes sociales */
.nav-social a:hover {
  background: rgba(255,255,255,.12); /* Fondo blanco sutil al hacer hover */
  border-color: rgba(255,255,255,.6); /* Borde mÃ¡s visible */
  transform: translateY(-1px);   /* Micro elevaciÃ³n para feedback tÃ¡ctil */
}

/* TamaÃ±o del icono Font Awesome dentro del botÃ³n */
.nav-social i {
  font-size: 1rem;               /* TamaÃ±o del icono */
  line-height: 1;                /* Altura de lÃ­nea compacta */
}

/* Oculta las redes sociales en mÃ³vil para evitar saturaciÃ³n */
@media (max-width: 900px) {
  .nav-social {
    display: none;               /* Oculta completamente en dispositivos mÃ³viles */
  }
}

/* ================== HERO BANNER PRINCIPAL ================== */

/* Contenedor principal del banner hero con imagen de fondo */
.hero-banner {
  margin-top: var();      /* Compensa la altura de la barra fija (52px) */
  position: relative;            /* Posicionamiento relativo para overlay absoluto */
  width: 100%;                   /* Ancho completo */
  min-height: 360px;             /* Altura mÃ­nima aumentada para dar espacio al H1 grande */
  background-image: url("/assets/images/banner-luenamusic.jpg"); /* Imagen de fondo */
  background-size: cover;        /* La imagen cubre toda el Ã¡rea sin distorsiÃ³n */
  background-position: center;   /* Centra la imagen */
  border-bottom: 1px solid var(--border); /* LÃ­nea inferior sutil */
}

/* Overlay oscuro sobre la imagen de fondo para mejorar legibilidad del texto */
.hero-overlay {
  position: absolute;            /* Posicionamiento absoluto sobre la imagen */
  inset: 0;                      /* Cubre toda el Ã¡rea del hero (top:0, right:0, bottom:0, left:0) */
  background: rgba(0,0,0,.40);   /* Negro semitransparente (40% opacidad) */
}

/* Contenedor del contenido del hero */
.hero-content {
  position: relative;            /* Por encima del overlay */
  display: flex;                 /* Layout flexbox para centrar contenido */
  align-items: center;           /* Centra verticalmente */
  justify-content: center;       /* Centra horizontalmente */
  min-height: 360px;             /* Altura mÃ­nima coincidente con el contenedor */
  text-align: center;            /* AlineaciÃ³n centrada del texto */
}

/* Caja contenedora del tÃ­tulo principal con fondo translÃºcido */
.hero-title-box {
  display: inline-block;         /* Elemento en lÃ­nea que se ajusta al contenido */
  background: rgba(0,0,0,.40);   /* Fondo negro semitransparente */
  border: 1px solid rgba(255,255,255,.15); /* Borde blanco muy sutil */
  padding: 14px 18px;            /* Relleno interno para respiraciÃ³n */
  border-radius: 14px;           /* Esquinas redondeadas */
  backdrop-filter: saturate(120%) blur(1.5px); /* Filtro para mejorar legibilidad */
}

/* Contenedor del tÃ­tulo principal con layout grid */
.main-title {
  display: grid;                 /* Layout grid para apilar lÃ­neas del tÃ­tulo */
  gap: .25rem;                   /* Espacio mÃ­nimo entre lÃ­neas */
  margin: 0;                     /* Sin margen externo */
  line-height: 1;                /* Altura de lÃ­nea compacta */
}

/* ================== ESTILO DEL TÃTULO PRINCIPAL ================== */

/* LÃ­nea superior del H1 "Luena Music" con gradiente animado */
.h1-top {
  /* TamaÃ±o responsivo: mÃ¡s grande en desktop, se reduce en mÃ³vil */
  font-size: clamp(2.6rem, 8.5vw, 5.6rem); /* MÃ­nimo 2.6rem, mÃ¡ximo 5.6rem, escalable */
  line-height: .92;              /* Altura de lÃ­nea compacta para evitar saltos visuales */
  white-space: nowrap;           /* Evita que "Luena Music" se parta en dos lÃ­neas */
  
  /* ConfiguraciÃ³n del gradiente de texto */
  color: #715831;                /* Color de fallback para navegadores muy antiguos */
  background-image: var(--accent-grad); /* Aplica el gradiente dorado definido en variables */
  background-size: 200% 200%;    /* TamaÃ±o del gradiente ampliado para animaciÃ³n */
  background-repeat: no-repeat;   /* Sin repeticiÃ³n del gradiente */
  -webkit-background-clip: text;  /* Recorta el fondo con la forma del texto (WebKit) */
  background-clip: text;          /* Recorte estÃ¡ndar */
  -webkit-text-fill-color: transparent; /* Hace transparente el relleno para mostrar gradiente */
  color: transparent;             /* Texto transparente como fallback */
  
  /* AnimaciÃ³n del gradiente */
  animation: hueSlide 6s ease-in-out infinite; /* AnimaciÃ³n continua de 6 segundos */
}

/* LÃ­nea inferior del H1 (claim/descripciÃ³n) */
.h1-strap {
  font-weight: 700;              /* Peso en negrita */
  font-size: clamp(1rem, 2.4vw, 1.4rem); /* TamaÃ±o responsivo mÃ¡s pequeÃ±o que la lÃ­nea superior */
  color: #f4f6f8;                /* Color claro para contrastar con fondo oscuro */
}

/* AnimaciÃ³n del gradiente en el tÃ­tulo */
@keyframes hueSlide {
  0%, 100% {
    background-position: 0% 50%; /* PosiciÃ³n inicial y final */
  }
  50% {
    background-position: 100% 50%; /* PosiciÃ³n intermedia (desplazamiento) */
  }
}

/* Permite partir el texto en pantallas muy pequeÃ±as si es necesario */
@media (max-width: 360px) {
  .h1-top {
    white-space: normal;         /* Permite salto de lÃ­nea en pantallas muy pequeÃ±as */
  }
}

/* ================== BANDAS DE SECCIÃ“N PRINCIPAL ================== */

/* Estilo base para todas las bandas/secciones del sitio */
.band {
  position: relative;            /* Posicionamiento relativo para pseudoelementos */
  padding: 28px 0;               /* Relleno vertical para respiraciÃ³n */
  border-top: 1px solid var(--border); /* LÃ­nea superior sutil */
  border-bottom: 1px solid var(--border); /* LÃ­nea inferior sutil */
}

/* Pseudoelemento que crea efecto de profundidad en la parte superior */
.band::before {
  content: '';                   /* Contenido vacÃ­o requerido */
  position: absolute;            /* Posicionamiento absoluto respecto a .band */
  top: 0;                        /* En la parte superior */
  left: 0;                       /* Borde izquierdo */
  right: 0;                      /* Borde derecho (ancho completo) */
  height: 12px;                  /* Altura del efecto */
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.04); /* Sombra interior sutil */
}

/* Banda con fondo blanco (usada para "Canales") */
.band--white {
  background: var(--band-white); /* Fondo blanco definido en variables */
}

/* Pseudoelemento especÃ­fico para bandas blancas */
.band--white::before {
  background: #ffffff;           /* Fondo blanco */
  border-bottom: 1px solid #e9e9e9; /* LÃ­nea inferior gris muy clara */
}

/* Banda con fondo marfil (usada para "Servicios") */
.band--ivory {
  background: var(--band-ivory); /* Fondo marfil definido en variables */
}

/* Pseudoelemento especÃ­fico para bandas marfil */
.band--ivory::before {
  background: #f1eadf;            /* Fondo marfil mÃ¡s oscuro para el efecto */
  border-bottom: 1px solid #e3ded5; /* LÃ­nea inferior acorde al tono marfil */
}

/* ================== TÃTULOS DE SECCIÃ“N ================== */

/* TÃ­tulo principal de cada secciÃ³n (H2) */
.section-title {
  font-family: 'Montserrat', sans-serif; /* Fuente Montserrat para tÃ­tulos */
  font-weight: 800;              /* Peso extra fuerte para mÃ¡xima jerarquÃ­a */
  font-size: clamp(1.4rem, 2.5vw, 2rem); /* TamaÃ±o responsivo del tÃ­tulo */
  margin: 18px 0 8px;             /* MÃ¡rgenes: superior, lateral, inferior */
  color: #111;                   /* Color oscuro para contraste */
  display: flex;                 /* Layout flexbox para alinear icono + texto */
  align-items: center;           /* Centra verticalmente icono y texto */
  gap: .5rem;                    /* Espacio entre icono y texto */
  justify-content: center;       /* Centra horizontalmente todo el tÃ­tulo */
}

/* SubtÃ­tulo de secciÃ³n (H2 secundario) */
.section-title--sub {
  font-size: clamp(.95rem, 1.6vw, 1.1rem); /* TamaÃ±o mÃ¡s pequeÃ±o que el tÃ­tulo principal */
  font-weight: 700;              /* Peso en negrita pero menor que el principal */
  color: var(--text-dim);        /* Color atenuado definido en variables */
  text-align: center;            /* AlineaciÃ³n centrada */
  margin-top: -4px;              /* Margen negativo para pegar Ã³pticamente al H2 principal */
}

/* ================== SISTEMA DE GRID Y TARJETAS ================== */

/* Grid de 3 columnas para tarjetas de canales y servicios */
.grid-3 {
  display: grid;                 /* Layout CSS Grid */
  grid-template-columns: repeat(3, minmax(0, 1fr)); /* 3 columnas iguales */
  gap: 1rem;                     /* Espacio entre elementos del grid */
}

/* Responsive: 2 columnas en tablets */
@media (max-width: 1024px) {
  .grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2 columnas en pantallas medianas */
  }
}

/* Responsive: 1 columna en mÃ³viles */
@media (max-width: 640px) {
  .grid-3 {
    grid-template-columns: 1fr;   /* 1 columna en pantallas pequeÃ±as */
  }
}

/* ================== TARJETAS DE CANALES Y SERVICIOS ================== */

/* Estilo base para todas las tarjetas (canales y servicios) */
.card {
  position: relative;            /* Posicionamiento relativo para elementos absolutos internos */
  padding: 1rem;                 /* Relleno interno uniforme */
  border: 1px solid var(--border); /* Borde sutil definido en variables */
  background: #fff;              /* Fondo blanco */
  border-radius: 16px;           /* Esquinas redondeadas */
  text-decoration: none;         /* Sin subrayado (para tarjetas clicables) */
  color: #111;                   /* Color de texto oscuro */
  transition: transform .18s, box-shadow .18s, border-color .18s, background .18s; /* Transiciones suaves */
  will-change: transform, box-shadow; /* OptimizaciÃ³n para animaciones */
  display: block;                /* Elemento de bloque para ocupar espacio completo */
}

/* Cinta decorativa superior de las tarjetas */
.card .ribbon {
  content: '';                   /* Contenido para pseudoelemento */
  position: absolute;            /* Posicionamiento absoluto respecto a la tarjeta */
  inset: 0 0 auto 0;             /* Cubre ancho completo, solo en la parte superior */
  height: 8px;                   /* Altura de la cinta */
  border-radius: 16px 16px 0 0;  /* Esquinas redondeadas solo arriba */
}

/* Cinta especÃ­fica para tarjetas de canales */
.card.channel .ribbon {
  background: #ffffff;           /* Fondo blanco */
  border-bottom: 1px solid #e9e9e9; /* LÃ­nea inferior gris clara */
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.04); /* Sombra interior sutil */
}

/* Cinta especÃ­fica para tarjetas de servicios */
.card.service .ribbon {
  background: #f0f2f5;           /* Fondo gris claro */
  border-bottom: 1px solid #e3e6ea; /* LÃ­nea inferior gris */
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.04); /* Sombra interior sutil */
}

/* Estado hover para todas las tarjetas */
.card:hover {
  transform: translateY(-2px);   /* ElevaciÃ³n sutil al hacer hover */
  box-shadow: var(--shadow);     /* Sombra definida en variables */
  border-color: rgba(17,17,17,.16); /* Borde mÃ¡s visible */
}

/* Tarjetas deshabilitadas (prÃ³ximamente) */
.card.is-disabled {
  cursor: default;               /* Cursor normal en lugar de puntero */
  opacity: .8;                   /* Opacidad reducida para indicar estado deshabilitado */
}

/* Badge de estado en la esquina superior derecha */
.status-badge {
  position: absolute;            /* Posicionamiento absoluto respecto a la tarjeta */
  top: 10px;                     /* SeparaciÃ³n del borde superior */
  right: 10px;                   /* SeparaciÃ³n del borde derecho */
  font-size: .72rem;             /* TamaÃ±o de fuente pequeÃ±o */
  font-weight: 800;              /* Peso extra fuerte */
  padding: .25rem .5rem;         /* Relleno del badge */
  border-radius: 999px;          /* Forma completamente redondeada */
  background: var(--brand-2);    /* Fondo Ã¡mbar por defecto */
  color: #111;                   /* Texto oscuro */
}

/* Badge verde para elementos disponibles */
.status-active {
  background: var(--ok-2);       /* Fondo verde definido en variables */
}

/* Icono principal de cada tarjeta */
.card-icon {
  font-size: 2rem;               /* TamaÃ±o grande del icono */
  margin: .25rem 0 .35rem;       /* MÃ¡rgenes: superior, lateral, inferior */
  opacity: .95;                  /* Ligera transparencia */
}

/* TÃ­tulo de cada tarjeta (H3) */
.card-title {
  font-size: 1.1rem;             /* TamaÃ±o del tÃ­tulo */
  font-weight: 800;              /* Peso extra fuerte */
  margin-bottom: .15rem;         /* Margen inferior mÃ­nimo */
  color: #111;                   /* Color oscuro */
}

/* DescripciÃ³n de cada tarjeta */
.card-desc {
  color: var(--text-dim);        /* Color atenuado definido en variables */
  font-size: .95rem;             /* TamaÃ±o ligeramente menor que el texto normal */
}

/* ================== CINTAS DE APRENDIZAJE MUSICAL ================== */

/* Contenedor grid para las dos cintas de aprendizaje */
.info-banners {
  display: grid;                 /* Layout CSS Grid */
  grid-template-columns: 1fr 1fr; /* Dos columnas iguales en desktop */
  gap: 16px;                     /* SeparaciÃ³n entre cintas */
  margin-top: .8rem;             /* Espacio respecto al tÃ­tulo de la secciÃ³n */
}

/* Estilo base para cada cinta de informaciÃ³n */
.info-banner {
  display: flex;                 /* Layout flexbox vertical */
  flex-direction: column;        /* Apila tÃ­tulo, chips y CTA verticalmente */
  justify-content: center;       /* Centra verticalmente el contenido */
  gap: 10px;                     /* SeparaciÃ³n interna entre bloques */
  padding: 18px 20px;            /* Relleno cÃ³modo para clic tÃ¡ctil */
  border: 1px solid var(--border); /* Borde sutil coherente con cards */
  border-radius: 16px;           /* Esquinas suaves para consistencia UI */
  background: #fff;              /* Fondo blanco para mÃ¡xima legibilidad */
  color: #111;                   /* Texto oscuro para contraste */
  text-decoration: none;         /* Sin subrayado en todo el bloque clicable */
  box-shadow: var(--shadow-soft, 0 1px 2px rgba(0,0,0,.05)); /* Sombra ligera opcional */
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease; /* Animaciones suaves */
}

/* Estado hover para las cintas de informaciÃ³n */
.info-banner:hover {
  transform: translateY(-1px);   /* ElevaciÃ³n sutil */
  box-shadow: var(--shadow, 0 8px 24px rgba(0,0,0,.08)); /* Sombra mÃ¡s marcada */
  border-color: rgba(17,17,17,.16); /* Borde un poco mÃ¡s visible */
  background: #f9fafb;           /* Fondo gris muy claro en hover */
}

/* Estado de foco para accesibilidad */
.info-banner:focus-visible {
  outline: 3px solid rgba(122,60,255,.35); /* Anillo pÃºrpura acorde al branding */
  outline-offset: 2px;           /* SeparaciÃ³n del borde */
}

/* TÃ­tulo de cada cinta */
.info-banner__title {
  display: flex;                 /* Layout flexbox para icono + texto */
  align-items: center;           /* Centra verticalmente con el icono */
  gap: 10px;                     /* SeparaciÃ³n icono-texto */
  font-weight: 800;              /* JerarquÃ­a fuerte tipo botÃ³n/heading */
  font-size: clamp(1rem, 2.2vw, 1.25rem); /* Escala fluida: mÃ³vilâ†’desktop */
}

/* Icono dentro del tÃ­tulo de la cinta */
.info-banner__title i {
  font-size: 1.2em;              /* Un poco mayor que el texto */
}

/* Lista de chips/beneficios */
.info-banner__chips {
  display: flex;                 /* DisposiciÃ³n horizontal */
  flex-wrap: wrap;               /* Permite salto de lÃ­nea si no caben */
  gap: 8px;                      /* SeparaciÃ³n entre chips */
  margin: 0;                     /* Sin margen (reseteo de lista) */
  padding: 0;                    /* Sin padding (reseteo de lista) */
  list-style: none;              /* Sin viÃ±etas */
}

/* Estilo individual de cada chip */
.chip {
  display: inline-flex;          /* Contenido centrado verticalmente */
  align-items: center;           /* Centrado vertical */
  padding: 6px 10px;             /* TamaÃ±o de pastilla legible */
  border-radius: 999px;          /* Forma de pÃ­ldora */
  border: 1px solid var(--border); /* Borde sutil coherente */
  background: var(--panel-1, #fff); /* Fondo claro */
  color: #333;                   /* Texto legible */
  font-weight: 700;              /* Ã‰nfasis tipo etiqueta */
  font-size: .92rem;             /* Un poco mÃ¡s pequeÃ±o que el tÃ­tulo */
}

/* BotÃ³n CTA dentro de la cinta */
.info-banner__cta {
  align-self: flex-start;        /* Alineado a la izquierda dentro del banner */
  margin-top: 4px;               /* PequeÃ±a separaciÃ³n respecto a los chips */
  padding: 8px 12px;             /* Ãrea clicable adecuada */
  border-radius: 10px;           /* Esquinas suaves, coherentes */
  background: rgba(122,60,255,.12); /* Fondo pÃºrpura muy suave (branding) */
  color: #5b21b6;                /* Texto pÃºrpura mÃ¡s oscuro para contraste */
  font-weight: 800;              /* Fuerte para parecer botÃ³n */
  border: 1px solid rgba(122,60,255,.25); /* Contorno acorde al color de marca */
}

/* Variante principal para la cinta de clases online */
.info-banner--primary {
  border-color: rgba(122,60,255,.35); /* Borde mÃ¡s presente (branding) */
  background: linear-gradient(180deg, #ffffff 0%, #fbfaff 100%); /* Fondo muy sutil con tinte marca */
}

/* Responsive para cintas de aprendizaje */
@media (max-width: 900px) {
  .info-banners {
    grid-template-columns: 1fr;   /* Una columna en pantallas estrechas */
  }
  
  .info-banner {
    padding: 16px 16px;           /* Relleno ligeramente mÃ¡s compacto en mÃ³vil */
  }
}

/* ================== COLORES ESPECÃFICOS DE SECCIONES ================== */

/* SecciÃ³n de canales con fondo especÃ­fico */
#canales.band {
  background: var(--panel-2);    /* Fondo marfil distinto del blanco de 'Aprendizaje' */
}
#aprendizaje.band { background: var(--panel-3) !important; } /* Aprendizaje musical */
#servicios.band   { background: var(--panel-1) !important; } /* Servicios profesionales (blanco) */

/* SecciÃ³n de aprendizaje (contenido) con color especÃ­fico */
/*#contenido.band {
  background: var(--panel-3);    /* Aplica el tercer panel (azul claro) */
/*}

/* ================== CALL TO ACTION Y BOTONES ================== */

/* SecciÃ³n final de llamada a la acciÃ³n */
.cta-final {
  text-align: center;            /* AlineaciÃ³n centrada */
  margin: 2rem 0 1rem;           /* MÃ¡rgenes: superior, lateral, inferior */
}

/* BotÃ³n principal de llamada a la acciÃ³n */
.btn-cta {
  display: inline-block;         /* Elemento en lÃ­nea con dimensiones controlables */
  padding: .7rem 1.1rem;         /* Relleno para Ã¡rea clicable cÃ³moda */
  border-radius: 999px;          /* Forma completamente redondeada */
  background: linear-gradient(45deg, var(--brand-1), var(--brand-2)); /* Gradiente con colores de marca */
  color: #111;                   /* Texto oscuro para contraste con gradiente */
  font-weight: 800;              /* Peso extra fuerte */
  text-decoration: none;         /* Sin subrayado */
}

/* ================== CINTAS DE RECURSOS/INFORMACIÃ“N ================== */

/* Contenedor de pills informativos */
.info-ribbons {
  display: flex;                 /* Layout flexbox horizontal */
  flex-wrap: wrap;               /* Permite salto de lÃ­nea si no caben */
  gap: .6rem;                    /* SeparaciÃ³n entre pills */
  justify-content: center;       /* Centra horizontalmente */
  margin-top: .6rem;             /* Espacio respecto al contenido superior */
}

/* Estilo individual de cada pill informativo */
.info-pill {
  display: inline-flex;          /* Layout flexbox para icono + texto */
  align-items: center;           /* Centra verticalmente */
  gap: .5rem;                    /* Espacio entre icono y texto */
  padding: .55rem .9rem;         /* Relleno del pill */
  border-radius: 999px;          /* Forma completamente redondeada */
  border: 1px solid var(--border); /* Borde sutil */
  background: #fff;              /* Fondo blanco */
  color: #111;                   /* Texto oscuro */
  text-decoration: none;         /* Sin subrayado */
  font-weight: 700;              /* Peso en negrita */
  white-space: nowrap;           /* Evita saltos de lÃ­nea */
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease; /* Transiciones suaves */
}

/* Icono dentro del pill */
.info-pill i {
  font-size: .95rem;             /* TamaÃ±o del icono */
  opacity: .9;                   /* Ligera transparencia */
}

/* Estado hover para pills informativos */
.info-pill:hover {
  transform: translateY(-1px);   /* ElevaciÃ³n sutil */
  box-shadow: var(--shadow);     /* Sombra definida en variables */
  border-color: rgba(17,17,17,.16); /* Borde mÃ¡s visible */
  background: #f9fafb;           /* Fondo gris muy claro */
}

/* Badge suave para pills */
.badge-soft {
  margin-left: .45rem;           /* SeparaciÃ³n del texto principal */
  font-size: .72rem;             /* TamaÃ±o pequeÃ±o */
  line-height: 1;                /* Altura de lÃ­nea compacta */
  font-weight: 800;              /* Peso extra fuerte */
  padding: .2rem .4rem;          /* Relleno mÃ­nimo */
  border-radius: 999px;          /* Forma redondeada */
  background: var(--panel-2);    /* Fondo gris claro */
  color: #555;                   /* Texto gris oscuro */
}

/* ================== BANDA DE NEWSLETTER/LEAD MAGNET ================== */

/* Banda especÃ­fica para captura de leads */
.lead-band {
  background: linear-gradient(180deg, #f7f3eb 0%, #ffffff 100%); /* Gradiente marfilâ†’blanco suave */
}

/* Contenedor grid para copy + formulario */
.lead-wrap {
  display: grid;                 /* Layout CSS Grid */
  grid-template-columns: 1fr auto; /* Texto ocupa espacio restante, formulario se ajusta al contenido */
  gap: 1rem;                     /* SeparaciÃ³n entre columnas */
  align-items: center;           /* Centra verticalmente ambas columnas */
}

/* SecciÃ³n del copy/texto */
.lead-copy {
  text-align: left;              /* AlineaciÃ³n izquierda del texto */
}

/* TÃ­tulo del lead magnet */
.lead-title {
  font-family: 'Montserrat', sans-serif; /* Fuente Montserrat para tÃ­tulos */
  font-weight: 800;              /* Peso extra fuerte */
  color: #111;                   /* Color oscuro */
  font-size: clamp(1.2rem, 2.2vw, 1.6rem); /* TamaÃ±o responsivo */
  margin-bottom: .2rem;          /* Margen inferior mÃ­nimo */
}

/* SubtÃ­tulo del lead magnet */
.lead-sub {
  color: var(--text-dim);        /* Color atenuado */
  font-size: .98rem;             /* TamaÃ±o ligeramente menor */
}

/* Formulario de suscripciÃ³n */
.lead-form {
  display: flex;                 /* Layout flexbox */
  align-items: center;           /* Centra verticalmente */
  gap: .6rem;                    /* SeparaciÃ³n entre elementos */
  flex-wrap: wrap;               /* Permite salto de lÃ­nea si es necesario */
  justify-content: flex-end;     /* Alinea a la derecha */
  max-width: 560px;              /* Ancho mÃ¡ximo del formulario */
}

/* Campo de email del formulario */
.lead-form input[type="email"] {
  height: 44px;                  /* Altura fija */
  padding: 0 .9rem;              /* Relleno horizontal */
  border-radius: 999px;          /* Forma redondeada */
  border: 1px solid var(--border); /* Borde sutil */
  min-width: 260px;              /* Ancho mÃ­nimo */
  outline: none;                 /* Sin outline por defecto */
}

/* BotÃ³n CTA del formulario */
.lead-form .btn-cta {
  height: 44px;                  /* Altura coincidente con el input */
  display: inline-flex;          /* Layout flexbox */
  align-items: center;           /* Centra verticalmente */
  justify-content: center;       /* Centra horizontalmente */
  padding: 0 1rem;               /* Relleno horizontal */
}

/* Texto legal del formulario */
.lead-legal {
  display: block;                /* Elemento de bloque */
  width: 100%;                   /* Ancho completo */
  color: var(--text-dim);        /* Color atenuado */
  font-size: .8rem;              /* TamaÃ±o pequeÃ±o */
  margin-top: .25rem;            /* Margen superior mÃ­nimo */
}

/* Enlaces en el texto legal */
.lead-legal a {
  color: inherit;                /* Hereda el color del padre */
  text-decoration: underline;    /* Subrayado para indicar enlace */
}

/* Feedback del formulario */
.lead-feedback {
  font-size: .9rem;              /* TamaÃ±o ligeramente menor */
  margin-top: .2rem;             /* Margen superior mÃ­nimo */
}

/* Feedback positivo */
.lead-feedback.ok {
  color: var(--ok-1);            /* Color verde definido en variables */
}

/* Feedback de error */
.lead-feedback.err {
  color: #c0392b;                /* Color rojo para errores */
}

/* Responsive para banda de newsletter */
@media (max-width: 900px) {
  .lead-wrap {
    grid-template-columns: 1fr;   /* Una columna en mÃ³vil */
    text-align: center;           /* Texto centrado */
  }
  
  .lead-copy {
    text-align: center;           /* Texto centrado en mÃ³vil */
  }
  
  .lead-form {
    justify-content: center;      /* Formulario centrado en mÃ³vil */
  }
}

/* ================== FOOTER ================== */

/* Pie de pÃ¡gina principal */
.footer {
  text-align: center;            /* AlineaciÃ³n centrada */
  padding: 1.5rem .75rem 2rem;   /* Relleno: superior, lateral, inferior */
  color: var(--text-dim);        /* Color atenuado */
  border-top: 1px solid var(--border); /* LÃ­nea superior sutil */
}

/* InformaciÃ³n de contacto */
.footer .contact-info {
  margin-bottom: .6rem;          /* Margen inferior */
}

/* Enlaces de redes sociales en el footer */
.footer .social-links {
  display: flex;                 /* Layout flexbox horizontal */
  gap: .75rem;                   /* SeparaciÃ³n entre iconos */
  justify-content: center;       /* Centra horizontalmente */
  margin: .6rem 0;               /* Margen vertical */
}

/* Estilo individual de cada icono de red social en el footer */
.footer .social-links a {
  width: 44px;                   /* Ancho del botÃ³n */
  height: 44px;                  /* Alto del botÃ³n */
  display: inline-flex;          /* Layout flexbox para centrar icono */
  align-items: center;           /* Centra verticalmente */
  justify-content: center;       /* Centra horizontalmente */
  border-radius: 50%;            /* Forma circular */
  background: #fff;              /* Fondo blanco */
  border: 1px solid var(--border); /* Borde sutil */
  color: #111;                   /* Icono oscuro */
  text-decoration: none;         /* Sin subrayado */
}

/* Texto de copyright */
.copy {
  display: block;                /* Elemento de bloque */
  margin-top: .6rem;             /* Margen superior */
}