/* =====================================================
   CREDITOSTUDIO — Design System (rebuild)
   Mobile-first · sin scroll horizontal · data-driven
   ===================================================== */
:root{
  --brand:#00a6df; --brand-2:#00b36b; --brand-dark:#0077a8;
  --brand-grad:linear-gradient(135deg,#00a6df 0%,#00b36b 100%);
  --accent:#7765e3;
  --ink:#162033; --ink-2:#2d3a50; --muted:#667085; --subtle:#94a3b8;
  --border:#e2e8f0; --border-2:#f1f5f9;
  --surface:#fff; --surface-2:#f7f8fb; --surface-3:#f1f5f9;
  --row-hover:var(--surface-2);   /* tinte de hover de filas de listado; se sobreescribe por sección (ver data-section) */
  --positive:#00875a; --positive-bg:#e6f7f0;
  --negative:#c2410c; --negative-bg:#fff1ee;
  --warning:#a16207; --warning-bg:#fef9c3;
  /* escala de variación (rojo · naranja · violeta · azul tema · verde tema) */
  --scale-red:#d62828; --scale-orange:#ea580c; --scale-violet:var(--accent);
  --scale-blue:var(--brand); --scale-green:var(--brand-2);
  /* gradiente suave de marca (hero / CTA registro) */
  --grad-hero:linear-gradient(150deg,#e8f7fd 0%,#e8fdf3 100%);
  --shadow-xs:0 1px 4px rgba(15,23,42,.06); --shadow-sm:0 4px 16px rgba(15,23,42,.08);
  --shadow-md:0 8px 32px rgba(15,23,42,.10); --shadow-lg:0 20px 60px rgba(15,23,42,.14);
  --r-xs:6px; --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:36px;
  --gap-xs:8px; --gap-sm:16px; --gap-md:24px; --gap-lg:40px; --gap-xl:64px;
  --max-w:1200px; --header-h:64px;
}

/* =====================================================
   TOKENS DE CATEGORÍA — única fuente de color por taxonomía (alineada a DB).
   Se seleccionan con data-cat y exponen:
   --cat (acento: dots, títulos), --cat-bg (tinte de fondo), --cat-ink (texto sobre tinte).
   ===================================================== */
[data-cat=markets]  {--cat:#f59e0b;--cat-bg:#fff6e6;--cat-ink:#92600a}
[data-cat=savings]  {--cat:#10b981;--cat-bg:#e6f7ef;--cat-ink:#00875a}
[data-cat=financing]{--cat:#7765e3;--cat-bg:#efecfe;--cat-ink:#5b21b6}
[data-cat=economy]  {--cat:#2563eb;--cat-bg:#e7f0ff;--cat-ink:#1d4ed8}
[data-cat=news]     {--cat:#ec4899;--cat-bg:#fdeaf3;--cat-ink:#be185d}
[data-cat=tools]    {--cat:#06b6d4;--cat-bg:#e0f6fb;--cat-ink:#0e7490}
[data-cat=investing]{--cat:#0ea5e9;--cat-bg:#e0f2fe;--cat-ink:#0369a1}
[data-cat=business] {--cat:#64748b;--cat-bg:#eef2f6;--cat-ink:#334155}
/* color de categoría disponible en TODA la página (no solo en [data-cat]) según data-section del body */
body[data-section=markets]  {--cat:#f59e0b;--cat-bg:#fff6e6;--cat-ink:#92600a}
body[data-section=savings]  {--cat:#10b981;--cat-bg:#e6f7ef;--cat-ink:#00875a}
body[data-section=financing]{--cat:#7765e3;--cat-bg:#efecfe;--cat-ink:#5b21b6}
body[data-section=economy]  {--cat:#2563eb;--cat-bg:#e7f0ff;--cat-ink:#1d4ed8}
body[data-section=news]     {--cat:#ec4899;--cat-bg:#fdeaf3;--cat-ink:#be185d}
body[data-section=tools]    {--cat:#06b6d4;--cat-bg:#e0f6fb;--cat-ink:#0e7490}

/* HOVER de filas de listado — tinte de la categoría de la página (data-section del <body>).
   No tocamos --cat para no afectar a los dots del header; usamos una var dedicada. */
/* tinte tenue (6% del acento sobre blanco); subir/bajar ese % regula la intensidad del hover */
body[data-section=markets]  {--row-hover:color-mix(in srgb,#f59e0b 6%,#fff)}
body[data-section=savings]  {--row-hover:color-mix(in srgb,#10b981 6%,#fff)}
body[data-section=financing]{--row-hover:color-mix(in srgb,#7765e3 6%,#fff)}
body[data-section=economy]  {--row-hover:color-mix(in srgb,#2563eb 6%,#fff)}
body[data-section=news]     {--row-hover:color-mix(in srgb,#ec4899 6%,#fff)}
body[data-section=tools]    {--row-hover:color-mix(in srgb,#06b6d4 6%,#fff)}

/* fondo de módulo (un único sitio, sin redefinir por sección) */
[data-bg=grey]{background:var(--surface-2)}
[data-bg=white]{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}

/* --- Reset + anti-overflow global --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}   /* sin scroll-behavior:smooth global: recargar/atrás restaura el scroll al instante (no animado). El paginador anima vía scrollIntoView({behavior:"smooth"}) en JS */
html,body{max-width:100%;overflow-x:clip}
body{
  font-family:'Inter',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:16px;line-height:1.6;color:var(--ink);background:var(--surface-2);
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button,input,select,textarea{font:inherit;color:inherit;border:none;outline:none;background:transparent}
/* clave anti-desbordamiento: hijos de grid/flex pueden encoger */
.grid>*,.flex>*{min-width:0}
table{max-width:100%}

/* --- Compatibilidad táctil / foco (móvil · tablet · desktop) --- */
*{-webkit-tap-highlight-color:transparent}            /* sin recuadro azul/gris al tocar en móvil */
:focus{outline:none}
:focus-visible{outline:none}   /* sin anillo azul de focus (desktop/móvil) */
a,button,input,select,textarea,label,summary,[role=button],
.nav-link,.cmq-item,.kpi-ico,.mkt-kpi,.seg__btn,.mkt-row,.cat-card,.tool-card,.faq__q,.chip,.btn{
  touch-action:manipulation}                          /* sin delay 300ms ni doble-tap zoom */
button{-webkit-appearance:none;appearance:none;cursor:pointer}
.nav-link,.cmq,.cmq-item,.seg,.seg__btn,.btn,.country-btn,.nav-toggle,.faq__q,.kpi-ico,.mkt-kpi,.cat-card,.tool-card{
  -webkit-user-select:none;user-select:none}          /* sin selección al mantener pulsado en chrome interactivo */
img{-webkit-user-drag:none;user-select:none}

/* --- Tipografía --- */
h1,.h1{font-size:clamp(28px,5vw,52px);line-height:1.06;letter-spacing:-.04em;font-weight:800}
h2,.h2{font-size:clamp(22px,3.2vw,34px);line-height:1.12;letter-spacing:-.03em;font-weight:700}
h3,.h3{font-size:clamp(17px,2vw,21px);line-height:1.2;letter-spacing:-.02em;font-weight:700}
h4,.h4{font-size:15px;line-height:1.3;font-weight:600}
.lead{font-size:clamp(15px,2vw,18px);color:var(--muted);line-height:1.7}
.small{font-size:13px}
.mono{font-family:ui-monospace,'Fira Code',monospace}

/* --- Layout --- */
.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 24px}
.section{padding:var(--gap-xl) 0}
.section--sm{padding:var(--gap-lg) 0}
.grid{display:grid;gap:var(--gap-md)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
.grid--auto{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.grid--cats{grid-template-columns:repeat(3,1fr)}
.grid--prod{grid-template-columns:repeat(2,1fr)}
.flex{display:flex;gap:var(--gap-sm);align-items:center}
.flex--between{justify-content:space-between}
.flex--wrap{flex-wrap:wrap}

/* --- Header --- */
.site-header{position:sticky;top:0;z-index:100;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-xs)}
/* el header se monta por JS: reserva su alto+fondo aunque esté vacío → no parpadea ni salta el contenido */
#cs-header{min-height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border)}
.header-inner{display:flex;align-items:center;gap:var(--gap-md);height:var(--header-h)}
.header-logo{display:flex;align-items:center;flex-shrink:0}
.header-logo img{height:34px;width:auto}
.main-nav{display:flex;align-items:center;gap:2px;flex:1}
.nav-link{display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:var(--r-sm);font-size:14px;font-weight:600;color:var(--muted);transition:color .15s,background .15s;white-space:nowrap}
.nav-link:hover{color:var(--ink);background:var(--surface-3)}
.nav-link.is-active{color:var(--ink);font-weight:800}
.nav-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--cat,var(--brand))}
.header-actions{display:flex;align-items:center;gap:12px;margin-left:auto}
.country-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--r-sm);border:1px solid var(--border);font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer;background:var(--surface);transition:border-color .15s}
.country-btn:hover{border-color:var(--brand)}
.btn-login{padding:8px 18px;border-radius:var(--r-sm);font-size:14px;font-weight:700;color:var(--brand);border:1.5px solid var(--brand);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}
.btn-login:hover{background:var(--brand);color:#fff}
.nav-toggle{display:none;flex-direction:column;gap:5px;padding:8px;cursor:pointer;border-radius:var(--r-xs)}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:.2s}
.nav-mobile-only{display:none}
/* --- Mega-menú (desktop = panel flotante al hover; colores por [data-cat] heredados del nav-item) --- */
.nav-item{position:relative;display:flex;align-items:center}
.nav-caret{display:none;border:0;background:none;color:var(--muted);cursor:pointer;font-size:11px;line-height:1;padding:2px;margin-left:-4px}
.mega{position:absolute;top:100%;left:0;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:16px;margin-top:8px;display:none}
.mega--right{left:auto;right:0}
.mega::before{content:"";position:absolute;top:-8px;left:0;right:0;height:8px}
.nav-item:hover>.mega,.nav-item:focus-within>.mega{display:block}
.mega__inner{display:flex;gap:22px;align-items:stretch}
.mega__col{min-width:150px}
.mega__col-h{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cat,var(--brand));margin:0 0 6px 8px}
.mega__link{display:block;padding:7px 8px;border-radius:var(--r-sm);font-size:14px;font-weight:500;color:var(--ink);white-space:nowrap;transition:background .12s}
.mega__link:hover{background:var(--surface-3)}
.mega__feat{display:flex;flex-direction:column;width:236px;background:var(--cat-bg,var(--surface-3));border-radius:var(--r-sm);padding:14px;text-decoration:none}
.mega__feat-k{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cat-ink,var(--muted));margin-bottom:6px}
.mega__feat-t{font-size:15px;font-weight:700;color:var(--cat-ink,var(--ink));margin-bottom:5px;line-height:1.25}
.mega__feat-s{font-size:12.5px;line-height:1.5;color:var(--cat-ink,var(--muted));opacity:.85;flex:1}
.mega__cta{margin-top:12px;align-self:flex-start;background:var(--cat,var(--brand));color:#fff;font-size:12.5px;font-weight:700;padding:6px 13px;border-radius:999px;display:inline-flex;gap:6px;align-items:center}

/* dropdown país */
.dropdown{position:relative}
.dropdown__menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:6px;min-width:200px;box-shadow:var(--shadow-md);display:none;z-index:200;max-height:60vh;overflow:auto}
.dropdown__menu.is-open{display:block}
.dropdown__item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-xs);font-size:14px;color:var(--ink);cursor:pointer;transition:background .15s}
.dropdown__item:hover,.dropdown__item.is-active{background:var(--surface-3)}

/* --- Botones --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 22px;border-radius:var(--r-sm);font-size:14px;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s;white-space:nowrap;border:none}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn:active{transform:translateY(0)}
.btn--primary{background:var(--brand-grad);color:#fff}
.btn--secondary{background:var(--surface);color:var(--ink);border:1.5px solid var(--border)}
.btn--secondary:hover{border-color:var(--brand);color:var(--brand)}
.btn--outline{background:transparent;border:1.5px solid var(--brand);color:var(--brand)}
.btn--outline:hover{background:var(--brand);color:#fff}
/* toggle moderno reutilizable (input type=checkbox class="switch") */
.switch{appearance:none;-webkit-appearance:none;position:relative;width:40px;height:22px;border-radius:999px;background:var(--border);cursor:pointer;flex-shrink:0;transition:background .2s;vertical-align:middle}
.switch::before{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow-xs);transition:transform .2s}
.switch:checked{background:var(--brand)}
.switch:checked::before{transform:translateX(18px)}
.btn--ghost{background:transparent;color:var(--brand);border:1.5px solid var(--brand)}
.btn--ghost:hover{background:var(--brand);color:#fff}
.btn--ink{background:var(--ink);color:#fff}
.btn--sm{padding:7px 14px;font-size:13px}
.btn--lg{padding:14px 28px;font-size:16px}
.btn--full{width:100%}

/* --- Cards --- */
.card{background:var(--surface);border-radius:var(--r-md);border:1px solid var(--border);overflow:hidden;transition:box-shadow .2s,transform .2s}
.card--flat{box-shadow:none}
.card--hover:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card-body{padding:var(--gap-md)}
.card-header{padding:var(--gap-md);border-bottom:1px solid var(--border-2)}

/* LIFT unificado — todas las cards/tiles clicables comparten el MISMO hover.
   Cambiar aquí el efecto = cambia en todo el sitio. (Botones usan su propio -1px.) */
.cat-card,.prod-card,.tool-card,.news-card,.news-big,.mkt-group__card,.proj-card,
a.mkt-kpi,.daycard--link,.mkt-feature,.sav-hero{transition:box-shadow .2s,transform .2s,border-color .2s}
.cat-card:hover,.prod-card:hover,.tool-card:hover,.news-card:hover,.news-big:hover,.mkt-group__card:hover,.proj-card:hover,
a.mkt-kpi:hover,.daycard--link:hover,.mkt-feature:hover,.sav-hero:hover{
  transform:translateY(-2px);box-shadow:var(--shadow-md)}

/* category card (home) — color por data-cat */
.cat-card{border-radius:var(--r-lg);padding:24px 96px 24px 24px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden;min-height:186px;border:1px solid var(--border);background:var(--cat-bg,var(--surface))}
.cat-card__head{display:flex;align-items:center;gap:14px}
.cat-card__icon{width:54px;height:54px;border-radius:15px;background:#fff;box-shadow:var(--shadow-xs);display:inline-flex;align-items:center;justify-content:center;font-size:28px}
.cat-card__name{color:var(--cat);font-size:19px;font-weight:800;overflow-wrap:anywhere}
.cat-card__desc{font-size:13.5px;color:var(--muted);line-height:1.5}
.cat-card__sub{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px;position:relative;z-index:1}
.cat-card__chip{font-size:12px;font-weight:600;background:rgba(255,255,255,.6);color:var(--ink-2);padding:3px 10px;border-radius:999px}
.cat-card>:not(.cat-card__img){position:relative;z-index:1}
.cat-card__img{position:absolute;right:-6px;bottom:0;width:108px;max-width:40%;opacity:.95;pointer-events:none;z-index:0}

/* FAQ accordion */
.faq{display:grid;gap:10px}
.faq__item{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);overflow:hidden}
.faq__q{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;font-size:15px;font-weight:600;color:var(--ink);cursor:pointer}
.faq__q::after{content:"+";font-size:22px;color:var(--muted);flex-shrink:0;transition:transform .2s}
.faq__item.is-open .faq__q::after{content:"−"}
.faq__a{padding:0 18px;max-height:0;overflow:hidden;color:var(--muted);font-size:14.5px;line-height:1.7;transition:max-height .25s,padding .25s}
.faq__item.is-open .faq__a{padding:0 18px 16px;max-height:320px}

/* ===== PRODUCT CARD · cartilla (cuentas) + banda (tarjetas) ===== */
.prod-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column;cursor:pointer}
.prod-card__top{display:flex;gap:12px;align-items:flex-start;padding:16px 18px 0}
.prod-card__logo{width:48px;height:48px;border-radius:11px;border:1px solid var(--border);background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;font-size:22px;object-fit:contain}
.prod-card__id{flex:1;min-width:0}
.prod-card__name{font-size:16px;font-weight:800;color:var(--ink);line-height:1.2;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.prod-card__prov{font-size:12px;color:var(--muted);margin-top:3px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
/* CS Score badge (escala /10) */
.cs-badge{flex-shrink:0;width:48px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 0;color:#fff;line-height:1;text-align:center}
.cs-badge b{font-size:17px;font-weight:800}
.cs-badge span{font-size:8px;font-weight:600;margin-top:2px;opacity:.95}
.cs-badge--high{background:var(--cat,#0f9e88)}
.cs-badge--mid{background:#b07d12}
.cs-badge--low{background:#c2410c}
.cs-badge--onband{background:rgba(255,255,255,.22)}
/* tags */
.prod-card__tags{display:flex;flex-wrap:wrap;gap:6px;padding:10px 18px 0}
.prod-card__tags--flush{padding:0;margin-top:8px}   /* tags dentro de un feature: sin el padding de prod-card */
/* stats */
.prod-card__stats{display:flex;gap:22px;padding:12px 18px 0}
.prod-card__stats--3{justify-content:space-between;gap:8px;text-align:center}
.prod-card__stats--3 .prod-card__stat{flex:1}
.prod-card__stat-val{font-size:19px;font-weight:800;color:var(--ink);line-height:1}
.prod-card__stat-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:3px}
/* CTAs + estrella */
.prod-card__cta{display:flex;align-items:center;gap:8px;padding:14px 18px 16px;margin-top:auto}
.prod-card__cta .btn{flex:1}
.prod-card__cta .btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
/* variante BANDA (tarjetas) */
.prod-card__band{display:flex;gap:12px;align-items:center;padding:14px 16px;color:#fff}
.prod-card__band .prod-card__name{color:#fff}
.prod-card__band .prod-card__prov{color:rgba(255,255,255,.9)}
.prod-card__logo--band{width:42px;height:42px;background:#fff;border:none}
.prod-card__body{display:flex;flex-direction:column;flex:1;padding:14px 18px 16px;gap:12px}
.prod-card__body .prod-card__tags,.prod-card__body .prod-card__stats,.prod-card__body .prod-card__cta{padding:0}
.prod-card__body .prod-card__cta{margin-top:auto}
/* estrella de favorito: misma .fav-star de todo el sitio; aquí solo el posicionamiento */
.prod-card .fav-star{margin-left:auto}

/* AHORRO · feature a línea completa */
.sav-hero{position:relative;display:flex;align-items:center;gap:18px;background:linear-gradient(120deg,color-mix(in srgb,var(--cat) 12%,#fff),color-mix(in srgb,var(--cat) 3%,#fff));border:1px solid color-mix(in srgb,var(--cat) 28%,#fff);border-radius:var(--r-md);padding:18px 20px}
.sav-hero__ribbon{position:absolute;top:-11px;left:18px;font-size:11px;font-weight:800;color:#fff;background:var(--cat,#0f9e88);border-radius:999px;padding:3px 12px}
.sav-hero__logo{width:60px;height:60px;border-radius:14px;border:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;font-size:26px;object-fit:contain}
.sav-hero__main{flex:1;min-width:0}
.sav-hero__name{font-size:19px;font-weight:800;overflow-wrap:anywhere}
.sav-hero__prov{font-size:13px;color:var(--ink-2);margin:2px 0 8px}
.sav-hero__stat{text-align:center;flex-shrink:0}
.sav-hero__stat b{font-size:24px;font-weight:800;color:var(--cat-ink,#0b7d6c);line-height:1;display:block}
.sav-hero__stat span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.sav-hero__cta{flex-shrink:0}
.sav-hero .fav-star{flex-shrink:0}
@media(max-width:720px){.sav-hero{flex-wrap:wrap}.sav-hero__main{flex-basis:100%;order:-1}.sav-hero__cta{flex:1}}

/* AHORRO · ranking "mejor valoradas" (primera resaltada) */
.sav-trow{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--r-sm)}
.sav-trow+.sav-trow{margin-top:2px}
.sav-trow--hl{background:color-mix(in srgb,var(--cat) 8%,#fff);outline:1px solid color-mix(in srgb,var(--cat) 28%,#fff)}
.sav-trow__n{width:20px;text-align:center;font-weight:800;color:var(--muted);flex-shrink:0}
.sav-trow--hl .sav-trow__n{color:var(--cat,#0f9e88)}
.sav-trow__logo{width:38px;height:38px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;font-size:18px;object-fit:contain}
.sav-trow__txt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.sav-trow__txt b{font-size:14px;font-weight:700}
.sav-trow__txt small{font-size:12px;color:var(--muted)}
.sav-cs{flex-shrink:0;font-size:13px;font-weight:800;color:#fff;border-radius:8px;padding:4px 8px}
.sav-cs--high{background:var(--cat,#0f9e88)}.sav-cs--mid{background:#b07d12}.sav-cs--low{background:#c2410c}

/* AHORRO · proyección de crecimiento (slider + chips · top 4 tarjetas · resto en barras) */
.proj__controls{margin-bottom:18px}
.proj__amt-row{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}
.proj__amt-lbl{font-size:12px;color:var(--muted)}
.proj__amt-val{font-size:20px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
/* chips (izq) + años (der) en una fila, mismo alto · slider full-width debajo */
.proj__bar-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.proj__chips{display:flex;gap:6px;flex-wrap:wrap}
.proj__chip{font-size:13px;font-weight:700;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:6px 14px;cursor:pointer;transition:.15s}
.proj__chip:hover{border-color:var(--cat,#0f9e88);color:var(--cat-ink,#0f6e56)}
.proj__chip.is-active{color:#fff;background:var(--cat,#0f9e88);border-color:var(--cat,#0f9e88)}
/* slider: pista gris visible + relleno y thumb verdes (el color de las barras) */
.proj__slider{-webkit-appearance:none;appearance:none;width:100%;height:7px;border-radius:999px;background:#d7dee7;cursor:pointer}
.proj__slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--cat,#0f9e88);border:3px solid var(--surface);box-shadow:0 1px 4px rgba(15,23,42,.25);cursor:pointer}
.proj__slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--cat,#0f9e88);border:3px solid var(--surface);box-shadow:0 1px 4px rgba(15,23,42,.25);cursor:pointer}
.proj__slider::-moz-range-progress{background:var(--cat,#0f9e88);height:7px;border-radius:999px}
.proj__top{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.proj-card{position:relative;display:block;border:1px solid var(--border);border-radius:var(--r-sm);padding:12px;text-decoration:none;color:inherit}
.proj-card>.fav-star{position:absolute;top:6px;right:6px;z-index:2}
.proj-card--win{border-color:color-mix(in srgb,var(--cat) 28%,#fff);background:color-mix(in srgb,var(--cat) 6%,#fff)}
.proj-card__ribbon{position:absolute;top:-9px;left:12px;font-size:9.5px;font-weight:700;color:#fff;background:var(--cat,#0f9e88);border-radius:999px;padding:2px 9px}
.proj-card__head{display:flex;align-items:center;gap:8px;padding-right:30px}
.proj-card__id{min-width:0}
.proj-card__logo{width:26px;height:26px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--surface-2);border:1px solid var(--border);font-size:14px;object-fit:contain}
.proj-card__nm{font-size:13px;font-weight:700;color:var(--ink);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.proj-card__tae{font-size:11px;color:var(--muted)}
.proj-card__amtrow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}
.proj-card__big{font-size:18px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.proj-card--win .proj-card__big{color:var(--cat-ink,#0b7d6c)}
.proj-card__int{font-size:11px;font-weight:700;color:var(--positive);margin-top:1px}
.proj-card__track{height:8px;background:#d7dee7;border-radius:999px;overflow:hidden;margin-top:9px}
.proj-card__fill{display:block;height:100%;border-radius:999px}
.proj__rest-lbl{display:flex;align-items:center;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;margin:18px 0 8px}
.proj-bar{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:0 -10px;border-radius:var(--r-sm);text-decoration:none;color:inherit;transition:background .15s}
.proj-bar:hover{background:var(--row-hover)}
.proj-bar+.proj-bar{border-top:1px solid var(--border-2)}
.proj-bar__logo{width:24px;height:24px;border-radius:7px;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--surface-2);border:1px solid var(--border);font-size:12px;object-fit:contain}
.proj-bar__id{width:120px;flex-shrink:0;min-width:0}
.proj-bar__nm{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.proj-bar__tae{font-size:11px;color:var(--muted)}
.proj-bar__track{flex:1;height:10px;background:#d7dee7;border-radius:999px;overflow:hidden;min-width:50px}
.proj-bar__val{width:96px;flex-shrink:0;text-align:right;line-height:1.25}
.proj-bar__amt{font-size:14px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.proj-bar__int{font-size:11px;font-weight:700;color:var(--positive)}
@media(max-width:560px){.proj-bar__track{display:none}.proj-bar__id{flex:1;width:auto}}
/* nota explicativa bajo la proyección */
.proj-note{margin-top:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:16px 18px}
.proj-note__title{font-size:15px;font-weight:700;color:var(--ink);margin:0 0 6px;display:flex;align-items:center;gap:8px}
.proj-note p{font-size:13.5px;color:var(--ink-2);line-height:1.6;margin:0 0 8px}
.proj-note p:last-child{margin:0}
.proj-note code{background:var(--surface-3);padding:2px 7px;border-radius:6px;font-size:12.5px;font-family:ui-monospace,'Fira Code',monospace}
.proj-note small{color:var(--muted);font-size:12.5px}
@media(max-width:640px){.proj__top{grid-template-columns:repeat(2,1fr)}.proj-bar__id{width:96px}}
@media(max-width:380px){.proj__top{grid-template-columns:1fr}}
/* FINANCIACIÓN · doble comparador de cuota: 2 col desktop / 1 col ≤1024; acento por --cat (morado) */
.fin-calc{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-md)}
.fin-calc .proj__top{grid-template-columns:repeat(2,1fr)}
.fin-calc .proj__chip:hover{border-color:var(--cat);color:var(--cat)}
.fin-calc .proj__chip.is-active{color:#fff;background:var(--cat);border-color:var(--cat)}
.fin-calc .proj__slider::-webkit-slider-thumb{background:var(--cat)}
.fin-calc .proj__slider::-moz-range-thumb{background:var(--cat)}
.fin-calc .proj__slider::-moz-range-progress{background:var(--cat)}
.fin-calc .proj-card--win{border-color:color-mix(in srgb,var(--cat) 30%,#fff);background:color-mix(in srgb,var(--cat) 6%,#fff)}
.fin-calc .proj-card--win .proj-card__big{color:var(--cat)}
.fin-calc .proj-card__ribbon{background:var(--cat)}
.fin-calc .proj-card__big small{font-size:11px;font-weight:700;color:var(--muted);margin-left:1px}
.fin-calc .proj-card__int,.fin-calc .proj-bar__int{color:var(--muted)}   /* aquí los intereses son un coste, no una ganancia */
@media(max-width:1024px){.fin-calc{grid-template-columns:1fr}}
@media(max-width:480px){.fin-calc .proj__top{grid-template-columns:1fr}}
/* feature + filas clicables */
.sav-hero{cursor:pointer}
.sav-trow{cursor:pointer;text-decoration:none;color:inherit}
.sav-trow:hover{background:var(--row-hover)}
.sav-trow__cs{width:46px;padding:5px 0}
.sav-trow__cs b{font-size:15px}
.sav-hero{text-decoration:none;color:inherit}
.sav-hero__cta svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
/* AHORRO · tarjetas de exploración de grupo + tabla comparativa */
.mkt-group__card{text-decoration:none;color:inherit}
.mkt-group__card:hover{border-color:var(--cat)}
.mkt-group__card-desc{font-size:13.5px;color:var(--muted);line-height:1.5;margin:6px 0 0}

/* AHORRO · tags de producto (forma Vuskoo) */
.ptag{font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap}
.ptag--green{background:#eaf3de;color:#3b6d11}
.ptag--teal{background:#e1f5ee;color:#0f6e56}
.ptag--blue{background:#e6f1fb;color:#185fa5}
.ptag--amber{background:#faeeda;color:#854f0b}
.ptag--gray{background:var(--surface-2);color:var(--ink-2)}

/* (eliminado CSS muerto de la versión "pro" descartada: sav-feature/sav-mini/sav-rank/
   sav-bars/card-grid/sav-plastic/sav-cmp/sav-th — 0 usos en HTML/JS, 2026-06-23) */

/* --- Badges / chips / pills --- */
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.badge--brand{background:#e0f4fc;color:var(--brand-dark)}
.badge--xs{font-size:10px}
.badge--success{background:var(--positive-bg);color:var(--positive)}
.badge--warning{background:var(--warning-bg);color:var(--warning)}
.badge--danger{background:var(--negative-bg);color:var(--negative)}
.badge--muted{background:var(--surface-3);color:var(--muted)}
.badge--accent{background:#ede9fe;color:#5b21b6}
/* badge coloreado por taxonomía (p.ej. bucket de noticia): data-cat */
.badge[data-cat]{background:var(--cat-bg);color:var(--cat-ink)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid var(--border);color:var(--ink-2);cursor:pointer;background:var(--surface);transition:.15s;white-space:nowrap}
.chip:hover{border-color:var(--brand);color:var(--brand)}
.chip.is-active{border-color:var(--brand);color:#fff;background:var(--brand)}
.chip-row{display:flex;gap:8px;flex-wrap:wrap}

/* --- Tablas --- */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface)}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table thead tr{background:var(--surface-3)}
.table th{padding:12px 14px;text-align:left;font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-bottom:1px solid var(--border)}
.table td{padding:13px 14px;border-bottom:1px solid var(--border-2);vertical-align:middle;color:var(--ink-2)}
.table tbody tr:last-child td{border-bottom:none}
.table tbody tr:hover td{background:var(--row-hover)}
.table .col-num{text-align:right;font-weight:600;font-feature-settings:'tnum'}
.table .positive{color:var(--positive);font-weight:700}
.table .negative{color:var(--negative);font-weight:700}

/* --- Hero --- */
.hero{background:var(--grad-hero);padding:var(--gap-xl) 0;border-bottom:1px solid var(--border);overflow:hidden}
.hero__inner{display:grid;grid-template-columns:1fr;gap:var(--gap-lg);align-items:center}
.hero__media{display:none}
@media (min-width:920px){
  .hero__inner{grid-template-columns:1fr 1.05fr;min-height:clamp(440px,46vw,540px)}
  .hero__media{display:flex;align-items:flex-end;justify-content:flex-end}
}
.hero__eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--brand);text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px}
.hero__title{margin-bottom:16px;max-width:14ch}
.hero__lead{margin-bottom:var(--gap-md);max-width:540px}
.hero__kpis{display:flex;gap:var(--gap-lg);flex-wrap:wrap;margin-top:var(--gap-md)}
.hero__kpi-val{font-size:clamp(22px,3vw,30px);font-weight:800;color:var(--ink);line-height:1}
.hero__kpi-label{font-size:13px;color:var(--muted);margin-top:4px}

/* page hero (secciones) — color por data-cat */
.page-hero{border-bottom:1px solid var(--border);padding:32px 0;background:var(--cat-bg,var(--surface))}

/* --- Section head --- */
.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:var(--gap-md);flex-wrap:wrap;gap:12px}
.section-head__sub{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand);margin-bottom:6px}
.det-chartrow .section-head{margin-bottom:0px;}

/* --- Breadcrumb --- */
.breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);margin-bottom:var(--gap-sm);flex-wrap:wrap}
.breadcrumb a:hover{color:var(--brand)}
.breadcrumb__sep{color:var(--subtle)}
.breadcrumb__current{color:var(--ink);font-weight:600}

/* (ticker retirado: sustituido por la marquesina por categoría .cmq, ver layout.js) */

/* --- Charts --- */
.sparkline{width:84px;height:34px;display:block}

/* Visual de instrumento de mercado (reutilizable: tabla, listado, ficha) */
.mkt-cell{display:flex;align-items:center;gap:12px}
.mkt-ico{width:38px;height:38px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:var(--surface-3);flex-shrink:0;font-size:18px}
.mkt-ico img{width:100%;height:100%;object-fit:contain;padding:3px}
.mkt-ico .fi{width:26px;height:19px;border-radius:3px;background-size:cover;background-position:center}
.mkt-ico--sym{font-size:12px;font-weight:800;color:var(--muted);letter-spacing:.02em}
.mkt-ico--fx{gap:2px}
.mkt-ico--fx .fi{width:16px;height:12px;box-shadow:0 0 0 1px var(--surface)}
/* promo de conversión (CTA) en la ficha */
.det-promo-wrap{margin-top:var(--gap-md)}
.det-promo{display:flex;align-items:center;gap:var(--gap-md);flex-wrap:wrap;background:#ecfbff;border:1px solid var(--border);border-radius:var(--r-lg);padding:20px 24px}
.det-promo__logo{align-self:stretch;display:flex;align-items:center;justify-content:center;flex-shrink:0;min-width:88px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:10px}
.det-promo__logo .mkt-ico{width:52px;height:52px}
.det-promo__logo .mkt-ico img{width:46px;height:46px}
.det-promo__text{flex:1;min-width:160px}
.det-promo__title{font-size:20px;font-weight:800;color:var(--ink)}
.det-promo__sub{font-size:14px;color:var(--muted);margin-top:4px}
.det-promo__form{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.det-promo__field{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;background:var(--surface)}
.det-promo__field input{width:84px;border:none;padding:11px 12px;font-size:15px;font-weight:700;text-align:right;background:transparent;color:var(--ink);min-width:0}
.det-promo__field span{display:flex;align-items:center;padding:0 12px;background:var(--surface-2);font-size:13px;color:var(--muted);white-space:nowrap}
.det-promo__btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:640px){.det-promo{flex-direction:column;align-items:stretch}.det-promo__form{justify-content:space-between}.det-promo__field{flex:1}}
/* botón "Obtener" en listados (gradiente + icono bolsa) */
.mkt-get{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:var(--r-sm);background:var(--brand-grad);color:#fff;cursor:pointer;transition:transform .15s,box-shadow .15s;touch-action:manipulation}
.mkt-get:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.mkt-get svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.mkt-get--text{width:auto;height:auto;gap:7px;padding:10px 16px;font-size:14px;font-weight:700;white-space:nowrap}   /* variante con texto a la derecha (feature) */
/* tarjeta de grupo de mercado (home) */
.mkt-group__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.mkt-group__head h3{font-size:16px}
/* pastilla inset: padding lateral propio + margen negativo igual → el CONTENIDO queda alineado
   al borde del contenedor (como antes) y solo el tinte del hover sobresale redondeado. */
.mkt-row{display:flex;align-items:center;gap:10px;padding:11px 10px;margin:0 -10px;border-radius:var(--r-sm);color:var(--ink);transition:background .15s}
.mkt-row+.mkt-row{margin-top:2px}
.mkt-row:hover{background:var(--row-hover)}
/* card del activo actual: misma proporción que el listado, sin enlace ni hover, fondo de categoría */
.det-current.card--tight{margin-bottom:12px;background:#f7fdff;padding-top:10px;padding-bottom:10px}
.mkt-row.is-current,.stock-card.is-current{cursor:default;border-bottom-color:transparent}
.mkt-row.is-current:hover,.stock-card.is-current:hover{background:transparent;transform:none}
.mkt-row__name{flex:1;min-width:0}
.mkt-row__name strong{display:block;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mkt-row__name small{color:var(--muted);font-size:12px}
.mkt-row__spark{flex-shrink:0}
.mkt-row__price{text-align:right;flex-shrink:0;min-width:78px;font-size:14px}
.mkt-row__price b{display:block;font-weight:700;font-feature-settings:'tnum'}
.mkt-row__price span{font-size:12px;font-weight:700}

/* card rica de ACCIÓN (listado): escritorio = tabla 1 fila/6 col con cabecera única ·
   tablet+móvil = 2 filas (identidad + precio/día apilados arriba; tendencia/volumen/rango centrados abajo) */
/* ficha de instrumento (detail) */
.det-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.det-head .mkt-ico{width:52px;height:52px;flex-shrink:0}
.det-head .mkt-ico img{width:40px;height:40px}
.det-head__main{flex:1;min-width:180px}
.det-head__name{font-size:clamp(24px,4vw,38px)}
.det-head__meta{color:var(--muted);font-size:14px;margin-top:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.det-head__meta .fi{width:20px;height:15px;border-radius:3px}
.det-head__price{text-align:right;white-space:nowrap}
.det-head__price b{display:block;font-size:30px;font-weight:800;line-height:1.1}
.det-head__price span{font-size:14px;font-weight:700}
/* cabecera de economía: dos valores con su etiqueta (Valor/IPC · Variación) */
.det-eco-stats{display:flex;gap:26px;text-align:right;white-space:nowrap}
.det-eco-stat{display:flex;flex-direction:column;align-items:flex-end}
.det-eco-stat>b{font-size:26px;font-weight:800;line-height:1.15}
.det-eco-stat .eco-delta{font-size:26px;line-height:1.15}
.det-eco-stat small{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:3px}
@media (max-width:640px){.det-eco-stats{text-align:left}.det-eco-stat{align-items:flex-start}}
.det-head__actions{display:flex;flex-direction:column;gap:8px;width:168px;flex-shrink:0}
.det-head__actions .btn{width:100%;padding:9px 14px}
.det-head__actions .btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
@media (max-width:640px){.det-head__price{text-align:left}.det-head__actions{width:100%}}

/* perfil del activo: CS Score + datos clave + descripción */
.det-profile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--gap-md)}
.det-profile__top{display:flex;gap:20px;align-items:center}
.cs-score{position:relative;width:96px;height:96px;flex-shrink:0}
.cs-score svg{width:96px;height:96px;display:block}
.cs-score__bg{stroke:var(--border)}
.cs-score__num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.cs-score__num b{font-size:27px;font-weight:800;line-height:1}
.cs-score__num small{font-size:11px;color:var(--subtle);margin-top:2px}
.det-profile__head{flex:1;min-width:0}
.det-profile__title{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800}
.det-profile__desc{font-size:13.5px;color:var(--muted);line-height:1.6;margin-top:6px}
.score-pill{font-size:12px;font-weight:700;padding:2px 10px;border-radius:999px}
.det-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:16px}
.det-fact{background:var(--surface-2);border-radius:var(--r-sm);padding:10px 12px}
.det-fact__k{font-size:12px;color:var(--muted)}
.det-fact__v{display:block;font-size:14px;font-weight:700;margin-top:3px}
.det-fact__v--none{font-weight:500;color:var(--subtle);font-style:italic}

/* ficha de ahorro: layout condiciones (ancho) + solicitud (sidebar) */
.det-savgrid{display:grid;grid-template-columns:1fr;gap:var(--gap-md)}
.det-savgrid__side .card+.card{margin-top:var(--gap-md)}   /* gap entre Solicitud y el cálculo */
.det-savgrid__side{order:-1}                               /* móvil apilado: Solicitud arriba */
@media(min-width:860px){
  .det-savgrid{grid-template-columns:1.6fr 1fr;align-items:start}
  .det-savgrid__side{order:0}                              /* desktop: vuelve a la derecha */
}
/* condiciones en filas a lo ancho */
.det-specrow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 2px;font-size:14px}
.det-specrow+.det-specrow{border-top:1px solid var(--border-2)}
.det-specrow .k{color:var(--muted)}
.det-specrow .v{font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.det-specrow .v.good{color:var(--positive)}
/* nota informativa debajo de las condiciones */
.det-note{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 14px;font-size:12px;color:var(--muted);line-height:1.6;margin-top:12px}
.det-note b{color:var(--ink);font-weight:700}
/* tarjeta de solicitud (sidebar, centrada, sin estilos de overlay) */
.det-apply{text-align:center}
.det-apply__nm{font-size:16px;font-weight:800;margin-top:14px;line-height:1.2}
.det-apply__pv{font-size:12px;color:var(--muted);margin-top:2px}
.det-apply__hero{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:14px 0}
.det-apply__big{font-size:28px;font-weight:800;line-height:1;color:var(--positive)}
.det-apply__big.is-zero{color:var(--ink)}
.det-apply__lbl{font-size:11px;color:var(--subtle)}
.det-apply__cs{display:inline-flex;align-items:center;gap:5px;background:var(--cat-bg,#e6f7ef);color:var(--positive);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;margin-top:8px}
.det-apply__cs svg{width:13px;height:13px}
.det-apply .btn{width:100%}
.det-apply .btn svg{width:17px;height:17px}                 /* fix: iconos no se estiran */
.det-apply .btn+.btn{margin-top:8px}
.det-apply__trust{display:flex;align-items:center;gap:6px;justify-content:center;font-size:11.5px;color:var(--muted);margin-top:12px}
.det-apply__trust svg{width:15px;height:15px;flex-shrink:0}
/* ===== Módulo ART de producto (lienzo único: tarjeta · cartilla · contrato · escritura) ===== */
.csart{position:relative;overflow:hidden;color:#fff;margin:0 auto;background:linear-gradient(135deg,#3a4256 0%,#1b2130 100%);width:208px;max-width:100%;height:130px;border-radius:12px}
.csart__wm{position:absolute;inset:0;background:center/cover no-repeat;filter:blur(16px);opacity:.55;z-index:0}
.csart__wm--ico{display:flex;align-items:center;justify-content:center;font-size:108px;line-height:1}
.csart__init{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:0;font-weight:800;font-size:142px;line-height:1;letter-spacing:-2px;white-space:nowrap;opacity:.2;color:#fff;transform:rotate(-10deg)}
.csart__fg{position:relative;z-index:1;height:100%;box-sizing:border-box;padding:13px;display:flex;flex-direction:column}
.csart__head{display:flex;align-items:center;gap:8px;min-width:0}
.csart__logo{background:#fff;border-radius:5px;height:26px;display:inline-flex;align-items:center;padding:0 7px;flex-shrink:0}
.csart__logo img{height:18px;width:auto;max-width:80px;object-fit:contain;display:block}
.csart__bank{flex:1;min-width:0;font-size:12px;font-weight:800;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;color:rgba(255,255,255,.6);text-shadow:0 1px 2px rgba(0,0,0,.4)}
.csart__motif{width:20px;height:20px;opacity:.95;flex-shrink:0}
.csart__big{margin-top:auto;font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.csart__big .u{font-size:12px;font-weight:700;opacity:.85}
.csart__acct{font-size:11px;letter-spacing:.5px;opacity:.85;margin-top:7px;font-variant-numeric:tabular-nums}
.csart__chip{width:30px;height:22px;display:block;margin:6px 0}
.csart__wifi{width:18px;height:18px;opacity:.9;transform:rotate(90deg)}
.csart__num{font-size:12px;letter-spacing:1.5px;margin-top:auto;font-variant-numeric:tabular-nums}
.csart__ft{display:flex;justify-content:flex-end;font-size:9px;text-transform:uppercase;letter-spacing:.06em;opacity:.92;margin-top:5px}
.csart--book{display:flex;padding:0}
.csart--book .csart__fg{flex:1;min-width:0}
.csart__spine{width:15px;background:rgba(0,0,0,.14);position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:space-around;padding:9px 0}
.csart__ring{width:6px;height:6px;border-radius:50%;background:rgba(0,0,0,.2)}
.csart__lines{margin-top:9px;display:flex;flex-direction:column;gap:5px}
.csart__lines i{height:3px;border-radius:2px;background:rgba(255,255,255,.26)}
.csart__lines i.s{width:60%}
.csart__term{font-size:13px;font-weight:800;margin-top:9px;font-variant-numeric:tabular-nums}
.csart__term .u{font-size:10px;font-weight:700;opacity:.82}
.csart__sign{margin-top:auto;display:flex;align-items:center;justify-content:flex-end;gap:8px;border-top:1px dashed rgba(255,255,255,.4);padding-top:6px}
.csart__sign small{font-size:8px;text-transform:uppercase;letter-spacing:.08em;opacity:.72}
.csart__sig{width:58px;height:20px;opacity:.95;flex:0 0 auto}
.csart__seal{width:24px;height:24px;border:1.5px solid rgba(255,255,255,.55);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.csart__seal svg{width:13px;height:13px;opacity:.85}
/* prod-card (sheet): banda superior de color (marca) + marca de agua de tipo */
.prod-card--sheet.has-deco .prod-card__top{padding-top:22px}
.prod-card.has-deco .prod-card__top,.prod-card.has-deco .prod-card__tags,.prod-card.has-deco .prod-card__stats,.prod-card.has-deco .prod-card__cta{position:relative;z-index:1}
.prod-card__topbar{position:absolute;top:0;left:0;right:0;height:8px;z-index:2}
.prod-card__wm{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;z-index:0;opacity:.04;color:var(--ink)}
.prod-card__wm svg{width:80%;height:80%;transform:translateX(14%)}
/* calculadora de rentabilidad */
.det-calc__fl{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:var(--muted);margin-bottom:8px}
.det-calc__fl b{font-size:15px;color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.det-calc__slider{width:100%}
.det-calc__res{background:var(--surface-2);border-radius:var(--r-sm);padding:14px;text-align:center;margin-top:14px}
.det-calc__rv{font-size:24px;font-weight:800;color:var(--positive);font-variant-numeric:tabular-nums}
.det-calc__rl{font-size:12px;color:var(--muted)}
.det-empty{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted);line-height:1.55}
.det-empty svg{width:18px;height:18px;color:var(--subtle);flex-shrink:0;margin-top:1px}

/* bloques de contenido editorial (SEO) */
.cblocks{display:flex;flex-direction:column;gap:var(--gap-md)}
.cblock{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--gap-md)}
.cblock--image-left,.cblock--image-right{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--gap-md);align-items:center}
.cblock--image-right{grid-template-columns:minmax(0,1fr) 240px}
.cblock__media img{width:100%;height:auto;border-radius:var(--r-sm);display:block}
.cblock__title{font-size:18px;font-weight:700}
.cblock__sub{font-size:13.5px;color:var(--muted);margin-top:3px}
.cblock__body{font-size:14.5px;line-height:1.7;margin-top:10px;color:var(--ink-2)}
.cblock__body p{margin-bottom:10px}
.cblock__body p:last-child{margin-bottom:0}
@media (max-width:640px){
  .cblock--image-left,.cblock--image-right{grid-template-columns:1fr}
  .cblock--image-right .cblock__media{order:-1}
}

/* gráfica + formulario de seguimiento a la derecha */
.det-chartrow{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--gap-md);align-items:start}
.track-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--gap-md);position:sticky;top:84px}
.track-form__title{font-size:17px;font-weight:800}
.track-form__lead{font-size:13px;color:var(--muted);line-height:1.5;margin-top:6px}
.track-form__lbl{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin:14px 0 5px}
.track-form__sel{width:100%;border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 12px;background:var(--surface);font-size:14px;color:var(--ink);cursor:pointer}
.track-form__sel:focus-visible{border-color:var(--brand)}
.track-form__row{display:flex;gap:8px}
.track-form__sel--th{flex:0 0 84px}
.track-form__inp{flex:1;min-width:96px;border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 12px;background:var(--surface);font-size:14px;color:var(--ink)}
.track-form__inp:focus-visible{border-color:var(--brand)}
/* marca del formulario: eyebrow + logo centrado + nombre del activo */
.track-form__brand{text-align:center;padding-bottom:14px;border-bottom:1px solid var(--border)}
.track-form__eyebrow{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand);margin-bottom:10px}
.track-form__logo{display:flex;justify-content:center;margin-bottom:8px}
.track-form__logo .mkt-ico{width:68px;height:68px}
.track-form__logo .mkt-ico img{width:60px;height:60px}
.track-form__name{font-size:13px;font-weight:600;color:var(--muted);margin-top:2px}
.track-form .track-form__seg{display:flex;width:fit-content;margin:16px auto 4px}
.track-form__mode[hidden]{display:none}
.track-form__when{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin-top:14px;background:var(--surface-2);border-radius:var(--r-sm);padding:9px 11px}
.track-form__check{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-2);margin-top:12px;cursor:pointer}
.chart-card__sub{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--brand);margin:18px 0 10px;padding-top:16px;border-top:1px solid var(--border)}
.track-form__btn{width:100%;margin-top:16px}
.track-form__see{width:100%;margin-top:10px}
.track-form__see svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
@media (max-width:900px){.det-chartrow{grid-template-columns:1fr}.track-form{position:static}}

/* estrella de favoritos (toggle, a la izquierda del item) */
.fav-star{flex-shrink:0;background:#fff;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--subtle);cursor:pointer;border-radius:50%;transition:color .15s,background .15s}
.fav-star svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.fav-star:hover{color:#f59e0b;background:#fff7ed}
.fav-star.is-active{color:#f59e0b}
.fav-star.is-active svg{fill:currentColor}

/* overlay modal común (favoritos, watchlist, avisos…) */
.cs-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .18s}
.cs-overlay.is-open{opacity:1}
.cs-overlay__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.5)}
.cs-overlay__dialog{position:relative;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);max-width:420px;width:100%;padding:28px 26px;text-align:center;transform:translateY(8px);transition:transform .18s}
.cs-overlay.is-open .cs-overlay__dialog{transform:none}
.cs-overlay__x{position:absolute;top:12px;right:12px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--muted);cursor:pointer}
.cs-overlay__x:hover{background:var(--surface-3);color:var(--ink)}
.cs-overlay__icon{width:56px;height:56px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fff6e6}
.cs-overlay__icon svg{width:30px;height:30px;fill:#f59e0b}
.cs-overlay__title{font-size:20px;margin-bottom:8px}
.cs-overlay__text{color:var(--muted);font-size:15px;line-height:1.6;margin-bottom:20px}
.cs-overlay__actions{display:flex;flex-direction:column;gap:10px}
/* cuerpo del overlay (formularios, p. ej. "Obtener") */
.cs-overlay__body{margin:4px 0 18px}
.get{text-align:center}
.get__logo{width:64px;height:64px;margin:0 auto 6px;border-radius:16px;border:1px solid var(--border);background:var(--surface-2);display:flex;align-items:center;justify-content:center}
.get__logo .mkt-ico{width:42px;height:42px}
.get__logo .mkt-ico img{width:40px;height:40px;border-radius:10px}
.get__name{font-size:18px;font-weight:800}
.get__meta{font-size:12px;color:var(--muted);margin:4px 0 12px}
.get__prov{font-size:13px;color:var(--muted)}
.get__type{display:inline-flex;align-items:center;gap:6px;margin-top:8px;background:color-mix(in srgb,var(--cat,#00a6df) 12%,#fff);color:var(--cat-ink,var(--brand-dark));padding:5px 14px;border-radius:999px;font-size:14px;font-weight:700}
.get__sum-nm{font-size:16px;font-weight:800;color:var(--ink);margin-top:12px}
.get__sum .csart{margin:12px auto 0}   /* ART dentro de la pastilla "Solicitas": entre etiqueta y nombre */
.get__tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:8px}
.get__price{font-size:15px;margin-top:6px}
.get__price b{font-weight:800}
.seg.get__seg{display:flex;width:100%;margin:16px 0 12px}
.get__seg .seg__btn{flex:1}
/* markets · conversor: labels en color/negrita + 2 campos (input centrado, ancho auto: mín 100px → máx 90%) + badge de divisa */
.get__lbl{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--cat-ink,var(--muted))}
.get__reclbl{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:8px}
.get__field{display:inline-flex;align-items:stretch;max-width:90%;margin-top:6px;border:1px solid color-mix(in srgb,var(--cat,#00a6df) 22%,#fff);border-radius:var(--r-sm);overflow:hidden;background:var(--surface);vertical-align:middle}
.get__field--rec{background:var(--surface)}
.get__field.is-invalid{border-color:var(--negative)}
.get__field input{box-sizing:content-box;border:none;background:transparent;text-align:center;font-size:22px;font-weight:800;color:var(--cat-ink,var(--brand-dark));padding:8px 12px;min-width:100px;width:auto}
/* importes del art de divisas/activos: NO en color de categoría — inviertes=muted, recibes=positivo */
#cs-get-inp{color:var(--muted)}
#cs-get-rcv{color:var(--positive)}
.get__unit{display:flex;align-items:center;padding:0 13px;background:var(--surface-2);font-size:18px;font-weight:700;color:var(--muted);white-space:nowrap}
.get__bdg{display:inline-flex;gap:2px;padding:2px;background:color-mix(in srgb,var(--cat,#00a6df) 12%,#fff);border-radius:999px}
.get__bg{font-size:11px;font-weight:700;color:var(--cat-ink,var(--brand-dark));background:transparent;border:none;border-radius:999px;padding:3px 11px;cursor:pointer;transition:.15s}
.get__bg.is-active{color:#fff;background:var(--cat,#00a6df)}
/* card ART del overlay de mercados (fondo inline desde item.dominant_color via csArtBg) + formulario dentro */
.csart--get{width:auto;height:auto;max-width:100%;padding:18px 16px;border-radius:16px;margin-top:8px}
.csart--get .csart__init{font-size:240px}
.csart--get .csart__fg{position:relative;height:auto;padding:0;display:flex;flex-direction:column;align-items:center;text-align:center}
.csart--get .get__lbl{color:rgba(255,255,255,.85)}
.csart--get .get__reclbl{margin-top:8px}
.csart--get .get__bdg{background:rgba(255,255,255,.22)}
.csart--get .get__bg{color:#fff}
.csart--get .get__bg.is-active{color:var(--cat-ink,#1b2130);background:#fff}
/* selector de divisa destino (economía · Invertir): TRIGGER custom (botón con bandera) sobre el art */
.get__ccy{display:inline-flex;align-items:center;gap:8px;max-width:94%;font-size:13px;font-weight:700;color:#fff;background:rgba(255,255,255,.20);border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:6px 12px;cursor:pointer}
.get__ccy .fi{width:20px;height:15px;border-radius:3px;flex-shrink:0}
.get__ccy>span:not(.fi){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.get__ccy-chev{width:14px;height:14px;flex-shrink:0;opacity:.9}
/* panel flotante del dropdown de divisa */
.cs-ccymenu{position:fixed;z-index:99999;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg,0 12px 32px rgba(0,0,0,.18));padding:6px;max-height:300px;overflow:auto}
.cs-ccymenu__opt{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;border-radius:var(--r-sm);padding:9px 10px;cursor:pointer;font-size:13.5px;color:var(--ink)}
.cs-ccymenu__opt:hover{background:var(--row-hover,#f1f5f9)}
.cs-ccymenu__opt.is-active{background:color-mix(in srgb,var(--cat,#2563eb) 12%,#fff)}
.cs-ccymenu__opt .fi{width:22px;height:16px;border-radius:3px;flex-shrink:0}
.cs-ccymenu__t{font-weight:700}
.cs-ccymenu__c{margin-left:auto;color:var(--muted);font-size:12px;white-space:nowrap}
.csart--get .cs-ferr{color:#ffd9b8}
.get__sum{background:color-mix(in srgb,var(--cat,#00a6df) 8%,#fff);border:1px solid color-mix(in srgb,var(--cat,#00a6df) 26%,#fff);border-radius:var(--r-sm);padding:14px;margin-top:18px}
.get__sum-l{font-size:12px;color:var(--cat-ink,var(--muted));text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.get__sum-v{font-size:24px;font-weight:800;color:var(--cat-ink,var(--brand-dark));margin-top:4px}
.get__sum-s{font-size:13px;color:var(--muted);margin-top:6px}
.get__art{margin:12px auto 2px;display:flex;justify-content:center}
.get__sum .get__field{margin:10px 0 0;text-align:left}   /* input dentro de la pastilla "Solicitas" (markets) */
/* markets · input hero (ancho auto, centrado, fondo blanco .3 redondeado con borde inferior de categoría) + chips + swap + recibes */
.get__toggle{display:inline-flex;gap:2px;margin-top:10px;padding:3px;background:color-mix(in srgb,var(--cat,#00a6df) 12%,#fff);border-radius:999px}
.get__tg{font-size:12px;font-weight:700;color:var(--cat-ink,var(--brand-dark));background:transparent;border:none;border-radius:999px;padding:4px 16px;cursor:pointer;transition:.15s}
.get__tg.is-active{color:#fff;background:var(--cat,#00a6df)}
.get__hero{display:inline-flex;align-items:baseline;gap:3px;margin-top:10px;padding:4px 14px 3px;background:var(--surface);border:1px solid color-mix(in srgb,var(--cat,#00a6df) 18%,#fff);border-bottom:2px solid var(--cat,#00a6df);border-radius:var(--r-sm)}
.get__hero input{border:none;background:transparent;font-size:30px;font-weight:800;color:var(--cat-ink,var(--brand-dark));text-align:center;padding:0;min-width:22px;width:48px}
.get__hero-u{font-size:19px;font-weight:800;color:var(--cat-ink,var(--brand-dark))}
.get__hero.is-invalid{border-color:var(--negative);border-bottom-color:var(--negative)}
.get__ctrl{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:10px}
.get__chips{display:flex;gap:6px}
.get__chip{font-size:12.5px;font-weight:700;color:var(--cat-ink,var(--brand-dark));background:transparent;border:1px solid color-mix(in srgb,var(--cat,#00a6df) 40%,#fff);border-radius:999px;padding:4px 12px;cursor:pointer;transition:.15s}
.get__chip.is-active{color:#fff;background:var(--cat);border-color:var(--cat)}
.get__swap{width:32px;height:32px;border-radius:50%;background:var(--surface);border:1px solid color-mix(in srgb,var(--cat,#00a6df) 45%,#fff);color:var(--cat);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform .15s}
.get__swap:hover{transform:translateY(-1px);box-shadow:var(--shadow-xs)}
.get__swap svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.get__recibes{display:flex;align-items:baseline;justify-content:center;gap:6px;margin-top:10px}
.get__rl{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.get__rv{font-size:18px;font-weight:800;color:var(--ink)}
.get__rv-u{font-size:13px;font-weight:700;color:var(--cat-ink,var(--brand-dark))}
.get__note{font-size:13px;color:var(--muted);margin-top:12px}
.get__aff{font-size:12px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;margin-top:12px;line-height:1.45;text-align:left}
.get__opt{display:flex;align-items:flex-start;gap:10px;text-align:left;font-size:11.5px;color:var(--muted);line-height:1.45;margin-top:14px;cursor:pointer;border-radius:8px;padding:6px 8px;margin-left:-8px;margin-right:-8px;transition:background .15s,color .15s}
.get__opt .switch{margin-top:1px}
.get__opt a{color:var(--brand);font-weight:600}
.get__opt input[type=checkbox]{margin-top:1px;flex-shrink:0;accent-color:var(--cat,var(--brand))}
.req-mark{color:var(--negative);font-weight:800}
/* consentimiento obligatorio sin marcar al intentar enviar: se resalta en rojo; se limpia al marcarlo */
.get__opt.is-error{background:#fff5f5;color:var(--negative);box-shadow:inset 0 0 0 1.5px #f3a5a5}
.get__opt.is-error a{color:var(--negative)}
.get__opt.is-error input[type=checkbox]{accent-color:var(--negative);outline:2px solid #f3a5a5;outline-offset:1px}
.cs-overlay__actions .btn{width:100%}

/* overlay de REDIRECCIÓN al afiliado: art + hueco de anuncio (multisize) + loader + respaldo */
.redir{text-align:center}
.redir .get__logo{margin-bottom:6px}
.redir__ad{margin:16px auto 4px;width:100%;max-width:320px;min-height:100px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px dashed var(--border);border-radius:var(--r-sm);overflow:hidden}
.redir__ad-lbl{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.redir__ad iframe,.redir__ad img,.redir__ad ins{max-width:100%;display:block}
.redir__loader{display:flex;align-items:center;justify-content:center;gap:10px;margin:16px 0 6px;min-height:22px}
.redir__spin{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--surface-3);border-top-color:var(--cat,var(--brand));animation:csspin .8s linear infinite;flex-shrink:0}
.redir__msg{font-size:14px;font-weight:600;color:var(--ink-2)}
.redir__fallback{font-size:12px;color:var(--muted);margin-top:10px}
.redir__fallback a{color:var(--cat-ink,var(--brand-dark));font-weight:700}
@keyframes csspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.redir__spin{animation-duration:2s}}

/* cartel de error de validación (mínimo de solicitud / precio objetivo fuera de rango) */
.cs-ferr{display:none;align-items:flex-start;gap:9px;border:1.5px solid #f3a5a5;background:#fff5f5;color:var(--negative);border-radius:var(--r-sm);padding:10px 12px;font-size:12.5px;line-height:1.45;text-align:left;font-weight:600;margin-bottom:14px}
.cs-ferr.is-on{display:flex}
.cs-ferr svg{flex:0 0 17px;width:17px;height:17px;margin-top:1px}
.cs-ferr b{font-weight:800}
.get__field.is-invalid,.track-form__inp.is-invalid{border-color:#e06666;box-shadow:0 0 0 3px rgba(224,102,102,.13)}
.btn.is-blocked{opacity:.5;pointer-events:none}

/* items con título + tira gris de métricas; refluye por ancho (sin modo tabla) */
.stock-card{position:relative;display:flex;align-items:center;gap:16px;padding:14px 64px 14px 10px;margin:0 -10px;border-radius:var(--r-sm);color:var(--ink);transition:background .15s}
.stock-card>.mkt-get,.stock-card .stock-card__r1>.mkt-get{position:absolute;right:14px;top:50%;transform:translateY(-50%)}
.stock-card+.stock-card{margin-top:2px}
.stock-card:hover{background:var(--row-hover)}
.stock-card__r1{display:flex;align-items:center;gap:20px;flex:1;min-width:0}
.stock-card__pricebox{display:contents}   /* desktop/tablet: precio y día lado a lado */
.stock-card__id{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.stock-card__name{min-width:0;overflow:hidden}
.stock-card__name strong,.stock-card__name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stock-card__name strong{display:block;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stock-card__name small{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stock-card__stat{min-width:0}
.stock-card__lbl{display:block;font-size:11px;color:var(--subtle);margin-bottom:2px}
.stock-card__stat b{font-size:14px;font-weight:700;font-feature-settings:'tnum';white-space:nowrap}
.stock-card__stat small{display:block;font-size:11px;font-weight:700}
.stock-card__price,.stock-card__chg{text-align:right;flex-shrink:0}
.stock-card__chg small{display:inline;margin-left:6px}            /* día en línea: espacio entre +%‎ y +€ */
.stock-card__range b{font-size:11px}                               /* rango compacto "40,69 ~ 42,89 €" */
.stock-card__r2{display:flex;align-items:center;flex-shrink:0;min-width:380px;background:var(--surface-2);border-radius:var(--r-sm);padding:8px 0}
.stock-card__r2>*{flex:1;padding:0 16px;text-align:center}
.stock-card__r2>*+*{border-left:1px solid var(--border)}
.stock-card__spark svg{display:block;margin:2px auto 0}
@media (max-width:768px){
  .stock-card{flex-direction:column;align-items:stretch;gap:12px;padding:14px 10px}
  .stock-card>.mkt-get,.stock-card .stock-card__r1>.mkt-get{position:static;transform:none}
  .stock-card__r2{min-width:0;padding:10px 0}
  .stock-card__r2>*{padding:0 6px}
}
@media (max-width:560px){
  .stock-card__pricebox{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}
  .stock-card__price .stock-card__lbl,.stock-card__chg .stock-card__lbl{display:none}
  .stock-card__price b{font-size:16px}
}
@media (max-width:480px){.stock-card__name small{font-size:11px}.stock-card__range{display:none}}

/* toolbar de listado (buscar + filtros + orden) — reutilizable en mercados y productos */
.mkt-toolbar{display:flex;align-items:center;gap:var(--gap-sm);flex-wrap:wrap;margin-bottom:12px}
.mkt-toolbar__search{flex:1 1 240px;min-width:200px}
.mkt-toolbar__search .form-input{height:42px}
.mkt-toolbar__sort{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);font-weight:600;white-space:nowrap}
.mkt-toolbar__sort .form-select{width:auto;height:42px;padding-top:0;padding-bottom:0}
/* filtro+orden colapsados en una card popover (generado por CS.ui.filterBar) — genérico mercados/ahorro */
.mkt-filter{position:relative;flex-shrink:0}
.mkt-filter__btn{display:flex;align-items:center;gap:10px;height:42px;padding:0 14px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);font:inherit;font-size:14px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:border-color .15s,box-shadow .15s;white-space:nowrap}
.mkt-filter__btn:hover{border-color:var(--brand)}
.mkt-filter__btn .ico{width:18px;height:18px;flex-shrink:0}
.mkt-filter__btn .chev{width:16px;height:16px;margin-left:2px;transition:transform .2s}
.mkt-filter.is-open .mkt-filter__btn{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
.mkt-filter.is-open .mkt-filter__btn .chev{transform:rotate(180deg)}
.mkt-filter__tag{display:inline-flex;align-items:center;font-size:12px;font-weight:700;color:var(--brand-dark);background:color-mix(in srgb,var(--brand) 12%,#fff);padding:3px 9px;border-radius:999px;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mkt-filter__panel{position:absolute;top:calc(100% + 8px);right:0;width:320px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:16px;z-index:120}
.mkt-filter__panel[hidden]{display:none}
.mkt-filter__grp+.mkt-filter__grp{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-2)}
.mkt-filter__lbl{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--subtle);margin-bottom:10px}
.mkt-filter__opt{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:var(--r-sm);font:inherit;font-size:14px;font-weight:600;color:var(--ink-2);cursor:pointer;border:none;background:transparent;text-align:left}
.mkt-filter__opt:hover{background:var(--surface-2)}
.mkt-filter__opt .dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--border);flex-shrink:0;transition:border-color .15s}
.mkt-filter__opt.is-active{color:var(--ink)}
.mkt-filter__opt.is-active .dot{border-color:var(--brand);background:radial-gradient(circle,var(--brand) 0 4px,#fff 5px)}
.mkt-filter__foot{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:14px;border-top:1px solid var(--border-2)}
.mkt-filter__reset{font:inherit;font-size:13px;font-weight:600;color:var(--muted);background:none;border:none;cursor:pointer}
.mkt-filter__reset:hover{color:var(--ink)}
@media (max-width:640px){
  .mkt-filter{flex:1 1 100%}
  .mkt-filter__btn{width:100%;justify-content:space-between}
  .mkt-filter__panel{left:0;right:0;width:auto;max-width:none}
}
.mkt-list-count{font-size:13px;color:var(--muted);margin-bottom:8px}
.mkt-groupnav{margin-bottom:var(--gap-md)}
/* barra de navegación entre mercados (sección propia bajo el hero) */
.mkt-nav{padding:12px 0}
.mkt-nav .mkt-groupnav{margin-bottom:0}
/* tablet/móvil: la barra de mercados scrollea en horizontal sin barra visible */
@media (max-width:900px){
  .mkt-groupnav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}
  .mkt-groupnav::-webkit-scrollbar{display:none}
  .mkt-groupnav .chip{flex-shrink:0}
}
.card--tight{padding-top:12px;padding-bottom:12px}
/* paginación (centrada bajo el listado) */
.mkt-pager{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:18px}
.mkt-pager__nav{display:flex;gap:4px}
.mkt-pager__btn{min-width:36px;height:36px;padding:0 10px;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);font:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s,background .15s}
.mkt-pager__btn:hover:not(:disabled):not(.is-gap){border-color:var(--brand);color:var(--brand)}
.mkt-pager__btn.is-active{background:var(--brand);border-color:var(--brand);color:#fff}
.mkt-pager__btn:disabled{opacity:.4;cursor:not-allowed}
.mkt-pager__btn.is-gap{border:none;background:transparent;cursor:default;min-width:20px;color:var(--muted)}
@media (max-width:640px){
  .mkt-toolbar__sort{flex:1 1 100%;justify-content:space-between}
  .mkt-toolbar__sort .form-select{flex:1}
}

/* sub-grupos de productos (Ahorro / Financiación) */
.prod-group{margin-top:var(--gap-md)}
.prod-group__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.prod-group__head h3{font-size:16px}

/* promo dual (sin bordes) — color por data-cat */
.promo{padding:28px 32px;border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:flex-start;gap:14px;background:var(--cat-bg,var(--surface-3))}
.promo__text h3{margin-bottom:6px}
.promo__text p{color:var(--ink-2)}
@media (min-width:768px){
  .promo{flex-direction:row;align-items:center;justify-content:space-between;gap:32px}
  .promo .btn{flex-shrink:0}
}

/* marquesina de logos (auto-scroll, pausa y color al pasar sobre un logo, 100px) */
.logo-marquee{position:relative;overflow:hidden;padding:14px 0}
.logo-track{display:flex;gap:60px;align-items:center;width:max-content;will-change:transform}
.logo-track img{height:80px;width:auto;opacity:.7;filter:grayscale(1);transition:opacity .2s,filter .2s;cursor:pointer}
.logo-track img:hover{opacity:1;filter:grayscale(0)}
.logo-pop{position:fixed;z-index:300;background:var(--ink);color:#fff;padding:8px 12px;border-radius:var(--r-sm);box-shadow:var(--shadow-md);pointer-events:none;max-width:220px}
.logo-pop[hidden]{display:none}
.logo-pop__name{font-weight:700;font-size:14px;line-height:1.25}
.logo-pop__country{display:flex;align-items:center;gap:6px;font-size:12px;opacity:.85;margin-top:2px}

/* herramientas por categoría (tarjeta con icono + título + descripción) */
.tool-cat{margin-top:var(--gap-md)}
.tool-card{display:flex;gap:14px;align-items:flex-start;padding:18px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border)}
.tool-card__ico{font-size:22px;width:48px;height:48px;border-radius:13px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tool-card__title{font-weight:700;font-size:15px;margin-bottom:3px;color:var(--ink)}
.tool-card__desc{font-size:13px;color:var(--muted);line-height:1.5}

/* grupo de productos destacados: promo arriba (1 col) + 4 cards (2 col) debajo */
.best-group{margin-top:var(--gap-lg)}
.best-group .promo{margin-bottom:var(--gap-md)}

/* CTA registro con fondo del hero */
.register-cta{background:var(--grad-hero);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:var(--gap-xl) 0}
.register-cta__inner{display:flex;align-items:center;gap:var(--gap-lg);text-align:left}
.register-cta__img{height:300px;width:auto;flex-shrink:0}
.register-cta__body{flex:1;min-width:0}
.register-cta .lead{max-width:600px;margin:12px 0 var(--gap-md)}
.register-cta .flex{justify-content:flex-start;flex-wrap:wrap}
.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--gap-md)}
.chart-card__top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.chart-card__get svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.chart-svg{width:100%;height:auto;display:block;overflow:visible}
.chart-axis{stroke:var(--border);stroke-width:1}
.chart-line{fill:none;stroke:var(--brand);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart-area{fill:url(#csgrad);opacity:.18}
/* chart interactivo: puntos + capa superior (tooltip) */
.chart-wrap{position:relative;touch-action:pan-y}
.chart-dots{position:absolute;inset:0;pointer-events:none}
.chart-dot{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--brand);opacity:.4;transform:translate(-50%,-50%);transition:opacity .15s,transform .15s}
.chart-dot.is-on{opacity:0}
.chart-guide{position:absolute;top:0;bottom:0;width:1px;background:var(--border);transform:translateX(-50%);pointer-events:none;z-index:1}
.chart-marker{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--brand);border:2.5px solid var(--surface);box-shadow:0 0 0 1px var(--brand),var(--shadow-sm);transform:translate(-50%,-50%);pointer-events:none;z-index:3}
.chart-tip{position:absolute;transform:translate(-50%,calc(-100% - 14px));background:var(--ink);color:#fff;padding:6px 10px;border-radius:8px;white-space:nowrap;pointer-events:none;z-index:4;box-shadow:var(--shadow-md);text-align:center}
.chart-tip::after{content:"";position:absolute;left:var(--caret,50%);top:100%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--ink)}
.chart-tip__v{display:block;font-size:13px;font-weight:800;line-height:1.25}
.chart-tip__l{display:block;font-size:11px;color:#cbd5e1}
.chart-guide[hidden],.chart-marker[hidden],.chart-tip[hidden]{display:none}
.donut-legend{display:flex;flex-direction:column;gap:8px}
.donut-legend__item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}
.donut-legend__dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}

/* --- News card --- */
.news-card{display:flex;gap:14px;padding:16px;align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer}
.news-card__body{min-width:0;width:100%}
.news-card .badge{margin-bottom:6px}
.news-card__img{width:84px;height:64px;border-radius:var(--r-xs);object-fit:cover;flex-shrink:0;background:var(--surface-3)}
.news-card__title{font-size:14px;font-weight:700;color:var(--ink);line-height:1.4;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.news-card__meta{font-size:12px;color:var(--muted)}

/* --- States --- */
.is-loading-block{display:grid;gap:12px}
/* reserva el alto pero nace INVISIBLE: solo se revela (gris+shimmer+spinner) si sigue >130ms (carga lenta).
   Con mocks instantáneos el contenido lo reemplaza antes → no se ve gris (sensación instantánea), sin saltos. */
.skeleton{position:relative;overflow:hidden;background:linear-gradient(90deg,var(--surface-3) 25%,var(--border-2) 50%,var(--surface-3) 75%);background-size:200% 100%;border-radius:var(--r-sm);opacity:0;animation:sk 1.4s linear infinite,sk-show 1ms linear 130ms forwards}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes sk-show{to{opacity:1}}
/* spinner tenue centrado (estilo YouTube) — solo en bloques grandes, no en filas */
.skeleton--card::after,.skeleton--list::after,.skeleton--md::after,.skeleton--lg::after,.skeleton--feature::after{
  content:"";position:absolute;top:50%;left:50%;width:26px;height:26px;margin:-13px 0 0 -13px;
  border:2.5px solid rgba(0,0,0,.16);border-top-color:transparent;border-radius:50%;animation:cs-spin .7s linear infinite}
@keyframes cs-spin{to{transform:rotate(360deg)}}
.skeleton--sm{height:128px}.skeleton--feature{height:131px}.skeleton--md{height:190px}.skeleton--lg{height:300px}
.skeleton--card{height:222px}.skeleton--list{height:288px}   /* reservan el alto real: prod-card / lista mejor valoradas (anti-salto CLS) */
.skeleton--row{height:86px}                                  /* fila de listado largo (repetir N≈página para reservar el alto) */
.mkt-kpi.skeleton{height:106px}                              /* KPI relleno con 4 iconos */
.skeleton--line{display:block;height:13px;border-radius:4px;margin-bottom:11px}   /* línea de texto */
.skeleton--line.w60{width:60%}.skeleton--line.w80{width:80%}.skeleton--line.w40{width:40%}
.skeleton--title{display:block;height:18px;width:55%;border-radius:4px;margin:0 0 16px}
.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:var(--gap-lg) var(--gap-md);color:var(--muted);border:1.5px dashed var(--border);border-radius:var(--r-md)}
.empty-state--sm{padding:18px}
.empty-state__icon{color:var(--subtle);font-size:34px;margin:0;line-height:1}
.empty-state__icon svg{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:1.6}
.error-state{text-align:center;padding:var(--gap-lg);color:var(--negative);background:var(--negative-bg);border-radius:var(--r-md)}

/* --- Footer --- */
.site-footer{background:var(--ink);color:rgba(255,255,255,.7);padding:var(--gap-xl) 0 var(--gap-lg)}
.footer-top{display:flex;flex-wrap:wrap;gap:var(--gap-md) var(--gap-xl);align-items:flex-start;justify-content:space-between;padding-bottom:var(--gap-lg);margin-bottom:var(--gap-lg);border-bottom:1px solid rgba(255,255,255,.1)}
.footer-brand{max-width:300px}
.footer-countries{width:calc(100% - 370px)}
.footer-flags{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.footer-flag{display:flex;align-items:center;gap:5px;font-size:11px;color:rgba(255,255,255,.7);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:4px 7px;cursor:pointer;transition:all .15s;font-family:inherit}
.footer-flag:hover{color:#fff;border-color:rgba(255,255,255,.35)}
.footer-flag.is-active{color:#fff;border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.2)}
.footer-flag .fi{width:18px;height:13px;border-radius:2px;flex:none}
.footer-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap-lg);margin-bottom:var(--gap-lg)}
.footer-logo{height:30px;width:auto;margin-bottom:14px;filter:brightness(0) invert(1)}
.footer-desc{font-size:14px;line-height:1.7;max-width:280px}
.footer-col__title{display:block;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.9);margin-bottom:14px;text-decoration:none}
a.footer-col__title:hover{color:#fff}
.footer-col__title--mt{margin-top:18px}
.footer-link{display:block;font-size:14px;margin-bottom:8px;opacity:.7;transition:opacity .15s}
.footer-link:hover{opacity:1}
.footer-link--all{opacity:.95;font-weight:500}
.footer-optin{display:flex;gap:8px;margin-top:14px;max-width:320px}
.footer-optin .form-input{flex:1}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:var(--gap-md);display:flex;align-items:center;justify-content:space-between;font-size:13px;flex-wrap:wrap;gap:12px}
.footer-legal{display:flex;gap:var(--gap-md);flex-wrap:wrap}
.footer-legal a{opacity:.6} .footer-legal a:hover{opacity:1}

/* --- Forms --- */
.form-group{display:flex;flex-direction:column;gap:6px}
.form-label{font-size:13px;font-weight:600;color:var(--ink-2)}
.form-input,.form-select,.form-textarea{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:15px;color:var(--ink);background:var(--surface);transition:border-color .15s,box-shadow .15s}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(0,166,223,.12)}

/* --- Utilities --- */
.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--muted)}
.text-positive{color:var(--positive)}.text-negative{color:var(--negative)}
.eco-delta{font-weight:700;font-variant-numeric:tabular-nums}   /* color lo pone text-positive/negative; "—" hereda */
/* economía: icono KPI rectangular (bandera entera, sin recorte) + banderas en filas/destacado */
.kpi-coin--rect{width:38px;height:26px;border-radius:5px;background:transparent}
.kpi-coin--rect .fi{width:38px;height:26px;border-radius:5px}
.sav-trow__logo .fi{width:28px;height:20px;border-radius:3px}
.sav-hero__logo--flag{background:transparent;border:none}
.sav-hero__logo--flag .fi{width:100%;height:auto;aspect-ratio:4/3;border-radius:5px}
.sav-hero__stat--ipc{padding:0 4px}
/* bandera dentro del cuadro de logo de prod-card (Explora economía) */
.prod-card__logo--flag{background:transparent;border:none}
.prod-card__logo--flag .fi{width:34px;height:25px;border-radius:4px}
/* ===== calculadoras de economía (módulos propios: deval por IPC · combatir inflación) ===== */
.ec-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:6px}
.ec-card{border:1px solid var(--border);border-radius:var(--r-sm);padding:13px;position:relative;background:var(--surface)}
.ec-card.is-win,.ec-card.is-mine{border-color:var(--cat);box-shadow:0 0 0 2px color-mix(in srgb,var(--cat) 30%,#fff)}
.ec-rib{position:absolute;top:-9px;left:10px;background:var(--cat);color:#fff;font-size:9px;font-weight:800;border-radius:999px;padding:2px 8px;text-transform:uppercase;letter-spacing:.03em}
.ec-rib--mine{background:var(--cat-ink)}
.ec-nm{font-weight:800;font-size:13px;margin-bottom:6px;display:flex;align-items:center;gap:7px}
.ec-nm .fi{width:22px;height:16px;border-radius:3px;flex:none}
.ec-big{font-size:19px;font-weight:800}
.ec-big.text-positive{color:var(--positive)}.ec-big.text-negative{color:var(--negative)}
.ec-calc{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.5}.ec-calc b{color:var(--ink);font-weight:700}
.ec-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.ec-badge{font-size:11px;font-weight:600;border-radius:6px;padding:3px 7px;background:var(--surface-3);color:var(--ink-2)}
.ec-badge--pos{background:color-mix(in srgb,var(--positive) 15%,#fff);color:var(--positive)}
.ec-badge--neg{background:color-mix(in srgb,var(--negative) 15%,#fff);color:var(--negative)}
.ec-get{width:30px;height:30px;border-radius:9px;background:var(--brand-grad);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.ec-get svg{width:16px;height:16px}
.ec-card__get{position:absolute;top:10px;right:10px}
.ec-cta{display:flex;gap:8px;align-items:center;margin-top:10px}
.ec-star{flex:none;color:#c9ced8;cursor:pointer;font-size:16px;line-height:1;display:inline-flex}
.ec-star svg{width:18px;height:18px}
.ec-solic{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--brand-grad);color:#fff;border-radius:9px;padding:7px;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none}
.ec-solic svg{width:15px;height:15px}
.ec-rest-lbl{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:16px 0 6px}
.ec-bar{display:flex;align-items:center;gap:14px;margin-top:8px}
.ec-bar__nm{flex:none;width:180px;font-size:13px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:7px}
.ec-bar__nm .fi{width:22px;height:16px;border-radius:3px;flex:none}
.ec-bar__t{flex:1;height:8px;border-radius:4px;background:var(--surface-3);overflow:hidden}
.ec-bar__f{display:block;height:8px;border-radius:4px}
.ec-bar__info{flex:none;font-size:12.5px;color:var(--muted);white-space:nowrap}.ec-bar__info b{color:var(--ink);font-weight:700}
.ec-bar__net{font-size:14px;font-weight:800;margin-left:8px}
.ec-bar__act{flex:none;display:flex;align-items:center;gap:8px}
.ec-bank{width:24px;height:24px;border-radius:5px;object-fit:contain;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:15px;background:var(--surface-2)}
.ec-card{text-decoration:none;color:inherit;transition:box-shadow .2s,transform .2s}
.ec-card:hover{box-shadow:0 8px 20px rgba(20,30,60,.10);transform:translateY(-2px)}
.ec-card__star{position:absolute;top:8px;right:8px;z-index:1}
.ec-bar{cursor:pointer;text-decoration:none;color:inherit;border-radius:var(--r-sm);padding:6px}
.ec-bar:hover{background:var(--row-hover)}
.ec-bar__net.text-positive{color:var(--positive)}.ec-bar__net.text-negative{color:var(--negative)}
@media (max-width:900px){
  .ec-cards{grid-template-columns:repeat(2,1fr)}
  .ec-bar{flex-wrap:wrap;gap:8px 14px}
  .ec-bar__nm{flex:1 1 auto;width:auto}
  .ec-bar__act{order:2}
  .ec-bar__t{order:3;flex-basis:100%}
  .ec-bar__info{order:4;flex-basis:100%;white-space:normal}
}
@media (max-width:640px){.ec-cards{grid-template-columns:1fr}}
/* ficha de economía: fila título + estrella y CTA del hero */
.det-head__row{display:flex;align-items:center;gap:12px}
.det-head__row .fav-star{position:static;width:30px;height:30px}
.det-head__cta{margin-top:16px}
/* KPI economía: a 4 columnas (desktop) la variación cae a su propia línea; en 2/1 col va inline con separador */
.mkt-kpi__label .eco-kpi-d{display:block;margin-top:3px}
@media (max-width:1180px){
  .mkt-kpi__label .eco-kpi-d{display:inline}
  .mkt-kpi__label .eco-kpi-d::before{content:" · "}
}
.hidden{display:none!important}
.mt-md{margin-top:var(--gap-md)}.mb-md{margin-bottom:var(--gap-md)}
.mt-lg{margin-top:var(--gap-lg)}.mb-lg{margin-bottom:var(--gap-lg)}
.lead-intro{max-width:none;margin-bottom:var(--gap-md)}

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media (max-width:1024px){
  .grid--4{grid-template-columns:repeat(2,1fr)}
  .grid--cats{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:repeat(3,1fr)}
}
/* Menú: hamburguesa por debajo de 920px (la nav completa solo en ≥920) */
@media (max-width:920px){
  .main-nav{display:none;flex-direction:column;align-items:stretch;position:absolute;top:var(--header-h);left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border);padding:12px;box-shadow:var(--shadow-md);gap:4px}
  .main-nav.is-open{display:flex}
  .nav-link{padding:12px 14px}
  .nav-toggle{display:flex}
  .btn-login{display:none}
  #cs-country-code{display:none}
  .main-nav .nav-mobile-only{display:flex}
  /* Mega-menú en móvil = ACORDEÓN dentro del panel hamburguesa (el hover de desktop no aplica) */
  .nav-item{display:flex;flex-wrap:wrap;align-items:center;position:static}
  .nav-item>.nav-link{flex:1}
  .nav-caret{display:inline-flex;align-items:center;font-size:14px;padding:10px 12px}
  .mega--right{left:auto;right:auto}
  .nav-item:hover>.mega,.nav-item:focus-within>.mega{display:none}
  .mega{position:static;flex-basis:100%;display:none;margin:0;padding:2px 0 10px 22px;border:0;border-radius:0;box-shadow:none;background:none;z-index:auto}
  .mega::before{display:none}
  .nav-item.is-expanded>.mega{display:block}
  .nav-item.is-expanded>.nav-caret{transform:rotate(180deg)}
  .mega__inner{flex-direction:column;gap:12px}
  .mega__col{min-width:0}
  .mega__feat{width:auto}
  .mega__link{padding:9px 8px}
  /* CTA registro: imagen arriba y centrada en tablet/móvil */
  .register-cta__inner{flex-direction:column;text-align:center}
  .register-cta__img{height:250px}
  .register-cta .lead{margin:12px auto var(--gap-md)}
  .register-cta .flex{justify-content:center}
}
@media (max-width:768px){
  :root{--gap-xl:44px;--gap-lg:30px}
  .container{padding:0 16px}
  .grid--2,.grid--3,.grid--4{grid-template-columns:1fr}
  .hero{padding:40px 0}
  .section-head{flex-direction:column;align-items:flex-start}
  .footer-grid{grid-template-columns:repeat(2,1fr);gap:var(--gap-md) var(--gap-lg)}
  .footer-top{flex-direction:column;flex-wrap:nowrap;align-items:stretch}
  .footer-countries{width:auto}
  .footer-desc{max-width:none}
  .footer-flags{grid-template-columns:repeat(auto-fill,minmax(52px,1fr))}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:14px}
}
@media (max-width:640px){
  .grid--cats,.grid--prod{grid-template-columns:1fr}
}
@media (max-width:480px){
  .footer-grid{grid-template-columns:repeat(2,1fr)}
  .hero__kpis{gap:var(--gap-md)}
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .ticker__track{animation:none}
}

/* =====================================================
   MERCADOS · overview (page-hero inner, KPIs, segmented,
   fchart, heatmap, feature row). Color de categoría por [data-cat].
   ===================================================== */
.page-hero__inner{display:flex;align-items:center;gap:var(--gap-lg)}
.page-hero__content{flex:1 1 0;min-width:0;position:relative;z-index:1}   /* la imagen nunca por encima */
.page-hero__media{flex:0 0 auto;width:440px;max-width:42%}
.page-hero__media img{width:100%;height:auto;display:block}
.page-hero .lead{max-width:680px;margin:12px 0 var(--gap-md)}
.hero__eyebrow .fi{width:18px;height:13px;border-radius:2px;vertical-align:-1px;margin:0 2px}

/* tira de KPIs */
.mkt-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap-sm)}
.mkt-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;display:flex;flex-direction:column;justify-content:center;text-decoration:none}
.mkt-kpi__top{display:flex;align-items:center;gap:10px}
.mkt-kpi__top .mkt-kpi__label{margin-top:0}
.mkt-kpi__val{font-size:22px;font-weight:800;color:var(--ink);line-height:1.1}
.mkt-kpi__val.text-positive{color:var(--positive)}
.mkt-kpi__val.text-negative{color:var(--negative)}
.mkt-kpi__label{font-size:12px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.04em}
.kpi-coin{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-3);overflow:hidden}
.kpi-coin img{width:100%;height:100%;object-fit:contain}
.kpi-coin .fi{width:32px;height:24px;border-radius:4px}
.kpi-icos{display:grid;grid-template-columns:repeat(4,max-content);gap:6px;margin-top:10px}
.kpi-ico{width:28px;height:28px;border-radius:8px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);overflow:hidden;font-size:15px;transition:transform .15s,box-shadow .15s,border-color .15s}
.kpi-ico:hover{transform:translateY(-2px);box-shadow:var(--shadow-xs)}
a.kpi-ico,a.mkt-kpi{cursor:pointer}   /* solo las variantes clicables (markets); ahorro = span/div decorativos sin pointer */
.kpi-ico img{width:100%;height:100%;object-fit:contain;padding:3px}
.kpi-ico .fi{width:22px;height:16px;border-radius:3px}
.kpi-rank{margin-top:8px;font-size:13px;line-height:1.35}
.kpi-rank b{text-transform:uppercase;letter-spacing:.03em;font-weight:800;font-size:12px}
.kpi-rank .text-positive,.kpi-rank .text-negative{font-weight:800}
.kpi-rank__name{display:block;color:var(--ink);font-weight:500}

/* segmented control (periodo 7/15/30) */
.seg{display:inline-flex;gap:2px;background:var(--surface-3);border-radius:999px;padding:3px;margin:12px 0}
.seg__btn{border:none;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;
  padding:5px 14px;border-radius:999px;cursor:pointer;transition:background .15s,color .15s}
.seg__btn:hover{color:var(--ink)}
.seg__btn.is-active{background:var(--surface);color:var(--cat,var(--brand));box-shadow:var(--shadow-xs)}

/* tarjeta destacada con gráfica */
.fchart{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:18px;box-shadow:var(--shadow-xs)}
.fchart__head{display:flex;align-items:center;gap:12px;color:var(--ink)}
.fchart__name{flex:1;min-width:0}
.fchart__name strong{display:block;font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fchart__name small{color:var(--muted);font-size:12px}
.fchart__price{text-align:right;white-space:nowrap}
.fchart__price b{display:block;font-size:16px}
.fchart__chart{min-height:200px;margin-top:4px}

/* mapa de calor */
/* heat de mercado/grupo: rejilla auto-fill (muchos instrumentos) */
.mkt-heat{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
/* tarjeta de variación (componente único: mercado, grupo y ficha) */
.daystrip{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}
.daycard{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 10px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;min-height:128px;color:var(--ink)}
/* .daycard--link hereda el lift unificado de arriba */
.daycard.now{border-color:var(--brand);box-shadow:0 0 0 2px rgba(0,166,223,.18)}
.daycard__ico{display:flex;align-items:center;justify-content:center;height:36px}
.daycard__ico .mkt-ico{width:36px;height:36px}
.daycard__ico .mkt-ico img{width:28px;height:28px;border-radius:6px}
.daycard__name{font-size:12px;font-weight:600;color:var(--ink);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.daycard__pct{font-size:18px;font-weight:800;line-height:1.05;white-space:nowrap}
.daycard__val{font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.daycard__track{width:100%;height:6px;border-radius:999px;background:var(--surface-3);overflow:hidden;margin-top:auto}
.daycard__fill{height:100%;border-radius:999px}
.daystrip .daycard{min-height:96px}
@media (max-width:900px){.daystrip{grid-template-columns:repeat(4,1fr)}}
@media (max-width:480px){.daystrip{grid-template-columns:repeat(2,1fr)}}

/* fila destacada (índice del país) */
/* caja tintada por categoría (coherente con .sav-hero); color vía data-cat en el propio <a> */
.mkt-feature{display:flex;align-items:center;gap:16px;color:var(--ink);
  background:linear-gradient(120deg,var(--cat-bg,var(--surface-2)),var(--surface));
  border:1px solid color-mix(in srgb,var(--cat,var(--border)) 28%,#fff)}
.mkt-feature__flag .fi{width:40px;height:30px;border-radius:5px;background-size:cover;box-shadow:0 0 0 1px var(--border)}
.mkt-feature__body{flex:1;min-width:0}
.mkt-feature__name{font-size:17px;font-weight:700}
.mkt-feature__meta{font-size:13px;color:var(--muted)}
.mkt-feature__spark{flex-shrink:0}
.mkt-feature__price{text-align:right;white-space:nowrap}
.mkt-feature__price b{display:block;font-size:18px}

@media (max-width:1180px){
  .mkt-kpis{grid-template-columns:repeat(2,1fr)}     /* <1180: 2 col */
}
@media (max-width:880px){
  .page-hero__media{display:none}
}
@media (max-width:560px){
  .mkt-feature__spark{display:none}
}
@media (max-width:480px){
  .mkt-kpis{grid-template-columns:1fr}               /* móvil: 1 col */
}

/* ===== Marquesina por categoría (banda slim 40px, auto-montada en todas las vistas) ===== */
.cmq{display:flex;align-items:center;height:40px;background:var(--ink);overflow:hidden;border-bottom:1px solid rgba(255,255,255,.08)}
/* reserva el alto de la marquesina (40px) en el primer paint, ANTES de que el JS inserte la banda;
   al insertarse `.cmq`, :has la detecta y quita la reserva (la banda ocupa ese hueco) → sin salto */
body:not(:has(.cmq)) main{margin-top:40px}
.cmq-mask{flex:1;min-width:0;height:100%;position:relative;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent)}
.cmq-track{display:flex;align-items:center;height:100%;gap:26px;width:max-content;will-change:transform;padding-left:18px}
.cmq-item{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:#fff;font-size:13px;white-space:nowrap}
.cmq-item:hover{opacity:.85}
.cmq-ico{width:20px;height:20px;border-radius:5px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.12);font-size:11px;font-weight:800;color:rgba(255,255,255,.85);overflow:hidden}
.cmq-ico img{width:100%;height:100%;object-fit:contain;padding:2px;background:#fff;border-radius:5px}
.cmq-ico .fi{width:16px;height:12px;border-radius:2px}
.cmq-item b{font-weight:700}
.cmq-sub{color:rgba(255,255,255,.5)}
.cmq-val{font-weight:800}
.cmq-val.accent{color:#34d399}   /* TAE/valor de producto en la marquesina: SIEMPRE verde (positivo), nunca color de categoría */
.cmq-up{color:#34d399;font-weight:700}.cmq-down{color:#fb7185;font-weight:700}

/* =====================================================
   TOOLS · componente calculadora (.calc): formulario + resultado
   ===================================================== */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-lg);align-items:start}
.calc__panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--gap-lg)}
.calc__panel-h{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:14px}
.calc__field{margin-bottom:15px}
.calc__field:last-child{margin-bottom:0}
.calc__field label{display:block;font-size:13px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
.calc__field .form-input,.calc__field .form-select{width:100%}
.calc__ig{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;background:var(--surface)}
.calc__ig .form-input,.calc__ig .form-select{border:none;border-radius:0}
.calc__ig .form-select{width:auto;flex:0 0 auto;background:var(--surface-2);border-left:1px solid var(--border)}
.calc__ig-unit{display:flex;align-items:center;padding:0 13px;background:var(--surface-2);font-size:14px;font-weight:700;color:var(--muted);white-space:nowrap}
.calc__row{display:flex;gap:12px}.calc__row>*{flex:1;margin-bottom:0}
.calc__seg-lbl{font-size:13px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
.calc__out{display:flex;flex-direction:column;gap:12px}
.calc__big{background:var(--cat-bg,var(--surface-2));border:1px solid color-mix(in srgb,var(--cat,#06b6d4) 22%,#fff);border-radius:var(--r-md);padding:18px 20px}
.calc__big-lbl{font-size:13px;color:var(--cat-ink,var(--muted));font-weight:700}
.calc__big-val{font-size:clamp(26px,4vw,34px);font-weight:800;color:var(--cat-ink,var(--ink));line-height:1.1;margin-top:4px}
.calc__big-sub{font-size:13px;color:var(--muted);margin-top:6px}
.calc__stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.calc__stat{background:var(--surface-2);border-radius:var(--r-md);padding:13px 15px}
.calc__stat-lbl{font-size:12px;color:var(--muted)}
.calc__stat-val{font-size:18px;font-weight:800;margin-top:2px;color:var(--ink)}
.calc__note{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.6}
.calc__err{display:none;font-size:13px;color:var(--negative);font-weight:600;margin-top:8px}
.calc__err.is-on{display:block}
.calc-amort{margin-top:var(--gap-md)}
.calc-amort table{width:100%;border-collapse:collapse;font-size:13px}
.calc-amort th,.calc-amort td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--border)}
.calc-amort th:first-child,.calc-amort td:first-child{text-align:left}
.calc-amort th{color:var(--muted);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em}
@media (max-width:760px){.calc{grid-template-columns:1fr}}

/* =====================================================
   NEWS · badge enlazable + CTA en card estándar, card grande tipo blog, hero slider, grid
   ===================================================== */
.news-card__top{display:none}  /* oculto de momento (descuadraba la card); reubicar más adelante */
.news-card__top .fav-star{position:static}
.badge--news{cursor:pointer;text-decoration:none}
.news-card__cta{align-self:flex-start;margin-top:8px}
.news-card__cta-ico{font-size:14px}
/* grid del índice */
.news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:18px}
/* tarjeta grande tipo blog */
.news-big{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;cursor:pointer}
.news-big__img{position:relative;height:172px;background-size:cover;background-position:center;background-color:var(--surface-3)}
.news-big__img .fav-star{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.92);border-radius:50%}
.news-big__img .news-cta{position:absolute;top:10px;right:10px}
.news-big__body{padding:16px 18px;display:flex;flex-direction:column;gap:9px;flex:1}
.news-big__body .badge{align-self:flex-start}
.news-big__title{font-size:17px;font-weight:800;line-height:1.3;color:var(--ink)}
.news-big__sum{font-size:14px;color:var(--muted);line-height:1.55;flex:1}
.news-big__meta{font-size:12px;color:var(--muted);margin-top:4px}
/* CTA icono de noticia (categoría) — gradiente de marca, blanco */
.news-cta{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:10px;background:var(--brand-grad,linear-gradient(135deg,#1a73e8,#00a6df));color:#fff;text-decoration:none;border:none;cursor:pointer;transition:transform .15s,box-shadow .15s}
.news-cta:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.news-cta svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8}
/* hero slider */
.nslider{position:relative;height:clamp(260px,38vw,360px);border-radius:var(--r-lg);overflow:hidden;background:var(--surface-3)}
.nslide{position:absolute;inset:0;opacity:0;transition:opacity .5s ease;background-size:cover;background-position:center;display:flex;align-items:flex-end;pointer-events:none}
.nslide.is-on{opacity:1;pointer-events:auto}
.nslide__ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 35%,rgba(0,0,0,.78) 100%)}
.nslide__c{position:relative;padding:26px 30px;color:#fff;max-width:760px;z-index:1}
.nslide__c .badge{margin-bottom:10px}
.nslide__t{font-size:clamp(20px,3vw,28px);font-weight:800;line-height:1.22;color:#fff;margin-bottom:8px}
.nslide__m{font-size:13px;color:rgba(255,255,255,.85);margin-bottom:14px}
.nslide__fav{position:absolute;top:16px;right:16px;z-index:2}
.nslide__fav .fav-star{background:rgba(0,0,0,.32);border-radius:50%}
.nslider__nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;background:rgba(0,0,0,.32);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;font-size:22px;line-height:1}
.nslider__nav:hover{background:rgba(0,0,0,.55)}
.nslider__prev{left:14px}.nslider__next{right:14px}
.nslider__dots{position:absolute;bottom:16px;right:18px;display:flex;gap:7px;z-index:2}
.nslider__dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);border:none;cursor:pointer;padding:0;transition:.2s}
.nslider__dot.is-on{background:#fff;width:20px;border-radius:4px}
@media (max-width:640px){.nslide__c{padding:18px 20px}}

/* NEWS · 2 KPIs en el hero = las 2 últimas noticias resumidas (2 col desktop) */
.news-hero-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;max-width:680px}
.nhk{display:flex;flex-direction:column;background:color-mix(in srgb,var(--surface) 78%,transparent);border:1px solid var(--border);border-radius:var(--r-md);padding:13px 15px;text-decoration:none;transition:.15s}
.nhk:hover{background:var(--surface);box-shadow:var(--shadow-sm)}
.nhk__top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.nhk__lbl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--cat-ink,var(--brand-dark))}
.nhk__date{font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap}
.nhk .badge{align-self:flex-start;margin-top:9px}
.nhk__t{font-size:14px;font-weight:700;color:var(--ink);line-height:1.35;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nhk__m{font-size:12px;color:var(--muted);line-height:1.45;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:640px){.news-hero-kpis{grid-template-columns:1fr}}

/* NEWS · ficha de artículo */
.article{max-width:760px;margin:0 auto}
.article__title{margin:12px 0 0}
.article__meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:12px}
.article__meta .fav-star{position:static}
.article__cover{position:relative;width:100%;aspect-ratio:16/7;border-radius:var(--r-lg);margin:20px 0;background:var(--surface-3) center/cover no-repeat}
.article__cover .fav-star{position:absolute;top:12px;left:12px;background:rgba(255,255,255,.92);border-radius:50%}
.article__cover .news-cta{position:absolute;top:12px;right:12px}
.det-promo__logo--svg{color:var(--cat-ink,var(--brand-dark))}
.det-promo__logo--svg svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.7}
.article__lead{font-size:18px;line-height:1.6;font-weight:500;color:var(--ink);margin:0 0 16px}
.article__body p{font-size:16px;line-height:1.75;margin-bottom:14px;color:var(--ink-2)}
.article__src{font-size:13px;color:var(--muted);font-style:italic;margin-top:6px}
.article__srclink{margin-top:8px}
.article__srclink a{color:var(--brand);font-weight:700;text-decoration:none}
.article__srclink a:hover{text-decoration:underline}

/* NEWS · ficha: hero pequeño + layout 2/3 artículo + 1/3 menú de noticias */
.page-hero--sm{padding:20px 0}
.page-hero--sm .lead{margin:8px 0 0;max-width:620px}
.news-detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--gap-lg);align-items:start}
.news-detail-layout .article{max-width:none;margin:0}
.news-aside{position:sticky;top:84px}
.news-aside__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.news-aside__title{font-weight:800;font-size:15px;color:var(--ink)}
.news-aside__bar{padding:0;background:none;border:none;margin:0;min-height:0}
.news-aside__bar .mkt-filter{margin:0}
.news-aside__list{display:flex;flex-direction:column;gap:3px;overflow:hidden}
.news-aside__all{display:block;width:100%;text-align:center;margin-top:12px}
.naside-item{display:block;padding:11px 12px;border-radius:var(--r-sm);text-decoration:none;border:1px solid transparent;transition:.15s}
.naside-item:hover{background:var(--row-hover)}
.naside-item.is-active{background:var(--cat-bg);border-color:color-mix(in srgb,var(--cat,#ec4899) 30%,#fff)}
.naside-item__t{display:block;font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.35;margin:6px 0 3px}
.naside-item__m{font-size:11.5px;color:var(--muted)}
@media (max-width:900px){.news-detail-layout{grid-template-columns:1fr}.news-aside{position:static}.news-aside__list{max-height:none}}

/* AYUDA · buscador en hero + estado vacío */
.help-hero{max-width:680px}
.help-search{position:relative;margin-top:18px;max-width:560px}
.help-search__ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--muted);pointer-events:none}
.help-search .form-input{width:100%;height:52px;padding-left:44px;font-size:16px;border-radius:var(--r-md)}
.help-empty{text-align:center;padding:40px 20px;border:1px dashed var(--border);border-radius:var(--r-lg);background:var(--surface)}
.help-empty__ico{font-size:34px}
.help-empty__t{font-size:18px;font-weight:800;color:var(--ink);margin-top:8px}
.help-empty__s{font-size:14px;color:var(--muted);margin:6px 0 16px;max-width:420px;margin-left:auto;margin-right:auto}

/* ESTÁTICAS · documento legal (.doc) + contacto */
.doc{margin:0 auto}
.doc-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px;align-items:start}
.doc-toc{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 110px);overflow:auto}
.doc-toc__title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:12px}
.doc-toc__nav{display:flex;flex-direction:column;border-left:2px solid var(--border)}
.doc-toc__link{font-size:12.5px;line-height:1.35;color:var(--muted);text-decoration:none;padding:7px 0 7px 14px;margin-left:-2px;border-left:2px solid transparent;transition:color .15s,border-color .15s}
.doc-toc__link:hover{color:var(--ink)}
.doc-toc__link.is-active{color:var(--brand-dark,#1558b0);border-left-color:var(--brand-dark,#1558b0);font-weight:600}
.doc-body{max-width:760px;min-width:0}
.doc__updated{font-size:13px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 14px;margin-bottom:22px}
.doc-body>h2{font-size:19px;font-weight:700;color:var(--ink);margin:38px 0 14px;padding-top:22px;border-top:1px solid var(--border);scroll-margin-top:90px}
.doc-body>h2:first-of-type,.doc-body>.doc__updated+h2{border-top:0;padding-top:0;margin-top:6px}
.doc h3{font-size:16px;font-weight:700;margin:20px 0 6px;color:var(--ink)}
.doc p,.doc li{font-size:15px;line-height:1.8;color:var(--ink-2)}
.doc p{margin-bottom:14px}
.doc b,.doc strong{color:var(--ink);font-weight:700}
.doc ul{margin:0 0 16px 22px;list-style:disc}
.doc li{margin-bottom:7px}
.doc a{color:var(--brand-dark,#1558b0);text-decoration:underline;overflow-wrap:anywhere}
.doc table{width:100%;border-collapse:collapse;margin:6px 0 20px;font-size:13.5px}
.doc th,.doc td{border:1px solid var(--border);padding:9px 11px;text-align:left;vertical-align:top;line-height:1.6}
.doc th{background:var(--surface);font-weight:600;color:var(--ink)}
.doc-sk__t{height:12px;width:55%;background:var(--border);border-radius:4px;margin-bottom:16px}
.doc-sk__bar{display:block;height:11px;background:var(--border);border-radius:4px;margin-bottom:11px;opacity:.55}
.doc-body.doc-sk .doc-sk__bar:nth-child(2n){opacity:.4}
@media (max-width:900px){
  .doc-layout{grid-template-columns:1fr;gap:20px}
  .doc-toc{position:static;max-height:none;overflow:visible;border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;background:var(--surface)}
  .doc-toc__nav{border-left:0;display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}
  .doc-toc__link{padding:5px 0;border-left:0;margin-left:0}
  .doc-toc__link.is-active{border-left:0}
  .doc-body{max-width:none}
}
@media (max-width:560px){ .doc-toc__nav{grid-template-columns:1fr} }
.contact-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--gap-lg);align-items:start}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr}}
.contact-form{display:flex;flex-direction:column;gap:14px}
.contact-form label{display:block;font-size:13px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
.contact-form .form-input,.contact-form .form-select{width:100%}
textarea.form-input{height:auto;min-height:130px;padding:11px 13px;resize:vertical;line-height:1.6}
.contact-aside{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px 22px}
.contact-aside h3{font-size:15px;margin:0 0 4px}
.contact-aside p{font-size:14px;color:var(--muted);margin:0 0 16px;line-height:1.6}
.contact-aside__item{display:flex;gap:11px;align-items:flex-start;margin-bottom:14px}
.contact-aside__item svg{width:20px;height:20px;flex-shrink:0;color:var(--cat-ink,var(--brand-dark));fill:none;stroke:currentColor;stroke-width:1.8}
.contact-aside__item b{display:block;font-size:14px;color:var(--ink)}
.contact-aside__item span{font-size:13px;color:var(--muted)}
.contact-opt{display:flex;gap:9px;align-items:flex-start;font-size:12px;color:var(--muted);line-height:1.5}

/* USUARIO · auth (login/registro/otp/recuperar) */
.auth{max-width:444px;margin:0 auto}
.auth__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:30px 28px}
.auth__title{font-size:22px;font-weight:800;text-align:center;margin-bottom:4px}
.auth__sub{font-size:14px;color:var(--muted);text-align:center;margin:0 auto 20px;max-width:340px;line-height:1.5}
.auth-form{display:flex;flex-direction:column;gap:14px}
.auth-form label{display:block;font-size:13px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
.auth-form .form-input{width:100%}
.auth__row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}
.auth__row a{color:var(--brand-dark,#1558b0);font-weight:700}
.auth__opt{display:flex;gap:9px;align-items:flex-start;font-size:12px;color:var(--muted);line-height:1.5}
.auth__opt a{color:var(--brand-dark,#1558b0)}
.auth__alt{text-align:center;font-size:14px;color:var(--muted);margin-top:18px}
.auth__alt a{color:var(--brand-dark,#1558b0);font-weight:700}
.auth__divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:18px 0}
.auth__divider::before,.auth__divider::after{content:"";flex:1;height:1px;background:var(--border)}
.otp{display:flex;gap:10px;justify-content:center;margin:8px 0}
.otp input{width:48px;height:56px;text-align:center;font-size:22px;font-weight:800;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}
.otp input:focus{outline:none;border-color:var(--brand,#1a73e8);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand,#1a73e8) 18%,#fff)}

/* USUARIO · panel */
.panel{display:grid;grid-template-columns:248px minmax(0,1fr);gap:var(--gap-lg);align-items:start}
@media (max-width:860px){.panel{grid-template-columns:1fr}.panel-nav{position:static}}
.panel-nav{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:10px;position:sticky;top:84px}
.panel-nav__user{display:flex;align-items:center;gap:11px;padding:8px 8px 14px;border-bottom:1px solid var(--border);margin-bottom:8px}
.panel-nav__avatar{width:42px;height:42px;border-radius:50%;background:var(--cat-bg,#e7f0ff);color:var(--cat-ink,#1d4ed8);display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}
.panel-nav__name{font-size:14px;font-weight:700;color:var(--ink)}
.panel-nav__mail{font-size:12px;color:var(--muted)}
.panel-nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);font-size:14px;font-weight:600;color:var(--ink-2);text-decoration:none}
.panel-nav a:hover{background:var(--row-hover,#f1f5f9)}
.panel-nav a.is-active{background:var(--cat-bg,#eef);color:var(--cat-ink,#1d4ed8)}
.panel-nav a svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;flex-shrink:0}
.panel-nav__sep{height:1px;background:var(--border);margin:8px 4px}
.panel-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:var(--gap-md)}
.panel-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:16px 18px}
.panel-stat__v{font-size:26px;font-weight:800;color:var(--ink);line-height:1}
.panel-stat__l{font-size:13px;color:var(--muted);margin-top:4px}

/* ===== Blindaje anti-desborde de nombres largos (auditoría 2026-07-03, idiomas de/fi) =====
   Nombres de banco/producto/indicador largos NO deben romper cards ni listas: ellipsis en
   1 línea (o clamp) + min-width:0 en los flex hijos. Detectado en móvil 375px. */
.sav-trow__txt>b,.sav-trow__txt>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.prod-card__stats{flex-wrap:wrap;row-gap:8px}
.prod-card__tags .ptag{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.sav-hero__main>*{min-width:0}
.sav-hero__sub,.sav-hero__main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ec-nm{min-width:0}
.ec-nm,.ec-bar__nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ec-bar__info{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mkt-kpi__label{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.naside-item,.nhk{min-width:0}
.naside-item b,.nhk b{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.proj-bar .ec-bar__nm,.proj-bar__nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

/* ===== Ad Network: huecos publicitarios + banner de consentimiento ===== */
/* Por defecto NO ocupan nada: solo se muestran (y reservan altura) cuando llevan un tag cargado
   (.is-live) o en modo depuración del panel (.is-debug). Sin esto, cero espacio y cero min-height. */
.ad-slot{display:none}
.ad-slot.is-live,.ad-slot.is-debug{display:flex;align-items:center;justify-content:center;position:relative;margin:18px auto;max-width:100%;overflow:hidden}
.ad-slot.is-live>*,.ad-slot.is-debug>*{max-width:100%}
.ad-slot.is-live.ad-slot--sidebar,.ad-slot.is-debug.ad-slot--sidebar{margin:0 0 18px}
.ad-slot.is-live.ad-slot--footer,.ad-slot.is-debug.ad-slot--footer{margin:24px auto 8px}
/* etiqueta "Publicidad" sobre el hueco vivo (transparencia al usuario) */
.ad-slot.is-live::before{content:"Publicidad";position:absolute;transform:translateY(-16px);font-size:10px;color:var(--muted);letter-spacing:.4px;text-transform:uppercase}
/* modo debug: caja rayada con etiqueta del slot y su tamaño */
.ad-slot.is-debug{background:repeating-linear-gradient(45deg,var(--surface),var(--surface) 10px,var(--bg,#f7f8fa) 10px,var(--bg,#f7f8fa) 20px);border:1px dashed var(--brand,#888);border-radius:var(--r-sm);color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.03em}

.cs-consent{position:fixed;left:0;right:0;bottom:0;z-index:1200;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -4px 24px rgba(0,0,0,.12);padding:14px 16px;animation:csConsentIn .3s ease}
@keyframes csConsentIn{from{transform:translateY(100%)}to{transform:translateY(0)}}
.cs-consent__box{max-width:1120px;margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cs-consent__txt{flex:1;min-width:240px;font-size:13px;color:var(--ink);line-height:1.5;margin:0}
.cs-consent__link{color:var(--brand);font-weight:700;white-space:nowrap}
.cs-consent__btns{display:flex;gap:10px;flex-shrink:0}
.cs-consent__btn{padding:9px 20px;font-size:14px}
@media (max-width:600px){.cs-consent__btns{width:100%}.cs-consent__btn{flex:1}}
