/* =======================
   GRUPO NEUTRON THEME
   ======================= */
:root{
  --gn-navy:#0E2744;          /* Azul marino principal */
  --gn-navy-2:#18385f;        /* Azul secundario para degradés */
  --gn-gold:#C6842C;          /* Oro principal */
  --gn-gold-dark:#A86E22;     /* Oro hover */
  --gn-bg:#F6F7FB;            /* Fondo claro */
  --gn-text:#0E2744;          /* Texto base */
  --gn-muted:#6b7280;         /* Texto secundario */
  --gn-card:#ffffff;          /* Fondo tarjetas */
  --gn-shadow:0 4px 12px rgba(0,0,0,.06);
}

/* Base */
body{
  margin:0;
  font-family:'Segoe UI',sans-serif;
  background-color:var(--gn-bg);
  color:var(--gn-text);
}

/* Header / Nav */
header nav{
  display:flex;justify-content:space-between;align-items:center;
  padding:.5rem 2rem;box-sizing:border-box;background:#fff;
  box-shadow:0 2px 5px rgba(0,0,0,.1);height:70px;
  position:fixed;top:0;left:0;width:100%;z-index:999;
}
.logo img{height:70px;width:auto;}

.nav-links{list-style:none;display:flex;gap:1.5rem;margin:0;padding:0;}
.nav-links a{
  text-decoration:none;color:var(--gn-navy);font-weight:700;
  transition:color .3s ease,transform .2s ease;
}
.nav-links a:hover{color:var(--gn-gold);transform:translateY(-1px);}

/* Hero (todas las secciones con hero) */
.hero,
.services-hero,
.about-hero,
.contact-hero{
  background:linear-gradient(to right,var(--gn-navy),var(--gn-navy-2));
  color:#fff;padding:4rem 2rem;text-align:center;border-radius:0 0 36px 36px;
}
.hero .logo{width:150px;max-width:90%;height:auto;margin:80px auto 1rem;}

.hero-title{font-size:2.5rem;margin:.5rem 0;}
.hero-subtitle{font-size:1.2rem;margin-bottom:2rem;}

/* Botones */
.btn{
  background:var(--gn-gold);color:#fff;padding:.8rem 1.5rem;border:none;
  border-radius:25px;font-size:1rem;text-decoration:none;
  transition:background-color .3s ease,transform .2s ease;
}
.btn:hover{background:var(--gn-gold-dark);transform:translateY(-1px);}

/* Servicios (home) */
.services{padding:3rem 2rem;background:#fff;text-align:center;}
.services-container{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;}

.service-card{
  background:#f7f7f8;padding:2rem;border-radius:15px;max-width:300px;
  transition:transform .3s ease,box-shadow .3s ease;border-top:5px solid var(--gn-gold);
}
.service-card:hover{transform:translateY(-5px);box-shadow:0 8px 20px rgba(0,0,0,.1);}
.service-icon{color:var(--gn-navy);transition:color .3s ease;}
.service-card:hover .service-icon{color:var(--gn-gold);}

/* Footer */
footer{background:var(--gn-navy);color:#fff;text-align:center;padding:1rem;margin-top:2rem;}

@keyframes fadeIn{from{opacity:0;transform:translateY(-20px);}to{opacity:1;transform:translateY(0);}}

/* ===== Servicios (página) ===== */
.services-cards-container{
  display:flex;flex-wrap:wrap;justify-content:center;gap:2rem;padding:3rem 2rem;
}
.service-card{background:var(--gn-card);box-shadow:var(--gn-shadow);flex:1 1 250px;text-align:center;}
.service-card:hover{transform:translateY(-8px);box-shadow:0 12px 30px rgba(0,0,0,.15);}
.service-icon{width:80px;height:80px;margin-bottom:1rem;}
.service-card h3{color:var(--gn-navy);margin:.5rem 0;font-size:1.3rem;}
.service-card p{font-size:1rem;margin-bottom:1rem;}
.service-card ul{list-style:none;padding:0;margin:0;}
.service-card ul li{font-size:.95rem;padding:.4rem 0;border-bottom:1px solid #eee;}
.service-card ul li:last-child{border-bottom:none;}

@media (max-width:768px){
  .services-hero h1{font-size:1.8rem;}
  .services-hero p{font-size:1rem;}
}

/* ===== Nosotros ===== */
.about-content{padding:3rem 2rem;max-width:900px;margin:0 auto;text-align:left;}
.about-content h2{color:var(--gn-navy);margin-top:2rem;}
.about-content p{font-size:1rem;line-height:1.6;}
.about-content ul{list-style:none;padding:0;}
.about-content ul li{position:relative;padding-left:1.5rem;margin-bottom:.5rem;}
.about-content ul li::before{content:"✔";color:var(--gn-gold);position:absolute;left:0;}

.about-cta{text-align:center;padding:3rem 2rem;background:#f6f6f8;}
.about-cta h2{margin-bottom:1rem;color:var(--gn-navy);}
.about-cta .btn{background:var(--gn-gold);}
.about-cta .btn:hover{background:var(--gn-gold-dark);}

@media (max-width:768px){
  .about-hero h1{font-size:1.8rem;}
  .about-hero p{font-size:1rem;}
}

/* ===== Contacto ===== */
.contact-form-section{padding:3rem 2rem;max-width:700px;margin:0 auto;}
.contact-form{display:flex;flex-direction:column;gap:1rem;}
.form-group{display:flex;flex-direction:column;}
.form-group label{margin-bottom:.5rem;color:var(--gn-navy);font-weight:700;}
.form-group input,.form-group textarea{
  padding:.8rem;border:1px solid #ccc;border-radius:8px;font-size:1rem;transition:border-color .3s ease;
}
.form-group input:focus,.form-group textarea:focus{border-color:var(--gn-gold);outline:none;}
.contact-form .btn{background:var(--gn-gold);}
.contact-form .btn:hover{background:var(--gn-gold-dark);}

.contact-info{text-align:center;padding:3rem 2rem;background:#f6f6f8;}
.contact-info h2{color:var(--gn-navy);margin-bottom:1rem;}
.contact-info p{margin:.3rem 0;}

@media (max-width:768px){
  .contact-hero h1{font-size:1.8rem;}
  .contact-hero p{font-size:1rem;}
}

/* Iconografía */
.service-icon{
  font-size:64px;color:#fff;background:var(--gn-navy);
  padding:20px;border-radius:50%;display:inline-block;margin-bottom:15px;
}
.service-icon-small{font-size:32px;color:var(--gn-navy);margin-bottom:10px;}
.about-icon{color:var(--gn-navy);margin-right:8px;}

/* Tarjetas base (index) */
.card{
  background:#fff;border:1px solid #e0e0e0;border-radius:16px;
  box-shadow:var(--gn-shadow);padding:2rem;text-align:center;
  transition:transform .3s ease,box-shadow .3s ease;
}
.card:hover{transform:translateY(-8px);box-shadow:0 8px 20px rgba(0,0,0,.12);}

/* Diferenciales */
.differentials{padding:4rem 2rem;background:#fff;text-align:center;}
.differentials-container{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;margin-top:2rem;}
.differential-card i{font-size:36px;color:var(--gn-gold);margin-bottom:10px;}

/* Proyectos */
.projects{padding:4rem 2rem;background:#fff;text-align:center;}
.projects-container{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;margin-top:2rem;}
.project-card{width:300px;overflow:hidden;padding:0;}
.project-card img{width:100%;height:auto;border-radius:16px 16px 0 0;}
.project-card h3{color:var(--gn-navy);font-size:1.2rem;margin:1rem 0 .5rem;}
.project-card p{padding:0 1.5rem 1.5rem;font-size:.95rem;color:var(--gn-muted);}

/* Testimonios */
.testimonials{padding:4rem 2rem;background:var(--gn-bg);text-align:center;}
.testimonials-container{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;margin-top:2rem;}
.testimonial-card{max-width:300px;}
.testimonial-card p{font-style:italic;color:#444;margin-bottom:1rem;font-size:1rem;}
.testimonial-card strong{color:var(--gn-navy);font-weight:600;font-size:.95rem;}

/* CTA Final */
.cta-final{
  background:linear-gradient(to right,var(--gn-navy),var(--gn-navy-2));
  color:#fff;text-align:center;padding:4rem 2rem;
}
.cta-final h2{font-size:2rem;margin-bottom:1.5rem;}
.cta-final .btn{background:var(--gn-gold);font-weight:600;}
.cta-final .btn:hover{background:var(--gn-gold-dark);}

/* Responsive para tarjetas index */
@media (max-width:768px){
  .differential-card,.project-card,.testimonial-card{width:100%!important;max-width:90%;}
}

/* Botón hamburguesa */
.menu-toggle{display:none;flex-direction:column;cursor:pointer;}
.menu-toggle span{height:3px;width:25px;background:var(--gn-navy);margin:4px 0;border-radius:2px;}

/* Menú responsive */
@media (max-width:768px){
  .nav-links{
    flex-direction:column;background:#fff;position:absolute;top:70px;left:0;width:100%;
    display:none;padding:1rem 0;box-shadow:0 8px 20px rgba(0,0,0,.15);
  }
  .nav-links.show{display:flex;}
  .menu-toggle{display:flex;}
}
@media (max-width:768px){
  .nav-links{flex-direction:column;background:#fff;position:absolute;top:70px;left:0;width:100%;
    display:none;padding:1rem 0;box-shadow:0 8px 20px rgba(0,0,0,.15);}
  .nav-links.show{display:flex;}
  .nav-links a{padding:1rem 2rem;border-bottom:1px solid #eee;text-align:left;}
  .nav-links a:last-child{border-bottom:none;}
  .menu-toggle{display:flex;}
}

body>section:first-of-type{margin-top:80px;}

/* Botón flotante (personalizado a marca) */
.whatsapp-float{
  position:fixed;bottom:25px;right:25px;width:60px;height:60px;
  background:var(--gn-gold);color:#fff;border-radius:50%;
  display:flex;justify-content:center;align-items:center;font-size:28px;z-index:1000;
  box-shadow:0 4px 10px rgba(0,0,0,.3);transition:transform .3s ease,box-shadow .3s ease;
}
.whatsapp-float:hover{transform:scale(1.1);box-shadow:0 8px 20px rgba(0,0,0,.3);}

.about-logo{max-width:200px;height:auto;margin:1rem auto;display:block;}

/* Icono de “visita virtual” en nav */
.virtual-icon{color:var(--gn-navy);font-size:1.5rem;margin-left:15px;transition:color .3s ease,transform .3s ease;}
.virtual-icon:hover{color:var(--gn-gold);transform:scale(1.2);}

.menu-text{margin-left:5px;font-size:.9rem;}
.nav-links li a i{color:var(--gn-navy);font-size:1.2rem;transition:color .3s ease,transform .3s ease;}
.nav-links li a:hover i{color:var(--gn-gold);transform:scale(1.2);}

/* Clientes */
.clients{background:#f8f9fa;padding:2rem 1rem;text-align:center;}
.clients-container{display:flex;justify-content:center;align-items:center;gap:2rem;flex-wrap:wrap;}
.client-logo a{display:flex;align-items:center;justify-content:center;padding:6px 10px;text-decoration:none;cursor:pointer;}
.client-logo img{
  max-height:72px;max-width:160px;width:auto;height:auto;object-fit:contain;
  filter:grayscale(100%);transition:transform .2s ease,filter .3s ease;
}
.client-logo a:hover img{filter:grayscale(0%);transform:translateY(-2px) scale(1.04);}
@media (max-width:768px){.clients-container{gap:1.25rem;}.client-logo img{max-height:60px;}}

/* Botón idioma */
.lang-btn{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font:inherit;color:inherit;background:transparent;border:none;padding:0;}
.nav-links .nav-lang{list-style:none;}
.nav-links .nav-lang .lang-btn{width:100%;text-align:left;}

@media (max-width:768px){
  .nav-links .nav-lang .lang-btn{padding:.9rem 1rem;border-radius:8px;}
  .nav-links.show .nav-lang{display:block;}
}
@media (min-width:769px){
  .nav-links{align-items:center;}
  .nav-links .nav-lang{margin-left:.5rem;}
  .nav-links .nav-lang .lang-btn{
    border:1px solid rgba(0,0,0,.15); /* header claro */
    padding:.35rem .6rem;border-radius:10px;line-height:1;
  }
  .nav-links .nav-lang .lang-btn:hover{border-color:rgba(0,0,0,.3);}
}


/* HERO con imagen + overlay de marca */
.hero--with-img{
  /* Cambia la ruta desde HTML con la var --hero-img si quieres */
  --hero-img: url('/assets/img/hero.jpg');

  /* Capa 1: degradado brand (con alpha)  |  Capa 2: imagen */
  background-image:
    linear-gradient(to right, rgba(14,39,68,.88), rgba(24,56,95,.65)),
    var(--hero-img);

  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff; /* asegura contraste */
}

/* Mejor legibilidad sobre foto */
.hero--with-img .hero-title,
.hero--with-img .hero-subtitle{
  text-shadow: 0 2px 12px rgba(0,0,0,.35);
}

/* Si tu hero ya tenía el borde redondeado abajo, se mantiene.
   Si quieres reforzarlo: */
/* .hero--with-img{ border-radius: 0 0 36px 36px; } */

/* Ajuste móvil: un poco más de overlay para mejorar contraste */
@media (max-width: 768px){
  .hero--with-img{
    background-image:
      linear-gradient(to right, rgba(14,39,68,.92), rgba(24,56,95,.72)),
      var(--hero-img);
  }
}


/* =======================
   HOME: ABOUT + FEATURED
   ======================= */

/* Título de sección (reutilizable) */
.section-title{
  font-size: clamp(1.6rem, 2.8vw, 2rem);
  color: var(--gn-navy);
  margin: 0 auto 1rem;
  text-align: center;
  font-weight: 800;
}
.section-title + p { margin-top: .25rem; }

/* Texto secundario reutilizable */
.muted{ color: var(--gn-muted); }

/* Bloque “Quiénes somos” (about) */
.about{
  background:#fff;
  padding: 3rem 1.5rem;
  border-top: 4px solid var(--gn-gold);
}
.about p{
  max-width: 980px;
  margin: .5rem auto;
  font-size: 1.02rem;
  line-height: 1.7;
  text-align: center;
}
.about .btn{
  display:inline-block;
  margin-top: 1rem;
  font-weight: 600;
}

/* Bloque destacado del Diplomado */
.featured{
  background: linear-gradient(180deg,#fff, #f7f7f9);
  padding: 2.75rem 1.5rem;
}
.featured-content{
  max-width: 1100px;
  margin: 0 auto;
  background: var(--gn-card);
  border: 1px solid #e8e9ee;
  border-radius: 18px;
  box-shadow: var(--gn-shadow);
  padding: 1.75rem 1.5rem;
}
.featured .section-title{
  margin-bottom: .75rem;
}

/* Lista de bullets del Diplomado */
.featured-bullets{
  list-style: none;
  margin: 1rem auto 1.25rem;
  padding: 0;
  max-width: 1000px;
}
.featured-bullets li{
  position: relative;
  padding-left: 1.75rem;
  margin: .5rem 0;
  line-height: 1.6;
}
.featured-bullets li::before{
  content: "✔";
  color: var(--gn-gold);
  font-weight: 700;
  position: absolute;
  left: 0;
  top: 0;
}

/* CTA del Diplomado */
.featured-cta{
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: .5rem;
}
.featured-cta .btn{
  min-width: 210px;
  text-align: center;
  font-weight: 700;
}
.featured-cta .btn.btn--outline{
  color: var(--gn-navy);
  border: 1px solid var(--gn-navy);
  background: transparent;
}
.featured-cta .btn.btn--outline:hover{
  border-color: var(--gn-gold-dark);
  color:#fff;
}

/* Ajustes hero (espaciado botones y contenedor) */
.hero-content{ max-width: 1100px; margin: 0 auto; }
.hero-cta{ display:flex; gap:.75rem; flex-wrap:wrap; justify-content:center; }
.hero-cta .btn{ font-weight:700; }

/* Margen entre bloques (home) */
section + section{ scroll-margin-top: 80px; }

/* =======================
   META CHIPS (info rápida)
   ======================= */
.meta-chips{
  display:flex; flex-wrap:wrap; gap:.55rem;
  align-items:center; margin:.85rem 0 .35rem;
}
.meta-chips.center{ justify-content:center; }

.chip{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.42rem .72rem; border-radius:999px;
  font-size:.86rem; line-height:1; font-weight:700;
  background:#fff; color:var(--gn-navy);
  border:1px solid rgba(14,39,68,.18);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
  white-space:nowrap;
}
.chip i{ color:var(--gn-gold); font-size:.95em; }

/* Variantes */
.chip--accent{
  background:rgba(198,132,44,.12);
  border-color:rgba(198,132,44,.35);
}
.chip--brand{
  background:var(--gn-navy);
  color:#fff;
  border-color:rgba(255,255,255,.2);
}
.chip--muted{
  background:#f3f4f6;
  color:#374151;
  border-color:#e5e7eb;
}

/* Ajuste dentro de tarjetas estrechas */
.service-card .meta-chips{ margin-top:.5rem; }

/* Responsive */
@media (max-width:768px){
  .chip{ font-size:.84rem; padding:.38rem .66rem; }
}


/* ===== Chips en Services (ajustes finos) ===== */
.services-cards-container .service-card .meta-chips{
  margin-top:.6rem;
  justify-content:flex-start;
}
.services-cards-container .service-card .meta-chips.center{
  justify-content:center;
}
.services-cards-container .service-card .chip{
  /* los chips ya usan variables de marca */
}

/* (opcional) destacar chips “Próximamente” con ligero pulso */
.chip--accent{
  animation: chipPulse 2.2s ease-in-out infinite;
}
@keyframes chipPulse{
  0%,100%{ box-shadow:0 0 0 rgba(198,132,44,0.0); }
  50%{ box-shadow:0 0 0 6px rgba(198,132,44,.10); }
}

/* ===== FIX separadores en tarjetas ===== */
.services-cards-container .service-card ul{
  list-style:none;
  padding:0;
  margin:.5rem 0 0;
}

/* Quitamos cualquier borde inferior heredado */
.services-cards-container .service-card ul li{
  border:0 !important;               /* override seguro */
  padding:.55rem 0 .55rem 1.4rem;     /* espacio y sangría para el icono */
  position:relative;
  line-height:1.6;
}

/* Separador solo ENTRE ítems (no después del último) */
.services-cards-container .service-card ul li + li{
  border-top:1px solid #eaeaf0;
}

/* Bullet con check dorado (usa Font Awesome ya cargado) */
.services-cards-container .service-card ul li::before{
  content:"\f00c";                    /* fa-check */
  font-family:"Font Awesome 6 Free";
  font-weight:900;
  color:var(--gn-gold);
  position:absolute;
  left:.2rem;
  top:.55rem;                         /* centra verticalmente el check */
  font-size:.9rem;
}

/* Espacio antes del botón dentro de la tarjeta */
.services-cards-container .service-card .btn{
  margin-top:1rem;
}


/* --- Más aire entre lista y botón en las tarjetas --- */

/* 1) Aumenta el margen inferior de la lista */
.services-cards-container .service-card ul{
  margin-bottom: 1.15rem;
}

/* 2) Si el botón viene inmediatamente después de la <ul> (caso Courses) */
.services-cards-container .service-card ul + a.btn,
.services-cards-container .service-card ul + .btn{
  margin-top: 1rem;
  display: inline-block;
}

/* 3) Si después de la <ul> hay un CONTENEDOR de CTAs (caso Services/Diplomado) */
.services-cards-container .service-card ul + div,
.services .service-card ul + div{
  margin-top: 1rem !important;   /* asegura separación aunque haya estilos inline */
}

/* 4) Un pelín más de respiración contra el borde inferior de la tarjeta */
.services-cards-container .service-card .btn{
  margin-bottom: .25rem;
}


/* ======== CONVENIOS / ALLIANCES ======== */
.alliances {
  padding: 4rem 2rem;
  background: #f9f9f9; /* Fondo suave para diferenciar */
  text-align: center;
}

.alliances .section-title {
  font-size: 2rem;
  margin-bottom: 1.5rem;
  color: #082C6C; /* Azul institucional */
}

.alliances p {
  max-width: 800px;
  margin: 0 auto 2.5rem auto;
  font-size: 1.1rem;
  line-height: 1.6;
  color: #333;
}

.alliances-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
}

.alliances-logos .client-logo {
  flex: 0 1 200px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1rem;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.08);
}

.alliances-logos .client-logo:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 12px rgba(0,0,0,0.12);
}

.alliances-logos img {
  max-width: 160px;
  max-height: 80px;
  object-fit: contain;
  filter: grayscale(20%);
  transition: filter 0.3s ease;
}

.alliances-logos img:hover {
  filter: grayscale(0);
}

/* Responsive */
@media (max-width: 768px) {
  .alliances .section-title {
    font-size: 1.6rem;
  }
  .alliances-logos {
    gap: 1.5rem;
  }
  .alliances-logos .client-logo {
    flex: 0 1 140px;
  }
  .alliances-logos img {
    max-width: 120px;
    max-height: 60px;
  }
}





/* ======= VARIABLES BÁSICAS ======= */
:root{
  --primary:#082C6C;
  --primary-600:#0a3a8f;
  --text:#222;
  --muted:#666;
  --bg:#fff;
  --bg-soft:#f7f8fb;
  --card:#fff;
  --shadow:0 8px 24px rgba(0,0,0,.08);
  --radius:16px;
}



/* ======= SECCIONES GENERALES ======= */
.section-title{
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  color: var(--primary); margin: 0 0 1rem; font-weight:800; text-align:center;
}
.about, .featured, .services, .clients, .differentials, .cta-final{
  padding: clamp(2.5rem, 5vw, 4rem) 1.25rem;
}
.about p, .about li{ color:var(--text); line-height:1.7; }
.muted{ color: var(--muted); font-size:.98rem; }

/* ======= LISTAS (bullets) ======= */
.featured-bullets{
  margin: 1rem auto; padding-left: 1.2rem; max-width: 1000px;
}
.featured-bullets li{
  margin:.35rem 0; line-height:1.6;
}

/* ======= CARDS DE SERVICIOS / DIFERENCIALES ======= */
.services-container, .differentials-container{
  display:grid; gap:1rem; grid-template-columns: repeat( auto-fit, minmax(220px,1fr) );
  max-width:1200px; margin: 1.5rem auto 0;
}
.service-card, .differential-card, .card{
  background: var(--card); border-radius: var(--radius); padding:1.1rem 1rem;
  box-shadow: var(--shadow); transition:.25s ease; text-align:center;
}
.service-card:hover, .differential-card:hover{ transform: translateY(-3px); }
.service-icon-small{ font-size:1.35rem; color:var(--primary); }

/* ======= BLOQUE DESTACADO / MÓDULOS ======= */
.featured{ background: var(--bg-soft); }
.featured-content{ max-width: 1100px; margin: 0 auto; }
.module-block{
  background:#fff; border-radius: var(--radius); padding:1.25rem 1.1rem; margin:1rem 0;
  box-shadow: var(--shadow); border:1px solid #eef0f7;
}
.module-block h3{
  margin:.25rem 0 .5rem; font-size:1.15rem; color: var(--primary-600); display:flex; align-items:center; gap:.5rem;
}
.module-block p{ margin:.25rem 0 .5rem; color:var(--text); }
.module-block ul{ margin:.5rem 0 0 1.2rem; }

/* ======= CERTIFICACIÓN / LOGOS ======= */
.clients{ background:#fff; }
.clients-container{
  display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; align-items:center;
  max-width:1100px; margin:1.25rem auto 0;
}
.client-logo{
  flex: 0 1 180px; background:#fff; border-radius:12px; padding:.75rem 1rem;
  box-shadow: var(--shadow); display:flex; align-items:center; justify-content:center;
  transition:.25s ease;
}
.client-logo:hover{ transform: translateY(-3px); }
.client-logo img{ max-width:160px; max-height:70px; object-fit:contain; filter: grayscale(20%); }
.client-logo img:hover{ filter: grayscale(0); }

/* ======= TABLAS (cronograma) ======= */
.table-wrap{ max-width: 1100px; margin: 1rem auto 0; }
.table{
  width:100%; border-collapse: collapse; background:#fff; border-radius:12px; overflow:hidden;
  box-shadow: var(--shadow);
}
.table thead th{
  background: var(--primary); color:#fff; text-align:left; padding:.85rem; font-weight:700; font-size:.95rem;
}
.table tbody td{
  border-top:1px solid #eef0f7; padding:.8rem; font-size:.95rem; color:#333;
}
.table tbody tr:nth-child(odd){ background:#fafbff; }



/* ======= UTILIDADES ======= */
.table .nowrap{ white-space: nowrap; }
.text-center{ text-align:center; }

/* ======= RESPONSIVE ======= */
@media (max-width: 768px){

  .btn{ padding:.7rem 1rem; }
  .client-logo{ flex: 0 1 140px; }
  .client-logo img{ max-width:120px; max-height:56px; }
  .module-block{ padding:1rem; }
  .table thead{ display:none; }
  .table, .table tbody, .table tr, .table td{ display:block; width:100%; }
  .table tr{ background:#fff; margin:0 0 .75rem; border-radius:12px; box-shadow: var(--shadow); overflow:hidden; }
  .table td{
    border:none; border-top:1px solid #eef0f7; position:relative; padding-left:48%;
  }
  .table td::before{
    content: attr(data-label);
    position:absolute; left:1rem; top:50%; transform:translateY(-50%);
    font-weight:700; color:var(--muted); width:40%;
  }
}

/* ====== Fix de formularios en matriculas: apilado limpio ====== */

/* Normaliza labels e inputs para evitar solapes */
.contact-form label {
  display:block;
  margin-bottom: .35rem;
  font-weight: 600;
  color: var(--gn-navy);
}
.contact-form .input,
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="date"],
.contact-form input[type="tel"],
.contact-form input[type="number"],
.contact-form select,
.contact-form textarea {
  display:block;
  width:100%;
  min-height: 44px;
  padding: .6rem .75rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background:#fff;
  box-sizing: border-box; /* clave para que no se desborden */
}

/* Apilar SIEMPRE (también en desktop) las rejillas internas del form */
.form-stacked .card > div[style*="grid-template-columns"] {
  display:grid;
  grid-template-columns: 1fr !important; /* gana al inline style */
  gap: .75rem !important;
}

/* Si deseas 2 columnas solo en pantallas grandes, cambia aquí a 1fr 1fr */
@media (min-width: 1100px){
  .form-stacked.two-cols .card > div[style*="grid-template-columns"] {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* Evita que los select/inputs “crezcan” y empujen a otros */
.form-stacked select,
.form-stacked input,
.form-stacked textarea {
  max-width: 100%;
}

/* Un poco más de aire entre grupos y borde de tarjeta */
.form-stacked .card { padding: 1.1rem; }
.form-stacked .card + .card { margin-top: 1rem; }

.alliances-logos{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:1rem; align-items:center; margin:1rem 0;
}
.client-logo img{max-height:64px;width:auto;display:block;margin:0 auto;}
.convenio-analtrasec{
  margin-top:1.25rem;padding:1rem 1.25rem;border:1px solid #e5e7eb;
  border-radius:12px;background:#fafafa;
}
.founder-bio{display:grid;grid-template-columns:120px 1fr;gap:1rem;align-items:start;}
.founder-photo{width:120px;height:160px;object-fit:cover;border-radius:12px;border:1px solid #e5e7eb;}
@media (max-width:640px){.founder-bio{grid-template-columns:1fr;}}

/* --- Fundador: espaciar y centrar --- */
.founder { 
  padding: 24px 16px;              /* margen interno lateral de la sección */
}

.founder .founder-bio {
  display: grid;
  grid-template-columns: 136px 1fr;/* foto + texto */
  gap: 24px;                       /* espacio entre foto y texto */
  max-width: 1100px;               /* ancho legible */
  margin: 0 auto;                  /* centrar el bloque */
  
  /* “tarjeta” con aire interno para que la foto no toque el borde */
  padding: 20px 24px;              
  background: #fff;                
  border: 1px solid #e5e7eb;       
  border-radius: 14px;
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
}

.founder .founder-photo {
  width: 136px;
  height: 186px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  display: block;                  /* evita huecos raros por línea base */
}

@media (max-width: 640px) {
  .founder .founder-bio { grid-template-columns: 1fr; }
  .founder .founder-photo { margin: 0 auto; }
}


/* GALERÍA DE EXPERIENCIAS */
.gallery {
  max-width: 1200px;
  margin: 0 auto;
  padding: 4rem 1.5rem;
}

.gallery-intro {
  text-align: center;
  max-width: 700px;
  margin: 0.5rem auto 2.5rem;
  color: var(--text-muted, #b0b8c6);
  font-size: 0.95rem;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1.5rem;
}

.gallery-item {
  background: rgba(5, 15, 35, 0.9);
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.35);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.gallery-item img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease, filter 0.4s ease;
}

.gallery-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 35px rgba(0, 0, 0, 0.45);
}

.gallery-item:hover img {
  transform: scale(1.05);
  filter: brightness(1.05);
}

.gallery-item figcaption {
  padding: 0.75rem 1rem 1rem;
  font-size: 0.9rem;
  color: #e0e6f5;
}

.gallery-cta {
  text-align: center;
  margin-top: 2.5rem;
}

/* MINIATURAS */
.gallery {
  text-align: center;
  padding: 4rem 1.5rem;
}
.gallery-intro {
  max-width: 650px;
  margin: 0 auto 2rem;
  color: var(--text-muted, #b0b8c6);
}
.gallery-thumbs {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}
.gallery-thumbs img {
  width: 230px;
  height: 170px;
  object-fit: cover;
  border-radius: 12px;
  cursor: pointer;
  transition: 0.3s;
}
.gallery-thumbs img:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 18px rgba(0,0,0,0.4);
}

/* LIGHTBOX */
.lightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.92);
  justify-content: center;
  align-items: center;
  z-index: 9999;
}
.lightbox img {
  max-width: 85%;
  max-height: 85%;
  border-radius: 10px;
}
.lightbox .close {
  position: absolute;
  top: 20px;
  right: 35px;
  font-size: 40px;
  color: white;
  cursor: pointer;
}
.lightbox .prev,
.lightbox .next {
  position: absolute;
  top: 50%;
  font-size: 50px;
  color: white;
  cursor: pointer;
  user-select: none;
}
.lightbox .prev { left: 40px; }
.lightbox .next { right: 40px; }
