/* ===========================================================
   IPSE · home.css  ·  Hero de la página de inicio (#ipseHero)
   =========================================================== */
#ipseHero,#ipseHero *{box-sizing:border-box;margin:0;padding:0}
#ipseHero{--red:#FF2C2C;--redD:#B40017;--redDeep:#6B0010;--ink:#0f172a;--sub:#475569;--ease:cubic-bezier(.2,.9,.2,1)}
#ipseHero .h-shell{width:100%;min-height:92vh;background:#fff;position:relative;overflow:hidden;display:flex;align-items:center;isolation:isolate}
#ipseHero .h-topbar{position:absolute;top:0;left:0;right:0;height:5px;z-index:10;background:linear-gradient(90deg,var(--redDeep),var(--redD),var(--red),#ff7070);box-shadow:0 0 22px rgb(255 44 44 / .40)}
#ipseHero .h-shell::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 65% 55% at 100% 0%,rgb(255 44 44 / .07),transparent 60%),radial-gradient(ellipse 45% 55% at 0% 100%,rgb(255 44 44 / .05),transparent 55%),radial-gradient(ellipse 35% 40% at 55% 50%,rgb(255 44 44 / .03),transparent 65%)}
#ipseHero .h-inner{position:relative;z-index:2;width:100%;max-width:1380px;margin:0 auto;padding:clamp(60px,7vw,100px) clamp(16px,4vw,52px) clamp(50px,6vw,80px);display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(24px,4vw,60px);align-items:center}
#ipseHero .h-inner::before{content:"";position:absolute;left:50%;top:8%;bottom:8%;width:1px;background:linear-gradient(180deg,transparent,rgb(255 44 44 / .14) 25%,rgb(255 44 44 / .14) 75%,transparent);pointer-events:none}
#ipseHero .h-left{display:flex;flex-direction:column;gap:22px}
#ipseHero .h-label{display:inline-flex;align-items:center;gap:10px;padding:8px 18px;border-radius:999px;background:rgb(255 44 44 / .07);border:1px solid rgb(255 44 44 / .20);font:900 11px/1 system-ui,Arial;letter-spacing:.18em;text-transform:uppercase;color:rgb(180 0 23 / .88);width:fit-content}
#ipseHero .h-label-dot{width:8px;height:8px;border-radius:99px;background:var(--red);box-shadow:0 0 0 4px rgb(255 44 44 / .20);animation:ipseDotPulse 2s ease-in-out infinite}
@keyframes ipseDotPulse{0%,100%{box-shadow:0 0 0 4px rgb(255 44 44 / .20)}50%{box-shadow:0 0 0 8px rgb(255 44 44 / .06)}}
#ipseHero .h-title{font:900 clamp(2rem,4.2vw,3.6rem)/1.06 system-ui,Arial;letter-spacing:-.03em;color:var(--ink)}
#ipseHero .h-title .acc{color:var(--redD);-webkit-text-fill-color:var(--redD)}
#ipseHero .h-sub{font:500 clamp(14.5px,1.3vw,17px)/1.65 system-ui,Arial;color:rgb(15 23 42 / .62);max-width:480px}
#ipseHero .h-badges{display:flex;gap:10px;flex-wrap:wrap}
#ipseHero .h-badge{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:999px;background:#fff;border:1px solid rgb(255 44 44 / .22);box-shadow:0 6px 20px rgb(15 23 42 / .09);font:900 13px/1 system-ui,Arial;color:var(--ink);cursor:pointer;transition:transform .16s var(--ease),box-shadow .16s var(--ease);text-decoration:none}
#ipseHero .h-badge:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgb(15 23 42 / .14),0 0 0 3px rgb(255 44 44 / .10)}
#ipseHero .h-badge-dot{width:9px;height:9px;border-radius:99px;background:var(--red);box-shadow:0 0 0 3px rgb(255 44 44 / .16)}
#ipseHero .h-courses-label{font:900 11px/1 system-ui,Arial;letter-spacing:.16em;text-transform:uppercase;color:rgb(180 0 23 / .72)}
#ipseHero .h-courses{display:grid;grid-template-columns:1fr 1fr;gap:8px;list-style:none}
#ipseHero .h-course{display:flex;align-items:center;gap:9px;padding:9px 13px;border-radius:12px;background:rgb(255 255 255 / .82);border:1px solid rgb(255 44 44 / .09);box-shadow:0 3px 12px rgb(15 23 42 / .06);font:650 13px/1.3 system-ui,Arial;color:var(--ink);transition:transform .14s var(--ease),box-shadow .14s var(--ease);cursor:default}
#ipseHero .h-course:hover{transform:translateX(3px);box-shadow:0 6px 18px rgb(15 23 42 / .10)}
#ipseHero .h-course-ico{width:26px;height:26px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;background:linear-gradient(135deg,rgb(255 44 44 / .12),rgb(255 44 44 / .05));border:1px solid rgb(255 44 44 / .12)}
#ipseHero .h-info{display:flex;flex-direction:column;gap:6px}
#ipseHero .h-info-row{display:flex;align-items:center;gap:10px;font:500 13.5px/1.4 system-ui,Arial;color:rgb(15 23 42 / .72)}
#ipseHero .h-info-row strong{color:var(--redD);font-weight:900}
#ipseHero .h-ctas{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
#ipseHero .h-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 30px;border-radius:999px;font:900 15px/1 system-ui,Arial;text-decoration:none;border:none;cursor:pointer;white-space:nowrap;transition:transform .16s var(--ease),box-shadow .16s var(--ease)}
#ipseHero .h-btn:hover{transform:translateY(-2px)}
#ipseHero .h-btn.primary{background:#C00;color:#fff;box-shadow:0 8px 24px rgb(180 0 0 / .28)}
#ipseHero .h-btn.primary:hover{background:#b30000;box-shadow:0 14px 32px rgb(180 0 0 / .38)}
#ipseHero .h-btn.ghost{background:#fff;color:var(--ink);border:1px solid rgb(255 44 44 / .22);box-shadow:0 6px 20px rgb(15 23 42 / .09)}
#ipseHero .h-btn.ghost:hover{box-shadow:0 12px 30px rgb(15 23 42 / .14)}
#ipseHero .h-right{position:relative;display:flex;align-items:flex-start;justify-content:center;min-height:clamp(380px,48vw,660px);isolation:isolate}
#ipseHero .h-right::before{content:"";position:absolute;bottom:6%;left:50%;transform:translateX(-50%);width:74%;aspect-ratio:1;border-radius:999px;background:radial-gradient(circle,rgb(255 44 44 / .11) 0%,rgb(255 44 44 / .04) 55%,transparent 75%);z-index:0;pointer-events:none}
#ipseHero .h-right::after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:88%;height:52%;border-radius:999px 999px 0 0;background:linear-gradient(180deg,rgb(255 44 44 / .055),rgb(255 44 44 / .01));border:1px solid rgb(255 44 44 / .09);border-bottom:none;z-index:0;pointer-events:none}
#ipseHero .h-photo{position:relative;z-index:1;width:min(530px,94%);aspect-ratio:4/5;background:url(../img/hero.png) top center/contain no-repeat;transform-origin:top center;animation:ipseFloat 6.5s ease-in-out infinite;filter:drop-shadow(0 30px 52px rgb(180 0 23 / .22)) drop-shadow(0 8px 18px rgb(15 23 42 / .12))}
@keyframes ipseFloat{0%,100%{transform:translateY(0) rotate(-.3deg)}50%{transform:translateY(-14px) rotate(.3deg)}}
#ipseHero .h-stat{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:16px;background:rgb(255 255 255 / .96);border:1px solid rgb(255 44 44 / .14);box-shadow:0 14px 38px rgb(15 23 42 / .14);font:900 13px/1.2 system-ui,Arial;color:var(--ink);white-space:nowrap;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:ipseFloat 6.5s ease-in-out infinite}
#ipseHero .h-stat.s1{left:-14px;top:26%;animation-delay:-1.6s}
#ipseHero .h-stat.s2{right:-14px;top:50%;animation-delay:-3.2s}
#ipseHero .h-stat.s3{left:50%;transform:translateX(-50%);bottom:4%;animation-delay:-4.8s}
#ipseHero .h-stat-ico{width:36px;height:36px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;background:linear-gradient(135deg,rgb(255 44 44 / .12),rgb(255 44 44 / .05));border:1px solid rgb(255 44 44 / .14)}
#ipseHero .h-stat strong{display:block;font-size:17px;color:var(--redD);line-height:1}
#ipseHero .h-stat span{font-size:11px;color:rgb(15 23 42 / .48);font-weight:600;letter-spacing:.04em}
@media(max-width:960px){#ipseHero .h-inner{grid-template-columns:1fr;text-align:center;gap:32px}#ipseHero .h-inner::before{display:none}#ipseHero .h-right{order:-1;min-height:clamp(280px,55vw,420px)}#ipseHero .h-label{margin:0 auto}#ipseHero .h-sub{margin:0 auto}#ipseHero .h-badges{justify-content:center}#ipseHero .h-ctas{justify-content:center}#ipseHero .h-stat.s1{left:-6px}#ipseHero .h-stat.s2{right:-6px}}
@media(max-width:560px){#ipseHero .h-shell{display:none}}
#ipseHero .h-mobile{display:none;width:100%;flex-direction:column;background:#fff;position:relative;overflow:hidden;isolation:isolate}
#ipseHero .h-mobile::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 80% 40% at 100% 0%,rgb(255 44 44 / .07),transparent 60%),radial-gradient(ellipse 60% 40% at 0% 100%,rgb(255 44 44 / .04),transparent 55%)}
@media(max-width:560px){#ipseHero .h-mobile{display:flex}}
#ipseHero .h-mob-topbar{height:4px;width:100%;flex-shrink:0;background:linear-gradient(90deg,#6B0010,#B40017,#FF2C2C,#ff7070);box-shadow:0 0 14px rgb(255 44 44 / .32)}
#ipseHero .h-mob-inner{position:relative;z-index:1;padding:20px 18px 28px;display:flex;flex-direction:column;gap:16px}
#ipseHero .h-mob-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
#ipseHero .h-mob-label{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;background:rgb(255 44 44 / .07);border:1px solid rgb(255 44 44 / .18);font:900 10px/1 system-ui,Arial;letter-spacing:.16em;text-transform:uppercase;color:rgb(180 0 23 / .88)}
#ipseHero .h-mob-label-dot{width:7px;height:7px;border-radius:99px;background:var(--red);box-shadow:0 0 0 3px rgb(255 44 44 / .20);animation:ipseDotPulse 2s ease-in-out infinite}
#ipseHero .h-mob-stats{display:flex;gap:8px;align-items:center}
#ipseHero .h-mob-stat{display:flex;flex-direction:column;align-items:center;padding:7px 11px;border-radius:11px;background:#fff;border:1px solid rgb(255 44 44 / .12);box-shadow:0 3px 12px rgb(15 23 42 / .08)}
#ipseHero .h-mob-stat strong{font:900 14px/1 system-ui,Arial;color:var(--redD)}
#ipseHero .h-mob-stat span{font:600 9.5px/1 system-ui,Arial;color:rgb(15 23 42 / .45);margin-top:3px}
#ipseHero .h-mob-photo-wrap{display:flex;flex-direction:column;align-items:center;gap:4px}
#ipseHero .h-mob-photo-hint{font:700 9px/1 system-ui,Arial;letter-spacing:.04em;color:rgb(180 0 23 / .70);white-space:nowrap;text-align:center}
#ipseHero .h-mob-photo-btn{width:48px;height:48px;border-radius:14px;flex-shrink:0;border:2px solid rgb(255 44 44 / .30);box-shadow:0 6px 18px rgb(180 0 23 / .22);overflow:hidden;cursor:pointer;padding:0;background:#fff;transition:transform .18s var(--ease),box-shadow .18s var(--ease);position:relative}
#ipseHero .h-mob-photo-btn::after{content:"👁";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;background:rgb(180 0 23 / .75);opacity:0;transition:opacity .18s ease;border-radius:12px}
#ipseHero .h-mob-photo-btn:hover::after,#ipseHero .h-mob-photo-btn:focus::after{opacity:1}
#ipseHero .h-mob-photo-btn img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;pointer-events:none}
#ipseHero .h-mob-photo-btn[aria-expanded="true"]{border-color:var(--red);box-shadow:0 0 0 3px rgb(255 44 44 / .20),0 6px 18px rgb(180 0 23 / .22)}
#ipseHero .h-mob-photo-expand{position:relative;border-radius:18px;overflow:hidden;max-height:0;opacity:0;transition:max-height .4s var(--ease),opacity .3s ease,margin .3s ease;margin:0;border:2px solid #fff0}
#ipseHero .h-mob-photo-expand.is-open{max-height:420px;opacity:1;margin:4px 0;border-color:rgb(255 44 44 / .18);box-shadow:0 16px 48px rgb(180 0 23 / .18)}
#ipseHero .h-mob-photo-expand img{width:100%;display:block;object-fit:contain;object-position:top center;background:linear-gradient(180deg,#fff0f0,#fff);max-height:400px}
#ipseHero .h-mob-photo-close{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:10px;border:1px solid rgb(255 44 44 / .22);background:rgb(255 255 255 / .92);font:900 14px/1 system-ui,Arial;color:var(--redD);display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 12px rgb(15 23 42 / .12);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
#ipseHero .h-mob-title{font:900 clamp(1.5rem,6.5vw,1.9rem)/1.1 system-ui,Arial;letter-spacing:-.025em;color:var(--ink)}
#ipseHero .h-mob-title .acc{color:var(--redD);-webkit-text-fill-color:var(--redD)}
#ipseHero .h-mob-courses-label{font:900 10px/1 system-ui,Arial;letter-spacing:.16em;text-transform:uppercase;color:rgb(180 0 23 / .70)}
#ipseHero .h-mob-courses{display:grid;grid-template-columns:1fr 1fr;gap:7px;list-style:none}
#ipseHero .h-mob-course{display:flex;align-items:center;gap:8px;padding:10px 11px;border-radius:12px;background:#fff;border:1px solid rgb(255 44 44 / .09);box-shadow:0 3px 10px rgb(15 23 42 / .07);font:700 12px/1.3 system-ui,Arial;color:var(--ink)}
#ipseHero .h-mob-course-ico{width:26px;height:26px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;background:linear-gradient(135deg,rgb(255 44 44 / .10),rgb(255 44 44 / .04));border:1px solid rgb(255 44 44 / .11)}
#ipseHero .h-mob-info{display:flex;flex-direction:column;gap:5px;padding:11px 13px;border-radius:13px;background:rgb(255 44 44 / .04);border:1px solid rgb(255 44 44 / .10)}
#ipseHero .h-mob-info-row{font:500 12px/1.4 system-ui,Arial;color:rgb(15 23 42 / .68)}
#ipseHero .h-mob-info-row strong{color:var(--redD);font-weight:900}
#ipseHero .h-mob-ctas{display:flex;flex-direction:column;gap:9px}
#ipseHero .h-mob-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:999px;font:900 14px/1 system-ui,Arial;text-decoration:none;border:none;cursor:pointer;transition:transform .14s var(--ease),box-shadow .14s var(--ease)}
#ipseHero .h-mob-btn:active{transform:scale(.98)}
#ipseHero .h-mob-btn.primary{background:#C00;color:#fff;box-shadow:0 8px 24px rgb(180 0 0 / .28)}
#ipseHero .h-mob-btn.ghost{background:#fff;color:var(--ink);border:1px solid rgb(255 44 44 / .20);box-shadow:0 4px 14px rgb(15 23 42 / .08)}
@media(prefers-reduced-motion:reduce){#ipseHero .h-photo,#ipseHero .h-stat{animation:none!important}#ipseHero .h-label-dot,#ipseHero .h-mob-label-dot{animation:none!important}}
