/* ===== IPE I · Presentaciones ===== */
:root{--p:#2D9CDB;--pd:#1b6fa3;--a:#72C9D8;--t:#2c3e50;--tx:#34495e;--mu:#7f8c99;--bg:#f4f8fb;--ok:#27ae60;--bad:#e74c3c;--or:#f39c12;--vi:#8e44ad;--warn:#f1c40f}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:#1c2b36;font-family:'Montserrat',system-ui,sans-serif;color:var(--tx);overflow:hidden}
a{color:inherit;text-decoration:none}
.bar{position:fixed;left:0;right:0;top:0;height:46px;display:flex;align-items:center;gap:12px;padding:0 14px;background:#fff;z-index:20;box-shadow:0 2px 10px rgba(0,0,0,.15);font-size:13px}
.bar .logo{font-weight:700;color:#333}.bar .logo span{color:var(--p)}
.bar .ttl{flex:1;font-weight:600;color:var(--t);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar button,.bar a.b{border:2px solid var(--p);background:#fff;color:var(--p);border-radius:50px;padding:4px 12px;font-weight:700;font-size:12px;cursor:pointer;white-space:nowrap}
.bar button:hover,.bar a.b:hover{background:var(--p);color:#fff}
.viewport{position:fixed;inset:46px 0 0 0;display:flex;align-items:center;justify-content:center}
.stage{width:1280px;height:720px;position:relative;transform-origin:center center;flex:none}
.slide{position:absolute;inset:0;background:var(--bg);border-radius:6px;overflow:hidden;opacity:0;visibility:hidden;transition:opacity .35s}
.slide.on{opacity:1;visibility:visible}
.nav{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;z-index:20;background:rgba(255,255,255,.95);border-radius:50px;padding:6px 10px;box-shadow:0 4px 18px rgba(0,0,0,.25);font-size:13px;font-weight:700;color:var(--t)}
.nav button{width:34px;height:34px;border-radius:50%;border:none;background:var(--p);color:#fff;font-size:16px;cursor:pointer}
.nav button:disabled{opacity:.3}
.prog{position:fixed;left:0;top:46px;height:4px;background:var(--p);z-index:21;transition:width .3s}

/* Elementos comunes de la diapositiva */
.s-in{position:absolute;inset:0;padding:56px 72px 64px;display:flex;flex-direction:column}
.foot{position:absolute;left:72px;right:72px;bottom:20px;display:flex;justify-content:space-between;font-size:13px;color:var(--mu);font-weight:600}
.foot b{color:var(--p)}
.foot .fl1{display:flex;align-items:center;gap:14px;min-width:0}.foot em{font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand{font-weight:700;color:#2c3e50;letter-spacing:-.2px;white-space:nowrap}.brand i{font-style:normal;color:#2D9CDB}
.foot .brand{font-size:15px;padding-right:14px;border-right:2px solid #d6e6ef}
.cover .brand{color:#fff}.cover .brand i{color:#9fdcf5}.cover .foot .brand{border-color:rgba(255,255,255,.3)}
.cbrand{position:absolute;left:72px;top:34px;display:flex;align-items:baseline;gap:14px;z-index:2}.cbrand .brand{font-size:30px}.cbrand small{font-size:15px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#bfe6f7}
.endweb{margin-top:22px;font-size:20px;color:#d9f0fb}.endweb b{color:#fff}
.kick{font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--p);margin-bottom:8px}
h2.st{font-size:44px;line-height:1.12;color:var(--t);font-weight:700;margin-bottom:14px;letter-spacing:-.5px}
h2.st span{color:var(--p)}
.lead{font-size:23px;line-height:1.45;color:#4a5b68;max-width:1050px;margin-bottom:22px}
.deco{position:absolute;border-radius:50%;background:var(--a);opacity:.12}
.anim>*{opacity:0;transform:translateY(14px)}
.slide.on .anim>*{animation:up .5s ease forwards}
.slide.on .anim>*:nth-child(1){animation-delay:.1s}.slide.on .anim>*:nth-child(2){animation-delay:.22s}.slide.on .anim>*:nth-child(3){animation-delay:.34s}.slide.on .anim>*:nth-child(4){animation-delay:.46s}.slide.on .anim>*:nth-child(5){animation-delay:.58s}.slide.on .anim>*:nth-child(6){animation-delay:.7s}.slide.on .anim>*:nth-child(n+7){animation-delay:.8s}
@keyframes up{to{opacity:1;transform:none}}

/* Portada */
.cover{background:linear-gradient(125deg,#16384a 0%,#1f6fa3 55%,#2D9CDB 100%);color:#fff}
.cover .num{position:absolute;right:40px;bottom:-60px;font-size:420px;font-weight:700;line-height:1;color:rgba(255,255,255,.09)}
.cover .s-in{justify-content:center}
.cover .kick{color:#bfe6f7}
.cover h1{font-size:68px;line-height:1.05;letter-spacing:-1px;max-width:900px}
.cover .sub{font-size:24px;margin-top:20px;color:#d9f0fb;max-width:800px}
.cover .emo{font-size:90px;margin-bottom:10px}
.cover .foot{color:rgba(255,255,255,.7)}.cover .foot b{color:#fff}

/* Tarjetas */
.cards{display:grid;gap:20px;flex:1;align-content:start}
.cards.c2{grid-template-columns:1fr 1fr}.cards.c3{grid-template-columns:repeat(3,1fr)}.cards.c4{grid-template-columns:repeat(4,1fr)}
.cd{background:#fff;border-radius:16px;padding:22px 24px;box-shadow:0 8px 24px rgba(30,60,80,.08);border-top:6px solid var(--p);font-size:19px;line-height:1.4}
.cd .ic{font-size:44px;line-height:1;margin-bottom:10px}
.cd h3{font-size:23px;color:var(--t);margin-bottom:6px;line-height:1.2}
.cd p{color:#556672}
.cd.k1{border-color:var(--p)}.cd.k2{border-color:var(--or)}.cd.k3{border-color:var(--ok)}.cd.k4{border-color:var(--vi)}.cd.k5{border-color:var(--bad)}.cd.k6{border-color:var(--a)}

/* Clave */
.clave{margin-top:18px;background:#fff8e1;border-left:8px solid var(--or);border-radius:12px;padding:14px 20px;font-size:20px;line-height:1.4;color:#5c4400}
.clave b{color:#a65f00;text-transform:uppercase;letter-spacing:1px;font-size:15px;display:block;margin-bottom:2px}

/* Tabla */
table.tb{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 8px 24px rgba(30,60,80,.08);font-size:19px}
table.tb th{background:var(--t);color:#fff;text-align:left;padding:12px 16px;font-size:16px;letter-spacing:.5px;text-transform:uppercase}
table.tb td{padding:11px 16px;border-bottom:1px solid #e6edf2;vertical-align:top;line-height:1.35}
table.tb tr:nth-child(even) td{background:#f7fafc}
table.tb td:first-child{font-weight:700;color:var(--t)}
.note{font-size:15px;color:var(--mu);margin-top:10px}

/* Pasos */
.steps{display:flex;gap:16px;flex:1;align-items:stretch}
.stp{flex:1;background:#fff;border-radius:16px;padding:20px;box-shadow:0 8px 24px rgba(30,60,80,.08);position:relative;font-size:18px;line-height:1.4}
.stp .n{width:52px;height:52px;border-radius:50%;background:var(--p);color:#fff;font-weight:700;font-size:24px;display:grid;place-items:center;margin-bottom:12px}
.stp h3{font-size:21px;color:var(--t);margin-bottom:6px}
.stp:not(:last-child)::after{content:'➜';position:absolute;right:-17px;top:30px;font-size:22px;color:var(--p);z-index:2}

/* Cifras grandes */
.stats{display:grid;gap:22px;flex:1;align-content:center}
.stat{background:#fff;border-radius:18px;padding:26px;text-align:center;box-shadow:0 8px 24px rgba(30,60,80,.08)}
.stat .v{font-size:72px;font-weight:700;color:var(--p);line-height:1}
.stat .l{font-size:20px;margin-top:10px;color:#4a5b68;line-height:1.3}
.stats.s4 .v{font-size:54px}.stat .v{white-space:nowrap}
.stat:nth-child(2) .v{color:var(--or)}.stat:nth-child(3) .v{color:var(--ok)}.stat:nth-child(4) .v{color:var(--vi)}

/* Barras */
.hb{display:flex;flex-direction:column;gap:14px;flex:1;justify-content:center}
.hb .r{display:grid;grid-template-columns:330px 1fr 120px;gap:16px;align-items:center;font-size:20px}
.hb .tr{height:40px;background:#e3ebf1;border-radius:10px;overflow:hidden}
.hb .fl{height:100%;border-radius:10px;width:0;transition:width 1s .3s ease}
.hb .v{font-weight:700;color:var(--t);font-size:24px}

/* Pregunta para la clase */
.quiz{background:linear-gradient(135deg,#fdf6e3,#fff)}
.quiz .q{font-size:36px;font-weight:700;color:var(--t);line-height:1.25;margin:10px 0 26px;max-width:1100px}
.opts{display:grid;gap:14px}
.opt{display:flex;gap:16px;align-items:center;background:#fff;border:3px solid #e2e8ee;border-radius:14px;padding:14px 20px;font-size:23px;cursor:pointer;transition:.25s}
.opt .l{width:44px;height:44px;border-radius:50%;background:var(--t);color:#fff;display:grid;place-items:center;font-weight:700;flex:none}
.opt:hover{border-color:var(--p)}
.slide.shown .opt.ok{border-color:var(--ok);background:#eaf7ef}.slide.shown .opt.ok .l{background:var(--ok)}
.slide.shown .opt:not(.ok){opacity:.45}
.exp{margin-top:18px;font-size:21px;background:#eaf7ef;border-left:8px solid var(--ok);border-radius:12px;padding:12px 18px;display:none}
.slide.shown .exp{display:block;animation:up .4s forwards}
.rev{position:absolute;right:72px;top:56px;border:none;background:var(--or);color:#fff;font-weight:700;border-radius:50px;padding:10px 20px;font-size:16px;cursor:pointer}

/* Historia / situación */
.story{display:grid;grid-template-columns:1.3fr 1fr;gap:30px;flex:1}
.bubble{background:#fff;border-radius:22px;padding:26px 30px;font-size:24px;line-height:1.5;box-shadow:0 8px 24px rgba(30,60,80,.08);position:relative}
.qs{display:flex;flex-direction:column;gap:12px}
.qs div{background:var(--p);color:#fff;border-radius:14px;padding:14px 18px;font-size:20px;font-weight:600}
.qs div:nth-child(2){background:#3aa9d8}.qs div:nth-child(3){background:#56b6d6}.qs div:nth-child(4){background:var(--a)}

/* Caso resuelto */
.case{display:grid;grid-template-columns:330px 1fr;gap:26px;flex:1}
.who{background:var(--t);color:#fff;border-radius:18px;padding:24px;font-size:19px;line-height:1.45}
.who .emo{font-size:60px}
.who b{display:block;font-size:24px;margin:6px 0}
.clist{display:flex;flex-direction:column;gap:10px}
.cs{display:grid;grid-template-columns:40px 1fr;gap:12px;background:#fff;border-radius:12px;padding:12px 16px;font-size:18.5px;line-height:1.38;box-shadow:0 4px 14px rgba(30,60,80,.06)}
.cs .n{width:36px;height:36px;border-radius:50%;background:var(--p);color:#fff;font-weight:700;display:grid;place-items:center}
.res{background:var(--ok);color:#fff;border-radius:12px;padding:12px 18px;font-size:19px;font-weight:600}

/* Resumen final */
.sum{display:grid;grid-template-columns:1fr 1fr;gap:14px 26px}
.sum div{display:flex;gap:14px;align-items:flex-start;font-size:21px;line-height:1.35;background:#fff;border-radius:14px;padding:14px 18px;box-shadow:0 4px 14px rgba(30,60,80,.06)}
.sum div b{flex:none;width:36px;height:36px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center}
.endlinks{display:flex;gap:18px;margin-top:26px}
.endlinks a{flex:1;background:#fff;border-radius:16px;padding:20px;text-align:center;font-weight:700;color:var(--t);font-size:20px;border:3px solid var(--p);box-shadow:0 8px 24px rgba(30,60,80,.08)}
.endlinks a span{display:block;font-size:40px}

/* Mapa */
.map{display:flex;flex-wrap:wrap;gap:16px;align-content:center;flex:1}
.map div{flex:1 1 30%;background:#fff;border-radius:16px;padding:22px;font-size:22px;font-weight:700;color:var(--t);box-shadow:0 8px 24px rgba(30,60,80,.08);border-left:8px solid var(--p);display:flex;gap:16px;align-items:center}
.map div b{font-size:34px;color:var(--p)}

/* Dos opciones (vs) */
.vs{display:grid;grid-template-columns:1fr 70px 1fr;gap:10px;flex:1;align-items:stretch}
.vs .mid{display:grid;place-items:center;font-size:34px;font-weight:700;color:var(--mu)}

/* Pantalla pequeña: modo lectura vertical */
@media (max-width:700px){
  html,body{overflow:auto;background:var(--bg)}
  .viewport{position:static;display:block;padding:56px 10px 80px}
  .stage{width:auto;height:auto;transform:none!important}
  .slide{position:relative;opacity:1;visibility:visible;margin-bottom:14px;border-radius:14px;box-shadow:0 4px 16px rgba(0,0,0,.08)}
  .s-in{position:relative;padding:22px 18px 46px}
  .anim>*{opacity:1;transform:none;animation:none!important}
  h2.st{font-size:25px}.lead{font-size:16px}.kick{font-size:12px}
  .cards.c2,.cards.c3,.cards.c4,.story,.case,.sum,.vs{grid-template-columns:1fr}
  .vs .mid{font-size:20px}
  .cd{font-size:15px;padding:16px}.cd h3{font-size:18px}.cd .ic{font-size:32px}
  .clave{font-size:15px}
  table.tb{font-size:13px}table.tb th{font-size:11px;padding:8px}table.tb td{padding:8px}
  .steps{flex-direction:column}.stp{font-size:15px}.stp:not(:last-child)::after{content:'⬇';right:auto;left:50%;top:auto;bottom:-20px}
  .stat .v{font-size:42px}.stat .l{font-size:15px}.stats{grid-template-columns:1fr 1fr!important}
  .hb .r{grid-template-columns:1fr auto;font-size:14px}.hb .tr{grid-column:1/-1;height:22px}.hb .v{font-size:16px}
  .quiz .q{font-size:21px}.opt{font-size:16px;padding:10px 12px}.opt .l{width:32px;height:32px}.rev{position:static;margin-top:10px}.exp{font-size:15px}
  .bubble{font-size:17px;padding:18px}.qs div{font-size:15px}
  .who{font-size:15px}.cs{font-size:14.5px}.res{font-size:15px}
  .sum div{font-size:15px}.endlinks{flex-direction:column}.endlinks a{font-size:16px}
  .map div{flex-basis:100%;font-size:16px}
  .cover h1{font-size:34px}.cover .sub{font-size:16px}.cover .num{font-size:200px;bottom:-20px}.cover .emo{font-size:56px}
  .foot{left:18px;right:18px;bottom:12px;font-size:11px}.foot em{display:none}.cbrand{left:18px;top:14px}.cbrand .brand{font-size:20px}.cbrand small{display:none}.endweb{font-size:14px}
  .nav{display:none}.prog{display:none}
}
/* Impresión / PDF: una diapositiva por página */
@media print{
  @page{size:1280px 720px;margin:0}
  html,body{overflow:visible;background:#fff}
  .bar,.nav,.prog,.rev{display:none!important}
  .viewport{position:static;display:block}
  .stage{transform:none!important}
  .slide{position:relative;opacity:1!important;visibility:visible!important;width:1280px;height:720px;page-break-after:always;border-radius:0}
  .anim>*{opacity:1!important;transform:none!important;animation:none!important}
  .slide .opt.ok{border-color:var(--ok);background:#eaf7ef}.slide .exp{display:block}
  .hb .fl{transition:none}
}
@media (max-width:700px){.stats.s4 .v{font-size:34px}.stat .v{white-space:normal}}
.vs .cd{display:flex;flex-direction:column;justify-content:center;font-size:23px;padding:30px}
.vs .cd .ic{font-size:60px}.vs .cd h3{font-size:28px;margin-bottom:10px}
@media (max-width:700px){.vs .cd{font-size:15px;padding:16px}.vs .cd .ic{font-size:36px}.vs .cd h3{font-size:18px}}
@media (max-width:700px){html,body{height:auto;overflow:visible}.bar{gap:8px;padding:0 10px}.bar #fs,.bar .ttl{display:none}.bar .logo{flex:1}}
