/*
 * WordPress does not generate CSS custom properties for spacing slugs
 * whose name begins with a digit (e.g. "2xl", "3xl"). Alphabetic slugs
 * such as "lg" are handled automatically by theme.json.
 * These declarations mirror the spacingSizes values in theme.json exactly.
 */
:root {
	--wp--preset--spacing--2xl: 4rem;
	--wp--preset--spacing--3xl: 5rem;
	--pgp-scroll-padding: 5.5rem;
}

/* Anclas internas (#seccion): desplazamiento suave y margen bajo cabecera */
html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--pgp-scroll-padding);
}

.admin-bar html {
	scroll-padding-top: calc(var(--pgp-scroll-padding) + var(--wp-admin--admin-bar--height, 32px));
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

.pgp-bi-section[id],
#calculator,
#observatorio,
#enroll-form,
#results-section {
	scroll-margin-top: var(--pgp-scroll-padding);
}

/* Sticky footer: flex-column en el wrapper raíz + flex:1 en el contenido
   intermedio garantiza que el footer siempre queda al final del viewport
   en páginas con poco contenido. WP no genera este layout por defecto. */
:where(.wp-site-blocks) {
	min-height: 100vh;
}

.wp-site-blocks {
	display: flex;
	flex-direction: column;
}

.wp-site-blocks > *:not(.wp-block-template-part) {
	flex: 1 0 auto;
}

/* Footer pegado al bloque anterior en todas las plantillas.
   Evita huecos cuando el template-part guardado en BD pierde clases custom. */
.wp-site-blocks > .wp-block-template-part:has(> footer) {
	margin-block-start: 0;
}

/* Home (front-page.html): Core (:where(.wp-site-blocks) > *) aplica margin-block-start:24px
   a cada hijo directo. !important evita que estilos de bloque o copias en BD ganen.
   pgp-main--home en <main>: hueco entre header y hero. */
.wp-site-blocks > .wp-block-template-part.pgp-header--home {
	margin-block-start: 0 !important;
}

.wp-site-blocks > main.pgp-main--home {
	margin-block-start: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: none !important;
	width: 100%;
}

/*
 * main conserva .has-global-padding (layout constrained) pero sin padding lateral.
 * Core sigue aplicando márgenes negativos a > .alignfull → scroll horizontal en escritorio.
 */
main.pgp-main--home.has-global-padding > .alignfull {
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}

/* Contenido interior de bandas alignfull: padding lateral (theme.json en el root no llega aquí). */
main.pgp-main--home > .alignfull > :where(.alignwide, .wp-block-cover__inner-container) {
	padding-inline: var(--wp--preset--spacing--lg);
	box-sizing: border-box;
}

/* Bloques custom a ancho completo (sin alignfull), reordenable en la plantilla. */
main.pgp-main--home.is-layout-constrained > :is(
	.wp-block-petgrowthpartners-client-logos,
	.wp-block-petgrowthpartners-trusted-leaders
) {
	box-sizing: border-box;
	max-width: none !important;
	width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-top: 0 !important;
}

/* Plantilla «Página con patrones»: main y post-content sin constrained anidado
   para que .alignfull (hero, stats, etc.) ocupen el 100% del viewport. */
.wp-site-blocks > main.pgp-main--pagina-patrones {
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: none;
	width: 100%;
}

main.pgp-main--pagina-patrones .wp-block-post-content > .alignfull {
	box-sizing: border-box;
	max-width: none !important;
	width: 100%;
	margin-top: 0 !important;
}

/* Bloques sueltos (párrafo, encabezado, grupo sin alignfull): ancho contenido 1280px */
main.pgp-main--pagina-patrones .wp-block-post-content > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	box-sizing: border-box;
	max-width: var(--wp--style--global--content-size) !important;
	width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Secciones de banda completa (fondo edge-to-edge); el contenido interno usa alignwide */
main.pgp-main--pagina-patrones .wp-block-post-content > .wp-block-petgrowthpartners-trusted-leaders,
main.pgp-main--pagina-patrones .wp-block-post-content > .wp-block-petgrowthpartners-client-logos {
	box-sizing: border-box;
	max-width: none !important;
	width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-top: 0 !important;
}

/* Patrón / bloque «Contenedor»: sección con padding lateral coherente */
main.pgp-main--pagina-patrones .pgp-contenedor {
	padding-left: clamp(1.25rem, 4vw, 1.5rem);
	padding-right: clamp(1.25rem, 4vw, 1.5rem);
}

/* ── Plantilla Landing Servicio ────────────────────────────────────────── */

.wp-site-blocks > main.pgp-main--servicio-landing {
	margin-block-start: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: none;
	width: 100%;
}

main.pgp-main--servicio-landing .wp-block-post-content > .alignfull {
	box-sizing: border-box;
	max-width: none !important;
	width: 100%;
	margin-top: 0 !important;
}

main.pgp-main--servicio-landing .wp-block-post-content > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	box-sizing: border-box;
	max-width: var(--wp--style--global--content-size) !important;
	width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
}

main.pgp-main--servicio-landing .wp-block-post-content > .wp-block-petgrowthpartners-trusted-leaders,
main.pgp-main--servicio-landing .wp-block-post-content > .wp-block-petgrowthpartners-client-logos {
	box-sizing: border-box;
	max-width: none !important;
	width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-top: 0 !important;
}

.pgp-servicio-hero__kicker {
	display: inline-flex;
	margin: 0 0 0.75rem;
	padding: 0.35rem 0.8rem;
	border-radius: var(--wp--custom--radius--pill);
	background: rgba(146, 104, 248, 0.14);
	color: var(--wp--preset--color--mora);
}

.pgp-servicio-pains ul,
.pgp-servicio-goals ul {
	margin: 0;
	padding-left: 1.25rem;
	line-height: 1.7;
}

.pgp-servicio-pains li + li,
.pgp-servicio-goals li + li {
	margin-top: 0.55rem;
}

.pgp-servicio-pillar {
	height: 100%;
}

.pgp-servicio-pillar .wp-block-heading {
	margin: 0 0 0.75rem;
	font-size: 1.2rem;
}

.pgp-servicio-pillar .wp-block-paragraph {
	margin: 0;
}

.pgp-servicio-plus {
	margin-top: 1rem;
	padding-top: 0.9rem;
	border-top: 1px solid rgba(43, 74, 53, 0.12);
	font-weight: 700;
	letter-spacing: 0.02em;
}

.pgp-servicio-cta .wp-block-button__link {
	padding: 1rem 2rem;
}

/* ── Plantilla Caso de éxito ───────────────────────────────────────────── */

.wp-site-blocks > main.pgp-main--caso-exito {
	margin-block-start: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: none;
	width: 100%;
}

main.pgp-main--caso-exito .wp-block-post-content > .alignfull {
	box-sizing: border-box;
	max-width: none !important;
	width: 100%;
	margin-top: 0 !important;
}

main.pgp-main--caso-exito .wp-block-post-content > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	box-sizing: border-box;
	max-width: var(--wp--style--global--content-size) !important;
	width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
}

.pgp-caso-exito-badge {
	display: inline-flex;
	margin: 0 0 1rem;
	padding: 0.35rem 0.75rem;
	border-radius: var(--wp--custom--radius--pill);
	background: rgba(253, 253, 253, 0.12);
	color: var(--wp--preset--color--manzana);
}

.pgp-caso-exito-hero .wp-block-heading {
	margin: 0 0 1.25rem;
}

.pgp-caso-exito-note {
	margin: 0;
	opacity: 0.85;
}

.pgp-caso-exito-section__label {
	margin: 0 0 0.75rem;
}

.pgp-caso-exito-section .wp-block-heading {
	margin: 0 0 1.25rem;
}

.pgp-caso-exito-section .wp-block-heading + .wp-block-paragraph {
	margin-top: 0;
}

.pgp-caso-exito-section--estrategia .pgp-caso-exito-section__intro .pgp-caso-exito-section__label,
.pgp-caso-exito-section--estrategia .alignwide > .wp-block-group:first-child .pgp-caso-exito-section__label,
.pgp-caso-exito-results .pgp-caso-exito-section__intro .pgp-caso-exito-section__label,
.pgp-caso-exito-results .alignwide > .wp-block-group:first-child .pgp-caso-exito-section__label {
	margin-bottom: var(--wp--preset--spacing--lg);
}

.pgp-caso-exito-section--estrategia .pgp-caso-exito-section__intro > .wp-block-heading,
.pgp-caso-exito-section--estrategia .alignwide > .wp-block-group:first-child > .wp-block-heading,
.pgp-caso-exito-results .pgp-caso-exito-section__intro > .wp-block-heading,
.pgp-caso-exito-results .alignwide > .wp-block-group:first-child > .wp-block-heading {
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--xl);
}

.pgp-caso-exito-section--estrategia .pgp-caso-exito-section__intro > .wp-block-heading + .wp-block-paragraph,
.pgp-caso-exito-section--estrategia .alignwide > .wp-block-group:first-child > .wp-block-heading + .wp-block-paragraph,
.pgp-caso-exito-results .pgp-caso-exito-section__intro > .wp-block-heading + .wp-block-paragraph,
.pgp-caso-exito-results .alignwide > .wp-block-group:first-child > .wp-block-heading + .wp-block-paragraph {
	margin-top: var(--wp--preset--spacing--sm);
	margin-bottom: var(--wp--preset--spacing--xl);
}

.pgp-caso-exito-goals {
	margin: 0 0 1.5rem;
	padding-left: 1.25rem;
	line-height: 1.7;
}

.pgp-caso-exito-goals li + li {
	margin-top: 0.5rem;
}

.pgp-caso-exito-pillars,
.pgp-caso-exito-metrics {
	margin: 0;
}

@media (max-width: 781px) {
	.pgp-caso-exito-pillars .wp-block-column,
	.pgp-caso-exito-metrics .wp-block-column {
		flex-basis: 100% !important;
	}
}

.pgp-caso-exito-pillar,
.pgp-caso-exito-metric {
	height: 100%;
}

.pgp-caso-exito-pillar .wp-block-heading {
	margin: 0 0 0.75rem;
	font-size: 1.125rem;
}

.pgp-caso-exito-pillar .wp-block-paragraph {
	margin: 0;
}

.pgp-caso-exito-metric__value {
	margin: 0 0 0.5rem;
	font-family: var(--wp--preset--font-family--unbounded);
}

.pgp-caso-exito-metric__label {
	margin: 0;
	color: var(--wp--preset--color--bosque);
}

.pgp-caso-exito-conclusion .wp-block-paragraph {
	margin: 0;
}

.pgp-caso-exito-cta .wp-block-buttons {
	margin: 0;
}

.pgp-caso-exito-cta__btn .wp-block-button__link {
	padding: 1rem 2rem;
	font-size: 0.8125rem;
}

.pgp-caso-exito-cta__btn .wp-block-button__link:hover {
	filter: brightness(1.05);
}

/* Header: 1.5rem (spacing--lg) en el bloque raíz del template part. !important
   anula padding inline de template parts guardados en la BD con valores antiguos (xs). */
.wp-site-blocks > .wp-block-template-part:has(> header) > header {
	padding-top: var(--wp--preset--spacing--lg) !important;
	padding-bottom: var(--wp--preset--spacing--lg) !important;
}

/* Cabecera: logo ~220px; móvil — fila 1 logo | hamburguesa; fila 2 CTA a ancho completo.
   Selector doble: .pgp-site-header-bar (fichero) + selector estructural (BD guardada).
   El Site Editor puede perder la clase personalizada al editar; el selector estructural
   usa is-nowrap (generado por WP desde flexWrap:"nowrap") como discriminador único. */
:is(.pgp-site-header-bar,
    header.wp-block-group > .wp-block-group.alignwide.is-nowrap.is-layout-flex)
.wp-block-site-logo .custom-logo-link img,
:is(.pgp-site-header-bar,
    header.wp-block-group > .wp-block-group.alignwide.is-nowrap.is-layout-flex)
.wp-block-site-logo img {
	max-width: 220px;
	width: auto;
	height: auto;
}

@media (max-width: 781px) {

	/* Grid en lugar de flex: placement explícito, sin depender de flex-wrap.
	   display:grid !important anula display:flex de WP sin importar especificidad.
	   :is() activa la regla tanto si la clase personalizada está presente como si no. */
	:is(.pgp-site-header-bar,
	    header.wp-block-group > .wp-block-group.alignwide.is-nowrap.is-layout-flex) {
		display: grid !important;
		grid-template-columns: 1fr auto;
		row-gap: var(--wp--preset--spacing--md);
		align-items: center;
	}

	/* Fila 1, columna 1: logo */
	:is(.pgp-site-header-bar,
	    header.wp-block-group > .wp-block-group.alignwide.is-nowrap.is-layout-flex)
	.wp-block-site-logo {
		grid-column: 1;
		grid-row: 1;
		min-width: 0;
	}

	/* Fila 1, columna 2: hamburguesa */
	:is(.pgp-site-header-bar,
	    header.wp-block-group > .wp-block-group.alignwide.is-nowrap.is-layout-flex)
	.wp-block-navigation {
		grid-column: 2;
		grid-row: 1;
		justify-self: end;
	}

	/* Fila 2, ambas columnas: CTA a ancho completo */
	:is(.pgp-site-header-bar,
	    header.wp-block-group > .wp-block-group.alignwide.is-nowrap.is-layout-flex)
	.wp-block-buttons {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	:is(.pgp-site-header-bar,
	    header.wp-block-group > .wp-block-group.alignwide.is-nowrap.is-layout-flex)
	.wp-block-buttons > .wp-block-button {
		width: 100%;
	}

	:is(.pgp-site-header-bar,
	    header.wp-block-group > .wp-block-group.alignwide.is-nowrap.is-layout-flex)
	.wp-block-buttons .wp-block-button__link {
		display: block;
		width: 100%;
		text-align: center;
		box-sizing: border-box;
	}
}

/* Header: logo visible encima del overlay cuando el menú móvil está abierto.
   core/site-logo no es un inner block permitido en core/navigation, por lo que
   se eleva el logo existente del header bar con z-index superior al overlay (100000).
   :has() + .is-menu-open garantiza que solo aplica cuando el overlay está activo. */
:is(.pgp-site-header-bar,
    header.wp-block-group > .wp-block-group.alignwide.is-nowrap.is-layout-flex):has(
    .wp-block-navigation__responsive-container.is-menu-open)
.wp-block-site-logo {
	position: relative;
	z-index: 200000;
}

/* Padding-top en el contenido del overlay para separar los links del logo elevado.
   El logo termina ~73px desde el top (padding-top header 1.5rem + logo 49px).
   3xl = 5rem = 80px da margen suficiente en cualquier viewport móvil. */
header.wp-block-group
.wp-block-navigation__responsive-container.is-menu-open
.wp-block-navigation__responsive-container-content {
	padding-top: var(--wp--preset--spacing--3xl);
}

/* ── Footer navigation ─────────────────────────────────────────────
   Oculta el botón hamburguesa en el footer.
   No se fuerza display:block en __responsive-container: ese elemento
   tiene data-wp-watch del Interactivity API y manipularlo via CSS
   puede interferir con la gestión de foco/overlay del header.
   Fix definitivo: cambiar overlayMenu a "never" en el Site Editor. */

footer.wp-block-group .wp-block-navigation__responsive-container-open {
	display: none !important;
}

/* Footer logo: force fixed width because template-part copies saved in DB
   can keep an older block width (e.g. 160px) and override file changes. */
footer .wp-block-image.footer-logo,
footer .wp-block-image.footer-logo img {
	width: 240px !important;
	max-width: 240px !important;
	height: auto;
}

.wp-block-post-featured-image img {
	height: auto;
	display: block;
}

.wp-block-navigation .wp-block-navigation-item__content {
	text-decoration: none;
	color: inherit;
	transition: color 0.18s ease;
}

/* Header navigation: desktop submenus wider and easier to scan. */
@media (min-width: 782px) {
	header .wp-block-navigation .wp-block-navigation__submenu-container {
		min-width: 24rem;
		max-width: min(32rem, 92vw);
		padding: 0.5rem;
	}

	header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		display: block;
		width: 100%;
		padding: 0.45rem 0.6rem;
		border-radius: 0.5rem;
		white-space: nowrap;
	}
}

/* Header navigation: mobile overlay aligned left with indented submenus. */
@media (max-width: 781px) {
	header .wp-block-navigation,
	header .wp-block-navigation.items-justified-center,
	header .wp-block-navigation.items-justified-center.is-vertical {
		--navigation-layout-justification-setting: flex-start;
		--navigation-layout-justify: flex-start;
		--navigation-layout-align: flex-start;
	}

	header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content,
	header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
	header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content .wp-block-navigation-item,
	header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content .wp-block-page-list {
		align-items: flex-start !important;
		width: 100%;
	}

	header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content {
		justify-content: flex-start !important;
		text-align: left;
	}

	header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		text-align: left;
		justify-content: flex-start;
		width: 100%;
	}

	header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container {
		width: 100%;
		padding-top: 0.5rem !important;
		padding-right: 0 !important;
		padding-left: 1.25rem !important;
		margin-left: 0.5rem;
		border-left: 2px solid rgba(43, 74, 53, 0.16);
		box-sizing: border-box;
	}
}

/* color:inherit en el estado base impide que el hover de theme.json
   (especificidad [0,0,1]) se aplique. Se declara aquí con [0,3,0]. */
.wp-block-navigation .wp-block-navigation-item__content:hover,
.wp-block-navigation .wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--mora);
}

.wp-element-button,
.wp-block-button__link {
	transition: filter 0.18s ease;
}

.wp-element-button:hover,
.wp-block-button__link:hover {
	filter: brightness(0.88);
}

.is-style-outline > .wp-block-button__link:focus,
.wp-element-button:focus {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Cover block: contentPosition "center left" forces inner-container to
   width:auto and margin:0 (WP core CSS specificity [0,5,0]).
   Restore full-width constrained behavior to match other sections. */
.wp-block-cover.alignfull.has-custom-content-position .wp-block-cover__inner-container {
	width: 100% !important;
	max-width: var(--wp--style--global--wide-size) !important;
	margin-inline: auto !important;
}

/* Fallback for core/group variation main-vertical-xl (e.g. 404 template). */
.wp-block-group.is-style-main-vertical-xl {
	padding-top: var(--wp--preset--spacing--2xl);
	padding-bottom: var(--wp--preset--spacing--2xl);
}

/* Stats card: overflow hidden clips inner group backgrounds to border-radius.
   Inner flex items do not stretch to full width by default in WP vertical flex,
   so width: 100% is forced here to ensure the orange border spans the full card. */
.pgp-stats-card {
	overflow: hidden;
}

.pgp-stats-card > .is-layout-flex {
	width: 100%;
}

/* Client logos section (petgrowthpartners/client-logos block) */
.pgp-clientes {
	padding-top: var(--wp--preset--spacing--2xl);
	padding-bottom: var(--wp--preset--spacing--2xl);
}

.pgp-clientes:not([class*="has-background"]) {
	background-color: var(--wp--preset--color--nube);
}

.pgp-clientes__inner {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--xl);
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: var(--wp--preset--spacing--lg);
	box-sizing: border-box;
}

.pgp-clientes__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--wp--preset--spacing--sm);
	max-width: 42.5rem;
	margin-inline: auto;
}

.pgp-clientes__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--fustat);
	font-size: var(--wp--preset--font-size--2-xl);
	font-weight: 800;
	line-height: 1.15;
	color: var(--wp--preset--color--contrast);
}

.pgp-clientes__lead {
	margin: 0;
	font-size: var(--wp--preset--font-size--md);
	line-height: 1.55;
	color: var(--wp--preset--color--contrast);
}

.pgp-clientes__grid {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: var(--wp--preset--spacing--sm);
	width: 100%;
}

.pgp-clientes__grid > .wp-block-image.pgp-clientes__logo,
.pgp-clientes__grid > .block-editor-block-list__block {
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
}

.pgp-clientes__grid > .block-editor-block-list__block .wp-block-image.pgp-clientes__logo {
	margin: 0;
}

.pgp-clientes__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 0;
	background: none;
	border-radius: 0;
	box-sizing: border-box;
}

.pgp-clientes__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 2rem;
	height: auto;
	object-fit: contain;
	margin-inline: auto;
}

@media (min-width: 782px) {

	.pgp-clientes__logo img {
		max-height: 2.75rem;
	}
}

.pgp-clientes--editor .pgp-clientes__logo:not(:has(img)) {
	border: 1.5px dashed rgba(43, 74, 53, 0.22);
	min-height: 4rem;
	padding: var(--wp--preset--spacing--sm);
}

/* Trusted leaders + testimonials (petgrowthpartners/trusted-leaders block) */
.pgp-trusted-leaders {
	margin-block-start: 0 !important;
	padding-top: var(--wp--preset--spacing--2xl);
	padding-bottom: var(--wp--preset--spacing--2xl);
}

.pgp-trusted-leaders:not([class*="has-background"]) {
	background-color: var(--wp--preset--color--manzana);
}

.pgp-trusted-leaders__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--wp--preset--spacing--2xl);
	align-items: center;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: var(--wp--preset--spacing--lg);
	box-sizing: border-box;
}

.pgp-trusted-leaders__body {
	display: contents;
}

.pgp-trusted-leaders__copy {
	grid-column: 1;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--md);
}

.pgp-trusted-leaders__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--fustat);
	font-size: clamp(1.75rem, 3.2vw, 2.5rem);
	font-weight: 800;
	line-height: 1.2;
	color: var(--wp--preset--color--contrast);
}

.pgp-trusted-leaders__title mark {
	background: none;
	color: var(--wp--preset--color--mora);
}

.pgp-trusted-leaders__title-before,
.pgp-trusted-leaders__title-highlight,
.pgp-trusted-leaders__title-after,
.pgp-trusted-leaders__title [contenteditable="true"] {
	display: inline;
}

.pgp-trusted-leaders__lead {
	margin: 0;
	max-width: 35rem;
	font-size: var(--wp--preset--font-size--md);
	line-height: 1.5;
	color: var(--wp--preset--color--contrast);
}

.pgp-trusted-leaders__logos {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: var(--wp--preset--spacing--md) var(--wp--preset--spacing--xl);
	margin-block-start: 0 !important;
}

.pgp-trusted-leaders__logos > .wp-block-image.pgp-trusted-leaders__logo,
.pgp-trusted-leaders__logos > .block-editor-block-list__block {
	margin: 0;
	min-width: 0;
	flex: 0 0 calc(25% - var(--wp--preset--spacing--xl) * 0.75);
	max-width: calc(25% - var(--wp--preset--spacing--xl) * 0.75);
	display: flex;
	align-items: center;
	justify-content: center;
}

.pgp-trusted-leaders__logo {
	margin: 0;
	background: none;
}

.pgp-trusted-leaders__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 3.5rem;
	height: auto;
	object-fit: contain;
}

.pgp-trusted-leaders__testimonials {
	grid-column: 1 / -1;
	grid-row: 2;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--md);
	margin-block-start: 0 !important;
}

.pgp-trusted-leaders__testimonials > .wp-block-petgrowthpartners-testimonial-card,
.pgp-trusted-leaders__testimonials > .block-editor-block-list__block {
	margin: 0;
	height: 100%;
}

.pgp-trusted-leaders__card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--md);
	min-height: 14.375rem;
	padding: var(--wp--preset--spacing--xl);
	background-color: var(--wp--preset--color--base);
	border-radius: var(--wp--custom--radius--xl);
	box-sizing: border-box;
}

.pgp-trusted-leaders__quote {
	margin: 0;
	padding: 0;
	border: 0;
}

.pgp-trusted-leaders__quote p {
	margin: 0;
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.6;
	color: var(--wp--preset--color--contrast);
}

.pgp-trusted-leaders__quote p::before {
	content: "\201C";
}

.pgp-trusted-leaders__author {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.pgp-trusted-leaders__author-name {
	margin: 0;
	font-family: var(--wp--preset--font-family--fustat);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--contrast);
}

.pgp-trusted-leaders__author-company {
	margin: 0;
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.3;
}

.pgp-trusted-leaders--editor .pgp-trusted-leaders__logo:not(:has(img)) {
	border: 1.5px dashed rgba(43, 74, 53, 0.22);
	min-height: 3.5rem;
	min-width: 5rem;
	padding: var(--wp--preset--spacing--sm);
}

@media (max-width: 1023px) {

	.pgp-trusted-leaders__inner {
		grid-template-columns: 1fr;
	}

	.pgp-trusted-leaders__copy {
		grid-column: 1;
		grid-row: 1;
	}

	.pgp-trusted-leaders__logos {
		grid-column: 1;
		grid-row: 2;
		max-width: 28rem;
		margin-inline: auto;
	}

	.pgp-trusted-leaders__logos > .wp-block-image.pgp-trusted-leaders__logo,
	.pgp-trusted-leaders__logos > .block-editor-block-list__block {
		flex-basis: calc(33.333% - var(--wp--preset--spacing--xl) * 0.667);
		max-width: calc(33.333% - var(--wp--preset--spacing--xl) * 0.667);
	}

	.pgp-trusted-leaders__testimonials {
		grid-column: 1;
		grid-row: 3;
		grid-template-columns: 1fr;
	}
}


/*
 * Outline button + mora color: override elements.button.color.text (base)
 * from theme.json which prevents custom text colors from applying on buttons.
 * background-color: transparent ensures the bosque default never bleeds through.
 */
.wp-block-button.is-style-outline .wp-block-button__link.has-mora-color {
	color: var(--wp--preset--color--mora) !important;
	border-color: var(--wp--preset--color--mora) !important;
	background-color: transparent !important;
}

/* === Contact Form 7 ===
 * CF7 does not inherit theme.json styles. All rules scoped to .wpcf7.
 * Labels use inherit so they follow the parent block (base on bosque-deep CTA,
 * bosque on nube enroll card). */

/* Reset paragraph margins that CF7 adds around each field */
.wpcf7 p {
	margin: 0;
}

/* Vertical stack with consistent gap between field groups */
.wpcf7 form {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--md);
}

/* Labels — inherit color from .has-*-color wrapper (avoid forcing nube on light cards) */
.wpcf7 label {
	display: block;
	color: inherit;
	font-family: var(--wp--preset--font-family--fustat);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: var(--wp--preset--spacing--xs);
}

/* Ensure control-wrap spans full width */
.wpcf7 .wpcf7-form-control-wrap {
	display: block;
}

/* Shared field chrome: text, email, tel, textarea, select */
.wpcf7 .wpcf7-text,
.wpcf7 .wpcf7-email,
.wpcf7 .wpcf7-tel,
.wpcf7 .wpcf7-textarea,
.wpcf7 .wpcf7-select {
	width: 100%;
	max-width: 100%;
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	border: 1px solid transparent;
	border-radius: var(--wp--custom--radius--md);
	padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
	font-family: var(--wp--preset--font-family--fustat);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.6;
	box-sizing: border-box;
}

.wpcf7 .wpcf7-text,
.wpcf7 .wpcf7-email,
.wpcf7 .wpcf7-tel,
.wpcf7 .wpcf7-textarea {
	appearance: none;
}

/* Select: custom chevron (appearance:none drops the native arrow) */
.wpcf7 .wpcf7-select {
	appearance: none;
	cursor: pointer;
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%232B4A35' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4 6 4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 1rem 1rem;
}

.wpcf7 .wpcf7-text::placeholder,
.wpcf7 .wpcf7-email::placeholder,
.wpcf7 .wpcf7-tel::placeholder,
.wpcf7 .wpcf7-textarea::placeholder {
	color: var(--wp--preset--color--roca);
	/* Softer than full roca: mix toward base so placeholders read as light gray */
	color: color-mix(in srgb, var(--wp--preset--color--roca) 32%, var(--wp--preset--color--base));
	opacity: 1;
}

.wpcf7 .wpcf7-text:focus,
.wpcf7 .wpcf7-email:focus,
.wpcf7 .wpcf7-tel:focus,
.wpcf7 .wpcf7-textarea:focus,
.wpcf7 .wpcf7-select:focus {
	outline: 2px solid var(--wp--preset--color--mora);
	outline-offset: 0;
	border-color: transparent;
}

/* Textarea taller for message field */
.wpcf7 .wpcf7-textarea {
	min-height: 130px;
	resize: vertical;
}

/* Submit button — matches mora button style from theme.json elements.button */
.wpcf7 .wpcf7-submit {
	background-color: var(--wp--preset--color--mora);
	color: var(--wp--preset--color--base);
	border: none;
	border-radius: var(--wp--custom--radius--pill);
	padding: 0.625rem 1.75rem;
	font-family: var(--wp--preset--font-family--fustat);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	cursor: pointer;
	transition: filter 0.18s ease;
	line-height: 1.5;
}

.wpcf7 .wpcf7-submit:hover {
	filter: brightness(0.88);
}

.wpcf7 .wpcf7-submit:focus {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Inline validation error */
.wpcf7-not-valid-tip {
	display: block;
	color: #f87171;
	font-size: var(--wp--preset--font-size--2xs);
	margin-top: var(--wp--preset--spacing--xs);
}

.wpcf7 .wpcf7-not-valid {
	border-color: #f87171 !important;
}

/* Response output (sent / error) */
.wpcf7-response-output {
	margin: 0;
	border-radius: var(--wp--custom--radius--sm);
	padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
	font-size: var(--wp--preset--font-size--sm);
}

.wpcf7 .wpcf7-form.sent .wpcf7-response-output {
	color: var(--wp--preset--color--manzana);
	border-color: var(--wp--preset--color--manzana);
}

.wpcf7 .wpcf7-form.failed .wpcf7-response-output,
.wpcf7 .wpcf7-form.invalid .wpcf7-response-output {
	color: #f87171;
	border-color: #f87171;
}

/* Spinner de envío (visible con form.submitting; estilos base en CF7) */
.wpcf7 .wpcf7-spinner {
	display: inline-block;
	visibility: hidden;
	vertical-align: middle;
	margin-inline-start: var(--wp--preset--spacing--sm);
	background-color: var(--wp--preset--color--mora);
	opacity: 0.85;
}

.wpcf7 form.submitting .wpcf7-spinner {
	visibility: visible;
}

.wpcf7 .wpcf7-spinner::before {
	background-color: var(--wp--preset--color--base);
}

.wpcf7 form.submitting .wpcf7-submit {
	cursor: wait;
	opacity: 0.85;
}

/* Pain-points grid: cards fill their column height so all cards in each row
   are equal height. wp:columns is a flex row with align-items:normal (stretch),
   so each column already has a computed height; flex:1 on the inner group fills it.
   Cannot be achieved via block attributes or theme.json. */
.pgp-pain-grid .wp-block-column {
	display: flex;
	flex-direction: column;
}

.pgp-pain-grid .wp-block-column > .wp-block-group {
	flex: 1;
}

/* === FAQ Section ===
   Accordion + category filter. Rendered via shortcodes (pgp_faq_categorias /
   pgp_faq_lista) so categories and data-faq-cats are dynamic per request.
	JS (faqs.js) handles accordion toggle and category show/hide. */

/* Vertical rhythm inside FAQ block / legacy wrapper */
.pgp-faq-section {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--md);
}

/* Editor: Lista de FAQs (contenido dinámico solo en la web publicada) */
.pgp-faq-list-editor-note {
	margin: 0;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--roca);
	line-height: 1.5;
}

/* ── Category filter: pills (desktop) + native select (mobile) ─────── */

.pgp-faq-cats {
	margin-bottom: 0;
}

.pgp-faq-cat-tabs {
	display: none;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.pgp-faq-cat-select-wrap {
	display: block;
}

.pgp-faq-cat-select-label {
	display: block;
	font-family: var(--wp--preset--font-family--fustat);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	margin-bottom: 0.375rem;
	color: var(--wp--preset--color--contrast);
}

.pgp-faq-cat-select {
	width: 100%;
	box-sizing: border-box;
	border: 1.5px solid var(--wp--preset--color--mora);
	border-radius: var(--wp--custom--radius--sm);
	padding: 0.5rem 0.75rem;
	font-family: var(--wp--preset--font-family--fustat);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	line-height: 1.4;
}

@media (min-width: 600px) {

	.pgp-faq-cat-tabs {
		display: flex;
	}

	.pgp-faq-cat-select-wrap,
	.pgp-faq-cat-select-label {
		display: none;
	}
}

.pgp-faq-cat-btn {
	appearance: none;
	border: 1.5px solid var(--wp--preset--color--mora);
	background: transparent;
	color: var(--wp--preset--color--mora);
	font-family: var(--wp--preset--font-family--fustat);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	padding: 0.375rem 1.125rem;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color 0.18s ease, color 0.18s ease;
	line-height: 1.4;
}

.pgp-faq-cat-btn:hover,
.pgp-faq-cat-btn.is-active {
	background-color: var(--wp--preset--color--mora);
	color: var(--wp--preset--color--base);
}

/* ── FAQ list wrapper ──────────────────────────────────────────────── */

.pgp-faq-list {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--sm);
}

/* ── FAQ card ──────────────────────────────────────────────────────── */

.pgp-faq-item {
	background-color: var(--wp--preset--color--nube);
	border-radius: var(--wp--custom--radius--md);
	overflow: hidden;
}

/* ── Trigger row (question + mora "+" button) ──────────────────────── */

.pgp-faq-trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--md);
	padding: var(--wp--preset--spacing--md) var(--wp--preset--spacing--md)
	         var(--wp--preset--spacing--md) var(--wp--preset--spacing--lg);
	cursor: pointer;
	user-select: none;
}

/* Mora circle "+" via ::after — participates as flex item on the right */
.pgp-faq-trigger::after {
	content: '+';
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--mora);
	color: var(--wp--preset--color--base);
	font-size: 1.25rem;
	font-family: var(--wp--preset--font-family--fustat);
	font-weight: 300;
	line-height: 1;
}

.pgp-faq-item.is-open .pgp-faq-trigger::after {
	content: '\2212'; /* − minus sign */
}

/* Override Unbounded (global heading font in theme.json) for FAQ questions */
.pgp-faq-trigger h3 {
	font-family: var(--wp--preset--font-family--fustat);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	line-height: 1.5;
	color: var(--wp--preset--color--contrast);
	margin: 0;
}

/* ── Answer body (collapsed by default) ───────────────────────────── */

.pgp-faq-body {
	display: none;
	padding: 0 var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md);
}

.pgp-faq-item.is-open .pgp-faq-body {
	display: block;
}

.pgp-faq-body p,
.pgp-faq-body li {
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--roca);
	line-height: 1.7;
}

/* ── Landing Observatorio (plantilla observatorio) ─────────────────────── */

.wp-site-blocks > main.pgp-main--observatorio {
	margin-block-start: 0 !important;
	/* theme.json aplica padding lateral al root; el main no es alignfull */
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: none;
	width: 100%;
}

/* Template parts as direct children: evitar max-width de .is-layout-constrained del core */
main.pgp-main--observatorio.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
main.pgp-main--observatorio > .wp-block-template-part {
	max-width: none !important;
	width: 100%;
}

/*
 * Site Editor: grupos con contentSize reducido (p. ej. 960px) generan clases
 * .wp-container-core-group-is-layout-*; pisa el max-width sin restaurar la plantilla.
 */
main.pgp-main--observatorio [class*="wp-container-core-group-is-layout-"] > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: var(--wp--style--global--content-size, 1280px) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Tarjetas y bloques internos: no forzar el ancho global del contenido */
main.pgp-main--observatorio .pgp-obs-insight-card[class*="wp-container-core-group-is-layout-"] > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
main.pgp-main--observatorio .pgp-obs-enroll-card[class*="wp-container-core-group-is-layout-"] > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
main.pgp-main--observatorio .pgp-obs-calc-features[class*="wp-container-core-group-is-layout-"] > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: none !important;
}

.pgp-obs-calc-features {
	margin-top: var(--wp--preset--spacing--xl);
}

.pgp-obs-form-error {
	margin: 0;
	padding: var(--wp--preset--spacing--md);
	border-radius: var(--wp--custom--radius--md);
	background: rgba(248, 113, 113, 0.12);
	color: #b91c1c;
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.5;
}

/* CF7 inscripción Observatorio (.pgp-obs-enroll-card) */
.pgp-obs-enroll-card .pgp-enroll-fields {
	display: grid;
	gap: 1.5rem;
}

/* Títulos de campo (incluye columnas anidadas); pisa .wpcf7 label { font-size: xs } */
.pgp-obs-enroll-card .wpcf7 .pgp-enroll-fields label {
	display: block;
	font-size: 0.875rem !important;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	opacity: 1 !important;
	margin-bottom: 0.5rem;
	color: var(--wp--preset--color--bosque);
}

.pgp-obs-enroll-card .wpcf7 .pgp-enroll-fields .wpcf7-list-item label {
	font-size: var(--wp--preset--font-size--xs) !important;
	font-weight: 400;
	text-transform: none;
	letter-spacing: normal;
	margin-bottom: 0;
}

.pgp-obs-enroll-card .wpcf7 .wpcf7-form.sent .wpcf7-response-output,
.pgp-obs-enroll-card .wpcf7 .wpcf7-form.failed .wpcf7-response-output,
.pgp-obs-enroll-card .wpcf7 .wpcf7-form.invalid .wpcf7-response-output {
	color: var(--wp--preset--color--bosque);
	border-color: rgba(43, 74, 53, 0.2);
	background: rgba(43, 74, 53, 0.06);
}

.pgp-obs-enroll-card .pgp-enroll-input,
.pgp-obs-enroll-card .wpcf7 .pgp-enroll-input {
	width: 100%;
	box-sizing: border-box;
	padding: 0.85rem 1rem;
	border-radius: 0.75rem;
	border: 1px solid rgba(43, 74, 53, 0.12);
	background: var(--wp--preset--color--base);
	font: inherit;
	color: var(--wp--preset--color--bosque);
}

.pgp-obs-enroll-card .pgp-enroll-input:focus,
.pgp-obs-enroll-card .wpcf7 .pgp-enroll-input:focus {
	outline: 2px solid var(--wp--preset--color--mora);
	outline-offset: 2px;
	border-color: transparent;
}

.pgp-obs-enroll-card .pgp-enroll-check,
.pgp-obs-enroll-card .wpcf7 .pgp-enroll-check {
	margin: 0;
}

.pgp-obs-enroll-card .wpcf7 .wpcf7-list-item {
	margin: 0;
}

.pgp-obs-enroll-card .wpcf7 .wpcf7-list-item-label {
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.5;
	color: var(--wp--preset--color--bosque);
}

.pgp-obs-enroll-card .wpcf7 .pgp-enroll-submit {
	width: 100%;
	padding: 1rem 1.25rem;
	border: 0;
	border-radius: 0.75rem;
	font-weight: 700;
	font-size: 1.05rem;
	cursor: pointer;
	background: var(--wp--preset--color--bosque);
	color: var(--wp--preset--color--manzana);
	transition: filter 0.18s ease;
}

.pgp-obs-enroll-card .wpcf7 .pgp-enroll-submit:hover {
	filter: brightness(1.08);
}

@media (max-width: 600px) {
	.pgp-obs-enroll-card .pgp-enroll-fields [style*="grid-template-columns:repeat(2"] {
		grid-template-columns: 1fr !important;
	}
}

/* CTA resultados calculadora: ocultar popup temporal y mostrar ancla a #observatorio */
#results-section .pgp-obs-open-lead {
	display: none !important;
}

#results-section .pgp-obs-cta-enroll {
	display: block;
	width: 100%;
	padding: 0.85rem;
	border: 0;
	border-radius: 0.65rem;
	font-weight: 700;
	cursor: pointer;
	background: var(--wp--preset--color--manzana);
	color: var(--wp--preset--color--bosque);
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
}

#results-section .pgp-obs-cta-enroll:hover {
	filter: brightness(0.92);
}

#pgp-obs-lead-dialog::backdrop {
	background: color-mix(in srgb, var(--wp--preset--color--bosque) 75%, transparent);
	backdrop-filter: blur(6px);
}

#pgp-obs-lead-dialog.pgp-obs-dialog {
	max-width: 32rem;
	width: calc(100% - 2rem);
	border: none;
	border-radius: 2.5rem;
	padding: 0;
	box-shadow: var(--wp--preset--shadow--lg);
	color: var(--wp--preset--color--bosque);
}

.pgp-obs-dialog__inner {
	position: relative;
	padding: 2.25rem 2rem 2rem;
	border-radius: 2.5rem;
	background: var(--wp--preset--color--base);
}

.pgp-obs-dialog-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	border: 0;
	background: transparent;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	opacity: 0.35;
	color: inherit;
}

.pgp-obs-dialog-close:hover {
	opacity: 0.7;
}

.pgp-obs-dialog__intro {
	text-align: center;
	margin-bottom: 1.25rem;
}

.pgp-obs-dialog__icon {
	font-size: 2rem;
	margin: 0 0 0.5rem;
}

.pgp-obs-dialog__title {
	font-family: var(--wp--preset--font-family--unbounded);
	font-size: var(--wp--preset--font-size--2-xl);
	font-weight: 800;
	margin: 0 0 0.5rem;
	line-height: 1.2;
}

.pgp-obs-dialog__lead {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.55;
	opacity: 0.7;
}

.pgp-obs-dialog__form {
	margin-top: 0.25rem;
}

/* Lead popup CF7: placeholders con icono (sin labels en plantilla). */
.pgp-obs-dialog__form .wpcf7 input.pgp-lead-name,
.pgp-obs-dialog__form .wpcf7 input.pgp-lead-role,
.pgp-obs-dialog__form .wpcf7 input.pgp-lead-email {
	padding-left: 2.75rem;
	background-color: var(--wp--preset--color--nube);
	background-repeat: no-repeat;
	background-position: 0.85rem 50%;
	background-size: 1.15rem 1.15rem;
	border: none;
	border-radius: var(--wp--custom--radius--md);
}

.pgp-obs-dialog__form .wpcf7 input.pgp-lead-name {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%232B4A35' stroke-opacity='0.22' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='7' r='3'/%3E%3Cpath d='M4.5 17.5v-.5a5.5 5.5 0 0 1 11 0v.5'/%3E%3C/svg%3E");
}

.pgp-obs-dialog__form .wpcf7 input.pgp-lead-role {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%232B4A35' stroke-opacity='0.22' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='7' width='13' height='9.5' rx='1'/%3E%3Cpath d='M7 7V5.5A3 3 0 0 1 10 2.5h0A3 3 0 0 1 13 5.5V7'/%3E%3C/svg%3E");
}

.pgp-obs-dialog__form .wpcf7 input.pgp-lead-email {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%232B4A35' stroke-opacity='0.22' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.5' width='15' height='11' rx='1'/%3E%3Cpath d='m2.5 5.5 7.5 5.5 7.5-5.5'/%3E%3C/svg%3E");
}

/* Checkbox de aceptación: texto normal (no estilo label de campo). */
.pgp-obs-dialog__form .wpcf7 .wpcf7-acceptance .wpcf7-list-item label,
.pgp-obs-dialog__form .wpcf7 span.wpcf7-list-item-label {
	display: inline;
	font-size: 0.7rem;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	line-height: 1.45;
	opacity: 0.85;
	margin-bottom: 0;
	color: inherit;
}

.pgp-obs-dialog__form .wpcf7 .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.pgp-obs-dialog__form .wpcf7 .wpcf7-submit.pgp-lead-submit,
.pgp-obs-dialog__form .wpcf7 input.pgp-lead-submit {
	width: 100%;
	padding-top: 1.1rem;
	padding-bottom: 1.1rem;
	font-size: 1.05rem;
	font-weight: 700;
	border-radius: var(--wp--custom--radius--md);
	background-color: var(--wp--preset--color--bosque);
	color: var(--wp--preset--color--manzana);
}

.pgp-obs-dialog__form .wpcf7 .wpcf7-submit.pgp-lead-submit:hover,
.pgp-obs-dialog__form .wpcf7 input.pgp-lead-submit:hover {
	filter: brightness(1.05);
}

.pgp-obs-dialog__foot {
	margin: 1.25rem 0 0;
	font-size: 0.68rem;
	font-weight: 700;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 0.75rem;
	border-radius: var(--wp--custom--radius--md);
	background: rgba(231, 248, 190, 0.35);
	color: var(--wp--preset--color--bosque);
}

.pgp-obs-enroll-card {
	box-shadow: var(--wp--preset--shadow--lg);
}

.pgp-obs-type {
	cursor: pointer;
	transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.pgp-obs-type:not(.is-active):hover {
	border-color: rgba(43, 74, 53, 0.2) !important;
}

.pgp-obs-type:active {
	transform: scale(0.98);
}

@media (min-width: 960px) {
	.pgp-obs-chart-grid {
		grid-template-columns: 1fr 320px !important;
	}
}

/* Observatorio — mapa de rentabilidad (patrón estable para el editor de bloques) */
.pgp-obs-insight-card {
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: var(--wp--custom--radius--xl);
}

.pgp-obs-insight-icon {
	margin: 0 0 1rem;
	font-size: var(--wp--preset--font-size--2-xl);
	line-height: 1;
	color: var(--wp--preset--color--manzana);
}

.pgp-obs-insight-card__body {
	margin: 0;
	opacity: 0.65;
}

.pgp-obs-tag {
	display: inline-block;
	margin: 0;
	padding: 0.5rem 1rem;
	border-radius: var(--wp--custom--radius--pill);
	border: 1px solid rgba(231, 248, 190, 0.35);
}

/* ── Landing Clicks-to-Bricks (plantilla clicks-to-bricks) ─────────────── */

.wp-site-blocks > main.pgp-main--clicks-to-bricks {
	margin-block-start: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: none;
	width: 100%;
	position: relative;
	background-color: var(--wp--preset--color--nube);
	color: var(--wp--preset--color--bosque);
}

.wp-site-blocks > main.pgp-main--clicks-to-bricks::before {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	opacity: 0.3;
	background-image: radial-gradient(rgba(43, 74, 53, 0.05) 1px, transparent 1px);
	background-size: 24px 24px;
}

main.pgp-main--clicks-to-bricks.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
main.pgp-main--clicks-to-bricks > .wp-block-template-part {
	max-width: none !important;
	width: 100%;
	position: relative;
	z-index: 1;
}

.pgp-bi-section {
	padding: clamp(3rem, 8vw, 5rem) clamp(1.25rem, 4vw, 1.5rem);
}

.pgp-bi-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.5rem;
	margin: 0 0 1rem;
	border-radius: 0.25rem;
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	background: var(--wp--preset--color--manzana);
	color: var(--wp--preset--color--bosque);
}

.pgp-bi-hero__inner {
	width: 100%;
	max-width: 1152px;
	margin-inline: auto;
}

.pgp-bi-hero__inner > .pgp-bi-badge {
	display: inline-flex;
	width: max-content;
	max-width: 100%;
	margin-left: 0;
	margin-right: auto;
}

/* Oculto de momento: menú interno por secciones (revisar antes de publicar). */
.pgp-bi-nav-wrap {
	display: none !important;
}

.pgp-bi-nav-wrap {
	position: sticky;
	top: 0;
	z-index: 40;
	border-bottom: 1px solid rgba(43, 74, 53, 0.1);
	background-color: color-mix(in srgb, var(--wp--preset--color--nube) 88%, transparent);
	backdrop-filter: blur(8px);
}

.admin-bar .pgp-bi-nav-wrap {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.pgp-bi-nav__inner {
	max-width: 72rem;
	margin: 0 auto;
	padding: 1rem 1.5rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
}

.pgp-bi-nav__links {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: clamp(1rem, 3vw, 2rem);
	flex: 1 1 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding-bottom: 0.15rem;
}

.pgp-bi-nav__links::-webkit-scrollbar {
	display: none;
}

@media (min-width: 1024px) {
	.pgp-bi-nav__links {
		flex: 1 1 auto;
		border-left: 1px solid rgba(43, 74, 53, 0.1);
		padding-left: 2rem;
		overflow: visible;
	}
}

.pgp-bi-nav__link {
	border: 0;
	background: transparent;
	cursor: pointer;
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(43, 74, 53, 0.4);
	display: inline-flex;
	align-items: baseline;
	gap: 0.35rem;
	padding: 0;
	font-family: inherit;
	text-decoration: none;
	white-space: nowrap;
	flex-shrink: 0;
	transition: color 0.15s ease;
}

.pgp-bi-nav__link:hover,
.pgp-bi-nav__link.is-active,
.pgp-bi-nav__link:focus-visible {
	color: var(--wp--preset--color--mora);
	outline: none;
}

.pgp-bi-nav__num {
	font-size: 0.5rem;
	opacity: 0.4;
}

.pgp-bi-nav__tag {
	display: none;
	margin: 0;
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 0.4;
	flex-shrink: 0;
}

@media (min-width: 768px) {
	.pgp-bi-nav__tag {
		display: block;
	}
}

.pgp-bi-nav__cta {
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	cursor: pointer;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.5rem 1rem;
	background: var(--wp--preset--color--bosque);
	color: var(--wp--preset--color--manzana);
	font-family: inherit;
	flex-shrink: 0;
	transition: background-color 0.15s ease;
}

.pgp-bi-nav__cta:hover,
.pgp-bi-nav__cta:focus-visible {
	background: var(--wp--preset--color--mora);
	outline: none;
}

.pgp-bi-hero__title {
	font-family: var(--wp--preset--font-family--unbounded);
	font-size: clamp(2.5rem, 8vw, 5.5rem);
	font-weight: 700;
	line-height: 1.15;
	text-transform: uppercase;
	letter-spacing: -0.02em;
	margin: 0 0 2rem;
}

.pgp-bi-hero__grid {
	display: grid;
	gap: 2rem;
	padding-top: 2rem;
	border-top: 1px solid rgba(43, 74, 53, 0.1);
}

@media (min-width: 768px) {
	.pgp-bi-hero__grid {
		grid-template-columns: 1fr 1fr;
		gap: 3rem;
	}
}

.pgp-bi-hero__quote {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 300;
	font-style: italic;
	line-height: 1.6;
	opacity: 0.85;
}

.pgp-bi-hero__lead {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	opacity: 0.7;
	line-height: 1.65;
}

.pgp-bi-hero__stats {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.pgp-bi-hero__stats li {
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	display: flex;
	align-items: center;
	gap: 0.25rem;
}

.pgp-bi-icon {
	color: var(--wp--preset--color--mora);
}

.pgp-bi-section-header {
	margin-bottom: 3rem;
}

.pgp-bi-section-header__row {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	margin-bottom: 0.5rem;
}

.pgp-bi-section-num {
	font-family: var(--wp--preset--font-family--unbounded);
	font-size: 0.875rem;
	color: var(--wp--preset--color--mora);
	opacity: 0.5;
	flex-shrink: 0;
}

.pgp-bi-section-title {
	font-family: var(--wp--preset--font-family--unbounded);
	font-size: clamp(1.75rem, 4vw, 3rem);
	font-weight: 700;
	line-height: 0.9;
	text-transform: uppercase;
	margin: 0;
}

.pgp-bi-section-sub {
	margin: 1rem 0 0;
	max-width: 36rem;
	font-weight: 300;
	opacity: 0.6;
	line-height: 1.6;
}

.pgp-bi-halo-grid {
	display: grid;
	gap: 3rem;
}

@media (min-width: 1024px) {
	.pgp-bi-halo-grid {
		grid-template-columns: 7fr 5fr;
		align-items: start;
	}
}

.pgp-bi-chart-card {
	background: #fff;
	border: 1px solid rgba(43, 74, 53, 0.1);
	padding: 2rem;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.pgp-bi-chart-card__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 2rem;
}

.pgp-bi-chart-card__label {
	margin: 0 0 0.25rem;
	font-size: 0.75rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.pgp-bi-chart-card__hint {
	margin: 0;
	font-size: 0.625rem;
	opacity: 0.4;
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

.pgp-bi-chart-card__icon {
	color: var(--wp--preset--color--mora);
	font-size: 1.25rem;
}

.pgp-bi-bar-chart__bars {
	display: flex;
	align-items: flex-end;
	gap: 0.35rem;
	height: 16rem;
	padding: 0 0.5rem;
	border-bottom: 1px solid rgba(43, 74, 53, 0.2);
}

.pgp-bi-bar {
	flex: 1;
	min-width: 12px;
	height: 0;
	background: rgba(43, 74, 53, 0.2);
	position: relative;
	transition: height 0.5s ease;
	transition-delay: calc(var(--pgp-bi-i, 0) * 0.05s);
}

.pgp-bi-bar-chart__bars.is-animated .pgp-bi-bar {
	height: var(--pgp-bi-h, 20%);
}

.pgp-bi-bar--highlight {
	background: var(--wp--preset--color--mora);
}

.pgp-bi-bar--highlight::after {
	content: attr(data-label);
	position: absolute;
	top: -2.5rem;
	left: 50%;
	transform: translateX(-50%);
	background: var(--wp--preset--color--bosque);
	color: #fff;
	font-size: 0.5rem;
	padding: 0.2rem 0.4rem;
	white-space: nowrap;
}

.pgp-bi-bar-chart__axis {
	display: flex;
	justify-content: space-between;
	margin-top: 1rem;
	font-size: 0.5625rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	opacity: 0.3;
}

.pgp-bi-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.875rem;
}

.pgp-bi-table thead {
	background: var(--wp--preset--color--bosque);
	color: var(--wp--preset--color--nube);
}

.pgp-bi-table th {
	padding: 1rem;
	font-size: 0.625rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	text-align: left;
}

.pgp-bi-table th:last-child {
	text-align: center;
}

.pgp-bi-table td {
	padding: 1rem;
	border-top: 1px solid rgba(43, 74, 53, 0.1);
}

.pgp-bi-table tbody tr:hover {
	background: rgba(231, 248, 190, 0.3);
}

.pgp-bi-table__val {
	text-align: center;
	font-family: var(--wp--preset--font-family--unbounded);
	color: var(--wp--preset--color--mora);
}

.pgp-bi-table-wrap {
	border: 1px solid rgba(43, 74, 53, 0.1);
	overflow: hidden;
}

.pgp-bi-insight {
	margin: 1.5rem 0 0;
	font-size: 0.875rem;
	font-weight: 300;
	line-height: 1.65;
}

.pgp-bi-insight__label {
	color: var(--wp--preset--color--mora);
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

#ropo .pgp-bi-ropo-grid {
	display: grid;
	gap: 2rem;
	align-items: stretch;
}

@media (min-width: 768px) {
	#ropo .pgp-bi-ropo-grid {
		grid-template-columns: 1fr 1fr;
	}
}

.pgp-bi-ropo-card {
	box-sizing: border-box;
}

#ropo .pgp-bi-ropo-card--dark {
	background-color: var(--wp--preset--color--bosque) !important;
	color: #f8f4f0 !important;
	padding: 2.5rem;
	position: relative;
	min-height: 100%;
}

#ropo .pgp-bi-ropo-card__title {
	margin: 0 0 2rem;
	font-size: 1.25rem;
	font-weight: 700;
	text-transform: uppercase;
	color: #f8f4f0;
}

#ropo .pgp-bi-metric {
	display: block;
	margin: 0 0 2rem;
}

#ropo .pgp-bi-metric:last-child {
	margin-bottom: 0;
}

#ropo .pgp-bi-metric__value {
	display: block;
	margin: 0 0 0.35rem;
	padding: 0;
	color: #e7f8be;
	font-family: var(--wp--preset--font-family--unbounded);
	font-size: clamp(2rem, 5vw, 2.5rem);
	font-weight: 700;
	line-height: 1;
}

#ropo .pgp-bi-metric__label {
	display: block;
	margin: 0;
	padding: 0;
	color: #f8f4f0;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 0.6;
}


#ropo .pgp-bi-section-sub,
#ropo .pgp-bi-section-title {
	color: var(--wp--preset--color--bosque);
}

.pgp-bi-ropo-card--light {
	border: 1px solid rgba(43, 74, 53, 0.1);
	padding: 2.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.pgp-bi-ropo-card__text {
	margin: 0 0 1.5rem;
	font-size: 1.125rem;
	font-weight: 300;
	line-height: 1.65;
}

.pgp-bi-ropo-card__source {
	margin: 0;
	font-size: 0.75rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--mora);
}

.pgp-bi-benchmarks-grid {
	display: grid;
	gap: 1px;
	background: rgba(43, 74, 53, 0.1);
}

.pgp-bi-benchmarks-grid > .wp-block-column {
	background: #fff;
}

@media (min-width: 768px) {
	.pgp-bi-benchmarks-grid {
		grid-template-columns: 1fr 1fr;
	}
}

.pgp-bi-benchmark-card {
	background: #fff;
	padding: 2.5rem;
	transition: background-color 0.15s ease;
}

.pgp-bi-benchmark-card > .wp-block-heading {
	min-height: 2.6em;
	line-height: 1.3;
	margin: 0 0 1rem;
}

.pgp-bi-benchmark-card:hover {
	background: var(--wp--preset--color--nube);
}

.pgp-bi-benchmark-card__title {
	font-family: var(--wp--preset--font-family--unbounded);
	font-size: 1.5rem;
	margin: 0 0 1rem;
}

.pgp-bi-benchmark-card__region {
	font-size: 0.625rem;
	opacity: 0.4;
	vertical-align: middle;
	margin-left: 0.5rem;
}

.pgp-bi-benchmark-card__text {
	margin: 0 0 1.5rem;
	font-size: 0.875rem;
	font-weight: 300;
	line-height: 1.6;
}

.pgp-bi-benchmark-card__result {
	padding: 1rem;
	border-left: 4px solid;
}

.pgp-bi-benchmark-card__result--mora {
	background: rgba(146, 104, 248, 0.1);
	border-color: var(--wp--preset--color--mora);
}

.pgp-bi-benchmark-card__result--bosque {
	background: rgba(43, 74, 53, 0.05);
	border-color: var(--wp--preset--color--bosque);
}

.pgp-bi-benchmark-card__result-label {
	margin: 0 0 0.25rem;
	font-size: 0.75rem;
	font-weight: 800;
}

.pgp-bi-benchmark-card__result--mora .pgp-bi-benchmark-card__result-label {
	color: var(--wp--preset--color--mora);
}

.pgp-bi-predict-grid {
	display: grid;
	gap: 2rem;
	margin-bottom: 4rem;
}

@media (min-width: 1024px) {
	.pgp-bi-predict-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.pgp-bi-predict-card {
	padding: 2rem;
	border: 1px solid rgba(43, 74, 53, 0.1);
	transition: border-color 0.15s ease;
}

.pgp-bi-predict-card:hover {
	border-color: rgba(146, 104, 248, 0.3);
}

.pgp-bi-predict-card__icon {
	display: block;
	color: var(--wp--preset--color--mora);
	font-size: 1.5rem;
	margin-bottom: 1.5rem;
}

.pgp-bi-predict-card__title {
	font-family: var(--wp--preset--font-family--unbounded);
	font-size: 1.125rem;
	margin: 0 0 1rem;
}

.pgp-bi-predict-card__text {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 300;
	opacity: 0.7;
	line-height: 1.6;
}

.pgp-bi-quote-block {
	margin: 0;
	padding: 3rem;
	background: #fff;
	border: 2px solid var(--wp--preset--color--bosque);
	position: relative;
}

.pgp-bi-quote-block__text {
	margin: 0 0 2rem;
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	font-weight: 300;
	font-style: italic;
	line-height: 1.45;
	max-width: 40rem;
}

.pgp-bi-quote-block__attr {
	margin: 0;
	padding-left: 1rem;
	border-left: 3px solid var(--wp--preset--color--mora);
	font-size: 0.625rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.2em;
}

.pgp-bi-cta {
	background: var(--wp--preset--color--bosque);
	color: var(--wp--preset--color--nube);
	padding: clamp(3rem, 8vw, 6rem) 2rem;
	text-align: center;
	position: relative;
	overflow: hidden;
}

.pgp-bi-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.1;
	background-image: radial-gradient(rgba(248, 244, 240, 0.15) 1px, transparent 1px);
	background-size: 24px 24px;
}

.pgp-bi-cta > * {
	position: relative;
	z-index: 1;
}

.pgp-bi-cta__inner {
	position: relative;
	z-index: 1;
	max-width: 40rem;
	margin: 0 auto;
}

.pgp-bi-cta-wrap {
	position: relative;
	z-index: 2;
}

.pgp-bi-cta .wp-block-buttons,
.pgp-bi-cta .wp-block-button.pgp-bi-open-lead {
	position: relative;
	z-index: 2;
}

.pgp-bi-cta .pgp-bi-cta__title,
.pgp-bi-cta .wp-block-heading {
	color: var(--wp--preset--color--nube) !important;
}

.pgp-bi-cta .has-text-align-center.has-lg-font-size {
	color: var(--wp--preset--color--nube);
}

.pgp-bi-cta__title {
	font-family: var(--wp--preset--font-family--unbounded);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 700;
	line-height: 1.1;
	text-transform: uppercase;
	margin: 0 0 2rem;
}

.pgp-bi-cta__lead {
	margin: 0 0 3rem;
	font-size: 1.25rem;
	font-weight: 300;
	opacity: 0.8;
	line-height: 1.5;
}

.pgp-bi-cta__btn {
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	padding: 1.5rem 2rem;
	background: var(--wp--preset--color--manzana);
	color: var(--wp--preset--color--bosque);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-family: inherit;
	transition: transform 0.15s ease, background-color 0.15s ease;
}

.pgp-bi-cta__btn:hover {
	background: #fff;
	transform: translateY(-2px);
}

.pgp-bi-cta__actions {
	position: relative;
	z-index: 2;
	margin-top: var(--wp--preset--spacing--2xl);
	text-align: center;
}

.pgp-bi-cta__actions .pgp-bi-cta__btn {
	position: relative;
	z-index: 2;
	pointer-events: auto;
}

.pgp-bi-cta__actions .wp-block-button__link {
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem 2rem;
	background: var(--wp--preset--color--manzana);
	color: var(--wp--preset--color--bosque) !important;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform 0.15s ease, background-color 0.15s ease;
}

.pgp-bi-cta__actions .wp-block-button__link:hover {
	background: #fff !important;
	transform: translateY(-2px);
}

.pgp-bi-dialog__error {
	margin: 0;
	color: var(--wp--preset--color--mora);
	font-size: 0.875rem;
}

#pgp-bi-lead-dialog::backdrop {
	background: color-mix(in srgb, var(--wp--preset--color--bosque) 60%, transparent);
	backdrop-filter: blur(4px);
}

#pgp-bi-lead-dialog.pgp-bi-dialog {
	max-width: 36rem;
	width: calc(100% - 2rem);
	border: none;
	padding: 0;
	box-shadow: var(--wp--preset--shadow--lg);
	color: var(--wp--preset--color--bosque);
	margin: auto;
}

/* Fallback si showModal() no está disponible */
#pgp-bi-lead-dialog.is-open {
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 1rem;
	box-sizing: border-box;
	background: color-mix(in srgb, var(--wp--preset--color--bosque) 60%, transparent);
	z-index: 100000;
}

#pgp-bi-lead-dialog.is-open .pgp-bi-dialog__inner {
	max-width: 36rem;
	width: 100%;
}

html.pgp-bi-lead-dialog-open {
	overflow: hidden;
}

.pgp-bi-dialog__inner {
	position: relative;
	padding: 2rem 2rem 2.5rem;
	background: var(--wp--preset--color--nube);
	border: 1px solid rgba(43, 74, 53, 0.1);
}

.pgp-bi-dialog-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	border: 0;
	background: transparent;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	opacity: 0.4;
	color: inherit;
}

.pgp-bi-dialog-close:hover {
	opacity: 0.8;
}

.pgp-bi-dialog__title {
	font-family: var(--wp--preset--font-family--unbounded);
	font-size: var(--wp--preset--font-size--2-xl);
	margin: 0 0 0.5rem;
}

.pgp-bi-dialog__lead {
	margin: 0 0 1.5rem;
	font-size: 0.75rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	opacity: 0.6;
}

.pgp-bi-dialog__form .wpcf7 input.pgp-bi-lead-name,
.pgp-bi-dialog__form .wpcf7 input.pgp-bi-lead-company,
.pgp-bi-dialog__form .wpcf7 input.pgp-bi-lead-email {
	width: 100%;
	box-sizing: border-box;
	padding: 0.75rem;
	border: 1px solid rgba(43, 74, 53, 0.1);
	background: #fff;
	font: inherit;
}

.pgp-bi-dialog__form .wpcf7 input:focus {
	border-color: var(--wp--preset--color--mora);
	outline: none;
}

.pgp-bi-dialog__form .wpcf7 .wpcf7-submit {
	width: 100%;
	margin-top: 1rem;
	padding: 1.25rem;
	background: var(--wp--preset--color--bosque);
	color: var(--wp--preset--color--manzana);
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	font-weight: 800;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	font-size: 0.75rem;
	cursor: pointer;
}

.pgp-bi-dialog__form .wpcf7 .wpcf7-submit:hover {
	background: var(--wp--preset--color--mora);
}