/* VERSION: 2026-10-08b (blog unificado con el diseño del sitio) — antes: 2026-10-08a — si ves esta línea en novaaxis.co/css/site.css, el CSS nuevo está en el servidor */
/* ============================================================
   Nova Axis — site.css
   Extensión de style.css para las páginas dinámicas.
   Regla: NO define colores, fuentes ni radios propios.
   Todo sale de las variables de marca de style.css:
   --red --red-dark --dark --cream --white --gray --radius --radius-sm
   Unidades en rem (style.css fija 1rem = 10px).
   ============================================================ */


/* (8 oct 2026) blog.css se reescribió con las variables de marca; ya no necesita variables de compatibilidad. */

:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; border-radius: 3px; }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }

/* Menú: marca la sección actual */
.header .navbar a.is-current { color: var(--red-ink); }

/* ── Footer completo ─────────────────────────────────────── */
.footer.footer-full { display: block; padding: 5rem 8% 2.4rem; }
.footer-cols {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 4rem;
  padding-bottom: 3.2rem; margin-bottom: 2.4rem;
  border-bottom: 0.5px solid rgba(255,255,255,0.08);
}
.footer-full h4, .footer-full .footer-h {
  font-size: 1.1rem; font-weight: 500; color: rgba(255,255,255,0.5);
  letter-spacing: 0.2rem; text-transform: uppercase; margin-bottom: 1.6rem;
}
.footer-full .footer-cols a {
  display: block; font-size: 1.35rem; color: rgba(255,255,255,0.55);
  padding: 0.7rem 0; min-height: 2.8rem; line-height: 1.4; transition: color var(--transition);
}
.footer-full .footer-cols a:hover { color: var(--white); }
.footer-logo { font-size: 2rem; font-weight: 500; letter-spacing: -0.05em; color: var(--white); margin-bottom: 1.2rem; }
.footer-logo span { color: var(--red); }
.footer-brand p { font-size: 1.3rem; line-height: 1.7; color: rgba(255,255,255,0.4); margin-bottom: 1.2rem; }
/* Enlaces de teléfono, WhatsApp y correo: área táctil >= 24px (Lighthouse) */
.footer-brand p a { display: inline-block !important; padding: 0.5rem 0 !important; min-height: 2.6rem; line-height: 1.6; }
@media (max-width: 768px) { .footer-cols { grid-template-columns: 1fr; gap: 2.8rem; } }

/* ── Encabezado de página interna (mismo lenguaje que .section-header del home) ── */
.page-head { padding: 6rem 8% 3rem; background: var(--cream); }
.page-head .sec-title { font-size: clamp(3rem, 4.4vw, 4.4rem); letter-spacing: -0.05em; margin-bottom: 1.2rem; line-height: 1.1; }
.page-head .sec-sub { font-size: 1.6rem; color: var(--gray); line-height: 1.75; max-width: 60rem; }

/* Filtros tipo "cap" del home */
.chip-row { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 2.8rem; }
.chip-row a {
  font-size: 1.3rem; padding: 0.7rem 1.6rem; border-radius: var(--radius-pill);
  border: 0.5px solid rgba(0,0,0,0.12); color: rgba(0,0,0,0.6); background: var(--white);
  transition: var(--transition);
}
.chip-row a:hover { border-color: var(--dark); color: var(--dark); }
.chip-row a.on { background: var(--dark); border-color: var(--dark); color: var(--white); }

/* ── Tarjetas de proyecto: variante con foto real ───────── */
.case-card { display: block; color: inherit; }
.case-img.has-photo { background-size: cover; background-position: center; position: relative; }
.case-img.has-photo::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(14,14,14,0) 35%, rgba(14,14,14,0.65) 100%);
}
.case-img.has-photo > * { position: relative; }
.case-metrics { display: flex; gap: 2.4rem; margin-top: 1.4rem; flex-wrap: wrap; }
.case-metrics b { display: block; font-size: 2rem; font-weight: 500; letter-spacing: -0.04em; color: var(--red); line-height: 1.1; }
.case-metrics small { font-size: 1.1rem; color: var(--gray); }
.cases-more { margin-top: 3rem; display: flex; gap: 1.2rem; flex-wrap: wrap; align-items: center; }
.cases .cases-grid.three { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 991px) { .cases .cases-grid.three { grid-template-columns: 1fr 1fr; } }
@media (max-width: 768px) { .cases .cases-grid, .cases .cases-grid.three { grid-template-columns: 1fr; } }

/* ── Soluciones (hub) ───────────────────────────────────── */
.sol-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; background: rgba(0,0,0,0.08);
  border: 0.5px solid rgba(0,0,0,0.08); border-radius: var(--radius); overflow: hidden;
}
.sol-grid a { background: var(--white); padding: 3.2rem 2.8rem; display: block; color: inherit; transition: background var(--transition); }
.sol-grid a:hover { background: #fdfcfa; }
.sol-grid i { color: var(--red); font-size: 2rem; margin-bottom: 1.6rem; display: block; }
.sol-grid h3 { font-size: 1.9rem; font-weight: 500; letter-spacing: -0.03em; margin-bottom: 0.8rem; }
.sol-grid p { font-size: 1.4rem; color: var(--gray); line-height: 1.65; margin-bottom: 1.6rem; }
.sol-grid .go { font-size: 1.3rem; color: var(--red); font-weight: 500; }

/* ── Página de caso (clases cs-* del diseño original) ───── */
.cs-hero { position: relative; background: var(--dark); color: var(--white); padding: 7rem 8% 5rem; overflow: hidden; }
.cs-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0.28; }
.cs-hero-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,14,14,.3), var(--dark)); }
.cs-hero-inner { position: relative; max-width: 90rem; }
.cs-back { display: inline-flex; gap: 0.8rem; align-items: center; font-size: 1.3rem; color: rgba(255,255,255,0.55); margin-bottom: 2.8rem; }
.cs-back:hover { color: var(--white); }
.cs-tags { display: flex; gap: 0.8rem; flex-wrap: wrap; margin-bottom: 2rem; }
.cs-tag { font-size: 1.1rem; padding: 0.4rem 1.2rem; border-radius: var(--radius-pill); border: 0.5px solid rgba(255,255,255,0.2); color: rgba(255,255,255,0.85); }
.cs-tag.red { background: rgba(255,86,75,0.15); border-color: rgba(255,86,75,0.35); color: #ff8a82; }
.cs-hero h1 { color: var(--white); font-size: clamp(3.2rem, 5vw, 5.4rem); letter-spacing: -0.05em; margin-bottom: 1.6rem; }
.cs-hero p { font-size: 1.7rem; line-height: 1.7; color: rgba(255,255,255,0.65); max-width: 64rem; }
.cs-meta-bar { display: flex; gap: 4rem; flex-wrap: wrap; margin-top: 3.6rem; padding-top: 2.4rem; border-top: 0.5px solid rgba(255,255,255,0.12); }
.cs-meta-item .label { font-size: 1.1rem; color: rgba(255,255,255,0.4); margin-bottom: 0.4rem; }
.cs-meta-item .value { font-size: 1.5rem; font-weight: 500; color: var(--white); }

.cs-gallery { display: grid; grid-template-columns: 1.4fr 1fr; grid-auto-rows: 22rem; gap: 1rem; padding: 1rem 8% 0; background: var(--cream); }
.cs-gallery-item { position: relative; border-radius: var(--radius); overflow: hidden; }
.cs-gallery-item.tall { grid-row: span 2; }
.cs-gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.cs-gallery-caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.4rem 1.6rem; font-size: 1.2rem; color: var(--white);
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.7)); }
.cs-body { background: var(--cream); padding: 5rem 8% 2rem; }
.cs-section { max-width: 86rem; margin: 0 auto 5rem; }
.cs-section-eyebrow { font-size: 1.1rem; font-weight: 500; color: var(--red); letter-spacing: 0.2rem; text-transform: uppercase; margin-bottom: 1rem; }
.cs-section h2 { font-size: 3rem; letter-spacing: -0.05em; margin-bottom: 1.6rem; }
.cs-section p { font-size: 1.6rem; line-height: 1.8; color: rgba(0,0,0,0.7); margin-bottom: 1.4rem; }
.cs-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1px; background: rgba(0,0,0,0.08);
  border: 0.5px solid rgba(0,0,0,0.08); border-radius: var(--radius); overflow: hidden; margin-top: 2.8rem; }
.cs-stat { background: var(--white); padding: 2.4rem; }
.cs-stat .num { font-size: 4rem; font-weight: 500; letter-spacing: -0.05em; color: var(--red); line-height: 1; }
.cs-stat .desc { font-size: 1.3rem; color: var(--gray); margin-top: 0.8rem; line-height: 1.5; }
.cs-equipos { width: 100%; border-collapse: collapse; margin-top: 2rem; background: var(--white); border-radius: var(--radius); overflow: hidden; }
.cs-equipos th, .cs-equipos td { padding: 1.3rem 1.8rem; border-bottom: 0.5px solid rgba(0,0,0,0.08); text-align: left; font-size: 1.45rem; }
.cs-equipos th { font-weight: 500; width: 60%; }
.cs-equipos td { color: var(--gray); }
.cs-quote { border-left: 3px solid var(--red); padding: 0.4rem 0 0.4rem 2.4rem; margin-top: 2rem; }
.cs-quote p { font-size: 2rem !important; color: var(--dark) !important; letter-spacing: -0.02em; line-height: 1.5 !important; }
.cs-quote cite { font-size: 1.3rem; color: var(--gray); font-style: normal; }
.cs-cta { background: var(--dark); color: var(--white); padding: 6rem 8%; text-align: center; }
.cs-cta h2 { color: var(--white); font-size: 3.2rem; letter-spacing: -0.05em; margin-bottom: 1.2rem; }
.cs-cta p { font-size: 1.6rem; color: rgba(255,255,255,0.6); max-width: 52rem; margin: 0 auto 2.8rem; line-height: 1.7; }
.cs-cta .row-btns { display: flex; gap: 1.2rem; justify-content: center; flex-wrap: wrap; }
@media (max-width: 768px) { .cs-gallery { grid-template-columns: 1fr; grid-auto-rows: 22rem; } .cs-gallery-item.tall { grid-row: span 1; } }

/* ── Bloques del editor dentro de artículos y casos ─────── */
/* (los posts originales ya los usaban pero nunca tuvieron estilos) */
.cs-section .stats-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1px;
  background: rgba(0,0,0,0.08); border: 0.5px solid rgba(0,0,0,0.08); border-radius: var(--radius); overflow: hidden; margin: 3rem 0;
}
.cs-section .stat-box { background: var(--white); padding: 2rem; }
.post-content .stat-num, .cs-section .stat-num { display: block; font-size: 3.2rem; font-weight: 500; letter-spacing: -0.05em; color: var(--red); }
.post-content .stat-lbl, .cs-section .stat-lbl { display: block; font-size: 1.3rem; color: var(--gray); margin-top: 0.4rem; }
.cs-section .trend-card { border-left: 2px solid var(--red); padding: 0.4rem 0 0.4rem 2rem; margin: 3rem 0; }
.cs-section .trend-number {
  display: inline-grid; place-items: center; min-width: 2.8rem; height: 2.8rem; padding: 0 0.6rem; margin-right: 0.8rem;
  border-radius: var(--radius-sm); background: var(--red); color: var(--white); font-size: 1.3rem; font-weight: 500; vertical-align: middle;
}
.post-content .comparison-table.ficha th { width: 34%; background: var(--cream); font-weight: 500; }
.post-content figure { margin: 3rem 0; }
.post-content figure img { border-radius: var(--radius); }
.post-content figcaption { font-size: 1.3rem; color: var(--gray); margin-top: 0.8rem; }
.post-content blockquote { border-left: 3px solid var(--red); padding-left: 2rem; margin: 3rem 0; font-size: 1.9rem; letter-spacing: -0.02em; }
.post-content blockquote cite { display: block; font-size: 1.3rem; font-style: normal; color: var(--gray); margin-top: 0.8rem; }
.post-content hr { border: none; border-top: 0.5px solid rgba(0,0,0,0.12); margin: 4rem 0; }
.post-content a:not(.btn) { color: var(--red); text-decoration: underline; text-underline-offset: 2px; }
.post-content table { width: 100%; display: block; overflow-x: auto; }

/* ── Formularios de marca (cotizador, landings, home) ───── */
.lp-msg { padding: 1.2rem 1.4rem; border-radius: var(--radius-sm); font-size: 1.35rem; margin-bottom: 1.4rem; display: none; line-height: 1.5; }
.lp-msg.err { display: block; background: #fdecea; color: #a32118; border: 0.5px solid #f4c7c3; }
.lp-msg.ok  { display: block; background: #e9f7ef; color: #0b6b3c; border: 0.5px solid #bde5cd; }
.fx label.lb, .lp-form label { display: block; font-size: 1.3rem; font-weight: 500; margin-bottom: 0.6rem; }
.fx input[type=text], .fx input[type=email], .fx input[type=tel], .fx input[type=number], .fx select, .fx textarea,
.lp-form input, .lp-form select, .lp-form textarea {
  width: 100%; padding: 1.2rem 1.4rem; font: 400 1.5rem 'Inter', sans-serif; color: var(--dark);
  background: var(--white); border: 0.5px solid rgba(0,0,0,0.18); border-radius: var(--radius-sm);
}
.fx input:focus, .fx select:focus, .fx textarea:focus, .lp-form input:focus, .lp-form select:focus, .lp-form textarea:focus {
  border-color: var(--red); box-shadow: 0 0 0 3px rgba(255,86,75,0.12);
}
.fx textarea, .lp-form textarea { resize: vertical; min-height: 9rem; }
.fx .f, .lp-form .f { margin-bottom: 1.6rem; }

/* ── Cotizador ───────────────────────────────────────────── */
.cz { max-width: 80rem; margin: 0 auto; padding: 5rem 8% 8rem; }
.cz-barra { display: flex; gap: 0.6rem; margin: 0 0 3rem; }
.cz-barra i { flex: 1; height: 3px; border-radius: 3px; background: rgba(0,0,0,0.08); transition: background .3s; }
.cz-barra i.on { background: var(--red); }
.cz section.cz-paso { display: none; padding: 0; }
.cz section.cz-paso.on { display: block; animation: cz .25s ease; }
@keyframes cz { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.cz h2 { font-size: clamp(2.6rem, 3.4vw, 3.4rem); letter-spacing: -0.05em; margin-bottom: 1rem; line-height: 1.15; }
.cz .ay { font-size: 1.55rem; color: var(--gray); margin-bottom: 2.8rem; line-height: 1.7; max-width: 58rem; }
.op { display: grid; grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr)); gap: 1rem; margin-bottom: 2.8rem; }
.op label { display: flex; gap: 1.2rem; align-items: flex-start; padding: 1.6rem 1.8rem; cursor: pointer;
  border: 0.5px solid rgba(0,0,0,0.12); border-radius: var(--radius); background: var(--white); transition: border-color .15s, background .15s; }
.op label:hover { border-color: rgba(0,0,0,0.3); }
.op input { margin-top: 0.2rem; accent-color: var(--red); width: 1.7rem; height: 1.7rem; flex: none; }
.op label:has(input:checked) { border-color: var(--red); background: var(--red-light); }
.op .t { display: block; font-size: 1.5rem; font-weight: 500; }
.op .d { display: block; font-size: 1.3rem; color: var(--gray); margin-top: 0.3rem; line-height: 1.45; }
.cz-nav { display: flex; gap: 1rem; align-items: center; margin-top: 0.8rem; }
.cz-nav .atras { background: none; color: var(--gray); font-size: 1.45rem; cursor: pointer; padding: 1.2rem 0.4rem; font-family: inherit; }
.cz-nav .atras:hover { color: var(--dark); }
.cz-nav .btn { margin-left: auto; }
.g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.6rem; }
.cz-lat { border: 0.5px solid rgba(0,0,0,0.1); border-radius: var(--radius); padding: 2rem 2.2rem; background: var(--white); font-size: 1.4rem; color: var(--gray); margin-top: 3.4rem; line-height: 1.7; }
.cz-lat a { color: var(--red); }
@media (max-width: 640px) { .g2 { grid-template-columns: 1fr; } }

/* ── Gracias / 404 ───────────────────────────────────────── */
.msg-page { min-height: 70vh; display: grid; place-items: center; padding: 6rem 8%; text-align: center; background: var(--cream); }
.msg-page .c { max-width: 60rem; }
.msg-page .tic { width: 6.4rem; height: 6.4rem; border-radius: 50%; background: #e9f7ef; color: #0f8a4d; display: grid; place-items: center; font-size: 2.6rem; margin: 0 auto 2.6rem; }
.msg-page h1 { font-size: clamp(2.8rem, 4vw, 3.8rem); letter-spacing: -0.05em; margin-bottom: 1.4rem; }
.msg-page p { font-size: 1.65rem; color: var(--gray); line-height: 1.7; margin-bottom: 1rem; }
.msg-page .fol { font-size: 1.3rem; color: var(--gray); margin: 2rem 0 2.8rem; letter-spacing: 0.05em; }
.msg-page .acc { display: flex; gap: 1.2rem; justify-content: center; flex-wrap: wrap; margin-bottom: 3.6rem; }
.msg-page .sig { background: var(--white); border: 0.5px solid rgba(0,0,0,0.08); border-radius: var(--radius); padding: 2.4rem; text-align: left; }
.msg-page .sig b { display: block; font-size: 1.4rem; margin-bottom: 1.2rem; font-weight: 500; }
.msg-page .sig li { list-style: none; display: flex; gap: 1.2rem; padding: 0.8rem 0; font-size: 1.45rem; color: rgba(0,0,0,0.65); line-height: 1.6; }
.msg-page .sig i { color: var(--red); font-size: 0.8rem; margin-top: 0.8rem; }
.btn-wa { background: #25D366; color: var(--white); }
.btn-wa:hover { background: #1da851; }

/* ============================================================
   LANDINGS DE CAMPAÑA
   Misma marca, pero sin menú: el visitante de un anuncio solo
   tiene dos salidas (formulario o WhatsApp). Es a propósito.
   ============================================================ */
body.lp { padding-top: 0; background: var(--cream); }
.lp .wrap { max-width: 114rem; margin: 0 auto; padding: 0 2.4rem; }
.lp-top { display: flex; align-items: center; gap: 1.6rem; padding: 1.4rem 8%; background: rgba(248,247,244,0.94);
  backdrop-filter: blur(10px); border-bottom: 0.5px solid rgba(0,0,0,0.08); position: sticky; top: 0; z-index: 40; }
.lp-top .logo { display: flex; align-items: center; gap: 1rem; }
.lp-top .logo img { height: 3.4rem; width: auto; }
.lp-top .logo .main { font-size: 1.8rem; font-weight: 500; letter-spacing: -0.05em; color: var(--dark); display: block; line-height: 1.1; }
.lp-top .logo .main em { font-style: normal; color: var(--red-ink); }
.lp-top .logo .sub { font-size: 1rem; color: var(--gray); letter-spacing: 0.1em; text-transform: uppercase; }
.lp-top .tel { margin-left: auto; font-size: 1.4rem; font-weight: 500; color: var(--dark); }
.lp-top .tel .lbl { color: var(--gray); font-weight: 400; }
@media (max-width: 700px) { .lp-top .tel .lbl { display: none; } }

.lp-hero { padding: 6rem 8% 5rem; border-bottom: 0.5px solid rgba(0,0,0,0.06); }
.lp-hero .grid { display: grid; grid-template-columns: 1.08fr 0.92fr; gap: 5.2rem; align-items: start; max-width: 120rem; margin: 0 auto; }
.lp-hero h1 { font-size: clamp(3.4rem, 4.4vw, 5.2rem); letter-spacing: -0.05em; line-height: 1.08; margin-bottom: 1.8rem; }
.lp-hero .bajada { font-size: clamp(1.6rem, 1.8vw, 1.85rem); color: rgba(0,0,0,0.6); line-height: 1.7; max-width: 56rem; margin-bottom: 2.6rem; }
.lp-pruebas { list-style: none; max-width: 58rem; margin-bottom: 3rem; }
.lp-pruebas li { display: flex; gap: 1.2rem; padding: 1.2rem 0; border-top: 0.5px solid rgba(0,0,0,0.08); font-size: 1.5rem; line-height: 1.6; }
.lp-pruebas li:last-child { border-bottom: 0.5px solid rgba(0,0,0,0.08); }
.lp-pruebas i { color: var(--red); font-size: 1.3rem; margin-top: 0.4rem; flex: none; }
.lp-pruebas b { font-weight: 500; }
.lp-cifras { display: flex; gap: 4rem; flex-wrap: wrap; }
.lp-cifras .v { font-size: clamp(3.4rem, 4.2vw, 4.6rem); font-weight: 500; letter-spacing: -0.05em; color: var(--red-ink); line-height: 1; }
.lp-cifras .k { font-size: 1.3rem; color: var(--gray); margin-top: 0.6rem; }

.lp-form { background: var(--white); border: 0.5px solid rgba(0,0,0,0.08); border-radius: var(--radius); padding: 2.8rem;
  box-shadow: 0 24px 48px -32px rgba(0,0,0,0.25); position: sticky; top: 8.6rem; }
.lp-form h2 { font-size: 2rem; letter-spacing: -0.04em; margin-bottom: 0.6rem; }
.lp-form .sub { font-size: 1.35rem; color: var(--gray); margin-bottom: 2rem; line-height: 1.55; }
.lp-form .btn { width: 100%; justify-content: center; padding: 1.4rem; font-size: 1.5rem; }
.lp-form .legal { font-size: 1.15rem; color: var(--gray); text-align: center; margin-top: 1.2rem; line-height: 1.5; }
.lp-form .o { display: flex; align-items: center; gap: 1rem; margin: 1.6rem 0 1.2rem; font-size: 1.2rem; color: var(--gray); }
.lp-form .o::before, .lp-form .o::after { content: ""; flex: 1; height: 0.5px; background: rgba(0,0,0,0.12); }
.lp-form .wa { display: flex; align-items: center; justify-content: center; gap: 0.8rem; padding: 1.2rem; border: 0.5px solid rgba(0,0,0,0.15);
  border-radius: var(--radius-sm); font-size: 1.45rem; font-weight: 500; color: var(--dark); }
.lp-form .wa:hover { border-color: #25D366; }
.lp-form .wa i { color: #25D366; font-size: 1.7rem; }

.lp-sec { padding: 7rem 8%; border-bottom: 0.5px solid rgba(0,0,0,0.06); }
.lp-sec.blanca { background: var(--white); }
.lp-sec.oscura { background: var(--dark); color: var(--white); border-bottom: none; }
.lp-sec .in { max-width: 120rem; margin: 0 auto; }
.lp-sec .sec-title { font-size: clamp(2.6rem, 3vw, 3.4rem); letter-spacing: -0.05em; margin-bottom: 1.2rem; max-width: 70rem; }
.lp-sec.oscura .sec-title { color: var(--white); }
.lp-sec .sec-sub { font-size: 1.6rem; color: var(--gray); line-height: 1.75; max-width: 60rem; margin-bottom: 4rem; }
.lp-sec.oscura .sec-sub { color: rgba(255,255,255,0.55); }
.lp-sec.oscura .eyebrow { color: var(--red); }

.lp-inc { display: grid; grid-template-columns: repeat(auto-fit, minmax(26rem, 1fr)); gap: 1px; background: rgba(0,0,0,0.08);
  border: 0.5px solid rgba(0,0,0,0.08); border-radius: var(--radius); overflow: hidden; }
.lp-inc > div { background: var(--white); padding: 2.6rem; }
.lp-inc i { color: var(--red); font-size: 1.8rem; margin-bottom: 1.4rem; display: block; }
.lp-inc h3 { font-size: 1.65rem; font-weight: 500; letter-spacing: -0.03em; margin-bottom: 0.8rem; }
.lp-inc p { font-size: 1.4rem; color: var(--gray); line-height: 1.65; }

.lp-pasos { counter-reset: p; list-style: none; }
.lp-pasos > li { counter-increment: p; display: grid; grid-template-columns: 6rem 1fr; gap: 2rem; padding: 2.4rem 0; border-top: 0.5px solid rgba(255,255,255,0.1); }
.lp-pasos > li:last-child { border-bottom: 0.5px solid rgba(255,255,255,0.1); }
.lp-pasos > li::before { content: counter(p, decimal-leading-zero); font-size: 1.4rem; font-weight: 500; color: var(--red); padding-top: 0.3rem; }
.lp-pasos h3 { font-size: 1.75rem; font-weight: 500; color: var(--white); margin-bottom: 0.6rem; letter-spacing: -0.03em; }
.lp-pasos p { font-size: 1.5rem; color: rgba(255,255,255,0.55); line-height: 1.7; max-width: 64rem; }

.lp-faq { max-width: 86rem; margin: 0 auto; }
.lp-faq details { border-top: 0.5px solid rgba(0,0,0,0.1); }
.lp-faq details:last-of-type { border-bottom: 0.5px solid rgba(0,0,0,0.1); }
.lp-faq summary { cursor: pointer; padding: 2rem 4rem 2rem 0; font-size: 1.65rem; font-weight: 500; letter-spacing: -0.02em; position: relative; list-style: none; }
.lp-faq summary::-webkit-details-marker { display: none; }
.lp-faq summary::after { content: "+"; position: absolute; right: 0.4rem; top: 1.7rem; font-size: 2.2rem; font-weight: 300; color: var(--red); }
.lp-faq details[open] summary::after { content: "–"; }
.lp-faq .r { padding: 0 4rem 2.2rem 0; font-size: 1.5rem; color: rgba(0,0,0,0.65); line-height: 1.75; max-width: 72rem; }
.lp-faq .r p { margin-bottom: 1.2rem; }

.lp-cierre { padding: 7rem 8%; text-align: center; background: var(--dark); }
.lp-cierre h2 { color: var(--white); font-size: clamp(2.8rem, 3.4vw, 3.8rem); letter-spacing: -0.05em; margin-bottom: 1.4rem; }
.lp-cierre p { color: rgba(255,255,255,0.6); font-size: 1.65rem; max-width: 52rem; margin: 0 auto 2.8rem; line-height: 1.7; }
.lp-cierre .acc { display: flex; gap: 1.2rem; justify-content: center; flex-wrap: wrap; }
.lp-pie { padding: 2.4rem 8%; font-size: 1.25rem; color: var(--gray); display: flex; gap: 2rem; flex-wrap: wrap; background: var(--cream); }
.lp-pie a { color: var(--gray); }
.lp-pie a:hover { color: var(--dark); }

.lp-movil { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: rgba(248,247,244,0.97);
  border-top: 0.5px solid rgba(0,0,0,0.1); padding: 1rem 1.4rem calc(1rem + env(safe-area-inset-bottom, 0px)); gap: 0.9rem; }
.lp-movil a { flex: 1; display: flex; align-items: center; justify-content: center; gap: 0.8rem; padding: 1.3rem; border-radius: var(--radius-sm); font-size: 1.5rem; font-weight: 500; }
.lp-movil .c { background: var(--dark); color: var(--white); }
.lp-movil .w { background: #15803D; color: var(--white); }
@media (max-width: 820px) {
  .lp-movil { display: flex; }
  body.lp { padding-bottom: 7.8rem; }
  .lp .whatsapp-float { display: none; }
}
@media (max-width: 900px) {
  .lp-hero .grid { grid-template-columns: 1fr; gap: 3.4rem; }
  .lp-form { position: static; }
  .lp-sec, .lp-hero, .lp-cierre { padding-left: 5%; padding-right: 5%; }
}
.cs-tag.blue  { background: rgba(0,119,182,0.18); border-color: rgba(0,119,182,0.4); color: #7cc4ea; }
.cs-tag.green { background: rgba(64,145,108,0.18); border-color: rgba(64,145,108,0.4); color: #8fd3b0; }
.cs-section h3, .cs-section .cs-sub { font-size: 2rem; letter-spacing: -0.03em; margin: 2.8rem 0 1rem; }
.cs-section ul { margin: 0 0 1.6rem 2rem; }
.cs-section li { font-size: 1.5rem; line-height: 1.7; color: rgba(0,0,0,0.7); margin-bottom: 0.6rem; }

.sol-grid a.sol-cta { background: var(--dark); color: var(--white); }
.sol-grid a.sol-cta:hover { background: #1c1c1c; }
.sol-grid a.sol-cta h3 { color: var(--white); }
.sol-grid a.sol-cta p { color: rgba(255,255,255,0.55); }
@media (max-width: 991px) { .sol-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .sol-grid { grid-template-columns: 1fr; } }

/* ============================================================
   LEGIBILIDAD — regla del manual de marca (auditada con axe-core)
   · #FF564B (--red) es el color de marca: fondos, íconos, bordes,
     cifras grandes y textos sobre fondo oscuro.
   · #CC372D (--red-ink) es el mismo rojo para TEXTO PEQUEÑO y
     BOTONES sobre fondo claro: cumple el contraste mínimo 4.5:1.
   · Ningún texto por debajo de 12 px. Párrafos de 14 px o más.
   · En celular el tamaño base NO se reduce.
   ============================================================ */
:root {
  --gray: rgba(0,0,0,0.62);
  --red-ink: #CC372D;
  --red-ink-hover: #AE2D24;
}

/* 1. El original reducía la letra en pantallas pequeñas (hasta 48%).
      Se mantiene 62.5% (1rem = 10px) en todos los tamaños. */
@media (max-width: 1100px) { html { font-size: 62.5%; } }
@media (max-width: 991px)  { html { font-size: 62.5%; } }
@media (max-width: 768px)  { html { font-size: 62.5%; } }
@media (max-width: 480px)  { html { font-size: 62.5%; } }

/* 2. Rojo de texto y botones sobre fondo claro */
.eyebrow, .case-pillar, .cs-section-eyebrow, .hero-tag span, .sol-grid .go,
.cz-lat a, .post-content a:not(.btn), .glass-stat, .lp-pruebas i { color: var(--red-ink); }
.btn-red, .nav-cta, .post-content .trend-number,
.cs-section .trend-number { background: var(--red-ink) !important; }
.btn-red:hover, .nav-cta:hover { background: var(--red-ink-hover) !important; }
.btn-wa { background: #15803D; }
.btn-wa:hover { background: #116B33; }
/* Sobre fondo oscuro el rojo de marca sí contrasta: se conserva */
.why .eyebrow, .lp-sec.oscura .eyebrow, .cs-cta .eyebrow, .footer .credit span,
.sol-grid a.sol-cta .case-pillar, .sol-grid a.sol-cta .go { color: var(--red); }

/* 3. Grises legibles en secciones oscuras */
.mq-item { color: rgba(255,255,255,0.72); }
.why-item p, .lp-pasos p, .lp-sec.oscura .sec-sub { color: rgba(255,255,255,0.68); }
.footer .credit { color: rgba(255,255,255,0.55); font-size: 1.25rem; }
.footer .links a { color: rgba(255,255,255,0.6); }
.footer-brand p { color: rgba(255,255,255,0.62); }
.footer-full h4, .footer-full .footer-h { color: rgba(255,255,255,0.62); }
.footer-full .footer-cols a { color: rgba(255,255,255,0.72); }
.cta-content p, .cs-cta p { color: rgba(255,255,255,0.7) !important; }
.hero-clarifier { color: rgba(0,0,0,0.62); }
.logo-text .sub, .lp-top .logo .sub { color: rgba(0,0,0,0.6); }
.glass-card p, .stat-label { color: var(--gray); }
.pillar-label { filter: brightness(0.82); }

/* 4. Tamaños mínimos */
.cap, .case-chip, .case-cap-tag, .cs-tag, .glass-badge, .chip-row a { font-size: 1.2rem; }
.eyebrow, .case-pillar, .cs-section-eyebrow, .cs-meta-item .label,
.pillar-label, .hero-tag span, .footer-full h4, .footer-full .footer-h { font-size: 1.2rem; }
.case-name { font-size: 1.7rem; }
.case-desc, .glass-card p, .why-item p { font-size: 1.45rem; }
.mq-item { font-size: 1.4rem; }
.p-tag, .stat-label, .hero-clarifier, .glass-card h4 { font-size: 1.35rem; }
.logo-text .sub { font-size: 1rem; }
.section-header .sec-sub, .page-head .sec-sub { font-size: 1.6rem; }
.lp-form .legal, .lp-form .o, .lp-pie, .lp-pie a { font-size: 1.25rem; }
.cs-meta-item .value { font-size: 1.5rem; }
.why-item h3 { font-size: 1.8rem; }

/* 5. Celular: títulos proporcionados y cuerpo cómodo */
@media (max-width: 768px) {
  section, .cases, .why, .page-head, .cs-body, .cs-hero { padding-left: 5%; padding-right: 5%; }
  .section-header .sec-title, .page-head .sec-title { font-size: 2.8rem; }
  .hero h1, .home h1 { font-size: clamp(3.2rem, 9vw, 4.2rem); }
  .cs-hero h1 { font-size: 3.4rem; }
  .post-content p, .post-content li { font-size: 1.65rem; line-height: 1.75; }
  .footer.footer-full { padding: 4rem 5% 2.4rem; }
}

/* ── Carrusel de clientes (dinámico) ─────────────────────── */
.marquee-wrap { padding: 2rem 0 2.2rem; }
.mq-head { text-align: center; font-size: 1.2rem; letter-spacing: 0.15em; text-transform: uppercase;
  color: rgba(255,255,255,0.55); margin-bottom: 1.6rem; }
.marquee-track { display: flex; width: max-content; animation: mq-loop 38s linear infinite; }
.marquee-track .marquee-inner { animation: none; width: auto; flex: none; display: flex; align-items: center; gap: 0; }
.marquee-wrap:hover .marquee-track, .marquee-wrap:focus-within .marquee-track { animation-play-state: paused; }
@keyframes mq-loop { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.mq-item { display: inline-flex; align-items: center; min-height: 3.6rem; transition: color var(--transition), opacity var(--transition); }
a.mq-item:hover { color: var(--white); }
a.mq-item:hover .mq-logo { opacity: 1; }
.mq-dot { margin: 0 3.2rem; font-size: 0.9rem; }
.mq-logo { height: 3rem; width: auto; max-width: 14rem; object-fit: contain;
  filter: grayscale(1) brightness(0) invert(1); opacity: 0.72; }
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none; width: auto; justify-content: center; padding: 0 5%; }
  .marquee-track .marquee-inner { flex-wrap: wrap; justify-content: center; row-gap: 1rem; }
  .marquee-track .marquee-inner[aria-hidden] { display: none; }
}
@media (max-width: 768px) { .mq-dot { margin: 0 2rem; } .marquee-track { animation-duration: 30s; } }

/* ── "Por qué Nova Axis": 4 compromisos con prueba ───────── */
.why .why-sub { color: rgba(255,255,255,0.68); }
.why-grid.why-4 { grid-template-columns: 1fr 1fr; }
.why-4 .why-item { display: flex; flex-direction: column; }
.why-ico { font-size: 2.2rem; color: var(--red); margin-bottom: 2rem; }
.why-4 .why-item p { margin-bottom: 2rem; }
.why-proof { margin-top: auto; font-size: 1.35rem; color: rgba(255,255,255,0.85); font-weight: 500;
  padding-top: 1.6rem; border-top: 0.5px solid rgba(255,255,255,0.1); transition: color var(--transition); }
.why-proof:hover { color: var(--red); }
.why-proof i { font-size: 1.1rem; margin-left: 0.4rem; color: var(--red); }
@media (max-width: 768px) { .why-grid.why-4 { grid-template-columns: 1fr; } }

/* Ajustes finos tras la segunda auditoría */
.cap { color: rgba(0,0,0,0.66); }
.case-metrics b, .cs-stat .num { color: var(--red-ink); }
.case-metrics small, .glass-stat span { font-size: 1.2rem; }
.hero-tag span { color: var(--red-ink-hover); }
.pillar-label { filter: none; }
.pillar:nth-child(3) .pillar-label { color: #047857; }

/* Celular: el botón Cotizar siempre visible en el header */
@media (max-width: 600px) {
  .header #search-btn, .header #info-btn { display: none !important; }
  .header .icons { gap: 0.6rem; }
  .header .nav-cta { padding: 0.9rem 1.4rem; font-size: 1.3rem; }
  .logo-text .sub { display: none; }
  .hero-clarifier { display: block; }
  .hero-clarifier strong, .hero-clarifier span { display: inline; }
}

/* Acceso a la calculadora bajo la rejilla de soluciones */
.tool-band { display: flex; align-items: center; gap: 2rem; margin-top: 1.6rem; padding: 2rem 2.4rem;
  background: var(--white); border: 0.5px solid rgba(0,0,0,0.08); border-left: 3px solid var(--red);
  border-radius: var(--radius); color: var(--dark); transition: box-shadow var(--transition); }
.tool-band:hover { box-shadow: 0 8px 32px rgba(0,0,0,0.08); }
.tool-band > i { font-size: 2.4rem; color: var(--red-ink); flex: none; }
.tool-band span { font-size: 1.45rem; color: var(--gray); line-height: 1.6; }
.tool-band b { display: block; font-size: 1.7rem; font-weight: 500; color: var(--dark); letter-spacing: -0.02em; }
.tool-band .go { margin-left: auto; flex: none; font-size: 1.4rem; font-weight: 500; color: var(--red-ink); white-space: nowrap; }
@media (max-width: 700px) { .tool-band { flex-wrap: wrap; } .tool-band .go { margin-left: 0; } }


/* ============================================================
   2026-09-24 — Ajustes de conversión: header limpio, redes, marcas,
   prueba social en landings, video sin autoplay, landing conjuntos
   ============================================================ */
/* Header: botón de WhatsApp con el mismo tamaño que los demás íconos */
.header .icons a.nav-wa { width: 3.6rem; height: 3.6rem; border-radius: var(--radius-sm); background: rgba(37,211,102,0.12);
  color: #15803D; display: flex; align-items: center; justify-content: center; font-size: 1.7rem; transition: var(--transition); }
.header .icons a.nav-wa:hover { background: #25D366; color: var(--white); }
.header .icons div[role="button"] { cursor: pointer; }

/* Hero: botones más cortos y el de WhatsApp verde */
.hero-actions .btn-wa { background: #15803D; color: var(--white); }
.hero-actions .btn-wa:hover { background: #166534; }
.hero-actions .btn-wa i { margin-right: 0.6rem; }

/* Franja de marcas (texto, sin logos) */
.marcas-band { background: var(--white); border-top: 0.5px solid rgba(0,0,0,0.06); border-bottom: 0.5px solid rgba(0,0,0,0.06);
  padding: 2.2rem 8%; display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 3rem; }
.marcas-lbl { font-size: 1.2rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(0,0,0,0.55); font-weight: 500; }
.marcas-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.8rem 1rem; }
.marcas-list li { font-size: 1.35rem; font-weight: 500; color: var(--dark); padding: 0.6rem 1.2rem; border: 0.5px solid rgba(0,0,0,0.14);
  border-radius: 99rem; background: var(--cream); white-space: nowrap; }
.marcas-list li:last-child { color: var(--red-ink); border-color: rgba(204,55,45,0.35); background: #fff3f2; }
@media (max-width: 700px) { .marcas-band { padding: 1.8rem 5%; } .marcas-list li { font-size: 1.25rem; } }

/* Video "Sobre nosotros": ya no se descarga solo; poster + botón de reproducir */
.about .video video { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius, 1.6rem); background: #000; cursor: pointer; }

/* Footer: redes sociales */
.footer-social { display: flex; gap: 0.8rem; margin-top: 1.4rem; }
.footer-social a { width: 3.6rem; height: 3.6rem; border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.85); font-size: 1.5rem; transition: var(--transition); }
.footer-social a:hover { background: var(--red); color: var(--white); }

/* Landings: franja de confianza bajo el hero y precio ancla */
.lp-confianza { background: var(--dark); color: var(--white); padding: 2rem 8%; }
.lp-confianza .in { max-width: 120rem; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 1.6rem 4rem; align-items: center; }
.lp-conf-item { display: flex; align-items: baseline; gap: 1rem; font-size: 1.35rem; color: rgba(255,255,255,0.78); max-width: 34rem; line-height: 1.4; }
.lp-conf-item b { font-size: 2.6rem; font-weight: 500; letter-spacing: -0.04em; color: var(--red); white-space: nowrap; }
.lp-conf-marcas { margin-left: auto; font-size: 1.3rem; color: rgba(255,255,255,0.86); font-weight: 500; }
.lp-conf-marcas span { color: rgba(255,255,255,0.58); font-weight: 400; margin-right: 0.6rem; }
@media (max-width: 900px) { .lp-conf-marcas { margin-left: 0; } .lp-confianza { padding: 1.8rem 5%; } }
.lp-precio { font-size: 1.45rem; color: var(--dark); background: #fff3f2; border: 0.5px solid rgba(204,55,45,0.3); border-radius: 0.8rem;
  padding: 0.9rem 1.2rem; margin: -0.4rem 0 1.4rem; }
.lp-precio b { color: var(--red-ink); font-weight: 600; }

/* Cuadrícula de soluciones con 6 landings + la celda oscura: la celda oscura ocupa 2 columnas en la última fila */
.sol-grid a.sol-cta { grid-column: span 2; }
@media (max-width: 900px) { .sol-grid a.sol-cta { grid-column: auto; } }

/* ── Hub /soluciones agrupado por pilar (2026-09-25) ──────── */
.pilar-sec { padding: 1rem 8% 4.5rem; background: var(--cream); }
.pilar-sec + .pilar-sec { padding-top: 0; }
.pilar-head { max-width: 62rem; margin-bottom: 2rem; }
.pilar-head .ph-label { display: flex; align-items: center; gap: 0.8rem; color: var(--pilar); font-size: 1.3rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 0.8rem; }
.pilar-head .ph-dot { width: 0.9rem; height: 0.9rem; border-radius: 50%; background: var(--pilar); display: inline-block; }
.pilar-head h2 { font-size: clamp(2.2rem, 3vw, 2.8rem); letter-spacing: -0.04em; margin-bottom: 0.8rem; line-height: 1.15; }
.pilar-head p { font-size: 1.5rem; color: var(--gray); line-height: 1.7; }
.pilar-sec .sol-grid a { border-top: 3px solid var(--pilar); }
.pilar-sec .sol-grid .case-pillar { color: var(--pilar); }
.sol-grid.sol-grid-2 { grid-template-columns: repeat(2, 1fr); }
.sol-grid a.sol-cta { grid-column: auto; }
.soluciones-idx .sol-grid a.sol-cta { grid-column: 1 / -1; text-align: center; }
.soluciones-idx .sol-grid a.sol-cta i { margin-left: auto; margin-right: auto; }
@media (max-width: 991px) { .sol-grid, .sol-grid.sol-grid-2 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .sol-grid, .sol-grid.sol-grid-2 { grid-template-columns: 1fr; } }


/* ============================================================
   2026-10-07 — SEO, rendimiento y accesibilidad
   ============================================================ */
/* Accesible solo para lectores de pantalla (labels de formularios) */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Tarjetas de proyecto: la foto es un <img> real (lazy, indexable, con alt) en vez de background-image */
.case-img.has-photo { position: relative; overflow: hidden; background: var(--dark); }
.case-img.has-photo .case-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.case-img.has-photo::before { z-index: 1; }
.case-img.has-photo > * { position: relative; z-index: 2; }
.case-img.has-photo > .case-photo { position: absolute; z-index: 0; }

/* Títulos de las tarjetas del hero (antes <h4>: rompían la jerarquía de encabezados) */
.glass-card .glass-title { font-size: 1.35rem; font-weight: 500; color: var(--dark); margin-bottom: 0.2rem; line-height: 1.3; }

/* Migas de pan */
.migas { font-size: 1.25rem; color: var(--gray); display: flex; flex-wrap: wrap; gap: 0.4rem 0.8rem; align-items: center; padding: 1.4rem 8% 0; }
.migas a { color: var(--gray); text-decoration: underline; text-underline-offset: 0.2em; }
.migas a:hover { color: var(--dark); }
.migas span[aria-current] { color: var(--dark); }
.lp .migas { background: var(--cream); padding-top: 1.6rem; }
.cs-hero .migas { padding: 0 0 1.6rem; justify-content: center; color: rgba(255,255,255,0.7); }
.cs-hero .migas a { color: rgba(255,255,255,0.7); }
.cs-hero .migas span[aria-current] { color: var(--white); }

/* Landings: tabla comparativa */
.lp-tabla { width: 100%; border-collapse: collapse; font-size: 1.4rem; background: var(--white); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.lp-tabla th, .lp-tabla td { padding: 1.4rem 1.6rem; text-align: left; border-bottom: 0.5px solid rgba(0,0,0,0.08); vertical-align: top; line-height: 1.5; }
.lp-tabla thead th { background: var(--dark); color: var(--white); font-weight: 500; font-size: 1.25rem; letter-spacing: 0.05em; text-transform: uppercase; }
.lp-tabla tbody th { font-weight: 500; color: var(--dark); white-space: nowrap; }
.lp-tabla td { color: rgba(0,0,0,0.7); }
.lp-tabla-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 1rem; }

/* Landings: marcas con las que trabajamos */
.lp-marcas { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.lp-marcas span { font-size: 1.3rem; padding: 0.8rem 1.4rem; border: 0.5px solid rgba(0,0,0,0.12); border-radius: var(--radius-pill); color: rgba(0,0,0,0.7); background: var(--white); }

/* Landings: soluciones relacionadas */
.lp-rel { display: grid; grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr)); gap: 1.6rem; }
.lp-rel a { display: block; background: var(--white); border: 0.5px solid rgba(0,0,0,0.08); border-radius: var(--radius); padding: 2.2rem; color: inherit; transition: var(--transition); }
.lp-rel a:hover { border-color: var(--dark); transform: translateY(-2px); }
.lp-rel a i { color: var(--red-ink); font-size: 1.8rem; display: block; margin-bottom: 1.2rem; }
.lp-rel a .case-pillar { margin-bottom: 0.6rem; display: block; }
.lp-rel a h3 { font-size: 1.6rem; font-weight: 500; letter-spacing: -0.03em; margin-bottom: 0.6rem; }
.lp-rel a p { font-size: 1.35rem; color: var(--gray); line-height: 1.6; }

/* Landings: sectores (chips grandes) */
.lp-sectores { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
@media (max-width: 900px) { .lp-sectores { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .lp-sectores { grid-template-columns: 1fr; } }
/* Alcance con 9 ítems: 3 columnas para que no quede una celda huérfana */
.lp-inc.cols-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .lp-inc.cols-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .lp-inc.cols-3 { grid-template-columns: 1fr; } }
.lp-sectores div { background: var(--white); border-radius: var(--radius); padding: 1.8rem 2rem; border: 0.5px solid rgba(0,0,0,0.08); }
.lp-sectores b { display: block; font-weight: 500; font-size: 1.5rem; margin-bottom: 0.4rem; }
.lp-sectores span { font-size: 1.3rem; color: var(--gray); line-height: 1.55; }

/* Enlaces de texto sobre fondo claro: rojo con contraste AA (el rojo de marca se mantiene en fondos oscuros y botones) + subrayado (axe: link-in-text-block) */
.sec-sub a, .lp-inc p a, .lp-sectores span a, .post-content a:not(.btn), .lp-faq .r a { color: var(--red-ink); text-decoration: underline; text-underline-offset: 0.15em; }
/* El "Axis" del logotipo sobre fondo claro: mismo rojo de tinta (4.9:1 sobre crema) */
.logo .main em, .lp-top .logo em, .logo-text .main em { color: var(--red-ink); }
.footer-logo span, .why .logo em { color: var(--red); }

/* Botones del header como <button>: mismo aspecto, enfocables con teclado */
.header .icons button { border: 0; font-family: inherit; }
.header .icons button:focus-visible, .header .icons a:focus-visible, .nav-cta:focus-visible { outline: 2px solid var(--dark); outline-offset: 2px; }
@media (max-width: 991px) {
  .header .icons div, .header .icons button, .header .icons .nav-wa { min-width: 4.4rem; min-height: 4.4rem; }
}

/* Logos del carrusel: tamaño fijo para evitar saltos (CLS) */
.mq-logo { height: 3rem; width: auto; max-width: 14rem; }

/* Artículos: tablas y listas numeradas (ola 1, 2026-10-08) */
.post-content table { width: 100%; border-collapse: collapse; font-size: 1.4rem; margin: 2rem 0 2.8rem; display: block; overflow-x: auto; }
.post-content table thead th { text-align: left; background: var(--dark); color: var(--white); font-weight: 500; font-size: 1.25rem; letter-spacing: 0.04em; text-transform: uppercase; padding: 1.2rem 1.4rem; }
.post-content table td, .post-content table tbody th { padding: 1.1rem 1.4rem; border-bottom: 0.5px solid rgba(0,0,0,0.1); vertical-align: top; line-height: 1.5; text-align: left; }
.post-content table tr:last-child td { border-bottom: none; }
.post-content ol { padding-left: 2.2rem; margin: 1.2rem 0 2rem; }
.post-content ol li { margin-bottom: 0.9rem; line-height: 1.7; }
.post-content h3 { margin-top: 2.4rem; }
