/* ============================================================
   ALGOMYTH · Editorial
   Biblioteca de guías (/guides) y blog de mercados (/blog).
   Se carga solo en esas páginas, encima de algomyth.css, y usa
   sus variables: navy profundo, azul eléctrico, cian, Clash
   Display / Syne para titulares, Inter para texto, JetBrains
   Mono para etiquetas. Todo con prefijo ed- para no chocar.
   ============================================================ */

.ed-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
[hidden]{ display:none !important; }

/* ---------- Migas de pan ---------- */
.ed-crumbs ol{ list-style:none; display:flex; flex-wrap:wrap; gap:.15rem .55rem; margin:0 0 1.6rem; padding:0;
  font-family:var(--font-mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--txt-3); }
.ed-crumbs li{ display:inline-flex; align-items:center; gap:.55rem; }
.ed-crumbs li + li::before{ content:"/"; color:var(--line-2); }
.ed-crumbs a{ color:var(--txt-3); }
.ed-crumbs a:hover{ color:var(--blue); }
.ed-crumbs [aria-current]{ color:var(--txt-2); max-width:38ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* ---------- Portada de hub (guías y blog) ---------- */
.ed-hub{
  position:relative; overflow:hidden; color:#fff; padding:3.4rem 0 3.2rem;
  background:
    linear-gradient(90deg, rgba(7,13,31,.96) 0%, rgba(7,13,31,.86) 46%, rgba(7,13,31,.55) 100%),
    var(--hub-img, none) center / cover no-repeat,
    radial-gradient(ellipse 60% 90% at 85% 0%, rgba(47,107,255,.35), transparent 70%),
    var(--navy);
  border-bottom:1px solid rgba(96,140,255,.18);
}
.ed-hub::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--grad); opacity:.85; }
.ed-hub .ed-crumbs ol, .ed-hub .ed-crumbs a{ color:rgba(182,194,224,.75); }
.ed-hub .ed-crumbs [aria-current]{ color:#fff; }
.ed-hub .ed-crumbs li + li::before{ color:rgba(182,194,224,.35); }
.ed-hub-kick{ display:inline-flex; align-items:center; gap:.7rem; font-family:var(--font-mono); font-size:.72rem;
  letter-spacing:.26em; text-transform:uppercase; color:var(--cyan); }
.ed-hub-kick::after{ content:""; width:46px; height:1px; background:rgba(96,140,255,.45); }
.ed-hub h1{ color:#fff; font-family:var(--font-brand); font-weight:800; letter-spacing:-.01em;
  font-size:clamp(2.6rem, 6vw, 4.8rem); line-height:1.02; margin:.9rem 0 1rem; max-width:16ch; }
.ed-hub-dek{ color:#b6c2e0; font-size:clamp(1rem, 1.4vw, 1.15rem); max-width:40rem; }
.ed-hub-stats{ display:flex; flex-wrap:wrap; gap:2.4rem; margin-top:1.9rem; }
.ed-hub-stats div{ display:flex; flex-direction:column; }
.ed-hub-stats b{ font-family:var(--font-disp); font-weight:600; font-size:1.9rem; color:#fff; line-height:1.1; }
.ed-hub-stats span{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:#8794b5; }
.ed-hub-links{ display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:1.6rem; font-family:var(--font-mono); font-size:.74rem;
  letter-spacing:.16em; text-transform:uppercase; }
.ed-hub-links a{ color:var(--cyan); }
.ed-hub-links a:hover{ color:#fff; }
.ed-search{ margin-top:2rem; max-width:34rem; }
.ed-search input{
  width:100%; font:500 1rem var(--font-body); color:#fff; padding:.95rem 1.2rem .95rem 2.9rem;
  border-radius:12px; border:1px solid rgba(159,176,212,.3); background:rgba(255,255,255,.06)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%2341d8ff' stroke-width='2'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cpath d='m13 13 4 4'/%3E%3C/svg%3E") 1rem 50% no-repeat;
  outline:none; transition:border-color .2s, background-color .2s;
}
.ed-search input::placeholder{ color:#7d89a8; }
.ed-search input:focus{ border-color:var(--cyan); background-color:rgba(255,255,255,.09); }

/* ---------- Chips de categoría ---------- */
.ed-chips{ display:flex; gap:.55rem; flex-wrap:wrap; padding:1.6rem 0 .4rem; }
.ed-chips a{
  display:inline-flex; align-items:center; gap:.5rem; padding:.5rem 1rem; border-radius:999px;
  border:1px solid var(--line-2); background:var(--panel); color:var(--txt-2);
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; transition:all .2s;
}
.ed-chips a i{ font-style:normal; color:var(--txt-3); font-size:.66rem; }
.ed-chips a:hover{ border-color:var(--blue); color:var(--blue); }
.ed-chips a.on{ background:var(--grad); border-color:transparent; color:#fff; box-shadow:0 6px 18px rgba(36,87,230,.28); }
.ed-chips a.on i{ color:rgba(255,255,255,.75); }
.ed-noresults{ padding:2rem 0 0; color:var(--txt-2); }

/* ---------- Secciones ---------- */
section.ed-sec{ padding:3.2rem 0; }
.ed-sec + .ed-sec{ padding-top:1.2rem; }
.ed-sec-head{ margin-bottom:1.8rem; max-width:52rem; }
.ed-sec-head h2{ font-size:clamp(1.45rem, 2.4vw, 2rem); margin:.55rem 0 .5rem; }
.ed-sec-head p{ font-size:.98rem; }
.ed-sec-row{ max-width:none; display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; }
.ed-sec-row > div{ max-width:44rem; }
.ed-band{ background:linear-gradient(180deg, #eef3fd, var(--bg)); border-top:1px solid var(--line); }

/* ---------- Rejilla y tarjetas ---------- */
.ed-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.5rem; }
.ed-card{
  display:flex; flex-direction:column; border-radius:16px; overflow:hidden; background:var(--panel);
  border:1px solid var(--line); box-shadow:0 2px 10px rgba(18,48,120,.04); color:inherit;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.ed-card:hover{ transform:translateY(-4px); border-color:var(--line-2); box-shadow:var(--shadow); color:inherit; }
.ed-card-img{ display:block; aspect-ratio:1200 / 630; overflow:hidden; background:linear-gradient(135deg, var(--navy-2), #13265c); }
.ed-card-img img{ width:100%; height:100%; max-height:none; object-fit:cover; transition:transform .5s ease; }
.ed-card:hover .ed-card-img img{ transform:scale(1.035); }
.ed-card-tx{ display:flex; flex-direction:column; gap:.45rem; padding:1.25rem 1.4rem 1.45rem; flex:1; }
.ed-card-kick{ font-family:var(--font-mono); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--blue); }
.ed-card-h{ font-family:var(--font-disp); font-weight:600; font-size:1.14rem; line-height:1.22; letter-spacing:-.01em; color:var(--txt); }
.ed-card-p{ font-size:.9rem; line-height:1.55; color:var(--txt-2);
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.ed-card-meta{ margin-top:auto; padding-top:.5rem; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; color:var(--txt-3); }
.ed-card-core .ed-card-kick::before{ content:"◆ "; color:var(--cyan); }
.ed-card.ed-extra{ display:none; }
body.ed-searching .ed-card.ed-extra{ display:flex; }

/* Destacada en la rejilla de guías pilar */
.ed-grid-lead .ed-card-xl{ grid-column:span 2; grid-row:span 2; }
.ed-grid-lead .ed-card-xl .ed-card-img{ aspect-ratio:16 / 9; }
.ed-grid-lead .ed-card-xl .ed-card-h{ font-size:clamp(1.4rem, 2.2vw, 1.9rem); }
.ed-grid-lead .ed-card-xl .ed-card-p{ font-size:1rem; -webkit-line-clamp:4; }

/* Noticia principal del blog */
.ed-lead{
  display:grid; grid-template-columns:1.25fr 1fr; margin-bottom:1.8rem; border-radius:var(--radius-lg);
  overflow:hidden; color:#fff; border:1px solid #1c2c58; box-shadow:var(--shadow-lg);
  background:radial-gradient(ellipse 70% 120% at 100% 0%, rgba(47,107,255,.28), transparent 70%), linear-gradient(180deg, var(--navy-2), var(--navy));
  transition:transform .25s ease;
}
.ed-lead:hover{ transform:translateY(-3px); color:#fff; }
.ed-lead-img{ display:block; min-height:100%; }
.ed-lead-img img{ width:100%; height:100%; object-fit:cover; aspect-ratio:16 / 10; }
.ed-lead-tx{ display:flex; flex-direction:column; justify-content:center; gap:.8rem; padding:2.4rem 2.4rem 2.6rem; }
.ed-lead .ed-card-kick{ color:var(--cyan); }
.ed-lead-h{ font-family:var(--font-disp); font-weight:600; font-size:clamp(1.6rem, 2.6vw, 2.3rem); line-height:1.1; letter-spacing:-.015em; }
.ed-lead .ed-card-p{ color:#b6c2e0; font-size:1rem; -webkit-line-clamp:4; }
.ed-lead .ed-card-meta{ color:#8794b5; margin-top:.2rem; }
.ed-lead-go{ font-family:var(--font-disp); font-weight:600; color:var(--cyan); margin-top:.4rem; }

/* Paginación */
.ed-pager{ display:flex; justify-content:center; flex-wrap:wrap; gap:.45rem; margin-top:2.6rem; font-family:var(--font-mono); font-size:.8rem; }
.ed-pager a, .ed-pager span{ min-width:2.6rem; text-align:center; padding:.55rem .9rem; border-radius:10px; border:1px solid var(--line-2); background:var(--panel); color:var(--txt-2); }
.ed-pager a:hover{ border-color:var(--blue); color:var(--blue); }
.ed-pager span{ background:var(--grad); color:#fff; border-color:transparent; }

/* ---------- Artículo ---------- */
.ed-art-head{ padding:3rem 0 2.2rem; position:relative; }
.ed-art-head::before{
  content:""; position:absolute; inset:-40% -10% auto; height:560px; z-index:-1;
  background:radial-gradient(ellipse 55% 60% at 50% 20%, rgba(47,107,255,.10), transparent 70%);
}
.ed-narrow{ max-width:58rem; }
.ed-kick{
  display:inline-flex; align-items:center; gap:.6rem; font-family:var(--font-mono); font-size:.7rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--blue); padding:.38rem .8rem;
  border:1px solid var(--line-2); border-radius:999px; background:var(--soft);
}
.ed-kick:hover{ border-color:var(--blue); }
.ed-art-head h1{
  font-size:clamp(2.1rem, 4.6vw, 3.55rem); line-height:1.06; letter-spacing:-.025em;
  margin:1.1rem 0 1.1rem; text-wrap:balance;
}
.ed-art-head h1 .mark, .ed-hub h1 .mark{
  background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;
}
.ed-dek{ font-size:clamp(1.05rem, 1.5vw, 1.24rem); line-height:1.6; color:var(--txt-2); max-width:46rem; }
.ed-dek strong{ color:var(--txt); }
.ed-meta{ display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; margin-top:1.5rem; font-family:var(--font-mono); font-size:.72rem;
  letter-spacing:.1em; text-transform:uppercase; color:var(--txt-3); }
.ed-meta span{ display:inline-flex; align-items:center; gap:.5rem; }
.ed-meta span + span::before{ content:""; width:4px; height:4px; border-radius:50%; background:var(--blue); opacity:.6; margin-right:.9rem; }

.ed-hero{ margin-bottom:3.2rem; }
.ed-hero img{ width:100%; height:auto; aspect-ratio:16 / 9; object-fit:cover; border-radius:var(--radius-lg);
  border:1px solid var(--line); box-shadow:var(--shadow-lg); background:var(--navy); }

.ed-body{ display:grid; grid-template-columns:15.5rem minmax(0, 46rem); gap:3.5rem; justify-content:center; align-items:start; }
.ed-body-solo{ grid-template-columns:minmax(0, 46rem); }

/* Índice */
.ed-toc{ position:sticky; top:calc(var(--top-h) + 1.6rem); max-height:calc(100vh - var(--top-h) - 3rem); overflow:auto; }
.ed-toc summary{ list-style:none; cursor:pointer; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--txt-3); padding-bottom:.8rem; border-bottom:1px solid var(--line); margin-bottom:.8rem; }
.ed-toc summary::-webkit-details-marker{ display:none; }
.ed-toc ol{ list-style:none; counter-reset:toc; margin:0; padding:0; }
.ed-toc li{ counter-increment:toc; }
.ed-toc a{ display:grid; grid-template-columns:1.9rem 1fr; padding:.42rem 0; font-size:.86rem; line-height:1.4; color:var(--txt-2);
  border-left:2px solid transparent; transition:color .15s; }
.ed-toc a::before{ content:counter(toc, decimal-leading-zero); font-family:var(--font-mono); font-size:.68rem; color:var(--blue); padding-top:.15rem; }
.ed-toc a:hover, .ed-toc a.on{ color:var(--txt); }

/* ---------- Prosa ---------- */
.ed-prose{ font-size:1.07rem; line-height:1.78; color:#2b3757; min-width:0; }
.ed-prose > * + *{ margin-top:1.15rem; }
.ed-prose p{ color:#2b3757; }
.ed-prose strong, .ed-prose b{ color:var(--txt); font-weight:600; }
.ed-prose a{ color:var(--blue); text-decoration:underline; text-decoration-color:rgba(36,87,230,.3); text-underline-offset:3px; text-decoration-thickness:1px; }
.ed-prose a:hover{ text-decoration-color:var(--blue); }
.ed-prose h2{ font-size:clamp(1.45rem, 2.4vw, 1.85rem); line-height:1.18; margin-top:3rem; scroll-margin-top:calc(var(--top-h) + 1.2rem); }
.ed-prose h2::before{ content:""; display:block; width:38px; height:3px; border-radius:2px; background:var(--grad); margin-bottom:1rem; }
.ed-prose h3{ font-size:1.22rem; line-height:1.3; margin-top:2.1rem; scroll-margin-top:calc(var(--top-h) + 1.2rem); }
.ed-prose h2 + *, .ed-prose h3 + *{ margin-top:.8rem; }
.ed-prose ul, .ed-prose ol{ padding-left:1.4rem; color:#2b3757; }
.ed-prose li{ margin:.5rem 0; padding-left:.3rem; }
.ed-prose ul li::marker{ color:var(--blue); content:"▸  "; font-size:.85em; }
.ed-prose ol li::marker{ color:var(--blue); font-family:var(--font-mono); font-weight:600; font-size:.88em; }
.ed-prose blockquote{
  margin:2rem 0; padding:1.4rem 1.6rem 1.4rem 1.8rem; position:relative; border-radius:0 14px 14px 0;
  background:linear-gradient(90deg, rgba(36,87,230,.07), transparent); color:var(--txt);
  font-family:var(--font-disp); font-weight:500; font-size:1.25rem; line-height:1.45;
}
.ed-prose blockquote::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--grad); border-radius:2px; }
.ed-prose .key{
  padding:1.4rem 1.6rem; border-radius:var(--radius); border:1px solid rgba(47,107,255,.25);
  background:linear-gradient(135deg, rgba(36,87,230,.07), rgba(56,168,255,.04));
}
.ed-prose .key b{ display:block; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--blue); margin-bottom:.5rem; font-weight:600; }
.ed-prose .key p{ margin:0; color:var(--txt); }
.ed-prose .note{
  padding:1.3rem 1.5rem; border-radius:var(--radius); background:var(--panel); border:1px solid var(--line);
  border-left:3px solid var(--cyan); font-size:1rem; color:var(--txt-2);
}
.ed-prose .note strong:first-child{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--blue); margin-right:.4rem; }
.ed-prose .table-wrap{ margin:1.8rem 0; box-shadow:none; border-radius:var(--radius); }
.ed-prose table{ font-size:.92rem; line-height:1.5; }
.ed-prose th{ font-family:var(--font-mono); font-weight:600; font-size:.68rem; letter-spacing:.12em; background:#f2f6fe; }
.ed-prose td{ vertical-align:top; }
.ed-prose tr:hover td{ background:#fafcff; }
.ed-prose .cards{ display:grid; grid-template-columns:repeat(2, 1fr); gap:.9rem; margin:1.8rem 0; }
.ed-prose .mini{ padding:1.1rem 1.2rem; border-radius:12px; background:var(--panel); border:1px solid var(--line); }
.ed-prose .mini b{ display:block; font-family:var(--font-disp); font-size:1rem; color:var(--txt); margin-bottom:.3rem; }
.ed-prose .mini span{ display:block; font-size:.9rem; line-height:1.55; color:var(--txt-2); }
.ed-prose .sources{ margin-top:2.6rem; padding-top:1.4rem; border-top:1px solid var(--line); font-size:.86rem; color:var(--txt-3); }
.ed-prose .sources b{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--txt-3); }
.ed-prose .sources ul{ margin-top:.6rem; color:var(--txt-3); }
.ed-prose .sources li{ margin:.25rem 0; }
.ed-prose img{ border-radius:var(--radius); }
.ed-prose figure{ margin:2rem 0; }
.ed-prose figcaption{ font-size:.85rem; color:var(--txt-3); margin-top:.6rem; }

/* CTA dentro del texto */
.ed-cta-inline{
  display:flex; align-items:center; justify-content:space-between; gap:1.6rem; margin:2.6rem 0 !important;
  padding:1.6rem 1.8rem; border-radius:var(--radius-lg); color:#fff; border:1px solid #1c2c58;
  background:radial-gradient(ellipse 70% 140% at 100% 0%, rgba(47,107,255,.32), transparent 70%), linear-gradient(180deg, var(--navy-2), var(--navy));
  box-shadow:var(--shadow);
}
.ed-cta-kick{ display:block; font-family:var(--font-mono); font-size:.66rem; letter-spacing:.22em; text-transform:uppercase; color:var(--cyan); margin-bottom:.35rem; }
.ed-cta-inline b{ display:block; font-family:var(--font-disp); font-weight:600; font-size:1.2rem; color:#fff; line-height:1.25; }
.ed-cta-inline p{ margin:.4rem 0 0 !important; font-size:.9rem; line-height:1.55; color:#9fb0d4 !important; }
.ed-cta-inline .btn{ flex-shrink:0; text-decoration:none; color:#fff; }

/* Etiquetas y aviso */
.ed-tags{ display:flex; flex-wrap:wrap; gap:.45rem; margin-top:2.6rem !important; }
.ed-tags span{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; padding:.32rem .7rem; border-radius:999px;
  border:1px solid var(--line-2); color:var(--txt-3); background:var(--panel); }
.ed-disclaimer{ margin-top:2rem !important; padding-top:1.2rem; border-top:1px solid var(--line); font-size:.8rem !important;
  line-height:1.6; color:var(--txt-3) !important; }
.ed-disclaimer a{ color:var(--txt-2) !important; }

/* Cierre y relacionados */
section.ed-end{ padding:4rem 0 1rem; }
.ed-end .cta-end h2{ font-size:clamp(1.6rem, 3vw, 2.3rem); }
.ed-end-btns{ display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; }
section.ed-related{ padding:3.5rem 0 1rem; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px){
  .ed-body{ grid-template-columns:13rem minmax(0, 1fr); gap:2.4rem; }
}
@media (max-width: 980px){
  .ed-grid{ grid-template-columns:1fr 1fr; }
  .ed-grid-lead .ed-card-xl{ grid-column:span 2; grid-row:auto; }
  .ed-lead{ grid-template-columns:1fr; }
  .ed-lead-img img{ height:auto; aspect-ratio:16 / 9; }
  .ed-lead-tx{ padding:1.8rem 1.6rem 2rem; }
  .ed-body, .ed-body-solo{ grid-template-columns:minmax(0, 1fr); gap:1.5rem; }
  .ed-toc{ position:static; max-height:none; padding:1rem 1.2rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); }
  .ed-toc summary{ margin-bottom:0; border-bottom:0; padding-bottom:0; }
  .ed-toc details[open] summary{ margin-bottom:.6rem; }
  .ed-cta-inline{ flex-direction:column; align-items:flex-start; }
}
@media (max-width: 680px){
  .ed-grid{ grid-template-columns:1fr; }
  .ed-grid-lead .ed-card-xl{ grid-column:auto; }
  .ed-hub{ padding:2.4rem 0 2.4rem; }
  .ed-hub-stats{ gap:1.6rem; }
  .ed-prose{ font-size:1.02rem; }
  .ed-prose .cards{ grid-template-columns:1fr; }
  .ed-art-head{ padding-top:2rem; }
  .ed-hero{ margin-bottom:2rem; }
  .ed-hero img{ border-radius:var(--radius); aspect-ratio:1200 / 630; }
  .ed-chips{ flex-wrap:nowrap; overflow-x:auto; padding-bottom:.8rem; scrollbar-width:none; }
  .ed-chips a{ flex-shrink:0; }
}
