/*
Theme Name: MetaMetrics
Theme URI: https://metametrics.org
Author: Israel Gómez
Author URI: https://metametrics.org
Description: Theme corporativo especializado para MetaMetrics, firma de análisis digital y estudios de opinión. Diseño tecnológico oscuro con identidad de marca (encuestas, análisis, datos), tipos de contenido a medida para Encuestas y Análisis, y páginas de servicios para empresas y gobiernos.
Version: 1.4.2
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: metametrics
Tags: custom-colors, custom-logo, custom-menu, featured-images, translation-ready, full-width-template, threaded-comments
*/

/* ==========================================================================
   MetaMetrics — Design tokens
   Paleta derivada del logo oficial (cian → azul → morado sobre navy)
   ========================================================================== */
:root{
  /* Base */
  --mm-navy:      #020236;   /* fondo más profundo (del branding) */
  --mm-navy-2:    #070a33;   /* fondo de secciones */
  --mm-panel:     #0c1046;   /* paneles / cards */
  --mm-panel-2:   #11164f;   /* cards elevadas */
  --mm-line:      #23285f;   /* bordes sutiles */

  /* Marca (extraídos del logo) */
  --mm-cyan:      #22d3ee;
  --mm-cyan-2:    #18d8fc;
  --mm-blue:      #5484f0;
  --mm-purple:    #8651fb;
  --mm-purple-2:  #9c18f0;

  /* Texto */
  --mm-text:      #eef0ff;
  --mm-muted:     #9aa0d6;
  --mm-dim:       #6b70a6;

  /* Gradientes de marca */
  --mm-grad:        linear-gradient(90deg, var(--mm-cyan) 0%, var(--mm-blue) 48%, var(--mm-purple) 100%);
  --mm-grad-soft:   linear-gradient(135deg, rgba(34,211,238,.18), rgba(132,84,251,.18));
  --mm-grad-border: linear-gradient(135deg, rgba(34,211,238,.7), rgba(84,132,240,.35) 45%, rgba(156,24,240,.7));

  /* Sombra / glow */
  --mm-glow-cyan:   0 0 40px rgba(34,211,238,.35);
  --mm-glow-purple: 0 0 40px rgba(134,81,251,.35);
  --mm-shadow:      0 24px 60px -20px rgba(2,2,54,.8);

  /* Tipos */
  --mm-display: "Space Grotesk", "Inter", system-ui, sans-serif;
  --mm-body:    "Inter", system-ui, -apple-system, sans-serif;
  --mm-mono:    "IBM Plex Mono", "SFMono-Regular", ui-monospace, monospace;

  /* Layout */
  --mm-max: 1200px;
  --mm-radius: 18px;
  --mm-radius-sm: 12px;
  --mm-ease: cubic-bezier(.2,.7,.2,1);
}

/* ==========================================================================
   Reset base
   ========================================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--mm-body);
  color:var(--mm-text);
  background:var(--mm-navy);
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--mm-cyan); text-decoration:none; transition:color .2s var(--mm-ease); }
a:hover{ color:#fff; }
h1,h2,h3,h4{ font-family:var(--mm-display); line-height:1.1; font-weight:600; letter-spacing:-.02em; margin:0 0 .5em; }
p{ margin:0 0 1em; }
ul{ margin:0; padding:0; }

/* Ambient background: dot-grid + glows (fijo detrás de todo) */
body::before{
  content:""; position:fixed; inset:0; z-index:-2;
  background:
    radial-gradient(900px 600px at 12% -5%, rgba(34,211,238,.10), transparent 60%),
    radial-gradient(900px 700px at 100% 8%, rgba(134,81,251,.12), transparent 55%),
    var(--mm-navy);
}
body::after{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background-image:radial-gradient(rgba(124,77,255,.16) 1.4px, transparent 1.6px);
  background-size:34px 34px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.55), transparent 42%);
  -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.55), transparent 42%);
}

/* ==========================================================================
   Utilities
   ========================================================================== */
.mm-container{ width:100%; max-width:var(--mm-max); margin-inline:auto; padding-inline:24px; }
.mm-section{ padding:96px 0; position:relative; }
.mm-narrow{ max-width:760px; }
.mm-center{ text-align:center; margin-inline:auto; }
.mm-gradient-text{
  background:var(--mm-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.mm-eyebrow{
  font-family:var(--mm-mono); font-size:.74rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--mm-cyan); display:inline-flex; align-items:center; gap:.6em; margin-bottom:1.1rem;
}
.mm-eyebrow::before{ content:""; width:26px; height:1px; background:var(--mm-grad); }
.mm-section-title{ font-size:clamp(1.9rem, 3.6vw, 2.9rem); margin-bottom:.35em; }
.mm-lead{ color:var(--mm-muted); font-size:1.12rem; max-width:640px; }

/* Botones */
.mm-btn{
  --pad:14px 26px;
  display:inline-flex; align-items:center; gap:.55em; padding:var(--pad);
  font-family:var(--mm-display); font-weight:500; font-size:.98rem; letter-spacing:.01em;
  border-radius:12px; cursor:pointer; border:1px solid transparent; transition:all .25s var(--mm-ease);
  white-space:nowrap;
}
.mm-btn-primary{
  color:#04061e; background:var(--mm-grad); box-shadow:0 10px 30px -8px rgba(84,132,240,.5);
}
.mm-btn-primary:hover{ color:#04061e; transform:translateY(-2px); box-shadow:0 16px 40px -8px rgba(84,132,240,.7); }
.mm-btn-ghost{
  color:var(--mm-text); background:rgba(255,255,255,.03); border-color:var(--mm-line);
}
.mm-btn-ghost:hover{ color:#fff; border-color:var(--mm-cyan); background:rgba(34,211,238,.08); }
.mm-btn svg{ width:18px; height:18px; }

/* Card con borde en gradiente */
.mm-card{
  position:relative; background:linear-gradient(180deg, rgba(17,22,79,.75), rgba(12,16,70,.55));
  border-radius:var(--mm-radius); padding:30px; border:1px solid var(--mm-line);
  transition:transform .3s var(--mm-ease), border-color .3s var(--mm-ease), box-shadow .3s var(--mm-ease);
  backdrop-filter:blur(6px);
}
.mm-card:hover{ transform:translateY(-6px); border-color:transparent; box-shadow:var(--mm-shadow); }
.mm-card:hover::before{ opacity:1; }
.mm-card::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1px;
  background:var(--mm-grad-border);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  opacity:0; transition:opacity .3s var(--mm-ease); pointer-events:none;
}

/* Reveal on scroll */
.mm-reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--mm-ease), transform .7s var(--mm-ease); }
.mm-reveal.is-in{ opacity:1; transform:none; }

/* ==========================================================================
   Header
   ========================================================================== */
.mm-header{
  position:sticky; top:0; z-index:100; transition:background .3s var(--mm-ease), border-color .3s var(--mm-ease);
  border-bottom:1px solid transparent;
}
.mm-header.is-stuck{
  background:rgba(4,6,32,.72); backdrop-filter:blur(16px) saturate(140%);
  border-bottom-color:var(--mm-line);
}
.mm-header-inner{ display:flex; align-items:center; justify-content:space-between; height:76px; gap:24px; }
.mm-brand{ display:flex; align-items:center; gap:12px; }
.mm-brand img{ height:30px; width:auto; }
.mm-brand .mm-brand-text{ font-family:var(--mm-display); font-weight:600; font-size:1.15rem; letter-spacing:-.02em; color:#fff; }
.mm-brand .mm-brand-text b{ font-weight:700; }

.mm-nav{ display:flex; align-items:center; gap:6px; }
.mm-nav ul{ display:flex; align-items:center; gap:4px; list-style:none; }
.mm-nav a{
  font-family:var(--mm-display); font-weight:500; font-size:.92rem; color:var(--mm-muted);
  padding:9px 15px; border-radius:9px; position:relative; letter-spacing:.02em;
}
.mm-nav a:hover, .mm-nav .current-menu-item > a{ color:#fff; background:rgba(255,255,255,.04); }
.mm-header-cta{ display:flex; align-items:center; gap:14px; }

.mm-burger{ display:none; background:none; border:0; cursor:pointer; padding:8px; }
.mm-burger span{ display:block; width:24px; height:2px; background:#fff; margin:5px 0; border-radius:2px; transition:.3s var(--mm-ease); }
.mm-burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.mm-burger.is-open span:nth-child(2){ opacity:0; }
.mm-burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ==========================================================================
   Hero
   ========================================================================== */
.mm-hero{ position:relative; padding:70px 0 90px; overflow:hidden; }
.mm-hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
.mm-hero h1{ font-size:clamp(2.4rem, 5.2vw, 4rem); line-height:1.03; margin-bottom:.4em; }
.mm-hero .mm-lead{ font-size:1.2rem; max-width:540px; }
.mm-hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.mm-hero-tag{
  display:inline-flex; align-items:center; gap:.6em; font-family:var(--mm-mono); font-size:.76rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--mm-cyan);
  border:1px solid var(--mm-line); background:rgba(34,211,238,.06); padding:7px 14px; border-radius:100px; margin-bottom:26px;
}
.mm-hero-tag .mm-dot{ width:7px; height:7px; border-radius:50%; background:var(--mm-cyan); box-shadow:0 0 10px var(--mm-cyan); animation:mm-pulse 1.8s infinite; }
@keyframes mm-pulse{ 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(.7)} }

/* Trust stats */
.mm-hero-stats{ display:flex; gap:38px; margin-top:44px; flex-wrap:wrap; }
.mm-stat .mm-stat-num{ font-family:var(--mm-display); font-weight:700; font-size:2rem; line-height:1; }
.mm-stat .mm-stat-label{ font-family:var(--mm-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mm-dim); margin-top:8px; }

/* Signature: panel de "señal de datos" que evoca el ícono del logo */
.mm-signal{
  position:relative; aspect-ratio:1/1; border-radius:26px; padding:34px;
  background:linear-gradient(180deg, rgba(12,16,70,.9), rgba(4,6,40,.9));
  border:1px solid var(--mm-line); box-shadow:var(--mm-shadow); overflow:hidden;
}
.mm-signal::before{
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(84,132,240,.08) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(84,132,240,.08) 1px, transparent 1px);
  background-size:38px 38px; mask-image:radial-gradient(circle at 50% 45%, #000, transparent 78%);
  -webkit-mask-image:radial-gradient(circle at 50% 45%, #000, transparent 78%);
}
.mm-signal-head{ display:flex; justify-content:space-between; align-items:center; position:relative; margin-bottom:8px; }
.mm-signal-head .mm-chip{ font-family:var(--mm-mono); font-size:.68rem; letter-spacing:.16em; color:var(--mm-muted); text-transform:uppercase; }
.mm-signal-head .mm-live{ display:inline-flex; align-items:center; gap:6px; font-family:var(--mm-mono); font-size:.68rem; color:var(--mm-cyan); }
.mm-signal-head .mm-live i{ width:7px; height:7px; border-radius:50%; background:var(--mm-cyan); box-shadow:0 0 8px var(--mm-cyan); animation:mm-pulse 1.6s infinite; }
/* Barras animadas tipo encuesta */
.mm-bars{ position:relative; display:flex; align-items:flex-end; gap:14px; height:56%; padding:20px 6px 0; }
.mm-bar{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:8px; height:100%; }
.mm-bar .mm-track{ width:12px; flex:1; background:rgba(84,132,240,.12); border-radius:100px; display:flex; align-items:flex-end; overflow:hidden; }
.mm-bar .mm-fill{ width:100%; border-radius:100px; background:var(--mm-grad); transition:height 1.1s var(--mm-ease); box-shadow:0 0 14px rgba(34,211,238,.4); }
.mm-bar .mm-node{ width:11px; height:11px; border-radius:50%; background:#fff; box-shadow:0 0 10px var(--mm-cyan); }
.mm-bar .mm-val{ font-family:var(--mm-mono); font-size:.72rem; color:var(--mm-muted); }
.mm-signal-foot{ position:relative; display:flex; justify-content:space-between; align-items:center; margin-top:20px; padding-top:16px; border-top:1px solid var(--mm-line); }
.mm-signal-foot .mm-metric{ font-family:var(--mm-mono); font-size:.72rem; color:var(--mm-dim); }
.mm-signal-foot .mm-metric b{ color:var(--mm-text); }

/* ==========================================================================
   Servicios (grid)
   ========================================================================== */
.mm-grid{ display:grid; gap:22px; }
.mm-grid-3{ grid-template-columns:repeat(3,1fr); }
.mm-grid-2{ grid-template-columns:repeat(2,1fr); }
.mm-service .mm-ico{
  width:52px; height:52px; border-radius:13px; display:grid; place-items:center; margin-bottom:20px;
  background:var(--mm-grad-soft); border:1px solid var(--mm-line);
}
.mm-service .mm-ico svg{ width:24px; height:24px; stroke:var(--mm-cyan); }
.mm-service h3{ font-size:1.22rem; margin-bottom:.4em; }
.mm-service p{ color:var(--mm-muted); font-size:.98rem; margin:0; }
.mm-service .mm-num{ position:absolute; top:22px; right:26px; font-family:var(--mm-mono); font-size:.72rem; color:var(--mm-dim); }

/* ==========================================================================
   Gobierno (split)
   ========================================================================== */
.mm-split{ display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
.mm-checklist{ list-style:none; display:grid; gap:14px; margin-top:26px; }
.mm-checklist li{ display:flex; gap:14px; align-items:flex-start; font-size:1.02rem; }
.mm-checklist li .mm-check{ flex:none; width:26px; height:26px; border-radius:8px; background:var(--mm-grad-soft); border:1px solid var(--mm-line); display:grid; place-items:center; }
.mm-checklist li .mm-check svg{ width:14px; height:14px; stroke:var(--mm-cyan); }
.mm-visual-gov{
  position:relative; border-radius:22px; overflow:hidden; border:1px solid var(--mm-line);
  background:linear-gradient(135deg, rgba(34,211,238,.08), rgba(134,81,251,.1));
  padding:36px; min-height:360px; display:flex; flex-direction:column; justify-content:space-between;
}
.mm-radar{ position:relative; width:100%; aspect-ratio:1/1; max-width:260px; margin:0 auto; }

/* ==========================================================================
   Proceso (timeline 01/02/03 — es una secuencia real)
   ========================================================================== */
.mm-process{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; position:relative; }
.mm-step{ position:relative; padding-top:30px; }
.mm-step .mm-step-num{ font-family:var(--mm-mono); font-size:.86rem; color:var(--mm-cyan); letter-spacing:.1em; }
.mm-step .mm-step-line{ height:2px; background:var(--mm-line); margin:16px 0 22px; position:relative; overflow:hidden; }
.mm-step .mm-step-line::after{ content:""; position:absolute; left:0; top:0; height:100%; width:40%; background:var(--mm-grad); }
.mm-step:nth-child(2) .mm-step-line::after{ width:70%; }
.mm-step:nth-child(3) .mm-step-line::after{ width:100%; }
.mm-step h3{ font-size:1.3rem; }
.mm-step p{ color:var(--mm-muted); font-size:1rem; margin:0; }

/* ==========================================================================
   Detalle de servicios (empresas / gobiernos)
   ========================================================================== */
.mm-tabs{ display:inline-flex; gap:6px; padding:6px; border-radius:14px; background:rgba(255,255,255,.03); border:1px solid var(--mm-line); margin-bottom:40px; }
.mm-tab{ font-family:var(--mm-display); font-weight:500; font-size:.95rem; color:var(--mm-muted); padding:10px 22px; border-radius:9px; cursor:pointer; border:0; background:transparent; transition:.25s var(--mm-ease); }
.mm-tab.is-active{ color:#04061e; background:var(--mm-grad); }
.mm-tabpanel{ display:none; }
.mm-tabpanel.is-active{ display:block; animation:mm-fade .5s var(--mm-ease); }
@keyframes mm-fade{ from{opacity:0; transform:translateY(12px)} to{opacity:1; transform:none} }
.mm-feature{ display:flex; gap:18px; padding:26px 0; border-bottom:1px solid var(--mm-line); }
.mm-feature:last-child{ border-bottom:0; }
.mm-feature .mm-feature-ico{ flex:none; width:46px; height:46px; border-radius:12px; background:var(--mm-grad-soft); border:1px solid var(--mm-line); display:grid; place-items:center; }
.mm-feature .mm-feature-ico svg{ width:22px; height:22px; stroke:var(--mm-cyan); }
.mm-feature h4{ font-size:1.12rem; margin-bottom:.35em; }
.mm-feature p{ color:var(--mm-muted); margin:0; font-size:.98rem; }

/* ==========================================================================
   Encuestas / Análisis (cards de post types)
   ========================================================================== */
.mm-posts-head{ display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:20px; margin-bottom:38px; }
.mm-post-card{ display:flex; flex-direction:column; padding:0; overflow:hidden; }
.mm-post-card .mm-thumb{ aspect-ratio:16/10; overflow:hidden; background:var(--mm-panel-2); position:relative; }
.mm-post-card .mm-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--mm-ease); }
.mm-post-card:hover .mm-thumb img{ transform:scale(1.05); }
.mm-post-card .mm-thumb.mm-placeholder{ display:grid; place-items:center; background:linear-gradient(135deg, rgba(34,211,238,.14), rgba(134,81,251,.16)); }
.mm-post-card .mm-thumb.mm-placeholder svg{ width:70px; height:70px; opacity:.5; }
.mm-post-body{ padding:26px; display:flex; flex-direction:column; flex:1; }
.mm-post-body .mm-meta{ font-family:var(--mm-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--mm-cyan); margin-bottom:12px; display:flex; gap:14px; flex-wrap:wrap; }
.mm-post-body h3{ font-size:1.2rem; margin-bottom:.5em; }
.mm-post-body h3 a{ color:#fff; }
.mm-post-body h3 a:hover{ color:var(--mm-cyan); }
.mm-post-body p{ color:var(--mm-muted); font-size:.96rem; margin:0 0 18px; }
.mm-post-body .mm-more{ margin-top:auto; font-family:var(--mm-display); font-weight:500; font-size:.92rem; display:inline-flex; align-items:center; gap:.4em; }

/* Ficha técnica de encuesta */
.mm-ficha{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1px; background:var(--mm-line); border:1px solid var(--mm-line); border-radius:14px; overflow:hidden; margin:30px 0; }
.mm-ficha .mm-fi{ background:var(--mm-panel); padding:20px 22px; }
.mm-ficha .mm-fi .k{ font-family:var(--mm-mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--mm-dim); }
.mm-ficha .mm-fi .v{ font-family:var(--mm-display); font-weight:600; font-size:1.15rem; margin-top:6px; }

/* ==========================================================================
   Contacto
   ========================================================================== */
.mm-contact{ position:relative; border-radius:28px; overflow:hidden; padding:64px; border:1px solid var(--mm-line);
  background:linear-gradient(135deg, rgba(12,16,70,.9), rgba(4,6,40,.95)); box-shadow:var(--mm-shadow); }
.mm-contact::before{ content:""; position:absolute; inset:0; background:radial-gradient(600px 300px at 100% 0, rgba(134,81,251,.2), transparent 60%); pointer-events:none; }
.mm-contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:52px; position:relative; }
.mm-form{ display:grid; gap:16px; }
.mm-form .mm-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.mm-form label{ font-family:var(--mm-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--mm-muted); display:block; margin-bottom:8px; }
.mm-form input, .mm-form textarea, .mm-form select{
  width:100%; padding:14px 16px; background:rgba(4,6,32,.6); border:1px solid var(--mm-line); border-radius:11px;
  color:var(--mm-text); font-family:var(--mm-body); font-size:1rem; transition:border-color .25s var(--mm-ease), box-shadow .25s var(--mm-ease);
}
.mm-form input:focus, .mm-form textarea:focus, .mm-form select:focus{ outline:none; border-color:var(--mm-cyan); box-shadow:0 0 0 3px rgba(34,211,238,.15); }
.mm-form textarea{ resize:vertical; min-height:120px; }
.mm-contact-info{ display:grid; gap:24px; align-content:start; }
.mm-contact-info .mm-ci{ display:flex; gap:16px; align-items:flex-start; }
.mm-contact-info .mm-ci .mm-ci-ico{ flex:none; width:44px; height:44px; border-radius:12px; background:var(--mm-grad-soft); border:1px solid var(--mm-line); display:grid; place-items:center; }
.mm-contact-info .mm-ci .mm-ci-ico svg{ width:20px; height:20px; stroke:var(--mm-cyan); }
.mm-contact-info .mm-ci .k{ font-family:var(--mm-mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--mm-dim); }
.mm-contact-info .mm-ci .v{ font-family:var(--mm-display); font-weight:500; font-size:1.05rem; }

/* ==========================================================================
   Footer
   ========================================================================== */
.mm-footer{ border-top:1px solid var(--mm-line); padding:64px 0 30px; margin-top:40px; position:relative; }
.mm-footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; }
.mm-footer .mm-brand img{ height:28px; }
.mm-footer p{ color:var(--mm-muted); font-size:.95rem; max-width:300px; }
.mm-footer h4{ font-family:var(--mm-mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--mm-dim); margin-bottom:18px; }
.mm-footer ul{ list-style:none; display:grid; gap:10px; }
.mm-footer ul a{ color:var(--mm-muted); font-size:.95rem; }
.mm-footer ul a:hover{ color:#fff; }
.mm-footer-bottom{ display:flex; justify-content:space-between; align-items:center; margin-top:52px; padding-top:26px; border-top:1px solid var(--mm-line); flex-wrap:wrap; gap:14px; }
.mm-footer-bottom p{ margin:0; font-size:.86rem; color:var(--mm-dim); }
.mm-social{ display:flex; gap:10px; }
.mm-social a{ width:38px; height:38px; border-radius:10px; border:1px solid var(--mm-line); display:grid; place-items:center; color:var(--mm-muted); }
.mm-social a:hover{ border-color:var(--mm-cyan); color:#fff; background:rgba(34,211,238,.08); }
.mm-social svg{ width:18px; height:18px; }

/* ==========================================================================
   Contenido genérico (single / page / blog)
   ========================================================================== */
.mm-page-hero{ padding:120px 0 40px; }
.mm-page-hero .mm-eyebrow{ margin-bottom:16px; }
.mm-page-hero h1{ font-size:clamp(2.2rem,4.4vw,3.4rem); max-width:820px; }
.mm-article{ max-width:760px; margin-inline:auto; font-size:1.08rem; }
.mm-article img{ border-radius:14px; margin:28px 0; }
.mm-article h2{ font-size:1.7rem; margin-top:1.6em; }
.mm-article h3{ font-size:1.35rem; margin-top:1.4em; }
.mm-article a{ text-decoration:underline; text-underline-offset:3px; }
.mm-article blockquote{ border-left:3px solid var(--mm-cyan); padding-left:22px; margin:26px 0; color:var(--mm-muted); font-style:italic; }
.mm-article ul, .mm-article ol{ padding-left:22px; margin:0 0 1.2em; }
.mm-article li{ margin-bottom:.5em; }
.mm-article code{ font-family:var(--mm-mono); background:rgba(4,6,32,.7); padding:2px 7px; border-radius:6px; font-size:.9em; border:1px solid var(--mm-line); }
.mm-article pre{ background:rgba(4,6,32,.7); padding:20px; border-radius:12px; overflow:auto; border:1px solid var(--mm-line); }

.mm-pagination{ display:flex; justify-content:center; gap:8px; margin-top:56px; }
.mm-pagination .page-numbers{ min-width:42px; height:42px; display:grid; place-items:center; border-radius:10px; border:1px solid var(--mm-line); color:var(--mm-muted); font-family:var(--mm-mono); font-size:.9rem; padding:0 12px; }
.mm-pagination .page-numbers.current{ background:var(--mm-grad); color:#04061e; border-color:transparent; }
.mm-pagination a.page-numbers:hover{ border-color:var(--mm-cyan); color:#fff; }

/* ==========================================================================
   MEJORAS v1.1 — Fondo animado, contraste de secciones, ticker, contadores
   ========================================================================== */

/* --- Hero: canvas de red de datos + auroras --- */
.mm-hero{ isolation:isolate; }
#mm-hero-canvas{
  position:absolute; inset:0; width:100%; height:100%; z-index:-1;
  opacity:.9; pointer-events:none;
}
.mm-hero::after{ /* viñeta para fundir el canvas con el fondo */
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% 0%, transparent 40%, var(--mm-navy) 92%),
    linear-gradient(180deg, transparent 60%, var(--mm-navy) 100%);
}

/* Auroras: manchas de gradiente que flotan lentamente (todo el sitio) */
.mm-aurora{ position:fixed; inset:0; z-index:-2; overflow:hidden; pointer-events:none; }
.mm-aurora span{
  position:absolute; display:block; border-radius:50%; filter:blur(80px); opacity:.5;
  mix-blend-mode:screen; will-change:transform;
}
.mm-aurora .a1{ width:520px; height:520px; left:-140px; top:-120px;
  background:radial-gradient(circle, rgba(34,211,238,.55), transparent 65%); animation:mm-float1 22s ease-in-out infinite; }
.mm-aurora .a2{ width:600px; height:600px; right:-160px; top:-80px;
  background:radial-gradient(circle, rgba(134,81,251,.5), transparent 65%); animation:mm-float2 26s ease-in-out infinite; }
.mm-aurora .a3{ width:460px; height:460px; left:40%; top:38%;
  background:radial-gradient(circle, rgba(84,132,240,.4), transparent 68%); animation:mm-float3 30s ease-in-out infinite; }
@keyframes mm-float1{ 0%,100%{transform:translate(0,0)} 50%{transform:translate(90px,60px)} }
@keyframes mm-float2{ 0%,100%{transform:translate(0,0)} 50%{transform:translate(-80px,80px)} }
@keyframes mm-float3{ 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(50px,-50px) scale(1.15)} }

/* --- Contraste entre secciones --- */
.mm-section{ isolation:isolate; }
/* Banda oscura elevada */
.mm-section--alt{ background:
    linear-gradient(180deg, rgba(4,6,32,.55), rgba(7,10,51,.85)),
    var(--mm-navy-2);
  border-block:1px solid var(--mm-line); }
/* Banda con acento de marca (glow lateral) */
.mm-section--accent{ position:relative; }
.mm-section--accent::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(700px 380px at 88% 12%, rgba(134,81,251,.16), transparent 60%),
    radial-gradient(600px 340px at 6% 92%, rgba(34,211,238,.14), transparent 60%);
}
/* Banda con textura mesh (imagen generada) */
.mm-section--mesh{ position:relative; }
.mm-section--mesh::before{
  content:""; position:absolute; inset:0; z-index:-1; opacity:.5; pointer-events:none;
  background-image:var(--mm-mesh); background-size:cover; background-position:center;
  mask-image:linear-gradient(180deg, transparent, #000 30%, #000 70%, transparent);
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 30%, #000 70%, transparent);
}
/* Divisor de gradiente entre secciones */
.mm-divider{ height:1px; border:0; margin:0;
  background:linear-gradient(90deg, transparent, rgba(84,132,240,.5) 20%, rgba(134,81,251,.5) 80%, transparent); }

/* --- Ticker / marquee de métricas (estilo dashboard) --- */
.mm-ticker{
  position:relative; overflow:hidden; border-block:1px solid var(--mm-line);
  background:linear-gradient(90deg, rgba(4,6,32,.9), rgba(12,16,70,.6), rgba(4,6,32,.9));
  padding:16px 0;
}
.mm-ticker::before, .mm-ticker::after{
  content:""; position:absolute; top:0; bottom:0; width:120px; z-index:2; pointer-events:none;
}
.mm-ticker::before{ left:0; background:linear-gradient(90deg, var(--mm-navy), transparent); }
.mm-ticker::after{ right:0; background:linear-gradient(270deg, var(--mm-navy), transparent); }
.mm-ticker-track{ display:flex; gap:0; width:max-content; animation:mm-marquee 34s linear infinite; }
.mm-ticker:hover .mm-ticker-track{ animation-play-state:paused; }
.mm-ticker-item{
  display:inline-flex; align-items:center; gap:12px; padding:0 34px;
  font-family:var(--mm-mono); font-size:.82rem; letter-spacing:.08em; color:var(--mm-muted); white-space:nowrap;
}
.mm-ticker-item b{ color:var(--mm-text); font-weight:500; }
.mm-ticker-item .mm-tk-dot{ width:7px; height:7px; border-radius:50%; background:var(--mm-grad); box-shadow:0 0 10px rgba(34,211,238,.6); }
@keyframes mm-marquee{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* --- Imágenes en tarjetas de encuestas (demo con thumb generado) --- */
.mm-thumb.mm-img{ display:block; }
.mm-thumb.mm-img::after{ /* barrido de brillo al hover */
  content:""; position:absolute; inset:0; background:linear-gradient(120deg, transparent 40%, rgba(255,255,255,.12) 50%, transparent 60%);
  transform:translateX(-120%); transition:transform .8s var(--mm-ease); pointer-events:none;
}
.mm-post-card:hover .mm-thumb.mm-img::after{ transform:translateX(120%); }
.mm-thumb .mm-tag-live{
  position:absolute; top:14px; left:14px; z-index:2; display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mm-mono); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:#eaf6ff;
  background:rgba(4,6,32,.6); border:1px solid var(--mm-line); padding:5px 10px; border-radius:100px; backdrop-filter:blur(6px);
}
.mm-thumb .mm-tag-live i{ width:6px; height:6px; border-radius:50%; background:var(--mm-cyan); box-shadow:0 0 8px var(--mm-cyan); animation:mm-pulse 1.6s infinite; }

/* --- Tarjetas de servicio: brillo animado del ícono --- */
.mm-service .mm-ico{ position:relative; overflow:hidden; }
.mm-service .mm-ico::after{
  content:""; position:absolute; inset:-40%; background:conic-gradient(from 0deg, transparent, rgba(34,211,238,.25), transparent 30%);
  animation:mm-spin 6s linear infinite; opacity:0; transition:opacity .3s var(--mm-ease);
}
.mm-service:hover .mm-ico::after{ opacity:1; }
@keyframes mm-spin{ to{ transform:rotate(360deg); } }

/* --- Franja de capacidades (chips tech) --- */
.mm-caps{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:30px; }
.mm-cap{
  font-family:var(--mm-mono); font-size:.76rem; letter-spacing:.06em; color:var(--mm-muted);
  border:1px solid var(--mm-line); background:rgba(255,255,255,.02); padding:9px 16px; border-radius:100px;
  display:inline-flex; align-items:center; gap:9px; transition:.25s var(--mm-ease);
}
.mm-cap:hover{ color:#fff; border-color:var(--mm-cyan); background:rgba(34,211,238,.06); transform:translateY(-2px); }
.mm-cap b{ color:var(--mm-cyan); font-weight:500; }

/* --- Contadores (números que suben) --- */
.mm-stat-num[data-count]{ font-variant-numeric:tabular-nums; }

/* --- Scroll progress bar (barra superior de marca) --- */
.mm-progress{ position:fixed; top:0; left:0; height:3px; width:0; z-index:200; background:var(--mm-grad); box-shadow:0 0 12px rgba(34,211,238,.6); transition:width .1s linear; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:960px){
  .mm-hero-grid{ grid-template-columns:1fr; gap:40px; }
  .mm-signal{ max-width:440px; margin-inline:auto; }
  .mm-grid-3{ grid-template-columns:repeat(2,1fr); }
  .mm-split, .mm-contact-grid{ grid-template-columns:1fr; gap:36px; }
  .mm-process{ grid-template-columns:1fr; }
  .mm-footer-grid{ grid-template-columns:1fr 1fr; gap:32px; }
  .mm-contact{ padding:40px 30px; }

  /* Nav mobile */
  .mm-nav{
    position:fixed; inset:76px 0 auto 0; flex-direction:column; align-items:stretch;
    background:rgba(4,6,32,.97); backdrop-filter:blur(18px); border-bottom:1px solid var(--mm-line);
    padding:16px 24px 26px; gap:4px; transform:translateY(-120%); transition:transform .35s var(--mm-ease); max-height:calc(100vh - 76px); overflow:auto;
  }
  .mm-nav.is-open{ transform:none; }
  .mm-nav ul{ flex-direction:column; align-items:stretch; gap:2px; width:100%; }
  .mm-nav a{ padding:14px 12px; font-size:1rem; }
  .mm-burger{ display:block; }
  .mm-header-cta .mm-btn{ display:none; }
}
@media (max-width:600px){
  body{ font-size:16px; }
  .mm-section{ padding:64px 0; }
  .mm-grid-3, .mm-grid-2{ grid-template-columns:1fr; }
  .mm-footer-grid{ grid-template-columns:1fr; }
  .mm-hero-stats{ gap:26px; }
  .mm-contact{ padding:32px 22px; }
  .mm-form .mm-row{ grid-template-columns:1fr; }
  /* Aligerar efectos en móviles de gama baja */
  .mm-aurora span{ filter:blur(60px); opacity:.4; }
  .mm-ticker-item{ padding:0 22px; font-size:.76rem; }
  #mm-hero-canvas{ opacity:.7; }
}

/* Accesibilidad: respetar reduce-motion */
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .mm-reveal{ opacity:1; transform:none; }
}
:focus-visible{ outline:2px solid var(--mm-cyan); outline-offset:3px; border-radius:4px; }
.screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); }

/* ---- Aviso del formulario de contacto integrado ---- */
.mm-form-note{padding:12px 16px;border-radius:12px;margin-bottom:16px;font-size:.92rem;border:1px solid var(--mm-line);}
.mm-form-note.mm-ok{background:rgba(34,211,238,.10);border-color:rgba(34,211,238,.5);color:var(--mm-text);}
.mm-form-note.mm-err{background:rgba(240,64,110,.10);border-color:rgba(240,64,110,.5);color:#ffd7e0;}

/* =========================================================================
 * CAPA DE COMPATIBILIDAD CON PLUGINS / SHORTCODES
 * Normaliza controles y elementos de terceros dentro del contenido
 * (.mm-article: entradas y páginas) para que hereden el estilo oscuro.
 * No afecta a las páginas construidas con Elementor (.mm-fullwidth).
 * ====================================================================== */

/* Campos de formulario */
.mm-article input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),
.mm-article select,
.mm-article textarea{
  background: var(--mm-panel-2) !important;
  color: var(--mm-text) !important;
  border: 1px solid var(--mm-line) !important;
  border-radius: var(--mm-radius-sm) !important;
  padding: 11px 14px !important;
  font-family: var(--mm-body) !important;
  font-size: .95rem !important;
  box-shadow: none !important;
  max-width: 100%;
}
.mm-article input::placeholder,
.mm-article textarea::placeholder{ color: var(--mm-dim) !important; }
.mm-article select option{ background: var(--mm-panel); color: var(--mm-text); }
.mm-article input:focus,
.mm-article select:focus,
.mm-article textarea:focus{
  outline: none !important;
  border-color: var(--mm-cyan) !important;
  box-shadow: 0 0 0 3px rgba(34,211,238,.15) !important;
}

/* Botones genéricos de plugins (no los del tema): estilo "ghost" oscuro */
.mm-article button:not(.mm-btn):not(.mm-more),
.mm-article input[type=submit],
.mm-article input[type=button],
.mm-article .button:not(.mm-btn),
.mm-article a.button:not(.mm-btn),
.mm-article .btn:not(.mm-btn),
.mm-article .wp-block-button__link,
.mm-article a[class*="download"],
.mm-article a[class*="pdf"]{
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.03) !important;
  color: var(--mm-text) !important;
  border: 1px solid var(--mm-line) !important;
  border-radius: 999px !important;
  padding: 11px 20px !important;
  font-weight: 600 !important;
  font-size: .92rem !important;
  text-decoration: none !important;
  text-shadow: none !important;
  cursor: pointer;
  transition: border-color .2s var(--mm-ease), color .2s var(--mm-ease), transform .2s var(--mm-ease);
}
.mm-article button:not(.mm-btn):not(.mm-more):hover,
.mm-article input[type=submit]:hover,
.mm-article .button:not(.mm-btn):hover,
.mm-article a.button:not(.mm-btn):hover,
.mm-article .wp-block-button__link:hover,
.mm-article a[class*="download"]:hover,
.mm-article a[class*="pdf"]:hover{
  border-color: var(--mm-cyan) !important;
  color: var(--mm-cyan) !important;
  transform: translateY(-1px);
}

/* Tablas */
.mm-article table{
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--mm-line);
  border-radius: var(--mm-radius-sm);
  overflow: hidden;
  margin: 22px 0;
}
.mm-article th,
.mm-article td{ padding: 12px 14px; border-bottom: 1px solid var(--mm-line); text-align: left; }
.mm-article thead th{
  background: var(--mm-panel);
  color: var(--mm-text);
  font-family: var(--mm-mono);
  font-size: .76rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.mm-article tbody tr:hover{ background: rgba(255,255,255,.02); }

/* Tarjetas/paneles claros comunes de plugins → adaptar al tema */
.mm-article .card,
.mm-article .panel,
.mm-article .box,
.mm-article .widget{
  background: linear-gradient(180deg,var(--mm-panel),var(--mm-navy-2));
  color: var(--mm-text);
  border: 1px solid var(--mm-line);
  border-radius: var(--mm-radius-sm);
}

/* Paginación / flechas de carrusel genéricas */
.mm-article .pagination a,
.mm-article .pagination span,
.mm-article .page-numbers{
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 10px;
  border: 1px solid var(--mm-line); border-radius: 10px;
  color: var(--mm-text); text-decoration: none; margin: 2px;
}
.mm-article .page-numbers.current,
.mm-article .pagination .current{ background: var(--mm-grad); color: #04061f; border-color: transparent; }
