/*
Theme Name: Javier Garzón
Theme URI: https://about.me/javiergarzon
Author: Javier Garzón
Description: Tema corporativo de marca personal para Javier Garzón, estratega y consultor de la industria de la motocicleta en Colombia y Latinoamérica. Incluye SEO técnico (meta etiquetas, Open Graph y datos estructurados schema.org), ajustes de marca personal y secciones editables como patrones.
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
Version: 6.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: javiergarzon
*/

/* =========================================================
   Tokens
   ========================================================= */
:root {
	--jg-tinta: var(--wp--preset--color--tinta);
	--jg-marino: var(--wp--preset--color--marino);
	--jg-acero: var(--wp--preset--color--acero);
	--jg-plata: var(--wp--preset--color--plata);
	--jg-bruma: var(--wp--preset--color--bruma);
	--jg-linea: var(--wp--preset--color--linea);
	--jg-blanco: var(--wp--preset--color--blanco);
	--jg-ambar: var(--wp--preset--color--ambar);
	--jg-pad: clamp(4.5rem, 9vw, 8rem);
	--jg-rp-l: var(--wp--style--root--padding-left, clamp(1.25rem, 4vw, 3rem));
	--jg-rp-r: var(--wp--style--root--padding-right, clamp(1.25rem, 4vw, 3rem));
	/* Línea de acento: tramo ámbar sobre una línea gris */
	--jg-rule: linear-gradient(var(--jg-ambar), var(--jg-ambar)) top left / 3rem 3px no-repeat, linear-gradient(var(--jg-linea), var(--jg-linea)) top left / 100% 1px no-repeat;
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }
img { max-width: 100%; height: auto; }
figure.wp-block-image { margin: 0; }
a { text-underline-offset: 3px; text-decoration-thickness: 1px; }
:focus-visible { outline: 3px solid var(--jg-ambar); outline-offset: 3px; }

.wp-element-button, .wp-block-button__link { transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease; }
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background):hover { background: var(--jg-tinta); border-color: var(--jg-tinta); color: var(--jg-blanco); }
.jg-dark .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background):hover,
.jg-hero .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background):hover,
.jg-cta .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background):hover { background: var(--jg-blanco); border-color: var(--jg-blanco); color: var(--jg-tinta); }

/* Sin huecos entre bloques de página completa */
body .wp-site-blocks > * { margin-block-start: 0; }
.jg-home.wp-block-group > *, .jg-main-wrap.wp-block-group > * { margin-block: 0; }
.jg-page-content > .alignfull { margin-block: 0; }
.jg-page-content > :first-child:not(.alignfull) { margin-top: var(--jg-pad); }
.jg-page-content > :last-child:not(.alignfull) { margin-bottom: var(--jg-pad); }

/* Alinea títulos y textos al borde izquierdo del contenido (WordPress los centra por defecto) */
.jg-section > :not(.alignfull),
.jg-pagehead > *,
.jg-hero > :not(.alignfull),
.jg-cta .wp-block-cover__inner-container > * {
	margin-left: max(0px, calc((100% - 1240px) / 2)) !important;
	margin-right: auto !important;
}

/* =========================================================
   Cabecera
   ========================================================= */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 100; }
.jg-header { background: var(--jg-tinta); color: var(--jg-blanco); padding-block: 0.9rem; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.jg-header a { color: inherit; text-decoration: none; }
.jg-header .jg-header__bar { gap: 2rem; }
.jg-header .jg-brand > * { margin: 0; }
.jg-logo { font-weight: 800; font-size: 1.3rem; line-height: 1.1; letter-spacing: -0.02em; }
.jg-header .jg-logo__tag { font-size: 0.78rem; color: var(--jg-plata); line-height: 1.3; margin-top: 0.15rem; }
.jg-header .jg-header__right { gap: 2.25rem; }
.jg-nav { font-size: 0.95rem; font-weight: 500; gap: 1.9rem; }
.jg-nav .wp-block-navigation-item__content { padding-block: 0.3rem; border-bottom: 2px solid transparent; }
.jg-nav .wp-block-navigation-item__content:hover { border-bottom-color: var(--jg-ambar); }
.jg-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.6rem; font-weight: 700; }
.jg-header .jg-header__cta .wp-block-button__link { padding: 0.75em 1.3em; font-size: 0.9rem; }
@media (max-width: 1099px) { .jg-header .jg-header__cta { display: none; } }

/* =========================================================
   Portada
   ========================================================= */
.jg-hero { background: linear-gradient(160deg, var(--jg-marino) 0%, var(--jg-tinta) 55%); color: var(--jg-blanco); padding-block: clamp(3rem, 7vw, 6rem) 0; overflow: hidden; }
.jg-hero .jg-hero__grid { gap: clamp(2.5rem, 6vw, 5.5rem); align-items: center; }
@media (min-width: 782px) {
	.jg-hero .jg-hero__grid > .jg-hero__text { flex: 1.3 1 0; }
	.jg-hero .jg-hero__grid > .jg-hero__media { flex: 0.85 1 0; }
}
.jg-hero__text > * { margin-top: 0; }
.jg-hero .jg-hero__kicker { display: flex; align-items: center; gap: 0.85rem; color: var(--jg-ambar); font-weight: 600; font-size: 0.98rem; margin-bottom: 1.5rem; }
.jg-hero .jg-hero__kicker::before { content: ""; width: 2.5rem; height: 2px; background: var(--jg-ambar); flex: none; }
.jg-hero .jg-hero__title { font-size: clamp(2.7rem, 5.6vw, 5.1rem); line-height: 1; letter-spacing: -0.035em; margin-bottom: 1.6rem; color: var(--jg-blanco); }
.jg-hero .jg-hero__lead { font-size: clamp(1.08rem, 1.4vw, 1.25rem); line-height: 1.6; color: #D3DAE4; max-width: 58ch; margin-bottom: 2.25rem; }
.jg-hero__photo { position: relative; z-index: 0; margin: 0 1.25rem 1.25rem 0; }
.jg-hero__photo::after { content: ""; position: absolute; inset: 1.25rem -1.25rem -1.25rem 1.25rem; border: 2px solid var(--jg-ambar); z-index: -1; }
.jg-hero__photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 30%; }
.jg-hero .jg-hero__creds { margin-top: clamp(3rem, 7vw, 5rem); padding: 1.75rem 0 2.5rem; gap: 1.5rem 2.5rem; border-top: 1px solid rgba(255, 255, 255, 0.16); }
.jg-hero .jg-cred { border-left: 2px solid var(--jg-ambar); padding-left: 1rem; }
.jg-hero .jg-cred > * { margin: 0; }
.jg-hero .jg-cred__title { font-weight: 800; font-size: 1.1rem; letter-spacing: -0.01em; color: var(--jg-blanco); }
.jg-hero .jg-cred__text { font-size: 0.9rem; line-height: 1.45; color: var(--jg-plata); margin-top: 0.2rem; }
@media (prefers-reduced-motion: no-preference) {
	.jg-hero .jg-hero__title, .jg-hero .jg-hero__lead, .jg-hero__photo { animation: jg-in 1s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
	.jg-hero .jg-hero__lead { animation-delay: 0.1s; }
	.jg-hero__photo { animation-delay: 0.18s; }
}
@keyframes jg-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* =========================================================
   Secciones: base
   ========================================================= */
.jg-section { padding-block: var(--jg-pad); background: var(--jg-blanco); }
.jg-soft { background: var(--jg-bruma); }
.jg-dark { background: var(--jg-tinta); color: var(--jg-blanco); }
.jg-section:not(.jg-soft):not(.jg-dark) + .jg-section:not(.jg-soft):not(.jg-dark),
.jg-soft + .jg-soft { border-top: 1px solid var(--jg-linea); }

.jg-section h2 { font-size: clamp(2.1rem, 4.2vw, 3.4rem); max-width: 20ch; margin-top: 0; margin-bottom: 1.25rem; }
.jg-section h2::before { content: ""; display: block; width: 3rem; height: 3px; background: var(--jg-ambar); margin-bottom: 1.5rem; }
.jg-section .jg-intro { font-size: 1.15rem; color: var(--jg-acero); max-width: 60ch; margin-bottom: 3.25rem; }
.jg-dark .jg-intro { color: var(--jg-plata); }
.jg-section .jg-lead { font-size: 1.2rem; line-height: 1.6; }
.jg-muted { color: var(--jg-acero); }
.jg-small { font-size: 0.875rem; color: var(--jg-acero); }
.jg-section .jg-mt { margin-top: 3.25rem; }
.jg-section img { display: block; width: 100%; }

/* =========================================================
   Ecosistema
   ========================================================= */
.jg-eco { padding-block: 3rem; background: var(--jg-blanco); border-bottom: 1px solid var(--jg-linea); }
.jg-eco .jg-eco__intro { font-size: 0.9rem; color: var(--jg-acero); margin-top: 0; margin-bottom: 1.5rem; }
.jg-eco .jg-eco__grid { gap: 1px; background: var(--jg-linea); border: 1px solid var(--jg-linea); }
.jg-eco .jg-eco__grid > .jg-eco__item { margin: 0; background: var(--jg-blanco); display: flex; align-items: center; justify-content: center; text-align: center; min-height: 5.25rem; padding: 1rem; font-weight: 700; font-size: 1rem; line-height: 1.25; letter-spacing: -0.01em; color: var(--jg-acero); }
.jg-eco .jg-eco__grid > figure { margin: 0; background: var(--jg-blanco); display: flex; align-items: center; justify-content: center; min-height: 5.25rem; padding: 1rem 1.5rem; }
.jg-eco .jg-eco__grid > figure img { max-height: 44px; width: auto; filter: grayscale(1); opacity: 0.75; }

/* =========================================================
   Perfil
   ========================================================= */
.jg-perfil .jg-perfil__grid { gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
@media (min-width: 782px) {
	.jg-perfil .jg-perfil__grid > .jg-perfil__media { flex: 0.85 1 0; }
	.jg-perfil .jg-perfil__grid > .jg-perfil__text { flex: 1.15 1 0; }
}
.jg-portrait { position: relative; z-index: 0; margin: 0 1.25rem 1.25rem 0; }
.jg-portrait::after { content: ""; position: absolute; inset: 1.25rem -1.25rem -1.25rem 1.25rem; border: 2px solid var(--jg-ambar); z-index: -1; }
.jg-portrait img { aspect-ratio: 4 / 5; object-fit: cover; }
.jg-perfil .jg-tags { gap: 0.5rem; margin-top: 2rem; margin-bottom: 2rem; }
.jg-perfil .jg-tags > .jg-tag { margin: 0; padding: 0.45rem 0.85rem; background: var(--jg-bruma); border-radius: 4px; font-size: 0.85rem; font-weight: 600; line-height: 1.3; }

/* =========================================================
   Servicios
   ========================================================= */
.jg-servicios .jg-pilares { gap: 0; }
.jg-pilar > * { margin-top: 0; margin-bottom: 0; }
.jg-icon img { width: 44px; height: 44px; }
.jg-pilar .jg-icon { margin-bottom: 1.6rem; }
.jg-pilar h3, .jg-pilar .jg-pilar__title { font-size: 1.55rem; line-height: 1.1; color: var(--jg-blanco); margin-bottom: 0.6rem; }
.jg-pilar .jg-pilar__title::before { display: none; }
.jg-pilar .jg-pilar__desc { color: var(--jg-plata); margin-bottom: 1.75rem; }
.jg-pilar .jg-pilar__list > .jg-pilar__item { margin: 0; padding: 0.9rem 0; border-top: 1px solid rgba(255, 255, 255, 0.12); font-weight: 600; }
.jg-pilar .jg-pilar__detail { padding: 1.35rem 0; border-top: 1px solid rgba(255, 255, 255, 0.12); }
.jg-pilar .jg-pilar__detail > * { margin: 0; }
.jg-pilar .jg-pilar__detail h3 { font-size: 1.1rem; margin-bottom: 0.35rem; }
.jg-pilar .jg-pilar__detail p { color: var(--jg-plata); font-size: 0.95rem; }
@media (min-width: 782px) {
	.jg-servicios .jg-pilares > .wp-block-column { padding: 0 2.5rem; border-left: 1px solid rgba(255, 255, 255, 0.12); }
	.jg-servicios .jg-pilares > .wp-block-column:first-child { padding-left: 0; border-left: 0; }
	.jg-servicios .jg-pilares > .wp-block-column:last-child { padding-right: 0; }
}
@media (max-width: 781px) {
	.jg-servicios .jg-pilares > .wp-block-column + .wp-block-column { padding-top: 2.75rem; margin-top: 2.75rem; border-top: 1px solid rgba(255, 255, 255, 0.12); }
}

/* =========================================================
   Cifras, pasos y roles (línea de acento superior)
   ========================================================= */
.jg-stats, .jg-steps, .jg-roles { gap: 2.5rem 2rem; }
.jg-stat, .jg-step, .jg-role { background: var(--jg-rule); padding-top: 1.5rem; }
.jg-stat > *, .jg-step > *, .jg-role > * { margin-top: 0; margin-bottom: 0; }
.jg-stat .jg-stat__num { font-weight: 800; font-size: clamp(2.8rem, 5vw, 4.25rem); line-height: 1; letter-spacing: -0.045em; }
.jg-stat .jg-stat__label { color: var(--jg-acero); margin-top: 0.6rem; max-width: 24ch; }
.jg-cifras .jg-small { margin-top: 2.5rem; }
.jg-step .jg-step__num { font-weight: 800; font-size: 0.95rem; color: var(--jg-acero); margin-bottom: 0.75rem; }
.jg-step h3, .jg-step h4 { font-size: 1.35rem; line-height: 1.15; margin-bottom: 0.5rem; }
.jg-step h4 { font-size: 1.1rem; }
.jg-step p:not(.jg-step__num) { color: var(--jg-acero); }
.jg-roles .jg-role { background-color: var(--jg-blanco); padding: 1.75rem; background-position: top left, top left; }
.jg-role h3 { font-size: 1.3rem; line-height: 1.2; margin-bottom: 0.4rem; }

/* =========================================================
   Proyectos
   ========================================================= */
.jg-proyectos .jg-feature { gap: clamp(2rem, 5vw, 4.5rem); align-items: center; margin-bottom: clamp(3rem, 6vw, 5rem); }
@media (min-width: 782px) {
	.jg-proyectos .jg-feature > .jg-feature__media { flex: 1.35 1 0; }
	.jg-proyectos .jg-feature > .jg-feature__text { flex: 1 1 0; }
}
.jg-feature .jg-feature__img img { aspect-ratio: 16 / 10; object-fit: cover; }
.jg-feature__text > * { margin-top: 0; margin-bottom: 0; }
.jg-feature .jg-feature__kicker { font-size: 0.9rem; font-weight: 700; color: var(--jg-acero); padding-left: 0.85rem; border-left: 3px solid var(--jg-ambar); margin-bottom: 1rem; }
.jg-feature .jg-feature__title { font-size: clamp(2.5rem, 5vw, 4rem); letter-spacing: -0.035em; margin-bottom: 1.1rem; }
.jg-feature .jg-feature__meta { gap: 1rem 3rem; margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--jg-linea); }
.jg-feature .jg-feature__meta > p { margin: 0; font-size: 0.95rem; color: var(--jg-acero); }
.jg-feature .jg-feature__meta strong { color: var(--jg-tinta); }
.jg-cases { gap: 1.5rem; }
.jg-case { background: var(--jg-rule); background-color: var(--jg-bruma); padding: 1.75rem 1.5rem; display: flex; flex-direction: column; }
.jg-case > * { margin: 0; }
.jg-case .jg-case__org, .jg-role .jg-case__org { font-size: 0.82rem; font-weight: 700; color: var(--jg-acero); margin-bottom: 0.45rem; }
.jg-case h3 { font-size: 1.25rem; line-height: 1.2; margin-bottom: 0.6rem; }
.jg-case p:not(.jg-case__org):not(.jg-case__meta) { color: var(--jg-acero); font-size: 0.95rem; }
.jg-case .jg-case__meta { margin-top: auto; padding-top: 1.1rem; font-size: 0.82rem; font-weight: 700; color: var(--jg-tinta); }

/* =========================================================
   GP Colombia
   ========================================================= */
.jg-gp .jg-gp__grid { gap: clamp(2rem, 5vw, 4.5rem); align-items: center; margin-bottom: clamp(3rem, 6vw, 4.5rem); }
@media (min-width: 782px) {
	.jg-gp .jg-gp__grid > .jg-gp__media { flex: 0.75 1 0; }
	.jg-gp .jg-gp__grid > .jg-gp__text { flex: 1.25 1 0; }
}
.jg-gp .jg-gp__img img { aspect-ratio: 4 / 5; object-fit: cover; }
.jg-gp .jg-gp__roles { gap: 0 2.5rem; }
.jg-gp .jg-gp__role { border-top: 1px solid rgba(255, 255, 255, 0.14); padding: 1.1rem 0 1.25rem; }
.jg-gp .jg-gp__role > * { margin: 0; }
.jg-gp .jg-gp__role h3 { font-size: 1.12rem; line-height: 1.2; margin-bottom: 0.35rem; color: var(--jg-blanco); }
.jg-gp .jg-gp__role p { color: var(--jg-plata); font-size: 0.93rem; }
.jg-dark .jg-stat { background: linear-gradient(var(--jg-ambar), var(--jg-ambar)) top left / 3rem 3px no-repeat, linear-gradient(rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.16)) top left / 100% 1px no-repeat; }
.jg-dark .jg-stat .jg-stat__label, .jg-dark .jg-small { color: var(--jg-plata); }
.jg-gp .jg-small { margin-top: 2rem; }

/* =========================================================
   En escena (galería)
   ========================================================= */
.jg-gallery { gap: 1.25rem; }
.jg-gallery > figure { margin: 0; }
.jg-gallery img { aspect-ratio: 4 / 5; object-fit: cover; }
.jg-gallery figcaption { margin-top: 0.7rem; font-size: 0.88rem; line-height: 1.4; color: var(--jg-acero); text-align: left; }

/* =========================================================
   Videos
   ========================================================= */
.jg-videos { gap: 2rem 1.5rem; }
.jg-videos > .wp-block-embed { margin: 0; }
.jg-videos .wp-block-embed iframe { width: 100%; }
.jg-videos figcaption { margin-top: 0.7rem; font-size: 0.9rem; color: var(--jg-acero); text-align: left; }
.jg-dark .jg-videos figcaption { color: var(--jg-plata); }
.jg-videos-sec .jg-row-head { align-items: flex-end; gap: 1.5rem 2rem; margin-bottom: 2.5rem; }
.jg-videos-sec .jg-row-head h2 { margin-bottom: 0; }

/* Frase de marca */
.jg-section .jg-quote { margin-top: 3.5rem; padding-left: 1.25rem; border-left: 4px solid var(--jg-ambar); font-weight: 800; font-size: clamp(1.7rem, 3.4vw, 2.7rem); line-height: 1.1; letter-spacing: -0.03em; max-width: 24ch; }

/* =========================================================
   Con quién trabajo
   ========================================================= */
.jg-auds { gap: 0 2.5rem; }
.jg-aud { border-top: 1px solid var(--jg-linea); padding: 1.75rem 0; }
.jg-aud > * { margin: 0; }
.jg-aud h3 { font-size: 1.25rem; line-height: 1.2; margin-bottom: 0.45rem; }
.jg-aud p { color: var(--jg-acero); }

/* =========================================================
   Blog en portada
   ========================================================= */
.jg-insights .jg-row-head { align-items: flex-end; gap: 1.5rem 2rem; margin-bottom: 2.75rem; }
.jg-insights .jg-row-head h2 { margin-bottom: 0; }
.jg-posts .wp-block-post-template { gap: 2rem; }
.jg-posts .wp-block-post-featured-image { margin-bottom: 1.1rem; }
.jg-posts .wp-block-post-date { font-size: 0.85rem; color: var(--jg-acero); margin-top: 0; }
.jg-posts .wp-block-post-title { font-size: 1.35rem; line-height: 1.2; margin-top: 0.35rem; }
.jg-posts .wp-block-post-title a { text-decoration: none; }
.jg-posts .wp-block-post-title a:hover { text-decoration: underline; text-decoration-color: var(--jg-ambar); }
.jg-posts .wp-block-post-excerpt { color: var(--jg-acero); }

/* =========================================================
   Preguntas frecuentes
   ========================================================= */
.jg-faqs .jg-faq__grid { gap: clamp(2rem, 6vw, 6rem); }
@media (min-width: 782px) {
	.jg-faqs .jg-faq__grid > .jg-faq__head { flex: 0.8 1 0; }
	.jg-faqs .jg-faq__grid > .jg-faq__body { flex: 1.4 1 0; }
}
.jg-faq > .jg-faq__item { margin: 0; border-top: 1px solid var(--jg-linea); }
.jg-faq > .jg-faq__item:last-child { border-bottom: 1px solid var(--jg-linea); }
.jg-faq__item summary { position: relative; list-style: none; cursor: pointer; padding: 1.35rem 2.75rem 1.35rem 0; font-weight: 700; font-size: 1.1rem; line-height: 1.35; }
.jg-faq__item summary::-webkit-details-marker { display: none; }
.jg-faq__item summary::after { content: "+"; position: absolute; right: 0.25rem; top: 1.1rem; font-size: 1.6rem; font-weight: 400; line-height: 1; color: var(--jg-acero); }
.jg-faq__item[open] summary::after { content: "−"; }
.jg-faq__item > p { margin: 0 0 1.5rem; color: var(--jg-acero); max-width: 65ch; }

/* =========================================================
   Llamado a la acción
   ========================================================= */
.jg-cta.wp-block-cover { padding: var(--jg-pad) var(--jg-rp-r) var(--jg-pad) var(--jg-rp-l); min-height: 0; color: var(--jg-blanco); }
.jg-cta .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(100deg, rgba(14, 26, 43, 0.97) 0%, rgba(14, 26, 43, 0.88) 45%, rgba(14, 26, 43, 0.45) 100%) !important; }
.jg-cta .wp-block-cover__image-background { object-position: 60% 30%; }
.jg-cta .wp-block-cover__inner-container { width: 100%; }
.jg-cta .jg-cta__title { font-size: clamp(2.1rem, 4.4vw, 3.6rem); max-width: 22ch; margin-top: 0; color: var(--jg-blanco); }
.jg-cta .jg-cta__title::before { content: ""; display: block; width: 3rem; height: 3px; background: var(--jg-ambar); margin-bottom: 1.5rem; }
.jg-cta .jg-cta__lead { font-size: 1.2rem; color: #D3DAE4; max-width: 50ch; margin-bottom: 2.25rem; }

/* =========================================================
   Contacto
   ========================================================= */
.jg-contact .jg-contact__grid { gap: clamp(2.5rem, 6vw, 5rem); }
@media (min-width: 782px) {
	.jg-contact .jg-contact__grid > .jg-contact__main { flex: 1.4 1 0; }
	.jg-contact .jg-contact__grid > .jg-contact__side { flex: 1 1 0; }
}
.jg-contact .jg-contact__meta { gap: 1.5rem; margin-top: 2.75rem; margin-bottom: 2.25rem; padding-top: 1.75rem; border-top: 1px solid var(--jg-linea); }
.jg-contact .jg-contact__meta > p { margin: 0; color: var(--jg-acero); }
.jg-contact .jg-contact__meta strong { color: var(--jg-tinta); }
.jg-contact__steps { background: var(--jg-bruma); padding: clamp(1.75rem, 4vw, 2.75rem); }
.jg-contact__steps > h3 { font-size: 1.4rem; margin-top: 0; margin-bottom: 1.75rem; }
.jg-contact__steps > .jg-step + .jg-step { margin-top: 1.75rem; }

/* Redes sociales monocromáticas */
.jg-social.wp-block-social-links.is-style-logos-only .wp-social-link { color: inherit; }
.jg-social.wp-block-social-links { gap: 1rem; font-size: 1.25rem; }
.jg-social--dark.wp-block-social-links { color: var(--jg-tinta); }

/* =========================================================
   Trayectoria
   ========================================================= */
.jg-tl { border-top: 3px solid var(--jg-tinta); }
.jg-tl .jg-tl__item { display: grid; grid-template-columns: minmax(7rem, 11rem) 1fr; column-gap: 2rem; margin: 0; padding-block: 1.25rem; border-bottom: 1px solid var(--jg-linea); }
.jg-tl .jg-tl__item > * { margin: 0; }
.jg-tl .jg-tl__year { grid-row: span 2; font-weight: 700; color: var(--jg-acero); font-variant-numeric: tabular-nums; }
.jg-tl .jg-tl__role { font-size: 1.2rem; line-height: 1.25; letter-spacing: -0.01em; }
.jg-tl .jg-tl__org { color: var(--jg-acero); margin-top: 0.15rem; }
@media (max-width: 600px) {
	.jg-tl .jg-tl__item { grid-template-columns: 1fr; }
	.jg-tl .jg-tl__year { grid-row: auto; font-size: 0.9rem; margin-bottom: 0.25rem; }
}

/* =========================================================
   Cabecera de páginas internas, blog y artículos
   ========================================================= */
.jg-pagehead { background: var(--jg-tinta); color: var(--jg-blanco); padding-block: clamp(4rem, 8vw, 6.5rem) clamp(3rem, 6vw, 4.5rem); }
.jg-pagehead h1 { font-size: clamp(2.4rem, 5.2vw, 4.4rem); line-height: 1.02; letter-spacing: -0.035em; max-width: 22ch; margin-top: 0; margin-bottom: 1.1rem; color: var(--jg-blanco); }
.jg-pagehead h1::before { content: ""; display: block; width: 3rem; height: 3px; background: var(--jg-ambar); margin-bottom: 1.5rem; }
.jg-pagehead .jg-pagehead__lead, .jg-pagehead .wp-block-term-description { font-size: 1.2rem; color: #D3DAE4; max-width: 62ch; }
.jg-pagehead .wp-block-post-date { color: var(--jg-plata); font-size: 0.9rem; margin-bottom: 1rem; }
.jg-main { padding-block: var(--jg-pad); }
.jg-article .wp-block-post-content { font-size: 1.125rem; line-height: 1.75; }
.jg-article .wp-block-post-content h2 { font-size: 2rem; margin-top: 2.5em; }
.jg-article .wp-block-post-content h3 { font-size: 1.45rem; margin-top: 2em; }
.jg-article .wp-block-post-featured-image { margin-bottom: 3rem; }
.jg-main .wp-block-query-pagination { margin-top: 3.5rem; }

/* =========================================================
   Pie de página
   ========================================================= */
.jg-footer { background: #0A1320; color: var(--jg-plata); padding-block: clamp(4rem, 7vw, 5.5rem) 2rem; font-size: 0.95rem; }
.jg-footer a { color: inherit; text-decoration: none; }
.jg-footer a:hover { color: var(--jg-blanco); }
.jg-footer .jg-footer__grid { gap: 2.5rem; }
@media (min-width: 782px) { .jg-footer .jg-footer__grid > .jg-footer__about { flex: 1.7 1 0; } }
.jg-footer .wp-block-column > * { margin-top: 0; margin-bottom: 0.6rem; }
.jg-footer .jg-footer__brand { font-size: 1.4rem; font-weight: 800; letter-spacing: -0.02em; color: var(--jg-blanco); }
.jg-footer .jg-footer__about p:not(.jg-footer__brand) { max-width: 36ch; margin-bottom: 1.5rem; }
.jg-footer .jg-footer__title { color: var(--jg-blanco); font-weight: 700; margin-bottom: 1rem; }
.jg-footer .jg-footer__bottom { gap: 0.75rem 2rem; margin-top: 3.5rem; padding-top: 1.75rem; border-top: 1px solid rgba(255, 255, 255, 0.12); font-size: 0.85rem; }
.jg-footer .jg-footer__bottom > p { margin: 0; }

/* Columnas fijas en las cuadrículas (evita huecos vacíos) */
@media (min-width: 1000px) {
	.jg-eco .jg-eco__grid { grid-template-columns: repeat(5, 1fr) !important; }
	.jg-section .jg-stats, .jg-section .jg-cases, .jg-section .jg-steps, .jg-hero .jg-hero__creds, .jg-section .jg-gallery { grid-template-columns: repeat(4, 1fr) !important; }
	.jg-section .jg-auds, .jg-section .jg-roles, .jg-contact .jg-contact__meta, .jg-section .jg-videos--3 { grid-template-columns: repeat(3, 1fr) !important; }
	.jg-section .jg-videos:not(.jg-videos--3), .jg-gp .jg-gp__roles { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 600px) and (max-width: 999px) {
	.jg-eco .jg-eco__grid, .jg-section .jg-auds, .jg-section .jg-roles { grid-template-columns: repeat(3, 1fr) !important; }
	.jg-section .jg-stats, .jg-section .jg-cases, .jg-section .jg-steps, .jg-hero .jg-hero__creds, .jg-section .jg-gallery, .jg-section .jg-videos, .jg-gp .jg-gp__roles { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 599px) {
	.jg-eco .jg-eco__grid, .jg-section .jg-stats, .jg-hero .jg-hero__creds, .jg-section .jg-gallery { grid-template-columns: repeat(2, 1fr) !important; }
}
.jg-section > h2 + .wp-block-group { margin-top: 3rem; }
.jg-page-content > .jg-dark:first-child { border-top: 1px solid rgba(255, 255, 255, 0.1); }
.jg-posts .wp-block-post-featured-image { margin: 0 0 1.1rem; }
.jg-posts .wp-block-post-featured-image img { width: 100%; }

/* =========================================================
   Perfil rediseñado
   ========================================================= */
.jg-ph .jg-ph__name { font-size: clamp(3.2rem, 7.5vw, 6.5rem); line-height: 0.95; letter-spacing: -0.045em; color: var(--jg-blanco); margin-bottom: 0.9rem; }
.jg-ph .jg-ph__role { font-size: clamp(1.2rem, 2vw, 1.6rem); font-weight: 600; color: var(--jg-ambar); line-height: 1.3; margin-bottom: 1.6rem; }
.jg-ph .jg-cred__title { font-size: 1.45rem; }

.jg-sintesis .jg-manifesto { font-weight: 800; font-size: clamp(2rem, 4.4vw, 3.6rem); line-height: 1.05; letter-spacing: -0.035em; max-width: 22ch; margin-top: 0; margin-bottom: 1.75rem; }
.jg-sintesis .jg-manifesto::before { content: ""; display: block; width: 3rem; height: 3px; background: var(--jg-ambar); margin-bottom: 1.75rem; }
.jg-visiones { gap: 2.5rem 2.25rem; }
.jg-vision .jg-case__org { color: var(--jg-tinta); font-weight: 700; font-size: 0.85rem; margin-bottom: 0.75rem; }

.jg-hitos { position: relative; margin-top: 1rem; }
.jg-hitos::before { content: ""; position: absolute; left: 7.25rem; top: 0.6rem; bottom: 0.6rem; width: 2px; background: var(--jg-linea); }
.jg-hitos .jg-hito { position: relative; display: grid; grid-template-columns: 6rem 1fr; column-gap: 3rem; margin: 0; padding-block: 1.1rem; }
.jg-hitos .jg-hito::before { content: ""; position: absolute; left: calc(7.25rem - 6px); top: 1.45rem; width: 14px; height: 14px; border-radius: 50%; background: var(--jg-ambar); box-shadow: 0 0 0 4px var(--jg-blanco); }
.jg-hitos .jg-hito > * { margin: 0; }
.jg-hitos .jg-hito__year { grid-row: span 2; font-weight: 800; font-size: 1.6rem; line-height: 1.1; letter-spacing: -0.03em; text-align: right; font-variant-numeric: tabular-nums; }
.jg-hitos .jg-hito h3 { font-size: 1.25rem; line-height: 1.2; margin-bottom: 0.3rem; }
.jg-hitos .jg-hito p:not(.jg-hito__year) { color: var(--jg-acero); max-width: 60ch; }
@media (max-width: 600px) {
	.jg-hitos::before { left: 0.45rem; }
	.jg-hitos .jg-hito { grid-template-columns: 1fr; padding-left: 2rem; }
	.jg-hitos .jg-hito::before { left: 0; }
	.jg-hitos .jg-hito__year { grid-row: auto; text-align: left; font-size: 1.25rem; margin-bottom: 0.2rem; }
}
.jg-section .jg-more { margin-top: 3rem; border-top: 1px solid var(--jg-linea); }
.jg-more > summary { cursor: pointer; list-style: none; padding: 1.25rem 0; font-weight: 700; font-size: 1.05rem; }
.jg-more > summary::-webkit-details-marker { display: none; }
.jg-more > summary::after { content: " +"; color: var(--jg-acero); }
.jg-more[open] > summary::after { content: " −"; }
.jg-more .jg-tl .jg-tl__role { font-size: 1.1rem; }

.jg-edus { gap: 1.5rem; }
.jg-edu { background: var(--jg-rule); background-color: var(--jg-blanco); padding: 1.5rem; }
.jg-edu > * { margin: 0; }
.jg-edu h3 { font-size: 1.15rem; line-height: 1.25; }

.jg-lids { gap: 0 2.5rem; }
.jg-dark .jg-darkitem { border-top: 1px solid rgba(255, 255, 255, 0.14); padding: 1.25rem 0 1.5rem; }
.jg-dark .jg-darkitem > * { margin: 0; }
.jg-dark .jg-darkitem h3 { font-size: 1.25rem; margin-bottom: 0.45rem; color: var(--jg-blanco); }
.jg-dark .jg-darkitem p { color: var(--jg-plata); }
@media (min-width: 1000px) {
	.jg-section .jg-visiones, .jg-liderazgo .jg-lids { grid-template-columns: repeat(3, 1fr) !important; }
	.jg-section .jg-edus { grid-template-columns: repeat(4, 1fr) !important; }
}
@media (min-width: 600px) and (max-width: 999px) {
	.jg-section .jg-edus { grid-template-columns: repeat(2, 1fr) !important; }
}

/* =========================================================
   Consejo Consultivo de Seguridad Vial (credencial)
   ========================================================= */
.jg-sv .jg-sv__grid { gap: clamp(2rem, 5vw, 5rem); align-items: center; }
@media (min-width: 782px) {
	.jg-sv .jg-sv__grid > .jg-sv__media { flex: 0.72 1 0; }
	.jg-sv .jg-sv__grid > .jg-sv__text { flex: 1.28 1 0; }
}
.jg-sv__text > * { margin-top: 0; margin-bottom: 1rem; }
.jg-sv .jg-feature__kicker { font-size: 0.9rem; font-weight: 700; color: var(--jg-acero); padding-left: 0.85rem; border-left: 3px solid var(--jg-ambar); margin-bottom: 1.25rem; }
.jg-sv h2 { max-width: 20ch; }
.jg-sv h2::before { display: none; }
.jg-sv .jg-sv__text > p:not(.jg-feature__kicker):not(.jg-lead):not(.jg-small) { color: var(--jg-acero); }
.jg-sources a { color: var(--jg-tinta); text-decoration: underline; text-decoration-color: var(--jg-ambar); }
.jg-badge { position: relative; background: linear-gradient(155deg, var(--jg-marino) 0%, var(--jg-tinta) 70%); color: var(--jg-blanco); padding: clamp(2rem, 4vw, 3rem); box-shadow: 0 30px 60px -30px rgba(14, 26, 43, 0.55); }
.jg-badge::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--jg-ambar); }
.jg-badge > * { margin: 0; }
.jg-badge .jg-icon { margin-bottom: 1.5rem; }
.jg-badge .jg-badge__org { font-size: 0.85rem; font-weight: 600; color: var(--jg-plata); margin-bottom: 0.4rem; }
.jg-badge .jg-badge__role { font-size: clamp(2.3rem, 4vw, 3.2rem); font-weight: 800; line-height: 1; letter-spacing: -0.04em; margin-bottom: 0.5rem; }
.jg-badge .jg-badge__body { font-size: 1.15rem; font-weight: 600; line-height: 1.3; color: #D3DAE4; padding-bottom: 1.5rem; margin-bottom: 0.25rem; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.jg-badge .jg-badge__row { padding: 1rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.jg-badge .jg-badge__row:last-child { border-bottom: 0; padding-bottom: 0; }
.jg-badge .jg-badge__row > * { margin: 0; }
.jg-badge .jg-badge__num { font-size: 1.5rem; font-weight: 800; letter-spacing: -0.03em; color: var(--jg-ambar); }
.jg-badge .jg-badge__label { font-size: 0.88rem; color: var(--jg-plata); margin-top: 0.15rem; }

/* =========================================================
   Marcas
   ========================================================= */
.jg-marcas { padding-block: clamp(3.5rem, 7vw, 5.5rem); }
.jg-marcas .jg-marcas__grid { gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
@media (min-width: 782px) {
	.jg-marcas .jg-marcas__grid > .jg-marcas__head { flex: 0.7 1 0; }
	.jg-marcas .jg-marcas__grid > .jg-marcas__wall { flex: 1.6 1 0; }
}
.jg-marcas h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); }
.jg-logos { gap: 1rem 2.75rem; align-items: center; }
.jg-logos > .jg-logo-item { margin: 0; flex: 0 0 auto; }
.jg-section .jg-logos .jg-logo-item img { width: auto; height: 62px; max-width: 180px; object-fit: contain; filter: grayscale(1) contrast(1.1); opacity: 0.8; transition: filter 0.25s ease, opacity 0.25s ease; }
.jg-section .jg-logos .jg-logo-item img:hover { filter: none; opacity: 1; }
.jg-section .jg-logos .jg-logo-item:has(img[src*="kove"]) img, .jg-section .jg-logos .jg-logo-item:has(img[src*="gp-colombia"]) img { height: 44px; }
.jg-marcas .jg-marcas__note { margin-top: 2.75rem; padding-top: 1.5rem; border-top: 1px solid var(--jg-linea); }
@media (max-width: 600px) { .jg-section .jg-logos .jg-logo-item img { height: 44px; } .jg-logos { gap: 1rem 1.75rem; } }

/* 404 */
.jg-404 h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); }
