/* ============================================================
   Global Venture Visa — capa de sistema visual
   Formas, superficies y componentes que definen el look.
   Los colores y tipografias siguen saliendo de theme.json.
   ============================================================ */

:root {
	--gvv-r-sm: 10px;
	--gvv-r-md: 16px;
	--gvv-r-lg: 24px;
	--gvv-r-xl: 32px;
	--gvv-r-pill: 999px;

	--gvv-shadow-card: 0 1px 2px rgba(21, 26, 36, .04), 0 12px 32px -8px rgba(21, 26, 36, .12);
	--gvv-shadow-float: 0 2px 6px rgba(21, 26, 36, .06), 0 24px 60px -12px rgba(21, 26, 36, .22);

	--gvv-gutter: clamp(1rem, 3vw, 2.5rem);
}

/* ---------- Contenedor del sitio: la pagina flota sobre el fondo ---------- */

body {
	background: var(--wp--preset--color--shell);
}

.wp-site-blocks {
	background: var(--wp--preset--color--paper);
	border-radius: var(--gvv-r-lg);
	margin: var(--gvv-gutter);
	overflow: clip;
	box-shadow: var(--gvv-shadow-card);
}

@media (max-width: 781px) {
	.wp-site-blocks { margin: 0; border-radius: 0; box-shadow: none; }
}

/* ---------- Cabecera flotante ---------- */

.gvv-header {
	position: sticky;
	/* El sticky pegaba la barra al borde al hacer scroll. El offset la
	   mantiene separada del borde tanto arriba como abajo. */
	inset-block-start: var(--gvv-gutter);
	z-index: 100;
	margin-inline: auto;
	/* Solo margen inferior. Un margin-top aqui colapsa con el del contenedor
	   y el aire sobre la pildora se pierde. */
	margin-block: 0 var(--gvv-gutter);
	inline-size: min(1180px, calc(100% - 2 * var(--gvv-gutter)));
	background: color-mix(in srgb, var(--wp--preset--color--paper) 82%, transparent);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 8%, transparent);
	border-radius: var(--gvv-r-pill);
	padding-inline: clamp(1rem, 2vw, 1.75rem) !important;
	/* Antes 0.6rem: la barra quedaba de 65px y el contenido pegado al borde. */
	padding-block: 0.95rem !important;
	transition: box-shadow 260ms var(--gvv-ease), background 260ms var(--gvv-ease);
}

/* El blur vive en un pseudo-elemento: si se aplica al header, backdrop-filter
   lo convierte en containing block y ningun descendiente puede ser fixed
   (el FAB del menu movil quedaria atrapado dentro de la pildora). */
.gvv-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	backdrop-filter: saturate(1.6) blur(18px);
	-webkit-backdrop-filter: saturate(1.6) blur(18px);
}

.gvv-header[data-scrolled="true"] {
	background: color-mix(in srgb, var(--wp--preset--color--paper) 94%, transparent);
	box-shadow: var(--gvv-shadow-float);
}

.gvv-header .wp-block-site-logo img { max-block-size: 38px; }

.gvv-header .wp-block-navigation-item__content {
	padding-block: 0.55rem;
	padding-inline: 0.6rem;
	border-block-end: 0;
	border-radius: var(--gvv-r-pill);
	transition: background 160ms var(--gvv-ease), color 160ms var(--gvv-ease);
}

.gvv-header .wp-block-navigation-item__content:hover,
.gvv-header .current-menu-item > .wp-block-navigation-item__content {
	background: color-mix(in srgb, var(--wp--preset--color--navy) 7%, transparent);
	color: var(--wp--preset--color--navy);
}

/* (retirado) La cabecera ya no flota sobre el hero: el hero va debajo,
   asi que subirlo con margen negativo solo le cortaba la parte superior. */

/* ---------- Botones ---------- */

.wp-block-button__link {
	border-radius: var(--gvv-r-pill) !important;
	gap: 0.55rem;
}

/* Flecha diagonal en los botones principales. */
.wp-block-button:not(.is-style-gvv-quiet) .wp-block-button__link::after {
	content: "";
	inline-size: 0.85em;
	block-size: 0.85em;
	background-color: currentColor;
	-webkit-mask: var(--gvv-arrow) center / contain no-repeat;
	mask: var(--gvv-arrow) center / contain no-repeat;
	transition: transform 200ms var(--gvv-ease);
	flex: 0 0 auto;
}

.wp-block-button:not(.is-style-gvv-quiet) .wp-block-button__link:hover::after {
	transform: translate(2px, -2px);
}

:root {
	--gvv-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 4h10v10h-2.5V8.27L5.4 16.37 3.63 14.6l8.1-8.1H6z'/%3E%3C/svg%3E");
}

/* ---------- Chip de seccion (reemplaza al eyebrow en versalitas) ---------- */

.gvv-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.45rem 1rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 20%, transparent);
	border-radius: var(--gvv-r-pill);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--wp--preset--color--navy);
	background: transparent;
	margin-block-end: var(--wp--preset--spacing--40);
}

.gvv-chip::before {
	content: "";
	inline-size: 6px;
	block-size: 6px;
	border-radius: 50%;
	background: var(--wp--preset--color--accent);
}

.gvv-on-dark .gvv-chip,
.gvv-hero-media__body .gvv-chip,
.gvv-stats .gvv-chip {
	color: var(--wp--preset--color--paper);
	border-color: color-mix(in srgb, var(--wp--preset--color--paper) 34%, transparent);
	background: color-mix(in srgb, var(--wp--preset--color--navy-darkest) 42%, transparent);
	backdrop-filter: blur(6px);
}

.gvv-on-dark .gvv-chip::before,
.gvv-hero-media__body .gvv-chip::before,
.gvv-stats .gvv-chip::before { background: var(--wp--preset--color--accent-light); }

/* ---------- Superficies redondeadas ---------- */

.gvv-panel {
	background: var(--wp--preset--color--paper);
	border-radius: var(--gvv-r-lg);
	box-shadow: var(--gvv-shadow-card);
	padding: clamp(1.75rem, 3.5vw, 2.75rem);
}

.gvv-panel--dark {
	background: var(--wp--preset--color--navy);
	box-shadow: none;
}

.gvv-panel--tint {
	background: var(--wp--preset--color--shell);
	box-shadow: none;
	border: 1px solid var(--wp--preset--color--line);
}

/* Esquina recortada: el gesto de forma que da caracter sin decorar. */
.gvv-cut-tr { border-start-end-radius: 0 !important; }
.gvv-cut-bl { border-end-start-radius: 0 !important; }

/* Imagenes de bloque con el radio del sistema. */
.wp-block-image img,
.wp-block-post-featured-image img,
.wp-block-cover { border-radius: var(--gvv-r-lg); }

.gvv-hero.wp-block-cover { border-radius: var(--gvv-r-xl); }

/* ---------- Tarjetas ---------- */

.gvv-card {
	border-radius: var(--gvv-r-lg);
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--paper);
	overflow: clip;
}

.gvv-card:hover { box-shadow: var(--gvv-shadow-card); transform: translateY(-4px); }

.gvv-card .wp-block-post-featured-image img { border-radius: 0; }

/* ---------- Banda de cifras ---------- */

.gvv-stats {
	background: linear-gradient(115deg,
		var(--wp--preset--color--navy-darkest) 0%,
		var(--wp--preset--color--navy) 58%,
		#4A5878 100%);
	border-radius: var(--gvv-r-lg);
	border-end-end-radius: 0;
	padding: clamp(2rem, 4vw, 3.25rem) clamp(1.5rem, 4vw, 3.5rem);
	color: var(--wp--preset--color--paper);
}

.gvv-stats__grid {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.gvv-stats__grid > * { flex: 1 1 190px; }

.gvv-stats__grid > * + * {
	border-inline-start: 1px solid color-mix(in srgb, var(--wp--preset--color--paper) 16%, transparent);
	padding-inline-start: clamp(1.25rem, 2.4vw, 2rem);
}

@media (max-width: 900px) {
	.gvv-stats__grid > * + * { border-inline-start: 0; padding-inline-start: 0; }
}

.gvv-stat__value {
	font-family: var(--wp--preset--font-family--display);
	/* Los valores mezclan cifras y texto ("13", "RCIC", "Oakville, ON"),
	   asi que el tamano se ajusta al contenido en vez de forzar un display. */
	font-size: clamp(1.5rem, 2.1vw, 1.9rem);
	overflow-wrap: break-word;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--paper);
	margin: 0;
}

.gvv-stat__label {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.4;
	color: var(--wp--preset--color--sky-pale);
	margin: 0.6rem 0 0;
}

/* ---------- Proceso numerado (reemplaza a las imagenes con texto dentro) ---------- */

.gvv-steps {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1rem, 2vw, 1.5rem);
}

/* Regla de simetria: los elementos de la ultima fila crecen hasta llenar el
   ancho. Nunca queda uno solo tirado al final de una rejilla. */
.gvv-steps > * { flex: 1 1 260px; }

.gvv-step {
	position: relative;
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--gvv-r-md);
	padding: clamp(1.5rem, 2.5vw, 2rem);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	transition: border-color 220ms var(--gvv-ease), box-shadow 220ms var(--gvv-ease), transform 220ms var(--gvv-ease);
}

.gvv-step:hover {
	border-color: color-mix(in srgb, var(--wp--preset--color--navy) 24%, transparent);
	box-shadow: var(--gvv-shadow-card);
	transform: translateY(-3px);
}

.gvv-step__n {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent);
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
}

.gvv-step__n::after {
	content: "";
	flex: 1;
	block-size: 1px;
	background: var(--wp--preset--color--line);
}

.gvv-step__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.32;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--navy);
	margin: 0;
}

.gvv-step__text {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-muted);
	margin: 0;
}

/* ---------- Tarjeta de persona ---------- */

.gvv-people {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(0.75rem, 1.5vw, 1.1rem);
	align-items: stretch;
}

/* Dos retratos del mismo alto, alineados. El escalonado los dejaba
   cortados y encimados cuando la columna era estrecha. */
@media (max-width: 620px) { .gvv-people { grid-template-columns: 1fr; } }

.gvv-person {
	position: relative;
	border-radius: var(--gvv-r-lg);
	overflow: clip;
	background: var(--wp--preset--color--navy);
	aspect-ratio: 3 / 4;
	display: flex;
	align-items: flex-end;
	min-block-size: 300px;
}

.gvv-person img {
	position: absolute;
	inset: 0;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	border-radius: 0;
}

.gvv-person__body {
	position: relative;
	inline-size: 100%;
	padding: clamp(1.1rem, 2vw, 1.6rem);
	background: linear-gradient(180deg, transparent 0%, rgba(21, 26, 36, .72) 55%, rgba(21, 26, 36, .92) 100%);
	color: var(--wp--preset--color--paper);
}

.gvv-person__name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--wp--preset--color--paper);
}

.gvv-person__role {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 500;
	margin: 0.3rem 0 0;
	color: var(--wp--preset--color--sky);
}

.gvv-person__link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-block-start: 0.85rem;
	min-block-size: 44px;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--wp--preset--color--paper);
	text-decoration: none;
}

.gvv-person__link:hover { color: var(--wp--preset--color--accent-light); }

/* ---------- Tarjeta de programa ---------- */

.gvv-progs {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1rem, 2vw, 1.5rem);
}

.gvv-progs > * { flex: 1 1 300px; }

.gvv-prog {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	padding: clamp(1.75rem, 3vw, 2.4rem);
	border-radius: var(--gvv-r-lg);
	background: var(--wp--preset--color--shell);
	border: 1px solid var(--wp--preset--color--line);
	transition: transform 240ms var(--gvv-ease), box-shadow 240ms var(--gvv-ease);
	min-block-size: 100%;
}

.gvv-prog:hover { transform: translateY(-4px); box-shadow: var(--gvv-shadow-card); }

.gvv-prog--feature {
	background: var(--wp--preset--color--navy);
	border-color: transparent;
	border-end-start-radius: 0;
}

.gvv-prog--feature .gvv-prog__title,
.gvv-prog--feature .gvv-prog__text { color: var(--wp--preset--color--paper); }
.gvv-prog--feature .gvv-prog__text { color: var(--wp--preset--color--sky-pale); }

.gvv-prog__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.25rem, 1.8vw, 1.5rem);
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--navy);
	margin: 0;
}

.gvv-prog__text {
	font-size: 0.9688rem;
	line-height: 1.65;
	color: var(--wp--preset--color--ink-muted);
	margin: 0;
	flex: 1;
}

.gvv-prog__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: 46px;
	block-size: 46px;
	border-radius: 50%;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--paper);
	text-decoration: none;
	transition: transform 200ms var(--gvv-ease), background 200ms var(--gvv-ease);
	align-self: flex-start;
}

.gvv-prog__cta::after {
	content: "";
	inline-size: 1.05rem;
	block-size: 1.05rem;
	background: currentColor;
	-webkit-mask: var(--gvv-arrow) center / contain no-repeat;
	mask: var(--gvv-arrow) center / contain no-repeat;
}

.gvv-prog__cta:hover { background: var(--wp--preset--color--accent-deep); transform: translate(2px, -2px); }

/* El enlace cubre toda la tarjeta: el objetivo tactil es la tarjeta entera. */
.gvv-prog__cta::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }

/* ---------- Lista de capacidades con icono ---------- */

.gvv-feats { display: grid; gap: clamp(1.25rem, 2.4vw, 1.9rem); }

.gvv-feat {
	display: grid;
	grid-template-columns: 48px 1fr;
	gap: 1.1rem;
	align-items: start;
}

.gvv-feat__icon {
	inline-size: 48px;
	block-size: 48px;
	border-radius: var(--gvv-r-sm);
	background: var(--wp--preset--color--sky-pale);
	display: grid;
	place-items: center;
	color: var(--wp--preset--color--navy);
}

.gvv-feat__icon svg { inline-size: 22px; block-size: 22px; }

.gvv-feat__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	margin: 0 0 0.3rem;
	letter-spacing: -0.01em;
}

.gvv-feat__text {
	font-size: 0.9375rem;
	line-height: 1.62;
	color: var(--wp--preset--color--ink-muted);
	margin: 0;
}

/* ---------- Rejilla de provincias ---------- */

.gvv-provs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.gvv-provs > * { flex: 1 1 210px; }

.gvv-prov {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem 1.35rem;
	min-block-size: 44px;
	border-radius: var(--gvv-r-md);
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--paper);
	text-decoration: none;
	transition: border-color 200ms var(--gvv-ease), background 200ms var(--gvv-ease), transform 200ms var(--gvv-ease);
}

.gvv-prov:hover {
	background: var(--wp--preset--color--navy);
	border-color: var(--wp--preset--color--navy);
	transform: translateY(-2px);
}

.gvv-prov__name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.9688rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	letter-spacing: -0.01em;
}

.gvv-prov:hover .gvv-prov__name { color: var(--wp--preset--color--paper); }

.gvv-prov__code {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--accent);
	flex: 0 0 auto;
}

.gvv-prov:hover .gvv-prov__code { color: var(--wp--preset--color--accent-light); }

/* ---------- Hero ---------- */

.gvv-hero { position: relative; }

.gvv-hero__card {
	position: relative;
	z-index: 2;               /* si no, la tarjeta queda detras de la foto */
	background: var(--wp--preset--color--paper);
	border-radius: var(--gvv-r-lg);
	border-start-start-radius: 0;
	padding: clamp(1.6rem, 3vw, 2.4rem);
	box-shadow: var(--gvv-shadow-float);
	max-inline-size: 480px;
	display: flex;
	flex-direction: column;
	gap: 1.4rem;
}

.gvv-hero__card .wp-block-buttons { margin: 0; }

.gvv-hero__card p {
	color: var(--wp--preset--color--ink-muted);
	font-size: 1rem;
	line-height: 1.65;
	margin: 0;
}

/* ---------- Movimiento ---------- */

@media (prefers-reduced-motion: reduce) {
	.gvv-card:hover, .gvv-step:hover, .gvv-prog:hover, .gvv-prov:hover { transform: none; }
}

/* ---------- Hero: foto + tarjeta superpuesta ---------- */

.gvv-hero-wrap { position: relative; }

.gvv-hero-media {
	position: relative;
	border-radius: var(--gvv-r-xl);
	overflow: clip;
	min-block-size: clamp(420px, 62vh, 640px);
	display: flex;
	align-items: flex-end;
	isolation: isolate;
}

.gvv-hero-media img {
	position: absolute;
	inset: 0;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	border-radius: 0;
	z-index: 0;
}

.gvv-hero-media__veil {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(180deg, rgba(27,36,55,.55) 0%, rgba(27,36,55,.12) 34%, rgba(27,36,55,.86) 100%),
		linear-gradient(90deg, rgba(27,36,55,.80) 0%, rgba(27,36,55,.30) 55%, rgba(27,36,55,.10) 100%);
}

.gvv-hero-media__body {
	position: relative;
	z-index: 2;
	padding: clamp(1.75rem, 4vw, 3.25rem);
	padding-block-end: clamp(2.5rem, 6vw, 5rem);
	max-inline-size: 760px;
}

.gvv-hero__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.25rem, 4.4vw, 3.9rem);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--wp--preset--color--paper);
	margin: 0;
	text-wrap: balance;
}

/* La tarjeta sube sobre la foto y rompe la esquina inferior derecha. */
.gvv-hero__card {
	position: relative;
	z-index: 3;
	margin-block-start: -72px;
	margin-inline-start: auto;
	margin-inline-end: clamp(0px, 3vw, 48px);
}

@media (max-width: 900px) {
	.gvv-hero__card {
		margin-block-start: -40px;
		margin-inline: auto;
		max-inline-size: min(480px, calc(100% - 2rem));
	}
	.gvv-hero-media__body { padding-block-end: clamp(3rem, 12vw, 5rem); }
}

.gvv-hero__actions { display: flex; flex-wrap: wrap; gap: 0.7rem; }

/* ---------- Botones en HTML plano (patrones) ---------- */

.gvv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	min-block-size: 44px;
	padding: 0.9rem 1.6rem;
	border-radius: var(--gvv-r-pill);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background 180ms var(--gvv-ease), color 180ms var(--gvv-ease), transform 180ms var(--gvv-ease);
}

.gvv-btn::after {
	content: "";
	inline-size: 0.85em;
	block-size: 0.85em;
	background-color: currentColor;
	-webkit-mask: var(--gvv-arrow) center / contain no-repeat;
	mask: var(--gvv-arrow) center / contain no-repeat;
	transition: transform 200ms var(--gvv-ease);
	flex: 0 0 auto;
}

.gvv-btn:hover::after { transform: translate(2px, -2px); }

.gvv-btn--primary {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--paper);
}

.gvv-btn--primary:hover { background: var(--wp--preset--color--accent-deep); color: var(--wp--preset--color--paper); }

.gvv-btn--ghost {
	background: transparent;
	color: var(--wp--preset--color--navy);
	box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--wp--preset--color--navy) 30%, transparent);
}

.gvv-btn--ghost:hover { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--paper); }

/* El logo se redujo a 38px por diseno; el area clicable se mantiene en 44px. */
.gvv-header .custom-logo-link {
	display: inline-flex;
	align-items: center;
	min-block-size: 44px;
}


/* ---------- Ritmo entre secciones ---------- */

/* (regla anterior retirada: el margen negativo cortaba el contenido) */

/* El ancho de lectura se alinea con el titulo, no se centra por su cuenta. */
.gvv-measure { max-inline-size: 68ch; margin-inline-start: 0; }

/* ---------- CTA de cierre ---------- */

.gvv-cta { border-radius: 0; }

.gvv-cta .wp-block-columns { align-items: center; }

/* La medida de lectura se limita a si misma. La alineacion con el titulo la
   resuelve la estructura: ambos van dentro de un grupo de flujo, no sueltos
   dentro de un layout "constrained" que centra cada hijo por su cuenta. */
.gvv-measure { max-inline-size: 68ch; }


/* ---------- Aire entre secciones ----------
   El chip de una seccion no puede quedar pegado a la seccion anterior. */

.gvv-chip { scroll-margin-block-start: 6rem; }

.wp-block-group.alignfull > .gvv-chip:first-child,
.wp-block-group.alignfull > .wp-block-columns:first-child .gvv-chip {
	margin-block-start: 0;
}

/* Dos secciones seguidas con el mismo fondo se leen como una sola banda
   sin margen negativo: el margen negativo montaba la de abajo encima de la
   de arriba y cortaba las tarjetas. Basta con quitar el doble padding. */
.has-shell-background-color.alignfull + .has-shell-background-color.alignfull {
	padding-block-start: 0 !important;
}

/* ============================================================
   Hero partido: mensaje + bandera. Sin tarjeta colgando ni hueco debajo.
   ============================================================ */

.gvv-hero2__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
}

@media (max-width: 900px) {
	.gvv-hero2__grid { grid-template-columns: 1fr; }
	/* El mensaje va primero; la bandera cierra el hero (pedido del cliente). */
}

.gvv-hero2__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.1rem, 3.7vw, 3.35rem);
	font-weight: 600;
	line-height: 1.06;
	letter-spacing: -0.03em;
	color: var(--wp--preset--color--navy);
	margin: 0;
	text-wrap: balance;
}

.gvv-hero2__lead {
	max-inline-size: 54ch;
	margin: var(--wp--preset--spacing--40) 0 0;
	font-size: 1.0625rem;
	line-height: 1.68;
	color: var(--wp--preset--color--ink-muted);
}

.gvv-hero2__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
	margin-block-start: var(--wp--preset--spacing--50);
}

/* Prueba de credenciales pegada al hero: tres columnas siempre completas. */
.gvv-hero2__proof {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1rem, 2.4vw, 2rem);
	list-style: none;
	margin: var(--wp--preset--spacing--60) 0 0;
	padding: var(--wp--preset--spacing--40) 0 0;
	border-block-start: 1px solid var(--wp--preset--color--line);
}

.gvv-hero2__proof > li { flex: 1 1 150px; display: flex; flex-direction: column; gap: 0.25rem; }

.gvv-hero2__proof strong {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--navy);
}

.gvv-hero2__proof span {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	line-height: 1.4;
	color: var(--wp--preset--color--ink-muted);
}

.gvv-hero2__media {
	margin: 0;
	border-radius: var(--gvv-r-xl);
	border-end-start-radius: 0;
	overflow: clip;
	aspect-ratio: 4 / 5;
	background: var(--wp--preset--color--navy);
}

.gvv-hero2__media img {
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	border-radius: 0;
	display: block;
}

/* ---------- Cabecera de seccion: titulo a la izquierda, accion a la derecha ---------- */

.gvv-sechead {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40);
	margin-block-end: var(--wp--preset--spacing--60);
}

.gvv-sechead__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 2.8vw, 2.55rem);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.025em;
	color: var(--wp--preset--color--navy);
	margin: 0;
	max-inline-size: 20ch;
	text-wrap: balance;
}

.gvv-on-dark .gvv-sechead__title { color: var(--wp--preset--color--paper); }

/* ---------- Tres destacadas con foto ---------- */

.gvv-feat3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
}

@media (max-width: 880px) { .gvv-feat3 { grid-template-columns: 1fr; } }

.gvv-feat3__card {
	position: relative;
	display: block;
	border-radius: var(--gvv-r-lg);
	overflow: clip;
	aspect-ratio: 4 / 5;
	background: var(--wp--preset--color--navy);
	text-decoration: none;
	isolation: isolate;
	transition: transform 260ms var(--gvv-ease), box-shadow 260ms var(--gvv-ease);
}

.gvv-feat3__card:hover { transform: translateY(-4px); box-shadow: var(--gvv-shadow-card); }

.gvv-feat3__card img {
	position: absolute;
	inset: 0;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	border-radius: 0;
	z-index: 0;
	transition: transform 600ms var(--gvv-ease);
}

.gvv-feat3__card:hover img { transform: scale(1.04); }

.gvv-feat3__card::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(27,36,55,0) 34%, rgba(27,36,55,.82) 78%, rgba(27,36,55,.94) 100%);
}

.gvv-feat3__body {
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	padding: clamp(1.1rem, 2vw, 1.6rem);
}

.gvv-feat3__place {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.125rem, 1.6vw, 1.375rem);
	font-weight: 600;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--paper);
	line-height: 1.2;
}

.gvv-feat3__stream {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	line-height: 1.45;
	color: var(--wp--preset--color--sky);
}

/* ============================================================
   Contenido de paginas y articulos
   El sitio heredado apila imagenes sueltas a ancho completo, de tamanos
   distintos. Aqui se les impone una proporcion y un tope de alto para que
   el articulo lea como un documento y no como una pila de fotos.
   ============================================================ */

.wp-block-post-content .wp-block-image,
.entry-content .wp-block-image {
	margin-block: var(--wp--preset--spacing--50);
}

.wp-block-post-content .wp-block-image img,
.entry-content .wp-block-image img {
	inline-size: 100%;
	max-block-size: 460px;
	object-fit: cover;
	border-radius: var(--gvv-r-md);
	display: block;
}

/* Dos imagenes seguidas se acercan entre si, pero sin solaparse. */
.wp-block-post-content .wp-block-image + .wp-block-image,
.entry-content .wp-block-image + .wp-block-image {
	margin-block-start: 0.75rem;
}

/* Ritmo de lectura: los titulos abren aire, los parrafos no lo derrochan. */
.wp-block-post-content > :where(h2, h3),
.entry-content > :where(h2, h3) {
	margin-block-start: var(--wp--preset--spacing--60);
	margin-block-end: var(--wp--preset--spacing--30);
}

.wp-block-post-content > :where(h4, h5, h6),
.entry-content > :where(h4, h5, h6) {
	margin-block-start: var(--wp--preset--spacing--50);
	margin-block-end: var(--wp--preset--spacing--20);
}

.wp-block-post-content > p,
.entry-content > p { margin-block: 0 var(--wp--preset--spacing--30); }

.wp-block-post-content > ul,
.wp-block-post-content > ol,
.entry-content > ul,
.entry-content > ol { margin-block: 0 var(--wp--preset--spacing--40); }

/* ---------- Cabecera de pagina interior ---------- */

.gvv-pagehead {
	background: linear-gradient(150deg,
		var(--wp--preset--color--navy-darkest) 0%,
		var(--wp--preset--color--navy) 62%,
		#46557A 100%);
	color: var(--wp--preset--color--paper);
	border-end-start-radius: var(--gvv-r-xl);
	border-end-end-radius: var(--gvv-r-xl);
}

.gvv-pagehead .wp-block-post-title,
.gvv-pagehead h1 { color: var(--wp--preset--color--paper); }

.gvv-pagehead .wp-block-breadcrumbs,
.gvv-pagehead .wp-block-breadcrumbs a { color: var(--wp--preset--color--sky-pale); }

/* ---------- Tonalidad alterna entre secciones ----------
   Bandas suaves para que la portada no sea un muro blanco. */

.gvv-band-tint { background: var(--wp--preset--color--shell); }
.gvv-band-sky  { background: color-mix(in srgb, var(--wp--preset--color--sky-pale) 42%, var(--wp--preset--color--paper)); }

/* ---------- Biografias: retrato + texto, dos columnas iguales ---------- */

.gvv-bios {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

@media (max-width: 880px) { .gvv-bios { grid-template-columns: 1fr; } }

.gvv-bio {
	display: grid;
	grid-template-columns: 168px minmax(0, 1fr);
	gap: clamp(1rem, 2vw, 1.5rem);
	align-items: start;
	padding: clamp(1.25rem, 2.2vw, 1.75rem);
	background: var(--wp--preset--color--shell);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--gvv-r-lg);
	border-end-start-radius: 0;
}

@media (max-width: 560px) { .gvv-bio { grid-template-columns: 1fr; } }

.gvv-bio__photo {
	inline-size: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: var(--gvv-r-md);
	display: block;
	max-block-size: none;
}

.gvv-bio__name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--navy);
	margin: 0;
}

.gvv-bio__role {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--wp--preset--color--accent);
	margin: 0.25rem 0 0.9rem;
}

.gvv-bio__text {
	font-size: 0.9375rem;
	line-height: 1.62;
	color: var(--wp--preset--color--ink-muted);
	margin: 0;
}

.gvv-bio__link {
	display: inline-flex;
	align-items: center;
	min-block-size: 44px;
	margin-block-start: 0.5rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}

.gvv-bio__link:hover { color: var(--wp--preset--color--accent-deep); text-decoration: underline; }

/* Texto introductorio a dos columnas: llena el ancho sin dejar renglones larguisimos. */
.gvv-twocol {
	columns: 2;
	column-gap: clamp(2rem, 4vw, 3.5rem);
	font-size: 1.0625rem;
	line-height: 1.68;
	color: var(--wp--preset--color--ink-muted);
}

.gvv-twocol p { margin: 0 0 1rem; break-inside: avoid; }
.gvv-twocol p:last-child { margin-bottom: 0; }

@media (max-width: 780px) { .gvv-twocol { columns: 1; } }


/* ---------- Ritmo vertical: menos aire muerto ----------
   Las secciones respiraban de mas y la portada parecia vacia.
   Se reduce el bloque de "capitulo" y se alterna el fondo. */

.wp-block-group.alignfull > .wp-block-group,
.wp-block-group.alignfull { --gvv-sect: clamp(3rem, 5.5vw, 4.5rem); }

.gvv-hero2,
.gvv-progs, .gvv-steps, .gvv-provs, .gvv-people, .gvv-bios { --gvv-sect: inherit; }

/* Bandas alternas: blanco, tinte frio, blanco, azul palido... */
main > .wp-block-group.alignfull:nth-of-type(even):not(.has-background):not(.gvv-pagehead) {
	background: var(--wp--preset--color--shell);
}

/* Una franja con el azul de marca cada tantas secciones rompe la monotonia
   sin salirse de la paleta. */
main > .wp-block-group.alignfull.has-shell-background-color:nth-of-type(4n) {
	background: color-mix(in srgb, var(--wp--preset--color--sky-pale) 38%, var(--wp--preset--color--paper)) !important;
}

/* Encabezado: el mismo aire arriba que abajo. */
/* (retirado) Este margen se sumaba al padding del contenedor y dejaba 80px arriba contra 40 abajo. */


/* El bloque de equipo de la portada reparte 50/50: dos retratos legibles
   en vez de dos miniaturas apretadas. */
@media (min-width: 900px) {
	.gvv-team-media { flex-basis: 50% !important; }
	.gvv-team-copy  { flex-basis: 50% !important; }
}


/* ---------- Fondo general: deja de ser blanco puro ----------
   Un lienzo apenas templado hacia el azul de marca. Las secciones blancas
   siguen leyendose como superficie elevada sobre el. */

body { background: #EDF1F6; }

.wp-site-blocks { background: var(--wp--preset--color--paper); }

/* Las bandas neutras toman un tinte frio propio, no gris de sistema. */
.has-shell-background-color { background-color: #F2F5F9 !important; }

/* ---------- Proceso: rejilla fija de 4, siempre alineada ----------
   Con flex los tres ultimos crecian y rompian la columna. Con grid de 4
   y una octava celda de cierre, las dos filas quedan identicas. */

.gvv-steps {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(0.85rem, 1.6vw, 1.25rem);
}

.gvv-steps > * { flex: none; }

@media (max-width: 1100px) { .gvv-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px)  { .gvv-steps { grid-template-columns: 1fr; } }

/* Octava celda: cierre del proceso, no un hueco. */
.gvv-step--cta {
	background: var(--wp--preset--color--navy);
	border-color: transparent;
	color: var(--wp--preset--color--paper);
	justify-content: center;
	gap: 1rem;
}

.gvv-step--cta .gvv-step__title { color: var(--wp--preset--color--paper); }
.gvv-step--cta .gvv-step__text  { color: var(--wp--preset--color--sky-pale); }
.gvv-step--cta:hover { transform: translateY(-3px); }

/* ---------- Rejilla de guias ---------- */

.gvv-guides {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
}

/* Grid, no flex: reparte columnas iguales de forma fiable. El numero de
   celdas siempre es multiplo de 3 porque el patron rellena en PHP, asi que
   la ultima fila nunca queda coja. */
@media (max-width: 980px) { .gvv-guides { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .gvv-guides { grid-template-columns: 1fr; } }

/* (las reglas de la celda de cierre van al final del archivo: la clase base
   .gvv-guide se declara mas abajo y con la misma especificidad ganaba ella) */

.gvv-guide {
	display: flex;
	flex-direction: column;
	border-radius: var(--gvv-r-lg);
	overflow: clip;
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	text-decoration: none;
	transition: transform 240ms var(--gvv-ease), box-shadow 240ms var(--gvv-ease);
	block-size: 100%;
}

.gvv-guide:hover { transform: translateY(-4px); box-shadow: var(--gvv-shadow-card); }

.gvv-guide__media { display: block; aspect-ratio: 16 / 10; overflow: clip; background: var(--wp--preset--color--navy); }

.gvv-guide__media img {
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	border-radius: 0;
	max-block-size: none;
	transition: transform 600ms var(--gvv-ease);
}

.gvv-guide:hover .gvv-guide__media img { transform: scale(1.05); }

.gvv-guide__body {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: clamp(1.1rem, 2vw, 1.45rem);
	flex: 1;
}

.gvv-guide__place {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.0625rem;
	font-weight: 600;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--navy);
	line-height: 1.25;
}

.gvv-guide__stream { font-size: 0.875rem; line-height: 1.5; color: var(--wp--preset--color--ink-muted); flex: 1; }

.gvv-guide__more {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--wp--preset--color--accent);
	margin-block-start: 0.5rem;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	min-block-size: 24px;
}

.gvv-guide__more::after {
	content: "";
	inline-size: 0.8em; block-size: 0.8em;
	background: currentColor;
	-webkit-mask: var(--gvv-arrow) center / contain no-repeat;
	mask: var(--gvv-arrow) center / contain no-repeat;
	transition: transform 200ms var(--gvv-ease);
}

.gvv-guide:hover .gvv-guide__more::after { transform: translate(2px, -2px); }

/* ---------- Panel de contacto ---------- */

.gvv-contact {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
}

@media (max-width: 900px) { .gvv-contact { grid-template-columns: 1fr; } }

.gvv-contact__lead {
	margin: var(--wp--preset--spacing--30) 0 0;
	max-inline-size: 46ch;
	font-size: 1.0625rem;
	line-height: 1.68;
	color: var(--wp--preset--color--ink-muted);
}

.gvv-contact__rows {
	margin-block-start: var(--wp--preset--spacing--50);
	display: grid;
	gap: 0;
}

.gvv-contact__row {
	display: grid;
	grid-template-columns: 132px minmax(0, 1fr);
	gap: 1rem;
	padding-block: 0.9rem;
	border-block-start: 1px solid var(--wp--preset--color--line);
}

.gvv-contact__row:last-child { border-block-end: 1px solid var(--wp--preset--color--line); }

@media (max-width: 480px) { .gvv-contact__row { grid-template-columns: 1fr; gap: 0.25rem; } }

.gvv-contact__k {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--accent);
	padding-block-start: 0.15rem;
}

.gvv-contact__v { font-size: 0.9375rem; line-height: 1.6; color: var(--wp--preset--color--ink); }

.gvv-contact__actions { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-block-start: var(--wp--preset--spacing--50); }

.gvv-contact__media {
	margin: 0;
	border-radius: var(--gvv-r-xl);
	border-end-end-radius: 0;
	overflow: clip;
	aspect-ratio: 4 / 5;
	background: var(--wp--preset--color--navy);
}

.gvv-contact__media img {
	inline-size: 100%; block-size: 100%; object-fit: cover;
	border-radius: 0; max-block-size: none; display: block;
}

/* El acento cobre sobre navy da 1.96:1. En la celda oscura del proceso
   se usa su version clara, igual que en el pie. */
.gvv-step--cta .gvv-step__n { color: var(--wp--preset--color--accent-light); }
.gvv-step--cta .gvv-step__n::after { background: color-mix(in srgb, var(--wp--preset--color--paper) 22%, transparent); }

/* La celda de cierre es un enlace, pero se lee como tarjeta: sin subrayado. */
a.gvv-step--cta,
a.gvv-step--cta:hover { text-decoration: none; }
a.gvv-step--cta :where(p, h3) { text-decoration: none; }

/* ---------- FAQ: acordeon + tarjeta de ayuda ---------- */

.gvv-faq {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 0.95fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: start;
}

@media (max-width: 900px) { .gvv-faq { grid-template-columns: 1fr; } }

.gvv-faq__items { margin-block-start: var(--wp--preset--spacing--50); }

.gvv-qa {
	border-block-end: 1px solid var(--wp--preset--color--line);
	padding-block: 0.35rem;
}

.gvv-qa:first-child { border-block-start: 1px solid var(--wp--preset--color--line); }

.gvv-qa > summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 1rem;
	min-block-size: 56px;
	padding-block: 0.5rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--navy);
	transition: color 160ms var(--gvv-ease);
}

.gvv-qa > summary:hover { color: var(--wp--preset--color--accent-deep); }
.gvv-qa > summary::-webkit-details-marker { display: none; }

.gvv-qa > summary::after {
	content: "";
	margin-inline-start: auto;
	flex: 0 0 auto;
	inline-size: 1.15rem;
	block-size: 1.15rem;
	background-color: var(--wp--preset--color--accent);
	-webkit-mask: var(--gvv-plus) center / contain no-repeat;
	mask: var(--gvv-plus) center / contain no-repeat;
	transition: transform 260ms var(--gvv-ease);
}

.gvv-qa[open] > summary::after { transform: rotate(45deg); }

.gvv-qa > p {
	margin: 0 0 1.1rem;
	padding-inline-end: 2.5rem;
	max-inline-size: 68ch;
	font-size: 0.9688rem;
	line-height: 1.68;
	color: var(--wp--preset--color--ink-muted);
}

.gvv-faq__aside { position: sticky; inset-block-start: 120px; }

@media (max-width: 900px) { .gvv-faq__aside { position: static; } }

.gvv-faq__card {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--paper);
	border-radius: var(--gvv-r-lg);
	border-end-start-radius: 0;
	padding: clamp(1.5rem, 2.6vw, 2rem);
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.gvv-faq__card h3 {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.3125rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--paper);
	margin: 0;
}

.gvv-faq__card p {
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--wp--preset--color--sky-pale);
	margin: 0 0 0.4rem;
}

.gvv-faq__card .gvv-btn--ghost {
	color: var(--wp--preset--color--paper);
	box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--wp--preset--color--paper) 40%, transparent);
}

.gvv-faq__card .gvv-btn--ghost:hover {
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--navy);
}

/* ---------- Booking: el widget de Calendly con marco propio ---------- */

.gvv-booking {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.4fr);
	gap: clamp(1.5rem, 3.5vw, 3rem);
	align-items: start;
}

@media (max-width: 980px) { .gvv-booking { grid-template-columns: 1fr; } }

.gvv-booking__frame {
	border-radius: var(--gvv-r-lg);
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--paper);
	overflow: clip;
	min-block-size: 680px;
}

.gvv-booking__frame iframe,
.gvv-booking__frame .calendly-inline-widget { inline-size: 100%; min-block-size: 680px; border: 0; }

/* ---------- Articulo largo: columna de lectura centrada ---------- */

.gvv-article { max-inline-size: 760px; margin-inline: auto; }
.gvv-article > * { max-inline-size: 100%; }
.gvv-article-hero { margin-block-end: var(--wp--preset--spacing--60); }
.gvv-article-hero img { border-radius: var(--gvv-r-lg); }


/* ---------- Subrayado de enlaces ----------
   El subrayado ayuda a distinguir un enlace dentro de un parrafo.
   En una lista de navegacion sobra: el contexto ya dice que son enlaces. */

.gvv-footer-nav a,
.wp-block-navigation a,
.gvv-card a,
.gvv-guide,
.gvv-prov,
.gvv-feat3__card,
footer .wp-block-list a,
footer .wp-block-social-link-anchor,
.gvv-person__link,
.gvv-bio__link { text-decoration: none; }

/* Sin subrayado tampoco al pasar el cursor: el cambio de color ya avisa,
   y el subrayado en hover se siente anticuado. */
footer a { text-decoration: none; transition: color 160ms var(--gvv-ease); }
footer a:hover,
footer a:focus-visible { color: var(--wp--preset--color--paper); text-decoration: none; }

footer .gvv-lead a { color: var(--wp--preset--color--accent-light); }
footer .gvv-lead a:hover { color: var(--wp--preset--color--paper); }

/* ---------- Respiracion sobre la cabecera ---------- */

/* El padding no colapsa con el margen del hijo; el margen si. Por eso el aire
   sobre la pildora del header se pone aqui como padding del contenedor. */
.wp-site-blocks { padding-block-start: var(--gvv-gutter); }

/* ---------- Esquinas mas redondas en las tarjetas ---------- */

:root { --gvv-r-lg: 20px; --gvv-r-xl: 28px; }

.gvv-prog { border-radius: 24px; }
.gvv-prog--feature { border-end-start-radius: 0; }
.gvv-step { border-radius: 18px; }
.gvv-guide, .gvv-feat3__card { border-radius: 22px; }

/* ---------- Fondo propio para la seccion del hero ---------- */

.gvv-hero2 {
	background: linear-gradient(180deg,
		color-mix(in srgb, var(--wp--preset--color--sky-pale) 30%, var(--wp--preset--color--paper)) 0%,
		var(--wp--preset--color--paper) 100%);
	border-end-start-radius: var(--gvv-r-xl);
	border-end-end-radius: var(--gvv-r-xl);
}


/* Ninguna seccion puede recortar su propio contenido. */
.wp-block-group.alignfull { overflow: visible; }

/* Las secciones a sangre se tocan entre si. El contenedor real es
   .wp-block-post-content (no <main>), y su blockGap metia 24px de fondo de
   pagina entre dos bandas del mismo color. Se cierra con margen 0, nunca con
   margen negativo: eso montaba una seccion sobre otra y cortaba las tarjetas. */
.wp-block-post-content > .wp-block-group.alignfull,
.entry-content > .wp-block-group.alignfull,
main > .wp-block-group.alignfull { margin-block: 0 !important; }


/* Celda de cierre: misma caja, sin foto, en navy. */
.gvv-guide--cta {
	background: var(--wp--preset--color--navy);
	border-color: transparent;
	justify-content: center;
}

.gvv-guide--cta .gvv-guide__body { justify-content: center; gap: 0.6rem; }
.gvv-guide--cta .gvv-guide__place { color: var(--wp--preset--color--paper); }
.gvv-guide--cta .gvv-guide__stream { color: var(--wp--preset--color--sky-pale); flex: 0; }
.gvv-guide--cta .gvv-guide__more { color: var(--wp--preset--color--accent-light); }

/* ---------- 320px: el ancho real mas estrecho que hay que soportar ---------- */

@media (max-width: 360px) {
	/* Las etiquetas de dos columnas no caben: pasan a una sola. */
	.gvv-contact__row { grid-template-columns: 1fr; gap: 0.25rem; }

	/* Los titulos de seccion con palabras largas desbordaban. */
	.gvv-sechead__title,
	.gvv-hero2__title { overflow-wrap: anywhere; hyphens: auto; }

	/* El calendario de Calendly tiene un ancho minimo propio de 320px:
	   se le deja desplazarse dentro de su marco en vez de romper la pagina. */
	.gvv-booking__frame { overflow-x: auto; }
}

/* Red de seguridad: nada dentro del contenido puede ser mas ancho que su caja. */
.wp-block-post-content :where(img, video, iframe, table, pre) { max-inline-size: 100%; }

/* ---------- Foto en la tarjeta de programa ---------- */

.gvv-prog { padding: 0; overflow: clip; }

.gvv-prog__media {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: clip;
	background: var(--wp--preset--color--navy-darkest);
}

.gvv-prog__media img {
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	border-radius: 0;
	max-block-size: none;
	transition: transform 600ms var(--gvv-ease);
}

.gvv-prog:hover .gvv-prog__media img { transform: scale(1.05); }

/* El texto recupera el aire que tenia antes de meter la foto. */
.gvv-prog > :not(.gvv-prog__media) { margin-inline: clamp(1.5rem, 2.6vw, 2rem); }
.gvv-prog > .gvv-prog__title { margin-block-start: clamp(1.25rem, 2.2vw, 1.6rem); }
.gvv-prog > .gvv-prog__cta   { margin-block-end: clamp(1.5rem, 2.6vw, 2rem); }

/* ---------------------------------------------------------------------------
   Selector de idioma propio (EN - ES) en la pildora de cabecera.
--------------------------------------------------------------------------- */
.gvv-lang-switch {
	display: inline-flex;
	align-items: center;
	gap: 0.2rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1;
	padding: 0 0.55rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	white-space: nowrap;
}

.gvv-lang-switch__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-block-size: 44px;
	min-inline-size: 44px;
	color: var(--wp--preset--color--ink-muted);
	text-decoration: none;
	padding: 0 0.2rem;
}

.gvv-lang-switch__item.is-current { color: var(--wp--preset--color--navy); }

.gvv-lang-switch__item:not(.is-current):hover,
.gvv-lang-switch__item:not(.is-current):focus-visible {
	color: var(--wp--preset--color--accent);
}

.gvv-lang-switch__sep { color: var(--wp--preset--color--line); }

/* Movil: solo se muestra el idioma alternativo, sin caja, y los gaps de la
   pildora se compactan para que el CTA respire. */
@media (max-width: 599px) {
	.gvv-lang-switch { border: 0; padding: 0; gap: 0; font-size: 0.8125rem; }
	.gvv-lang-switch__sep,
	.gvv-lang-switch__item.is-current { display: none; }
	.gvv-header .wp-block-group { gap: 0.75rem; }
	.gvv-header .wp-block-button__link {
		font-size: 0.75rem !important;
		padding: 0.6rem 0.9rem !important;
		white-space: nowrap;
	}
}

/* El isologo cuadrado solo aparece en pantallas angostas. */
.gvv-header .gvv-logo-iso { display: none; }

@media (max-width: 479px) {
	.gvv-header .wp-block-site-logo { flex: 0 0 auto; }
	.gvv-header .custom-logo { display: none; }
	.gvv-header .gvv-logo-iso {
		display: block;
		inline-size: 38px;
		block-size: 38px;
	}
}

/* 320px: se compacta todo un punto mas para que el CTA no desborde la pildora. */
@media (max-width: 359px) {
	.gvv-header .wp-block-group { gap: 0.4rem; }
	.gvv-lang-switch { padding: 0 0.2rem; }
	.gvv-lang-switch__item { min-inline-size: 38px; }
	.gvv-header .wp-block-button__link {
		font-size: 0.7rem !important;
		padding: 0.55rem 0.7rem !important;
	}
}

/* ---------------------------------------------------------------------------
   FAB de menu en movil: el hamburger sale de la pildora y flota abajo a la
   derecha, al alcance del pulgar. El boton de cerrar ocupa el mismo sitio
   para que abrir y cerrar sea el mismo gesto.
--------------------------------------------------------------------------- */
@media (max-width: 599px) {
	.gvv-header .wp-block-navigation__responsive-container-open {
		position: fixed;
		inset-block-end: 1.1rem;
		inset-inline-end: 1.1rem;
		z-index: 90;
		display: grid;
		place-items: center;
		inline-size: 56px;
		block-size: 56px;
		border-radius: 999px;
		background: var(--wp--preset--color--accent);
		color: var(--wp--preset--color--paper);
		box-shadow: 0 10px 30px rgba(21, 26, 36, 0.35);
		transition: background-color 200ms var(--gvv-ease, ease), transform 200ms var(--gvv-ease, ease);
	}
	.gvv-header .wp-block-navigation__responsive-container-open:hover,
	.gvv-header .wp-block-navigation__responsive-container-open:focus-visible {
		background: var(--wp--preset--color--accent-deep);
		transform: translateY(-2px);
	}
	.gvv-header .wp-block-navigation__responsive-container-open svg {
		inline-size: 26px;
		block-size: 26px;
	}

	/* --- El menu se despliega como bottom sheet (referencia: ipoint.pe) --- */
	.gvv-header .wp-block-navigation__responsive-container.is-menu-open {
		background: color-mix(in srgb, var(--wp--preset--color--navy-darkest) 55%, transparent) !important;
		backdrop-filter: blur(4px);
		-webkit-backdrop-filter: blur(4px);
		display: flex;
		align-items: flex-end;
		padding: 0;
	}
	.gvv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
	.gvv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
		inline-size: 100%;
		block-size: 100%;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		margin-block-end: 0;
	}
	.gvv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
		position: relative;
	}
	/* La X se ancla al sheet, no a la pantalla. */
	.gvv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		position: relative;
	}
	.gvv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		background: var(--wp--preset--color--paper);
		border-start-start-radius: 24px;
		border-start-end-radius: 24px;
		box-shadow: 0 -18px 50px rgba(21, 26, 36, 0.35);
		padding: 1.9rem 1.5rem calc(1.9rem + env(safe-area-inset-bottom, 0px));
		max-block-size: 78vh;
		overflow: auto;
		animation: gvv-sheet-up 280ms var(--gvv-ease, ease) both;
	}
	@keyframes gvv-sheet-up {
		from { transform: translateY(24px); opacity: 0; }
		to   { transform: translateY(0);    opacity: 1; }
	}
	@media (prefers-reduced-motion: reduce) {
		.gvv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { animation: none; }
	}

	/* Lista con separadores, texto tinta sobre blanco. */
	.gvv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		display: block;
		inline-size: 100%;
	}
	.gvv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		display: block;
		border-block-start: 1px solid var(--wp--preset--color--line);
	}
	.gvv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:first-child {
		border-block-start: 0;
	}
	.gvv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: block;
		color: var(--wp--preset--color--ink) !important;
		font-size: 1.05rem;
		font-weight: 600;
		padding: 0.95rem 0.25rem;
	}
	.gvv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
		color: var(--wp--preset--color--accent) !important;
		background: none;
	}

	/* Cierre: circulo discreto arriba a la derecha del sheet. */
	/* La X flota justo encima del sheet, a la derecha. */
	.gvv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		position: static;
		align-self: flex-end;
		margin: 0 1rem 0.75rem 0;
		z-index: 5;
		display: grid;
		place-items: center;
		inline-size: 44px;
		block-size: 44px;
		border-radius: 999px;
		background: var(--wp--preset--color--paper);
		color: var(--wp--preset--color--ink) !important;
		box-shadow: 0 6px 20px rgba(21, 26, 36, 0.3);
	}
	.gvv-header .wp-block-navigation__responsive-container-close svg {
		inline-size: 20px;
		block-size: 20px;
	}
}

/* Logo en el pie: la imagen trae margenes transparentes, se compensa. */
.gvv-footer-logo { margin: 0; }
.gvv-footer-logo img { inline-size: min(250px, 70vw); block-size: auto; margin-inline-start: -8px; }
