/*
 * Home v4 (TASK-0002): encabezado y pie de todo el sitio, tipografía y la home (page-home.php).
 * Referencia: https://preview.kelgu.com/marthaalles/home/v4/
 *
 * Sólo usa variables de tokens.css (ningún color escrito). Todas las clases llevan el prefijo
 * «ma4-» para no chocar con las de GeneratePress, los plugins ni el style.css heredado. Las reglas
 * de base van dentro de :where() para no ganarle a las de cada componente.
 *
 * Movimiento: las transiciones de respuesta (hover, foco, cabecera, menú) van dentro de
 * prefers-reduced-motion: no-preference; las entradas y la cita dependen además de la clase
 * «ma4-anima», que pone el script del <head> sólo en ese caso. Sin ella no se oculta nada.
 * El slider de Smart Slider queda como está: ninguna regla apunta a sus clases.
 */

/* ------------------------------------------------------------------------------------------
 * Base y tipografía de todo el sitio
 * --------------------------------------------------------------------------------------- */

/* style.css pone overflow-x: hidden en html y body. En body eso lo vuelve un contenedor de scroll
   e impide que la cabecera quede fija (position: sticky); clip corta el desborde igual sin crearlo.
   En html se queda hidden, que pasa al viewport y evita el scroll horizontal de la página. */
html { overflow-x: hidden; }
body { overflow-x: clip; }

body, button, input, select, textarea { font-family: var(--font-text); }
h1, h2 { font-family: var(--font-display); font-weight: var(--weight-medium); letter-spacing: -.018em; }
blockquote { font-family: var(--font-display); }

/* ------------------------------------------------------------------------------------------
 * Encabezado: fijo arriba; al bajar más de 24 px se compacta (sube y el nombre se achica).
 * --------------------------------------------------------------------------------------- */

.ma4-hd { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; background: var(--surface); border-bottom: 1px solid var(--line-soft); font-family: var(--font-text); }
.ma4-hd::after { content: ""; position: absolute; inset: 0; box-shadow: var(--shadow-header); opacity: 0; pointer-events: none; }
.ma4-hd-in { max-width: 1240px; margin: 0 auto; padding: 22px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 40px; }
.ma4-logo { display: inline-block; text-decoration: none; color: var(--ink); font-family: var(--font-text); font-size: 25px; font-weight: var(--weight-medium); letter-spacing: -.014em; line-height: 1.2; transform-origin: left center; }
.ma4-logo:hover, .ma4-logo:focus { color: var(--accent-strong); }
.ma4-logo:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 3px; }
.ma4-hd.is-compact { transform: translateY(-12px); }
.ma4-hd.is-compact .ma4-hd-in { transform: translateY(6px); }
.ma4-hd.is-compact .ma4-logo { transform: scale(.8); }
.ma4-hd.is-compact::after { opacity: 1; }

/* Menú (el de la base, term_id 2, con sus submenús). */
.ma4-nav { display: flex; align-items: center; font-size: 13px; font-weight: var(--weight-medium); letter-spacing: .14em; text-transform: uppercase; line-height: 1.4; }
.ma4-menu { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 34px; list-style: none; margin: 0; padding: 0; }
.ma4-menu li { position: relative; margin: 0; padding: 0; list-style: none; }
.ma4-menu > li { display: flex; align-items: center; }
.ma4-menu a { position: relative; display: block; color: var(--ink); text-decoration: none; }
.ma4-menu > li > a { padding: 12px 0; }
.ma4-menu > li > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 1.5px; background: var(--accent-strong); transform: scaleX(0); transform-origin: right center; }
.ma4-menu a:hover, .ma4-menu a:focus-visible, .ma4-menu .current-menu-item > a { color: var(--accent-strong); }
.ma4-menu > li > a:hover::after, .ma4-menu > li > a:focus-visible::after { transform: scaleX(1); transform-origin: left center; }
.ma4-menu a:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 2px; }

/* Botón de submenú: lo agrega el script al lado de cada ítem con hijos. */
.ma4-sub-btn, .ma4-sub-btn:hover, .ma4-sub-btn:focus { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin-left: 2px; padding: 0; border: 0; border-radius: 50%; background: none; color: currentColor; cursor: pointer; }
.ma4-sub-btn:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 1px; }
.ma4-sub-btn svg { display: block; }
.ma4-menu li.is-sub-open > .ma4-sub-btn svg { transform: rotate(180deg); }

/* Submenús en escritorio: un panel blanco bajo el ítem; los de segundo nivel, a su derecha. */
.ma4-menu .sub-menu { position: absolute; top: 100%; left: -18px; z-index: 60; display: none; min-width: 260px; margin: 0; padding: 8px 0; list-style: none; background: var(--surface); border: 1px solid var(--line-soft); border-radius: 14px; box-shadow: var(--shadow-card); font-size: 13px; letter-spacing: .06em; }
.ma4-menu .sub-menu .sub-menu { top: -9px; left: 100%; }
.ma4-menu li:hover > .sub-menu, .ma4-menu li:focus-within > .sub-menu, .ma4-menu li.is-sub-open > .sub-menu { display: block; }
.ma4-menu .sub-menu li { display: flex; flex-wrap: wrap; align-items: center; padding-right: 10px; }
.ma4-menu .sub-menu a { flex: 1; padding: 9px 18px; }

/* El botón del menú del celular y el pie del panel sólo existen con script y en celular. */
.ma4-menu-btn { display: none; }
.ma4-menu-foot { display: none; }

/* ------------------------------------------------------------------------------------------
 * Pie
 * --------------------------------------------------------------------------------------- */

.ma4-wrap { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
/* style.css oculta todo <footer>; el del tema se muestra. */
.ma4-ft { display: block; background: var(--bg-ink); color: var(--on-dark); padding: 72px 0 32px; font-family: var(--font-text); font-size: 15px; line-height: 1.6; }
.ma4-ft .ma4-wrap { display: flex; flex-direction: column; gap: 48px; }
.ma4-ft-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 40px; }
.ma4-ft-col { display: flex; flex-direction: column; gap: 10px; }
.ma4-ft-brand { gap: 14px; }
.ma4-ft-logo { font-size: 25px; font-weight: var(--weight-medium); letter-spacing: -.014em; line-height: 1.2; }
.ma4-ft-brand > span + span { color: var(--on-dark-mute); }
.ma4-ft-cta, .ma4-ft-cta:visited { align-self: flex-start; display: inline-flex; align-items: center; height: 46px; padding: 0 22px; border-radius: 999px; background: var(--accent); color: var(--on-accent); font-weight: var(--weight-semibold); text-decoration: none; }
.ma4-ft-cta:hover, .ma4-ft-cta:focus { background: var(--on-dark); color: var(--on-accent); }
.ma4-ft-title { font-size: 12px; font-weight: var(--weight-semibold); letter-spacing: .16em; text-transform: uppercase; color: var(--accent); }
.ma4-ft-col a:not(.ma4-ft-cta) { color: var(--on-dark); text-decoration: none; }
.ma4-ft-col a:not(.ma4-ft-cta):hover, .ma4-ft-col a:not(.ma4-ft-cta):focus { color: var(--accent); }
.ma4-ft-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-top: 24px; border-top: 1px solid var(--line-on-dark-soft); font-size: 14px; color: var(--on-dark-mute); }
.ma4-ft a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
/* Firma de Kelgu: el sello de autoría en blanco; el hover sólo lo aclara. */
.ma4-firma { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; opacity: .82; }
.ma4-firma:hover, .ma4-firma:focus-visible { opacity: 1; }
.ma4-firma img { display: block; width: 80px; height: 80px; flex-shrink: 0; }

/* ------------------------------------------------------------------------------------------
 * Home: estructura y tipos comunes
 * --------------------------------------------------------------------------------------- */

/* GeneratePress pone .site-content en flex; style.css baja todo <main> 26 px. */
main.ma4-home { flex: 1 1 auto; width: 100%; min-width: 0; margin: 0 !important; padding: 0; font-family: var(--font-text); color: var(--ink); background: var(--bg); font-size: 17px; line-height: 1.6; }
:where(.ma4-home) a { color: var(--accent-strong); }
:where(.ma4-home) a:hover { color: var(--ink); }
:where(.ma4-home) :is(h2, h3, p, ul, ol, li, figure, blockquote) { margin: 0; padding: 0; }
:where(.ma4-home) *, :where(.ma4-home) *::before, :where(.ma4-home) *::after { box-sizing: border-box; }

.ma4-section { padding: 96px 0; }
.ma4-eyebrow { font-size: 12.5px; font-weight: var(--weight-semibold); letter-spacing: .16em; text-transform: uppercase; color: var(--accent-strong); }
.ma4-h2 { margin: 0; font-family: var(--font-display); font-weight: var(--weight-medium); font-size: clamp(32px, 3.4vw, 46px); line-height: 1.08; letter-spacing: -.018em; text-transform: none; text-wrap: balance; }
.ma4-head { display: flex; flex-direction: column; gap: 10px; max-width: 680px; }
.ma4-head p { color: var(--ink-soft); }
.ma4-head-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; }
.ma4-more { font-weight: var(--weight-semibold); text-decoration: none; padding: 10px 0; }
.ma4-arr { display: inline-block; }
.ma4-is-hidden { display: none !important; }

/* Slider: un contenedor sin estilos, el slider de Smart Slider va tal cual. */
.ma4-slider { display: block; }

/* ------------------------------------------------------------------------------------------
 * Biblioteca: filtros y estante
 * --------------------------------------------------------------------------------------- */

.ma4-books { background: var(--bg-sand); }
.ma4-books .ma4-wrap { display: flex; flex-direction: column; gap: 32px; }
.ma4-shelf-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.ma4-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ma4-chip, .ma4-chip:hover, .ma4-chip:focus { height: 44px; padding: 0 20px; border-radius: 999px; font: inherit; font-size: 15px; font-weight: var(--weight-semibold); line-height: 1; cursor: pointer; background: var(--surface); color: var(--ink); border: 1px solid var(--line); }
.ma4-chip:hover { border-color: var(--ink); }
.ma4-chip[aria-pressed="true"] { background: var(--ink); color: var(--surface); border-color: var(--ink); }
.ma4-chip:focus-visible, .ma4-shelf-btn:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 3px; }
.ma4-shelf-nav { display: none; gap: 10px; }
.ma4-js .ma4-shelf-nav { display: flex; }
.ma4-shelf-btn, .ma4-shelf-btn:hover, .ma4-shelf-btn:focus { width: 46px; height: 46px; border-radius: 50%; padding: 0; cursor: pointer; border: 1px solid var(--line); background: var(--surface); color: var(--ink); display: flex; align-items: center; justify-content: center; }
.ma4-shelf-btn:hover:not(:disabled) { border-color: var(--ink); }
.ma4-shelf-btn:disabled { opacity: .4; cursor: default; }

/* El estante se desplaza dentro de su caja (nunca la página): con el dedo, la rueda, las flechas o
   el teclado. El margen negativo lo lleva hasta el borde del contenedor y el relleno deja lugar a
   las tapas cuando se levantan. */
.ma4-shelf { position: relative; display: flex; gap: 28px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 24px; margin: -18px -24px -8px; padding: 18px 24px 22px; scrollbar-width: thin; scrollbar-color: var(--line) var(--bg-sand); }
.ma4-shelf:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: -2px; }
.ma4-book { flex: 0 0 min(200px, 62vw); scroll-snap-align: start; display: flex; flex-direction: column; gap: 12px; }
.ma4-book-cover { position: relative; display: flex; align-items: flex-end; justify-content: center; height: 280px; padding: 18px; border-radius: 14px; background: var(--surface); }
.ma4-book-cover img { position: relative; width: auto; height: auto; max-height: 100%; max-width: 100%; object-fit: contain; border-radius: 3px; box-shadow: var(--shadow-cover); transform-origin: 50% 100%; }
.ma4-book-cover:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 3px; }
.ma4-book-tag { font-size: 12px; font-weight: var(--weight-semibold); letter-spacing: .1em; text-transform: uppercase; color: var(--accent-strong); }
.ma4-book h3 { font-family: var(--font-text); font-weight: var(--weight-semibold); font-size: 17px; line-height: 1.3; letter-spacing: -.011em; }
.ma4-book p { font-size: 15px; line-height: 1.5; color: var(--ink-mute); }
.ma4-book-links { display: flex; gap: 18px; margin-top: auto; font-size: 15px; font-weight: var(--weight-semibold); }
.ma4-book-links a { text-decoration: none; padding: 10px 0; }
.ma4-book-links a + a { color: var(--ink); }
.ma4-book-links a + a:hover { color: var(--accent-strong); }

.ma4-collections { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding-top: 28px; border-top: 1px solid var(--line); }
.ma4-collections-label { font-size: 14px; font-weight: var(--weight-semibold); color: var(--ink-soft); margin-right: 6px; }
.ma4-pill { position: relative; display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border-radius: 999px; background: var(--surface); color: var(--ink); font-size: 15px; text-decoration: none; }
.ma4-pill::before { content: ""; position: absolute; inset: 0; border-radius: inherit; border: 1px solid var(--accent-strong); opacity: 0; }
.ma4-pill:hover { color: var(--accent-strong); }
.ma4-pill:hover::before, .ma4-pill:focus-visible::before { opacity: 1; }
.ma4-pill:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 3px; }

/* ------------------------------------------------------------------------------------------
 * Para organizaciones, eventos y docentes
 * --------------------------------------------------------------------------------------- */

.ma4-services { background: var(--bg-plum); color: var(--on-dark); }
.ma4-services .ma4-wrap { display: flex; flex-direction: column; gap: 40px; }
.ma4-services .ma4-eyebrow { color: var(--accent); }
.ma4-services .ma4-h2 { color: var(--on-dark); }
.ma4-svc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.ma4-svc { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 32px; border-radius: 20px; border: 1px solid var(--accent-line); color: var(--on-dark); text-decoration: none; }
.ma4-svc::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; border: 1px solid var(--accent); background: var(--on-dark-ghost); opacity: 0; pointer-events: none; }
.ma4-svc:hover, .ma4-svc:focus, .ma4-svc:visited { color: var(--on-dark); }
.ma4-svc:hover::before, .ma4-svc:focus-visible::before { opacity: 1; }
.ma4-svc:focus-visible { outline: 2px solid var(--on-dark); outline-offset: 3px; }
.ma4-svc svg { color: var(--accent); }
.ma4-svc-title { font-weight: var(--weight-semibold); font-size: 22px; line-height: 1.25; letter-spacing: -.017em; }
.ma4-svc-text { color: var(--on-dark-soft); }
.ma4-svc-more { margin-top: auto; font-weight: var(--weight-semibold); color: var(--accent); }

/* ------------------------------------------------------------------------------------------
 * Recursos gratuitos
 * --------------------------------------------------------------------------------------- */

.ma4-resources { background: var(--bg-lilac); }
.ma4-resources .ma4-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 48px; align-items: center; }
.ma4-resources-copy { display: flex; flex-direction: column; gap: 18px; }
.ma4-resources-copy p { color: var(--ink-soft); }
.ma4-tags { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; }
:where(.ma4-home) .ma4-tags li { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; border-radius: 999px; background: var(--surface); font-size: 15px; }
.ma4-tags svg { color: var(--accent-strong); }
.ma4-form-card { display: flex; flex-direction: column; gap: 18px; padding: 36px; border-radius: 20px; background: var(--surface); box-shadow: var(--shadow-card); }
.ma4-form-card h3 { font-family: var(--font-text); font-weight: var(--weight-semibold); font-size: 22px; line-height: 1.25; letter-spacing: -.017em; }
.ma4-form-card p { font-size: 16px; color: var(--ink-mute); }
.ma4-field { display: flex; flex-direction: column; gap: 8px; }
.ma4-field label { font-size: 14px; font-weight: var(--weight-semibold); }
.ma4-field input, .ma4-field input:focus { width: 100%; height: 52px; padding: 0 16px; border-radius: 12px; border: 1px solid var(--line-lilac); font: inherit; font-size: 16px; background: var(--surface); color: var(--ink); }
.ma4-field input:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 1px; }
.ma4-field input[aria-invalid="true"] { border-color: var(--accent-strong); }
.ma4-btn-dark, .ma4-btn-dark:visited, .ma4-btn-dark:focus { display: inline-flex; align-items: center; justify-content: center; height: 52px; padding: 0 24px; border: 0; border-radius: 999px; background: var(--ink); color: var(--surface); font: inherit; font-weight: var(--weight-semibold); line-height: 1; text-decoration: none; cursor: pointer; }
.ma4-btn-dark:hover { background: var(--accent-strong); color: var(--surface); }
.ma4-btn-dark:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 3px; }
.ma4-btn-dark[disabled] { opacity: .6; cursor: progress; }
.ma4-form-card .ma4-form-msg { font-size: 15px; color: var(--ink-soft); }
.ma4-form-card .ma4-form-msg:empty { display: none; }
.ma4-form-go[hidden] { display: none; }
.ma4-form-card .ma4-fine { font-size: 13px; }

/* ------------------------------------------------------------------------------------------
 * Últimos artículos
 * --------------------------------------------------------------------------------------- */

.ma4-blog { background: var(--surface); }
.ma4-blog .ma4-wrap { display: flex; flex-direction: column; gap: 32px; }
.ma4-topics { display: flex; flex-wrap: wrap; gap: 8px; }
.ma4-topics a { display: inline-flex; align-items: center; height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line); color: var(--ink); font-size: 14px; text-decoration: none; }
.ma4-topics a:hover, .ma4-topics a:focus-visible { border-color: var(--accent-strong); color: var(--accent-strong); }
.ma4-topics a:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 2px; }
.ma4-posts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: 40px; }
.ma4-post-main { display: flex; flex-direction: column; gap: 16px; padding: 40px; border-radius: 20px; background: var(--bg); }
.ma4-post-main h3 { font-family: var(--font-text); font-weight: var(--weight-semibold); font-size: clamp(24px, 2.2vw, 30px); line-height: 1.2; letter-spacing: -.022em; text-wrap: balance; }
.ma4-post-main p { color: var(--ink-soft); }
.ma4-post-main .ma4-btn-dark { margin-top: auto; align-self: flex-start; height: 46px; }
.ma4-meta { font-size: 14px; color: var(--ink-mute); }
.ma4-meta b { font-weight: var(--weight-semibold); color: var(--accent-strong); }
.ma4-post-list { list-style: none; display: flex; flex-direction: column; }
:where(.ma4-home) .ma4-post-list li { position: relative; border-top: 1px solid var(--line-soft); padding: 20px 0; }
.ma4-post-list li:last-child { border-bottom: 1px solid var(--line-soft); }
.ma4-post-list li::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 1px; background: var(--accent-strong); transform: scaleX(0); transform-origin: left center; }
.ma4-post-list li:hover::before, .ma4-post-list li:focus-within::before { transform: scaleX(1); }
.ma4-post-list a { display: flex; flex-direction: column; gap: 6px; color: var(--ink); text-decoration: none; }
.ma4-post-list a:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 4px; }
.ma4-post-title { display: block; font-weight: var(--weight-medium); font-size: 18px; line-height: 1.38; letter-spacing: -.011em; }
.ma4-post-list a:hover .ma4-post-title, .ma4-post-list a:focus-visible .ma4-post-title { color: var(--accent-strong); transform: translateX(6px); }

/* ------------------------------------------------------------------------------------------
 * Prensa: cada nota como un recorte, con el nombre del medio en Newsreader itálica sobre un
 * filete doble. Toda la nota es el enlace.
 * --------------------------------------------------------------------------------------- */

.ma4-press { background: var(--bg-sand); }
.ma4-press .ma4-wrap { display: flex; flex-direction: column; gap: 40px; }
.ma4-clips { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px; }
:where(.ma4-home) .ma4-clip { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 26px 28px 28px; background: var(--surface); border-top: 3px double var(--ink); }
.ma4-clip-outlet { padding-bottom: 14px; border-bottom: 1px solid var(--line); font-family: var(--font-display); font-style: italic; font-weight: var(--weight-medium); font-variation-settings: "opsz" 48; font-size: 30px; line-height: 1.1; letter-spacing: -.01em; }
.ma4-clip-title { font-family: var(--font-text); font-weight: var(--weight-semibold); font-size: 19px; line-height: 1.35; letter-spacing: -.014em; text-wrap: pretty; }
.ma4-clip-title a { color: var(--ink); text-decoration: none; }
.ma4-clip-title a::after { content: ""; position: absolute; inset: 0; }
.ma4-clip:hover .ma4-clip-title a, .ma4-clip-title a:focus-visible { color: var(--accent-strong); }
.ma4-clip:focus-within { outline: 2px solid var(--accent-strong); outline-offset: 3px; }
.ma4-clip-title a:focus-visible { outline: none; }
.ma4-clip-date { margin-top: auto; font-size: 14px; color: var(--ink-mute); }
/* La imagen destacada de la nota (TASK-0006), arriba de todo; sin ella, la tarjeta queda como
   antes. */
.ma4-clip-media { aspect-ratio: 3 / 2; margin-bottom: 4px; overflow: hidden; background: var(--bg-lilac); }
.ma4-clip-media img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* ------------------------------------------------------------------------------------------
 * Cita
 * --------------------------------------------------------------------------------------- */

.ma4-quote-sec { background: var(--bg); padding: 112px 0; }
.ma4-quote { max-width: 900px; margin: 0 auto; padding: 0 24px; display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; }
.ma4-quote svg { color: var(--ornament); }
.ma4-quote blockquote { margin: 0; padding: 0; border: 0; font-family: var(--font-display); font-style: italic; font-weight: var(--weight-regular); font-size: clamp(28px, 3.3vw, 46px); line-height: 1.24; letter-spacing: -.012em; text-wrap: balance; color: var(--ink); }
.ma4-quote figcaption { font-size: 15px; color: var(--ink-mute); }

/* ------------------------------------------------------------------------------------------
 * Tablet (≤ 1100 px): las tarjetas pasan a una columna: servicios, recursos (el texto arriba y el
 * formulario debajo), artículos (el destacado arriba y la lista debajo) y prensa.
 * --------------------------------------------------------------------------------------- */

@media (max-width: 1100px) {
  .ma4-svc-grid, .ma4-resources .ma4-wrap, .ma4-posts, .ma4-clips { grid-template-columns: 1fr; }
}
/* Con la tarjeta de prensa a todo el ancho, la imagen va a la izquierda del texto (en el celular
   vuelve arriba). */
@media (min-width: 761px) and (max-width: 1100px) {
  .ma4-clip--media { display: grid; grid-template-columns: 260px minmax(0, 1fr); grid-template-rows: auto auto 1fr; gap: 14px 28px; }
  .ma4-clip--media .ma4-clip-media { grid-row: 1 / -1; align-self: start; margin-bottom: 0; }
  .ma4-clip--media .ma4-clip-date { align-self: end; }
}

/* ------------------------------------------------------------------------------------------
 * Celular (≤ 760 px)
 * --------------------------------------------------------------------------------------- */

@media (max-width: 760px) {
  .ma4-section { padding: 72px 0; }
  .ma4-svc { padding: 28px; }
  .ma4-post-main { padding: 28px; }
  .ma4-form-card { padding: 28px; }
  .ma4-shelf-nav { margin-left: auto; }

  .ma4-hd-in { padding: 14px 0 0; gap: 2px; }
  .ma4-logo { font-size: 21px; padding: 0 24px; transform-origin: 24px center; }
  /* Sin script, el menú queda a la vista en filas debajo del nombre. */
  .ma4-nav { width: 100%; padding: 0 24px 4px; font-size: 12px; }
  .ma4-menu { gap: 0 22px; }
  .ma4-hd.is-compact { transform: translateY(-8px); }
  .ma4-hd.is-compact .ma4-hd-in { transform: translateY(4px); }

  /* Con script, el menú es un panel ciruela que ocupa todo el alto bajo la cabecera, con los
     enlaces grandes, cada uno con su flecha (o el botón de su submenú), y al pie «Contacto» y las
     redes. El panel cuelga de .ma4-hd-in (64 px + el borde), que la cabecera compacta baja 4 px y
     sube 8: por eso su «top» y su alto cambian con ella. */
  .ma4-js .ma4-hd-in { position: relative; flex-wrap: nowrap; padding: 8px 12px 8px 0; }
  .ma4-js .ma4-menu-btn, .ma4-js .ma4-menu-btn:focus { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--ink); cursor: pointer; }
  .ma4-js .ma4-menu-btn:hover { background: var(--bg); color: var(--ink); }
  .ma4-js .ma4-menu-btn:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 2px; }
  .ma4-menu-btn svg { display: block; overflow: visible; }
  .ma4-menu-btn path { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; transform-box: fill-box; transform-origin: center; }
  .ma4-hd.is-open .ma4-menu-btn .ma4-mb-1 { transform: translateY(5px) rotate(45deg); }
  .ma4-hd.is-open .ma4-menu-btn .ma4-mb-2 { opacity: 0; transform: scaleX(0); }
  .ma4-hd.is-open .ma4-menu-btn .ma4-mb-3 { transform: translateY(-5px) rotate(-45deg); }

  .ma4-js .ma4-nav { position: absolute; top: calc(100% + 1px); left: 0; right: 0; height: calc(100vh - 65px); height: calc(100dvh - 65px); flex-direction: column; align-items: stretch; overflow-y: auto; overscroll-behavior: contain; padding: 12px 24px 28px; background: var(--bg-plum); color: var(--on-dark); font-size: 23px; font-weight: var(--weight-medium); letter-spacing: -.016em; line-height: 1.25; text-transform: none; visibility: hidden; opacity: 0; transform: translateY(-10px); }
  .ma4-js .ma4-hd.is-compact .ma4-nav { top: calc(100% - 3px); height: calc(100vh - 57px); height: calc(100dvh - 57px); }
  .ma4-js .ma4-hd.is-open .ma4-nav { visibility: visible; opacity: 1; transform: none; }
  .ma4-js .ma4-menu { flex-direction: column; align-items: stretch; flex-wrap: nowrap; gap: 0; }
  .ma4-js .ma4-menu > li { display: grid; grid-template-columns: 1fr auto; align-items: center; border-bottom: 1px solid var(--line-on-dark-soft); }
  .ma4-js .ma4-menu > li > a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 0; color: var(--on-dark); }
  .ma4-js .ma4-menu > li:not(.menu-item-has-children) > a { grid-column: 1 / -1; }
  .ma4-js .ma4-menu > li > a::after { content: "\2192"; position: static; height: auto; background: none; transform: none; font-size: 20px; color: var(--accent); }
  .ma4-js .ma4-menu > li.menu-item-has-children > a::after { display: none; }
  .ma4-js .ma4-menu a:hover, .ma4-js .ma4-menu a:focus-visible, .ma4-js .ma4-menu a:active, .ma4-js .ma4-menu .current-menu-item > a { color: var(--accent); }
  .ma4-js .ma4-menu > li > a:hover::after, .ma4-js .ma4-menu > li > a:focus-visible::after { transform: translateX(6px); }
  .ma4-js .ma4-nav a:focus-visible, .ma4-js .ma4-sub-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
  .ma4-js .ma4-sub-btn, .ma4-js .ma4-sub-btn:hover, .ma4-js .ma4-sub-btn:focus { width: 44px; height: 44px; color: var(--accent); }

  /* Submenús dentro del panel: debajo de su ítem, sangrados, y se abren con su botón. */
  .ma4-js .ma4-menu .sub-menu { position: static; grid-column: 1 / -1; min-width: 0; padding: 0 0 12px 14px; background: none; border: 0; border-radius: 0; box-shadow: none; font-size: 17px; letter-spacing: 0; }
  .ma4-js .ma4-menu li:hover > .sub-menu, .ma4-js .ma4-menu li:focus-within > .sub-menu { display: none; }
  .ma4-js .ma4-menu li.is-sub-open > .sub-menu { display: block; }
  .ma4-js .ma4-menu .sub-menu li { display: grid; grid-template-columns: 1fr auto; padding: 0; }
  .ma4-js .ma4-menu .sub-menu a { padding: 10px 0; color: var(--on-dark-soft); }
  .ma4-js .ma4-menu .sub-menu li:not(.menu-item-has-children) > a { grid-column: 1 / -1; }
  .ma4-js .ma4-menu .sub-menu .sub-menu { padding-bottom: 4px; font-size: 16px; }

  .ma4-js .ma4-menu-foot { display: flex; flex-direction: column; gap: 20px; margin-top: auto; padding-top: 32px; }
  .ma4-nav .ma4-menu-cta, .ma4-nav .ma4-menu-cta:visited { display: flex; padding: 0 24px; align-items: center; justify-content: center; height: 54px; border-radius: 999px; background: var(--accent); color: var(--on-accent); font-size: 16px; font-weight: var(--weight-semibold); letter-spacing: 0; text-decoration: none; }
  .ma4-js .ma4-nav .ma4-menu-cta:hover, .ma4-js .ma4-nav .ma4-menu-cta:active, .ma4-js .ma4-nav .ma4-menu-cta:focus { background: var(--on-dark); color: var(--on-accent); }
  .ma4-menu-social { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 22px; font-size: 15px; font-weight: var(--weight-regular); letter-spacing: 0; }
  .ma4-nav .ma4-menu-social a { padding: 10px 0; color: var(--on-dark-mute); text-decoration: none; }
  .ma4-js .ma4-nav .ma4-menu-social a:hover, .ma4-js .ma4-nav .ma4-menu-social a:active { color: var(--on-dark); }
  .ma4-menu-scrim { position: fixed; inset: 0; z-index: 40; background: var(--scrim-menu); opacity: 0; visibility: hidden; }
  .ma4-menu-open .ma4-menu-scrim { opacity: 1; visibility: visible; }
  /* Con el panel abierto, la página no se desplaza por detrás. */
  html.ma4-menu-open, html.ma4-menu-open body { overflow: hidden; }
}

/* ------------------------------------------------------------------------------------------
 * Movimiento de respuesta (hover, foco, cabecera, menú)
 * --------------------------------------------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
  .ma4-hd, .ma4-hd-in, .ma4-logo { transition: transform .45s cubic-bezier(.2, .7, .2, 1); }
  .ma4-hd::after { transition: opacity .45s ease; }
  .ma4-menu > li > a::after { transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
  .ma4-menu a, .ma4-pill, .ma4-topics a, .ma4-book-links a { transition: color .2s, border-color .2s, transform .35s cubic-bezier(.2, .7, .2, 1); }
  .ma4-logo { transition: color .2s, transform .45s cubic-bezier(.2, .7, .2, 1); }
  .ma4-sub-btn svg { transition: transform .3s cubic-bezier(.2, .7, .2, 1); }
  .ma4-shelf { scroll-behavior: smooth; }
  .ma4-firma { transition: opacity .2s ease; }

  /* Tapas: se levantan y se inclinan apenas, como un libro que se saca del estante. */
  .ma4-book-cover img { transition: transform .5s cubic-bezier(.2, .7, .2, 1), box-shadow .5s cubic-bezier(.2, .7, .2, 1); }
  .ma4-book-cover:hover img, .ma4-book-cover:focus-visible img { transform: translateY(-10px) rotate(-2deg); box-shadow: var(--shadow-cover-lift); }

  /* Tarjetas de servicios: se elevan, el borde toma el lavanda y la flecha avanza. */
  .ma4-svc { transition: transform .45s cubic-bezier(.2, .7, .2, 1); }
  .ma4-svc::before { transition: opacity .3s ease; }
  .ma4-svc .ma4-arr, .ma4-more .ma4-arr { transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
  .ma4-svc:hover, .ma4-svc:focus-visible { transform: translateY(-6px); }
  .ma4-svc:hover .ma4-arr, .ma4-svc:focus-visible .ma4-arr, .ma4-more:hover .ma4-arr, .ma4-more:focus-visible .ma4-arr { transform: translateX(6px); }

  /* Chips de recursos, colecciones y temas: suben apenas. */
  :where(.ma4-home) .ma4-tags li { transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
  :where(.ma4-home) .ma4-tags li:hover, .ma4-pill:hover, .ma4-pill:focus-visible, .ma4-topics a:hover, .ma4-topics a:focus-visible { transform: translateY(-3px); }
  .ma4-pill::before { transition: opacity .25s ease; }

  /* Blog: el destacado se eleva; en la lista, una línea violeta recorre el borde y el título avanza. */
  .ma4-post-main { transition: transform .45s cubic-bezier(.2, .7, .2, 1); }
  .ma4-post-main:hover, .ma4-post-main:focus-within { transform: translateY(-6px); }
  .ma4-post-list li::before { transition: transform .45s cubic-bezier(.2, .7, .2, 1); }
  .ma4-post-title { transition: color .2s, transform .35s cubic-bezier(.2, .7, .2, 1); }
  .ma4-btn-dark { transition: background .2s; }

  /* Prensa: el recorte sube apenas. */
  :where(.ma4-home) .ma4-clip { transition: transform .45s cubic-bezier(.2, .7, .2, 1); }
  .ma4-clip-title a { transition: color .2s; }
  :where(.ma4-home) .ma4-clip:hover, :where(.ma4-home) .ma4-clip:focus-within { transform: translateY(-6px); }

  /* Menú del celular: el ícono pasa a cruz y el panel se funde mientras baja 10 px. Al cerrar,
     «visibility» espera a que termine el fundido. */
  .ma4-menu-btn { transition: background .2s; }
  .ma4-menu-btn path { transition: transform .35s cubic-bezier(.2, .7, .2, 1), opacity .2s ease; }
  @media (max-width: 760px) {
    .ma4-js .ma4-nav { transition: opacity .25s ease, transform .35s cubic-bezier(.2, .7, .2, 1), visibility 0s linear .35s; }
    .ma4-js .ma4-hd.is-open .ma4-nav { transition: opacity .25s ease, transform .35s cubic-bezier(.2, .7, .2, 1); }
    .ma4-menu-scrim { transition: opacity .3s ease, visibility 0s linear .3s; }
    .ma4-menu-open .ma4-menu-scrim { transition: opacity .3s ease; }

    /* Al abrir, los ítems y el pie del panel entran escalonados (--i), subiendo 14 px; al cerrar se
       funden junto con el panel. */
    .ma4-js .ma4-hd:not(.is-open) .ma4-menu > li, .ma4-js .ma4-hd:not(.is-open) .ma4-menu-foot { opacity: 0; transform: translateY(14px); transition: opacity .15s ease, transform 0s linear .35s; }
    .ma4-js .ma4-hd.is-open .ma4-menu > li, .ma4-js .ma4-hd.is-open .ma4-menu-foot { transition: opacity .4s ease var(--i, .3s), transform .5s cubic-bezier(.2, .7, .2, 1) var(--i, .3s); }
    .ma4-js .ma4-menu > li:nth-child(1) { --i: .06s; }
    .ma4-js .ma4-menu > li:nth-child(2) { --i: .1s; }
    .ma4-js .ma4-menu > li:nth-child(3) { --i: .14s; }
    .ma4-js .ma4-menu > li:nth-child(4) { --i: .18s; }
    .ma4-js .ma4-menu > li:nth-child(5) { --i: .22s; }
    .ma4-js .ma4-menu > li:nth-child(6) { --i: .26s; }
    .ma4-js .ma4-menu-foot { --i: .3s; }
  }
}

/* ------------------------------------------------------------------------------------------
 * Entradas: cada bloque aparece una sola vez al entrar en pantalla, en escalera dentro de su
 * grilla (--d). La clase «ma4-rv» no está en el HTML: la pone el script (sobre los elementos con
 * data-ma4-rv y los hijos de data-ma4-group) sólo con «ma4-anima», y se la saca al terminar.
 * --------------------------------------------------------------------------------------- */

.ma4-anima .ma4-rv { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .9s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--d, 0s); }
.ma4-anima .ma4-book.ma4-rv { transform: translateY(36px) rotate(1.5deg); }
.ma4-anima .ma4-rv.is-in { opacity: 1; transform: none; }

/* Cita: las palabras se revelan de a una, con el mismo ritmo de lectura. «ma4-reveal» la pone el
   script cuando ya separó las palabras; sin él, la cita se ve entera. */
.ma4-anima .ma4-quote.ma4-reveal .ma4-w { display: inline-block; opacity: 0; transform: translateY(.35em); transition: opacity .7s ease, transform .9s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--i) * 45ms + .2s); }
.ma4-anima .ma4-quote.ma4-reveal svg { opacity: 0; transform: scale(.7); transition: opacity .6s ease, transform .8s cubic-bezier(.2, .7, .2, 1); }
.ma4-anima .ma4-quote.ma4-reveal figcaption { opacity: 0; transition: opacity .8s ease; transition-delay: var(--after, 1.2s); }
.ma4-anima .ma4-quote.ma4-reveal.is-on .ma4-w, .ma4-anima .ma4-quote.ma4-reveal.is-on svg, .ma4-anima .ma4-quote.ma4-reveal.is-on figcaption { opacity: 1; transform: none; }
