/* Calculadoras México — hoja de estilos compartida */
:root{
  --bg:#f5f6f8;
  --card:#ffffff;
  --ink:#111827;
  --muted:#6b7280;
  --line:#e5e7eb;
  --brand:#ffd400;
  --brand-dark:#111827;
  --accent:#2563eb;
  --pos:#15803d;
  --neg:#b91c1c;
  --radius:16px;
  --shadow:0 1px 2px rgba(17,24,39,.06), 0 8px 24px rgba(17,24,39,.06);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
a{color:var(--accent)}

/* Header */
.site-header{background:var(--brand-dark);color:#fff;position:sticky;top:0;z-index:20}
.site-header .bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;min-height:58px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px;
}
.brand{display:flex;align-items:center;gap:9px;color:#fff;text-decoration:none;font-weight:800;letter-spacing:-.01em}
.brand .dot{width:12px;height:12px;border-radius:50%;background:var(--brand);display:inline-block}
.nav{display:flex;gap:4px;overflow:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.nav::-webkit-scrollbar{display:none}
.nav a{
  color:#cbd5e1;text-decoration:none;padding:8px 12px;border-radius:999px;
  font-size:.9rem;font-weight:600;white-space:nowrap;
}
.nav a:hover{background:rgba(255,255,255,.08);color:#fff}
.nav a[aria-current="page"]{background:var(--brand);color:#111}

/* Hero */
.hero{padding:28px 0 6px}
.eyebrow{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:800;margin:0 0 8px}
h1{font-size:clamp(1.5rem,4.6vw,2.15rem);line-height:1.18;letter-spacing:-.02em;margin:0 0 10px}
.lede{color:var(--muted);margin:0 0 18px;max-width:64ch}

/* Layout */
.grid{display:grid;grid-template-columns:1fr;gap:16px;padding-bottom:8px}
@media(min-width:900px){.grid{grid-template-columns:1.08fr .92fr;align-items:start}}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:18px;
}
.card h2{font-size:1.02rem;margin:0 0 4px}

/* Form */
label{display:block;font-size:.85rem;font-weight:700;margin:14px 0 6px;color:#374151}
label:first-of-type{margin-top:0}
input[type=number],select{
  width:100%;padding:12px;font-size:1rem;border:1px solid #d1d5db;border-radius:10px;
  background:#fff;color:var(--ink);appearance:none;
}
input[type=number]:focus,select:focus{outline:3px solid rgba(37,99,235,.22);border-color:var(--accent)}
.hint{font-size:.78rem;color:var(--muted);margin:5px 0 0;line-height:1.45}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:430px){.two{grid-template-columns:1fr}}
.check{
  display:flex;gap:10px;align-items:flex-start;margin:14px 0 0;padding:12px;
  border:1px solid var(--line);border-radius:10px;background:#fafafa;
}
.check input{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto}
.check label{margin:0;font-weight:700;font-size:.9rem}
.check .hint{margin-top:2px}
.actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
button{
  font:inherit;font-weight:700;padding:11px 16px;border-radius:10px;border:1px solid #d1d5db;
  background:#fff;color:var(--ink);cursor:pointer;
}
button:hover{background:#f3f4f6}
button.primary{background:var(--brand-dark);color:#fff;border-color:var(--brand-dark)}
button.primary:hover{background:#1f2937}

/* Resultados */
.result{position:relative}
@media(min-width:900px){.result{position:sticky;top:76px}}
.result .label{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:800;margin:0}
.result .big{
  font-size:clamp(2rem,7.2vw,2.7rem);font-weight:850;letter-spacing:-.03em;
  margin:4px 0 0;font-variant-numeric:tabular-nums;
}
.result .sub{color:var(--muted);margin:4px 0 0;font-size:.9rem}
.pos{color:var(--pos)}
.neg{color:var(--neg)}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 4px}
.kpi{background:#f9fafb;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.kpi span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.kpi b{display:block;font-size:1.15rem;margin-top:2px;font-variant-numeric:tabular-nums}

/* Barra de composición */
.chart{display:flex;height:12px;border-radius:999px;overflow:hidden;background:#eef1f5;margin:16px 0 12px}
.chart i{display:block;height:100%}

/* Tabla */
table{width:100%;border-collapse:collapse;font-size:.92rem}
td,th{padding:8px 0;text-align:left;border-bottom:1px solid #f0f2f5;vertical-align:top}
th{font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
td:last-child,th:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tr.total td{border-bottom:none;font-weight:800;padding-top:12px}
tr.sub-row td{padding-top:4px;color:var(--muted);font-size:.86rem}

/* Avisos */
.banner{
  margin-top:14px;padding:12px 14px;border-radius:10px;
  background:#fff8d6;border:1px solid #f0e0a0;font-size:.85rem;color:#5b4a00;
}
.banner.err{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.banner strong{font-weight:800}

/* Secciones */
.section{margin:26px 0 0}
.section h2{font-size:1.12rem;margin:0 0 8px}
.section p{color:#374151;margin:0 0 10px}
.formula{
  background:#0f172a;color:#e2e8f0;border-radius:12px;padding:14px;
  font:.88rem/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto;white-space:pre;
}

/* FAQ */
details{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px}
summary{cursor:pointer;font-weight:700;list-style:none}
summary::-webkit-details-marker{display:none}
summary::before{content:"+";display:inline-block;width:18px;color:var(--accent);font-weight:800}
details[open] summary::before{content:"–"}
details p{color:#374151;margin:10px 0 0}

/* Tarjetas del inicio */
.cards3{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:780px){.cards3{grid-template-columns:repeat(3,1fr)}}
.tool{
  display:block;text-decoration:none;color:inherit;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius);padding:18px;
  box-shadow:var(--shadow);transition:transform .12s ease, box-shadow .12s ease;
}
.tool:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(17,24,39,.06),0 12px 32px rgba(17,24,39,.08)}
.tool b{display:block;font-size:1rem;margin-bottom:4px}
.tool span{color:var(--muted);font-size:.9rem;display:block}
.tool em{display:inline-block;margin-top:12px;font-style:normal;font-weight:800;color:var(--accent);font-size:.9rem}

/* Footer */
footer{color:var(--muted);font-size:.8rem;padding:26px 0 44px;margin-top:18px;border-top:1px solid var(--line)}
footer p{margin:0 0 8px}
footer a{color:var(--muted)}

/* Utilidades */
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.mt0{margin-top:0}
.center{text-align:center}
@media print{.site-header,.nav,footer,.actions{display:none}.result{position:static}}

/* Tablas secundarias dentro del panel de resultados */
.mini{margin-top:14px;border-top:1px solid var(--line);padding-top:8px}
.mini table{font-size:.86rem}

/* Encabezado compacto en móvil */
@media(max-width:430px){
  .site-header .bar{min-height:0;padding-top:8px;padding-bottom:6px;gap:4px}
  .brand{font-size:.95rem}
  .nav{width:100%;gap:2px}
  .nav a{padding:6px 8px;font-size:.8rem}
}
@media(max-width:430px){.nav a:last-child{display:none}}

/* Espacios publicitarios reservados (invisibles hasta activarlos) */
.anuncio{margin:24px 0;display:flex;justify-content:center;align-items:center;min-height:90px}
.anuncio[hidden]{display:none}

/* Páginas de texto legal */
.legal-text h2{font-size:1.02rem;margin:26px 0 6px}
.legal-text h2:first-of-type{margin-top:0}
.legal-text p{font-size:.93rem;line-height:1.68;color:#374151;margin:0 0 10px}
.legal-text a{color:var(--accent);text-decoration:underline}
footer .legal{margin-top:12px;font-size:.76rem}
footer .legal a{color:var(--muted);text-decoration:underline}
