  /* ==========================================
           1. ESTILOS GENERALES Y VARIABLES
           ========================================== */
  :root {
      --primary: #242952;
      /* Indigo 900 */
      --primary-light: #4338ca;
      /* Indigo 700 */
      --accent: #2dd4bf;
      /* Teal 400 */
      --whatsapp: #28A745;
      /* Emerald 500 */
      --whatsapp-hover: #059669;
      /* Emerald 600 */
      --bg-light: #f9fafb;
      /* Gray 50 */
      --bg-cards: #f5f3ff;
      /* Indigo 50/50 */
      --text-main: #1f2937;
      /* Gray 800 */
      --text-muted: #4b5563;
      /* Gray 600 */
      --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
      --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  }

  * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
  }

  body {
      font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
      background-color: var(--bg-light);
      color: var(--text-main);
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
  }

  img {
      max-width: 100%;
      height: auto;
      display: block;
      object-fit: cover;
      border-radius: 1rem;
  }

  .img_logo_whatsapp {
      border-radius: unset;
  }

  .container {
      max-width: 1024px;
      margin: 0 auto;
      padding: 0 1.5rem;
  }

  /* Flexbox común para secciones en zig-zag */
  .flex-row-layout {
      display: flex;
      flex-direction: column;
      gap: 3rem;
      align-items: center;
  }

  @media (min-width: 768px) {
      .flex-row-layout {
          flex-direction: row;
      }

      .flex-row-reverse-layout {
          flex-direction: row-reverse;
      }

      .flex-row-layout>* {
          flex: 1;
      }
  }

  /* ==========================================
           2. SECCIÓN HERO (INICIO)
     ========================================== */









  /* Contenedor principal del Banner */
  .banner-container {
      position: relative;
      width: 100%;
      /* max-width: 1100px; */
      margin: auto;
      height: auto;
      min-height: 550px;
      background-image: linear-gradient(to right, rgba(10, 25, 47, 0.95) 40%, rgba(10, 25, 47, 0.2) 70%), url('../img/foto1-1.jpg');
      background-size: cover;
      background-position: center;
      color: #ffffff;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      padding: 40px;
      /* border-radius: 12px; */
      overflow: hidden;
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
  }

  /* Sección Izquierda: Textos y Características */
  .banner-left {
      max-width: 50%;
      z-index: 2;
  }

  .main-title {
      font-size: 3.5rem;
      font-weight: 900;
      text-transform: uppercase;
      line-height: 1.1;
      margin-bottom: 5px;
      letter-spacing: -1px;
  }

  .highlight-title {
      color: #f5a623;
      /* Amarillo/Naranja del diseño */
      font-size: 3.2rem;
      font-weight: 900;
      text-transform: uppercase;
      font-style: italic;
      line-height: 1;
      margin-bottom: 15px;
      display: block;
  }

  .location {
      display: inline-flex;
      align-items: center;
      background-color: #0d6efd;
      padding: 6px 16px;
      border-radius: 20px;
      font-weight: 600;
      font-size: 1.1rem;
      margin-bottom: 25px;
  }

  .location-icon {
      margin-right: 8px;
  }

  /* Lista de Beneficios */
  .features-list {
      list-style: none;
  }

  .feature-item {
      display: flex;
      align-items: center;
      margin-bottom: 12px;
      font-size: 0.95rem;
      font-weight: 600;
  }

  .icon-wrapper {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-right: 12px;
      flex-shrink: 0;
      font-size: 0.8rem;
  }

  /* Colores de los círculos de los iconos */
  .bg-blue {
      background-color: #17a2b8;
  }

  .bg-green {
      background-color: #28a745;
  }

  .bg-orange {
      background-color: #fd7e14;
  }

  .bg-pink {
      background-color: #e83e8c;
  }

  .bg-purple {
      background-color: #6f42c1;
  }

  /* Sección Inferior: Horarios y Precios */
  .banner-bottom {
      display: flex;
      align-items: stretch;
      background-color: rgba(245, 166, 35, 0.1);
      border: 3px solid #f5a623;
      border-radius: 12px;
      max-width: 450px;
      margin-top: 30px;
      z-index: 2;
      overflow: hidden;
  }

  .schedule-box {
      padding: 15px 20px;
      display: flex;
      align-items: center;
      gap: 15px;
      flex-grow: 1;
  }

  .calendar-icon {
      font-size: 2rem;
  }

  .schedule-text h4 {
      font-size: 1.4rem;
      font-weight: 900;
      color: #f5a623;
      text-transform: uppercase;
  }

  .schedule-text p {
      font-size: 0.9rem;
      font-weight: 600;
  }

  .price-box {
      background-color: #0a192f;
      border-left: 3px solid #f5a623;
      padding: 15px 25px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      text-align: center;
      min-width: 160px;
  }

  .price-amount {
      font-size: 1.8rem;
      font-weight: 900;
      color: #ffffff;
      line-height: 1;
  }

  .price-detail {
      font-size: 0.75rem;
      text-transform: uppercase;
      color: #a0aec0;
      margin-top: 2px;
  }

  /* Frase manuscrita en la esquina inferior derecha */
  .handwritten-text {
      position: absolute;
      bottom: 30px;
      right: 40px;
      text-align: right;
      font-family: 'Caveat', cursive;
      font-size: 2.2rem;
      line-height: 1.1;
      color: #ffffff;
      z-index: 2;
      text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
  }

  .handwritten-text span {
      color: #20c997;
      /* Subrayado / toque verde agua */
  }

  /* Responsivo para pantallas pequeñas */
  @media (max-width: 768px) {
      .banner-container {
          background-image: linear-gradient(to bottom, rgba(10, 25, 47, 0.95) 70%, rgba(10, 25, 47, 0.4) 100%), url('../img/foto1-1.jpg');
          flex-direction: column;
          justify-content: flex-start;
          padding: 20px;
      }

      .banner-left {
          max-width: 100%;
      }

      .main-title {
          font-size: 2rem;
          text-align: center;
      }

      .highlight-title {
          font-size: 2.5rem;
          text-align: center;
      }

      .schedule-box {
          justify-content: center;
      }

      .location {
          width: 50%;
          display: block;
          margin: auto;
          text-align: center;
          margin-bottom: 4%;
      }

      .section-title {
          text-align: center;
      }

      .banner-bottom {
          flex-direction: column;
          max-width: 100%;
      }

      .price-box {
          border-left: none;
          border-top: 3px solid #f5a623;
          padding: 10px;
      }

      .handwritten-text {
          position: relative;
          right: auto;
          bottom: auto;
          margin-top: 30px;
          text-align: center;
          font-size: 1.8rem;
      }
  }




















  /* 2. Bloque de contenido inferior */
  .hero-content-block {
      max-width: 100%;
      /* Limita el ancho del texto para que sea cómodo de leer */
      background-color: white;
      margin: 0 auto;
      padding: 3.5rem 1.5rem;
      text-align: center;
      /* Centra el contenido para dar formato de Landing Page */
  }

  /* Etiqueta pequeña (Tag) */
  .tag {
      display: inline-block;
      background-color: #4338ca;
      /* Indigo 700 */
      color: #e0e7ff;
      font-size: 0.85rem;
      font-weight: 700;
      padding: 0.4rem 1rem;
      border-radius: 9999px;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      margin-bottom: 1.5rem;
  }

  /* Título principal */
  .hero-content-block h2 {
      font-size: 2.5rem;
      font-weight: 800;
      color: #242952;
      /* Gris muy oscuro, casi negro */
      line-height: 1.2;
      margin-bottom: 1.5rem;
  }

  /* Color azul/verde destacado dentro del título */
  .hero-content-block h2 span {
      color: #56820D;
      /* Teal 600 */
  }

  /* Párrafo descriptivo */
  .hero-description {
      font-size: 1.15rem;
      color: #4b5563;
      /* Gris suave para lectura descansada */
      line-height: 1.7;
      max-width: 650px;
      margin: 0 auto 2rem auto;
  }

  /* Lista de beneficios */
  .hero-list {
      list-style: none;
      padding: 0;
      margin: 0 auto 2.5rem auto;
      display: inline-flex;
      flex-direction: column;
      gap: 0.75rem;
      text-align: left;
      /* Mantiene los checks alineados a la izquierda */
  }

  .hero-list li {
      font-size: 1.05rem;
      color: #374151;
      display: flex;
      align-items: center;
      gap: 0.75rem;
      font-weight: 500;
  }

  /* Icono de check (si usas FontAwesome) */
  .hero-list i {
      color: #56820D;
      /* Teal */
  }

  /* 3. Contenedor y Botón de WhatsApp */
  .btn-container {
      display: flex;
      justify-content: center;
  }

  .btn-whatsapp {
      display: inline-flex;
      align-items: center;
      gap: 0.75rem;
      background-color: #56820D;
      /* #10b981 */
      /* Verde WhatsApp */
      color: #ffffff;
      font-weight: 700;
      font-size: 1.1rem;
      text-decoration: none;
      padding: 1.1rem 2.5rem;
      border-radius: 0.75rem;
      box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3);
      transition: all 0.3s ease;
  }

  .btn-whatsapp:hover {
      background-color: #059669;
      transform: translateY(-3px);
      box-shadow: 0 6px 20px rgba(16, 185, 129, 0.4);
  }

  .img_logo_whatsapp {
      display: inline-block;
      object-fit: contain;
  }

  /* Ajuste fino para pantallas grandes (computadoras) */
  @media (min-width: 768px) {
      .hero {
          /* height: 55vh; */
          /* Le damos más presencia a la foto en pantallas grandes */
      }

      .hero-content-block h1 {
          font-size: 3.5rem;
          /* Título más grande e imponente en PC */
      }
  }







  /* ==========================================
           3. SECCIÓN COMUNIDAD / ESPACIO
     ========================================== */
  .section-padding {
      padding: 5rem 0;
  }

  .section-title {
      font-size: 1.875rem;
      font-weight: 700;
      color: #242952;
      margin-bottom: 1.5rem;
  }

  .text-lead {
      font-size: 1.125rem;
      color: var(--text-muted);
  }

  .text-highlight {
      font-size: 1.125rem;
      color: var(--primary-light);
      font-weight: 500;
  }

  .section-img {
      box-shadow: var(--shadow-xl);
      height: 20rem;
      width: 100%;
  }

  /* Bloque de cita destacada */
  .quote-box {
      background-color: #f0fdfa;
      border-left: 4px solid var(--primary-light);
      padding: 1rem;
      border-radius: 0 0.75rem 0.75rem 0;
      margin-top: 1.5rem;
  }

  .quote-box p {
      color: #134e4a;
      font-style: italic;
      font-weight: 500;
  }

  /* ==========================================
           4. SECCIÓN TARJETAS DE NIVELES
           ========================================== */
  .bg-cards-section {
      background-color: var(--bg-cards);
      border-top: 1px solid #e0e7ff;
      border-bottom: 1px solid #e0e7ff;
  }

  .text-center {
      text-align: center;
      max-width: 42rem;
      margin: 0 auto 4rem auto;
  }

  .text-center p {
      color: var(--text-muted);
      margin-top: 1rem;
  }

  .cards-grid {
      display: grid;
      gap: 2rem;
  }

  @media (min-width: 768px) {
      .cards-grid {
          grid-template-columns: repeat(2, 1fr);
      }
  }

  .card {
      background-color: #ffffff;
      border-radius: 1rem;
      padding: 2rem;
      box-shadow: var(--shadow-md);
      border: 1px solid #f3f4f6;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
  }

  .card-badge {
      display: inline-block;
      font-size: 0.75rem;
      font-weight: 700;
      padding: 0.25rem 0.75rem;
      border-radius: 0.375rem;
      text-transform: uppercase;
  }

  .badge-amber {
      background-color: #fef3c7;
      color: #92400e;
  }

  .badge-teal {
      background-color: #ccfbf1;
      color: #115e59;
  }

  .card h3 {
      font-size: 1.25rem;
      font-weight: 700;
      color: #242952;
      margin: 1rem 0 0.75rem 0;
  }

  .card p {
      color: var(--text-muted);
  }

  .card-img {
      margin-top: 1.5rem;
      height: 12rem;
      width: 100%;
  }

  /* ==========================================
           5. FOOTER
           ========================================== */
  footer {
      background-color: #242952;
      color: #9ca3af;
      padding: 2rem 0;
      text-align: center;
      border-top: 1px solid #1f2937;
      font-size: 0.875rem;
  }

  /* ==========================================
           6. BOTÓN FLOTANTE WHATSAPP
           ========================================== */
  .floating-whatsapp {
      position: fixed;
      bottom: 1.5rem;
      right: 1.5rem;
      z-index: 50;
      background-color: var(--whatsapp);
      color: #ffffff;
      width: 4rem;
      height: 4rem;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.3);
      transition: all 0.3s ease;
      text-decoration: none;
  }

  .floating-whatsapp:hover {
      background-color: var(--whatsapp-hover);
      transform: scale(1.1);
  }

  .floating-whatsapp i {
      font-size: 1.875rem;
      position: relative;
      z-index: 10;
  }

  /* Efecto de pulso / onda expansiva */
  .floating-whatsapp::before {
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      background-color: #34d399;
      border-radius: 50%;
      opacity: 0.75;
      animation: ping 1.5s cubic-bezier(0, 0, 0.2, 1) infinite;
  }

  .floating-whatsapp:hover::before {
      display: none;
  }

  @keyframes ping {

      75%,
      100% {
          transform: scale(2);
          opacity: 0;
      }
  }