/* ============================================================
   TECMOSA — Estilos de la página de inicio (hero "producto" + secciones)
   ============================================================ */

/* ---------- HERO · Producto ---------- */
.hero--producto { display: block; padding: clamp(40px,5vw,80px) 0; background:
    radial-gradient(120% 80% at 100% 0%, var(--blue-50), transparent 60%); }
.h-pr-grid { display: grid; grid-template-columns: 1.05fr 1.1fr; gap: clamp(32px,4vw,60px); align-items: center; }
@media (max-width: 920px){ .h-pr-grid { grid-template-columns: 1fr; } }
.mock {
  border-radius: var(--r-lg); background: var(--paper); border: 1px solid var(--line);
  box-shadow: var(--shadow-lg); overflow: hidden;
}
.mock .bar { display: flex; align-items: center; gap: 7px; padding: 12px 16px; border-bottom: 1px solid var(--line); background: var(--paper-2); }
.mock .bar i { width: 11px; height: 11px; border-radius: 50%; background: var(--line); display: inline-block; }
.mock .bar .tab { margin-left: 12px; font-family: var(--mono); font-size: .72rem; color: var(--ink-faint); }
.mock .body { padding: 18px; display: grid; grid-template-columns: 76px 1fr; gap: 14px; min-height: 330px; }
.mock .side { background: var(--navy); border-radius: 12px; display: flex; flex-direction: column; gap: 10px; padding: 14px 10px; }
.mock .side b { width: 26px; height: 26px; border-radius: 7px; background: oklch(0.4 0.06 264); }
.mock .side b.on { background: var(--coral); }
.mock .main { display: flex; flex-direction: column; gap: 12px; }
.mock .kpis { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.mock .kpi { border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
.mock .kpi .n { font-family: var(--display); font-weight: 800; font-size: 1.4rem; color: var(--blue-700); }
.mock .kpi .l { font-family: var(--mono); font-size: .62rem; letter-spacing:.06em; color: var(--ink-faint); text-transform: uppercase; }
.mock .rows { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; flex: 1; }
.mock .rows .r { display: grid; grid-template-columns: 1fr 60px 70px; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--line-soft); align-items: center; font-size: .8rem; }
.mock .rows .r:nth-child(even){ background: var(--paper-2); }
.mock .rows .r:first-child{ background: var(--blue-50); font-family: var(--mono); font-size:.64rem; letter-spacing:.05em; text-transform: uppercase; color: var(--blue-700); }
.mock .rows .bar2 { height: 8px; border-radius: 4px; background: var(--blue-100); }
.mock .rows .amt { font-family: var(--mono); color: var(--ink-soft); text-align: right; }

/* ---------- Logos ---------- */
.logos { display: flex; align-items: center; justify-content: center; gap: clamp(22px,4vw,56px); flex-wrap: wrap; opacity: .9; }
.logo-ph { font-family: var(--mono); font-size: .72rem; letter-spacing: .1em; color: var(--ink-faint); text-transform: uppercase;
  border: 1px dashed var(--line); border-radius: 10px; padding: 12px 22px; }

/* ---------- Servicios ---------- */
.svc-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; grid-auto-rows: 1fr; gap: 18px; }
@media (max-width: 920px){ .svc-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px){ .svc-grid { grid-template-columns: 1fr; } }
.svc { display: flex; flex-direction: column; gap: 14px; text-decoration: none; }
.svc .ic { width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center; background: var(--blue-50); color: var(--blue); }
.svc .ic svg { width: 24px; height: 24px; }
.svc.flag { grid-row: span 2; background: var(--navy); color: oklch(0.95 0.01 256); border: 0; justify-content: space-between; }
.svc.flag h3 { color: oklch(0.98 0.008 250); }
.svc.flag .ic { background: var(--coral); color: oklch(0.99 0.01 300); }
.svc.flag .muted { color: oklch(0.82 0.02 256); }
@media (max-width: 920px){ .svc.flag { grid-row: auto; grid-column: span 2; } }
@media (max-width: 600px){ .svc.flag { grid-column: auto; } }
.svc .feat-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; font-size:.95rem; }
.svc .feat-list li { display:flex; gap:9px; align-items:flex-start; }
.svc .feat-list li::before { content:""; width:6px; height:6px; border-radius:50%; background: var(--coral); margin-top:.55em; flex:none; }

/* ---------- Proceso ---------- */
.steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; }
@media (max-width: 820px){ .steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px){ .steps { grid-template-columns: 1fr; } }
.step { padding: 26px clamp(16px,2vw,28px); border-left: 1px solid var(--line); position: relative; }
.step:first-child { border-left: 0; }
@media (max-width:820px){ .step:nth-child(odd){ border-left:0; } }
.step .num { font-family: var(--mono); font-size: .8rem; color: var(--coral-600); font-weight: 500; }
.step h3 { margin: 10px 0 8px; font-size: 1.25rem; }

/* ---------- Spotlight nóminas ---------- */
.spot-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(30px,4vw,56px); align-items: center; }
@media (max-width: 880px){ .spot-grid { grid-template-columns: 1fr; } }
.spot-feats { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 520px){ .spot-feats { grid-template-columns: 1fr; } }
.spot-feats .it { display: flex; gap: 12px; align-items: flex-start; }
.spot-feats .it > div { display: block; }
.spot-feats .it .d { width: 36px; height: 36px; border-radius: 9px; background: oklch(0.34 0.05 264); display: grid; place-items: center; color: var(--coral); flex: none; }
.spot-feats .it .d svg { width: 18px; height: 18px; }
.spot-feats .it b { display: block; line-height: 1.25; margin-bottom: 5px; color: oklch(0.97 0.008 250); }
.spot-feats .it span { display: block; }
.spot-feats .it span { font-size: .9rem; color: oklch(0.78 0.02 256); }

/* ---------- Stats ---------- */
.stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
@media (max-width: 760px){ .stats { grid-template-columns: 1fr 1fr; } }
.stat .n { font-family: var(--display); font-weight: 800; font-size: clamp(2.4rem,4vw,3.4rem); line-height:1; color: var(--blue-700); letter-spacing: -0.03em; }
.stat .n .plus { color: var(--coral); }
.stat .l { margin-top: 8px; color: var(--ink-soft); font-size: .98rem; }
