:root {
  --mp-bg: #0a0e0a;
  --mp-bg-2: #0f1410;
  --mp-bg-3: #161c18;
  --mp-fg: #d4f5dc;
  --mp-fg-2: rgba(212,245,220,0.58);
  --mp-dim: rgba(212,245,220,0.38);
  --mp-line: rgba(212,245,220,0.10);
  --mp-line-2: rgba(212,245,220,0.22);
  --mp-accent: oklch(0.78 0.18 145);
  --mp-up: oklch(0.82 0.18 145);
  --mp-down: oklch(0.70 0.18 25);
  --mp-brand-green: #62d26f;
  --mp-veil: rgba(255,255,255,0.025);
  --mp-footer-bg: linear-gradient(180deg, var(--mp-bg-2), var(--mp-bg));
  --mp-display: 'Space Grotesk', system-ui, -apple-system, sans-serif;
  --mp-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
  --mp-pad-x: 40px;
  --mp-pad-x-mobile: 18px;
}
/* Paleta clara. Se aplica si el sistema la prefiere y no hay elección explícita,
   o si la persona ha elegido "claro" con el interruptor de la cabecera. */
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --mp-bg: #f1f5f1;   /* exacto al fondo incrustado en images/logo.png */
    --mp-bg-2: #ffffff;
    --mp-bg-3: #e6ebe7;
    --mp-fg: #0b120d;
    --mp-fg-2: rgba(11,18,13,0.64);
    --mp-dim: rgba(11,18,13,0.45);
    --mp-line: rgba(11,18,13,0.12);
    --mp-line-2: rgba(11,18,13,0.26);
    --mp-accent: oklch(0.52 0.16 145);
    --mp-up: oklch(0.52 0.16 145);
    --mp-down: oklch(0.52 0.20 27);
    --mp-brand-green: #2e8b3d;
    --mp-veil: rgba(11,18,13,0.035);
  --mp-footer-bg: var(--mp-bg);
    color-scheme: light;
  }
}
:root[data-theme="light"] {
  --mp-bg: #f1f5f1;   /* exacto al fondo incrustado en images/logo.png */
  --mp-bg-2: #ffffff;
  --mp-bg-3: #e6ebe7;
  --mp-fg: #0b120d;
  --mp-fg-2: rgba(11,18,13,0.64);
  --mp-dim: rgba(11,18,13,0.45);
  --mp-line: rgba(11,18,13,0.12);
  --mp-line-2: rgba(11,18,13,0.26);
  --mp-accent: oklch(0.52 0.16 145);
  --mp-up: oklch(0.52 0.16 145);
  --mp-down: oklch(0.52 0.20 27);
  --mp-brand-green: #2e8b3d;
  --mp-veil: rgba(11,18,13,0.035);
  --mp-footer-bg: var(--mp-bg);
  color-scheme: light;
}

/* Interruptor de tema */
body.mp .mp-theme { display: inline-grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--mp-line-2); color: var(--mp-fg-2); background: transparent; transition: color 160ms ease, border-color 160ms ease, transform 160ms ease; }
body.mp .mp-theme:hover { color: var(--mp-accent); border-color: var(--mp-accent); transform: translateY(-1px); }
.mp-theme svg { width: 21px; height: 21px; display: block; }
body.mp .mp-theme__llena { display: none; }
body.mp .mp-theme__hueca { display: block; }
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) .mp-theme__hueca { display: none; }
  :root:not([data-theme="dark"]) .mp-theme__llena { display: block; }
}
:root[data-theme="light"] .mp-theme__hueca { display: none; }
:root[data-theme="light"] .mp-theme__llena { display: block; }
:root[data-theme="dark"] .mp-theme__hueca { display: block; }
:root[data-theme="dark"] .mp-theme__llena { display: none; }

/* El logotipo tiene una versión por fondo: texto claro sobre oscuro y al revés. */
body.mp .mp-logo__img--light { display: none; }
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) .mp-logo__img--dark { display: none; }
  :root:not([data-theme="dark"]) .mp-logo__img--light { display: block; }
}
:root[data-theme="light"] .mp-logo__img--dark { display: none; }
:root[data-theme="light"] .mp-logo__img--light { display: block; }
:root[data-theme="dark"] .mp-logo__img--dark { display: block; }
:root[data-theme="dark"] .mp-logo__img--light { display: none; }

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body.mp { background: var(--mp-bg); color: var(--mp-fg); font-family: var(--mp-display); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body.mp button, body.mp input { font: inherit; color: inherit; }
body.mp button { background: none; border: 0; cursor: pointer; }
body.mp a { color: inherit; text-decoration: none; }
body.mp ul, body.mp ol { list-style: none; margin: 0; padding: 0; }
body.mp h1, body.mp h2, body.mp h3, body.mp h4 { margin: 0; font-weight: 700; letter-spacing: -0.02em; }
body.mp p { margin: 0; }
body.mp img, body.mp svg { display: block; max-width: 100%; }

.mp-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--mp-line-2); vertical-align: middle; transform: translateY(-1px); margin-right: 6px; }
.mp-dot--up { background: var(--mp-up); }
.mp-dot--down { background: var(--mp-down); }
.mp-dot--accent { background: var(--mp-accent); }
.mp-dot--sm { width: 3px; height: 3px; margin: 0; }
.mp-up { color: var(--mp-up); }
.mp-down { color: var(--mp-down); }
.mp-cat { font-family: var(--mp-mono); font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; font-weight: 700; color: var(--mp-fg-2); }
.mp-cat--accent { color: var(--mp-accent); }
.mp-meta { font-family: var(--mp-mono); font-size: 11px; color: var(--mp-fg-2); letter-spacing: 0.04em; }
.mp-meta--mono { font-family: var(--mp-mono); }
.mp-meta--strong { color: var(--mp-fg); }
.mp-meta--accent { color: var(--mp-accent); }
.mp-meta--mt { margin-top: auto; }
.mp-chg { font-family: var(--mp-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.02em; white-space: nowrap; }
.mp-chg--up { color: var(--mp-up); }
.mp-chg--down { color: var(--mp-down); }
.mp-badge { font-family: var(--mp-mono); font-size: 10px; letter-spacing: 0.15em; font-weight: 800; padding: 3px 7px; }
.mp-badge--exclusive { background: var(--mp-accent); color: var(--mp-bg); }
.mp-empty { font-family: var(--mp-mono); font-size: 12px; color: var(--mp-dim); padding: 2rem; }

body.mp .mp-btn { font-family: var(--mp-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; padding: 10px 16px; transition: opacity 120ms ease, background 150ms ease, border-color 150ms ease; display: inline-block; border: 1px solid transparent; line-height: 1.2; }
body.mp .mp-btn:hover { opacity: 0.85; }
body.mp .mp-btn--primary { background: var(--mp-accent); color: var(--mp-bg); border-color: var(--mp-accent); }
body.mp .mp-btn--ghost { background: transparent; color: var(--mp-fg); border-color: var(--mp-line-2); }
body.mp .mp-btn--ghost:hover { border-color: var(--mp-accent); color: var(--mp-accent); opacity: 1; }
body.mp .mp-btn--icon { padding: 6px; font-size: 18px; border-color: transparent; }

.mp-brand { font-family: var(--mp-display); font-weight: 700; font-size: 34px; letter-spacing: -0.04em; color: var(--mp-fg); line-height: 1; }
.mp-brand--sm { font-size: 26px; }
.mp-brand__dot { color: var(--mp-accent); }
.mp-brand__tagline { font-family: var(--mp-mono); font-size: 10px; color: var(--mp-fg-2); letter-spacing: 0.12em; text-transform: uppercase; border-left: 1px solid var(--mp-line-2); padding-left: 14px; line-height: 1.4; }

.mp-logo { display: inline-flex; align-items: center; line-height: 0; }
/* Los PNG del logo llevan margen interno (~25% arriba/abajo, ~10% a la izquierda); los márgenes negativos lo compensan. */
.mp-logo img { height: 104px; width: auto; margin: -22px 0 -22px -22px; }
.mp-logo--sm img { height: 76px; margin: -16px 0 -16px -16px; }

.mp-sectionhead { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 22px; }
.mp-sectionhead h2, .mp-sectionhead h3 { font-family: var(--mp-display); font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mp-fg); display: flex; align-items: center; gap: 8px; }
.mp-sectionhead__bar { display: inline-block; width: 3px; height: 14px; background: var(--mp-accent); }
h2.mp-sectionhead, h3.mp-sectionhead { justify-content: flex-start; align-items: center; gap: 8px; font-family: var(--mp-display); font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mp-fg); }
.mp-sectionhead--sm { font-family: var(--mp-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mp-fg-2); display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }

.mp-topbar { border-bottom: 1px solid var(--mp-line); padding: 10px var(--mp-pad-x); display: flex; align-items: center; justify-content: space-between; font-family: var(--mp-mono); font-size: 11px; color: var(--mp-fg-2); letter-spacing: 0.06em; text-transform: uppercase; }
.mp-topbar__group { display: flex; gap: 24px; }
.mp-topbar__strong { color: var(--mp-fg); }
.mp-topbar__accent { color: var(--mp-accent); }
.mp-topbar__item--strong { color: var(--mp-fg); }
.mp-topbar__link { transition: color 150ms ease; }
.mp-topbar__link:hover { color: var(--mp-accent); }
[data-block], [data-fees], [data-fng] { font-variant-numeric: tabular-nums; }
[data-block]:not(.is-live), [data-fees]:not(.is-live), [data-fng]:not(.is-live) { opacity: 0.5; }

.mp-masthead { padding: 22px var(--mp-pad-x) 18px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--mp-line); gap: 16px; }
.mp-masthead__brand { display: flex; align-items: center; gap: 16px; }
.mp-masthead__actions { display: flex; align-items: center; gap: 10px; }
.mp-search { display: flex; align-items: center; gap: 10px; border: 1px solid var(--mp-line); padding: 8px 14px; width: 280px; color: var(--mp-fg-2); font-family: var(--mp-mono); font-size: 12px; }
.mp-search__icon { opacity: 0.7; }
.mp-search__input { flex: 1; background: transparent; border: 0; color: var(--mp-fg-2); outline: none; min-width: 0; }
.mp-search__input::placeholder { color: var(--mp-fg-2); }
.mp-search__kbd { font-size: 10px; border: 1px solid var(--mp-line-2); padding: 1px 5px; }
.mp-hamburger { display: none; flex-direction: column; gap: 4px; padding: 6px; cursor: pointer; }
.mp-hamburger span { display: block; height: 2px; width: 22px; background: var(--mp-fg); }
.mp-hamburger span:last-child { width: 14px; background: var(--mp-accent); }

.mp-nav { position: sticky; top: 0; z-index: 10; background: var(--mp-bg); border-bottom: 1px solid var(--mp-line); padding: 0 var(--mp-pad-x); display: flex; align-items: stretch; flex-wrap: wrap; gap: 0 16px; }
.mp-nav__list { display: flex; }
.mp-nav__item a { display: block; padding: 16px 14px; font-family: var(--mp-display); font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--mp-fg-2); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.mp-nav__item:hover a { color: var(--mp-fg); }
.mp-nav__item.is-active a { color: var(--mp-fg); border-bottom-color: var(--mp-accent); }
.mp-nav__meta { margin-left: auto; display: flex; align-items: center; gap: 14px; font-family: var(--mp-mono); font-size: 11px; color: var(--mp-fg-2); letter-spacing: 0.08em; text-transform: uppercase; }

.mp-ticker { margin-left: auto; display: flex; align-items: center; gap: 8px; padding: 6px 0; }
.mp-ticker__card { display: flex; align-items: center; gap: 9px; padding: 5px 12px 5px 8px; border: 1px solid var(--mp-line); background: var(--mp-bg-2); color: var(--mp-fg); min-width: 128px; transition: border-color 150ms ease, background 150ms ease; }
.mp-ticker__card:hover { border-color: var(--mp-line-2); background: var(--mp-bg-3); }
.mp-ticker__icon { width: 22px; height: 22px; flex: 0 0 auto; border-radius: 50%; }
.mp-ticker__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.mp-ticker__row { display: flex; align-items: baseline; gap: 8px; }
.mp-ticker__sym { font-family: var(--mp-mono); font-size: 10px; font-weight: 700; letter-spacing: 0.12em; color: var(--mp-fg-2); }
.mp-ticker__chg { font-size: 10px; }
.mp-ticker__chg:empty { display: none; }
.mp-ticker__price { font-family: var(--mp-mono); font-size: 13px; font-weight: 600; letter-spacing: 0.01em; color: var(--mp-fg); font-variant-numeric: tabular-nums; }
.mp-ticker__price.is-up { animation: mp-flash-up 700ms ease-out; }
.mp-ticker__price.is-down { animation: mp-flash-down 700ms ease-out; }
@keyframes mp-flash-up { 0% { color: var(--mp-up); } 100% { color: var(--mp-fg); } }
@keyframes mp-flash-down { 0% { color: var(--mp-down); } 100% { color: var(--mp-fg); } }

.mp-hero-wrap { padding: 36px var(--mp-pad-x) 24px; border-bottom: 1px solid var(--mp-line); display: grid; grid-template-columns: 1.4fr 1fr; gap: 36px; }
.mp-hero__lead { min-width: 0; }
.mp-hero__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border: 1px solid var(--mp-line); }
.mp-hero__ph { width: 100%; aspect-ratio: 16 / 9; background: repeating-linear-gradient(135deg, var(--mp-veil) 0 1px, transparent 1px 14px), linear-gradient(180deg, var(--mp-bg-3), var(--mp-bg-2)); border: 1px solid var(--mp-line); }
.mp-hero__kicker { display: flex; align-items: center; gap: 10px; margin-top: 18px; flex-wrap: wrap; }
.mp-hero__title { font-size: clamp(1.8rem, 3.8vw, 2.75rem); line-height: 1.05; letter-spacing: -0.025em; margin: 14px 0; text-wrap: balance; }
.mp-hero__title a { color: var(--mp-fg); }
.mp-hero__title a:hover { color: var(--mp-accent); }
.mp-hero__dek { font-size: 17px; line-height: 1.5; color: var(--mp-fg-2); max-width: 640px; text-wrap: pretty; }
.mp-hero__byline { margin-top: 16px; display: flex; align-items: center; gap: 14px; font-family: var(--mp-mono); font-size: 11px; color: var(--mp-fg-2); flex-wrap: wrap; }
.mp-avatar { width: 22px; height: 22px; border-radius: 50%; background: var(--mp-bg-3); border: 1px solid var(--mp-line); display: inline-block; }

.mp-hero__sidecar { border-left: 1px solid var(--mp-line); padding-left: 32px; }
.mp-sidecar { display: flex; flex-direction: column; }
.mp-sidecar__item { display: grid; grid-template-columns: 52px 1fr; gap: 14px; padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid var(--mp-line); }
.mp-sidecar__item:last-child { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.mp-sidecar__num { font-family: var(--mp-mono); font-size: 28px; color: var(--mp-fg-2); font-weight: 300; line-height: 1; }
.mp-sidecar__title { font-size: 17px; line-height: 1.25; font-weight: 600; letter-spacing: -0.01em; margin: 6px 0; text-wrap: balance; }
.mp-sidecar__title a:hover { color: var(--mp-accent); }

.mp-layout { display: grid; grid-template-columns: 1fr 320px; }
.mp-layout__main { min-width: 0; }

.mp-grid-section { padding: 32px var(--mp-pad-x); border-bottom: 1px solid var(--mp-line); }
.mp-card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.mp-card { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.mp-card__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border: 1px solid var(--mp-line); }
.mp-card__ph { width: 100%; aspect-ratio: 16 / 10; background: repeating-linear-gradient(135deg, var(--mp-veil) 0 1px, transparent 1px 14px), linear-gradient(180deg, var(--mp-bg-3), var(--mp-bg-2)); border: 1px solid var(--mp-line); }
.mp-card__title { font-size: 17px; line-height: 1.2; font-weight: 600; letter-spacing: -0.015em; text-wrap: balance; }
.mp-card__title a:hover { color: var(--mp-accent); }
.mp-card__pending { font-family: var(--mp-mono); font-size: 10px; color: #fff8d6; background: rgba(133, 100, 4, 0.4); padding: 2px 6px; align-self: flex-start; }

.mp-rail { border-left: 1px solid var(--mp-line); background: var(--mp-bg-2); padding: 32px 28px; }
.mp-movers { margin-bottom: 24px; }
.mp-mover { border-bottom: 1px solid var(--mp-line); }
.mp-mover:last-child { border-bottom: 0; }
.mp-mover__link { display: grid; grid-template-columns: 28px 1fr auto; grid-template-areas: 'icon body price' 'icon body chg'; align-items: center; column-gap: 12px; padding: 12px 0; transition: opacity 150ms ease; }
.mp-mover__link:hover { opacity: 0.75; }
.mp-mover__icon { grid-area: icon; width: 28px; height: 28px; border-radius: 50%; }
.mp-mover__sym { width: 28px; height: 28px; border-radius: 50%; background: var(--mp-bg-3); border: 1px solid var(--mp-line); display: grid; place-items: center; font-family: var(--mp-mono); font-size: 9px; font-weight: 700; }
.mp-mover__body { grid-area: body; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mp-mover__name { font-size: 13px; color: var(--mp-fg); font-weight: 600; }
.mp-mover__price { grid-area: price; justify-self: end; font-family: var(--mp-mono); font-size: 13px; color: var(--mp-fg); font-variant-numeric: tabular-nums; }
.mp-mover [data-chg] { grid-area: chg; justify-self: end; font-size: 10px; }
.mp-mover [data-chg]:empty { display: none; }
.mp-most-read { display: flex; flex-direction: column; gap: 14px; }
.mp-most-read li { display: grid; grid-template-columns: 24px 1fr; gap: 10px; padding-bottom: 14px; border-bottom: 1px solid var(--mp-line); }
.mp-most-read li:last-child { border-bottom: 0; padding-bottom: 0; }
.mp-most-read__num { font-family: var(--mp-mono); font-size: 11px; font-weight: 700; color: var(--mp-accent); }
.mp-most-read a { font-size: 14px; line-height: 1.3; text-wrap: balance; color: var(--mp-fg); }
.mp-most-read a:hover { color: var(--mp-accent); }

.mp-footer { margin-top: 8px; padding: 0 var(--mp-pad-x) 26px; border-top: 1px solid var(--mp-line); background: var(--mp-footer-bg); }
.mp-footer__top { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: 40px; padding: 46px 0 38px; }
.mp-footer__brand { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; max-width: 380px; }
.mp-footer__pitch { font-size: 14px; line-height: 1.6; color: var(--mp-fg-2); text-wrap: pretty; }
.mp-footer__nav { display: contents; }
.mp-footer__head { font-family: var(--mp-mono); font-size: 10px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--mp-fg); margin: 0 0 18px; padding-bottom: 10px; border-bottom: 1px solid var(--mp-line); }
.mp-footer__col ul { display: flex; flex-direction: column; gap: 11px; }
.mp-footer__col li a { position: relative; display: inline-block; font-size: 14px; color: var(--mp-fg-2); transition: color 160ms ease, transform 160ms ease; }
.mp-footer__col li a::before { content: ''; position: absolute; left: -12px; top: 50%; width: 5px; height: 1px; background: var(--mp-accent); transform: scaleX(0); transform-origin: right center; transition: transform 160ms ease; }
.mp-footer__col li a:hover { color: var(--mp-fg); transform: translateX(6px); }
.mp-footer__col li a:hover::before { transform: scaleX(1); }
.mp-footer__base { display: flex; align-items: center; justify-content: space-between; gap: 20px 32px; flex-wrap: wrap; padding-top: 22px; border-top: 1px solid var(--mp-line); }
.mp-footer__legal { font-size: 12px; line-height: 1.5; color: var(--mp-dim); max-width: 620px; }
.mp-footer__meta { display: flex; align-items: center; gap: 12px; font-family: var(--mp-mono); font-size: 11px; letter-spacing: 0.06em; color: var(--mp-fg-2); white-space: nowrap; }
.mp-footer__dot { width: 4px; height: 4px; border-radius: 50%; background: var(--mp-accent); flex: 0 0 auto; }

.mp-category-main { padding: 0; }
.mp-section-head { padding: 36px var(--mp-pad-x) 24px; border-bottom: 1px solid var(--mp-line); }
.mp-section-title { font-size: clamp(2rem, 4.5vw, 3rem); margin: .65rem 0 .5rem; letter-spacing: -0.02em; }
.mp-section-desc { font-size: 17px; color: var(--mp-fg-2); max-width: 720px; line-height: 1.5; }

.mp-breadcrumb { padding: 14px var(--mp-pad-x); border-bottom: 1px solid var(--mp-line); }
.mp-breadcrumb ol { display: flex; gap: .5rem; flex-wrap: wrap; font-family: var(--mp-mono); font-size: 11px; color: var(--mp-fg-2); letter-spacing: 0.06em; text-transform: uppercase; }
.mp-breadcrumb li + li::before { content: '·'; margin-right: .5rem; color: var(--mp-fg-2); }
.mp-breadcrumb a:hover { color: var(--mp-accent); }
.mp-breadcrumb li[aria-current='page'] { color: var(--mp-accent); }

.mp-article-main { max-width: 760px; margin: 0 auto; padding: 36px var(--mp-pad-x) 64px; }
.mp-article__kicker { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: .75rem; }
body.mp .mp-article__title { font-size: clamp(2rem, 4.5vw, 3.2rem); line-height: 1.05; letter-spacing: -0.025em; margin: 0 0 .6em; text-wrap: balance; }
body.mp .mp-article__dek { font-size: 1.2rem; line-height: 1.5; color: var(--mp-fg-2); margin: 0 0 1.6rem; text-wrap: pretty; }
body.mp .mp-article__byline { font-family: var(--mp-mono); font-size: 11px; color: var(--mp-fg-2); letter-spacing: 0.06em; margin: 0 0 1.75rem; padding-bottom: 1.15rem; border-bottom: 1px solid var(--mp-line); }
.mp-article__lead { margin: 0 0 2rem; }
.mp-article__lead img { width: 100%; height: auto; display: block; }
body.mp .photo-credit { font-size: .75rem; color: var(--mp-fg-2); margin: .4rem 0 0; font-style: italic; font-family: var(--mp-mono); letter-spacing: .04em; }
body.mp .photo-credit a { color: var(--mp-accent); text-decoration: underline; text-decoration-thickness: 1px; }
body.mp .mp-article__body { font-size: 1.05rem; line-height: 1.65; color: var(--mp-fg); }
body.mp .mp-article__body p { margin: 0 0 1.15rem; }
body.mp .mp-article__body h2 { font-size: 1.6rem; line-height: 1.2; margin: 2.25rem 0 .75rem; letter-spacing: -0.015em; font-weight: 700; }
body.mp .mp-article__body h3 { font-size: 1.25rem; line-height: 1.25; margin: 1.75rem 0 .55rem; letter-spacing: -0.01em; font-weight: 700; }
body.mp .mp-article__body img { max-width: 100%; height: auto; }
body.mp .mp-article__body a { color: var(--mp-accent); text-decoration: underline; text-decoration-thickness: 1px; }
body.mp .mp-article__body a:hover { color: var(--mp-fg); }
body.mp .mp-article__body blockquote { border-left: 3px solid var(--mp-accent); margin: 1.5rem 0; padding: .15rem 0 .15rem 1.1rem; color: var(--mp-fg-2); font-style: italic; }
body.mp .mp-article__body table { border-collapse: collapse; width: 100%; margin: 1.25rem 0; font-size: .98rem; }
body.mp .mp-article__body th, body.mp .mp-article__body td { border-top: 1px solid var(--mp-line); border-bottom: 1px solid var(--mp-line); padding: .55rem .75rem; text-align: left; }
body.mp .mp-article__body ul, body.mp .mp-article__body ol { padding-left: 1.25rem; margin: 0 0 1.15rem; list-style: revert; }
body.mp .mp-article__body li { margin: 0 0 .4rem; }

.mp-drawer__toggle { position: absolute; opacity: 0; pointer-events: none; }
.mp-drawer { position: fixed; inset: 0; z-index: 30; pointer-events: none; visibility: hidden; transition: visibility 0s linear 300ms; }
.mp-drawer__scrim { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.55); opacity: 0; transition: opacity 240ms ease; cursor: pointer; }
.mp-drawer__panel { position: absolute; inset: 0 auto 0 0; width: 86%; max-width: 360px; background: var(--mp-bg); border-right: 1px solid var(--mp-line); box-shadow: 20px 0 60px rgba(0, 0, 0, 0.5); transform: translateX(-100%); transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1); display: flex; flex-direction: column; }
.mp-drawer__toggle:checked ~ .mp-drawer { pointer-events: auto; visibility: visible; transition-delay: 0s; }
.mp-drawer__toggle:checked ~ .mp-drawer .mp-drawer__scrim { opacity: 1; }
.mp-drawer__toggle:checked ~ .mp-drawer .mp-drawer__panel { transform: translateX(0); }
.mp-drawer__head { padding: 18px 20px 16px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--mp-line); }
.mp-drawer__head .mp-brand { font-size: 22px; }
.mp-drawer__close { width: 32px; height: 32px; border: 1px solid var(--mp-line); color: var(--mp-fg); font-family: var(--mp-mono); font-size: 18px; display: grid; place-items: center; cursor: pointer; }
.mp-drawer__sect { padding: 14px 20px 8px; font-family: var(--mp-mono); font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--mp-fg-2); }
body.mp .mp-drawer__list { padding: 0 20px; flex: 1; overflow-y: auto; }
body.mp .mp-drawer__list--tools { flex: 0 0 auto; padding-bottom: 16px; }
.mp-drawer__list--tools li a { font-size: 15px; color: var(--mp-fg-2); }
.mp-drawer__list--tools li a:hover { color: var(--mp-accent); }
.mp-drawer__list li { border-bottom: 1px solid var(--mp-line); }
.mp-drawer__list li:last-child { border-bottom: 0; }
.mp-drawer__list li a { display: block; padding: 14px 0; font-size: 18px; font-weight: 600; letter-spacing: -0.01em; color: var(--mp-fg); transition: color 150ms ease; }
.mp-drawer__list li.is-active a { color: var(--mp-accent); }
.mp-drawer__list li a:hover { color: var(--mp-accent); }
.mp-drawer__foot { padding: 14px 20px 20px; border-top: 1px solid var(--mp-line); }
.mp-drawer__foot .mp-btn { display: block; width: 100%; text-align: center; }

@media (max-width: 1320px) {
  .mp-nav { gap: 0 10px; }
  .mp-nav__item a { padding: 16px 10px; font-size: 11px; letter-spacing: 0.06em; }
  .mp-ticker { gap: 6px; }
  .mp-ticker__card { min-width: 0; padding: 5px 10px 5px 7px; gap: 8px; }
}

@media (max-width: 1024px) {
  :root { --mp-pad-x: var(--mp-pad-x-mobile); }
  .mp-hamburger { display: flex; }
  .mp-topbar { display: none; }
  .mp-nav { padding: 0 var(--mp-pad-x-mobile); }
  .mp-nav__list { display: none; }
  .mp-ticker { margin-left: 0; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 8px 0; }
  .mp-ticker::-webkit-scrollbar { display: none; }
  .mp-ticker__card { flex: 1 0 auto; min-width: 0; padding: 4px 8px 4px 6px; gap: 7px; }
  .mp-ticker__icon { width: 20px; height: 20px; }
  .mp-ticker__row { gap: 6px; }
  .mp-ticker__sym { letter-spacing: 0.08em; }
  .mp-ticker__chg { font-size: 9px; }
  .mp-ticker__price { font-size: 12px; }
  .mp-masthead { padding: 12px var(--mp-pad-x-mobile); }
  .mp-masthead__brand .mp-brand__tagline { display: none; }
  .mp-masthead__brand .mp-brand { font-size: 22px; }
  .mp-masthead .mp-logo img { height: 76px; margin: -16px 0 -16px -12px; }
  .mp-masthead__actions .mp-btn--primary, .mp-masthead__actions .mp-search { display: none; }
  .mp-hero-wrap { grid-template-columns: 1fr; gap: 24px; padding: 18px var(--mp-pad-x-mobile) 22px; }
  .mp-hero__title { font-size: 24px; }
  .mp-hero__dek { font-size: 14px; }
  .mp-hero__sidecar { border-left: 0; padding-left: 0; border-top: 1px solid var(--mp-line); padding-top: 18px; }
  .mp-sidecar__title { font-size: 16px; }
  .mp-layout { grid-template-columns: 1fr; }
  .mp-rail { border-left: 0; border-top: 1px solid var(--mp-line); padding: 22px var(--mp-pad-x-mobile); }
  .mp-grid-section { padding: 22px var(--mp-pad-x-mobile); }
  .mp-card-grid { grid-template-columns: 1fr; gap: 0; }
  /* Fila compacta: miniatura cuadrada a la derecha y el texto a la izquierda.
     Quien está en la rejilla es el enlace que envuelve la imagen, no la imagen,
     así que la colocación tiene que apuntar al enlace. Apuntando a .mp-card__img
     la regla no hacía nada: el enlace caía en la columna 1 y la segunda columna
     se quedaba vacía, con la foto ocupando dos tercios del ancho. */
  .mp-card { display: grid; grid-template-columns: 1fr 104px; column-gap: 14px; row-gap: 6px; align-content: start; padding: 16px 0; border-bottom: 1px solid var(--mp-line); }
  .mp-card > * { grid-column: 1; min-width: 0; }
  .mp-card > a:has(> .mp-card__img),
  .mp-card > .mp-card__ph { grid-column: 2; grid-row: 1 / span 3; align-self: start; display: block; }
  .mp-card__img, .mp-card__ph { aspect-ratio: 1 / 1; }
  .mp-card .mp-cat { align-self: center; }
  .mp-card__title { font-size: 16px; line-height: 1.25; text-wrap: pretty; }
  .mp-card .mp-meta--mt { margin-top: 2px; }
  .mp-footer { padding: 0 var(--mp-pad-x-mobile) 24px; }
  .mp-footer__top { grid-template-columns: 1fr 1fr; gap: 28px 20px; padding: 30px 0 26px; }
  .mp-footer__brand { grid-column: 1 / -1; max-width: none; gap: 14px; }
  .mp-footer__col:last-child { grid-column: 1 / -1; }
  .mp-footer__base { flex-direction: column; align-items: flex-start; gap: 12px; }
  .mp-footer__legal { font-size: 11px; }
  .mp-footer__meta { flex-wrap: wrap; white-space: normal; font-size: 10px; }
  .mp-searchbox { padding: 0; }
  .mp-searchbox__panel { max-width: none; height: 100%; border: 0; }
  .mp-searchbox__keys { display: none; }
  .mp-section-head { padding: 22px var(--mp-pad-x-mobile); }
  .mp-article-main { padding: 22px var(--mp-pad-x-mobile) 48px; }
  body.mp .mp-article__title { font-size: 1.7rem; margin-bottom: .75em; }
  body.mp .mp-article__dek { font-size: 1.05rem; margin-bottom: 1.35rem; }
  .mp-breadcrumb { padding: 12px var(--mp-pad-x-mobile); }
}

/* ---- Buscador ---- */
body.mp-search-open { overflow: hidden; }
.mp-searchbox { position: fixed; inset: 0; z-index: 40; display: flex; justify-content: center; padding: 12vh 18px 24px; }
.mp-searchbox[hidden] { display: none; }
.mp-searchbox__scrim { position: absolute; inset: 0; background: color-mix(in srgb, var(--mp-bg) 78%, transparent); backdrop-filter: blur(3px); animation: mp-fade 160ms ease-out; }
.mp-searchbox__panel { position: relative; width: 100%; max-width: 660px; max-height: 100%; display: flex; flex-direction: column; background: var(--mp-bg-2); border: 1px solid var(--mp-line-2); box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6); animation: mp-rise 200ms cubic-bezier(0.22, 1, 0.36, 1); }
@keyframes mp-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes mp-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.mp-searchbox__field { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--mp-line); }
.mp-searchbox__icon { font-size: 20px; color: var(--mp-accent); }
.mp-searchbox__input { flex: 1; min-width: 0; background: transparent; border: 0; outline: none; color: var(--mp-fg); font-family: var(--mp-display); font-size: 17px; }
.mp-searchbox__input::placeholder { color: var(--mp-dim); }
.mp-searchbox__input::-webkit-search-cancel-button { display: none; }
.mp-searchbox__esc { font-family: var(--mp-mono); font-size: 10px; letter-spacing: 0.1em; color: var(--mp-fg-2); border: 1px solid var(--mp-line-2); padding: 4px 8px; transition: color 150ms ease, border-color 150ms ease; }
.mp-searchbox__esc:hover { color: var(--mp-fg); border-color: var(--mp-fg-2); }
.mp-searchbox__results { overflow-y: auto; flex: 1; }
.mp-searchbox__results:empty { display: none; }
.mp-searchbox__hit { display: grid; grid-template-columns: 1fr auto; gap: 2px 14px; padding: 13px 18px; border-bottom: 1px solid var(--mp-line); border-left: 2px solid transparent; }
.mp-searchbox__results li:last-child .mp-searchbox__hit { border-bottom: 0; }
.mp-searchbox__hit.is-active { background: var(--mp-bg-3); border-left-color: var(--mp-accent); }
.mp-searchbox__cat { grid-column: 1; font-family: var(--mp-mono); font-size: 9px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mp-accent); }
.mp-searchbox__title { grid-column: 1; font-size: 15px; font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; color: var(--mp-fg); }
.mp-searchbox__excerpt { grid-column: 1; font-size: 12.5px; line-height: 1.45; color: var(--mp-fg-2); margin-top: 3px; }
.mp-searchbox__hit mark { background: none; color: var(--mp-accent); font-weight: 700; }
.mp-searchbox__go { grid-column: 2; grid-row: 1 / span 3; align-self: center; font-family: var(--mp-mono); font-size: 13px; color: var(--mp-dim); opacity: 0; transition: opacity 150ms ease; }
.mp-searchbox__hit.is-active .mp-searchbox__go { opacity: 1; color: var(--mp-accent); }
.mp-searchbox__foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 18px; border-top: 1px solid var(--mp-line); background: var(--mp-bg); }
.mp-searchbox__status { font-family: var(--mp-mono); font-size: 11px; color: var(--mp-fg-2); }
.mp-searchbox__keys { font-family: var(--mp-mono); font-size: 10px; color: var(--mp-dim); display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.mp-searchbox__keys kbd { font: inherit; border: 1px solid var(--mp-line-2); padding: 2px 5px; color: var(--mp-fg-2); }
.mp-search { cursor: text; transition: border-color 150ms ease; }
.mp-search:hover { border-color: var(--mp-line-2); }

/* ---- /about/ ---- */
.ab { max-width: 1120px; margin: 0 auto; padding: 0 var(--mp-pad-x); }
.ab-hero { padding: 64px 0 48px; border-bottom: 1px solid var(--mp-line); }
.ab-hero__title { font-size: clamp(2rem, 4.6vw, 3.4rem); line-height: 1.04; letter-spacing: -0.03em; margin: 16px 0 20px; max-width: 900px; text-wrap: balance; }
.ab-hero__dek { font-size: 18px; line-height: 1.55; color: var(--mp-fg-2); max-width: 720px; text-wrap: pretty; }
.ab-hero__facts { display: flex; gap: 0; margin-top: 40px; border: 1px solid var(--mp-line); background: var(--mp-bg-2); }
.ab-hero__facts li { flex: 1; padding: 18px 22px; border-right: 1px solid var(--mp-line); display: flex; flex-direction: column; gap: 6px; }
.ab-hero__facts li:last-child { border-right: 0; }
.ab-hero__fact-num { font-family: var(--mp-mono); font-size: 26px; font-weight: 700; color: var(--mp-accent); letter-spacing: -0.02em; }
.ab-hero__fact-label { font-family: var(--mp-mono); font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--mp-fg-2); }

.ab-founders { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding: 56px 0; border-bottom: 1px solid var(--mp-line); }
.ab-founder { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.ab-founder__photo { position: relative; aspect-ratio: 4 / 5; width: 100%; overflow: hidden; border: 1px solid var(--mp-line); background: repeating-linear-gradient(135deg, var(--mp-veil) 0 1px, transparent 1px 14px), linear-gradient(180deg, var(--mp-bg-3), var(--mp-bg-2)); display: grid; place-items: center; }
.ab-founder__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ab-founder__initials { font-family: var(--mp-mono); font-size: 72px; font-weight: 700; color: var(--mp-accent); opacity: 0.35; letter-spacing: 0.05em; }
.ab-founder__name { font-size: 34px; letter-spacing: -0.03em; line-height: 1.05; margin: 8px 0 12px; }
.ab-founder__meta { display: flex; flex-wrap: wrap; gap: 6px 0; font-family: var(--mp-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--mp-fg-2); margin-bottom: 18px; }
.ab-founder__meta li::after { content: '·'; margin: 0 10px; color: var(--mp-line-2); }
.ab-founder__meta li:last-child::after { content: none; }
.ab-founder__body p { font-size: 16px; line-height: 1.6; color: var(--mp-fg); margin: 0 0 14px; text-wrap: pretty; }
.ab-founder__quote { margin: 22px 0 18px; padding: 2px 0 2px 18px; border-left: 3px solid var(--mp-accent); font-size: 19px; line-height: 1.35; letter-spacing: -0.01em; font-weight: 600; color: var(--mp-fg); text-wrap: balance; }
.ab-founder__tags { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ab-founder__tags ul { display: flex; gap: 6px; flex-wrap: wrap; }
.ab-founder__tags li { font-family: var(--mp-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; color: var(--mp-accent); border: 1px solid var(--mp-line-2); padding: 5px 9px; }

.ab-how { padding: 48px 0 56px; border-bottom: 1px solid var(--mp-line); }
.ab-how__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.ab-how__item { display: flex; flex-direction: column; gap: 10px; padding-top: 16px; border-top: 1px solid var(--mp-line-2); }
.ab-how__num { font-family: var(--mp-mono); font-size: 11px; font-weight: 700; color: var(--mp-accent); }
.ab-how__item h3 { font-size: 20px; letter-spacing: -0.02em; }
.ab-how__item p { font-size: 14px; line-height: 1.55; color: var(--mp-fg-2); text-wrap: pretty; }

.ab-contact { padding: 56px 0 72px; display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; }
.ab-contact__title { font-size: 26px; line-height: 1.15; letter-spacing: -0.02em; margin: 10px 0 12px; max-width: 640px; text-wrap: balance; }
.ab-contact__text { font-size: 15px; line-height: 1.55; color: var(--mp-fg-2); max-width: 560px; }

@media (max-width: 1024px) {
  .ab-hero { padding: 32px 0 28px; }
  .ab-hero__dek { font-size: 15px; }
  .ab-hero__facts { flex-direction: column; margin-top: 24px; }
  .ab-hero__facts li { border-right: 0; border-bottom: 1px solid var(--mp-line); padding: 14px 16px; }
  .ab-hero__facts li:last-child { border-bottom: 0; }
  .ab-founders { grid-template-columns: 1fr; gap: 40px; padding: 32px 0; }
  .ab-founder__name { font-size: 28px; }
  .ab-founder__body p { font-size: 15px; }
  .ab-how { padding: 32px 0; }
  .ab-how__grid { grid-template-columns: 1fr; gap: 20px; }
  .ab-contact { grid-template-columns: 1fr; padding: 32px 0 48px; gap: 18px; }
  .ab-contact__title { font-size: 22px; }
  .ab-contact .mp-btn { justify-self: start; }
}

/* ---- Glosario ---- */
.gl-index, .gl-term, .au, .au-index, .fc { max-width: 1120px; margin: 0 auto; padding: 0 var(--mp-pad-x); }
.gl-hero { padding: 56px 0 36px; border-bottom: 1px solid var(--mp-line); }
.gl-hero__title { font-size: clamp(2rem, 4.4vw, 3.1rem); line-height: 1.05; letter-spacing: -0.03em; margin: 16px 0 18px; max-width: 880px; text-wrap: balance; }
.gl-hero__dek { font-size: 17px; line-height: 1.55; color: var(--mp-fg-2); max-width: 660px; text-wrap: pretty; }
.gl-jump { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 28px; }
.gl-jump a { font-family: var(--mp-mono); font-size: 12px; font-weight: 700; width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--mp-line); color: var(--mp-fg-2); transition: color 150ms ease, border-color 150ms ease, background 150ms ease; }
.gl-jump a:hover { color: var(--mp-bg); background: var(--mp-accent); border-color: var(--mp-accent); }
.gl-block { padding: 32px 0 8px; }
.gl-block__letter { font-family: var(--mp-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.2em; color: var(--mp-accent); padding-bottom: 10px; border-bottom: 1px solid var(--mp-line-2); margin-bottom: 4px; scroll-margin-top: 90px; }
.gl-list li { border-bottom: 1px solid var(--mp-line); }
.gl-list li a { display: grid; grid-template-columns: minmax(180px, 1fr) 2fr; grid-template-areas: 'term desc' 'group desc'; gap: 2px 28px; padding: 16px 0; border-left: 2px solid transparent; padding-left: 0; transition: border-color 160ms ease, padding-left 160ms ease; }
.gl-list li a:hover { border-left-color: var(--mp-accent); padding-left: 14px; }
.gl-list__term { grid-area: term; font-size: 18px; font-weight: 700; letter-spacing: -0.02em; color: var(--mp-fg); }
.gl-list li a:hover .gl-list__term { color: var(--mp-accent); }
.gl-list__group { grid-area: group; font-family: var(--mp-mono); font-size: 9px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mp-dim); }
.gl-list__desc { grid-area: desc; font-size: 14px; line-height: 1.5; color: var(--mp-fg-2); align-self: center; }

.gl-term__inner { max-width: 720px; padding: 48px 0 64px; }
.gl-term__title { font-size: clamp(2.2rem, 5vw, 3.4rem); line-height: 1.02; letter-spacing: -0.035em; margin: 14px 0 10px; }
.gl-term__aka { font-family: var(--mp-mono); font-size: 12px; color: var(--mp-fg-2); letter-spacing: 0.04em; margin-bottom: 18px; }
.gl-term__short { font-size: 19px; line-height: 1.5; color: var(--mp-fg); border-left: 3px solid var(--mp-accent); padding: 4px 0 4px 18px; margin: 22px 0 32px; text-wrap: pretty; }
.gl-term__guia { font-family: var(--mp-mono); font-size: 12.5px; letter-spacing: 0.02em; color: var(--mp-fg-2); border-left: 3px solid var(--mp-accent); padding: 11px 0 11px 16px; margin: 0 0 26px; background: var(--mp-bg-2); }
.gl-term__guia a { color: var(--mp-accent); text-decoration: underline; text-underline-offset: 2px; }
.gl-term__guia a:hover { color: var(--mp-fg); }
.gl-term__body p { font-size: 16.5px; line-height: 1.65; color: var(--mp-fg-2); margin: 0 0 18px; text-wrap: pretty; }
.gl-caveat { display: flex; gap: 14px; align-items: flex-start; background: var(--mp-bg-2); border: 1px solid var(--mp-line-2); border-left: 3px solid var(--mp-down); padding: 16px 18px; margin: 8px 0 32px; }
.gl-caveat__tag { font-family: var(--mp-mono); font-size: 9px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mp-down); padding-top: 3px; flex: 0 0 auto; }
.gl-caveat p { font-size: 14.5px; line-height: 1.55; color: var(--mp-fg); }
.gl-rel { margin: 36px 0 28px; padding-top: 26px; border-top: 1px solid var(--mp-line); }
.gl-rel__head { font-family: var(--mp-mono); font-size: 10px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--mp-fg-2); margin-bottom: 16px; }
.gl-rel ul { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.gl-rel li a { display: block; height: 100%; padding: 14px 16px; border: 1px solid var(--mp-line); background: var(--mp-bg-2); transition: border-color 160ms ease, transform 160ms ease; }
.gl-rel li a:hover { border-color: var(--mp-accent); transform: translateY(-2px); }
.gl-rel__term { display: block; font-size: 15px; font-weight: 700; letter-spacing: -0.01em; color: var(--mp-fg); margin-bottom: 4px; }
.gl-rel__desc { display: block; font-size: 12.5px; line-height: 1.45; color: var(--mp-fg-2); }
.gl-term__back { font-family: var(--mp-mono); font-size: 12px; color: var(--mp-fg-2); }
.gl-term__back a:hover { color: var(--mp-accent); }

/* ---- Autores ---- */
.au-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding: 40px 0 64px; }
.au-card__link { display: grid; grid-template-columns: 108px 1fr; gap: 20px; padding: 20px; border: 1px solid var(--mp-line); background: var(--mp-bg-2); transition: border-color 160ms ease, transform 160ms ease; }
.au-card__link:hover { border-color: var(--mp-accent); transform: translateY(-3px); }
.au-card__photo { position: relative; aspect-ratio: 1 / 1; overflow: hidden; border: 1px solid var(--mp-line); background: linear-gradient(180deg, var(--mp-bg-3), var(--mp-bg-2)); display: grid; place-items: center; }
.au-card__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.au-card__initials { font-family: var(--mp-mono); font-size: 30px; font-weight: 700; color: var(--mp-accent); opacity: 0.4; }
.au-card__body { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.au-card__name { font-size: 24px; font-weight: 700; letter-spacing: -0.025em; color: var(--mp-fg); }
.au-card__short { font-size: 14px; line-height: 1.5; color: var(--mp-fg-2); }
.au-card__count { font-family: var(--mp-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mp-accent); margin-top: auto; }

.au-head { display: grid; grid-template-columns: 240px 1fr; gap: 36px; padding: 48px 0 40px; border-bottom: 1px solid var(--mp-line); align-items: start; }
.au-head__photo { position: relative; aspect-ratio: 4 / 5; overflow: hidden; border: 1px solid var(--mp-line); background: repeating-linear-gradient(135deg, var(--mp-veil) 0 1px, transparent 1px 14px), linear-gradient(180deg, var(--mp-bg-3), var(--mp-bg-2)); display: grid; place-items: center; }
.au-head__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.au-head__initials { font-family: var(--mp-mono); font-size: 60px; font-weight: 700; color: var(--mp-accent); opacity: 0.35; }
.au-head__name { font-size: clamp(2rem, 4.4vw, 3rem); line-height: 1.03; letter-spacing: -0.035em; margin: 12px 0 14px; }
.au-head__meta { display: flex; flex-wrap: wrap; font-family: var(--mp-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--mp-fg-2); margin-bottom: 18px; }
.au-head__meta li::after { content: '·'; margin: 0 10px; color: var(--mp-line-2); }
.au-head__meta li:last-child::after { content: none; }
.au-head__short { font-size: 17px; line-height: 1.55; color: var(--mp-fg); max-width: 620px; margin-bottom: 20px; text-wrap: pretty; }
.au-head__tags { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.au-head__tags ul { display: flex; gap: 6px; flex-wrap: wrap; }
.au-head__tags li { font-family: var(--mp-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; color: var(--mp-accent); border: 1px solid var(--mp-line-2); padding: 5px 9px; }
.au-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 44px; padding: 40px 0; border-bottom: 1px solid var(--mp-line); }
.au-bio__text p { font-size: 16px; line-height: 1.65; color: var(--mp-fg-2); margin: 0 0 16px; text-wrap: pretty; }
.au-quote { margin: 24px 0 0; padding: 2px 0 2px 18px; border-left: 3px solid var(--mp-accent); font-size: 19px; line-height: 1.35; font-weight: 600; letter-spacing: -0.01em; color: var(--mp-fg); text-wrap: balance; }
.au-exp { display: flex; flex-direction: column; gap: 12px; margin-bottom: 22px; }
.au-exp li { position: relative; font-size: 14px; line-height: 1.5; color: var(--mp-fg-2); padding-left: 18px; }
.au-exp li::before { content: ''; position: absolute; left: 0; top: 8px; width: 6px; height: 6px; background: var(--mp-accent); }
.au-side__note { font-size: 13px; line-height: 1.55; color: var(--mp-dim); padding-top: 18px; border-top: 1px solid var(--mp-line); }
.au-side__note a { color: var(--mp-accent); text-decoration: underline; }
.au-articles { padding: 40px 0 64px; }
.au-count { font-family: var(--mp-mono); font-size: 11px; color: var(--mp-accent); border: 1px solid var(--mp-line-2); padding: 2px 7px; margin-left: 4px; }
.au-posts li { border-bottom: 1px solid var(--mp-line); }
.au-posts li a { display: grid; grid-template-columns: 1fr auto; grid-template-areas: 'cat date' 'title title'; gap: 6px 20px; padding: 18px 0; border-left: 2px solid transparent; transition: border-color 160ms ease, padding-left 160ms ease; }
.au-posts li a:hover { border-left-color: var(--mp-accent); padding-left: 14px; }
.au-post__title { grid-area: title; font-size: 19px; font-weight: 600; line-height: 1.25; letter-spacing: -0.015em; color: var(--mp-fg); text-wrap: balance; }
.au-posts li a:hover .au-post__title { color: var(--mp-accent); }
.au-post__date { grid-area: date; font-family: var(--mp-mono); font-size: 11px; color: var(--mp-fg-2); }
.au-empty { font-family: var(--mp-mono); font-size: 13px; color: var(--mp-dim); padding: 20px 0; }

/* ---- Calculadora de fiscalidad ---- */
.fc-hero { padding: 52px 0 34px; border-bottom: 1px solid var(--mp-line); }
.fc-hero__title { font-size: clamp(1.9rem, 4.2vw, 2.9rem); line-height: 1.05; letter-spacing: -0.03em; margin: 16px 0 18px; max-width: 880px; text-wrap: balance; }
.fc-hero__dek { font-size: 17px; line-height: 1.55; color: var(--mp-fg-2); max-width: 700px; text-wrap: pretty; }
.fc-hero__facts { display: flex; gap: 0; margin-top: 30px; border: 1px solid var(--mp-line); background: var(--mp-bg-2); }
.fc-hero__facts li { flex: 1; padding: 16px 20px; border-right: 1px solid var(--mp-line); display: flex; flex-direction: column; gap: 5px; }
.fc-hero__facts li:last-child { border-right: 0; }
.fc-hero__num { font-family: var(--mp-mono); font-size: 22px; font-weight: 700; color: var(--mp-accent); }
.fc-hero__label { font-family: var(--mp-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mp-fg-2); }
.fc-panel { padding: 36px 0 12px; }
.fc-panel__head h2 { font-size: 20px; letter-spacing: -0.02em; margin-bottom: 6px; }
.fc-panel__head { margin-bottom: 20px; }
.fc-tablewrap { position: relative; overflow-x: auto; border: 1px solid var(--mp-line); background: var(--mp-bg-2); }
.fc-input { width: 100%; border-collapse: collapse; min-width: 780px; }
.fc-input th:nth-child(2), .fc-input td:nth-child(2) { min-width: 150px; }
.fc-input th:first-child, .fc-input td:first-child { min-width: 150px; }
.fc-input th { font-family: var(--mp-mono); font-size: 9.5px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--mp-fg-2); text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--mp-line); white-space: nowrap; }
.fc-input td { padding: 6px 8px; border-bottom: 1px solid var(--mp-line); }
.fc-input tr:last-child td { border-bottom: 0; }
.fc-input input, .fc-input select { width: 100%; background: var(--mp-bg); border: 1px solid var(--mp-line); color: var(--mp-fg); font-family: var(--mp-mono); font-size: 13px; padding: 8px 10px; outline: none; transition: border-color 150ms ease; }
.fc-input input:focus, .fc-input select:focus { border-color: var(--mp-accent); }
.fc-input input::placeholder { color: var(--mp-dim); }
.fc-input__del { width: 42px; }
body.mp .fc-input__del button { width: 30px; height: 30px; border: 1px solid var(--mp-line); color: var(--mp-fg-2); font-size: 16px; line-height: 1; transition: color 150ms ease, border-color 150ms ease; }
body.mp .fc-input__del button:hover { color: var(--mp-down); border-color: var(--mp-down); }
.fc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fc-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.fc-import { position: relative; overflow: hidden; cursor: pointer; }
.fc-import input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.fc-results { padding: 12px 0 8px; }
.fc-results[hidden] { display: none; }
.fc-errors { border: 1px solid var(--mp-down); border-left-width: 3px; background: var(--mp-bg-2); padding: 18px 20px; }
.fc-errors h3 { font-size: 15px; color: var(--mp-down); margin-bottom: 10px; }
.fc-errors li { font-size: 14px; line-height: 1.5; color: var(--mp-fg-2); margin-bottom: 6px; padding-left: 14px; position: relative; }
.fc-errors li::before { content: '·'; position: absolute; left: 2px; }
.fc-year { border: 1px solid var(--mp-line); background: var(--mp-bg-2); margin-bottom: 20px; }
.fc-year__head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 16px 20px; border-bottom: 1px solid var(--mp-line); }
.fc-year__head h3 { font-size: 17px; letter-spacing: -0.02em; }
.fc-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.fc-kpi { padding: 18px 20px; border-right: 1px solid var(--mp-line); display: flex; flex-direction: column; gap: 6px; }
.fc-kpi:last-child { border-right: 0; }
.fc-kpi--main { background: var(--mp-bg-3); }
.fc-kpi__label { font-family: var(--mp-mono); font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mp-fg-2); }
.fc-kpi__value { font-family: var(--mp-mono); font-size: 20px; font-weight: 700; color: var(--mp-fg); font-variant-numeric: tabular-nums; }
.fc-kpi--main .fc-kpi__value { color: var(--mp-accent); }
.fc-kpi__sub { font-family: var(--mp-mono); font-size: 10px; color: var(--mp-fg-2); }
.fc-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.fc-table caption { font-family: var(--mp-mono); font-size: 9.5px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--mp-fg-2); text-align: left; padding: 14px 20px 8px; }
.fc-table th { font-family: var(--mp-mono); font-size: 9.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mp-fg-2); text-align: left; padding: 10px 20px; border-bottom: 1px solid var(--mp-line); }
.fc-table td { padding: 10px 20px; border-bottom: 1px solid var(--mp-line); color: var(--mp-fg); font-variant-numeric: tabular-nums; }
.fc-table tr:last-child td { border-bottom: 0; }
.fc-lots td { font-family: var(--mp-mono); font-size: 11px; color: var(--mp-dim); padding-top: 0; }
.fc-detail { border: 1px solid var(--mp-line); background: var(--mp-bg-2); margin-bottom: 20px; overflow-x: auto; }
.fc-detail h3 { font-size: 15px; letter-spacing: -0.01em; padding: 16px 20px; border-bottom: 1px solid var(--mp-line); }
.fc-note { font-size: 13px; line-height: 1.55; color: var(--mp-fg-2); padding: 14px 20px; }
.fc-legal { border: 1px solid var(--mp-line-2); border-left: 3px solid var(--mp-accent); background: var(--mp-bg-2); padding: 22px 24px; margin: 24px 0 40px; }
.fc-legal h2 { font-size: 15px; letter-spacing: -0.01em; margin-bottom: 12px; }
.fc-legal p { font-size: 13.5px; line-height: 1.6; color: var(--mp-fg-2); margin-bottom: 10px; }
.fc-legal a { color: var(--mp-accent); text-decoration: underline; }
.fc-faq { padding: 12px 0 40px; }
.fc-faq__item { border-bottom: 1px solid var(--mp-line); }
.fc-faq__item summary { cursor: pointer; padding: 16px 0; font-size: 16px; font-weight: 600; letter-spacing: -0.01em; color: var(--mp-fg); list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.fc-faq__item summary::-webkit-details-marker { display: none; }
.fc-faq__item summary::after { content: '+'; font-family: var(--mp-mono); color: var(--mp-accent); flex: 0 0 auto; }
.fc-faq__item[open] summary::after { content: '−'; }
.fc-faq__item p { font-size: 14.5px; line-height: 1.6; color: var(--mp-fg-2); padding: 0 0 18px; max-width: 760px; }
.fc-more { padding: 0 0 64px; }
.fc-more__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; }
.fc-more__list a { display: block; height: 100%; padding: 16px 18px; border: 1px solid var(--mp-line); background: var(--mp-bg-2); transition: border-color 160ms ease, transform 160ms ease; }
.fc-more__list a:hover { border-color: var(--mp-accent); transform: translateY(-2px); }
.fc-more__list strong { display: block; font-size: 15px; letter-spacing: -0.01em; color: var(--mp-fg); margin-bottom: 5px; }
.fc-more__list span { font-size: 13px; line-height: 1.45; color: var(--mp-fg-2); }
@media (max-width: 1024px) {
  .gl-index, .gl-term, .au, .au-index, .fc { padding: 0 var(--mp-pad-x-mobile); }
  .gl-hero { padding: 28px 0 22px; }
  .gl-hero__dek { font-size: 15px; }
  .gl-list li a { grid-template-columns: 1fr; grid-template-areas: 'term' 'group' 'desc'; gap: 5px; padding: 14px 0; }
  .gl-list__desc { font-size: 13.5px; }
  .gl-term__inner { padding: 26px 0 40px; }
  .gl-term__short { font-size: 16.5px; }
  .gl-term__body p { font-size: 15.5px; }
  .gl-rel ul { grid-template-columns: 1fr; }
  .au-cards { grid-template-columns: 1fr; gap: 16px; padding: 24px 0 40px; }
  .au-card__link { grid-template-columns: 84px 1fr; gap: 16px; padding: 16px; }
  .au-card__name { font-size: 20px; }
  .au-head { grid-template-columns: 1fr; gap: 22px; padding: 26px 0 24px; }
  .au-head__photo { max-width: 180px; }
  .au-grid { grid-template-columns: 1fr; gap: 28px; padding: 26px 0; }
  .au-articles { padding: 26px 0 40px; }
  .au-post__title { font-size: 17px; }
  .fc-hero { padding: 28px 0 22px; }
  .fc-hero__dek { font-size: 15px; }
  .fc-hero__facts { flex-direction: column; }
  .fc-hero__facts li { border-right: 0; border-bottom: 1px solid var(--mp-line); }
  .fc-hero__facts li:last-child { border-bottom: 0; }
  .fc-kpi { border-right: 0; border-bottom: 1px solid var(--mp-line); }
  .fc-kpi:last-child { border-bottom: 0; }
  .fc-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .fc-actions .mp-btn { text-align: center; padding: 11px 8px; font-size: 10px; letter-spacing: 0.1em; }
  .fc-actions .mp-btn--primary { grid-column: 1 / -1; }
  .fc-table th, .fc-table td, .fc-table caption, .fc-note, .fc-detail h3 { padding-left: 14px; padding-right: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .mp-drawer, .mp-drawer__panel, .mp-drawer__scrim { transition: none; }
  .mp-ticker__price.is-up, .mp-ticker__price.is-down { animation: none; }
  .pn-social__link, .pn-social__glow, .pn-social__icon, .mp-footer__col li a { transition: none; }
  .mp-searchbox__scrim, .mp-searchbox__panel { animation: none; }
  .gl-list li a, .gl-rel li a, .au-card__link, .au-posts li a, .fc-more__list a, .gl-jump a { transition: none; }
}
.author-byline { display: inline-flex; align-items: center; gap: .55rem; }
.author-avatar { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; display: block; }
.author-byline-text { display: inline-block; }
.author-name { font-weight: 600; }
/* ---- Banner de última hora ----
   El distintivo va en rojo, que es la convención en prensa, pero con el texto
   escrito: el color solo no distingue nada para quien no lo ve. El rojo del
   sitio ya significa «precio a la baja» en cifras pequeñas, así que aquí se usa
   un tono propio, más saturado, y siempre acompañado de la palabra. */
.mp-breaking {
  --br: #d7263d;
  --br-fg: #ffffff;
  position: relative;
  display: flex;
  align-items: stretch;
  gap: 0;
  border-bottom: 1px solid var(--mp-line);
  background: var(--mp-bg-2);
  overflow: hidden;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .mp-breaking { --br: #e8394f; }
}
:root[data-theme="dark"] .mp-breaking { --br: #e8394f; }
:root[data-theme="light"] .mp-breaking { --br: #d7263d; }
.mp-breaking[hidden] { display: none; }

.mp-breaking__flag {
  display: flex; align-items: center; gap: 9px; flex: 0 0 auto;
  padding: 11px var(--mp-pad-x) 11px var(--mp-pad-x);
  background: var(--br); color: var(--br-fg);
  font-family: var(--mp-mono); font-size: 11px; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase; white-space: nowrap;
}
/* Cuadrado que late, como el testigo de grabación de un plató */
.mp-breaking__pulso { width: 8px; height: 8px; background: var(--br-fg); animation: mp-latido 1.6s steps(1, end) infinite; }
@keyframes mp-latido { 0%, 55% { opacity: 1; } 56%, 100% { opacity: 0.25; } }

.mp-breaking__items { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; }
.mp-breaking__item { width: 100%; min-width: 0; }
.mp-breaking__item[hidden] { display: none; }
.mp-breaking__enlace {
  display: flex; align-items: baseline; gap: 12px; min-width: 0;
  padding: 11px 16px; color: var(--mp-fg); transition: color 150ms ease;
}
a.mp-breaking__enlace:hover { color: var(--br); }
.mp-breaking__etq {
  flex: 0 0 auto; font-family: var(--mp-mono); font-size: 9.5px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--br);
  border: 1px solid currentColor; padding: 2px 6px;
}
.mp-breaking__titular {
  flex: 1 1 auto; min-width: 0; font-size: 14.5px; font-weight: 600; letter-spacing: -0.01em;
  line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mp-breaking__hora { flex: 0 0 auto; font-family: var(--mp-mono); font-size: 11px; color: var(--mp-fg-2); }

.mp-breaking__mandos { display: flex; align-items: center; gap: 2px; flex: 0 0 auto; padding-right: 4px; }
.mp-breaking__mandos[hidden] { display: none; }
body.mp .mp-breaking__mandos button,
body.mp .mp-breaking__cerrar {
  width: 26px; height: 26px; align-self: center; display: grid; place-items: center;
  font-family: var(--mp-mono); font-size: 15px; line-height: 1;
  color: var(--mp-fg-2); border: 1px solid transparent; background: none;
  transition: color 150ms ease, border-color 150ms ease;
}
body.mp .mp-breaking__mandos button:hover,
body.mp .mp-breaking__cerrar:hover { color: var(--br); border-color: var(--br); }
.mp-breaking__contador { font-family: var(--mp-mono); font-size: 10.5px; color: var(--mp-dim); min-width: 26px; text-align: center; font-variant-numeric: tabular-nums; }
.mp-breaking__cerrar { flex: 0 0 auto; margin-right: calc(var(--mp-pad-x) - 26px); }

/* Cuánto queda para que entre el siguiente titular */
.mp-breaking__barra { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: transparent; }
.mp-breaking__barra i { display: block; height: 100%; background: var(--br); transform: scaleX(0); transform-origin: left center; }

@media (max-width: 720px) {
  .mp-breaking { flex-wrap: wrap; }
  .mp-breaking__flag { padding: 8px var(--mp-pad-x-mobile); font-size: 10px; letter-spacing: 0.14em; }
  .mp-breaking__items { flex: 1 1 100%; order: 3; }
  .mp-breaking__enlace { padding: 9px var(--mp-pad-x-mobile) 11px; flex-wrap: wrap; gap: 6px 10px; }
  .mp-breaking__titular { white-space: normal; overflow: visible; flex: 1 1 100%; font-size: 14px; }
  .mp-breaking__mandos { margin-left: auto; }
  .mp-breaking__cerrar { margin-right: 6px; }
}

/* Con movimiento reducido no hay relevo ni latido: se apilan todos los titulares */
@media (prefers-reduced-motion: reduce) {
  .mp-breaking__pulso { animation: none; }
  .mp-breaking__barra { display: none; }
  .mp-breaking__items { flex-wrap: wrap; }
  .mp-breaking__item[hidden] { display: block; }
  .mp-breaking__item + .mp-breaking__item { border-top: 1px solid var(--mp-line); }
  /* Con todos los titulares a la vista, recorrerlos no tiene sentido */
  .mp-breaking__mandos { display: none; }
}

/* ---- Gráficos de artículo ----
   Paletas validadas por separado para cada tema con el validador de la guía,
   sobre el fondo real de cada uno. No son la misma paleta invertida.
   Claro  (fondo #f1f5f1): verde #2e8b3d · azul #2a78d6 · magenta #e87ba4
   Oscuro (fondo #0a0e0a): verde #45a854 · azul #3987e5 · magenta #d55181
   El magenta queda por debajo de 3:1 en claro y el par verde/magenta cae en la
   banda 6-8 de CVD en oscuro: ambos avisos se compensan con etiqueta directa en
   cada dato y con la tabla desplegable, que van siempre. */
.pn-chart {
  --pn-s1: #2e8b3d;
  --pn-s2: #2a78d6;
  --pn-s3: #e87ba4;
  --pn-off: rgba(11,18,13,0.22);
  --pn-grid: rgba(11,18,13,0.10);
  margin: 2rem 0;
  padding: 20px 22px 16px;
  border: 1px solid var(--mp-line);
  background: var(--mp-bg-2);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .pn-chart {
    --pn-s1: #45a854; --pn-s2: #3987e5; --pn-s3: #d55181;
    --pn-off: rgba(212,245,220,0.20); --pn-grid: rgba(212,245,220,0.11);
  }
}
:root[data-theme="dark"] .pn-chart {
  --pn-s1: #45a854; --pn-s2: #3987e5; --pn-s3: #d55181;
  --pn-off: rgba(212,245,220,0.20); --pn-grid: rgba(212,245,220,0.11);
}
:root[data-theme="light"] .pn-chart {
  --pn-s1: #2e8b3d; --pn-s2: #2a78d6; --pn-s3: #e87ba4;
  --pn-off: rgba(11,18,13,0.22); --pn-grid: rgba(11,18,13,0.10);
}

.pn-chart__cab { margin-bottom: 4px; }
.pn-chart__titulo { display: block; font-family: var(--mp-display); font-size: 15px; font-weight: 700; letter-spacing: -0.01em; color: var(--mp-fg); line-height: 1.3; }
.pn-chart__dek { font-size: 13.5px; line-height: 1.5; color: var(--mp-fg-2); margin: 6px 0 0; }
/* Por debajo de cierto ancho el texto del SVG dejaría de leerse, así que el
   lienzo se desplaza en lugar de encogerse. El degradado del borde derecho avisa
   de que hay más a la derecha, y la tabla de datos está justo debajo. */
.pn-chart__lienzo { position: relative; margin: 14px 0 6px; overflow-x: auto; scrollbar-width: thin; }
.pn-chart svg { width: 100%; min-width: 330px; height: auto; display: block; overflow: visible; }


/* El texto nunca lleva el color de la serie: usa los tonos de texto del sitio. */
.pn-chart__etq { font-family: var(--mp-display); font-size: 14px; fill: var(--mp-fg); }
.pn-chart__val { font-family: var(--mp-mono); font-size: 13.5px; font-weight: 600; fill: var(--mp-fg); }
.pn-chart__val--dentro { fill: #ffffff; }
.pn-chart__tick { font-family: var(--mp-mono); font-size: 11px; fill: var(--mp-fg-2); font-variant-numeric: tabular-nums; }
.pn-chart__grid { stroke: var(--pn-grid); stroke-width: 1; }

.pn-chart__bar { fill: var(--pn-s1); }
.pn-chart__bar.is-off { fill: var(--pn-off); }
.pn-chart__bar.is-on { fill: var(--pn-s1); }
.pn-chart__line { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.pn-chart__line--s1 { stroke: var(--pn-s1); }
.pn-chart__line--s2 { stroke: var(--pn-s2); }
.pn-chart__line--s3 { stroke: var(--pn-s3); }
/* Anillo del color del fondo para que el punto se lea al cruzar una línea */
.pn-chart__dot { stroke: var(--mp-bg-2); stroke-width: 2; }
.pn-chart__dot--s1 { fill: var(--pn-s1); }
.pn-chart__dot--s2 { fill: var(--pn-s2); }
.pn-chart__dot--s3 { fill: var(--pn-s3); }

.pn-chart__leyenda { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 12px 0 0; font-family: var(--mp-mono); font-size: 11.5px; color: var(--mp-fg-2); }
.pn-chart__leyenda li { display: inline-flex; align-items: center; gap: 7px; }
.pn-chart__swatch { width: 11px; height: 11px; border-radius: 2px; flex: 0 0 auto; }
.pn-chart__swatch--s1 { background: var(--pn-s1); }
.pn-chart__swatch--s2 { background: var(--pn-s2); }
.pn-chart__swatch--s3 { background: var(--pn-s3); }

.pn-chart__datos { margin-top: 10px; border-top: 1px solid var(--mp-line); padding-top: 8px; }
.pn-chart__datos summary { cursor: pointer; font-family: var(--mp-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--mp-fg-2); list-style: none; }
.pn-chart__datos summary::-webkit-details-marker { display: none; }
.pn-chart__datos summary::before { content: '+ '; color: var(--mp-accent); }
.pn-chart__datos[open] summary::before { content: '− '; }
.pn-chart__datos summary:hover { color: var(--mp-accent); }
body.mp .pn-chart__datos table { width: 100%; border-collapse: collapse; margin: 12px 0 4px; font-size: 13px; }
body.mp .pn-chart__datos th { text-align: left; font-family: var(--mp-mono); font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mp-fg-2); padding: 6px 10px 6px 0; border-bottom: 1px solid var(--mp-line); }
body.mp .pn-chart__datos td { padding: 7px 10px 7px 0; border-bottom: 1px solid var(--mp-line); color: var(--mp-fg); font-variant-numeric: tabular-nums; }
body.mp .pn-chart__datos tr:last-child td { border-bottom: 0; }

.pn-chart__fuente { font-family: var(--mp-mono); font-size: 10.5px; letter-spacing: 0.03em; color: var(--mp-dim); margin: 10px 0 0; }

/* Fila de cifras: cuando el dato es el titular y no hace falta gráfico */
.pn-chart--cifras .pn-chart__cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0; margin: 16px 0 0; }
.pn-chart__cifras li { padding: 4px 20px 4px 0; border-right: 1px solid var(--mp-line); display: flex; flex-direction: column; gap: 4px; }
.pn-chart__cifras li:last-child { border-right: 0; }
.pn-chart__cifra { font-family: var(--mp-display); font-size: 30px; font-weight: 700; letter-spacing: -0.03em; color: var(--pn-s1); line-height: 1; }
.pn-chart__cifra-etq { font-size: 13px; line-height: 1.35; color: var(--mp-fg); }
.pn-chart__cifra-pie { font-family: var(--mp-mono); font-size: 10.5px; color: var(--mp-fg-2); }

@media (max-width: 720px) {
  .pn-chart { padding: 16px 14px 12px; margin: 1.5rem -4px; }
  .pn-chart__titulo { font-size: 14px; }
  .pn-chart__cifras li { border-right: 0; border-bottom: 1px solid var(--mp-line); padding: 10px 0; }
  .pn-chart__cifras li:last-child { border-bottom: 0; }
  .pn-chart__cifra { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) { .pn-chart__datos summary { transition: none; } }

.legal-footer-nav { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; justify-content: center; margin: 0 0 .85rem; }
.legal-footer-nav a { font-size: .82rem; color: inherit; text-decoration: none; opacity: .8; }
.legal-footer-nav a:hover { opacity: 1; text-decoration: underline; }
.legal-page-main { max-width: 720px; margin: 0 auto; padding: 2.5rem 1.5rem 4rem; }
.legal-article-title { font-size: clamp(1.8rem, 4vw, 2.6rem); margin: 0 0 1.5rem; line-height: 1.15; }
.legal-article-body { font-size: 1.02rem; line-height: 1.65; }
.legal-article-body h2 { font-size: 1.4rem; margin: 2rem 0 .65rem; line-height: 1.25; }
.legal-article-body h3 { font-size: 1.15rem; margin: 1.5rem 0 .5rem; }
.legal-article-body p, .legal-article-body ul, .legal-article-body ol { margin: 0 0 1rem; }
.legal-article-body ul, .legal-article-body ol { padding-left: 1.4rem; }
.legal-article-body a { color: inherit; }
.legal-article-body .contact-mailto { padding: .85rem 1rem; background: rgba(0,0,0,0.04); border-left: 3px solid currentColor; margin-bottom: 1.5rem; }
.pn-links-rail { box-sizing: border-box; width: 100%; max-width: 100%; margin: 0; padding: 1.1rem 1.25rem 1rem; border: 1px solid rgba(0,0,0,.14); border-top: 3px solid currentColor; background: rgba(0,0,0,.015); font-family: inherit; }
.pn-links-rail__head { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; opacity: .8; margin: 0 0 .65rem; padding-bottom: .5rem; border-bottom: 1px solid rgba(0,0,0,.1); }
.pn-links-rail__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .5rem; }
.pn-links-rail__list li { line-height: 1.35; }
.pn-links-rail__list a { font-size: .92rem; color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.pn-links-rail__list a:hover { opacity: .75; }
@media (min-width: 1024px) {
  main:has(> .pn-links-rail) {
    max-width: min(1280px, calc(100vw - 3rem));
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    column-gap: 2.5rem;
    align-items: start;
    box-sizing: border-box;
  }
  main > .pn-links-rail {
    grid-column: 2;
    grid-row: 1 / span 999;
    position: sticky;
    top: 1.5rem;
    align-self: start;
  }
  main > .pn-links-hidden { grid-column: 1; grid-row: 1; }
}
@media (max-width: 1023px) {
  main > .pn-links-rail { margin: 1.5rem 0 1rem; }
}
.pn-links-hidden { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.pn-social { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pn-social__link { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--mp-line-2); color: var(--mp-fg-2); overflow: hidden; isolation: isolate; text-decoration: none; transition: color 220ms ease, border-color 220ms ease, transform 220ms cubic-bezier(0.22, 1, 0.36, 1); }
.pn-social__glow { position: absolute; inset: 0; z-index: -1; border-radius: 50%; background: var(--mp-accent); transform: translateY(101%); transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1); }
.pn-social__icon { position: relative; width: 20px; height: 20px; transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1); }
.pn-social__link:hover, .pn-social__link:focus-visible { color: var(--mp-bg); border-color: var(--mp-accent); transform: translateY(-4px); outline: none; }
.pn-social__link:hover .pn-social__glow, .pn-social__link:focus-visible .pn-social__glow { transform: translateY(0); }
.pn-social__link:hover .pn-social__icon, .pn-social__link:focus-visible .pn-social__icon { transform: scale(1.12) rotate(-8deg); }
.pn-social__link:active { transform: translateY(-1px); }
.pn-social--header { justify-content: flex-end; margin: .35rem 1.25rem; }
.pn-social--footer { justify-content: flex-start; }
.pn-social--sidebar { justify-content: flex-start; margin: 0 0 1.25rem; }
