/* Página de inicio (index.php). Estilo inspirado en la landing de Fundación Crismar,
   con la paleta del logo: azul, dorado y rojo. No afecta a las demás páginas. */
:root{
  --h-navy:#15366b;
  --h-navy-2:#0f2a55;
  --h-navy-3:#1d4585;
  --h-gold:#e0a526;
  --h-gold-2:#c98f12;
  --h-red:#a8201f;
  --h-ink:#0f172a;
  --h-text:#334155;
  --h-muted:#64748b;
  --h-soft:#f8fafc;
  --h-line:#eef2f7;
  --h-shadow:0 15px 40px -25px rgba(21,54,107,.35);
  --h-shadow-lg:0 25px 50px -25px rgba(21,54,107,.5);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.home{margin:0;overflow-x:clip;font-family:'Instrument Sans',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;color:var(--h-text);background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased}
:where(.home) a{color:inherit;text-decoration:none}
:where(.home) img{max-width:100%;display:block}
:where(.home) :is(h1,h2,h3,p){margin:0}
:where(.home) :is(h1,h2,h3){color:var(--h-ink);line-height:1.2;letter-spacing:-.01em}
:where(.home) [data-lucide]{width:1.25em;height:1.25em;flex-shrink:0}
.wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 24px}
.wrap-md{max-width:1152px}
.wrap-sm{max-width:1024px}

/* ---------- Loader ---------- */
.loader{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#fff;transition:opacity .5s}
.loader.hide{opacity:0;pointer-events:none}
.loader-ring{position:relative;display:flex;width:96px;height:96px;align-items:center;justify-content:center}
.loader-ring:before{content:'';position:absolute;inset:0;border-radius:50%;border:4px solid rgba(21,54,107,.12);border-top-color:var(--h-gold);animation:spin 1s linear infinite}
.loader-ring img{width:58px;height:58px;object-fit:contain}
.loader p{margin-top:20px;text-align:center;font-size:.85rem;color:#94a3b8;letter-spacing:.03em}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Botones ---------- */
.btn-h{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:12px;padding:14px 26px;font-size:.9rem;font-weight:700;transition:.2s;border:1px solid transparent;cursor:pointer;font-family:inherit}
.btn-h svg{width:18px;height:18px}
.btn-navy{background:var(--h-navy);color:#fff;box-shadow:0 10px 25px -10px rgba(21,54,107,.6)}
.btn-navy:hover{background:var(--h-navy-3)}
.btn-ghost{background:rgba(255,255,255,.85);color:var(--h-navy);border-color:rgba(21,54,107,.25);backdrop-filter:blur(6px)}
.btn-ghost:hover{background:#fff}
.btn-ghost svg{color:var(--h-gold-2)}
.btn-white{background:#fff;color:var(--h-navy);box-shadow:0 10px 25px -10px rgba(0,0,0,.35)}
.btn-white:hover{background:#f1f5f9}
.btn-gold{background:var(--h-gold);color:var(--h-navy-2)}
.btn-gold:hover{background:#ecb53d}
.btn-outline{border-color:rgba(21,54,107,.2);color:var(--h-navy);padding:10px 20px;border-radius:10px;font-weight:600}
.btn-outline:hover{background:rgba(21,54,107,.05)}

/* ---------- Header ---------- */
.hdr{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--h-line)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:84px}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand img{height:62px;width:auto}
.brand-sep{width:1px;height:36px;background:#e2e8f0}
.brand-txt{font-size:11px;line-height:1.25;font-weight:600;color:#94a3b8}
.brand-txt strong{display:block;color:var(--h-navy);font-size:13px;font-weight:800}
.menu{display:flex;align-items:center;gap:22px;white-space:nowrap;font-size:.88rem;font-weight:600;color:#334155}
.menu > a,.menu .drop > a{display:flex;align-items:center;gap:4px;padding-bottom:4px;border-bottom:2px solid transparent;transition:color .2s}
.menu > a:hover,.menu .drop > a:hover{color:var(--h-navy)}
.menu a.on{color:var(--h-navy);border-bottom-color:var(--h-navy)}
.pill{display:inline-flex!important;align-items:center;gap:6px;border-radius:999px;padding:8px 14px!important;border:0!important;background:rgba(224,165,38,.14);color:#9a6b05;font-weight:700}
.pill:hover{background:rgba(224,165,38,.25);color:#9a6b05!important}
.pill svg{width:16px;height:16px}
.drop{position:relative;display:flex;align-items:center;height:84px}
.drop > a svg{width:16px;height:16px;color:#94a3b8;transition:transform .2s}
.drop:hover > a svg{transform:rotate(180deg)}
.drop-menu{position:absolute;top:100%;left:0;z-index:50;min-width:300px;max-height:70vh;overflow-y:auto;padding:8px;border-radius:12px;border:1px solid var(--h-line);background:#fff;box-shadow:0 20px 40px -15px rgba(15,23,42,.25);opacity:0;visibility:hidden;transform:translateY(-4px);transition:.15s}
.drop:hover .drop-menu,.drop:focus-within .drop-menu{opacity:1;visibility:visible;transform:none}
.drop-menu a{display:block;padding:8px 12px;border-radius:8px;font-weight:500;color:#334155}
.drop-menu a:hover{background:rgba(21,54,107,.05);color:var(--h-navy)}
.drop-menu .all{margin-top:4px;border-top:1px solid var(--h-line);border-radius:0;font-weight:700;color:var(--h-navy)}
.drop-menu .empty{padding:8px 12px;color:#94a3b8;font-size:.85rem}
.hdr-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
.hdr-actions .btn-h{padding:10px 18px;border-radius:10px;font-size:.85rem}
.hdr-actions .btn-outline{font-weight:600}
.burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;border-radius:10px;border:1px solid #e2e8f0;background:#fff;color:var(--h-navy);cursor:pointer}

/* Menú lateral móvil */
.scrim{position:fixed;inset:0;z-index:50;background:rgba(15,23,42,.4);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .3s}
.side{position:fixed;top:0;right:0;z-index:51;visibility:hidden;display:flex;flex-direction:column;width:86%;max-width:380px;height:100%;background:#fff;box-shadow:-20px 0 50px rgba(15,23,42,.2);transform:translateX(100%);transition:transform .3s}
body.nav-open{overflow:hidden}
body.nav-open .scrim{opacity:1;pointer-events:auto}
body.nav-open .side{transform:none;visibility:visible}
.side-top{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--h-line)}
.side-top img{height:48px}
.side-top button{width:40px;height:40px;border:0;background:none;border-radius:10px;color:#64748b;cursor:pointer}
.side-links{flex:1;overflow-y:auto;padding:16px}
.side-links > a{display:block;padding:12px 16px;border-radius:10px;font-weight:600;color:#334155}
.side-links > a:hover{background:var(--h-soft)}
.side-links .pill{display:flex!important;margin-bottom:8px;border-radius:12px;padding:12px 16px!important}
.side-sub{margin:0 0 6px 12px;padding-left:12px;border-left:2px solid var(--h-line)}
.side-sub a{display:block;padding:8px 12px;border-radius:8px;font-size:.88rem;color:#475569}
.side-bottom{display:grid;gap:12px;padding:20px;border-top:1px solid var(--h-line)}
.side-bottom .btn-h{width:100%}

/* ---------- Portada ---------- */
.hero-h{position:relative;min-height:560px;display:flex;align-items:center;overflow:hidden}
.hero-h > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% center}
.hero-h:before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#fff 40%,rgba(255,255,255,.85) 60%,rgba(255,255,255,0))}
.hero-h .wrap{position:relative;z-index:2;padding-top:70px;padding-bottom:110px}
.hero-box{max-width:600px}
.tag{display:inline-flex;align-items:center;gap:8px;border-radius:999px;background:rgba(21,54,107,.1);padding:6px 16px;font-size:.85rem;font-weight:700;color:var(--h-navy)}
.tag svg{width:16px;height:16px}
.hero-h h1{margin-top:20px;font-size:clamp(2rem,4.4vw,3.2rem);font-weight:800;line-height:1.13;color:var(--h-navy)}
.hero-h h1 span{color:var(--h-red)}
.hero-h p{margin-top:16px;max-width:480px;font-size:1.02rem;color:#475569}
.hero-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}

/* ---------- KPIs ---------- */
.kpis{position:relative;z-index:10;margin-top:-48px;display:grid;grid-template-columns:repeat(4,1fr);border-radius:18px;border:1px solid var(--h-line);background:#fff;padding:24px;box-shadow:0 20px 50px -25px rgba(21,54,107,.35)}
.kpi{display:flex;align-items:center;gap:12px;min-width:0;padding:0 24px}
.kpi + .kpi{border-left:1px solid var(--h-line)}
.kpi-ico{display:flex;width:48px;height:48px;flex-shrink:0;align-items:center;justify-content:center;border-radius:50%;color:#fff}
.kpi-ico svg{width:24px;height:24px}
.kpi strong{display:block;font-size:1.45rem;font-weight:800;color:var(--h-ink);line-height:1.2}
.kpi span{display:block;font-size:.85rem;line-height:1.3;color:var(--h-muted)}
.bg-navy{background:var(--h-navy)}.bg-gold{background:var(--h-gold)}.bg-red{background:var(--h-red)}
.tx-navy{color:var(--h-navy)}.tx-gold{color:var(--h-gold-2)}.tx-red{color:var(--h-red)}

/* ---------- Secciones ---------- */
.sec{padding:80px 0}
.sec-soft{background:var(--h-soft)}
.sec-head{text-align:center}
.over{font-size:.85rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--h-red)}
.sec-head h2,.about h2{margin-top:8px;font-size:clamp(1.8rem,3.2vw,2.3rem);font-weight:800}
.sec-head p.sub{margin-top:12px;color:var(--h-muted)}
.card-h{border-radius:18px;border:1px solid var(--h-line);background:#fff;box-shadow:var(--h-shadow)}

/* Características */
.feats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:56px 0 16px}
.feat{padding:24px;transition:.25s}
.feat:hover{transform:translateY(-4px);box-shadow:var(--h-shadow-lg)}
.feat-ico{display:flex;width:48px;height:48px;align-items:center;justify-content:center;border-radius:12px;color:#fff}
.feat-ico svg{width:24px;height:24px}
.feat h3{margin-top:16px;font-size:1.1rem;font-weight:700}
.feat p{margin-top:8px;font-size:.9rem;color:var(--h-muted)}
.more{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:.88rem;font-weight:700}
.more svg{width:16px;height:16px}

/* Programas / servicios */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:56px}
.prog{display:flex;flex-direction:column;overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 10px 40px -15px rgba(21,54,107,.25);transition:.25s}
.prog:hover{transform:translateY(-4px);box-shadow:0 20px 50px -15px rgba(21,54,107,.35)}
.prog-img{height:190px;width:100%;object-fit:cover}
.prog-ph{display:flex;height:190px;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--h-navy),var(--h-navy-3));color:rgba(255,255,255,.8)}
.prog-ph svg{width:56px;height:56px}
.prog-body{display:flex;flex:1;flex-direction:column;padding:24px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.chips span{border-radius:999px;background:rgba(21,54,107,.07);padding:3px 10px;font-size:.72rem;font-weight:700;color:var(--h-navy)}
.chips span.gold{background:rgba(224,165,38,.16);color:#8a5f04}
.prog h3{font-size:1.05rem;font-weight:700}
.prog p{flex:1;margin-top:8px;font-size:.9rem;color:var(--h-muted)}
.prog .btn-outline{align-self:flex-start;margin-top:20px}
.center-link{margin-top:40px;text-align:center}
.center-link a{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;font-weight:700;color:var(--h-navy)}
.center-link a:hover{text-decoration:underline;text-underline-offset:4px}
.center-link svg{width:16px;height:16px}
.empty-h{margin-top:48px;text-align:center;color:var(--h-muted)}

/* Nosotros */
.about{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.about > img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:15% center;border-radius:28px;box-shadow:0 25px 60px -25px rgba(21,54,107,.45)}
.about .lead{margin-top:16px;color:#475569}
.vals{display:grid;gap:20px;margin-top:32px}
.val{display:flex;gap:16px}
.val-ico{display:flex;width:44px;height:44px;flex-shrink:0;align-items:center;justify-content:center;border-radius:12px;background:rgba(21,54,107,.1);color:var(--h-navy)}
.val-ico svg{width:20px;height:20px}
.val h3{font-size:1rem;font-weight:700}
.val p{font-size:.9rem;color:var(--h-muted)}

/* Pasos */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:64px}
.step{position:relative;padding:28px 24px 24px;text-align:center}
.step-n{position:absolute;top:-12px;left:50%;transform:translateX(-50%);display:flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%;background:var(--h-gold);font-size:.75rem;font-weight:800;color:var(--h-navy-2)}
.step-ico{display:flex;width:56px;height:56px;margin:0 auto;align-items:center;justify-content:center;border-radius:16px;background:var(--h-navy);color:#fff}
.step-ico svg{width:24px;height:24px}
.step h3{margin-top:16px;font-size:1rem;font-weight:700}
.step p{margin-top:6px;font-size:.9rem;color:var(--h-muted)}

/* Sedes */
.sedes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px}
.sede{padding:28px}
.sede-top{display:flex;align-items:center;gap:12px}
.sede-flag{display:flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:12px;background:rgba(21,54,107,.08);font-size:1.4rem}
.sede h3{font-size:1.05rem;font-weight:800}
.sede small{display:block;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--h-red)}
.sede p{margin-top:16px;font-size:.9rem;color:#475569}

/* Contacto */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:56px}
.c-list{display:grid;gap:16px;align-content:start}
.c-item{display:flex;align-items:center;gap:16px;padding:20px;border-radius:18px;border:1px solid var(--h-line);background:#fff;transition:.2s}
a.c-item:hover{box-shadow:0 10px 25px -12px rgba(15,23,42,.2)}
.c-ico{display:flex;width:48px;height:48px;flex-shrink:0;align-items:center;justify-content:center;border-radius:12px;color:#fff}
.c-ico svg{width:24px;height:24px}
.c-item strong{display:block;color:var(--h-ink)}
.c-item span{font-size:.9rem;color:var(--h-muted)}
.c-form{display:grid;gap:16px;padding:24px}
.c-form label{font-size:.88rem;font-weight:600;color:#334155}
.c-form input,.c-form select,.c-form textarea{margin-top:4px;width:100%;border-radius:10px;border:1px solid #e2e8f0;padding:11px 16px;font:inherit;font-size:.9rem;color:var(--h-ink);background:#fff;outline:none}
.c-form input:focus,.c-form select:focus,.c-form textarea:focus{border-color:var(--h-navy);box-shadow:0 0 0 3px rgba(21,54,107,.15)}
.c-form .btn-h{width:100%}

/* Bloque Aula Virtual */
.aula{position:relative;overflow:hidden;border-radius:28px;background:linear-gradient(135deg,var(--h-navy-2),var(--h-navy),var(--h-navy-3));padding:48px 56px;box-shadow:0 25px 60px -25px rgba(21,54,107,.55)}
.aula-bg{position:absolute;right:-30px;bottom:-40px;width:256px;height:256px;color:rgba(255,255,255,.08)}
.aula-in{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.aula .tag{background:rgba(255,255,255,.15);color:#fff}
.aula h2{margin-top:20px;font-size:clamp(1.8rem,3.2vw,2.3rem);font-weight:800;color:#fff}
.aula h2 span{color:var(--h-gold)}
.aula p.lead{margin-top:16px;max-width:460px;color:rgba(255,255,255,.8)}
.aula ul{display:grid;gap:12px;margin:24px 0 0;padding:0;list-style:none}
.aula li{display:flex;align-items:center;gap:12px;font-size:.9rem;color:rgba(255,255,255,.9)}
.aula li i,.aula li svg{display:flex;width:32px;height:32px;padding:7px;border-radius:8px;background:rgba(255,255,255,.15);color:var(--h-gold)}
.aula .hero-btns{margin-top:32px}
.aula .btn-line{border-color:rgba(255,255,255,.3);color:#fff}
.aula .btn-line:hover{background:rgba(255,255,255,.1)}
.screen{display:flex;justify-content:center}
.laptop{width:100%;max-width:400px}
.laptop-top{border:10px solid #1e293b;border-bottom-width:14px;border-radius:16px 16px 0 0;background:#fff;overflow:hidden}
.laptop-base{height:12px;margin:0 -24px;border-radius:0 0 14px 14px;background:#334155}
.lx-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--h-navy)}
.lx-bar img{width:22px;height:22px;border-radius:50%;background:#fff}
.lx-bar span{font-size:11px;font-weight:700;color:#fff}
.lx-body{display:grid;gap:8px;padding:14px;background:#f8fafc}
.lx-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:8px;background:#fff;border:1px solid #e2e8f0;font-size:10.5px;font-weight:600;color:#334155}
.lx-bar-p{height:6px;width:70px;border-radius:99px;background:#e2e8f0;overflow:hidden}
.lx-bar-p i{display:block;height:100%;background:var(--h-gold)}
.lx-ok{color:#15803d;font-weight:800}

/* CTA */
.cta-h{position:relative;overflow:hidden;border-radius:28px;background:linear-gradient(90deg,rgba(15,42,85,.97) 35%,rgba(21,54,107,.78)),url('images/home-afiliacion-obra.jpg') center 30%/cover;padding:56px}
.cta-in{position:relative;display:flex;align-items:center;justify-content:space-between;gap:28px}
.cta-l{display:flex;align-items:center;gap:20px}
.cta-ico{display:flex;width:64px;height:64px;flex-shrink:0;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.15);color:#fff}
.cta-ico svg{width:32px;height:32px}
.cta-h h2{font-size:clamp(1.5rem,2.6vw,1.9rem);font-weight:800;color:#fff}

/* Footer */
.ftr{background:var(--h-navy-2);color:rgba(255,255,255,.75);padding:64px 0 0;font-size:.9rem}
.ftr-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.4fr;gap:40px}
.ftr-logo{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.ftr-logo img{width:60px;height:60px;border-radius:50%;background:#fff;padding:3px}
.ftr-logo strong{color:#fff;line-height:1.2}
.ftr h3{margin-bottom:16px;font-size:.95rem;font-weight:700;color:#fff}
.ftr ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.ftr a:hover{color:var(--h-gold)}
.ftr-bottom{margin-top:48px;padding:20px 0;border-top:1px solid rgba(255,255,255,.12);text-align:center;font-size:.8rem;color:rgba(255,255,255,.55)}

/* WhatsApp flotante */
.wa-float{position:fixed;right:24px;bottom:24px;z-index:40;display:flex;width:56px;height:56px;align-items:center;justify-content:center;border-radius:50%;background:#25d366;color:#fff;box-shadow:0 10px 25px -5px rgba(37,211,102,.5);transition:transform .2s}
.wa-float:hover{transform:scale(1.1);background:#1ebe57}
.wa-float:before{content:'';position:absolute;inset:0;border-radius:50%;background:#25d366;opacity:.3;animation:ping 1.6s cubic-bezier(0,0,.2,1) infinite}
.wa-float svg{position:relative;width:28px;height:28px;fill:currentColor}
@keyframes ping{75%,100%{transform:scale(1.7);opacity:0}}

/* ---------- Responsive ---------- */
@media (max-width:1320px){
  .brand-sep,.brand-txt{display:none}
}
@media (max-width:1100px){
  .menu,.hdr-actions{display:none}
  .burger{display:inline-flex}
  .feats{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr);row-gap:40px}
  .ftr-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .grid3,.sedes{grid-template-columns:1fr 1fr}
  .about,.contact,.aula-in{grid-template-columns:1fr}
  .screen{display:none}
  .aula,.cta-h{padding:40px 28px}
  .cta-in{flex-direction:column;text-align:center}
}
@media (max-width:640px){
  .wrap{padding:0 16px}
  .brand img{height:52px}
  .brand-sep,.brand-txt{display:none}
  .hdr-in{height:72px}
  .hero-h{min-height:0;display:block}
  .hero-h > img{position:relative;height:300px}
  .hero-h:before{top:auto;height:180px;bottom:auto;inset:120px 0 auto 0;background:linear-gradient(0deg,#fff,rgba(255,255,255,.8) 45%,rgba(255,255,255,0))}
  .hero-h .wrap{padding-top:0;padding-bottom:24px;margin-top:-40px}
  .hero-h .tag{display:none}
  .hero-h h1{margin-top:0;font-size:1.8rem}
  .hero-btns{flex-direction:column}
  .hero-btns .btn-h{width:100%}
  .kpis{margin-top:24px;grid-template-columns:1fr 1fr;row-gap:24px;padding:20px}
  .kpi{padding:0 8px}
  .kpi + .kpi{border-left:0}
  .kpi strong{font-size:1.15rem}
  .kpi span{font-size:.78rem}
  .kpi-ico{width:44px;height:44px}
  /* Carruseles horizontales como en la referencia */
  .feats,.grid3{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;padding-bottom:12px;scrollbar-width:none}
  .feats::-webkit-scrollbar,.grid3::-webkit-scrollbar{display:none}
  .feat,.prog{flex:0 0 80%;scroll-snap-align:start}
  .feat:hover,.prog:hover{transform:none}
  .steps,.sedes{grid-template-columns:1fr}
  .sec{padding:64px 0}
  .ftr-grid{grid-template-columns:1fr}
  .wa-float{right:16px;bottom:16px}
  .cta-l{flex-direction:column}
  .cta-ico,.aula-bg{display:none}
}

/* ---------- Detalle de programa (programa.php) ---------- */
.pd-hero{background:linear-gradient(135deg,var(--h-navy-2),var(--h-navy) 60%,var(--h-navy-3));padding:48px 0 56px}
.pd-hero-in{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.pd-back{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:rgba(255,255,255,.75)}
.pd-back:hover{color:#fff}
.pd-back svg{width:16px;height:16px}
.pd-hero h1{margin-top:16px;font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:800;line-height:1.15;color:#fff}
.pd-title-dark{margin-top:8px;font-size:clamp(1.7rem,3.2vw,2.3rem);font-weight:800}
.pd-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.pd-chips span{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:rgba(255,255,255,.14);padding:6px 14px;font-size:.82rem;font-weight:600;color:#fff}
.pd-chips svg{width:15px;height:15px;color:var(--h-gold)}
.pd-img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:20px;box-shadow:0 25px 50px -20px rgba(0,0,0,.5)}
.pd-grid{display:grid;grid-template-columns:1fr 340px;gap:40px;align-items:start}
.pd-sec + .pd-sec{margin-top:36px;padding-top:36px;border-top:1px solid var(--h-line)}
.pd-sec h2{font-size:1.4rem;font-weight:800;margin-bottom:14px}
.pd-sec h3{margin:20px 0 8px;font-size:1.02rem;font-weight:700;color:var(--h-navy)}
.pd-sec p{margin:0 0 12px;color:#475569}
.pd-sec ul{display:grid;gap:8px;margin:0 0 14px;padding:0;list-style:none}
.pd-sec li{position:relative;padding-left:26px;color:#475569}
.pd-sec li:before{content:'';position:absolute;left:4px;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--h-gold)}
.pd-card{position:sticky;top:104px;display:grid;gap:12px;padding:28px}
.pd-price{font-size:1.7rem;font-weight:800;color:var(--h-navy);line-height:1.2}
.pd-facts{display:grid;gap:10px;margin:6px 0 8px;padding:14px 0 0;border-top:1px solid var(--h-line);list-style:none}
.pd-facts li{display:flex;justify-content:space-between;gap:12px;font-size:.88rem}
.pd-facts span{color:var(--h-muted)}
.pd-facts strong{color:var(--h-ink);text-align:right}
.pd-card .btn-h{width:100%}
.pd-note{text-align:center;font-size:.82rem;color:var(--h-muted)}
.pd-note a{font-weight:700;color:var(--h-navy)}
@media (max-width:900px){
  .pd-hero-in,.pd-grid{grid-template-columns:1fr}
  .pd-card{position:static}
}

/* ---------- Páginas internas (Servicios, Nosotros, Afiliación, Contacto, Verificar) ---------- */
.pg-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--h-navy-2),var(--h-navy) 60%,var(--h-navy-3));padding:56px 0 64px}
.pg-hero:after{content:'';position:absolute;right:-90px;bottom:-160px;width:360px;height:360px;border:56px solid rgba(224,165,38,.16);border-radius:50%}
.pg-hero .wrap{position:relative;z-index:1}
.pg-crumb{display:flex;gap:8px;font-size:.85rem;font-weight:600;color:rgba(255,255,255,.65)}
.pg-crumb a:hover{color:#fff}
.pg-hero h1{margin-top:14px;max-width:760px;font-size:clamp(1.8rem,3.6vw,2.7rem);font-weight:800;line-height:1.15;color:#fff}
.pg-hero p{margin-top:14px;max-width:640px;font-size:1.02rem;color:rgba(255,255,255,.8)}

.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:48px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:48px}
.box{padding:26px}
.box h3{font-size:1.05rem;font-weight:700}
.box p{margin-top:8px;font-size:.9rem;color:var(--h-muted)}
.box .feat-ico{margin-bottom:16px}
.num{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;margin-bottom:14px;border-radius:10px;background:rgba(224,165,38,.16);font-size:.85rem;font-weight:800;color:#8a5f04}

/* Servicio detallado */
.svc{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:start}
.svc > :first-child{position:sticky;top:110px}
.svc + .svc{margin-top:72px}
.svc:nth-child(even) > :first-child{order:2}
.svc img,.svc .prog-ph{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;border-radius:24px;box-shadow:0 25px 50px -25px rgba(21,54,107,.45)}
.svc h2{margin-top:8px;font-size:clamp(1.5rem,2.6vw,1.9rem);font-weight:800}
.svc .lead{margin-top:14px;color:#475569;white-space:pre-line}
.ticks{display:grid;gap:10px;margin:20px 0 0;padding:0;list-style:none}
.ticks li{display:flex;gap:10px;font-size:.92rem;color:#334155}
.ticks li svg{width:18px;height:18px;margin-top:2px;color:var(--h-gold-2);flex-shrink:0}
.ticks.cols{grid-template-columns:1fr 1fr;column-gap:28px}
.svc .hero-btns{margin-top:24px}

/* Equipo */
.team{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;margin-top:48px}
.member{padding:24px 18px;text-align:center}
.avatar{display:flex;width:72px;height:72px;margin:0 auto 14px;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,var(--h-navy),var(--h-navy-3));font-size:1.3rem;font-weight:800;color:#fff;box-shadow:0 0 0 4px rgba(224,165,38,.25)}
.member h3{font-size:1rem;font-weight:700}
.member p{margin-top:4px;font-size:.85rem;color:var(--h-muted)}

/* Testimonios */
.quote{display:flex;flex-direction:column;padding:26px}
.quote > svg{width:32px;height:32px;color:rgba(21,54,107,.15)}
.quote p{margin-top:12px;color:#475569}
.stars{display:flex;gap:2px;margin-top:16px;color:var(--h-gold)}
.stars svg{width:16px;height:16px;fill:currentColor}

/* Precios */
.prices{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:860px;margin:48px auto 0}
.price{position:relative;display:flex;flex-direction:column;padding:30px}
.price.top{border-color:var(--h-gold)}
.price .badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);border-radius:999px;background:var(--h-gold);padding:4px 12px;font-size:.75rem;font-weight:800;color:var(--h-navy-2);white-space:nowrap}
.price h3{font-size:1.1rem;font-weight:700}
.price .amount{margin-top:8px;font-size:2.1rem;font-weight:800;color:var(--h-navy)}
.price .amount small{font-size:.85rem;font-weight:600;color:var(--h-muted)}
.price > p{margin-top:6px;font-size:.9rem;color:var(--h-muted);flex:1}
.price .btn-h{margin-top:22px}
.fine{max-width:760px;margin:24px auto 0;text-align:center;font-size:.82rem;color:#94a3b8}

/* Verificar diploma */
.verify{max-width:560px;margin:0 auto;padding:32px}
.verify label{font-size:.88rem;font-weight:600;color:#334155}
.verify input{margin-top:6px;width:100%;border-radius:12px;border:1px solid #e2e8f0;padding:14px 16px;font:inherit;font-size:1.05rem;letter-spacing:.04em;outline:none}
.verify input:focus{border-color:var(--h-navy);box-shadow:0 0 0 3px rgba(21,54,107,.15)}
.verify .btn-h{width:100%;margin-top:16px}
.verify .alert-h + .btn-h,.verify .cert-data + .btn-h{margin-top:20px}
.alert-h{display:flex;gap:10px;align-items:flex-start;margin-bottom:18px;border-radius:12px;padding:14px 16px;font-size:.9rem}
.alert-h svg{width:20px;height:20px;flex-shrink:0}
.alert-h.err{background:#fef2f2;color:#991b1b}
.alert-h.ok{background:#f0fdf4;color:#166534}
.cert-data{display:grid;gap:12px;margin:8px 0 0;padding:0;list-style:none}
.cert-data li{display:flex;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--h-line);font-size:.92rem}
.cert-data span{color:var(--h-muted)}
.cert-data strong{color:var(--h-ink);text-align:right}

@media (max-width:1100px){
  .grid4,.team{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .svc{grid-template-columns:1fr;gap:28px}
  .svc:nth-child(even) > :first-child{order:0}
  .svc > :first-child{position:static}
  .grid2,.prices,.ticks.cols{grid-template-columns:1fr}
}
@media (max-width:640px){
  .grid4{grid-template-columns:1fr}
  .team{grid-template-columns:1fr 1fr}
  .pg-hero{padding:40px 0 48px}
  .verify{padding:24px}
}
