/* ===== Academia PeptiXtreme · estilos de artículo (SEO pages) ===== */
:root{
  --bg:#05070D;--bg2:#080B14;--panel:#0E1422;--panel2:#141E34;
  --ink:#EAF2FF;--muted:#8CA0BF;--dim:#5A6C89;
  --teal:#2DE2C4;--violet:#7B5CFF;--gold:#FFC24B;--amber:#FF8A3D;
  --magenta:#FF3D9A;--ember:#FF7A18;--cyan:#38F2FF;
  --plasma:linear-gradient(115deg,#38F2FF 0%,#2DE2C4 22%,#7B5CFF 48%,#FF3D9A 74%,#FFB347 100%);
  --line:rgba(140,160,191,.16);
  --disp:'Space Grotesk',sans-serif;--body:'Inter',sans-serif;--mono:'Space Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--body);line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%}
.wrap{max-width:820px;margin:0 auto;padding:0 22px}

/* fondo sutil */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(60vw 50vh at 15% -5%,rgba(45,226,196,.10),transparent 60%),
             radial-gradient(55vw 45vh at 100% 10%,rgba(123,92,255,.10),transparent 60%)}

/* header */
.ac-top{position:sticky;top:0;z-index:20;background:rgba(5,7,13,.7);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.ac-top .wrap{display:flex;align-items:center;justify-content:space-between;padding:13px 22px;max-width:1080px}
.ac-logo{font-family:var(--disp);font-weight:700;font-size:16px;display:flex;align-items:center;gap:9px;color:var(--ink);flex:0 0 auto;margin-right:14px}
.ac-logo .dot{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,var(--teal),var(--violet));display:grid;place-items:center;font-size:14px;box-shadow:0 0 18px rgba(45,226,196,.45)}
.ac-logo b{color:var(--teal)}
.ac-nav{display:flex;gap:16px;font-size:13.5px;align-items:center;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;min-width:0}
.ac-nav::-webkit-scrollbar{display:none}
.ac-nav a{color:var(--muted);flex:0 0 auto}.ac-nav a:hover{color:var(--teal);text-decoration:none}
@media(max-width:600px){.ac-nav{gap:13px;font-size:12.5px}}

/* breadcrumb */
.crumb{font-family:var(--mono);font-size:11.5px;color:var(--dim);padding:22px 0 8px;letter-spacing:.02em}
.crumb a{color:var(--muted)}.crumb span{color:var(--dim)}

/* article header */
.ac-h{padding:6px 0 26px;border-bottom:1px solid var(--line);margin-bottom:30px}
.ac-kick{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);
  border:1px solid rgba(45,226,196,.3);background:rgba(45,226,196,.06);padding:4px 11px;border-radius:14px;margin-bottom:16px}
h1.ac-title{font-family:var(--disp);font-size:clamp(27px,5vw,40px);font-weight:700;line-height:1.08;letter-spacing:-.02em}
.ac-meta{display:flex;gap:16px;flex-wrap:wrap;color:var(--dim);font-size:12.5px;font-family:var(--mono);margin-top:16px}
.ac-lead{color:var(--muted);font-size:17px;margin-top:16px;line-height:1.6}

/* article body */
.ac-body h2{font-family:var(--disp);font-size:23px;font-weight:600;margin:36px 0 12px;letter-spacing:-.01em;
  background:linear-gradient(120deg,var(--teal),var(--violet));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ac-body h3{font-family:var(--disp);font-size:18px;font-weight:600;margin:26px 0 8px;color:var(--ink)}
.ac-body p{margin:0 0 16px;color:#cdd8ee}
.ac-body ul,.ac-body ol{margin:0 0 18px;padding-left:22px}
.ac-body li{margin-bottom:8px;color:#cdd8ee}
.ac-body strong{color:var(--ink)}
.ac-body .callout{border-left:3px solid var(--teal);background:rgba(45,226,196,.06);padding:14px 18px;border-radius:0 12px 12px 0;margin:0 0 22px;font-size:14.5px;color:var(--muted)}
.ac-body .warn{border-left-color:var(--gold);background:rgba(255,194,75,.06)}

/* FAQ */
.ac-faq{margin-top:44px;border-top:1px solid var(--line);padding-top:30px}
.ac-faq h2{font-family:var(--disp);font-size:22px;margin-bottom:18px;color:var(--ink)}
.faq-q{border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:12px;background:var(--panel)}
.faq-q h3{font-size:15.5px;font-weight:600;margin-bottom:7px;color:var(--ink)}
.faq-q p{font-size:14px;color:var(--muted)}

/* CTA */
.ac-cta{margin:44px 0 10px;background:linear-gradient(135deg,rgba(45,226,196,.1),rgba(123,92,255,.1));border:1px solid var(--line);border-radius:18px;padding:28px 26px;text-align:center}
.ac-cta h3{font-family:var(--disp);font-size:20px;margin-bottom:8px}
.ac-cta p{color:var(--muted);font-size:14px;margin-bottom:18px;max-width:52ch;margin-left:auto;margin-right:auto}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:26px;font-weight:700;font-size:14.5px;font-family:var(--body);transition:.25s}
.btn:hover{text-decoration:none;transform:translateY(-2px)}
.btn-wa{background:#25D366;color:#00230f;box-shadow:0 10px 30px rgba(37,211,102,.28)}
.btn-teal{background:linear-gradient(100deg,var(--teal),#1fb89c);color:#00201a}
.btn-ghost{background:rgba(234,242,255,.05);border:1px solid var(--line);color:var(--ink)}
.ac-cta .btn+.btn{margin-left:10px}
@media(max-width:520px){.ac-cta .btn{display:flex;margin:8px auto 0}.ac-cta .btn+.btn{margin-left:auto}}

/* related */
.ac-related{margin-top:40px;border-top:1px solid var(--line);padding-top:26px}
.ac-related h2{font-family:var(--disp);font-size:18px;margin-bottom:16px;color:var(--ink)}
.rel-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:640px){.rel-grid{grid-template-columns:1fr}}
.rel-card{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--panel);transition:.25s;display:block}
.rel-card:hover{border-color:rgba(45,226,196,.4);transform:translateY(-2px);text-decoration:none}
.rel-card .rk{font-family:var(--mono);font-size:10px;color:var(--teal);letter-spacing:.06em;text-transform:uppercase}
.rel-card .rt{font-family:var(--disp);font-size:15px;font-weight:600;color:var(--ink);margin-top:6px;line-height:1.25}

/* index / module listing */
.mod-hero{padding:40px 0 10px}
.mod-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0 40px}
@media(max-width:700px){.mod-grid{grid-template-columns:1fr}}
.mod-card{border:1px solid var(--line);border-radius:16px;padding:24px 22px;background:var(--panel);transition:.28s;display:block;position:relative;overflow:hidden}
.mod-card::before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--teal),var(--violet));opacity:.75}
.mod-card:hover{border-color:rgba(45,226,196,.4);transform:translateY(-3px);text-decoration:none;box-shadow:0 16px 40px rgba(0,0,0,.35)}
.mod-card .mc-n{font-family:var(--mono);font-size:11px;color:var(--teal);letter-spacing:.1em}
.mod-card .mc-t{font-family:var(--disp);font-size:19px;font-weight:600;color:var(--ink);margin:9px 0 8px}
.mod-card .mc-d{font-size:13.5px;color:var(--muted)}
.mod-card .mc-l{font-family:var(--mono);font-size:11px;color:var(--dim);margin-top:12px}

/* lesson list on module page */
.les-list{margin:26px 0 10px;display:flex;flex-direction:column;gap:10px}
.les-item{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:var(--panel);display:flex;align-items:center;justify-content:space-between;gap:14px;transition:.22s}
a.les-item:hover{border-color:rgba(45,226,196,.4);transform:translateX(3px);text-decoration:none}
.les-item .lt{font-family:var(--disp);font-size:15.5px;font-weight:500;color:var(--ink)}
.les-item .ld{font-size:12.5px;color:var(--muted);margin-top:3px}
.les-item .lm{font-family:var(--mono);font-size:11px;color:var(--teal);flex:0 0 auto}
.les-item.soon{opacity:.6}.les-item.soon .lm{color:var(--dim)}
.sub-t{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--teal);margin:26px 0 4px}

footer.ac-foot{border-top:1px solid var(--line);margin-top:60px;padding:30px 0 50px;color:var(--dim);font-size:12px;text-align:center}
footer.ac-foot a{color:var(--muted)}

/* ================= ACADEMIA REAL (LMS) ================= */
.ac-wrap{max-width:880px;margin:0 auto;padding:0 22px}

/* --- shell de lección: temario + contenido --- */
.ac-lesson-shell{max-width:1160px;margin:0 auto;padding:0 22px;display:grid;grid-template-columns:300px 1fr;gap:40px;align-items:start}
.ac-main{min-width:0}
.ac-side{position:sticky;top:74px;align-self:start;max-height:calc(100vh - 90px);overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px 16px}
.side-top{padding:4px 4px 14px;border-bottom:1px solid var(--line);margin-bottom:12px}
.side-prog-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);display:block;margin-bottom:8px}
.side-bar{height:7px;border-radius:6px;background:rgba(140,160,191,.16);overflow:hidden}
.side-bar i,.cp-bar i{display:block;height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,var(--teal),var(--violet));transition:width .5s ease}
.side-pct{font-family:var(--mono);font-size:11px;color:var(--teal);margin-top:6px;display:inline-block}
.side-outline .ol-mod{margin-bottom:6px;border:1px solid transparent;border-radius:10px}
.side-outline .ol-mod.current-mod{border-color:rgba(45,226,196,.2);background:rgba(45,226,196,.03)}
.ol-mt{font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--dim);padding:8px 6px;display:flex;align-items:center;gap:7px;cursor:pointer;user-select:none}
.ol-mt:hover{color:var(--muted)}
.ol-mod.current-mod>.ol-mt{color:var(--teal)}
.ol-caret{font-size:9px;transition:transform .2s;flex:0 0 auto}
.ol-mod.open>.ol-mt .ol-caret{transform:rotate(90deg)}
.ol-body{display:none;padding:0 4px 8px}
.ol-mod.open>.ol-body{display:block}
.ol-sub{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--violet);opacity:.85;padding:8px 8px 4px 14px}
.ol-item{display:flex;gap:9px;align-items:flex-start;padding:7px 8px 7px 16px;border-radius:9px;font-size:12.7px;color:var(--muted);line-height:1.35;transition:.18s}
.ol-item:hover{background:rgba(45,226,196,.07);color:var(--ink);text-decoration:none}
.ol-item.current{background:rgba(123,92,255,.14);color:var(--ink);font-weight:600}
.ol-item.done .ol-t{color:var(--dim)}
.ol-check{flex:0 0 16px;width:16px;height:16px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:10px;color:var(--teal);margin-top:1px}
.ol-item.done .ol-check{background:var(--teal);color:#012;border-color:var(--teal)}
.ol-item.current .ol-check{border-color:var(--violet)}

/* topbar de lección */
.lesson-topbar{display:flex;align-items:center;gap:14px;margin:20px 0 6px}
.lesson-count{font-family:var(--mono);font-size:11.5px;color:var(--teal);letter-spacing:.03em}
.side-toggle{display:none;background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:20px;padding:8px 14px;font-size:12.5px;font-family:var(--body);cursor:pointer}

/* marcar completada */
.complete-row{margin:30px 0 6px;display:flex;justify-content:center}
.btn-complete{background:rgba(45,226,196,.1);border:1px solid rgba(45,226,196,.4);color:var(--teal);padding:13px 26px;border-radius:26px;font-weight:700;font-size:14px;font-family:var(--body);cursor:pointer;transition:.22s}
.btn-complete:hover{background:rgba(45,226,196,.18)}
.btn-complete.done{background:var(--teal);color:#012;border-color:var(--teal)}

/* navegación anterior/siguiente */
.lesson-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:34px 0 10px}
.lnav{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:13px;padding:15px 18px;background:var(--panel);transition:.22s;min-width:0}
.lnav:hover{border-color:rgba(45,226,196,.4);transform:translateY(-2px);text-decoration:none}
.lnav span{font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--dim)}
.lnav b{font-family:var(--disp);font-size:14px;font-weight:600;color:var(--ink);line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.lnav.next{text-align:right;align-items:flex-end}
.lnav.disabled{opacity:.4;pointer-events:none}

/* módulo: número de módulo + lecciones numeradas + nav módulo */
.mod-of{font-family:var(--mono);font-size:11.5px;color:var(--teal);letter-spacing:.05em}
.mod-lessons{margin:18px 0 10px;display:flex;flex-direction:column;gap:9px}
.ml-item{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--panel);transition:.2s}
a.ml-item:hover{border-color:rgba(45,226,196,.4);transform:translateX(3px);text-decoration:none}
.ml-num{flex:0 0 auto;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-family:var(--mono);font-size:12px;color:var(--muted)}
.ml-item.done .ml-num{background:var(--teal);color:#012;border-color:var(--teal)}
.ml-body{min-width:0}
.ml-t{font-family:var(--disp);font-size:15px;font-weight:600;color:var(--ink)}
.ml-d{font-size:12.3px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-check{flex:0 0 auto;font-family:var(--mono);font-size:12px;color:var(--dim)}
.ml-item.done .ml-check{color:var(--teal)}
.mod-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}

/* index: card de progreso + currículum */
.course-progress{background:linear-gradient(135deg,rgba(45,226,196,.09),rgba(123,92,255,.09));border:1px solid var(--line);border-radius:18px;padding:26px;margin:26px 0 34px;text-align:center}
.course-progress .cp-h{font-family:var(--disp);font-size:19px;font-weight:600;margin-bottom:6px}
.course-progress .cp-sub{color:var(--muted);font-size:13.5px;margin-bottom:16px}
.cp-bar{height:9px;border-radius:7px;background:rgba(140,160,191,.16);overflow:hidden;max-width:440px;margin:0 auto 16px}
.cur-mod{margin-bottom:26px}
.cur-mt{font-family:var(--disp);font-size:17px;font-weight:600;color:var(--ink);margin-bottom:12px;display:flex;align-items:center;gap:9px}
.cur-mt .cm-ic{font-size:19px}
.cur-list{display:flex;flex-direction:column;gap:8px}
.cur-item{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:11px;padding:12px 15px;background:var(--panel);transition:.2s}
a.cur-item:hover{border-color:rgba(45,226,196,.4);transform:translateX(3px);text-decoration:none}
.cur-num{flex:0 0 auto;width:26px;height:26px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:var(--muted)}
.cur-item.done .cur-num{background:var(--teal);color:#012;border-color:var(--teal)}
.cur-t{font-size:14px;color:var(--ink);min-width:0}
.cur-check{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--dim)}
.cur-item.done .cur-check{color:var(--teal)}

/* banner de fin + constancia */
.completion{display:none;background:linear-gradient(135deg,rgba(255,194,75,.12),rgba(123,92,255,.1));border:1px solid rgba(255,194,75,.35);border-radius:18px;padding:26px;text-align:center;margin:0 0 30px}
.completion h3{font-family:var(--disp);font-size:20px;margin-bottom:8px;color:var(--gold)}
.completion p{color:var(--muted);font-size:14px;margin-bottom:16px}
.cert-modal{display:none;position:fixed;inset:0;z-index:99;background:rgba(2,4,9,.82);backdrop-filter:blur(6px);align-items:center;justify-content:center;padding:22px}
.cert-card{background:#0b1120;border:2px solid var(--gold);border-radius:18px;max-width:620px;width:100%;padding:44px 40px;text-align:center;position:relative}
.cert-card .cc-seal{font-size:40px;margin-bottom:10px}
.cert-card .cc-k{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.cert-card .cc-t{font-family:var(--disp);font-size:26px;font-weight:700;margin:10px 0 20px}
.cert-card .cc-name{font-family:var(--disp);font-size:30px;font-weight:700;color:var(--teal);border-bottom:1px solid var(--line);padding-bottom:14px;margin:8px 0 14px}
.cert-card .cc-sub{color:var(--muted);font-size:13.5px}
.cert-card .cc-date{font-family:var(--mono);font-size:12px;color:var(--dim);margin-top:18px}
.cert-actions{margin-top:22px;display:flex;gap:10px;justify-content:center}
.cert-close{position:absolute;top:14px;right:16px;background:transparent;border:0;color:var(--muted);font-size:22px;cursor:pointer}

@media print{ body *{visibility:hidden} .cert-modal,.cert-modal *{visibility:visible} .cert-modal{display:flex!important;position:absolute;background:#fff} .cert-actions,.cert-close{display:none!important} .cert-card{border-color:#b8860b} }

/* responsive: temario como cajón */
@media(max-width:900px){
  .ac-lesson-shell{grid-template-columns:1fr;gap:0}
  .side-toggle{display:inline-block}
  .ac-side{position:fixed;top:0;left:0;bottom:0;width:300px;max-height:100vh;z-index:80;border-radius:0;transform:translateX(-102%);transition:transform .3s ease;box-shadow:20px 0 60px rgba(0,0,0,.5)}
  body.side-open .ac-side{transform:translateX(0)}
  .side-backdrop{display:none;position:fixed;inset:0;z-index:79;background:rgba(2,4,9,.6)}
  body.side-open .side-backdrop{display:block}
  .lesson-nav,.mod-nav{grid-template-columns:1fr}
}

/* ===== Glosario ===== */
.glo-search{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;color:var(--ink);font-size:15px;font-family:var(--body);margin:8px 0 22px}
.glo-search:focus{outline:none;border-color:var(--teal)}
.glo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:640px){.glo-grid{grid-template-columns:1fr}}
.glo-item{border:1px solid var(--line);border-radius:12px;padding:15px 17px;background:var(--panel)}
.glo-t{font-family:var(--disp);font-size:15px;font-weight:600;color:var(--teal);margin-bottom:5px}
.glo-d{font-size:13.3px;color:var(--muted);line-height:1.5}

/* ===== Mapa Maestro ===== */
.map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:24px 0}
.map-card{border:1px solid var(--line);border-radius:16px;padding:22px 20px;background:var(--panel);transition:.25s;position:relative;overflow:hidden}
.map-card::before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--teal),var(--violet));opacity:.7}
.map-card:hover{transform:translateY(-3px);border-color:rgba(45,226,196,.4)}
.map-ic{font-size:30px;margin-bottom:8px}
.map-obj{font-family:var(--disp);font-size:18px;font-weight:600;color:var(--ink);margin-bottom:14px}
.map-k{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin:12px 0 7px}
.map-peps{display:flex;flex-wrap:wrap;gap:7px}
.map-pep{background:var(--panel2);border:1px solid rgba(45,226,196,.3);color:var(--ink);padding:6px 12px;border-radius:16px;font-size:12.5px;text-decoration:none;transition:.2s}
.map-pep:hover{background:rgba(45,226,196,.12);text-decoration:none}
.map-combo{display:inline-block;color:var(--violet);font-size:13px;font-weight:600;text-decoration:none}
.map-more{display:inline-block;margin-top:16px;font-family:var(--mono);font-size:11px;color:var(--teal)}

/* ===== Tracker ===== */
.trk-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px}
.trk-row2{display:grid;grid-template-columns:2fr 1fr;gap:14px}
.trk-grid5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
@media(max-width:760px){.trk-row2,.trk-grid5{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.trk-row2,.trk-grid5{grid-template-columns:1fr}}
.trk-field{display:flex;flex-direction:column;gap:6px}
.trk-field label{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}
.trk-field input{background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:10px 12px;color:var(--ink);font-size:14px;font-family:var(--body)}
.trk-field input:focus{outline:none;border-color:var(--teal)}
.trk-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:520px}
.trk-table th{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--dim);text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
.trk-table td{padding:11px 12px;border-bottom:1px solid var(--line);color:#cdd8ee}
.trk-del{background:transparent;border:0;color:var(--dim);cursor:pointer;font-size:14px}
.trk-del:hover{color:#ff8f8f}
.trk-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}

/* ===== Legal ===== */
.legal-wrap{max-width:820px}
.legal-doc .ac-body h2{font-size:19px}
.legal-upd{font-family:var(--mono);font-size:11.5px;color:var(--dim);margin-top:10px}
.legal-doc .ac-body p,.legal-doc .ac-body li{font-size:14px}
.lang-toggle{display:inline-flex;border:1px solid var(--line);border-radius:20px;overflow:hidden;margin-left:6px}
.lang-toggle button{background:transparent;border:0;color:var(--muted);padding:6px 11px;font:600 11px/1 Inter,sans-serif;cursor:pointer}
.lang-toggle button.on{background:var(--teal);color:#03121a}

/* ===== Accesos a recursos en el sidebar ===== */
.side-res{display:flex;gap:6px;margin-bottom:14px}
.side-res-b{flex:1;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px 4px;font-size:11px;color:var(--muted);text-decoration:none;transition:.18s}
.side-res-b:hover{border-color:rgba(45,226,196,.4);color:var(--ink);text-decoration:none}

/* ===== Showcase de recursos dentro de la lección ===== */
.les-resources{margin:34px 0 10px;padding:20px;background:linear-gradient(135deg,rgba(45,226,196,.05),rgba(123,92,255,.05));border:1px solid rgba(45,226,196,.18);border-radius:16px}
.les-resources h3{font-family:var(--disp);font-size:15px;color:var(--ink);margin-bottom:14px}
.lr-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
@media(max-width:640px){.lr-grid{grid-template-columns:1fr}}
.lr-card{display:flex;flex-direction:column;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 15px;text-decoration:none;transition:.2s}
.lr-card:hover{border-color:rgba(45,226,196,.4);transform:translateY(-2px);text-decoration:none}
.lr-i{font-size:22px}
.lr-t{font-family:var(--disp);font-size:13.5px;font-weight:600;color:var(--teal)}
.lr-d{font-size:12px;color:var(--muted);line-height:1.4}

/* ===== Plasma ambiental (Academia/Blog/Legal) — sin tocar HTML ===== */
body{position:relative;z-index:0}
body::before,body::after{content:"";position:fixed;border-radius:50%;filter:blur(100px);opacity:.34;mix-blend-mode:screen;pointer-events:none;z-index:-1;will-change:transform}
body::before{width:60vw;height:60vw;left:-14vw;top:-16vw;background:radial-gradient(circle at 40% 40%,var(--teal),transparent 62%);animation:acDrift1 26s ease-in-out infinite alternate}
body::after{width:52vw;height:52vw;right:-12vw;bottom:-14vw;background:radial-gradient(circle at 55% 45%,var(--magenta),transparent 62%);animation:acDrift2 30s ease-in-out infinite alternate}
@keyframes acDrift1{to{transform:translate(9vw,8vh) scale(1.18)}}
@keyframes acDrift2{to{transform:translate(-8vw,-7vh) scale(1.14)}}
/* Acentos vibrantes + headline plasma fluido */
.ac-title{background:var(--plasma)!important;background-size:220% auto!important;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:acFlow 10s linear infinite}
@keyframes acFlow{to{background-position:220% center}}
.ac-kick{color:var(--magenta)}
.mod-card:hover{box-shadow:0 22px 60px rgba(45,226,196,.14),0 0 40px rgba(255,61,154,.08)}
.mod-card::before{background:var(--plasma)!important}
@media(prefers-reduced-motion:reduce){body::before,body::after,.ac-title{animation:none!important}}

/* ===== Diagrama animado de lección (señal → receptor → respuesta) ===== */
.les-diagram-wrap{margin:24px 0 10px;padding:20px;background:linear-gradient(135deg,rgba(45,226,196,.05),rgba(255,61,154,.05));border:1px solid var(--line);border-radius:16px;text-align:center}
.les-diagram{width:100%;max-width:660px;height:auto;display:block;margin:0 auto}
.ld-line{stroke:url(#ldg);stroke-width:2;stroke-dasharray:6 8;opacity:.5;animation:ldDash 22s linear infinite}
@keyframes ldDash{to{stroke-dashoffset:-240}}
.ld-node circle{fill:#0C1220;stroke:url(#ldg);stroke-width:2}
.ld-t{fill:#EAF2FF;font-family:var(--disp);font-size:16px;font-weight:700;text-anchor:middle}
.ld-s{fill:#8CA0BF;font-size:11.5px;text-anchor:middle;font-family:var(--body)}
.ld-n1 circle{animation:ldPulse 2.6s ease-in-out infinite}
.ld-n2 circle:last-of-type{animation:ldPulse 2.6s ease-in-out .3s infinite}
.ld-n3 circle{animation:ldPulse 2.6s ease-in-out .6s infinite}
@keyframes ldPulse{0%,100%{filter:drop-shadow(0 0 0 rgba(45,226,196,0))}50%{filter:drop-shadow(0 0 12px rgba(123,92,255,.55))}}
.ld-ring{fill:none;stroke:url(#ldg);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:ldRing 2.4s ease-out infinite}
@keyframes ldRing{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.6);opacity:0}}
.ld-signal{transform-box:fill-box;animation:ldTravel 3.2s cubic-bezier(.45,0,.25,1) infinite}
@keyframes ldTravel{0%{transform:translateX(0);opacity:0}8%{opacity:1}92%{opacity:1}100%{transform:translateX(480px);opacity:0}}
.les-diagram-wrap figcaption{margin:14px auto 0;font-size:12.7px;color:var(--muted);line-height:1.55;max-width:62ch}
.les-diagram-wrap figcaption b{color:var(--ink)}
@media(max-width:560px){.ld-t{font-size:13px}.ld-s{font-size:10px}}
@media(prefers-reduced-motion:reduce){.ld-line,.ld-node circle,.ld-ring,.ld-signal{animation:none!important}.ld-signal{opacity:0}}

/* ===== Diagramas: molécula única + sistema por categoría + sinergia ===== */
.mol-wrap,.sys-wrap{margin:22px 0 10px;padding:20px;background:linear-gradient(135deg,rgba(45,226,196,.05),rgba(255,61,154,.05));border:1px solid var(--line);border-radius:16px;text-align:center}
.mol-svg,.sys-svg{width:100%;max-width:660px;height:auto;display:block;margin:0 auto}
.mol-wrap figcaption,.sys-wrap figcaption{margin:14px auto 0;font-size:12.7px;color:var(--muted);line-height:1.55;max-width:62ch}
.mol-wrap figcaption b,.sys-wrap figcaption b{color:var(--ink)}
/* molécula */
.mol-bond{fill:none;stroke:url(#molg);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1400;stroke-dashoffset:1400;animation:molDraw 1.8s ease forwards}
@keyframes molDraw{to{stroke-dashoffset:0}}
.mol-node{fill:#0C1220;stroke:url(#molg);stroke-width:2.5;opacity:0;transform-box:fill-box;transform-origin:center;animation:molPop .5s ease forwards}
@keyframes molPop{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}
.mol-ring{fill:none;stroke:url(#molg);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:molRing 3s ease-out infinite}
@keyframes molRing{0%{transform:scale(1);opacity:.5}100%{transform:scale(2.3);opacity:0}}
.mol-name{fill:#EAF2FF;font-family:var(--disp);font-size:17px;font-weight:700;text-anchor:middle}
/* sistema — comunes */
.sd-t{fill:#EAF2FF;font-family:var(--disp);font-size:15px;font-weight:700;text-anchor:middle}
.sd-l{fill:#EAF2FF;font-size:13px;font-weight:600;text-anchor:middle}
.sd-s{fill:#8CA0BF;font-size:12px;text-anchor:middle}
.sd-i{font-size:26px;text-anchor:middle}
@keyframes sdIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes sdPulse{0%,100%{opacity:.7}50%{opacity:1}}
/* regenera */
.sd-track{fill:rgba(140,160,191,.15)}
.sd-fill{fill:url(#sysg);transform-box:fill-box;transform-origin:left center;animation:sdFill 2.2s ease forwards}
@keyframes sdFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.sd-step circle{fill:#0C1220;stroke:url(#sysg);stroke-width:2.5}
.sd-step{opacity:0;animation:sdIn .6s ease forwards}
/* hormonal */
.sd-axis{stroke:url(#sysg);stroke-width:2;stroke-dasharray:4 5;opacity:.5}
.sd-node rect{fill:#0C1220;stroke:url(#sysg);stroke-width:2}
.sd-node{opacity:0;animation:sdIn .6s ease forwards}
/* metabolico / longevidad */
.sd-cell{fill:rgba(45,226,196,.05);stroke:url(#sysg);stroke-width:2}
.sd-mito{fill:rgba(123,92,255,.25);stroke:var(--violet);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:sdPulse 2.6s ease-in-out infinite}
.sd-fat{fill:rgba(255,180,71,.4);stroke:#FF7A18;stroke-width:1.5}
.sd-clock{fill:#0C1220;stroke:url(#sysg);stroke-width:2.5}
.sd-hand{stroke:url(#sysg);stroke-width:2.5;stroke-linecap:round}
/* cognitivo */
.sd-neuron circle{fill:#0C1220;stroke:url(#sysg);stroke-width:2.5}
.sd-neuron line{stroke:url(#sysg);stroke-width:2;stroke-linecap:round}
.sd-neuron{opacity:0;animation:sdIn .6s ease forwards}
.sd-spark{fill:#FF3D9A;transform-box:fill-box;transform-origin:center;animation:sparkMove 2.6s ease-in-out infinite}
@keyframes sparkMove{0%{transform:translateX(-15px);opacity:0}30%{opacity:1}100%{transform:translateX(60px);opacity:0}}
/* inmune */
.sd-beam{stroke:url(#sysg);stroke-width:3;stroke-linecap:round;transform-box:fill-box;transform-origin:center;animation:sdTilt 3.4s ease-in-out infinite}
@keyframes sdTilt{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
.sd-post{stroke:url(#sysg);stroke-width:3}
.sd-base{fill:url(#sysg)}
.sd-pan circle{fill:#0C1220;stroke:url(#sysg);stroke-width:2}
.sd-pan{opacity:0;animation:sdIn .6s ease forwards}
/* estetico */
.sd-skin{stroke:url(#sysg);stroke-width:1.5}
.sd-epi{fill:rgba(45,226,196,.12)}
.sd-derm{fill:rgba(123,92,255,.12)}
.sd-fiber{fill:none;stroke:url(#sysg);stroke-width:2;stroke-dasharray:700;stroke-dashoffset:700;animation:molDraw 2.2s ease forwards}
/* sinergia (convergencia) */
.cb-line{fill:none;stroke:url(#sysg);stroke-width:2.5;stroke-dasharray:700;stroke-dashoffset:700;animation:molDraw 1.9s ease forwards}
.cb-in circle{fill:#0C1220;stroke:url(#sysg);stroke-width:2.5}
.cb-in{opacity:0;animation:sdIn .6s ease forwards}
.cb-goal circle{fill:rgba(45,226,196,.08);stroke:url(#sysg);stroke-width:3;transform-box:fill-box;transform-origin:center;animation:sdPulse 2.6s ease-in-out infinite}
.cb-t{fill:#EAF2FF;font-family:var(--disp);font-size:13px;font-weight:700;text-anchor:middle}
.cb-s{fill:#8CA0BF;font-size:10.5px;text-anchor:middle}
@media(prefers-reduced-motion:reduce){.mol-bond,.mol-node,.mol-ring,.sd-fill,.sd-step,.sd-node,.sd-mito,.sd-spark,.sd-beam,.sd-fiber,.cb-line,.cb-in,.cb-goal circle,.sd-neuron,.sd-pan{animation:none!important}.mol-bond,.sd-fiber,.cb-line{stroke-dashoffset:0}.mol-node,.sd-step,.sd-node,.sd-neuron,.sd-pan,.cb-in{opacity:1}}

/* logo con marca */
.ac-logo-mark{display:inline-block;vertical-align:middle;filter:drop-shadow(0 0 8px rgba(123,92,255,.45))}
