/* === Mocionario — banco de mociones de Debatien.do · acento ROJO ===
   Encolado por FUNAJIT Páginas solo donde hay shortcodes [mocionario_...].

   TODO cuelga de .mo a propósito: el diseño de origen usaba nombres como .card,
   .grid, .wrap, .chip o .hero, que en un WordPress con WPBakery y un tema encima
   chocan con media docena de reglas ajenas. Aquí nada sale de .mo y nada toca
   body ni etiquetas sueltas.
   Rojos: los mismos de Debatien.do (#991B1B / #B91C1C / #DC2626) para que la
   página se lea como parte del programa y no como un micrositio aparte. */

.mo {
	--mo-red:#DC2626; --mo-red-d:#B91C1C; --mo-red-x:#991B1B; --mo-red-soft:#fdf0f0;
	--mo-navy:#001127; --mo-navy-2:#0a1a33;
	--mo-ink:#0a1628; --mo-ink-2:#4b5a75; --mo-grey:#66748c;
	--mo-line:#dee3ec; --mo-soft:#f4f6fb;
	--mo-r:14px;
	--mo-sh:0 2px 10px rgba(10,22,40,.07);
	--mo-sh-lg:0 18px 50px rgba(10,22,40,.18);
	font-family:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
	color:var(--mo-ink);
	-webkit-font-smoothing:antialiased;
}
.mo *, .mo *::before, .mo *::after { box-sizing:border-box; }
/* El reinicio va dentro de :where() a propósito: así pesa CERO y cualquier clase de
   componente lo gana sin pelear. Escrito como `.mo button` pesaba más que `.mo-chip`
   o `.mo-btn` (una clase + una etiqueta contra una clase sola) y les borraba el borde,
   el fondo y el margen a todos los botones y párrafos del módulo. */
:where(.mo p) { margin:0; }
:where(.mo button) { font:inherit; color:inherit; cursor:pointer; border:0; background:none; margin:0; padding:0; text-align:inherit; }
:where(.mo a) { color:var(--mo-red-d); text-decoration:none; }
:where(.mo a:hover) { text-decoration:underline; }

/* Base de TODOS los botones del módulo. Existe porque el tema pinta
   `.button, input[type=button], input[type=submit], button` con fondo cian #54c8ef,
   texto blanco, padding 15px 30px y border-radius propio. Esa regla pesa (0,0,1): más
   que el reinicio de arriba, que va en :where() y pesa cero. Cualquier componente que
   no declarase esas propiedades se volvía un botón cian del tema — pasó con los
   fantasma, los de línea, los iconos de las tarjetas y la equis de cerrar.
   Va ANTES que las clases de componente a propósito: misma especificidad, gana la
   última, así que cada componente sigue poniendo lo suyo encima sin !important. */
.mo-btn, .mo-chip, .mo-mini, .mo-ico, .mo-lvl, .mo-x, .mo-tag {
	background:transparent; color:inherit; line-height:normal;
	padding:0; border:0; border-radius:0; box-shadow:none;
	text-transform:none; letter-spacing:normal;
}
.mo :focus-visible { outline:3px solid rgba(220,38,38,.35); outline-offset:3px; border-radius:6px; }
.mo-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.mo-wrap { max-width:1180px; margin:0 auto; padding:0 22px; }
/* Los controles que no hacen nada sin JavaScript se ocultan solos (ver el
   <noscript> que imprime el módulo); el enlace de respaldo hace lo contrario. */
.mo-nojs { display:none !important; }

/* WPBakery mete margen bajo cada bloque de texto; aquí sobra. */
.fjx-moc-row .wpb_text_column, .fjx-moc-row .wpb_content_element { margin-bottom:0 !important; }
.fjx-moc-row .vc_column-inner, .fjx-moc-row .wpb_column { padding:0 !important; }

/* ---------- hero ----------
   El encabezado del sitio va superpuesto sobre la primera fila (no ocupa espacio
   propio), así que el hero reserva su alto igual que hace debatiendo.css con el
   suyo. Sin esto el menú se come el kicker y el título. */
.mo-herowrap { padding-bottom:34px; background:linear-gradient(180deg,#ffffff 0%,#f9fafc 100%); }
.mo-hero { position:relative; overflow:hidden; padding:170px 0 96px; background:var(--mo-navy); color:#fff; }
.mo-hero::before, .mo-hero::after { content:''; position:absolute; pointer-events:none; }
.mo-hero::before { width:56%; height:190%; right:-6%; top:-52%; background:#2a0c10; transform:rotate(26deg); }
.mo-hero::after { width:70%; height:150%; left:-22%; bottom:-70%; background:var(--mo-navy-2); transform:rotate(20deg); }
.mo-hero .mo-wrap { position:relative; z-index:2; }
.mo-kicker { margin:0 0 12px; font-family:"Outfit",sans-serif; font-size:12px; font-weight:900; letter-spacing:.22em; text-transform:uppercase; color:#f87171; }
.mo-kicker a { color:inherit; }
.mo-h1 { margin:0; font-family:"Outfit",sans-serif; font-size:clamp(34px,6vw,62px); font-weight:900; line-height:1.04; letter-spacing:-.02em; color:#fff; }
.mo-h1 em { font-style:normal; color:#f05252; }
.mo-sub { max-width:660px; margin:18px 0 0; font-size:15.5px; line-height:1.62; color:#b9c3d3; }
.mo-stats { display:flex; flex-wrap:wrap; gap:34px; margin-top:30px; }
.mo-stat b { display:block; font-family:"Outfit",sans-serif; font-size:31px; font-weight:900; line-height:1; color:#f5f1e8; }
.mo-stat span { font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:#8792a6; }
.mo-hero-cta { display:flex; flex-wrap:wrap; gap:11px; margin-top:30px; }

/* ---------- botones ---------- */
.mo-btn { display:inline-flex; align-items:center; gap:9px; padding:13px 22px; border-radius:999px; font-weight:700; font-size:14px; white-space:nowrap; transition:background .16s, border-color .16s, transform .16s; }
.mo-btn:hover { text-decoration:none; }
.mo-btn-red { background:var(--mo-red); color:#fff; }
.mo-btn-red:hover { background:var(--mo-red-d); transform:translateY(-1px); }
.mo-btn-ghost { border:1.5px solid rgba(255,255,255,.3); color:#fff; }
.mo-btn-ghost:hover { border-color:#fff; background:rgba(255,255,255,.1); color:#fff; }
.mo-btn-dark { background:var(--mo-ink); color:#fff; }
.mo-btn-dark:hover { background:#16264f; }
.mo-btn-line { border:1.5px solid var(--mo-line); color:var(--mo-ink); }
.mo-btn-line:hover { border-color:var(--mo-red); color:var(--mo-red-d); }

/* ---------- secciones ---------- */
.mo-sec { padding:40px 0 64px; background:linear-gradient(180deg,#f9fafc 0%,#f4f7fb 100%); }
.mo-sec-soft { background:linear-gradient(180deg,#f2f6fb 0%,#ffffff 100%); }
.mo-h2 { margin:0; font-family:"Outfit",sans-serif; font-size:clamp(22px,3.4vw,32px); font-weight:900; letter-spacing:-.01em; color:var(--mo-ink); }
.mo-rule { width:56px; height:4px; margin:13px 0 16px; border-radius:2px; background:var(--mo-red); }
.mo-lead { max-width:660px; margin:0 0 30px; font-size:14.5px; line-height:1.65; color:var(--mo-ink-2); }

/* ---------- niveles ----------
   Van en la MISMA fila que el hero (las pinta [mocionario_hero]) para que el solape
   del diseño ocurra dentro de un solo contenedor. Colgando de la fila siguiente
   dependía de que dos filas de WPBakery se pisaran, y eso no aguanta un cambio de
   tema, un contexto de apilamiento nuevo ni el reordenado de CSS de LiteSpeed. */
.mo-levels { position:relative; z-index:3; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:-58px; }
.mo-lvl { display:block; width:100%; padding:20px; border:1px solid var(--mo-line); border-top:4px solid var(--mo-red); border-radius:var(--mo-r); background:#fff; box-shadow:var(--mo-sh); text-align:left; transition:transform .18s, box-shadow .18s, background .18s; }
.mo-lvl:hover { transform:translateY(-3px); box-shadow:var(--mo-sh-lg); }
.mo-lvl[aria-pressed="true"] { border-color:var(--mo-red); background:var(--mo-red-soft); }
.mo-lvl1 { border-top-color:#2e9e63; } .mo-lvl2 { border-top-color:#e08a18; } .mo-lvl3 { border-top-color:var(--mo-red); }
.mo-lvl-n { display:block; font-family:"Outfit",sans-serif; font-size:11px; font-weight:900; letter-spacing:.14em; color:var(--mo-red-d); }
.mo-lvl1 .mo-lvl-n { color:#217a4b; } .mo-lvl2 .mo-lvl-n { color:#a9660f; }
.mo-lvl-t { display:block; margin:9px 0 6px; font-family:"Outfit",sans-serif; font-size:16px; font-weight:800; color:var(--mo-ink); }
.mo-lvl-d { display:block; font-size:12.6px; line-height:1.55; color:var(--mo-grey); }

/* ---------- filtros ---------- */
/* --mo-top lo calcula el JS midiendo lo que haya fijo arriba (la cabecera del sitio).
   Si algún ancestro recorta el desbordamiento, sticky simplemente no pega y la barra
   se queda donde está: se degrada sin romper nada. */
.mo-bar { position:sticky; top:var(--mo-top,0px); z-index:20; padding:4px 0 12px; border-bottom:1px solid var(--mo-line); background:rgba(255,255,255,.96); -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px); }
.mo-srow { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.mo-search { position:relative; flex:1; min-width:230px; }
.mo-search svg { position:absolute; left:15px; top:50%; transform:translateY(-50%); color:var(--mo-ink); opacity:.45; }
.mo-search input { width:100%; padding:13px 16px 13px 42px; border:1.5px solid var(--mo-line); border-radius:999px; font:inherit; font-size:14px; color:var(--mo-ink); background:#fff; outline:0; transition:border-color .15s; }
.mo-search input:focus { border-color:var(--mo-red); }
.mo-fgroup { margin-top:12px; }
.mo-flabel { margin:0 0 7px; font-size:10.5px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; color:var(--mo-grey); }
.mo-chips { display:flex; flex-wrap:wrap; gap:7px; }
.mo-chip { padding:7px 14px; border:1.4px solid var(--mo-line); border-radius:999px; background:#fff; font-size:12.6px; font-weight:600; color:var(--mo-ink); transition:.14s; }
.mo-chip:hover { border-color:var(--mo-ink); }
.mo-chip[aria-pressed="true"] { background:var(--mo-ink); border-color:var(--mo-ink); color:#fff; }
.mo-chip-red[aria-pressed="true"] { background:var(--mo-red); border-color:var(--mo-red); }
.mo-chip small { margin-left:5px; font-size:11px; opacity:.55; }
.mo-mini { padding:8px 14px; border:1.4px solid var(--mo-line); border-radius:999px; background:#fff; font-size:12.5px; font-weight:700; color:var(--mo-ink); transition:.14s; }
.mo-mini:hover { border-color:var(--mo-red); color:var(--mo-red-d); }
.mo-mini[aria-pressed="true"] { background:var(--mo-red); border-color:var(--mo-red); color:#fff; }
.mo-meta { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:14px; margin:20px 0 14px; }
.mo-count { font-size:13.5px; color:var(--mo-grey); }
.mo-count b { font-weight:800; color:var(--mo-ink); }
.mo-acts { display:flex; flex-wrap:wrap; gap:8px; }

/* ---------- tarjetas de moción ---------- */
.mo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:16px; }
.mo-card { display:flex; flex-direction:column; padding:18px 18px 14px; border:1px solid var(--mo-line); border-left:4px solid var(--mo-red); border-radius:var(--mo-r); background:#fff; transition:transform .16s, box-shadow .16s; }
.mo-card:hover { transform:translateY(-2px); box-shadow:var(--mo-sh-lg); }
.mo-card-lv1 { border-left-color:#2e9e63; } .mo-card-lv2 { border-left-color:#e08a18; } .mo-card-lv3 { border-left-color:var(--mo-red); }
.mo-card[hidden] { display:none; }
.mo-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:11px; }
.mo-tag { padding:4px 9px; border-radius:5px; background:var(--mo-soft); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--mo-grey); }
.mo-tag-lv { color:#fff; }
.mo-tag-lv1 { background:#2e9e63; } .mo-tag-lv2 { background:#e08a18; } .mo-tag-lv3 { background:var(--mo-red); }
.mo-tag-tp { background:var(--mo-ink); color:#fff; }
.mo-text { flex:1; margin:0 0 12px; font-size:15.5px; font-weight:500; line-height:1.5; }
.mo-info { margin-bottom:11px; padding:10px 12px; border-left:3px solid var(--mo-ink); border-radius:0 8px 8px 0; background:var(--mo-soft); font-size:12.6px; line-height:1.55; color:var(--mo-ink-2); }
.mo-info b { display:block; margin-bottom:4px; font-size:10px; letter-spacing:.13em; text-transform:uppercase; color:var(--mo-red-d); }
.mo-burden { margin-bottom:10px; }
.mo-burden summary { display:flex; align-items:center; gap:6px; padding:7px 0; list-style:none; cursor:pointer; font-size:12px; font-weight:700; color:var(--mo-red-d); }
.mo-burden summary::-webkit-details-marker { display:none; }
.mo-burden summary::after { content:'+'; font-size:15px; font-weight:800; line-height:1; }
.mo-burden[open] summary::after { content:'–'; }
.mo-bur { display:grid; gap:8px; padding:4px 0 2px; }
.mo-bur > div { padding:9px 11px; border-radius:8px; font-size:12.6px; line-height:1.55; }
.mo-bur-p { border-left:3px solid var(--mo-ink); background:#f0f6ff; }
.mo-bur-o { border-left:3px solid var(--mo-red); background:var(--mo-red-soft); }
.mo-bur strong { display:block; margin-bottom:3px; font-size:10px; letter-spacing:.1em; text-transform:uppercase; opacity:.75; }
.mo-cfoot { display:flex; align-items:center; gap:6px; margin-top:auto; padding-top:10px; border-top:1px solid var(--mo-soft); }
.mo-ico { display:grid; place-items:center; width:32px; height:32px; border:1.3px solid var(--mo-line); border-radius:8px; font-size:13px; transition:.14s; }
.mo-ico:hover { border-color:var(--mo-red); color:var(--mo-red-d); }
.mo-ico-fav[aria-pressed="true"] { background:var(--mo-red); border-color:var(--mo-red); color:#fff; }
.mo-card-area { margin-left:auto; font-size:11px; color:var(--mo-grey); }
.mo-empty { padding:70px 20px; text-align:center; color:var(--mo-grey); }
.mo-empty h3 { margin:0 0 8px; font-family:"Outfit",sans-serif; font-weight:800; color:var(--mo-ink); }

/* ---------- tipos de moción / cómo usarlo ---------- */
.mo-tgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr)); gap:15px; }
.mo-tcard { padding:19px; border:1px solid var(--mo-line); border-top:4px solid var(--mo-red); border-radius:var(--mo-r); background:#fff; }
.mo-tcard h3 { margin:0 0 4px; font-family:"Outfit",sans-serif; font-size:14.5px; font-weight:800; color:var(--mo-ink); }
.mo-tcard-n { color:var(--mo-grey); font-weight:600; }
.mo-tcard-f { margin:0 0 9px; font-size:12px; font-weight:700; color:var(--mo-red-d); }
.mo-tcard p { font-size:12.8px; line-height:1.6; color:var(--mo-grey); }
.mo-cred { margin-top:28px; padding:22px 24px; border-radius:var(--mo-r); background:var(--mo-soft); font-size:13px; line-height:1.65; color:var(--mo-ink-2); }
.mo-cred p + p { margin-top:8px; }
.mo-cred-src { font-size:12.5px; color:var(--mo-grey); }

/* ---------- ventana modal ---------- */
.mo-ov { position:fixed; inset:0; z-index:100000; display:grid; place-items:center; padding:20px; background:rgba(0,17,39,.72); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.mo-ov[hidden] { display:none; }
.mo-modal { width:100%; max-width:660px; max-height:92vh; overflow:auto; border-radius:20px; background:#fff; box-shadow:var(--mo-sh-lg); }
.mo-mhead { display:flex; align-items:center; gap:12px; padding:20px 24px; border-radius:20px 20px 0 0; background:var(--mo-navy); color:#fff; }
.mo-mhead h3 { margin:0; font-family:"Outfit",sans-serif; font-size:16px; font-weight:800; color:#fff; }
.mo-x { margin-left:auto; font-size:24px; line-height:1; color:#8792a6; }
.mo-x:hover { color:#fff; }
.mo-mbody { padding:24px; }
.mo-big { margin:14px 0 18px; font-family:"Outfit",sans-serif; font-size:23px; font-weight:700; line-height:1.36; color:var(--mo-ink); }
.mo-mrow { display:flex; flex-wrap:wrap; gap:9px; margin-top:16px; }
.mo-note { margin-top:16px; font-size:12.5px; line-height:1.6; color:var(--mo-grey); }

/* ---------- cronómetro ---------- */
.mo-timer { text-align:center; }
.mo-tmodes { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-bottom:18px; }
.mo-tdisp { margin:6px 0 4px; font-family:"Outfit",sans-serif; font-size:clamp(56px,15vw,96px); font-weight:900; line-height:1; letter-spacing:-.03em; font-variant-numeric:tabular-nums; color:var(--mo-ink); }
.mo-tdisp.is-warn { color:#e08a18; } .mo-tdisp.is-over { color:var(--mo-red); }
.mo-tphase { min-height:18px; font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--mo-grey); }
.mo-tbar { height:7px; margin:20px 0 0; border-radius:999px; background:var(--mo-soft); overflow:hidden; }
.mo-tbar i { display:block; width:0; height:100%; background:var(--mo-red); transition:width .3s linear; }
.mo-marks { display:flex; justify-content:space-between; margin-top:6px; font-size:10.5px; color:var(--mo-grey); }

/* ---------- rondas ---------- */
.mo-round { margin-bottom:11px; padding:16px 18px; border:1px solid var(--mo-line); border-left:4px solid var(--mo-navy); border-radius:var(--mo-r); background:#fff; }
.mo-round-n { font-size:10.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--mo-red-d); }
.mo-round p { margin:6px 0 0; font-size:14.5px; font-weight:500; line-height:1.5; }

/* ---------- aviso flotante ---------- */
.mo-toast { position:fixed; left:50%; bottom:28px; z-index:100001; padding:13px 24px; border-radius:999px; background:var(--mo-navy); color:#fff; font-size:13.5px; font-weight:500; opacity:0; transform:translateX(-50%) translateY(80px); transition:opacity .28s, transform .28s; pointer-events:none; }
.mo-toast.is-on { opacity:1; transform:translateX(-50%) translateY(0); }

/* ---------- cierre (fila del tema, en rojo Debatien.do) ---------- */
.fjx-cta-row { background:linear-gradient(135deg,#991B1B 0%,#DC2626 100%) !important; }
.fjx-cta-row .fjx-title { max-width:none !important; margin-left:auto !important; margin-right:auto !important; text-align:center !important; color:#fff !important; }
.fjx-cta-row .fjx-lead { max-width:62ch; margin-left:auto !important; margin-right:auto !important; text-align:center !important; }
.fjx-cta-row .fjx-btn-light { color:#991B1B !important; }
.fjx-cta-row .fjx-btn-outline { color:#fff !important; border:2px solid rgba(255,255,255,.75) !important; background:transparent !important; }
.fjx-cta-row .fjx-btn-outline:hover { background:rgba(255,255,255,.16) !important; border-color:#fff !important; color:#fff !important; }

/* ---------- adaptable ---------- */
@media (max-width:900px) {
	.mo-levels { grid-template-columns:1fr; margin-top:-30px; }
	/* En móvil la barra ocupa tres filas de fichas: pegada se comería la pantalla. */
	.mo-bar { position:static; background:none; -webkit-backdrop-filter:none; backdrop-filter:none; }
}
@media (max-width:760px) {
	.mo-hero { padding:110px 0 76px; }
	.mo-stats { gap:22px; }
	.mo-sec { padding:48px 0; }
	.mo-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
	.mo *, .mo *::before, .mo *::after { transition:none !important; animation:none !important; }
}

/* ---------- impresión: solo las mociones ---------- */
@media print {
	.mo-hero, .mo-bar, .mo-acts, .mo-levels, .mo-cfoot, .mo-ov, .mo-toast,
	.mo-sec-soft, .fjx-cta-row { display:none !important; }
	.mo-sec { padding:0; background:none; }
	.mo-grid { display:block; }
	.mo-card { break-inside:avoid; page-break-inside:avoid; margin-bottom:10px; box-shadow:none; transform:none; }
	.mo-burden[open] summary { display:none; }
}
