/*
 * gestionistaitalia.com — tema hijo de Astra (rediseño de octubre de 2026, SPECS.md §8).
 *
 * Identidad de siempre (logo, verde #01cb9f y Roboto) con maquetación nueva. Todo el movimiento
 * es CSS: los bordes giran con @property, el scroll usa animation-timeline bajo @supports y nada
 * del contenido depende de JavaScript (WP Rocket retrasa el JS hasta que hay interacción). Con
 * prefers-reduced-motion no se mueve nada.
 *
 * Índice: 1 tokens · 2 base · 3 cabecera · 4 botones · 5 hero · 6 secciones y tarjetas ·
 * 7 bento, FAQ, testimonios, entradas y contacto · 8 posts y archivo · 9 pie · 10 formularios ·
 * 11 scroll · 12 responsive · 13 movimiento reducido.
 *
 * Los iconos son trazos de Lucide (licencia ISC) en data-URI, usados como máscara.
 */

/* ---------- 1. Tokens ---------- */

@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/roboto-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Respaldo con las métricas de Roboto: el cambio de fuente apenas mueve el texto (CLS). */
/* La misma Roboto con «optional», solo para el aviso de cookies: se pinta desde el primer fotograma (es el LCP en móvil) y,
   con «swap», el cambio de fuente le cambiaba los saltos de línea y el alto (CLS 0,15 en el PSI de un post, 24/10/2026). Es
   el mismo fichero (precargado): si no ha llegado al pintar, el aviso se queda con la de respaldo y ya no se mueve. */
@font-face {
	font-family: "Roboto aviso";
	font-style: normal;
	font-weight: 100 900;
	font-display: optional;
	src: url("../fonts/roboto-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Liberation Sans tiene las métricas de Arial (Linux), y Helvetica (Mac) se le parece: los ajustes valen para las tres. */
@font-face {
	font-family: "Roboto respaldo";
	src: local("Arial"), local("Liberation Sans"), local("Helvetica");
	size-adjust: 100.3%;
	ascent-override: 92.7%;
	descent-override: 24.4%;
	line-gap-override: 0%;
}

@property --gi-angulo {
	syntax: "<angle>";
	inherits: false;
	initial-value: 0deg;
}

:root {
	--gi-verde: #01cb9f;
	--gi-verde-claro: #5ff0cb;
	--gi-verde-600: #00a884;
	--gi-verde-700: #007f63;
	--gi-tinta: #061714;
	--gi-tinta-2: #0b2621;
	--gi-tinta-3: #12352e;
	--gi-texto: #14201e;
	--gi-texto-2: #4a5a57;
	--gi-borde: #e2ebe8;
	--gi-fondo: #f4f8f6;
	--gi-papel: #fffdf8;
	--gi-italia: linear-gradient(90deg, #009246 0 33.4%, #f4f5f0 33.4% 66.6%, #ce2b37 66.6%);
	/* Banderas para rectángulos de cualquier tamaño (sol y escudo en proporción). */
	--gi-f-ar: radial-gradient(circle closest-side, #f6b40e 0 24%, transparent 28%), linear-gradient(#74acdf 0 33.4%, #fff 0 66.6%, #74acdf 0);
	--gi-f-hr: conic-gradient(#e2231a 0 25%, #fff 0 50%, #e2231a 0 75%, #fff 0) 50% 50% / 26% 38% no-repeat, linear-gradient(#e2231a 0 33.4%, #fff 0 66.6%, #171796 0);
	--gi-f-ve: linear-gradient(#ffcc00 0 33.4%, #00247d 0 66.6%, #cf142b 0);
	--gi-grad: linear-gradient(135deg, #3ff0c4 0%, var(--gi-verde) 45%, #00a884 100%);
	--gi-fuente: "Roboto", "Roboto respaldo", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
	--gi-r-s: 10px;
	--gi-r: 16px;
	--gi-r-l: 24px;
	--gi-sombra-s: 0 1px 2px rgba(6, 23, 20, .04), 0 4px 12px -4px rgba(6, 23, 20, .06);
	--gi-sombra: 0 1px 2px rgba(6, 23, 20, .04), 0 12px 32px -12px rgba(6, 23, 20, .12);
	--gi-sombra-l: 0 2px 4px rgba(6, 23, 20, .04), 0 24px 56px -16px rgba(6, 23, 20, .22);
	--gi-curva: cubic-bezier(.2, .8, .2, 1);
	--gi-ancho: 1280px;
	--gi-margen: clamp(16px, 4vw, 32px);
	--gi-alto-barra: 34px;
	--gi-i-maletin: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%2220%22 height=%2214%22 x=%222%22 y=%227%22 rx=%222%22/%3E%3Cpath d=%22M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16%22/%3E%3C/svg%3E");
	--gi-i-candado: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%2218%22 height=%2211%22 x=%223%22 y=%2211%22 rx=%222%22/%3E%3Cpath d=%22M7 11V7a5 5 0 0 1 10 0v4%22/%3E%3C/svg%3E");
	--gi-i-equipo: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2%22/%3E%3Ccircle cx=%229%22 cy=%227%22 r=%224%22/%3E%3Cpath d=%22M22 21v-2a4 4 0 0 0-3-3.87%22/%3E%3Cpath d=%22M16 3.13a4 4 0 0 1 0 7.75%22/%3E%3C/svg%3E");
	--gi-i-pulgar: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 10v12%22/%3E%3Cpath d=%22M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z%22/%3E%3C/svg%3E");
	--gi-i-lupa: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2211%22 cy=%2211%22 r=%228%22/%3E%3Cpath d=%22m21 21-4.3-4.3%22/%3E%3C/svg%3E");
	--gi-i-documento: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z%22/%3E%3Cpath d=%22M14 2v4a2 2 0 0 0 2 2h4%22/%3E%3Cpath d=%22M10 9H8%22/%3E%3Cpath d=%22M16 13H8%22/%3E%3Cpath d=%22M16 17H8%22/%3E%3C/svg%3E");
	--gi-i-movil: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%2214%22 height=%2220%22 x=%225%22 y=%222%22 rx=%222%22 ry=%222%22/%3E%3Cpath d=%22M12 18h.01%22/%3E%3C/svg%3E");
	--gi-i-balanza: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z%22/%3E%3Cpath d=%22m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z%22/%3E%3Cpath d=%22M7 21h10%22/%3E%3Cpath d=%22M12 3v18%22/%3E%3Cpath d=%22M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2%22/%3E%3C/svg%3E");
	--gi-i-reloj: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M12 6v6l4 2%22/%3E%3C/svg%3E");
	--gi-i-pin: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z%22/%3E%3Ccircle cx=%2212%22 cy=%2210%22 r=%223%22/%3E%3C/svg%3E");
	--gi-i-check: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M20 6 9 17l-5-5%22/%3E%3C/svg%3E");
	--gi-i-flecha: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14%22/%3E%3Cpath d=%22m12 5 7 7-7 7%22/%3E%3C/svg%3E");
	--gi-i-mas: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14%22/%3E%3Cpath d=%22M12 5v14%22/%3E%3C/svg%3E");
	--gi-i-comillas: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z%22/%3E%3Cpath d=%22M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z%22/%3E%3C/svg%3E");
	--gi-i-correo: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%2220%22 height=%2216%22 x=%222%22 y=%224%22 rx=%222%22/%3E%3Cpath d=%22m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7%22/%3E%3C/svg%3E");
	--gi-i-mensaje: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7.9 20A9 9 0 1 0 4 16.1L2 22Z%22/%3E%3C/svg%3E");
	--gi-i-enlace: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M15 3h6v6%22/%3E%3Cpath d=%22M10 14 21 3%22/%3E%3Cpath d=%22M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6%22/%3E%3C/svg%3E");
	--gi-i-escudo: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z%22/%3E%3Cpath d=%22m9 12 2 2 4-4%22/%3E%3C/svg%3E");
	--gi-i-calendario: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M8 2v4%22/%3E%3Cpath d=%22M16 2v4%22/%3E%3Crect width=%2218%22 height=%2218%22 x=%223%22 y=%224%22 rx=%222%22/%3E%3Cpath d=%22M3 10h18%22/%3E%3C/svg%3E");
	--gi-i-billete: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%2220%22 height=%2212%22 x=%222%22 y=%226%22 rx=%222%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%222%22/%3E%3Cpath d=%22M6 12h.01M18 12h.01%22/%3E%3C/svg%3E");
	--gi-i-lista: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%228%22 height=%224%22 x=%228%22 y=%222%22 rx=%221%22 ry=%221%22/%3E%3Cpath d=%22M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2%22/%3E%3Cpath d=%22m9 14 2 2 4-4%22/%3E%3C/svg%3E");
	--gi-i-casa: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8%22/%3E%3Cpath d=%22M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z%22/%3E%3C/svg%3E");
	--gi-i-corazon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z%22/%3E%3C/svg%3E");
	--gi-i-ficha: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M16 10h2%22/%3E%3Cpath d=%22M16 14h2%22/%3E%3Cpath d=%22M6.17 15a3 3 0 0 1 5.66 0%22/%3E%3Ccircle cx=%229%22 cy=%2211%22 r=%222%22/%3E%3Crect x=%222%22 y=%225%22 width=%2220%22 height=%2214%22 rx=%222%22/%3E%3C/svg%3E");
	--gi-i-video: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M10 7.75a.75.75 0 0 1 1.142-.638l3.664 2.249a.75.75 0 0 1 0 1.278l-3.664 2.25a.75.75 0 0 1-1.142-.64z%22/%3E%3Cpath d=%22M12 17v4%22/%3E%3Cpath d=%22M8 21h8%22/%3E%3Crect x=%222%22 y=%223%22 width=%2220%22 height=%2214%22 rx=%222%22/%3E%3C/svg%3E");
	--gi-i-persona: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2%22/%3E%3Ccircle cx=%2212%22 cy=%227%22 r=%224%22/%3E%3C/svg%3E");
	--gi-i-entrar: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4%22/%3E%3Cpath d=%22m10 17 5-5-5-5%22/%3E%3Cpath d=%22M15 12H3%22/%3E%3C/svg%3E");
	--gi-i-corona: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z%22/%3E%3Cpath d=%22M5 21h14%22/%3E%3C/svg%3E");
	--gi-i-perfil: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Ccircle cx=%2212%22 cy=%2210%22 r=%223%22/%3E%3Cpath d=%22M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662%22/%3E%3C/svg%3E");
}

/* ---------- 2. Base ---------- */

body,
button,
input,
select,
textarea,
.ast-button,
.ast-custom-button {
	font-family: var(--gi-fuente);
}

body {
	color: var(--gi-texto);
	background: #fff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.entry-content :where(h1, h2, h3, h4, h5, h6) {
	font-family: var(--gi-fuente);
	color: var(--gi-tinta);
	letter-spacing: -.015em;
	text-wrap: balance;
}

a {
	color: var(--gi-verde-700);
	text-underline-offset: .18em;
	text-decoration-thickness: 1px;
}

a:hover,
a:focus {
	color: var(--gi-tinta);
}

:focus-visible {
	outline: 2px solid var(--gi-verde);
	outline-offset: 3px;
	border-radius: 4px;
}

::selection {
	background: rgba(1, 203, 159, .28);
	color: var(--gi-tinta);
}

/* ---------- 3. Cabecera ---------- */

/* Pegajosa: la barra superior se va con el scroll y la principal se queda (cristal). */
#masthead {
	position: sticky;
	top: calc(-1 * var(--gi-alto-barra));
	z-index: 99;
}

.admin-bar #masthead {
	top: calc(32px - var(--gi-alto-barra));
}

.ast-above-header-bar,
.ast-above-header.ast-above-header-bar {
	background: var(--gi-tinta);
	border: 0;
	min-height: var(--gi-alto-barra);
}

.ast-above-header-bar .ast-builder-grid-row {
	min-height: var(--gi-alto-barra);
}

#masthead .ast-above-header-bar .menu-item > .menu-link,
#masthead .ast-above-header-bar a {
	color: rgba(233, 244, 241, .8);
	font-size: 13px;
	letter-spacing: .01em;
}

#masthead .ast-above-header-bar .menu-item > .menu-link:hover,
#masthead .ast-above-header-bar a:hover {
	color: #fff;
}

.ast-above-header-bar .main-header-menu .menu-link {
	padding: 0 12px;
	line-height: var(--gi-alto-barra);
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.ast-above-header-bar .ast-builder-social-element svg {
	fill: rgba(233, 244, 241, .7);
	transition: fill .3s;
}

.ast-above-header-bar .ast-builder-social-element:hover svg {
	fill: var(--gi-verde);
}

.gi-menu-icono {
	display: inline-block;
	width: 1.05em;
	height: 1.05em;
	background: currentColor;
	-webkit-mask: var(--gi-i-documento) center / contain no-repeat;
	mask: var(--gi-i-documento) center / contain no-repeat;
	flex: none;
}

.gi-menu-icono--billete { -webkit-mask-image: var(--gi-i-billete); mask-image: var(--gi-i-billete); }

.ast-primary-header-bar,
.ast-primary-header-bar.main-header-bar,
#masthead .ast-mobile-header-wrap .ast-primary-header-bar {
	background: rgba(255, 255, 255, .86);
	-webkit-backdrop-filter: saturate(1.6) blur(16px);
	backdrop-filter: saturate(1.6) blur(16px);
	border-bottom: 1px solid rgba(6, 23, 20, .06);
}

/* El logo es el SVG de inc/logo.php (420×100, con aire alrededor del sello): 56 px de alto dejan el
   texto del tamaño que tenía el PNG a 50. */
.site-header .custom-logo-link img,
.site-header .site-logo-img img {
	width: auto;
	max-height: 56px;
}

/* …y 3 px menos de aire arriba y abajo: la cabecera sigue midiendo 83 (header_offset de Smart TOC,
   --gi-toc-arriba y el scroll a las anclas cuentan con ello). */
#masthead .site-branding.ast-site-identity {
	padding-top: 13px;
	padding-bottom: 13px;
}

#masthead .site-primary-header-wrap,
#masthead .site-above-header-wrap {
	max-width: 1320px;
}

#masthead .ast-primary-header-bar .main-header-menu > .menu-item > .menu-link {
	position: relative;
	color: var(--gi-texto);
	font-size: 14px;
	font-weight: 500;
	padding: 0 10px;
	transition: color .3s;
}

.ast-primary-header-bar .main-header-menu > .menu-item > .menu-link::after {
	content: "";
	position: absolute;
	left: 10px;
	right: 10px;
	bottom: calc(50% - 1em);
	height: 2px;
	border-radius: 2px;
	background: var(--gi-grad);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .45s var(--gi-curva);
}

.ast-primary-header-bar .main-header-menu > .menu-item:hover > .menu-link::after,
.ast-primary-header-bar .main-header-menu > .current-menu-item > .menu-link::after,
.ast-primary-header-bar .main-header-menu > .current-menu-ancestor > .menu-link::after {
	transform: scaleX(1);
}

#masthead .ast-primary-header-bar .main-header-menu > .menu-item:hover > .menu-link,
#masthead .ast-primary-header-bar .main-header-menu > .current-menu-item > .menu-link {
	color: var(--gi-tinta);
}

/*
 * Desplegables y mega menú. inc/menus.php pone la clase gi-mega al elemento con nietos
 * («Partidas») y, en cada enlace, el icono (o la bandera), el título y, en el mega, la
 * descripción y la foto. Todo CSS: se abre con :hover o con el foco de teclado (:focus-visible),
 * sin esperar al JS que retrasa WP Rocket. Cerrado queda fuera de pantalla (left: -999em): así la
 * foto, con loading="lazy", no se descarga hasta que se abre.
 * Las reglas de hover y las de teclado (:has) van separadas, sin :is(): si un navegador o el
 * «Remove Unused CSS» de WP Rocket no entienden :has(), se pierde solo la de teclado.
 */
.gi-mm-icono {
	position: relative;
	flex: none;
	display: inline-grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 11px;
	background: var(--gi-fondo);
	box-shadow: inset 0 0 0 1px var(--gi-borde);
	transition: background .35s var(--gi-curva), box-shadow .35s var(--gi-curva), transform .45s var(--gi-curva);
}

.gi-mm-icono::before {
	content: "";
	width: 18px;
	height: 18px;
	background: var(--gi-verde-700);
	-webkit-mask: var(--gi-mm-i, var(--gi-i-documento)) center / contain no-repeat;
	mask: var(--gi-mm-i, var(--gi-i-documento)) center / contain no-repeat;
	transition: background .35s;
}

.gi-mm-icono--lista { --gi-mm-i: var(--gi-i-lista); }
.gi-mm-icono--casa { --gi-mm-i: var(--gi-i-casa); }
.gi-mm-icono--corazon { --gi-mm-i: var(--gi-i-corazon); }
.gi-mm-icono--equipo { --gi-mm-i: var(--gi-i-equipo); }
.gi-mm-icono--balanza { --gi-mm-i: var(--gi-i-balanza); }
.gi-mm-icono--ficha { --gi-mm-i: var(--gi-i-ficha); }
.gi-mm-icono--video { --gi-mm-i: var(--gi-i-video); }
.gi-mm-icono--persona { --gi-mm-i: var(--gi-i-persona); }
.gi-mm-icono--entrar { --gi-mm-i: var(--gi-i-entrar); }
.gi-mm-icono--corona { --gi-mm-i: var(--gi-i-corona); }
.gi-mm-icono--perfil { --gi-mm-i: var(--gi-i-perfil); }

/* Banderas dibujadas con degradados, sin imágenes. */
.gi-mm-icono[class*="--bandera-"] {
	background: none;
	box-shadow: none;
}

.gi-mm-icono[class*="--bandera-"]::before {
	width: 30px;
	height: 21px;
	border-radius: 5px;
	-webkit-mask: none;
	mask: none;
	background: var(--gi-bandera);
	box-shadow: inset 0 0 0 1px rgba(6, 23, 20, .12), 0 4px 10px -3px rgba(6, 23, 20, .35);
}

.gi-mm-icono--bandera-it { --gi-bandera: var(--gi-italia); }
.gi-mm-icono--bandera-ar { --gi-bandera: var(--gi-f-ar); }
.gi-mm-icono--bandera-hr { --gi-bandera: var(--gi-f-hr); }
.gi-mm-icono--bandera-ve { --gi-bandera: var(--gi-f-ve); }

.gi-mm-txt {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.gi-mm-desc {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	color: var(--gi-texto-2);
	font-size: 12.5px;
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: 0;
}

/* Panel: tarjeta blanca que sube y se enfoca. */
#ast-desktop-header #ast-hf-menu-1 > .menu-item > .sub-menu {
	--gi-dd: 336px;
	top: calc(100% + 12px);
	left: -999em;
	right: auto;
	width: var(--gi-dd);
	padding: 8px;
	border: 1px solid rgba(6, 23, 20, .07);
	border-radius: 20px;
	background: #fff;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	box-shadow: 0 2px 6px rgba(6, 23, 20, .05), 0 32px 72px -24px rgba(6, 23, 20, .38);
	visibility: hidden;
	opacity: 0;
	transform: translateY(12px) scale(.98);
	transform-origin: 50% 0;
	transition: opacity .2s ease, transform .3s var(--gi-curva), visibility 0s .3s, left 0s .3s;
}

/* Puente sobre el hueco entre la barra y el panel: al bajar el ratón no se cierra. */
#ast-desktop-header #ast-hf-menu-1 > .menu-item > .sub-menu::before {
	content: "";
	position: absolute;
	top: -13px;
	left: 0;
	width: 100%;
	height: 13px;
	transform: none;
}

#ast-desktop-header #ast-hf-menu-1 > .menu-item:hover > .sub-menu {
	left: calc(50% - var(--gi-dd) / 2);
	opacity: 1;
	transform: none;
	visibility: visible;
	transition: opacity .3s var(--gi-curva), transform .5s var(--gi-curva), visibility 0s, left 0s;
}

#ast-desktop-header #ast-hf-menu-1 > .menu-item:has(:focus-visible) > .sub-menu {
	left: calc(50% - var(--gi-dd) / 2);
	opacity: 1;
	transform: none;
	visibility: visible;
	transition: opacity .3s var(--gi-curva), transform .5s var(--gi-curva), visibility 0s, left 0s;
}

/* El último (PREMIUM) se alinea a la derecha para no salirse de la pantalla. */
#ast-desktop-header #ast-hf-menu-1 > .menu-item:last-child > .sub-menu {
	--gi-dd: 260px;
}

#ast-desktop-header #ast-hf-menu-1 > .menu-item:last-child:hover > .sub-menu {
	left: calc(100% - var(--gi-dd));
}

#ast-desktop-header #ast-hf-menu-1 > .menu-item:last-child:has(:focus-visible) > .sub-menu {
	left: calc(100% - var(--gi-dd));
}

#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link > .ast-icon,
#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link > .dropdown-menu-toggle,
#ast-desktop-header #ast-hf-menu-1 .sub-menu .ast-menu-toggle {
	display: none;
}

#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 34px 8px 10px;
	border: 0;
	border-radius: 13px;
	color: var(--gi-texto);
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1.3;
	transition: background .3s var(--gi-curva), color .3s, box-shadow .3s;
}

#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link:hover,
#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link:focus-visible {
	background: var(--gi-fondo);
	color: var(--gi-tinta);
}

/* Flecha que entra al pasar por el enlace (no ocupa sitio en el texto). */
#ast-desktop-header #ast-hf-menu-1 .sub-menu .gi-mm-titulo::after {
	content: "";
	position: absolute;
	top: calc(50% - 7px);
	right: 12px;
	width: 14px;
	height: 14px;
	background: var(--gi-verde-700);
	-webkit-mask: var(--gi-i-flecha) center / contain no-repeat;
	mask: var(--gi-i-flecha) center / contain no-repeat;
	opacity: 0;
	transform: translateX(-6px);
	transition: opacity .3s, transform .45s var(--gi-curva);
}

#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link:hover .gi-mm-titulo::after,
#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link:focus-visible .gi-mm-titulo::after {
	opacity: 1;
	transform: none;
}

#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link:hover .gi-mm-icono:not([class*="--bandera-"]),
#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link:focus-visible .gi-mm-icono:not([class*="--bandera-"]) {
	background: var(--gi-grad);
	box-shadow: 0 8px 18px -8px rgba(0, 168, 132, .7);
	transform: scale(1.06);
}

#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link:hover .gi-mm-icono:not([class*="--bandera-"])::before,
#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link:focus-visible .gi-mm-icono:not([class*="--bandera-"])::before {
	background: #fff;
}

#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link:hover .gi-mm-icono[class*="--bandera-"],
#ast-desktop-header #ast-hf-menu-1 .sub-menu .menu-link:focus-visible .gi-mm-icono[class*="--bandera-"] {
	transform: rotate(-4deg) scale(1.08);
}

/* Entrada escalonada de los enlaces al abrir. */
@keyframes gi-mm-entra {
	from {
		opacity: 0;
		translate: 0 8px;
	}
}

#ast-desktop-header #ast-hf-menu-1 > .menu-item:hover > .sub-menu .menu-link {
	animation: gi-mm-entra .5s var(--gi-curva) both;
	animation-delay: calc(60ms + var(--gi-n, 0) * 35ms);
}

#ast-desktop-header #ast-hf-menu-1 > .menu-item:has(:focus-visible) > .sub-menu .menu-link {
	animation: gi-mm-entra .5s var(--gi-curva) both;
	animation-delay: calc(60ms + var(--gi-n, 0) * 35ms);
}

#ast-hf-menu-1 .sub-menu > li:nth-child(2) { --gi-n: 1; }
#ast-hf-menu-1 .sub-menu > li:nth-child(3) { --gi-n: 2; }
#ast-hf-menu-1 .sub-menu > li:nth-child(4) { --gi-n: 3; }
#ast-hf-menu-1 .sub-menu > li:nth-child(5) { --gi-n: 4; }
#ast-hf-menu-1 .sub-menu > li:nth-child(6) { --gi-n: 5; }
#ast-hf-menu-1 .sub-menu > li:nth-child(7) { --gi-n: 6; }
#ast-hf-menu-1 .sub-menu > li:nth-child(n+8) { --gi-n: 7; }

/*
 * Mega menú: ocupa el ancho del contenido de la cabecera (del logo al final del menú, como el
 * hero): se posiciona contra la barra principal. Columna oscura con las partidas (la del grupo, con la foto
 * de su página, y las demás con su bandera) y, a la derecha, los hijos del grupo en dos columnas.
 * El li del grupo es display: contents para que su enlace y su lista vayan a celdas distintas.
 */
#ast-desktop-header #ast-hf-menu-1,
#ast-desktop-header #ast-hf-menu-1 > .gi-mega {
	position: static;
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu {
	--gi-mm-lado: 320px;
	--gi-mm-mitad: min(640px, 50% - 20px);
	top: calc(100% + 9px);
	width: calc(2 * var(--gi-mm-mitad));
	display: grid;
	grid-template-columns: var(--gi-mm-lado) minmax(0, 1fr);
	grid-template-rows: auto auto 1fr;
	padding: 0;
	border-radius: 24px;
	background:
		radial-gradient(circle at 0 0, rgba(1, 203, 159, .3), transparent 230px),
		radial-gradient(circle at 0 100%, rgba(1, 203, 159, .14), transparent 200px),
		linear-gradient(90deg, var(--gi-tinta) var(--gi-mm-lado), #fff 0);
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega:hover > .sub-menu {
	left: calc(50% - var(--gi-mm-mitad));
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega:has(:focus-visible) > .sub-menu {
	left: calc(50% - var(--gi-mm-mitad));
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item-has-children {
	display: contents;
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item:not(.menu-item-has-children) {
	grid-column: 1;
	align-self: start;
}

/* Enlaces de la columna oscura. */
#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item > .menu-link {
	align-items: flex-start;
	margin: 0 14px;
	padding: 12px;
	color: #fff;
	font-weight: 600;
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item:last-child > .menu-link {
	margin-bottom: 14px;
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item > .menu-link:hover,
#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item > .menu-link:focus-visible {
	background: rgba(255, 255, 255, .07);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .09);
	color: #fff;
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item > .menu-link .gi-mm-desc {
	color: rgba(233, 244, 241, .62);
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item > .menu-link .gi-mm-titulo::after {
	background: var(--gi-verde);
}

/* Tarjeta del grupo, con la foto de su página. */
#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item-has-children > .menu-link {
	grid-column: 1;
	grid-row: 1;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	gap: 12px;
	min-height: 184px;
	margin: 14px 14px 6px;
	padding: 18px;
	border-radius: 18px;
	background: var(--gi-tinta-3);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1), 0 18px 40px -18px rgba(0, 0, 0, .6);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -.01em;
	line-height: 1.2;
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item-has-children > .menu-link:hover,
#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item-has-children > .menu-link:focus-visible {
	background: var(--gi-tinta-3);
	box-shadow: inset 0 0 0 1px rgba(1, 203, 159, .45), 0 18px 40px -18px rgba(0, 0, 0, .6);
}

/* Destello que cruza la tarjeta. */
#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item-has-children > .menu-link::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent 35%, rgba(255, 255, 255, .2) 50%, transparent 65%);
	transform: translateX(-110%);
	transition: transform .9s var(--gi-curva);
	pointer-events: none;
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item-has-children > .menu-link:hover::after {
	transform: translateX(110%);
}

.gi-mm-foto {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.gi-mm-foto::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(6, 23, 20, .1) 10%, rgba(6, 23, 20, .9) 92%);
}

.gi-mm-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.1s var(--gi-curva);
}

.menu-link:hover > .gi-mm-foto img {
	transform: scale(1.06);
}

/* Hijos del grupo, en dos columnas; el primero ocupa las dos. */
#ast-desktop-header #ast-hf-menu-1 > .gi-mega > .sub-menu > .menu-item > .sub-menu {
	grid-column: 2;
	grid-row: 1 / -1;
	position: static;
	left: auto;
	top: auto;
	width: auto;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-content: start;
	gap: 2px 12px;
	margin: 0;
	padding: 18px 22px 20px;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	visibility: inherit;
	opacity: 1;
	transform: none;
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega .sub-menu .sub-menu::before {
	display: none;
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega .sub-menu .sub-menu > .menu-item:first-child {
	grid-column: 1 / -1;
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega .sub-menu .sub-menu .menu-link {
	align-items: flex-start;
	padding: 11px 12px;
}

#ast-desktop-header #ast-hf-menu-1 > .gi-mega .sub-menu .sub-menu .gi-mm-titulo {
	color: var(--gi-tinta);
	font-weight: 600;
}

/* El resto de la página se oscurece y desenfoca con el mega menú abierto. */
#masthead::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	background: rgba(6, 23, 20, .3);
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .35s var(--gi-curva), visibility 0s .35s;
}

#masthead:has(.gi-mega:hover, .gi-mega :focus-visible)::after {
	opacity: 1;
	visibility: visible;
	transition: opacity .35s var(--gi-curva), visibility 0s;
}

#masthead:has(.gi-mega:hover, .gi-mega :focus-visible) .ast-primary-header-bar {
	background: #fff;
}

/* PREMIUM (área de clientes): píldora con borde que gira. */
#masthead .main-header-menu #menu-item-3233 {
	display: flex;
	align-items: center;
}

#masthead .main-header-menu #menu-item-3233 > .menu-link {
	margin-left: 4px;
	padding: 0 15px;
	height: 40px;
	line-height: 37px;
	border-radius: 999px;
	border: 1.5px solid transparent;
	background:
		linear-gradient(#fff, #fff) padding-box,
		conic-gradient(from var(--gi-angulo), var(--gi-verde) 0 20%, #c8f7ea 35%, var(--gi-tinta) 50%, var(--gi-verde) 70%, #c8f7ea 85%, var(--gi-verde)) border-box;
	animation: gi-giro 4s linear infinite;
	font-weight: 700;
	letter-spacing: .06em;
	font-size: 13px;
}

.ast-primary-header-bar .main-header-menu > #menu-item-3233 > .menu-link::after {
	display: none;
}

/* Móvil. */
.ast-mobile-header-wrap .menu-toggle {
	border-radius: 12px;
	background: var(--gi-fondo);
	color: var(--gi-tinta);
}

.ast-mobile-header-wrap .ast-mobile-header-content,
.ast-mobile-popup-drawer .ast-mobile-popup-inner {
	background: #fff;
}

.ast-header-break-point .main-header-menu .menu-link,
.ast-mobile-header-content .menu-link {
	color: var(--gi-texto);
	border-color: var(--gi-borde);
	font-weight: 500;
}

/* Desplegables del menú móvil: el icono de inc/menus.php delante del título. */
#ast-hf-mobile-menu .sub-menu .menu-link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-top: 8px;
	padding-bottom: 8px;
	line-height: 1.35;
}

#ast-hf-mobile-menu .sub-menu .menu-link > .ast-icon {
	display: none;
}

#ast-hf-mobile-menu .gi-mm-icono {
	width: 32px;
	height: 32px;
	border-radius: 10px;
}

#ast-hf-mobile-menu .gi-mm-icono::before {
	width: 16px;
	height: 16px;
}

#ast-hf-mobile-menu .gi-mm-icono[class*="--bandera-"]::before {
	width: 26px;
	height: 18px;
	border-radius: 4px;
}

/* ---------- 4. Botones ---------- */

@keyframes gi-giro {
	to { --gi-angulo: 360deg; }
}

body .wp-block-button.is-style-gi-borde > .wp-block-button__link,
body .wp-block-button.is-style-gi-fantasma > .wp-block-button__link,
.entry-content a.gi-boton,
.entry-content a.btn-theme,
a.gi-boton {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: .65em;
	padding: 15px 26px;
	border-radius: 999px;
	border: 2px solid transparent;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .005em;
	text-decoration: none;
	cursor: pointer;
	transition: transform .4s var(--gi-curva), box-shadow .4s var(--gi-curva), color .3s;
	animation: gi-giro 3.6s linear infinite;
}

/* Relleno de marca y un destello que recorre el borde. */
body .wp-block-button.is-style-gi-borde > .wp-block-button__link,
.entry-content a.gi-boton,
.entry-content a.btn-theme,
a.gi-boton {
	color: #032019;
	background:
		var(--gi-grad) padding-box,
		conic-gradient(from var(--gi-angulo), transparent 0 52%, rgba(255, 255, 255, .95) 66%, #b6ffe9 72%, transparent 86%) border-box,
		linear-gradient(#00a884, #00a884) border-box;
	box-shadow: 0 12px 32px -12px rgba(1, 203, 159, .75), inset 0 1px 0 rgba(255, 255, 255, .45);
}

/* Sin relleno: sobre fondo oscuro, texto blanco. */
body .wp-block-button.is-style-gi-fantasma > .wp-block-button__link {
	color: #fff;
	background:
		linear-gradient(var(--gi-tinta-2), var(--gi-tinta-2)) padding-box,
		conic-gradient(from var(--gi-angulo), rgba(1, 203, 159, .25) 0 40%, var(--gi-verde) 55%, #fff 62%, rgba(1, 203, 159, .25) 78%) border-box;
	animation-duration: 5s;
}

/* …y sobre fondo claro, texto oscuro. */
.gi-seccion:not(.gi-seccion--oscura) .wp-block-button.is-style-gi-fantasma > .wp-block-button__link,
.entry-content > .wp-block-buttons .wp-block-button.is-style-gi-fantasma > .wp-block-button__link {
	color: var(--gi-tinta);
	background:
		linear-gradient(#fff, #fff) padding-box,
		conic-gradient(from var(--gi-angulo), var(--gi-borde) 0 40%, var(--gi-verde) 55%, var(--gi-tinta) 62%, var(--gi-borde) 78%) border-box;
}

body .wp-block-button.is-style-gi-borde > .wp-block-button__link::after,
body .wp-block-button.is-style-gi-fantasma > .wp-block-button__link::after,
.entry-content a.btn-theme::after,
a.gi-boton::after {
	content: "";
	width: 1.1em;
	height: 1.1em;
	background: currentColor;
	-webkit-mask: var(--gi-i-flecha) center / contain no-repeat;
	mask: var(--gi-i-flecha) center / contain no-repeat;
	transition: transform .4s var(--gi-curva);
}

body .wp-block-button.is-style-gi-borde > .wp-block-button__link:hover,
.entry-content a.gi-boton:hover,
.entry-content a.btn-theme:hover,
a.gi-boton:hover {
	transform: translateY(-2px);
	color: #032019;
	box-shadow: 0 18px 40px -12px rgba(1, 203, 159, .85), inset 0 1px 0 rgba(255, 255, 255, .45);
}

body .wp-block-button.is-style-gi-fantasma > .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 34px -14px rgba(1, 203, 159, .6);
}

body .wp-block-button.is-style-gi-borde > .wp-block-button__link:hover::after,
body .wp-block-button.is-style-gi-fantasma > .wp-block-button__link:hover::after,
.entry-content a.btn-theme:hover::after,
a.gi-boton:hover::after {
	transform: translateX(4px);
}

/* Los botones normales de Astra y CF7, de la misma familia (ARMember va con los suyos). */
.wp-block-button:not([class*="is-style-gi"]) .wp-block-button__link,
.ast-button,
.wpcf7-submit {
	border-radius: 999px;
	background-color: var(--gi-verde);
	border-color: var(--gi-verde);
	color: #032019;
	font-weight: 600;
	transition: transform .3s var(--gi-curva), box-shadow .3s, background-color .3s;
}

.wp-block-button:not([class*="is-style-gi"]) .wp-block-button__link:hover,
.ast-button:hover,
.wpcf7-submit:hover {
	background-color: var(--gi-verde-600);
	border-color: var(--gi-verde-600);
	color: #032019;
	transform: translateY(-1px);
	box-shadow: 0 12px 26px -12px rgba(1, 203, 159, .7);
}

.gi-botones {
	gap: 12px;
}

/* ---------- 5. Hero ---------- */

.gi-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--gi-tinta);
	color: #dcebe7;
	--gi-pad-y: clamp(36px, 6.5vh, 76px);
	padding: var(--gi-pad-y) var(--gi-margen);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* Aurora: tres manchas de luz (verde, verde italiano y rojo del sello) que derivan despacio. */
.gi-hero::before {
	content: "";
	position: absolute;
	inset: -40% -20%;
	z-index: -2;
	background:
		radial-gradient(38% 42% at 72% 38%, rgba(1, 203, 159, .34), transparent 70%),
		radial-gradient(30% 34% at 18% 82%, rgba(0, 146, 70, .22), transparent 70%),
		radial-gradient(22% 26% at 92% 92%, rgba(206, 43, 55, .16), transparent 70%);
	animation: gi-aurora 22s ease-in-out infinite alternate;
	will-change: transform;
}

/* Rejilla fina que se desvanece hacia los bordes. */
.gi-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(70% 80% at 65% 40%, #000 20%, transparent 75%);
	mask-image: radial-gradient(70% 80% at 65% 40%, #000 20%, transparent 75%);
}

@keyframes gi-aurora {
	0% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); }
	50% { transform: translate3d(-4%, 3%, 0) rotate(6deg) scale(1.08); }
	100% { transform: translate3d(3%, -2%, 0) rotate(-4deg) scale(1.02); }
}

.gi-hero__grid {
	position: relative;
	max-width: var(--gi-ancho);
	margin: 0 auto !important;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	align-items: center;
	gap: clamp(24px, 4vw, 64px);
}

.gi-hero__grid > * {
	margin: 0 !important;
}

.gi-hero__texto > * {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.gi-hero .gi-ceja {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 20px !important;
	padding: 7px 16px 7px 10px;
	border-radius: 999px;
	font-size: 13.5px;
	font-weight: 500;
	letter-spacing: .02em;
	color: #c9f5e8;
	border: 1px solid transparent;
	background:
		linear-gradient(rgba(11, 38, 33, .92), rgba(11, 38, 33, .92)) padding-box,
		conic-gradient(from var(--gi-angulo), rgba(1, 203, 159, .2) 0 55%, var(--gi-verde) 70%, rgba(255, 255, 255, .8) 75%, rgba(1, 203, 159, .2) 90%) border-box;
	animation: gi-giro 6s linear infinite;
}

.gi-hero .gi-ceja::before {
	content: "";
	width: 22px;
	height: 14px;
	border-radius: 3px;
	background: var(--gi-italia);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .15);
	flex: none;
}

.gi-hero h1 {
	color: #fff;
	font-size: clamp(36px, 4.6vw, 64px);
	line-height: 1.04;
	font-weight: 800;
	letter-spacing: -.035em;
	margin-bottom: 18px !important;
}

/* «ciudadanía italiana» con un brillo que pasa despacio (el H1 se pinta desde el primer
   fotograma: no se anima su opacidad para no retrasar el LCP). */
.gi-hero h1 mark,
.gi-acento {
	background: linear-gradient(100deg, var(--gi-verde-claro) 0%, var(--gi-verde) 35%, #e9fff8 50%, var(--gi-verde) 65%, var(--gi-verde-claro) 100%) 0 0 / 220% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	animation: gi-brillo 7s ease-in-out infinite;
}

@keyframes gi-brillo {
	0%, 100% { background-position: 100% 0; }
	50% { background-position: 0 0; }
}

.gi-hero .gi-lead {
	font-size: clamp(18px, 1.55vw, 21px);
	line-height: 1.45;
	color: #eef8f5;
	font-weight: 500;
	margin-bottom: 10px !important;
	max-width: 34em;
}

.gi-hero .gi-hero__texto p:not(.gi-ceja):not(.gi-lead) {
	font-size: clamp(15.5px, 1.2vw, 17px);
	line-height: 1.6;
	color: rgba(220, 235, 231, .78);
	max-width: 36em;
}

.gi-hero .gi-botones {
	margin-top: 28px !important;
}

/* Composición de documentos (decorativa, aria-hidden): un abanico de tres partidas que escala
   con el alto disponible (unidades cqh), para que el hero quepa también en pantallas bajas. */
.gi-docs {
	position: relative;
	height: clamp(300px, 50vh, 440px);
	max-width: 540px;
	margin-left: auto;
	container-type: size;
}

.gi-docs__halo {
	position: absolute;
	inset: 10% 6% 4% 10%;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(1, 203, 159, .42), transparent);
	filter: blur(20px);
	animation: gi-latido 6s ease-in-out infinite;
}

@keyframes gi-latido {
	50% { opacity: .55; transform: scale(.94); }
}

.gi-doc {
	position: absolute;
	top: 7cqh;
	height: 80cqh;
	aspect-ratio: 4 / 5;
	padding: 6cqh 5cqh 5cqh;
	border-radius: 18px;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0) 60%, rgba(6, 23, 20, .04)),
		var(--gi-papel);
	box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .6) inset;
	color: var(--gi-tinta);
	display: flex;
	flex-direction: column;
	gap: 2.2cqh;
	overflow: hidden;
	animation: gi-entra 1s var(--gi-curva) both, gi-flota 7s ease-in-out 1.2s infinite alternate;
}

.gi-doc::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 6px;
	background: var(--gi-italia);
}

.gi-doc__pais {
	font-size: clamp(10px, 2.6cqh, 11.5px);
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gi-verde-700);
}

.gi-doc__titulo {
	font-size: clamp(14px, 4.6cqh, 20px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.01em;
}

.gi-doc__lineas {
	display: grid;
	gap: 2.2cqh;
	margin-top: 1.5cqh;
}

.gi-doc__lineas i {
	display: block;
	height: 1.7cqh;
	min-height: 5px;
	border-radius: 4px;
	background: linear-gradient(90deg, #e5ece9, #eef3f1);
}

.gi-doc__lineas i:nth-child(2) { width: 86%; }
.gi-doc__lineas i:nth-child(3) { width: 92%; }
.gi-doc__lineas i:nth-child(4) { width: 64%; }

/* Atrás a la derecha, atrás a la izquierda y la del sello delante, en el centro. */
.gi-doc--a {
	right: 0;
	top: 3cqh;
	--gi-giro-doc: 9deg;
	animation-delay: .15s, 1.3s;
	z-index: 1;
}

.gi-doc--b {
	left: 0;
	top: 6cqh;
	--gi-giro-doc: -9deg;
	animation-delay: .3s, 1.6s;
	z-index: 2;
}

.gi-doc--c {
	left: calc(50% - 32cqh);
	top: 12cqh;
	--gi-giro-doc: -1.5deg;
	animation-delay: .45s, 1.9s;
	z-index: 3;
	box-shadow: 0 40px 70px -24px rgba(0, 0, 0, .7), 0 0 0 1px rgba(255, 255, 255, .6) inset;
}

/* Cuarta ficha (23/10/2026): antecedentes penales con el sello de la Apostilla de La Haya.
   Con cuatro, el abanico de la home pasa a dos filas: tres atrás (legalización a la izquierda,
   matrimonio al centro, penales a la derecha), con su título a la vista, y la del sello delante, más
   abajo. El alto de las fichas sale del alto Y del ancho del contenedor (--gi-h), para que las tres de
   atrás quepan en fila en pantallas altas sin pisarse los títulos. */
.gi-docs:not(.gi-docs--servicio) {
	--gi-h: min(62cqh, 43cqw);
}

.gi-docs:not(.gi-docs--servicio) .gi-doc {
	height: var(--gi-h);
}

.gi-docs:not(.gi-docs--servicio) .gi-doc--b {
	left: 0;
	top: 2cqh;
	--gi-giro-doc: -7deg;
}

.gi-docs:not(.gi-docs--servicio) .gi-doc--a {
	right: auto;
	left: calc(50% - var(--gi-h) * .4 + 3cqw);
	top: 0;
	--gi-giro-doc: 2deg;
}

.gi-doc--d {
	right: 0;
	top: 3cqh;
	--gi-giro-doc: 7deg;
	animation-delay: .45s, 1.75s;
	z-index: 2;
}

.gi-docs:not(.gi-docs--servicio) .gi-doc--c {
	left: calc(50% - var(--gi-h) * .4 - 4cqw);
	top: calc(var(--gi-h) * .5);
	--gi-giro-doc: -1.5deg;
}

.gi-doc__apostilla {
	position: absolute;
	right: 4cqh;
	bottom: 4cqh;
	width: 24cqh;
	height: 24cqh;
	border-radius: 50%;
	display: grid;
	place-content: center;
	text-align: center;
	color: #a3212f;
	border: 2px solid currentColor;
	box-shadow: inset 0 0 0 4px var(--gi-papel), inset 0 0 0 5.5px currentColor;
	opacity: .92;
	animation: gi-sello .7s cubic-bezier(.3, 1.5, .5, 1) 1.6s both;
}

.gi-doc__apostilla b {
	display: block;
	font-size: clamp(7px, 2.5cqh, 10.5px);
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	line-height: 1.25;
}

.gi-doc__sello {
	position: absolute;
	right: 4cqh;
	bottom: 4cqh;
	width: 21cqh;
	height: 21cqh;
	border-radius: 50%;
	filter: drop-shadow(0 8px 14px rgba(120, 10, 20, .35));
	animation: gi-sello .7s cubic-bezier(.3, 1.5, .5, 1) 1.05s both;
}

@keyframes gi-entra {
	from {
		opacity: 0;
		transform: translate3d(60px, 50px, 0) rotate(calc(var(--gi-giro-doc) + 10deg)) scale(.92);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0) rotate(var(--gi-giro-doc));
	}
}

@keyframes gi-flota {
	from { transform: translate3d(0, 0, 0) rotate(var(--gi-giro-doc)); }
	to { transform: translate3d(0, -12px, 0) rotate(calc(var(--gi-giro-doc) + 1.2deg)); }
}

/* El sello cae sobre el documento como un golpe de lacre. */
@keyframes gi-sello {
	0% { opacity: 0; transform: scale(2.2) rotate(-25deg); }
	70% { opacity: 1; transform: scale(.92) rotate(4deg); }
	100% { opacity: 1; transform: scale(1) rotate(-6deg); }
}

.gi-chip {
	position: absolute;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 16px 10px 10px;
	border-radius: 14px;
	font-size: 14px;
	font-weight: 600;
	color: #eafaf5;
	background: rgba(11, 38, 33, .72);
	border: 1px solid rgba(255, 255, 255, .14);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .6);
	white-space: nowrap;
	animation: gi-chip .8s var(--gi-curva) both, gi-flota-chip 5s ease-in-out infinite alternate;
}

.gi-chip__ico {
	width: 30px;
	height: 30px;
	border-radius: 9px;
	background: var(--gi-grad);
	position: relative;
	flex: none;
}

.gi-chip__ico::after {
	content: "";
	position: absolute;
	inset: 7px;
	background: #032019;
	-webkit-mask: var(--gi-i-check) center / contain no-repeat;
	mask: var(--gi-i-check) center / contain no-repeat;
}

.gi-chip--ok {
	left: -2%;
	bottom: 24%;
	animation-delay: 1.35s, 2.2s;
}

.gi-chip--ruta {
	right: -2%;
	bottom: 4%;
	animation-delay: 1.6s, 2.6s;
	padding-left: 16px;
}

/* Trazo de puntos que viaja de Argentina a Italia. */
.gi-ruta {
	position: relative;
	width: 54px;
	height: 2px;
	background: repeating-linear-gradient(90deg, var(--gi-verde) 0 6px, transparent 6px 11px) 0 0 / 22px 2px;
	animation: gi-ruta 1.1s linear infinite;
}

.gi-ruta::after {
	content: "";
	position: absolute;
	right: -3px;
	top: -3px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--gi-verde);
	box-shadow: 0 0 0 4px rgba(1, 203, 159, .25);
}

@keyframes gi-ruta {
	to { background-position: 22px 0; }
}

/* País de origen que va rotando (la asesoría tramita desde cualquier país, no solo Argentina). Los
   8 nombres de generar-inicio.py (PAISES) comparten celda de rejilla: el ancho es el del más largo y
   no salta nada. Cada uno ocupa 1/8 del ciclo (2,5 s ×8). La ficha y la ruta usan el mismo ciclo, así
   que enseñan siempre el mismo país. Sin animación (movimiento reducido) queda el primero. */
.gi-rota {
	display: inline-grid;
	justify-items: end;
	text-align: right;
	overflow: hidden;
	vertical-align: bottom;
}

.gi-doc__pais .gi-rota {
	justify-items: start;
	text-align: left;
}

.gi-rota > span {
	grid-area: 1 / 1;
	opacity: 0;
	animation: gi-rota 20s linear infinite;
}

.gi-rota > span:first-child { opacity: 1; }
.gi-rota > span:nth-child(2) { animation-delay: 2.5s; }
.gi-rota > span:nth-child(3) { animation-delay: 5s; }
.gi-rota > span:nth-child(4) { animation-delay: 7.5s; }
.gi-rota > span:nth-child(5) { animation-delay: 10s; }
.gi-rota > span:nth-child(6) { animation-delay: 12.5s; }
.gi-rota > span:nth-child(7) { animation-delay: 15s; }
.gi-rota > span:nth-child(8) { animation-delay: 17.5s; }

@keyframes gi-rota {
	0% { opacity: 0; transform: translateY(70%); }
	2% { opacity: 1; transform: none; }
	10.5% { opacity: 1; transform: none; }
	12.5% { opacity: 0; transform: translateY(-70%); }
	100% { opacity: 0; transform: translateY(-70%); }
}

@media (prefers-reduced-motion: reduce) {
	.gi-rota > span {
		animation: none !important;
	}

	.gi-rota > span:not(:first-child) {
		display: none;
	}
}

@keyframes gi-chip {
	from { opacity: 0; transform: translateY(16px) scale(.9); }
	to { opacity: 1; transform: none; }
}

@keyframes gi-flota-chip {
	to { translate: 0 -6px; }
}

/* ---------- 6. Secciones y tarjetas ---------- */

/* Astra pone 3em de relleno a todo grupo o bloque de columnas de primer nivel (y a los de
   ancho completo, el suyo lateral). Aquí manda el del diseño: el contenido queda alineado con el
   logo de la cabecera y las columnas de las páginas no se encogen. */
.entry-content > .gi-hero,
.entry-content > .gi-seccion {
	padding: var(--gi-pad-y) var(--gi-margen) var(--gi-pad-y-b, var(--gi-pad-y)) !important;
}

.entry-content > .wp-block-columns,
.entry-content > .wp-block-group:not(.gi-hero):not(.gi-seccion) {
	padding: 0;
}

.entry-content > .wp-block-group.gi-sc-cta {
	padding: clamp(24px, 3vw, 40px);
}

.gi-seccion {
	position: relative;
	--gi-pad-y: clamp(56px, 8vw, 104px);
	padding: var(--gi-pad-y) var(--gi-margen);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.gi-seccion--suave {
	background:
		radial-gradient(60% 50% at 50% 0%, rgba(1, 203, 159, .07), transparent 70%),
		var(--gi-fondo);
}

.gi-seccion--oscura {
	background: var(--gi-tinta);
	color: #dcebe7;
	overflow: hidden;
	isolation: isolate;
}

.gi-seccion--oscura::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(40% 60% at 85% 20%, rgba(1, 203, 159, .22), transparent 70%),
		radial-gradient(35% 50% at 10% 90%, rgba(0, 146, 70, .16), transparent 70%);
}

.gi-seccion--oscura :where(h2, h3, h4) {
	color: #fff;
}

.gi-contenedor {
	max-width: var(--gi-ancho);
	margin-left: auto !important;
	margin-right: auto !important;
}

.gi-contenedor > :first-child {
	margin-top: 0;
}

.gi-titulo-seccion {
	font-size: clamp(26px, 3vw, 40px);
	line-height: 1.15;
	font-weight: 800;
	letter-spacing: -.03em;
	max-width: 24em;
	margin: 0 auto clamp(32px, 4vw, 52px) !important;
	text-align: center;
}

.gi-titulo-seccion strong {
	font-weight: inherit;
}

.gi-rejilla {
	display: grid;
	gap: clamp(16px, 2vw, 24px);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
}

.gi-rejilla > * {
	margin: 0 !important;
}

.gi-rejilla--3 {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}

.wp-block-group.is-style-gi-tarjeta {
	--gi-x: 50%;
	--gi-y: 0%;
	position: relative;
	isolation: isolate;
	padding: clamp(24px, 2.4vw, 32px);
	border-radius: var(--gi-r-l);
	background: #fff;
	border: 1px solid var(--gi-borde);
	box-shadow: var(--gi-sombra-s);
	transition: transform .5s var(--gi-curva), box-shadow .5s var(--gi-curva), border-color .5s;
}

/* Borde que se enciende y gira al pasar el ratón. */
.wp-block-group.is-style-gi-tarjeta::before {
	content: "";
	position: absolute;
	inset: -1px;
	z-index: 1;
	border-radius: inherit;
	padding: 1.5px;
	background: conic-gradient(from var(--gi-angulo), transparent 0 60%, var(--gi-verde) 78%, #d6fff2 84%, transparent 96%);
	-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 .5s;
	animation: gi-giro 5s linear infinite paused;
	pointer-events: none;
}

/* Foco de luz que sigue al cursor (gi.js pone --gi-x/--gi-y; sin JS queda arriba). */
.wp-block-group.is-style-gi-tarjeta::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	background: radial-gradient(420px circle at var(--gi-x) var(--gi-y), rgba(1, 203, 159, .1), transparent 45%);
	opacity: 0;
	transition: opacity .5s;
	pointer-events: none;
}

.wp-block-group.is-style-gi-tarjeta:hover {
	transform: translateY(-6px);
	box-shadow: var(--gi-sombra-l);
	border-color: transparent;
}

.wp-block-group.is-style-gi-tarjeta:hover::before {
	opacity: 1;
	animation-play-state: running;
}

.wp-block-group.is-style-gi-tarjeta:hover::after {
	opacity: 1;
}

.is-style-gi-tarjeta > * {
	margin-top: 0;
}

.is-style-gi-tarjeta > :last-child {
	margin-bottom: 0;
}

.is-style-gi-tarjeta :where(h3, h4) {
	font-size: 21px;
	line-height: 1.25;
	font-weight: 700;
	margin-bottom: 10px;
}

.is-style-gi-tarjeta :where(h3, h4)::first-letter {
	text-transform: uppercase;
}

.is-style-gi-tarjeta p {
	color: var(--gi-texto-2);
	font-size: 15.5px;
	line-height: 1.65;
	margin-bottom: .7em;
}

.is-style-gi-tarjeta > p:last-child {
	margin-bottom: 0;
}

/* Icono de la tarjeta: azulejo con degradado y el trazo encima. */
.gi-ico > :first-child {
	position: relative;
	padding-top: 72px;
}

.gi-ico > :first-child::before,
.gi-ico > :first-child::after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 52px;
	height: 52px;
	border-radius: 15px;
	transition: transform .6s var(--gi-curva);
}

.gi-ico > :first-child::before {
	background: var(--gi-grad);
	box-shadow: 0 12px 24px -10px rgba(1, 203, 159, .8), inset 0 1px 0 rgba(255, 255, 255, .5);
}

.gi-ico > :first-child::after {
	background: #032019;
	-webkit-mask: var(--gi-icono, var(--gi-i-check)) center / 24px no-repeat;
	mask: var(--gi-icono, var(--gi-i-check)) center / 24px no-repeat;
}

.gi-ico:hover > :first-child::before,
.gi-ico:hover > :first-child::after {
	transform: rotate(-8deg) scale(1.06);
}

.gi-ico--maletin { --gi-icono: var(--gi-i-maletin); }
.gi-ico--candado { --gi-icono: var(--gi-i-candado); }
.gi-ico--equipo { --gi-icono: var(--gi-i-equipo); }
.gi-ico--pulgar { --gi-icono: var(--gi-i-pulgar); }
.gi-ico--lupa { --gi-icono: var(--gi-i-lupa); }
.gi-ico--documento { --gi-icono: var(--gi-i-documento); }
.gi-ico--movil { --gi-icono: var(--gi-i-movil); }
.gi-ico--balanza { --gi-icono: var(--gi-i-balanza); }
.gi-ico--reloj { --gi-icono: var(--gi-i-reloj); }
.gi-ico--pin { --gi-icono: var(--gi-i-pin); }
.gi-ico--escudo { --gi-icono: var(--gi-i-escudo); }

/* Tarjetas de valores: el número, grande y hueco, en la esquina. */
.gi-valores {
	counter-reset: gi-valor;
}

.gi-valores > .is-style-gi-tarjeta {
	counter-increment: gi-valor;
	overflow: hidden;
}

.gi-valores > .is-style-gi-tarjeta > :last-child::after {
	content: counter(gi-valor, decimal-leading-zero);
	position: absolute;
	top: 18px;
	right: 22px;
	font-size: 46px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.04em;
	color: transparent;
	-webkit-text-stroke: 1.2px #d5e2de;
	transition: -webkit-text-stroke-color .5s;
}

.gi-valores > .is-style-gi-tarjeta:hover > :last-child::after {
	-webkit-text-stroke-color: var(--gi-verde);
}

/* ---------- 7. Bento, FAQ, testimonios, entradas y contacto ---------- */

.gi-bento {
	display: grid;
	gap: clamp(16px, 2vw, 24px);
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.gi-bento > * {
	margin: 0 !important;
	grid-column: span 2;
}

.gi-bento > .gi-bento--ancho {
	grid-column: span 4;
}

.gi-bento > .gi-bento--medio {
	grid-column: span 3;
}

.gi-bento > .gi-bento--entero {
	grid-column: 1 / -1;
}



/* Tarjeta destacada oscura (vía materna). */
.gi-bento > .gi-destacada {
	background: linear-gradient(160deg, var(--gi-tinta-3), var(--gi-tinta));
	border-color: rgba(255, 255, 255, .08);
}

.gi-bento > .gi-destacada :where(h3, h4) {
	color: #fff;
}

.gi-bento > .gi-destacada p {
	color: rgba(220, 235, 231, .82);
}

.gi-fecha {
	display: block;
	font-size: clamp(34px, 4vw, 52px);
	line-height: 1;
	font-weight: 800;
	letter-spacing: -.04em;
	margin-bottom: 10px;
	background: var(--gi-grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* Listas con check (documentos que se gestionan). */
.entry-content .gi-lista-check,
.gi-lista-check {
	list-style: none;
	margin: 14px 0 12px !important;
	padding: 0 !important;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.gi-lista-check li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 8px 14px 8px 11px;
	border-radius: 999px;
	background: var(--gi-fondo);
	border: 1px solid var(--gi-borde);
	font-size: 14.5px;
	line-height: 1.3;
	color: var(--gi-texto);
	transition: border-color .3s, background .3s, transform .3s var(--gi-curva);
}

.gi-lista-check li::before {
	content: "";
	width: 16px;
	height: 16px;
	flex: none;
	background: var(--gi-verde-600);
	-webkit-mask: var(--gi-i-check) center / contain no-repeat;
	mask: var(--gi-i-check) center / contain no-repeat;
}

.gi-lista-check li:hover {
	border-color: var(--gi-verde);
	background: #fff;
	transform: translateY(-1px);
}

.gi-enlace-flecha a {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	font-weight: 600;
	text-decoration: none;
}

.gi-enlace-flecha a::after {
	content: "";
	width: 1em;
	height: 1em;
	background: currentColor;
	-webkit-mask: var(--gi-i-flecha) center / contain no-repeat;
	mask: var(--gi-i-flecha) center / contain no-repeat;
	transition: transform .35s var(--gi-curva);
}

.gi-enlace-flecha a:hover::after {
	transform: translateX(4px);
}

/* FAQ: acordeón nativo (<details>) sin JS. */
.gi-faq {
	max-width: 880px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.gi-faq .wp-block-details {
	margin: 0 0 12px !important;
	border-radius: var(--gi-r);
	background: #fff;
	border: 1px solid var(--gi-borde);
	box-shadow: var(--gi-sombra-s);
	transition: border-color .35s, box-shadow .35s;
	interpolate-size: allow-keywords;
}

.gi-faq .wp-block-details[open] {
	border-color: rgba(1, 203, 159, .45);
	box-shadow: var(--gi-sombra);
}

.gi-faq .wp-block-details summary {
	list-style: none;
	position: relative;
	cursor: pointer;
	padding: 20px 64px 20px 24px;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--gi-tinta);
}

.gi-faq .wp-block-details summary::-webkit-details-marker {
	display: none;
}

.gi-faq .wp-block-details summary::after {
	content: "";
	position: absolute;
	right: 20px;
	top: 50%;
	width: 30px;
	height: 30px;
	margin-top: -15px;
	border-radius: 50%;
	background: var(--gi-fondo);
	transition: background .3s;
}

.gi-faq .wp-block-details summary::before {
	content: "";
	position: absolute;
	z-index: 1;
	right: 27px;
	top: 50%;
	width: 16px;
	height: 16px;
	margin-top: -8px;
	background: var(--gi-tinta);
	-webkit-mask: var(--gi-i-mas) center / contain no-repeat;
	mask: var(--gi-i-mas) center / contain no-repeat;
	transition: transform .45s var(--gi-curva), background .3s;
}

.gi-faq .wp-block-details[open] summary::after {
	background: var(--gi-verde);
}

.gi-faq .wp-block-details[open] summary::before {
	transform: rotate(135deg);
	background: #032019;
}

.gi-faq .wp-block-details > :not(summary) {
	margin: 0;
	padding: 0 24px;
	color: var(--gi-texto-2);
	font-size: 16px;
	line-height: 1.7;
}

.gi-faq .wp-block-details > :not(summary):last-child {
	padding-bottom: 22px;
}

.gi-faq .wp-block-details > p + p {
	padding-top: 12px;
}

.gi-faq .wp-block-details::details-content {
	block-size: 0;
	overflow: hidden;
	transition: block-size .45s var(--gi-curva), content-visibility .45s allow-discrete;
}

.gi-faq .wp-block-details[open]::details-content {
	block-size: auto;
}

/* Testimonios. */
.gi-testimonios .wp-block-quote {
	position: relative;
	margin: 0 !important;
	padding: 34px 28px 26px;
	border: 1px solid var(--gi-borde) !important;
	border-radius: var(--gi-r-l);
	background: #fff;
	box-shadow: var(--gi-sombra-s);
	display: flex;
	flex-direction: column;
	gap: 18px;
	transition: transform .5s var(--gi-curva), box-shadow .5s;
}

.gi-testimonios .wp-block-quote:hover {
	transform: translateY(-4px);
	box-shadow: var(--gi-sombra);
}

.gi-testimonios .wp-block-quote::before {
	content: "";
	width: 34px;
	height: 34px;
	background: var(--gi-verde);
	-webkit-mask: var(--gi-i-comillas) center / contain no-repeat;
	mask: var(--gi-i-comillas) center / contain no-repeat;
}

.gi-testimonios .wp-block-quote p {
	margin: 0;
	font-size: 16.5px;
	line-height: 1.65;
	color: var(--gi-texto);
	font-style: normal;
}

.gi-testimonios .wp-block-quote cite {
	margin-top: auto;
	display: flex;
	align-items: center;
	gap: 12px;
	font-style: normal;
	font-size: 15px;
	font-weight: 700;
	color: var(--gi-tinta);
}

.gi-testimonios .wp-block-quote cite::before {
	content: "";
	width: 36px;
	height: 24px;
	border-radius: 5px;
	background: var(--gi-italia);
	box-shadow: 0 0 0 1px var(--gi-borde);
	flex: none;
}

/* Últimas entradas (bloque de últimas entradas en rejilla). */
.gi-ultimas.wp-block-latest-posts {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: clamp(16px, 2vw, 24px);
	margin: 0 !important;
	padding: 0;
}

.gi-ultimas.wp-block-latest-posts > li {
	position: relative;
	width: auto !important;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
	border-radius: var(--gi-r-l);
	background: #fff;
	border: 1px solid var(--gi-borde);
	overflow: hidden;
	box-shadow: var(--gi-sombra-s);
	transition: transform .5s var(--gi-curva), box-shadow .5s;
}

.gi-ultimas.wp-block-latest-posts > li:hover {
	transform: translateY(-6px);
	box-shadow: var(--gi-sombra-l);
}

.gi-ultimas .wp-block-latest-posts__featured-image {
	margin: 0 0 4px !important;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

.gi-ultimas .wp-block-latest-posts__featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s var(--gi-curva);
}

.gi-ultimas > li:hover .wp-block-latest-posts__featured-image img {
	transform: scale(1.06);
}

.gi-ultimas .wp-block-latest-posts__post-title {
	padding: 14px 20px 6px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--gi-tinta);
	text-decoration: none;
}

/* Toda la tarjeta es clicable. */
.gi-ultimas .wp-block-latest-posts__post-title::after {
	content: "";
	position: absolute;
	inset: 0;
}

.gi-ultimas .wp-block-latest-posts__post-date {
	padding: 0 20px 20px;
	margin-top: auto;
	font-size: 13px;
	color: var(--gi-texto-2);
}

/* Contacto: banda oscura con el sello. */
.gi-contacto__grid {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: start;
}

.gi-contacto__grid > * {
	margin: 0 !important;
}

.gi-contacto .gi-titulo-seccion {
	text-align: left;
	margin-left: 0 !important;
	margin-bottom: 24px !important;
}

.gi-contacto__sello {
	display: flex;
	gap: 20px;
	align-items: flex-start;
}

.gi-contacto__sello img {
	width: 86px;
	height: auto;
	flex: none;
	filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .45));
}

.gi-contacto p {
	color: rgba(220, 235, 231, .85);
}

.gi-contacto a:not(.wp-block-button__link) {
	color: var(--gi-verde-claro);
}

.gi-contacto a:not(.wp-block-button__link):hover {
	color: #fff;
}

.gi-contacto .gi-panel {
	padding: clamp(22px, 2.4vw, 30px);
	border-radius: var(--gi-r-l);
	background: rgba(255, 255, 255, .04);
	border: 1px solid rgba(255, 255, 255, .1);
	margin-bottom: 16px !important;
}

.gi-contacto .gi-panel :where(h3, h4) {
	font-size: 13px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gi-verde-claro);
	margin: 0 0 12px;
	font-weight: 700;
}

.gi-contacto .gi-panel p {
	margin: 0 0 6px;
}

.gi-contacto .gi-botones {
	margin-top: 8px !important;
	flex-wrap: wrap;
}

/* ---------- 7b. Shortcodes heredados de alterna (inc/shortcodes-alterna.php) ---------- */

.gi-alinear-center { text-align: center; }
.gi-alinear-right { text-align: right; }

.gi-sc-titulo {
	margin: 0 0 .6em;
}

.gi-sc-titulo__texto {
	margin: 0;
	font-weight: 800;
	letter-spacing: -.025em;
}

.gi-sc-titulo h1.gi-sc-titulo__texto {
	font-size: clamp(30px, 3.6vw, 46px);
	line-height: 1.1;
}

.gi-sc-titulo h2.gi-sc-titulo__texto { font-size: clamp(24px, 2.6vw, 34px); }
.gi-sc-titulo h3.gi-sc-titulo__texto { font-size: clamp(20px, 2vw, 26px); }

.gi-sc-titulo::after {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	margin-top: 14px;
	border-radius: 3px;
	background: var(--gi-italia);
}

.gi-sc-titulo.gi-alinear-center::after {
	margin-left: auto;
	margin-right: auto;
}

.gi-sc-espacio {
	height: 28px;
}

.gi-sc-espacio--linea {
	height: 1px;
	margin: 28px 0;
	background: linear-gradient(90deg, transparent, var(--gi-borde) 15%, var(--gi-borde) 85%, transparent);
}

.gi-sc-fila {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(20px, 3vw, 40px);
	margin-bottom: 1.5em;
}

.gi-sc-col { grid-column: span 12; min-width: 0; }

@media (min-width: 768px) {
	.gi-sc-col--1-2 { grid-column: span 6; }
	.gi-sc-col--1-3 { grid-column: span 4; }
	.gi-sc-col--2-3 { grid-column: span 8; }
	.gi-sc-col--1-4 { grid-column: span 3; }
	.gi-sc-col--3-4 { grid-column: span 9; }
}

.entry-content .gi-sc-lista {
	list-style: none;
	margin: 0 0 1.5em;
	padding: 0;
	display: grid;
	gap: 10px;
}

.gi-sc-lista li {
	position: relative;
	margin: 0;
	padding: 12px 16px 12px 46px;
	border-radius: var(--gi-r);
	background: var(--gi-fondo);
	border: 1px solid var(--gi-borde);
	line-height: 1.6;
}

.gi-sc-lista li::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 14px;
	width: 20px;
	height: 20px;
	background: var(--gi-verde-600);
	-webkit-mask: var(--gi-i-check) center / contain no-repeat;
	mask: var(--gi-i-check) center / contain no-repeat;
}

.gi-sc-lista li > :last-child {
	margin-bottom: 0;
}

.gi-sc-ancho {
	padding: clamp(20px, 3vw, 36px);
	border-radius: var(--gi-r-l);
	background: var(--gi-fondo);
	border: 1px solid var(--gi-borde);
	margin-bottom: 1.5em;
}

.gi-sc-historia {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 18px;
	padding: 22px;
	margin-bottom: 16px;
	border-radius: var(--gi-r-l);
	border: 1px solid var(--gi-borde);
	background: #fff;
	box-shadow: var(--gi-sombra-s);
}

.gi-sc-historia__fecha {
	align-self: start;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--gi-tinta);
	color: #fff;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.entry-content .gi-sc-historia__titulo {
	margin: 2px 0 8px;
	font-size: 18px;
}

.gi-sc-historia__texto > :last-child {
	margin-bottom: 0;
}

.gi-sc-cta {
	position: relative;
	overflow: hidden;
	margin: 1.5em 0;
	padding: clamp(24px, 3vw, 40px);
	border-radius: var(--gi-r-l);
	background:
		radial-gradient(60% 120% at 100% 0%, rgba(1, 203, 159, .22), transparent 60%),
		var(--gi-tinta);
	color: rgba(220, 235, 231, .88);
}

.entry-content .gi-sc-cta__titulo {
	margin: 0 0 10px;
	color: #fff;
}

.gi-sc-cta p {
	color: rgba(220, 235, 231, .88);
}

.gi-sc-cta a:not(.gi-boton) {
	color: var(--gi-verde-claro);
}

.gi-sc-boton {
	margin: 1.2em 0;
}

/* Botón de alterna escrito a mano en el HTML de 3 posts (<a class="btn float-btn btn-theme">
   «Contáctanos»): va con el estilo de .gi-boton (arriba). Su icono sobra: lleva la flecha. */
.entry-content a.btn-theme i.fa {
	display: none;
}

/* Icono de Font Awesome 4 en el contenido de /tarifas/ (<i class="fa fa-money"> Forma de Pago):
   Font Awesome lo cargaba alterna. Con la misma máscara que el del menú. */
.entry-content i.fa.fa-money {
	display: inline-block;
	width: 1.1em;
	height: 1.1em;
	margin-right: .2em;
	vertical-align: -.2em;
	background: var(--gi-verde-700);
	-webkit-mask: var(--gi-i-billete) center / contain no-repeat;
	mask: var(--gi-i-billete) center / contain no-repeat;
}

/* ---------- 7c. Páginas de servicio (rediseno/generar-servicios.py) ---------- */

/*
 * Partida argentina, croata, juicio y penales: cabecera oscura (la del hero de la home, más
 * compacta), texto con el formulario al lado y los bloques del texto en tarjetas, listas-tarjeta,
 * pasos y desplegables. Los iconos de las teselas son los trazos de Lucide sobre el degradado.
 */
.gi-hero--servicio h1 {
	font-size: clamp(32px, 3.7vw, 54px);
	line-height: 1.06;
}

.gi-hero--servicio .gi-hero__grid {
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
}

.gi-hero--servicio .gi-hero__texto > p {
	margin-bottom: 14px !important;
}

.gi-hero .gi-hero__texto p.gi-pildora {
	position: relative;
	display: inline-block;
	padding: 9px 18px 9px 44px;
	border-radius: 22px;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .12);
	color: #c9f5e8;
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.35;
}

.gi-pildora::before {
	content: "";
	position: absolute;
	left: 7px;
	top: calc(50% - 13px);
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--gi-i-check) center / 14px no-repeat, var(--gi-grad);
}

/* Composición de la cabecera (decorativa): dos documentos, la bandera del país y una insignia. */
.gi-docs--servicio {
	height: clamp(250px, 40vh, 360px);
	max-width: 320px;
	margin-right: 4%;
	--gi-banda: var(--gi-italia);
	--gi-f: var(--gi-italia);
}

.gi-docs--ar {
	--gi-banda: linear-gradient(90deg, #74acdf 0 33.4%, #fff 0 66.6%, #74acdf 0);
	--gi-f: var(--gi-f-ar);
}

.gi-docs--hr {
	--gi-banda: linear-gradient(90deg, #e2231a 0 33.4%, #fff 0 66.6%, #171796 0);
	--gi-f: var(--gi-f-hr);
}

.gi-docs--servicio .gi-doc::before {
	height: 7px;
	background: var(--gi-banda);
}

.gi-docs--servicio .gi-doc--a {
	right: 2cqh;
	top: 4cqh;
}

.gi-docs--servicio .gi-doc--c {
	left: 4cqh;
	top: 10cqh;
}

.gi-doc__bandera {
	width: 26cqh;
	height: 18cqh;
	border-radius: 8px;
	background: var(--gi-f);
	box-shadow: inset 0 0 0 1px rgba(6, 23, 20, .1), 0 10px 20px -8px rgba(6, 23, 20, .4);
	transform-origin: left center;
	animation: gi-ondea 4s ease-in-out infinite alternate;
}

@keyframes gi-ondea {
	to { transform: perspective(300px) rotateY(-14deg) skewY(-2deg); }
}

.gi-insignia {
	position: absolute;
	z-index: 4;
	left: 0;
	bottom: 6%;
	width: 68px;
	height: 68px;
	border-radius: 22px;
	background: var(--gi-icono, var(--gi-i-check)) center / 30px no-repeat, var(--gi-grad);
	box-shadow: 0 0 0 8px rgba(255, 255, 255, .06), 0 22px 40px -14px rgba(1, 203, 159, .8), inset 0 1px 0 rgba(255, 255, 255, .5);
	animation: gi-chip .8s var(--gi-curva) 1.2s both, gi-flota-chip 5s ease-in-out 2s infinite alternate;
}

.gi-insignia--lupa { --gi-icono: var(--gi-i-lupa); }
.gi-insignia--balanza { --gi-icono: var(--gi-i-balanza); }
.gi-insignia--escudo { --gi-icono: var(--gi-i-escudo); }
.gi-insignia--documento { --gi-icono: var(--gi-i-documento); }

/* Texto y formulario. */
.gi-servicio {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
	gap: clamp(32px, 5vw, 72px);
	align-items: start;
}

.gi-servicio > * {
	margin: 0 !important;
}

.gi-servicio__lateral > * + * {
	margin-top: 20px !important;
}

/* El formulario acompaña al leer si cabe entero en la pantalla (la tarjeta más alta, la de
   croata, mide unos 880 px con la barra de 100 encima). */
@media (min-width: 1241px) and (min-height: 1000px) {
	.gi-servicio__lateral--fijo {
		position: sticky;
		top: 100px;
	}
}

.gi-prosa > :first-child {
	margin-top: 0 !important;
}

.gi-prosa h2 {
	font-size: clamp(26px, 2.5vw, 36px);
	line-height: 1.15;
	font-weight: 800;
	letter-spacing: -.028em;
	margin: 1.7em 0 .55em;
}

.gi-prosa h2::before {
	content: "";
	display: block;
	width: 44px;
	height: 4px;
	margin-bottom: 18px;
	border-radius: 4px;
	background: var(--gi-grad);
}

.gi-prosa h3 {
	font-size: clamp(20px, 1.6vw, 23px);
	line-height: 1.3;
	font-weight: 700;
	margin: 1.5em 0 .5em;
}

.gi-prosa p {
	font-size: 17px;
	line-height: 1.78;
	margin: 0 0 1.05em;
}

/* Las tarjetas dentro del texto, con su propia letra (la de la prosa es más grande). */
.gi-prosa .is-style-gi-tarjeta p {
	font-size: 15.5px;
	line-height: 1.7;
	margin: 0 0 .7em;
}

.gi-prosa .is-style-gi-tarjeta h3 {
	font-size: 21px;
	margin-top: 0;
}

/* Solo en las de servicio: en la home, la tarjeta oscura lleva la fecha en <strong> con degradado. */
.gi-bento--servicio .gi-destacada a {
	color: var(--gi-verde-claro);
}

.gi-bento--servicio .gi-destacada a:hover {
	color: #fff;
}

.gi-bento--servicio .gi-destacada strong {
	color: #fff;
}

.gi-prosa > .is-style-gi-tarjeta,
.gi-prosa > .gi-faq,
.gi-prosa > .gi-rejilla,
.gi-prosa > .gi-datos {
	margin: 28px 0 !important;
}

/* Tarjeta del formulario, con el borde que gira de los botones. */
.gi-formulario {
	position: relative;
	padding: clamp(22px, 2.2vw, 30px);
	border-radius: var(--gi-r-l);
	border: 1.5px solid transparent;
	background:
		linear-gradient(#fff, #fff) padding-box,
		conic-gradient(from var(--gi-angulo), var(--gi-borde) 0 45%, var(--gi-verde) 62%, #c8f7ea 68%, var(--gi-borde) 82%) border-box;
	box-shadow: var(--gi-sombra-l);
	animation: gi-giro 7s linear infinite;
}

.gi-formulario::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 28px;
	width: 64px;
	height: 5px;
	border-radius: 0 0 6px 6px;
	background: var(--gi-italia);
}

.gi-formulario > :first-child {
	margin-top: 0;
}

/* Destino del botón «Contáctanos» de la cabecera, por encima de la tarjeta: así queda a la vista
   bajo la barra fija, con el scroll suave de Astra (que no la descuenta) y sin él. */
.gi-ancla {
	position: absolute;
	top: -110px;
	left: 0;
	width: 1px;
	height: 1px;
}

.gi-formulario :where(h2, h3) {
	font-size: 22px;
	line-height: 1.25;
	font-weight: 800;
	letter-spacing: -.015em;
	margin: 6px 0 10px;
}

.gi-formulario p {
	font-size: 15px;
	line-height: 1.6;
	color: var(--gi-texto-2);
	margin: 0 0 6px;
}

.gi-formulario iframe {
	display: block;
	width: 100%;
	margin-top: 14px;
	border-radius: 16px;
}

.gi-formulario > iframe:first-child {
	margin-top: 0;
}

.gi-tarjeta-lateral {
	padding: clamp(22px, 2.2vw, 28px);
}

.gi-tarjeta-lateral h3 {
	font-size: 20px;
}

.gi-tarjeta-lateral p {
	font-size: 15.5px;
	line-height: 1.65;
}

/* Teselas de icono de las listas: trazo encima del degradado. */
.gi-lista-docs li::before,
.gi-lista-servicios li::before,
.gi-lista-tarjetas li::before,
.gi-nota::before,
.gi-dato::before {
	content: "";
	flex: none;
	width: 42px;
	height: 42px;
	border-radius: 13px;
	background: var(--gi-tesela, var(--gi-i-check)) center / 20px no-repeat, var(--gi-grad);
	box-shadow: 0 10px 20px -10px rgba(1, 203, 159, .8), inset 0 1px 0 rgba(255, 255, 255, .45);
	transition: transform .5s var(--gi-curva);
}

/* Documentos (argentina): 2 × 2. */
.entry-content ul.gi-lista-docs {
	--gi-tesela: var(--gi-i-documento);
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 24px 0 28px;
	padding: 0;
}

.gi-lista-docs li {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	padding: 16px 18px;
	border-radius: 18px;
	background: #fff;
	border: 1px solid var(--gi-borde);
	box-shadow: var(--gi-sombra-s);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--gi-tinta);
	transition: transform .45s var(--gi-curva), box-shadow .45s, border-color .45s;
}

.gi-lista-docs li:hover,
.gi-lista-servicios li:hover,
.gi-lista-tarjetas li:hover,
.gi-lista-numerada li:hover {
	transform: translateY(-4px);
	border-color: rgba(1, 203, 159, .5);
	box-shadow: var(--gi-sombra);
}

.gi-lista-docs li:hover::before,
.gi-lista-servicios li:hover::before,
.gi-lista-tarjetas li:hover::before {
	transform: rotate(-8deg) scale(1.06);
}

/* Párrafo destacado. */
.entry-content p.gi-nota {
	position: relative;
	padding: 20px 22px 20px 74px;
	border-radius: 20px;
	background: linear-gradient(135deg, rgba(1, 203, 159, .11), rgba(1, 203, 159, .03));
	border: 1px solid rgba(1, 203, 159, .3);
	color: var(--gi-tinta);
	font-size: 16.5px;
	line-height: 1.7;
	margin: 26px 0;
}

.gi-nota::before {
	--gi-tesela: var(--gi-i-check);
	position: absolute;
	left: 20px;
	top: 20px;
	width: 38px;
	height: 38px;
}

.entry-content p.gi-nota--accion {
	background: linear-gradient(150deg, var(--gi-tinta-3), var(--gi-tinta));
	border-color: rgba(255, 255, 255, .08);
	color: rgba(220, 235, 231, .9);
	box-shadow: var(--gi-sombra);
}

.gi-nota--accion::before {
	--gi-tesela: var(--gi-i-mensaje);
}

.gi-nota--accion a {
	color: var(--gi-verde-claro);
	font-weight: 600;
}

.gi-nota--accion a:hover {
	color: #fff;
}

/* Lista numerada en tarjetas (enmiendas de la ley croata). */
.entry-content ul.gi-lista-numerada {
	list-style: none;
	counter-reset: gi-n;
	display: grid;
	gap: 12px;
	margin: 24px 0;
	padding: 0;
}

.gi-lista-numerada li {
	counter-increment: gi-n;
	position: relative;
	margin: 0;
	padding: 20px 22px 20px 82px;
	border-radius: 18px;
	background: #fff;
	border: 1px solid var(--gi-borde);
	box-shadow: var(--gi-sombra-s);
	font-size: 16px;
	line-height: 1.65;
	transition: transform .45s var(--gi-curva), box-shadow .45s, border-color .45s;
}

.gi-lista-numerada li::before {
	content: counter(gi-n, decimal-leading-zero);
	position: absolute;
	left: 22px;
	top: 16px;
	font-size: 30px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.05em;
	background: var(--gi-grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* Datos en tarjeta oscura (plazos y fechas). */
.gi-datos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.entry-content p.gi-dato {
	position: relative;
	margin: 0;
	padding: 22px 22px 22px 80px;
	border-radius: 20px;
	background: linear-gradient(160deg, var(--gi-tinta-3), var(--gi-tinta));
	color: rgba(220, 235, 231, .9);
	font-size: 15.5px;
	line-height: 1.6;
	box-shadow: var(--gi-sombra);
}

.gi-dato::before {
	position: absolute;
	left: 22px;
	top: 22px;
}

.gi-dato--reloj::before { --gi-tesela: var(--gi-i-reloj); }
.gi-dato--calendario::before { --gi-tesela: var(--gi-i-calendario); }

/* Servicios (penales): rejilla de teselas. */
.entry-content ul.gi-lista-servicios {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
}

.gi-lista-servicios li {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 78px;
	margin: 0;
	padding: 16px 18px;
	border-radius: 18px;
	background: #fff;
	border: 1px solid var(--gi-borde);
	box-shadow: var(--gi-sombra-s);
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--gi-tinta);
	transition: transform .45s var(--gi-curva), box-shadow .45s, border-color .45s;
}

/* Tarjetas con título en negrita (tipos de certificado, quién puede beneficiarse). */
.entry-content ul.gi-lista-tarjetas {
	--gi-tesela: var(--gi-i-documento);
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 22px 0 28px;
	padding: 0;
}

/* Bloque, no flex: la negrita y el resto del texto van en la misma línea. */
.gi-lista-tarjetas li {
	position: relative;
	margin: 0;
	padding: 80px 22px 22px;
	border-radius: 20px;
	background: #fff;
	border: 1px solid var(--gi-borde);
	box-shadow: var(--gi-sombra-s);
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--gi-texto-2);
	transition: transform .45s var(--gi-curva), box-shadow .45s, border-color .45s;
}

.gi-lista-tarjetas li::before {
	position: absolute;
	left: 22px;
	top: 22px;
}

.gi-lista-tarjetas li:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

.gi-lista-tarjetas strong {
	color: var(--gi-tinta);
}

/* Pasos numerados con su línea: en vertical o en fila. */
.entry-content ul.gi-pasos {
	list-style: none;
	counter-reset: gi-paso;
	display: grid;
	margin: 16px 0 22px;
	padding: 0;
}

.gi-pasos li {
	counter-increment: gi-paso;
	position: relative;
	margin: 0;
	padding: 4px 0 22px 52px;
	line-height: 1.6;
}

.gi-pasos li::before {
	content: counter(gi-paso);
	position: absolute;
	left: 0;
	top: 0;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--gi-grad);
	color: #032019;
	font-size: 15px;
	font-weight: 800;
	box-shadow: 0 0 0 5px rgba(1, 203, 159, .14);
}

.gi-pasos li::after {
	content: "";
	position: absolute;
	left: 16px;
	top: 42px;
	bottom: 6px;
	width: 2px;
	border-radius: 2px;
	background: linear-gradient(var(--gi-verde), rgba(1, 203, 159, .12));
}

.gi-pasos li:last-child {
	padding-bottom: 0;
}

.gi-pasos li:last-child::after {
	display: none;
}

.entry-content ul.gi-pasos--fila {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin-bottom: 0;
}

.gi-pasos--fila li,
.gi-pasos--fila li:last-child {
	padding: 52px 0 0;
}

.gi-pasos--fila li::after {
	left: 46px;
	right: 0;
	top: 16px;
	bottom: auto;
	width: auto;
	height: 2px;
	background: linear-gradient(90deg, var(--gi-verde), rgba(1, 203, 159, .12));
}

/* Desplegables numerados (juicio). */
.gi-prosa > .gi-acordeon {
	max-width: none;
	counter-reset: gi-ac;
}

.gi-acordeon .wp-block-details {
	position: relative;
	counter-increment: gi-ac;
}

.gi-acordeon .wp-block-details::before {
	content: counter(gi-ac, decimal-leading-zero);
	position: absolute;
	left: 20px;
	top: 17px;
	width: 36px;
	height: 36px;
	border-radius: 11px;
	display: grid;
	place-items: center;
	background: var(--gi-fondo);
	color: var(--gi-verde-700);
	font-size: 13px;
	font-weight: 800;
	transition: background .35s, color .35s;
	pointer-events: none;
}

.gi-acordeon .wp-block-details[open]::before {
	background: var(--gi-grad);
	color: #032019;
}

/* .gi-faq.gi-acordeon: que gane también a la regla de móvil del FAQ (sección 12). */
.gi-faq.gi-acordeon .wp-block-details summary {
	padding-left: 72px;
}

.gi-faq.gi-acordeon .wp-block-details > :not(summary) {
	padding-left: 72px;
}

/* Bento de las páginas de servicio: de dos en dos. */
.gi-bento--servicio > * {
	grid-column: span 3;
}

.gi-bento--servicio .gi-destacada .gi-pasos li {
	color: #dcebe7;
}

.gi-tarjeta-ancha {
	columns: 2;
	column-gap: 48px;
}

.gi-tarjeta-ancha > * {
	break-inside: avoid;
}

.gi-tarjeta-ancha > h3 {
	column-span: all;
	margin-bottom: 16px;
}

.gi-seccion--cierre .gi-botones {
	justify-content: center;
	margin-top: 32px !important;
}

/* Cierre de argentina: banda oscura con el botón. */
.gi-cierre {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	padding: clamp(28px, 4vw, 48px);
	border-radius: 28px;
	background: linear-gradient(135deg, var(--gi-tinta-3), var(--gi-tinta));
	box-shadow: var(--gi-sombra-l);
}

.gi-cierre::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(50% 120% at 90% 0%, rgba(1, 203, 159, .3), transparent 70%);
}

.gi-cierre > * {
	margin: 0 !important;
}

.gi-contenedor > .gi-cierre {
	margin-top: clamp(40px, 5vw, 64px) !important;
}

.gi-cierre p {
	max-width: 46em;
	color: rgba(220, 235, 231, .88);
	font-size: 17px;
	line-height: 1.7;
}

.gi-cierre a:not(.wp-block-button__link) {
	color: var(--gi-verde-claro);
}

.gi-cierre .gi-botones {
	flex: none;
}

/* Texto con la foto al lado (penales). */
.gi-dos {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
	gap: clamp(32px, 5vw, 72px);
	align-items: start;
}

.gi-dos > * {
	margin: 0 !important;
}

.gi-dos__imagen {
	position: sticky;
	top: 110px;
}

.gi-imagen-marco {
	margin: 0;
}

.gi-imagen-marco img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--gi-r-l);
	box-shadow: var(--gi-sombra-l);
}

.gi-rejilla--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 1100px) {
	.gi-servicio,
	.gi-dos {
		grid-template-columns: minmax(0, 1fr);
	}

	.gi-dos__imagen {
		position: static;
	}
}

@media (max-width: 921px) {
	.gi-hero--servicio .gi-hero__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.gi-hero--servicio .gi-hero__visual {
		display: none;
	}
}

@media (max-width: 700px) {
	.entry-content ul.gi-lista-docs,
	.entry-content ul.gi-lista-tarjetas,
	.entry-content ul.gi-pasos--fila,
	.gi-datos,
	.gi-rejilla--2 {
		grid-template-columns: minmax(0, 1fr);
	}

	.entry-content ul.gi-pasos--fila {
		gap: 0;
	}

	.gi-pasos--fila li,
	.gi-pasos--fila li:last-child {
		padding: 4px 0 22px 52px;
	}

	.gi-pasos--fila li:last-child {
		padding-bottom: 0;
	}

	.gi-pasos--fila li::after {
		left: 16px;
		right: auto;
		top: 42px;
		bottom: 6px;
		width: 2px;
		height: auto;
		background: linear-gradient(var(--gi-verde), rgba(1, 203, 159, .12));
	}

	.gi-tarjeta-ancha {
		columns: 1;
	}

	.gi-cierre {
		flex-direction: column;
		align-items: flex-start;
	}

	.gi-faq.gi-acordeon .wp-block-details summary,
	.gi-faq.gi-acordeon .wp-block-details > :not(summary) {
		padding-left: 64px;
	}

	.gi-acordeon .wp-block-details::before {
		left: 16px;
	}
}

/* ---------- 7d. «Quiénes somos» y videocurso (rediseno/generar-servicios.py) ---------- */

/* Cabecera con foto: la de los servicios, con la imagen enmarcada en lugar de los documentos. */
.gi-hero--foto .gi-hero__visual {
	display: flex;
	justify-content: flex-end;
}

.gi-hero__foto {
	position: relative;
	width: min(100%, 540px);
	margin: 0 !important;
	rotate: 1.2deg;
}

.gi-hero__foto::before {
	content: "";
	position: absolute;
	z-index: 1;
	inset: -7px 24px auto;
	height: 4px;
	border-radius: 4px;
	background: var(--gi-italia);
}

.gi-hero__foto img {
	border: 1px solid rgba(255, 255, 255, .14);
	box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .75), 0 0 0 8px rgba(255, 255, 255, .04), 0 0 80px -20px rgba(1, 203, 159, .35);
}

/* Entradilla bajo el título de sección, centrada. */
.entry-content .gi-intro {
	max-width: 50em;
	margin: calc(-1 * clamp(16px, 2vw, 28px)) auto clamp(32px, 4vw, 48px) !important;
	text-align: center;
	color: var(--gi-texto-2);
	font-size: 17.5px;
	line-height: 1.7;
}

.entry-content .gi-intro > p {
	margin: 0 0 12px !important;
}

/* Perfil de Paulo Rapino: foto con un marco desplazado y su texto, con el primer párrafo como cita. */
.gi-perfil {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	gap: clamp(36px, 6vw, 88px);
	align-items: center;
}

.gi-perfil > * {
	margin: 0 !important;
}

.gi-perfil__imagen {
	position: relative;
	isolation: isolate;
	max-width: 420px;
}

.gi-perfil__imagen::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 20px -20px -20px 20px;
	border-radius: var(--gi-r-l);
	border: 2px solid rgba(1, 203, 159, .4);
	background: radial-gradient(70% 70% at 100% 100%, rgba(1, 203, 159, .14), transparent 70%);
}

.gi-perfil__foto img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 50% 30%;
}

.entry-content p.gi-cita {
	position: relative;
	margin: 18px 0 24px !important;
	padding: 24px 28px 24px 70px;
	border-radius: var(--gi-r);
	background: #fff;
	border: 1px solid var(--gi-borde);
	box-shadow: var(--gi-sombra);
	color: var(--gi-tinta);
	font-size: 18px;
	font-style: italic;
	line-height: 1.65;
}

.entry-content p.gi-cita::before {
	content: "";
	position: absolute;
	left: 24px;
	top: 26px;
	width: 28px;
	height: 28px;
	background: var(--gi-grad);
	-webkit-mask: var(--gi-i-comillas) center / contain no-repeat;
	mask: var(--gi-i-comillas) center / contain no-repeat;
}

/* Seis tarjetas: siempre de tres en tres (con auto-fit salían cuatro y dos sueltas). */
.gi-rejilla--tres {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 921.98px) {
	.gi-rejilla--tres {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.gi-rejilla--tres {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Texto y una nota al lado, centrados en vertical. */
.gi-dos--centro {
	align-items: center;
}

/* Banda oscura del final con título y varios párrafos. */
.gi-cierre h3 {
	color: #fff;
	font-size: clamp(22px, 2.2vw, 28px);
	font-weight: 800;
	letter-spacing: -.02em;
	margin: 0 0 14px !important;
}

.gi-cierre__texto > p {
	margin: 0 !important;
}

.gi-cierre__texto > p + p {
	margin-top: 12px !important;
}

/* Videocurso: la profesora con su foto redonda. */
.wp-block-group.gi-profesora {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr);
	gap: 22px;
	align-items: start;
}

.wp-block-group.gi-profesora > * {
	margin: 0 !important;
}

.gi-profesora__foto img {
	display: block;
	width: 92px;
	height: 92px;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 0 0 4px #fff, 0 0 0 6px rgba(1, 203, 159, .55), var(--gi-sombra);
}

/* Los tres niveles, numerados (decorativo). */
.gi-niveles {
	counter-reset: gi-nivel;
}

.gi-nivel {
	counter-increment: gi-nivel;
}

.gi-nivel > p:first-child::before {
	content: counter(gi-nivel, decimal-leading-zero);
	display: block;
	margin-bottom: 14px;
	font-size: 44px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.04em;
	background: var(--gi-grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.gi-niveles + .gi-nota {
	max-width: 52em;
	margin: clamp(28px, 3vw, 40px) auto 0 !important;
}

/* Registro del videocurso (ARMember: plan, alta, pasarelas y resumen). Solo piel: color, borde,
   radio, sombra y letra. Nada de display/position/transition en sus campos, etiquetas flotantes ni
   mensajes de error (los mueve su JS). Sus estilos van en línea, con hasta cinco clases y !important:
   de ahí el !important y el id del bloque (#registro-curso, que pesa más que cualquier cadena de
   clases) delante. */
.wp-block-group.gi-registro {
	position: relative;
	max-width: 780px;
	margin: 0 auto !important;
	padding: clamp(24px, 4vw, 48px);
	border-radius: 28px;
	border: 1.5px solid transparent;
	background:
		linear-gradient(#fff, #fff) padding-box,
		conic-gradient(from var(--gi-angulo), var(--gi-borde) 0 40%, var(--gi-verde) 55%, var(--gi-verde-claro) 62%, var(--gi-borde) 78%) border-box;
	box-shadow: var(--gi-sombra-l);
	animation: gi-giro 6s linear infinite;
}

#registro-curso .arm_setup_form_container,
#registro-curso .arm_form_inner_container,
#registro-curso .arm_module_box,
#registro-curso .arm_setup_submit_btn_wrapper {
	background: transparent !important;
}

/* El envoltorio del botón mide 0 (su hijo flota sin despejar) y el botón se salía de la tarjeta. */
#registro-curso .arm_setup_submit_btn_main_wrapper {
	display: flow-root;
}

#registro-curso .arm_setup_form_container,
#registro-curso .arm_setup_form_container :is(div, span, label, p, input, button) {
	font-family: var(--gi-fuente) !important;
}

#registro-curso .arm_module_plan_option {
	border: 1.5px solid var(--gi-verde) !important;
	border-radius: 20px !important;
	overflow: hidden;
	background: #fff !important;
	box-shadow: 0 18px 40px -22px rgba(0, 127, 99, .55) !important;
}

#registro-curso .arm_module_plan_name {
	color: var(--gi-tinta) !important;
	font-size: 19px !important;
	font-weight: 800 !important;
}

#registro-curso .arm_module_plan_price_type {
	background: var(--gi-grad) !important;
	border-color: transparent !important;
}

#registro-curso .arm_module_plan_price_type,
#registro-curso .arm_module_plan_price_type * {
	color: #032019 !important;
}

#registro-curso .arm_module_plan_price {
	font-size: 30px !important;
	font-weight: 800 !important;
}

#registro-curso .arm_module_plan_description {
	color: var(--gi-texto-2) !important;
}

#registro-curso .arm_form_heading_container,
#registro-curso .arm_form_heading_container * {
	color: var(--gi-tinta) !important;
	font-size: clamp(22px, 2.4vw, 28px) !important;
	font-weight: 800 !important;
	letter-spacing: -.02em;
}

#registro-curso input.arm_form_input_box:focus {
	border-bottom-color: var(--gi-verde) !important;
}

#registro-curso .arm_setup_section_title_wrapper {
	color: var(--gi-tinta) !important;
	font-size: 17px !important;
	font-weight: 700 !important;
}

#registro-curso .arm_module_gateway_option {
	border: 1.5px solid var(--gi-borde) !important;
	border-radius: 16px !important;
	background: #fff !important;
	color: var(--gi-texto) !important;
	transition: border-color .25s, box-shadow .25s, background .25s;
}

#registro-curso .arm_active .arm_module_gateway_option {
	border-color: var(--gi-verde) !important;
	background: rgba(1, 203, 159, .06) !important;
	box-shadow: 0 10px 26px -16px rgba(0, 127, 99, .6) !important;
}

#registro-curso .arm_setup_check_circle {
	border-color: var(--gi-verde) !important;
	color: var(--gi-verde-700) !important;
}

#registro-curso .arm_active .arm_setup_check_circle {
	background: var(--gi-verde) !important;
	color: #032019 !important;
}

#registro-curso .arm_setup_summary_text,
#registro-curso .arm_setup_summary_text * {
	color: var(--gi-texto-2) !important;
}

#registro-curso .arm_setup_summary_text b,
#registro-curso .arm_setup_summary_text strong {
	color: var(--gi-tinta) !important;
}

/* «Enviar», como los botones de la web (4). */
#registro-curso button.arm_setup_submit_btn {
	border: 2px solid transparent !important;
	border-radius: 999px !important;
	color: #032019 !important;
	font-size: 17px !important;
	font-weight: 800 !important;
	background:
		var(--gi-grad) padding-box,
		conic-gradient(from var(--gi-angulo), transparent 0 52%, rgba(255, 255, 255, .95) 66%, #b6ffe9 72%, transparent 86%) border-box,
		linear-gradient(#00a884, #00a884) border-box !important;
	box-shadow: 0 12px 32px -12px rgba(1, 203, 159, .75), inset 0 1px 0 rgba(255, 255, 255, .45) !important;
	animation: gi-giro 3.6s linear infinite;
}

#registro-curso button.arm_setup_submit_btn:hover {
	color: #032019 !important;
	box-shadow: 0 18px 40px -12px rgba(1, 203, 159, .85), inset 0 1px 0 rgba(255, 255, 255, .45) !important;
}

@media (max-width: 921.98px) {
	.gi-perfil {
		grid-template-columns: minmax(0, 1fr);
	}

	.gi-perfil__imagen {
		max-width: 340px;
	}

	.gi-hero__foto {
		rotate: none;
	}

	.gi-hero--foto .gi-hero__visual {
		justify-content: flex-start;
	}
}

@media (max-width: 600px) {
	.wp-block-group.gi-profesora {
		grid-template-columns: minmax(0, 1fr);
	}

	.entry-content p.gi-cita {
		padding: 20px 20px 20px 56px;
		font-size: 17px;
	}

	.entry-content p.gi-cita::before {
		left: 18px;
		top: 22px;
		width: 24px;
		height: 24px;
	}
}

/* ---------- 8. Posts y archivo ---------- */

/* Páginas normales (no la home, que empieza con el hero): aire bajo la cabecera y antes del pie. */
.page:not(.home).ast-plain-container #primary {
	margin-top: clamp(32px, 5vw, 64px);
	margin-bottom: clamp(40px, 6vw, 88px);
}


.single-post .entry-title,
.ast-archive-title,
.page .entry-title {
	font-weight: 800;
	letter-spacing: -.03em;
	line-height: 1.12;
}

.single-post .entry-header .entry-meta,
.single-post .entry-header .entry-meta a {
	color: var(--gi-texto-2);
	font-size: 14px;
}

.single-post .entry-header .entry-meta a {
	color: var(--gi-verde-700);
	font-weight: 600;
}

.single .post-thumb-img-content img,
.single .ast-single-post-featured-section img {
	border-radius: var(--gi-r-l);
	box-shadow: var(--gi-sombra);
}

.entry-content :where(p, li) {
	line-height: 1.75;
}

/* Tablas de los posts: nunca rompen el ancho en móvil. */
.entry-content table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
	border-collapse: collapse;
	/* Astra le pone borde arriba y a la izquierda en su color oscuro: con display:block sale como
	   una raya. Las celdas ya llevan el suyo. */
	border: 0;
	font-size: 15px;
}

.entry-content table :where(th, td) {
	border: 1px solid var(--gi-borde);
	padding: 10px 12px;
}

.entry-content table th {
	background: var(--gi-fondo);
}

/* En el móvil las columnas no bajan de 150 px (si no, dos o tres palabras por línea): la tabla se
   desliza de lado, con una sombra en el borde que aún tiene contenido. */
@media (max-width: 600px) {
	.entry-content table {
		font-size: 14px;
		background:
			linear-gradient(90deg, var(--gi-fondo) 30%, rgba(244, 248, 246, 0)) left / 28px 100% no-repeat local,
			linear-gradient(270deg, var(--gi-fondo) 30%, rgba(244, 248, 246, 0)) right / 28px 100% no-repeat local,
			radial-gradient(farthest-side at 0 50%, rgba(6, 23, 20, .16), transparent) left / 14px 100% no-repeat scroll,
			radial-gradient(farthest-side at 100% 50%, rgba(6, 23, 20, .16), transparent) right / 14px 100% no-repeat scroll;
	}

	.entry-content table :where(th, td) {
		min-width: 150px;
	}
}

/* «También te puede interesar» (relacionados de Astra, 2 desde el 16/10): las fotos destacadas tienen
   proporciones distintas; a la misma, recortadas, para que las dos tarjetas queden a la par. */
.ast-related-post .post-thumb-img-content img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

/* Cajas «Leer Más» de Inline Related Posts (intelly-related-posts) dentro del texto: el plugin las
   pinta en verde plano (#2ECC71) con un <style> propio dentro del enlace y una clase .u<hash>
   distinta en cada una. Pasan a la paleta de la marca sin tocar su marcado ni sus textos (sin
   :has(), el navegador las deja como estaban). */
.entry-content a:has(> .centered-text-area) {
	background: #fff;
	border: 1px solid var(--gi-borde) !important;
	border-radius: var(--gi-r);
	box-shadow: var(--gi-sombra-s);
	overflow: hidden;
	text-decoration: none;
	transition: border-color .25s, box-shadow .25s, transform .25s var(--gi-curva);
}

.entry-content a:has(> .centered-text-area):hover {
	background: #fff;
	border-color: rgba(1, 203, 159, .6) !important;
	box-shadow: var(--gi-sombra);
	transform: translateY(-2px);
}

.entry-content a:has(> .centered-text-area) .centered-text {
	padding-left: 22px;
}

.entry-content a:has(> .centered-text-area) .centered-text > div {
	padding-right: 84px;
}

.entry-content a:has(> .centered-text-area) .ctaText {
	color: var(--gi-verde-700);
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
}

.entry-content a:has(> .centered-text-area) .postTitle {
	color: var(--gi-tinta);
	font-weight: 700;
	line-height: 1.4;
}

.entry-content a:has(> .centered-text-area) .ctaButton {
	background: var(--gi-grad) !important;
	width: 44px;
	min-height: 44px;
	height: 44px;
	top: 50%;
	right: 20px;
	border-radius: 50%;
	transform: translateY(-50%);
	box-shadow: 0 8px 20px -8px rgba(0, 127, 99, .6);
	transition: transform .25s var(--gi-curva);
}

.entry-content a:has(> .centered-text-area) .ctaButton::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 20px;
	height: 20px;
	background: #032019;
	-webkit-mask: var(--gi-i-flecha) center / contain no-repeat;
	mask: var(--gi-i-flecha) center / contain no-repeat;
}

.entry-content a:has(> .centered-text-area):hover .ctaButton {
	background: var(--gi-grad) !important;
	transform: translate(3px, -50%);
}

/* Caja de autor. */
.gi-autor {
	display: flex;
	gap: 22px;
	align-items: center;
	margin: 48px 0 8px;
	padding: 24px;
	border-radius: var(--gi-r-l);
	background:
		radial-gradient(80% 120% at 0% 0%, rgba(1, 203, 159, .1), transparent 60%),
		var(--gi-fondo);
	border: 1px solid var(--gi-borde);
}

.gi-autor__foto {
	flex: none;
}

.gi-autor__foto img {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--gi-verde);
}

.entry-content .gi-autor__nombre {
	margin: 0 0 6px;
	font-size: 20px;
}

.gi-autor__nombre a {
	color: var(--gi-tinta);
	text-decoration: none;
}

.gi-autor__bio {
	margin: 0 !important;
	color: var(--gi-texto-2);
	font-size: 15px;
	line-height: 1.6;
}

/* Caja de contacto y etiquetas al final de los posts (inc/entradas.php). */
.gi-cta-post {
	margin-top: 24px;
}

.gi-cta-post .gi-sc-cta__titulo {
	font-size: clamp(20px, 2.2vw, 26px);
	line-height: 1.25;
}

.gi-etiquetas {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 20px 0 0;
	font-size: 14px;
}

.gi-etiquetas__rotulo {
	color: var(--gi-texto-2);
	font-weight: 600;
}

.gi-etiquetas a {
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--gi-fondo);
	border: 1px solid var(--gi-borde);
	color: var(--gi-texto);
	text-decoration: none;
}

.gi-etiquetas a:hover {
	border-color: var(--gi-verde);
}

/* Archivo de /noticias/ y búsqueda: cabecera oscura y tarjetas. */
.ast-archive-description {
	border-radius: var(--gi-r-l);
	background:
		radial-gradient(70% 120% at 100% 0%, rgba(1, 203, 159, .16), transparent 60%),
		var(--gi-tinta) !important;
	color: #dcebe7;
	padding: clamp(28px, 4vw, 48px) !important;
	border: 0 !important;
}

.ast-archive-description .ast-archive-title,
.ast-archive-description h1 {
	color: #fff;
}

.ast-archive-description p {
	color: rgba(220, 235, 231, .8);
}

.blog .ast-article-post .ast-article-inner,
.archive .ast-article-post .ast-article-inner,
.search .ast-article-post .ast-article-inner {
	border-radius: var(--gi-r-l) !important;
	border: 1px solid var(--gi-borde);
	box-shadow: var(--gi-sombra-s);
	overflow: hidden;
	transition: box-shadow .5s var(--gi-curva), transform .5s var(--gi-curva);
	background: #fff;
}

.blog .ast-article-post:hover .ast-article-inner,
.archive .ast-article-post:hover .ast-article-inner,
.search .ast-article-post:hover .ast-article-inner {
	transform: translateY(-6px);
	box-shadow: var(--gi-sombra-l);
}

.archive .ast-article-post .entry-title a,
.blog .ast-article-post .entry-title a {
	color: var(--gi-tinta);
}

.ast-pagination .page-numbers {
	border-radius: 999px;
}

.ast-pagination .page-numbers.current {
	background: var(--gi-verde);
	border-color: var(--gi-verde);
	color: #032019;
}

/* Título propio de alterna (inc/astra.php) y listado de /blog/ (page-blog.php). */
.gi-titulo-propio h1,
.gi-blog__cabecera h1 {
	margin: 0;
	font-weight: 800;
	letter-spacing: -.03em;
	line-height: 1.12;
}

.gi-titulo-propio__desc,
.gi-titulo-propio__desc :where(h3, h4) {
	margin: 10px 0 0;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.55;
	color: var(--gi-texto-2);
}

.gi-blog__cabecera .gi-titulo-propio__desc,
.gi-blog__cabecera .gi-titulo-propio__desc :where(h3, h4, span) {
	color: rgba(220, 235, 231, .8) !important;
}

.gi-titulo-propio {
	margin-bottom: 1.5em;
}

.gi-blog__cabecera {
	margin-bottom: clamp(24px, 3vw, 40px);
}

.gi-listado {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: clamp(16px, 2vw, 24px);
}

.gi-listado__item {
	position: relative;
	display: flex;
	flex-direction: column;
	border-radius: var(--gi-r-l);
	background: #fff;
	border: 1px solid var(--gi-borde);
	overflow: hidden;
	box-shadow: var(--gi-sombra-s);
	transition: transform .5s var(--gi-curva), box-shadow .5s;
}

.gi-listado__item:hover {
	transform: translateY(-6px);
	box-shadow: var(--gi-sombra-l);
}

.gi-listado__imagen {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

.gi-listado__imagen img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s var(--gi-curva);
}

.gi-listado__item:hover .gi-listado__imagen img {
	transform: scale(1.06);
}

.gi-listado__cuerpo {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px 22px 22px;
	flex: 1;
}

.gi-listado__cat {
	position: relative;
	z-index: 1;
	align-self: flex-start;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
}

.gi-listado__titulo {
	margin: 0;
	font-size: 19px;
	line-height: 1.3;
	font-weight: 700;
}

.gi-listado__titulo a {
	color: var(--gi-tinta);
	text-decoration: none;
}

.gi-listado__titulo a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.gi-listado__fecha {
	font-size: 13px;
	color: var(--gi-texto-2);
}

.gi-listado__extracto {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--gi-texto-2);
}

.gi-paginacion {
	margin-top: clamp(28px, 4vw, 48px);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
}

.gi-paginacion .page-numbers {
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	border: 1px solid var(--gi-borde);
	color: var(--gi-tinta);
	text-decoration: none;
	transition: background .25s, border-color .25s;
}

.gi-paginacion a.page-numbers:hover {
	border-color: var(--gi-verde);
}

.gi-paginacion .page-numbers.current {
	background: var(--gi-verde);
	border-color: var(--gi-verde);
	color: #032019;
	font-weight: 700;
}

/* ---------- 8c. Tabla de contenidos de los posts (Smart TOC, inc/toc.php) ---------- */

/* Colores, textos, H2 y la altura de la cabecera fija (84) salen de la opción stoc_settings
   (rediseno/aplicar.php). Aquí, la maqueta. «body» delante: gana a smart-toc.css sea cual sea el
   orden en que se carguen (WP Rocket los junta). */
:root {
	/* Barra superior + cabecera (83) + aire: con la página arriba del todo no queda debajo. */
	--gi-toc-arriba: calc(var(--gi-alto-barra) + 83px + 22px);
	--gi-toc-ancho: 272px;
}

body .stoc-card {
	border-color: var(--gi-borde);
	border-radius: var(--gi-r);
	box-shadow: var(--gi-sombra);
	position: relative;
}

/* La franja tricolor arriba, como en el resto de piezas de la marca. */
body .stoc-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 3px;
	background: var(--gi-italia);
	z-index: 2;
}

body .stoc-header {
	padding: 16px 18px 14px;
}

body .stoc-title {
	font-size: 12.5px;
	letter-spacing: .06em;
	white-space: nowrap;
}

body .stoc-link {
	font-size: 13.5px;
}

body .stoc-link:hover {
	color: var(--gi-verde-700);
}

/* Escritorio con la cabecera completa. El post con tabla (clase gi-con-toc, inc/toc.php) deja el
   contenedor estrecho de Astra y va a lo ancho de la web, como la cabecera (1280 + 20 a cada lado):
   la tabla en la columna de la izquierda, alineada con el logo, y el texto en el resto, sin hueco a
   la derecha. La tabla va fija entre la cabecera y el botón «Contactar» de Jotform (abajo a la
   izquierda, 48 px a 23 del borde). Sin tabla, el post sigue estrecho y centrado. */
@media (min-width: 1241px) {
	body.gi-con-toc.ast-narrow-container .site-content > .ast-container {
		max-width: calc(var(--gi-ancho) + 40px);
	}

	body.gi-con-toc #primary {
		margin-left: calc(var(--gi-toc-ancho) + 40px);
	}

	body .stoc-floating {
		top: var(--gi-toc-arriba);
		left: max(20px, calc(50% - var(--gi-ancho) / 2));
		width: var(--gi-toc-ancho);
		max-height: none;
		transition: opacity .35s var(--gi-curva), transform .35s var(--gi-curva), visibility .35s;
	}

	/* Cabecera y progreso de la tarjeta: ~125 px; «Contactar» y su aire: ~95. */
	body .stoc-floating .stoc-scroll {
		max-height: calc(100vh - var(--gi-toc-arriba) - 125px - 95px);
	}

	/* Al llegar al pie se aparta (la clase la pone gi.js): no se monta sobre él. */
	body.gi-toc-fuera .stoc-floating {
		opacity: 0;
		visibility: hidden;
		transform: translateX(-16px);
	}
}

/* Sin sitio a la izquierda (la cabecera móvil entra a la vez, ver 12): el botón y el cajón, como
   en el móvil. */
@media (max-width: 1240.99px) {
	body .stoc-floating {
		display: none;
	}

	body .stoc-fab {
		display: flex !important;
	}
}

/* El botón va encima de la burbuja de WhatsApp (fab_bottom en stoc_settings; «Contactar» ocupa
   la izquierda). El cajón y su velo, por encima de los dos y del botón de Jotform. */
body .stoc-fab {
	font-weight: 700;
	box-shadow: 0 10px 28px -8px rgba(0, 127, 99, .55), 0 2px 6px rgba(6, 23, 20, .12);
}

body .stoc-overlay {
	z-index: 1000000;
	background: rgba(6, 23, 20, .55);
}

body .stoc-drawer {
	z-index: 1000001;
}

/* La sombra de los botones del tema no va en la X del cajón. */
body .stoc-drawer-close {
	box-shadow: none;
}

/* ---------- 8d. Aviso de cookies (Asesor de cookies, inc/cookies.php) ---------- */

/* Tarjeta oscura flotante, abajo y centrada, con los textos y el botón del plugin tal cual. Su JS
   pone cdp-mostrar al cargar (o cdp-animacion-arriba) y cdp-animacion-abajo al aceptar (cdp-ocultar
   si ya estaba aceptado). Aquí esas clases solo cambian opacidad y posición, con transición: sus
   animaciones bajaban el aviso 200 px y una tarjeta más alta no se iría entera. Mientras su JS no
   corre (WP Rocket lo retrasa), no se ve. Va por encima del «Contactar» de Jotform (999999). */
body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 24px;
	z-index: 1000000;
	width: auto;
	max-width: 780px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 56px 1fr auto;
	grid-template-areas: "icono titulo boton" "icono texto boton";
	align-items: center;
	column-gap: 20px;
	row-gap: 4px;
	padding: 22px 24px;
	border: 1px solid rgba(255, 255, 255, .09);
	border-radius: var(--gi-r-l);
	background:
		radial-gradient(120% 140% at 0% 0%, rgba(1, 203, 159, .22), transparent 55%),
		linear-gradient(160deg, var(--gi-tinta-2), var(--gi-tinta));
	box-shadow: 0 30px 70px -20px rgba(6, 23, 20, .6), 0 2px 6px rgba(6, 23, 20, .2);
	/* Sin «Roboto respaldo»: también es una @font-face (local) que se resuelve tarde, y el aviso cambiaba de fuente una vez
	   más tras el primer fotograma (CLS 0,19 en una de cada dos pasadas del PSI de la portada). */
	font-family: "Roboto aviso", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
	opacity: 0;
	visibility: hidden;
	transform: translateY(24px) scale(.98);
	animation: none;
	transition: opacity .5s var(--gi-curva), transform .5s var(--gi-curva), visibility .5s;
}

body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto:is(.cdp-mostrar, .cdp-animacion-arriba) {
	opacity: 1;
	visibility: visible;
	transform: none;
}

/* La solapa «Aviso de cookies» es un <button> (inc/cookies.php); hoy está oculta por configuración del plugin. */
body .cdp-cookies-alerta button.cdp-cookies-solapa {
	font: inherit;
	border: 0;
	cursor: pointer;
}

/* «cdp-mostrar» es el «de golpe» del plugin (al cargar la página): sin transición, para que el texto se pinte en el primer
   fotograma. Es el LCP en móvil y, entrando desde opacidad 0, contaba medio segundo y lo que tardase el resto. 24/10/2026. */
body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto.cdp-mostrar {
	transition: none;
}

/* Icono de galleta en un cuadro con el degradado de la marca. */
body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto::before {
	content: "";
	grid-area: icono;
	width: 56px;
	height: 56px;
	border-radius: 16px;
	background:
		url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23032019%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5%22/%3E%3Cpath d=%22M8.5 8.5v.01%22/%3E%3Cpath d=%22M16 15.5v.01%22/%3E%3Cpath d=%22M12 12v.01%22/%3E%3Cpath d=%22M11 17v.01%22/%3E%3Cpath d=%22M7 14v.01%22/%3E%3C/svg%3E") center / 28px no-repeat,
		var(--gi-grad);
	box-shadow: 0 10px 24px -10px rgba(1, 203, 159, .7), inset 0 1px 0 rgba(255, 255, 255, .45);
}

body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto h4 {
	grid-area: titulo;
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: -.01em;
	color: #fff;
	text-align: left;
}

body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto p {
	grid-area: texto;
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: 14px;
	line-height: 1.55;
	color: rgba(255, 255, 255, .72);
	text-align: left;
}

/* Los colores de los enlaces del plugin llevan !important (también en :hover y :visited). */
body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto p a,
body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto p a:visited {
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	color: var(--gi-verde-claro) !important;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto p a:is(:hover, :active) {
	color: #fff !important;
}

/* «ACEPTAR», como los botones de la web: relleno de marca y destello que recorre el borde (4). */
body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto a.cdp-cookies-boton-cerrar {
	grid-area: boton;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	margin: 0;
	padding: 14px 30px;
	border: 2px solid transparent;
	border-radius: 999px;
	font-family: inherit;
	font-size: 14px !important;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	color: #032019 !important;
	background:
		var(--gi-grad) padding-box,
		conic-gradient(from var(--gi-angulo), transparent 0 52%, rgba(255, 255, 255, .95) 66%, #b6ffe9 72%, transparent 86%) border-box,
		linear-gradient(#00a884, #00a884) border-box;
	box-shadow: 0 12px 32px -12px rgba(1, 203, 159, .75), inset 0 1px 0 rgba(255, 255, 255, .45);
	animation: gi-giro 3.6s linear infinite;
	transition: transform .4s var(--gi-curva), box-shadow .4s var(--gi-curva);
}

body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto a.cdp-cookies-boton-cerrar:is(:hover, :active, :visited) {
	color: #032019 !important;
}

body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto a.cdp-cookies-boton-cerrar:hover {
	transform: translateY(-2px);
	box-shadow: 0 18px 40px -12px rgba(1, 203, 159, .85), inset 0 1px 0 rgba(255, 255, 255, .45);
}

@media (max-width: 600px) {
	body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto {
		left: 12px;
		right: 12px;
		bottom: 12px;
		grid-template-columns: 44px 1fr;
		grid-template-areas: "icono titulo" "texto texto" "boton boton";
		column-gap: 14px;
		row-gap: 10px;
		padding: 18px;
	}

	body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto::before {
		width: 44px;
		height: 44px;
		border-radius: 13px;
		background-size: 22px, auto;
	}

	body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto p {
		font-size: 13.5px;
	}

	body .cdp-cookies-alerta.cdp-cookies-alerta .cdp-cookies-texto a.cdp-cookies-boton-cerrar {
		width: 100%;
	}
}

/* ---------- 8e. Vídeos de YouTube con miniatura (inc/rendimiento.php y gi.js) ---------- */

.gi-yt {
	position: relative;
	display: block;
	max-width: 100%;
	aspect-ratio: 16 / 9;
	margin: 1.5em 0;
	overflow: hidden;
	border-radius: var(--gi-r-s);
	background: var(--gi-tinta);
}

.gi-yt img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
}

/* Botón de reproducir: círculo con el degradado de la marca y triángulo. */
.gi-yt::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 72px;
	height: 72px;
	margin: -36px 0 0 -36px;
	border-radius: 50%;
	background:
		url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath d=%22M8 5.5v13l11-6.5z%22 fill=%22%23032019%22/%3E%3C/svg%3E") 54% 50% / 30px no-repeat,
		var(--gi-grad);
	box-shadow: 0 12px 32px -12px rgba(1, 203, 159, .75);
	transition: transform .3s var(--gi-curva);
}

.gi-yt:hover::after {
	transform: scale(1.08);
}

.gi-yt--activo::after {
	content: none;
}

.gi-yt iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ---------- 8b. Vídeo y audio (curso de LearnDash) ---------- */

/* Los vídeos del curso van con preload="none": sin metadatos el navegador los pinta a 300×150
   (estirados, 1200×150). Hasta que cargan, 16:9, que es como están grabados (1280×720). */
.wp-block-video video {
	display: block;
	width: 100%;
	aspect-ratio: auto 16 / 9;
	background: var(--gi-tinta);
	border-radius: var(--gi-r-s);
}

.wp-block-audio {
	margin-block: 0 1.25rem;
}

.wp-block-audio audio {
	display: block;
	width: 100%;
	min-width: 0;
}

.wp-block-audio figcaption {
	margin-top: .35rem;
	color: var(--gi-texto-2);
	font-size: .875rem;
	text-align: left;
}

/* Botones de LearnDash (lección anterior/siguiente): son enlaces y heredaban el subrayado de
   Astra (.ast-single-post .entry-content a). */
.entry-content .learndash-wrapper a.ld-button,
.learndash-wrapper .ld-button * {
	text-decoration: none;
}

/* ---------- 9. Pie ---------- */

.site-footer,
.site-below-footer-wrap,
.site-primary-footer-wrap,
.site-above-footer-wrap {
	background: var(--gi-tinta) !important;
	border-top: 0 !important;
	color: rgba(220, 235, 231, .7);
}

.site-footer {
	position: relative;
}

.site-footer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 3px;
	background: var(--gi-italia);
	opacity: .9;
}

.site-below-footer-wrap .ast-footer-copyright {
	color: rgba(220, 235, 231, .7);
	font-size: 14px;
	line-height: 1.9;
}

.site-footer a {
	color: rgba(233, 244, 241, .9);
}

.site-footer a:hover {
	color: var(--gi-verde);
}

/* ---------- 10. Formularios (CF7) ---------- */

.wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	border-radius: 12px;
	border: 1px solid var(--gi-borde);
	background: #fff;
	padding: 12px 14px;
	transition: border-color .25s, box-shadow .25s;
}

.wpcf7 input:not([type="submit"]):focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	border-color: var(--gi-verde);
	box-shadow: 0 0 0 4px rgba(1, 203, 159, .18);
	outline: 0;
}

/* ---------- 11. Scroll ---------- */

@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.gi-revela,
		.gi-titulo-seccion,
		.gi-rejilla > *,
		.gi-bento > *,
		.gi-faq > *,
		.gi-testimonios > *,
		.gi-ultimas > li,
		.gi-contacto__grid > * {
			animation: gi-revela linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 45%;
		}

		.gi-rejilla > :nth-child(2),
		.gi-bento > :nth-child(2),
		.gi-testimonios > :nth-child(2),
		.gi-ultimas > li:nth-child(2) {
			animation-range: entry 6% entry 51%;
		}

		.gi-rejilla > :nth-child(3),
		.gi-bento > :nth-child(3),
		.gi-testimonios > :nth-child(3),
		.gi-ultimas > li:nth-child(3) {
			animation-range: entry 12% entry 57%;
		}

		.gi-rejilla > :nth-child(4),
		.gi-bento > :nth-child(4),
		.gi-ultimas > li:nth-child(4) {
			animation-range: entry 18% entry 63%;
		}

		/* El texto del hero se hunde un poco y los documentos suben al bajar (parallax). */
		.gi-hero__texto {
			animation: gi-hunde linear both;
			animation-timeline: scroll(root);
			animation-range: 0 80vh;
		}

		.gi-hero__visual {
			animation: gi-sube linear both;
			animation-timeline: scroll(root);
			animation-range: 0 80vh;
		}

		/* La cabecera gana sombra en cuanto se baja. */
		.ast-primary-header-bar {
			animation: gi-cabecera linear both;
			animation-timeline: scroll(root);
			animation-range: 0 140px;
		}

		/* Solo la home (23/10/2026): barra de progreso de lectura sobre la cabecera, un trazo verde que se
		   dibuja bajo cada título de sección y, en las filas de tres (valores, testimonios), la primera
		   tarjeta entra desde la izquierda y la tercera desde la derecha. */
		.home::before {
			content: "";
			position: fixed;
			top: 0;
			left: 0;
			right: 0;
			height: 3px;
			z-index: 100000;
			pointer-events: none;
			background: var(--gi-grad);
			transform-origin: 0 50%;
			animation: gi-progreso linear both;
			animation-timeline: scroll(root);
		}

		.home .gi-titulo-seccion::after {
			content: "";
			display: block;
			width: 72px;
			height: 4px;
			margin: 16px auto 0;
			border-radius: 4px;
			background: var(--gi-grad);
			transform-origin: 50% 50%;
			animation: gi-trazo linear both;
			animation-timeline: view();
			animation-range: entry 25% entry 90%;
		}

		/* La entrada lateral solo con la fila de tres a la vista: en móvil (una columna) la tercera tarjeta,
		   desplazada 64 px antes de entrar, ensanchaba la página 43 px y Chrome la alejaba entera (el aviso de
		   cookies parecía más ancho que la pantalla, 23/10/2026). Las secciones ocupan todo el ancho, así que
		   recortar en horizontal no tapa nada; `clip` no crea contenedor de scroll ni rompe el vertical. */
		.home .gi-seccion {
			overflow-x: clip;
		}

		@media (min-width: 1100px) {
			.home .gi-rejilla--3 > :nth-child(3n + 1) {
				animation-name: gi-revela-izq;
			}

			.home .gi-rejilla--3 > :nth-child(3n) {
				animation-name: gi-revela-der;
			}
		}
	}
}

/* Portada: las secciones de debajo del hero no se calculan hasta que se acercan a la pantalla. El PSI móvil daba 1,26 s de
   «Style & Layout» con ~1.200 elementos (animaciones de scroll, bordes animados) y el primer fotograma llegaba a los 2,3 s.
   «auto» en el tamaño intrínseco recuerda el alto real una vez pintada. 24/10/2026. */
.home .entry-content > .gi-seccion {
	content-visibility: auto;
	contain-intrinsic-size: auto 900px;
}

/* Con translate/scale (no transform) para no pisar el levantamiento del hover. */
@keyframes gi-revela {
	from {
		opacity: 0;
		translate: 0 48px;
		scale: .97;
	}
	to {
		opacity: 1;
		translate: 0 0;
		scale: 1;
	}
}

@keyframes gi-revela-izq {
	from { opacity: 0; translate: -64px 24px; scale: .97; }
	to { opacity: 1; translate: 0 0; scale: 1; }
}

@keyframes gi-revela-der {
	from { opacity: 0; translate: 64px 24px; scale: .97; }
	to { opacity: 1; translate: 0 0; scale: 1; }
}

@keyframes gi-progreso {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

@keyframes gi-trazo {
	from { transform: scaleX(0); opacity: 0; }
	to { transform: scaleX(1); opacity: 1; }
}

@keyframes gi-hunde {
	to { transform: translate3d(0, 60px, 0); opacity: .4; }
}

@keyframes gi-sube {
	to { transform: translate3d(0, -70px, 0); }
}

@keyframes gi-cabecera {
	to { box-shadow: 0 14px 34px -18px rgba(6, 23, 20, .28); }
}

/* ---------- 12. Responsive ---------- */

/*
 * La cabecera móvil entra por debajo de 1241 px (inc/astra.php; el JS de Astra usa el mismo corte
 * para la clase ast-header-break-point), pero el CSS de Astra solo oculta la de escritorio por
 * debajo de 922: entre medias salían las dos. Aquí el corte va en CSS, sin esperar al JS.
 */
@media (max-width: 1240.99px) {
	#ast-desktop-header {
		display: none;
	}

	#ast-mobile-header {
		display: block;
	}
}

@media (max-width: 1100px) {
	.gi-bento {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gi-bento > *,
	.gi-bento > .gi-bento--medio {
		grid-column: span 1;
	}

	.gi-bento > .gi-bento--entero,
	.gi-bento > .gi-bento--ancho {
		grid-column: 1 / -1;
	}
}

@media (max-width: 921px) {
	:root {
		--gi-alto-barra: 0px;
	}

	.gi-hero__grid,
	.gi-contacto__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	/* En móvil no caben los documentos: quedan las dos fichas, en fila bajo los botones. */
	.gi-hero__visual {
		margin-top: 22px !important;
	}

	.gi-docs {
		height: auto;
		max-width: none;
		margin: 0;
		container-type: normal;
		display: flex;
		flex-wrap: wrap;
		gap: 10px;
	}

	.gi-docs__halo,
	.gi-doc {
		display: none;
	}

	.gi-chip {
		position: static;
		font-size: 13px;
		padding: 7px 12px 7px 7px;
		box-shadow: none;
	}

	.gi-chip--ruta {
		padding-left: 12px;
	}

	.gi-chip__ico {
		width: 24px;
		height: 24px;
		border-radius: 7px;
	}

	.gi-chip__ico::after {
		inset: 5px;
	}

	.gi-hero {
		--gi-pad-y: 30px;
		--gi-pad-y-b: 34px;
	}

	.gi-hero .gi-ceja {
		margin-bottom: 16px !important;
		font-size: 12.5px;
	}

	.gi-hero h1 {
		margin-bottom: 14px !important;
	}

	.gi-hero .gi-botones {
		margin-top: 22px !important;
	}
}

@media (max-width: 600px) {
	.gi-bento {
		grid-template-columns: minmax(0, 1fr);
	}

	.gi-hero .gi-botones {
		flex-wrap: nowrap;
	}

	body .gi-hero .gi-botones .wp-block-button__link {
		padding: 14px 13px;
		font-size: 14px;
		white-space: nowrap;
	}

	.gi-autor {
		flex-direction: column;
		align-items: flex-start;
	}

	.gi-faq .wp-block-details summary {
		padding: 18px 58px 18px 18px;
		font-size: 16px;
	}
}

/* Móviles de 360 px: con «Antecedentes penales» en el hero, los dos botones no caben a 14 px. */
@media (max-width: 380px) {
	body .gi-hero .gi-botones .wp-block-button__link {
		padding: 14px 10px;
		font-size: 13px;
	}
}

/* ---------- 13. Movimiento reducido ---------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}
