/* ═══════════════════════════════════════════
   EBEN-EZER · SITIO INSTITUCIONAL (página pública)
   Estilo tipo portal universitario. Independiente
   del campus virtual (base/components/campus.css).
═══════════════════════════════════════════ */
:root{
  --nv:#12314a;      /* azul petróleo oscuro */
  --bl:#1f5d87;      /* azul institucional */
  --bl2:#2f7ea4;
  --mint:#55a6b5;    /* menta */
  --gold:#b8860b;    /* dorado acento */
  --orange:#ee8b00;  /* naranja institucional (CTA) */
  --ink:#243642;
  --muted:#5d7280;
  --line:#dfe7ec;
  --bg:#f4f7f9;
  --card:#ffffff;
  --wrap:1180px;
  --sh-sm:0 2px 10px rgba(18,49,74,.07);
  --sh-md:0 12px 34px rgba(18,49,74,.13);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Nunito',system-ui,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px;}
h1,h2,h3,.eyebrow{font-family:'Exo 2',system-ui,sans-serif;}

/* ── HEADER ─────────────────────────────── */
.topline{background:var(--nv);color:rgba(255,255,255,.7);font-size:.76em;}
.topline .wrap{display:flex;justify-content:space-between;align-items:center;height:34px;}
.topline a{color:rgba(255,255,255,.75);}
.topline a:hover{color:#fff;}
.topline .tl-right{display:flex;gap:16px;}

.site-header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--sh-sm);}
.site-header .wrap{display:flex;align-items:center;gap:24px;height:76px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand-logo{width:46px;height:46px;border-radius:50%;overflow:hidden;flex-shrink:0;
  background:var(--bl);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.4em;
  border:2px solid rgba(31,93,135,.25);}
.brand-logo img{width:100%;height:100%;object-fit:cover;}
.brand-txt strong{display:block;font-family:'Exo 2',sans-serif;font-weight:900;font-size:1.02rem;
  color:var(--nv);letter-spacing:.5px;line-height:1.1;}
.brand-txt small{display:block;font-size:.7rem;color:var(--muted);letter-spacing:.3px;}

.main-nav{display:flex;gap:4px;margin-left:auto;}
.main-nav a{padding:9px 13px;border-radius:6px;font-weight:700;font-size:.9rem;color:var(--ink);transition:background .18s,color .18s;}
.main-nav a:hover{background:var(--bg);color:var(--bl);}

.btn-campus{background:linear-gradient(135deg,var(--bl),var(--bl2));color:#fff;
  padding:11px 20px;border-radius:8px;font-family:'Exo 2',sans-serif;font-weight:800;font-size:.86rem;
  letter-spacing:1px;text-transform:uppercase;box-shadow:0 6px 18px rgba(31,93,135,.32);transition:transform .18s,box-shadow .18s;white-space:nowrap;}
.btn-campus:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(31,93,135,.42);}

.nav-toggle{display:none;background:none;border:none;font-size:1.6rem;color:var(--nv);cursor:pointer;margin-left:auto;}

/* ── HERO ───────────────────────────────── */
.hero{background:
  linear-gradient(115deg,rgba(15,42,64,.95) 0%,rgba(15,42,64,.86) 48%,rgba(31,93,135,.72) 100%),
  url("../img/aval-ebenezer.jpg");
  background-size:cover;background-position:center 32%;
  color:#fff;padding:76px 0 84px;position:relative;overflow:hidden;}
.hero::after{content:"";position:absolute;right:-140px;bottom:-160px;width:440px;height:440px;
  border-radius:50%;border:1px solid rgba(255,255,255,.08);pointer-events:none;}
.hero .wrap{display:grid;grid-template-columns:1.35fr 1fr;gap:48px;align-items:center;position:relative;z-index:1;}
.eyebrow{font-size:.76rem;letter-spacing:3px;text-transform:uppercase;color:var(--mint);font-weight:700;margin-bottom:14px;}
.hero h1{font-size:clamp(2rem,3.6vw,3rem);font-weight:900;line-height:1.12;margin-bottom:18px;letter-spacing:.5px;}
.hero .lead{font-size:1.06rem;color:rgba(255,255,255,.82);max-width:540px;margin-bottom:28px;}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;}
.btn-primary,.btn-outline{padding:14px 26px;border-radius:9px;font-family:'Exo 2',sans-serif;font-weight:800;
  font-size:.9rem;letter-spacing:.8px;text-transform:uppercase;transition:transform .18s,background .18s;}
.btn-primary{background:var(--orange);color:#fff;box-shadow:0 8px 22px rgba(238,139,0,.4);}
.btn-primary:hover{transform:translateY(-2px);}
.btn-outline{border:2px solid rgba(255,255,255,.55);color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,.12);}
.hero-verse{background:rgba(9,26,40,.42);border:1px solid rgba(255,255,255,.16);border-radius:14px;
  padding:26px 28px;backdrop-filter:blur(3px);}
.hero-verse p{font-family:'Playfair Display',serif;font-style:italic;font-size:1.08rem;line-height:1.75;color:rgba(255,255,255,.92);}
.hero-verse span{display:block;margin-top:12px;font-family:'Exo 2',sans-serif;font-size:.74rem;letter-spacing:2px;
  text-transform:uppercase;color:var(--mint);font-weight:700;}

/* ── SECCIONES ──────────────────────────── */
section{padding:66px 0;}
.sec-head{text-align:center;max-width:640px;margin:0 auto 42px;}
.sec-head .tag{font-size:.74rem;letter-spacing:3px;text-transform:uppercase;color:var(--bl);font-weight:700;}
.sec-head h2{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:900;color:var(--nv);margin:8px 0 10px;}
.sec-head p{color:var(--muted);}

/* Accesos rápidos */
.quick{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.q-card{border:1px solid var(--line);border-radius:14px;padding:26px 22px;transition:transform .2s,box-shadow .2s,border-color .2s;}
.q-card:hover{transform:translateY(-4px);box-shadow:var(--sh-md);border-color:rgba(31,93,135,.35);}
.q-card .ic{font-size:1.9rem;margin-bottom:12px;}
.q-card h3{font-size:1.02rem;font-weight:900;color:var(--nv);margin-bottom:6px;}
.q-card p{font-size:.88rem;color:var(--muted);}

/* Indicadores */
.stats{background:linear-gradient(135deg,var(--nv),var(--bl));color:#fff;}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;}
.stat .n{font-family:'Exo 2',sans-serif;font-size:2.6rem;font-weight:900;color:#fff;line-height:1;}
.stat .l{font-size:.8rem;letter-spacing:2px;text-transform:uppercase;color:var(--mint);font-weight:700;margin-top:8px;}

/* Niveles + áreas */
.niveles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:40px;}
.nivel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px 24px;border-top:4px solid var(--mint);box-shadow:var(--sh-sm);}
.nivel:nth-child(2){border-top-color:var(--bl);}
.nivel:nth-child(3){border-top-color:var(--gold);}
.nivel .step{font-family:'Exo 2',sans-serif;font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-weight:700;}
.nivel h3{font-size:1.15rem;font-weight:900;color:var(--nv);margin:6px 0 8px;}
.nivel p{font-size:.9rem;color:var(--muted);}
/* Programas académicos — mismo estilo que "Niveles de formación" */
.programas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}

/* Identidad / valores */
.identidad{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.mv{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:40px;}
.mv-card{border:1px solid var(--line);border-left:4px solid var(--bl);border-radius:12px;padding:24px 26px;}
.mv-card h3{font-size:1.05rem;font-weight:900;color:var(--nv);margin-bottom:8px;}
.mv-card p{color:var(--muted);font-size:.95rem;}
.valores{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.valores span{background:var(--bg);border:1px solid var(--line);border-radius:30px;padding:8px 18px;font-weight:700;font-size:.86rem;color:var(--nv);}

/* Sedes — tarjeta con cabecera y pastor (estilo portal) */
.sedes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.sede{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;
  box-shadow:var(--sh-sm);transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column;}
.sede:hover{transform:translateY(-6px);box-shadow:var(--sh-md);}
.sede-head{position:relative;height:230px;background:#eef2f5;overflow:hidden;}
.sede-ghost{display:none;}
.sede-person{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;display:block;}
.sede-upload{position:absolute;top:10px;right:10px;z-index:2;width:36px;height:36px;border-radius:50%;
  background:rgba(18,49,74,.72);color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:1.05rem;cursor:pointer;transition:background .15s,transform .15s;box-shadow:0 2px 8px rgba(0,0,0,.25);}
.sede-upload:hover{background:rgba(18,49,74,.92);transform:scale(1.07);}
.sede-upload input{display:none;}
.sede-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:8px;flex:1;}
.sede-body h4{font-family:'Exo 2',sans-serif;font-size:1.05rem;font-weight:900;color:var(--nv);}
.sede-desc{font-size:.83rem;color:var(--muted);font-weight:600;}
.sede-pastor{display:flex;align-items:center;margin-top:auto;padding-top:12px;border-top:1px solid var(--line);}
.sede-pastor .pn{display:flex;flex-direction:column;line-height:1.25;}
.sede-pastor .pn b{font-family:'Exo 2',sans-serif;font-size:.9rem;color:var(--nv);}
.sede-pastor .pn small{font-size:.72rem;color:var(--muted);font-weight:600;}

/* Franja de aval / acuerdo ministerial */
.aval-band{position:relative;text-align:center;color:#fff;padding:78px 0;
  background:linear-gradient(135deg,var(--nv),var(--bl2));}
.aval-band::before{content:"";position:absolute;inset:0;opacity:.09;pointer-events:none;
  background:url("../img/aval-ebenezer.jpg") center/cover;}
.aval-band .wrap{position:relative;}
.aval-band .tag{color:var(--mint);}
.aval-band h2{font-family:'Exo 2',sans-serif;font-size:clamp(1.6rem,3vw,2.3rem);font-weight:900;letter-spacing:2px;margin:10px 0 2px;}
.aval-sub{font-family:'Playfair Display',serif;font-style:italic;font-size:1.05rem;color:rgba(255,255,255,.85);margin-bottom:16px;}
.aval-txt{max-width:640px;margin:0 auto;font-size:.98rem;line-height:1.75;color:rgba(255,255,255,.9);}
.aval-txt strong{color:var(--mint);}

/* Franja CTA */
.cta-band{background:linear-gradient(135deg,var(--gold),#d8a43a);color:#3a2a00;text-align:center;}
.cta-band h2{font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:900;margin-bottom:8px;}
.cta-band p{margin-bottom:22px;font-weight:600;}
.cta-band .btn-primary{background:var(--nv);color:#fff;}
.cta-band .btn-outline{border-color:rgba(58,42,0,.5);color:#3a2a00;}

/* ── FOOTER ─────────────────────────────── */
.site-footer{background:var(--nv);color:rgba(255,255,255,.72);padding:56px 0 0;font-size:.9rem;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;padding-bottom:40px;}
.site-footer h4{font-family:'Exo 2',sans-serif;color:#fff;font-size:.82rem;letter-spacing:2px;text-transform:uppercase;margin-bottom:14px;}
.site-footer a{color:rgba(255,255,255,.72);}
.site-footer a:hover{color:var(--mint);}
.site-footer ul{list-style:none;display:flex;flex-direction:column;gap:8px;}
.foot-brand strong{font-family:'Exo 2',sans-serif;color:#fff;font-size:1.05rem;display:block;margin-bottom:8px;}
.acuerdo{margin-top:14px;font-size:.8rem;color:rgba(255,255,255,.55);}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);padding:18px 0;text-align:center;font-size:.8rem;color:rgba(255,255,255,.5);}

/* ── RESPONSIVE ─────────────────────────── */
@media(max-width:960px){
  .hero .wrap{grid-template-columns:1fr;gap:32px;}
  .quick-grid,.stats-grid,.programas-grid,.sedes-grid{grid-template-columns:repeat(2,1fr);}
  .niveles-grid,.mv{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;gap:26px;}
}
@media(max-width:760px){
  .main-nav,.btn-campus{display:none;}
  .nav-toggle{display:block;}
  .site-header.open .main-nav{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;
    background:#fff;border-bottom:1px solid var(--line);padding:10px 24px;box-shadow:var(--sh-md);}
  .site-header.open .btn-campus{display:block;position:absolute;top:calc(76px + 220px);left:24px;right:24px;text-align:center;}
  .topline{display:none;}
}
@media(max-width:620px){
  .programas-grid,.sedes-grid{grid-template-columns:1fr;}
  .aval-band{background-attachment:scroll;padding:60px 0;}
}
@media(max-width:460px){
  .quick-grid,.stats-grid{grid-template-columns:1fr;}
}
