:root{
  --fontPrimary:'Poppins', sans-serif;
  --fontSecondary:'Playfair Display', serif;
  --fontAccent:'Antonio', sans-serif;

  --colorPrimary900:#0B2B5C;
  --colorPrimary700:#264D86;
  --colorPrimary500:#1657B9;
  --colorPrimary400:#1E78FD;
  --colorPrimary200:#88A9DB;
  --colorPrimary100:#C9DEFF;

  --colorSecondary900:#5C410B;
  --colorSecondary500:#B19050;
  --colorSecondary100:#FFEDC9;

  --colorNeutral900:#161616;
  --colorNeutral700:#4A4A4A;
  --colorNeutral100:#F2F2F2;
  --colorNeutral000:#FFFFFF;

  --navy:#061629;
  --navy2:#071f3a;
  --gold:#D9B65F;
  --gold2:#F3D17A;
  --line:rgba(255,255,255,.16);

  --siteHeaderHeight:112px;
  --container:1240px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--fontPrimary);
  color:var(--colorPrimary900);
  background:#fff;
}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}
.programa-page{overflow:hidden;background:#fff;}
.program-container{width:min(var(--container),calc(100% - 64px));margin-inline:auto;}

/* =========================================================
   HERO
========================================================= */

.program-hero{
  position:relative;
  min-height:610px;
  color:#fff;
  background:
    linear-gradient(90deg,rgba(3,15,29,.96) 0%,rgba(4,18,36,.92) 42%,rgba(4,18,36,.34) 64%,rgba(4,18,36,.86) 100%),
    var(--programaHeroImage) center right/cover no-repeat;
  isolation:isolate;
}

.program-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    radial-gradient(circle at 76% 22%,rgba(217,182,95,.22),transparent 24%),
    radial-gradient(circle at 12% 18%,rgba(30,120,253,.16),transparent 30%);
  pointer-events:none;
}

.program-hero_overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(1,8,18,.10),rgba(1,8,18,.24));
  pointer-events:none;
}

.program-hero_inner{
  position:relative;
  z-index:1;
  width:min(var(--container),calc(100% - 64px));
  min-height:610px;
  margin-inline:auto;
  padding:calc(var(--siteHeaderHeight) + 46px) 0 70px;

  display:grid;

  /* antes: minmax(0,680px) 150px */
  grid-template-columns:minmax(0,1fr) 180px;

  gap:120px; /* antes 80px */
  align-items:center;
}

.program-eyebrow,
.section-kicker{
  display:block;
  color:var(--gold2);
  font-size:13px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.program-title{
  max-width:none;
  margin:14px 0 22px;
  font-size:clamp(44px,5.1vw,74px);
  line-height:.95;
  font-weight:800;
  letter-spacing:-.045em;
  color:#fff;
}

.program-description{
  max-width:none;
  margin:0;
  color:rgba(255,255,255,.86);
  font-size:18px;
  line-height:1.65;
}

.program-facts{
  max-width:700px;
  margin-top:34px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 34px;
}

.program-fact{
  display:flex;
  align-items:flex-start;
  gap:12px;
  color:rgba(255,255,255,.84);
  font-size:15px;
  line-height:1.35;
}

.program-fact i{margin-top:2px;color:var(--gold2);font-size:17px;}
.program-fact strong{display:block;margin-top:2px;color:#fff;font-weight:700;}

.program-actions{
  margin-top:38px;
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}

.program-fact--full{
  grid-column: 1 / -1;
}

.btn-program{
  min-height:54px;
  padding:0 28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  border-radius:7px;
  border:1px solid transparent;
  font-size:14px;
  font-weight:800;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  cursor:pointer;
}

.btn-program:hover{transform:translateY(-2px);}
.btn-program--gold{color:#061629;background:linear-gradient(135deg,#F8DA88,#C99D3C);box-shadow:0 12px 26px rgba(217,182,95,.22);}
.btn-program--ghost{color:#fff;background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.58);}
.btn-program--ghost:hover{border-color:var(--gold2);}

.hero-stats{
  min-height:295px;
  padding:36px 28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:26px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:12px;
  background:linear-gradient(180deg,rgba(7,31,58,.92),rgba(5,20,38,.96));
  box-shadow:0 24px 50px rgba(0,0,0,.32);
  backdrop-filter:blur(12px);
}

.hero-stat strong{display:block;color:#fff;font-size:28px;line-height:1;font-weight:900;}
.hero-stat span{display:block;margin-top:9px;color:rgba(255,255,255,.78);font-size:12px;text-transform:uppercase;letter-spacing:.04em;}
.hero-stat-line{width:58px;height:1px;background:var(--gold);}

/* =========================================================
   BENEFITS
========================================================= */

.benefits-section{
  position:relative;
  padding:72px 0 84px;
  color:#fff;
  background:radial-gradient(circle at 50% 0%,rgba(30,120,253,.14),transparent 28%),linear-gradient(180deg,#071f3a,#041426);
}

.section-heading--center{text-align:center;}
.section-heading h2{
  margin:0;
  font-family:var(--fontSecondary);
  color:#fff;
  font-size:clamp(34px,4vw,48px);
  line-height:1.05;
  font-weight:500;
}
.section-heading h2 span{color:var(--gold2);}

.benefits-grid{
  margin-top:58px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
}

.benefit-card{
  min-height:190px;
  padding:0 54px;
  text-align:center;
  color:#fff;
}
.benefit-card:not(:last-child){border-right:1px solid rgba(255,255,255,.18);}
.benefit-card i{color:var(--gold);font-size:54px;margin-bottom:24px;}
.benefit-card h3{margin:0 0 12px;color:var(--gold2);font-size:18px;}
.benefit-card p{max-width:260px;margin:0 auto;color:rgba(255,255,255,.82);font-size:15px;line-height:1.65;}

/* =========================================================
   IMPACT
========================================================= */

.impact-section{
  min-height:390px;
  display:grid;
  grid-template-columns:1fr 1fr;
  color:#fff;
  background:#041426;
}

.impact-image{
  background:
    linear-gradient(
      90deg,
      rgba(4,20,38,.14) 0%,
      rgba(4,20,38,.65) 55%,
      rgba(4,20,38,1) 100%
    ),
    var(--programaResultadosImage, var(--programaHeroImage)) center left/cover no-repeat;
  filter:saturate(.86) contrast(1.05);
}

.impact-content{
  padding:78px max(48px,calc((100vw - var(--container))/2)) 72px 72px;
  background:#041426;
}

.impact-content h2{
  margin:14px 0 28px;
  font-family:var(--fontSecondary);
  font-size:clamp(34px,4vw,50px);
  line-height:1.05;
  font-weight:500;
}

.check-list{display:grid;gap:14px;margin:0;padding:0;list-style:none;}
.check-list li{display:flex;gap:12px;align-items:flex-start;color:rgba(255,255,255,.86);font-size:15px;line-height:1.45;}
.check-list i{margin-top:2px;color:var(--gold2);}

/* =========================================================
   PLAN
========================================================= */

.plan-section{
  padding:58px 0 24px;
  background:linear-gradient(180deg,#fff,#F7F7F7);
}

.plan-layout{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:48px;
  align-items:center;
}

.section-kicker{color:var(--gold);}
.plan-intro h2{
  margin:12px 0 22px;
  color:#071f3a;
  font-size:clamp(31px,4vw,45px);
  line-height:1;
  font-weight:900;
  letter-spacing:-.035em;
}
.plan-intro .btn-program{min-height:48px;padding-inline:22px;font-size:13px;}

.areas-grid{display:grid;grid-template-columns:repeat(3,1fr);}
.area-card{
  min-height:210px;
  padding:34px 34px 30px;
  background:#fff;
  border:1px solid rgba(7,31,58,.12);
  box-shadow:0 18px 35px rgba(7,31,58,.06);
}
.area-card:first-child{border-radius:10px 0 0 10px;}
.area-card:last-child{border-radius:0 10px 10px 0;}
.area-card i{color:#071f3a;font-size:44px;margin-bottom:24px;}
.area-card h3{margin:0 0 12px;color:#071f3a;font-size:19px;line-height:1.16;}
.area-card p{margin:0;color:#34455e;font-size:14px;line-height:1.6;}

/* =========================================================
   MODULES FULL
========================================================= */

.modules-section{margin-top:26px;}
.modules-full{
  padding:28px;
  background:#fff;
  border:1px solid rgba(7,31,58,.12);
  border-radius:14px;
  box-shadow:0 18px 35px rgba(7,31,58,.08);
  animation:modulesFade .25s ease both;
  margin-top: 2rem;
  opacity: 1;
  transform: translateY(0);
  transition: opacity .25s ease, transform .25s ease;
}

.modules-full[hidden] {
  display: none !important;
}

.modules-full.is-open {
  animation: modulesFadeIn .3s ease both;
}

@keyframes modulesFadeIn {
  from {
    opacity: 0;
    transform: translateY(18px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes modulesFade{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}
.modules-full-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:18px;margin-bottom:12px;border-bottom:1px solid rgba(7,31,58,.10);}
.modules-full-head > div,.modules-full-actions{display:flex;align-items:center;gap:12px;}
.modules-full-head i{color:var(--gold);font-size:22px;}
.modules-full-head h3{margin:0;color:#071f3a;font-size:22px;}
.modules-full-actions span{color:#34455e;font-size:14px;font-weight:700;}
.modules-full-actions button{width:38px;height:38px;border:0;background:#f5f6f8;border-radius:50%;cursor:pointer;}
.modules-full-grid{display:grid;grid-template-columns:repeat(4,1fr);}
.module-full-item{min-height:105px;padding:18px 14px;display:grid;grid-template-columns:36px 38px 1fr;gap:12px;align-items:center;border-bottom:1px solid rgba(7,31,58,.08);}
.module-full-item:not(:nth-child(4n)){border-right:1px solid rgba(7,31,58,.08);}
.module-full-item span{color:var(--gold);font-family:var(--fontAccent);font-size:24px;font-weight:800;}
.module-full-item i{color:#071f3a;font-size:25px;text-align:center;}
.module-full-item h3{margin:0;color:#071f3a;font-size:13px;line-height:1.35;}

/* =========================================================
   CTA FINAL
========================================================= */

.final-cta{
  width:min(var(--container),calc(100% - 64px));
  margin:34px auto 54px;
  min-height:160px;
  position:relative;
  overflow:hidden;

  display:grid;
  grid-template-columns:1fr 300px;
  gap:28px;
  align-items:center;

  padding:28px 34px 28px 320px;

  color:#fff;
  border-radius:24px;
  background:#04173f;
  box-shadow:0 24px 45px rgba(7,31,58,.16);
}

/* Imagen + degradado de fondo */
.final-cta::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;

  background-image:
    linear-gradient(
  90deg,
  rgba(4,23,63,.10) 0%,
  rgba(4,23,63,.70) 15%,
  rgba(4,23,63,.95) 25%,
  rgba(4,23,63,1) 35%
    ),
    url("/img/ofertaAcademica/banner-contacto-ofertaAcademica.png");

  background-size:cover;
  background-position:left center;
  background-repeat:no-repeat;
}

/* Ocultamos el div anterior de imagen */
.final-cta_image{
  display:none;
}

/* Textos y botones arriba del degradado */
.final-cta_content,
.final-cta_actions{
  position:relative;
  z-index:1;
}

.final-cta_content h2{
  margin:0 0 8px;
  color:#fff;
  font-size:27px;
  line-height:1.12;
  font-weight:800;
}

.final-cta_content h2 span{
  color:var(--gold2);
}

.final-cta_content p{
  margin:0 0 22px;
  color:var(--gold2);
  font-weight:700;
}

.cta-badges{
  display:flex;
  flex-wrap:wrap;
  gap:22px;
  color:rgba(255,255,255,.82);
  font-size:13px;
}

.cta-badges span{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.cta-badges i{
  color:var(--gold2);
}

.final-cta_actions{
  display:grid;
  gap:14px;
}

.final-cta_actions .btn-program{
  width:100%;
  min-height:48px;
}
/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:1100px){
  :root{--siteHeaderHeight:96px;}
  .program-hero_inner{grid-template-columns:1fr;gap:34px;align-items:end;}
  .hero-stats{max-width:360px;min-height:auto;flex-direction:row;align-items:center;}
  .hero-stat-line{width:1px;height:58px;}
  .benefit-card{padding-inline:28px;}
  .plan-layout{grid-template-columns:1fr;}
  .modules-full-grid{grid-template-columns:repeat(2,1fr);}
  .module-full-item:not(:nth-child(4n)){border-right:0;}
  .module-full-item:not(:nth-child(2n)){border-right:1px solid rgba(7,31,58,.08);}
  .final-cta{grid-template-columns:1fr;padding:28px;}
  .final-cta_image{display:none;}
}

@media(max-width:760px){
  :root{--siteHeaderHeight:82px;}
  .program-container,.program-hero_inner,.final-cta{width:min(100% - 36px,var(--container));}
  .program-hero{min-height:auto;background:linear-gradient(135deg,rgba(3,15,29,.98),rgba(7,31,58,.94)),var(--programaHeroImage) center/cover no-repeat;}
  .program-hero_inner{min-height:auto;padding:calc(var(--siteHeaderHeight) + 36px) 0 48px;}
  .program-title{font-size:42px;}
  .program-description{font-size:16px;}
  .program-facts{grid-template-columns:1fr;gap:14px;}
  .program-actions{display:grid;}
  .hero-stats{width:100%;justify-content:space-between;}
  .benefits-section{padding:54px 0;}
  .benefits-grid{grid-template-columns:1fr;margin-top:40px;gap:30px;}
  .benefit-card{border-right:0!important;padding:0 12px 30px;border-bottom:1px solid rgba(255,255,255,.14);}
  .benefit-card:last-child{border-bottom:0;padding-bottom:0;}
  .impact-section{grid-template-columns:1fr;}
  .impact-image{min-height:240px;}
  .impact-content{padding:44px 24px 48px;}
  .areas-grid{grid-template-columns:1fr;gap:14px;}
  .area-card,.area-card:first-child,.area-card:last-child{border-radius:10px;}
  .modules-full{padding:18px;}
  .modules-full-head{align-items:flex-start;flex-direction:column;}
  .modules-full-grid{grid-template-columns:1fr;}
  .module-full-item{grid-template-columns:34px 38px 1fr;padding:16px 0;}
  .module-full-item:not(:nth-child(2n)){border-right:0;}
  .final-cta{margin-bottom:40px;}
  .cta-badges{display:grid;gap:12px;}
}


/* =========================================================
   HERO FACTS CUSTOM: coordinador + inicios / modalidad duración rvoe
   Agregado sin tocar estilos existentes
========================================================= */

.program-facts--hero-custom{
  grid-template-columns:1.35fr 1fr 1fr;
  gap:0;
  padding-top:6px;
}

.program-facts--hero-custom .program-fact{
  min-height:74px;
  padding:0 28px;
  align-items:center;
  border-right:1px solid rgba(255,255,255,.16);
}

.program-facts--hero-custom .program-fact:nth-child(1),
.program-facts--hero-custom .program-fact:nth-child(2){
  border-bottom:1px solid rgba(255,255,255,.16);
  padding-bottom: 10px;
}

.program-facts--hero-custom .program-fact:nth-child(2){
  grid-column:2 / 4;
}

.program-facts--hero-custom .program-fact:nth-child(3),
.program-facts--hero-custom .program-fact:nth-child(4),
.program-facts--hero-custom .program-fact:nth-child(5){
  border-bottom:0;
}

.program-facts--hero-custom .program-fact:nth-child(5),
.program-facts--hero-custom .program-fact:nth-child(2){
  border-right:0;
}

.program-facts--hero-custom .program-fact:first-child,
.program-facts--hero-custom .program-fact:nth-child(3){
  padding-left:0;
}

.program-facts--hero-custom .program-fact--coordinator{
  gap:18px;
}

.program-coordinator-photo{
  width:78px;
  height:78px;
  flex:0 0 78px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid rgba(255,255,255,.78);
  box-shadow:0 12px 24px rgba(0,0,0,.24);
}

.program-facts--hero-custom .program-fact--coordinator span{
  color:var(--gold2);
  font-size:15px;
}

.program-facts--hero-custom .program-fact--coordinator strong{
  color:#fff;
  font-size:16px;
  line-height:1.3;
}

@media(max-width:1100px){
  .program-facts--hero-custom{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .program-facts--hero-custom .program-fact,
  .program-facts--hero-custom .program-fact:nth-child(2),
  .program-facts--hero-custom .program-fact:nth-child(5){
    grid-column:auto;
    padding:0;
    border-right:0;
    border-bottom:0;
  }
}

@media(max-width:760px){
  .program-facts--hero-custom{
    grid-template-columns:1fr;
    gap:14px;
  }

  .program-facts--hero-custom .program-fact{
    min-height:auto;
  }

  .program-coordinator-photo{
    width:64px;
    height:64px;
    flex-basis:64px;
  }
}
