/* =====================================================================
   psicologa-pe-child — components.css
   Custom CSS for the parts of the design that Kadence Blocks can't render
   natively. Tokens come from theme.json (--wp--preset--*). Class names use
   .psi- prefix to namespace away from core/Kadence.
   ===================================================================== */

/* ---------- Brand palette — locked hex values --------------------------
 * Kept as direct hex (not var(--wp--preset--*)) because Kadence's parent
 * theme.json overrides child palettes via a runtime filter; depending on
 * the merged palette would let it silently break our design.            */
:root {
	--psi-c-primary:        #0F6E56;
	--psi-c-primary-deep:   #094D3B;
	--psi-c-primary-tint:   #E6F0EB;
	--psi-c-cta:            #D85A30;
	--psi-c-cta-hover:      #B84A20;
	--psi-c-whatsapp:       #25D366;
	--psi-c-whatsapp-deep:  #1FB955;
	--psi-c-cream-1:        #F1EFE8;
	--psi-c-cream-2:        #FAEEDA;
	--psi-c-footer:         #2D3D3A;
	--psi-c-text:           #1A2624;
	--psi-c-text-muted:     #5A6B68;
	--psi-c-text-on-dark:   #C9DDD3;
	--psi-c-text-kicker:    #9CC4B7;
	--psi-c-bg:             #FFFFFF;
	--psi-c-border:         #E2DFD5;
	--psi-c-border-strong:  #C8C3B5;

	--psi-r-sm: 6px;
	--psi-r-md: 8px;
	--psi-r-lg: 12px;
	--psi-r-xl: 14px;
	--psi-r-2xl: 16px;
	--psi-r-3xl: 20px;
	--psi-r-pill: 999px;

	--psi-shadow-card:    0 1px 2px rgba(26, 38, 36, 0.04), 0 4px 12px rgba(26, 38, 36, 0.06);
	--psi-shadow-raised:  0 2px 4px rgba(26, 38, 36, 0.05), 0 12px 28px rgba(26, 38, 36, 0.08);
	--psi-shadow-sticky:  0 6px 20px rgba(26, 38, 36, 0.18);

	--psi-tap: 44px;
	--psi-container-pad: 20px;
	--psi-ease: cubic-bezier(.2, .0, .2, 1);
	--psi-dur-fast: 120ms;
	--psi-dur-base: 200ms;
}

/* ---------- Base hardening (Kadence resets are mostly fine) ----------- */
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img, svg { max-width: 100%; height: auto; display: block; }

/* Neutralize Kadence's "button" element defaults (teal-bg + white text)
 * for our themed buttons. Each .psi- variant below sets its own bg + color;
 * this strip is just to make Kadence's generic rule lose every cascade. */
.psi-faq__btn,
.psi-lf-chip,
.psi-lf-close,
.psi-site-header__toggle,
.psi-toc-mobile__btn {
	background: transparent;
	background-color: transparent;
	color: var(--psi-c-text);
	box-shadow: none;
	border: 0;
	padding: 0;
	font-family: inherit;
	transition: color var(--psi-dur-base) var(--psi-ease);
}
.psi-faq__btn:hover, .psi-faq__btn:focus, .psi-faq__btn:focus-visible, .psi-faq__btn:active,
.psi-lf-chip:hover, .psi-lf-chip:focus, .psi-lf-chip:focus-visible, .psi-lf-chip:active,
.psi-lf-close:hover, .psi-lf-close:focus, .psi-lf-close:focus-visible, .psi-lf-close:active,
.psi-site-header__toggle:hover, .psi-site-header__toggle:focus, .psi-site-header__toggle:focus-visible, .psi-site-header__toggle:active,
.psi-toc-mobile__btn:hover, .psi-toc-mobile__btn:focus, .psi-toc-mobile__btn:focus-visible, .psi-toc-mobile__btn:active {
	background: transparent;
	background-color: transparent;
	box-shadow: none;
}

/* Container — narrower than Kadence default; enforces 1120px design max. */
.psi-container,
.psi-section > .psi-container {
	width: 100%;
	max-width: 1120px;
	margin-inline: auto;
	padding-inline: var(--psi-container-pad);
	box-sizing: border-box;
}

/* Section base — sets default vertical rhythm. */
.psi-section { padding-block: 88px; }
.psi-section--tight { padding-block: 56px; }
.psi-section--cream { background: var(--psi-c-cream-1); }
.psi-section--cream-2 { background: var(--psi-c-cream-2); }
.psi-section--white { background: var(--psi-c-bg); }
.psi-section--tint { background: var(--psi-c-primary-tint); }
.psi-section--primary { background: var(--psi-c-primary); color: #fff; }
.psi-section--deep { background: var(--psi-c-primary-deep); color: #fff; }

/* ---------- Buttons ---------------------------------------------------- */
.psi-btn,
.psi-btn-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: var(--psi-tap);
	padding: 14px 24px;
	background: var(--psi-c-cta);
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	border: 0;
	border-radius: var(--psi-r-md);
	text-decoration: none;
	cursor: pointer;
	transition: background var(--psi-dur-base) var(--psi-ease);
}
.psi-btn:hover, .psi-btn:focus-visible,
.psi-btn-cta:hover, .psi-btn-cta:focus-visible {
	background: var(--psi-c-cta-hover);
	color: #fff;
}
.psi-btn:focus-visible, .psi-btn-cta:focus-visible {
	outline: 3px solid rgba(216, 90, 48, 0.35);
	outline-offset: 2px;
}
@media (min-width: 768px) {
	.psi-btn-cta { padding: 16px 32px; font-size: 17px; }
}

.psi-btn-ghost {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: var(--psi-tap);
	padding: 13px 22px;
	background: transparent;
	color: var(--psi-c-primary);
	font-weight: 500;
	font-size: 16px;
	border: 1px solid var(--psi-c-primary);
	border-radius: var(--psi-r-md);
	text-decoration: none;
	cursor: pointer;
}
.psi-btn-ghost:hover { background: var(--psi-c-primary-tint); color: var(--psi-c-primary-deep); }

.psi-btn-whatsapp,
.btn-whatsapp {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: var(--psi-tap);
	padding: 12px 20px;
	background: var(--psi-c-whatsapp);
	color: #fff;
	font-weight: 500;
	font-size: 15px;
	border: 0;
	border-radius: var(--psi-r-pill);
	text-decoration: none;
	box-shadow: var(--psi-shadow-sticky);
	transition: background var(--psi-dur-base) var(--psi-ease);
}
.psi-btn-whatsapp:hover, .btn-whatsapp:hover {
	background: var(--psi-c-whatsapp-deep);
	color: #fff;
}

/* ---------- Trust band (small pill in hero / form headers) ----------- */
.psi-trust-band {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--psi-c-primary-deep);
	font-size: 13px;
	font-weight: 500;
	border-radius: var(--psi-r-pill);
	border: 1px solid var(--psi-c-border);
	margin-bottom: 22px;
}

/* ---------- Section opener (kicker + h2 italic accent + lead) -------- */
.psi-section-opener { max-width: 720px; margin-bottom: 36px; }
.psi-kicker {
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--psi-c-text-muted);
	margin-bottom: 14px;
	font-weight: 500;
}
.psi-section--primary .psi-kicker,
.psi-section--deep .psi-kicker { color: var(--psi-c-text-kicker); }

.psi-section-h2 {
	margin: 0;
	font-size: clamp(26px, 1.5vw + 20px, 38px);
	line-height: 1.15;
	letter-spacing: -0.015em;
	font-weight: 500;
	color: var(--psi-c-text);
	text-wrap: balance;
}
.psi-section--primary .psi-section-h2,
.psi-section--deep .psi-section-h2 { color: #fff; }

.psi-italic-accent {
	font-family: var(--wp--preset--font-family--serif-quote);
	font-style: italic;
	font-weight: 400;
}

.psi-lead {
	margin: 14px 0 0;
	font-size: 17px;
	line-height: 1.6;
	color: var(--psi-c-text-muted);
	max-width: 620px;
	text-wrap: pretty;
}
.psi-section--primary .psi-lead,
.psi-section--deep .psi-lead { color: var(--psi-c-text-on-dark); }

/* ---------- Header (sticky, blurred) --------------------------------- */
.psi-site-header {
	position: sticky;
	top: 0;
	z-index: 30;
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--psi-c-border);
}
.psi-site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 64px;
}
.psi-site-header__logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}
.psi-site-header__logo { display: inline-flex; align-items: center; line-height: 0; }
.psi-site-header__logo img,
.psi-site-header__logo svg,
.psi-site-header__logo picture { display: block; height: 40px; width: auto; }
.psi-site-header__logo picture img { height: 40px; width: auto; }
@media (max-width: 480px) {
	.psi-site-header__logo picture img { height: 32px; }
}
.psi-site-header__nav {
	display: none;
	gap: 28px;
	align-items: center;
}
.psi-site-header__nav a {
	color: var(--psi-c-text);
	text-decoration: none;
	font-weight: 400;
	font-size: 15px;
	padding: 10px 4px;
}
.psi-site-header__nav .psi-btn-cta,
.psi-site-header__mobile .psi-btn-cta { padding: 10px 18px; min-height: 0; font-size: 15px; }
/* Force white on the header/mobile-menu CTA — beats Kadence's `.site-header a`
   text-color inheritance so the button matches the hero CTA's white-on-coral. */
.psi-site-header .psi-btn-cta,
.psi-site-header .psi-btn-cta:hover,
.psi-site-header .psi-btn-cta:focus,
.psi-site-header .psi-btn-cta:focus-visible,
.psi-site-header .psi-btn-cta:visited { color: #fff; }
.psi-site-header__toggle {
	background: transparent;
	border: 0;
	padding: 8px;
	cursor: pointer;
	display: inline-flex;
	color: var(--psi-c-text);
}
.psi-site-header__mobile {
	border-top: 1px solid var(--psi-c-border);
	padding: 12px 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.psi-site-header__mobile a {
	color: var(--psi-c-text);
	text-decoration: none;
	font-weight: 400;
	font-size: 15px;
	padding: 10px 4px;
}
@media (min-width: 720px) {
	.psi-site-header__nav { display: flex; }
	.psi-site-header__toggle, .psi-site-header__mobile { display: none !important; }
}

/* ---------- Footer (dark, 4 columns) --------------------------------- */
.psi-site-footer { background: var(--psi-c-footer); color: #C9D1CD; }
.psi-site-footer__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 40px;
	padding-block: 56px 32px;
}
.psi-site-footer__brand {
	font-size: 19px;
	font-weight: 500;
	color: #fff;
	letter-spacing: -0.01em;
}
.psi-site-footer__logo { display: inline-block; line-height: 0; }
.psi-site-footer__logo picture,
.psi-site-footer__logo img { display: block; height: 36px; width: auto; }
.psi-site-footer__logo picture img {
	height: 36px;
	width: auto;
	/* Render the multi-color logo as a pure-white silhouette on the dark footer.
	   brightness(0) flattens to black preserving alpha; invert(1) flips to white. */
	filter: brightness(0) invert(1);
}
@media (max-width: 480px) {
	.psi-site-footer__logo picture img { height: 32px; }
}
.psi-site-footer__brand-tagline {
	font-size: 14px;
	margin-top: 14px;
	color: #9DA8A4;
	line-height: 1.65;
	max-width: 260px;
}
.psi-site-footer h4 {
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	margin: 0 0 14px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.psi-site-footer ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 14px;
}
.psi-site-footer a {
	color: #C9D1CD;
	text-decoration: none;
}
.psi-site-footer a:hover { color: #fff; }
.psi-site-footer__lima-anchor { color: #fff !important; font-weight: 500; }
.psi-site-footer__legal-note { color: #9DA8A4; font-size: 13px; margin-top: 6px; line-height: 1.55; }
.psi-site-footer__bottom {
	padding-block: 22px 32px;
	border-top: 1px solid rgba(255, 255, 255, 0.10);
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	font-size: 13px;
	color: #9DA8A4;
}

/* ---------- Hero (deep teal, photo right) ---------------------------- */
.psi-hero {
	position: relative;
	overflow: hidden;
	background: var(--psi-c-primary);
	color: #fff;
}
.psi-hero--full-bleed { padding-bottom: 0; }
.psi-hero__wash,
.psi-hero__photo-wash {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.psi-hero__wash {
	background:
		radial-gradient(110% 80% at 12% 12%, rgba(255,255,255,0.06) 0%, rgba(0,0,0,0) 55%),
		radial-gradient(80% 70% at 90% 90%, rgba(9, 77, 59, 0.45) 0%, rgba(0,0,0,0) 60%);
}
.psi-hero__photo-wash {
	background-size: cover;
	background-position: center right;
	opacity: 0.30;
}
.psi-hero__gradient {
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, rgba(15,110,86,0.96) 0%, rgba(15,110,86,0.85) 42%, rgba(15,110,86,0.40) 70%, rgba(15,110,86,0.08) 100%);
	pointer-events: none;
}
.psi-hero__inner {
	position: relative;
	padding-block: 48px 56px;
}
.psi-hero--home .psi-hero__inner,
.psi-hero--district .psi-hero__inner { padding-block: 36px 0; }
.psi-hero__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 36px;
	align-items: center;
}
.psi-hero--home .psi-hero__grid,
.psi-hero--district .psi-hero__grid {
	gap: 24px;
	min-height: 540px;
	align-items: start;
}
.psi-hero__copy {
	max-width: 620px;
	position: relative;
	z-index: 2;
}
.psi-hero--home .psi-hero__copy,
.psi-hero--district .psi-hero__copy {
	padding-block: 16px 56px;
	max-width: 600px;
}

.psi-hero__locality {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--psi-c-text-kicker);
	margin-bottom: 14px;
	letter-spacing: 0.02em;
}

.psi-hero__h1 {
	color: #fff;
	font-size: clamp(34px, 4vw + 16px, 52px);
	font-weight: 500;
	line-height: 1.08;
	letter-spacing: -0.02em;
	margin: 0 0 12px;
	text-wrap: balance;
}
.psi-hero--home .psi-hero__h1 {
	font-size: clamp(40px, 5vw + 14px, 70px);
	margin-bottom: 18px;
}

.psi-hero__h2 {
	color: var(--psi-c-primary-tint);
	font-size: 22px;
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: -0.005em;
	margin: 0 0 18px;
	max-width: 560px;
}
.psi-hero__sub {
	color: var(--psi-c-text-on-dark);
	font-size: 17px;
	line-height: 1.6;
	margin: 0 0 22px;
	max-width: 540px;
}
.psi-hero--home .psi-hero__sub {
	color: var(--psi-c-primary-tint);
	font-size: 19px;
	line-height: 1.45;
}

.psi-hero__price-pill {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 16px;
	background: rgba(255,255,255,0.10);
	border: 1px solid rgba(255,255,255,0.20);
	border-radius: var(--psi-r-pill);
	font-size: 14px;
	color: #fff;
	margin-bottom: 22px;
}
.psi-hero__price-pill .psi-divider { color: var(--psi-c-text-kicker); }
.psi-hero__price-pill .psi-modality { color: var(--psi-c-text-on-dark); display: inline-flex; align-items: center; gap: 6px; }

.psi-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.psi-hero__rt {
	font-size: 13px;
	color: var(--psi-c-text-on-dark);
	margin-top: 14px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.psi-hero__photo {
	position: relative;
	overflow: hidden;
	width: 100%;
}
.psi-hero--home .psi-hero__photo,
.psi-hero--district .psi-hero__photo {
	align-self: end;
	justify-self: end;
	max-width: 680px;
	z-index: 1;
	overflow: visible;
}
.psi-hero--home .psi-hero__photo picture,
.psi-hero--district .psi-hero__photo picture { display: block; }
.psi-hero--home .psi-hero__photo img,
.psi-hero--district .psi-hero__photo img {
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: -1px;
}

/* Service hero: woman is full-bleed background. Hero copy gets a stronger
 * teal-toned overlay so white text stays legible across the whole image.
 * AVIF served via image-set; webp fallback for older browsers. */
.psi-hero__photo-wash--service {
	background-image: url("../images/photo-hero-service.webp");
	background-image: image-set(
		url("../images/photo-hero-service.avif") type("image/avif"),
		url("../images/photo-hero-service.webp") type("image/webp")
	);
	background-size: cover;
	background-position: center 30%;
	opacity: 1;
}
.psi-hero__gradient--service {
	background: linear-gradient(100deg,
		rgba(15,110,86,0.92) 0%,
		rgba(15,110,86,0.78) 38%,
		rgba(15,110,86,0.45) 65%,
		rgba(15,110,86,0.18) 100%);
}
@media (max-width: 720px) {
	.psi-hero__gradient--service {
		background: linear-gradient(180deg,
			rgba(15,110,86,0.94) 0%,
			rgba(15,110,86,0.85) 35%,
			rgba(15,110,86,0.65) 100%);
	}
}

@media (min-width: 720px) {
	.psi-hero__h1 { font-size: 60px; }
}
@media (min-width: 900px) {
	.psi-hero__grid { grid-template-columns: 1.4fr 1fr; gap: 56px; }
	.psi-hero--home .psi-hero__grid,
	.psi-hero--district .psi-hero__grid { grid-template-columns: 1fr 1fr; gap: 40px; min-height: 620px; }
	.psi-hero--home .psi-hero__copy,
	.psi-hero--district .psi-hero__copy { padding-block: 32px 64px; }
	.psi-hero--home .psi-hero__photo,
	.psi-hero--district .psi-hero__photo { max-width: 820px; }
}
@media (min-width: 1100px) {
	.psi-hero--home .psi-hero__grid,
	.psi-hero--district .psi-hero__grid { min-height: 680px; }
}
@media (max-width: 899px) {
	.psi-hero--inline-photo .psi-hero__photo { display: none; }
}
@media (max-width: 720px) {
	.psi-hero--home .psi-hero__photo,
	.psi-hero--district .psi-hero__photo { max-width: 520px; margin: 8px auto 0; justify-self: center; }
}
@media (max-width: 600px) {
	.psi-hero__h1 { font-size: 36px; }
	.psi-hero__h2 { font-size: 18px; }
}

/* ---------- Trust strips --------------------------------------------- */
.psi-trust-strip-band {
	background: var(--psi-c-bg);
	border-top: 1px solid var(--psi-c-border);
	border-bottom: 1px solid var(--psi-c-border);
}
.psi-trust-strip-band--service {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	padding-block: 20px;
	min-height: 64px;
}
.psi-trust-strip-band__cpsp {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: var(--psi-c-primary-deep);
	font-size: 15px;
	line-height: 1.5;
	max-width: 720px;
}
.psi-trust-strip-band__cpsp .psi-icon-circle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 999px;
	background: var(--psi-c-primary-tint);
	color: var(--psi-c-primary);
	flex: none;
}
.psi-trust-strip-band__cpsp strong { font-weight: 500; }
.psi-trust-strip-band__verify-link {
	color: var(--psi-c-primary);
	font-size: 14px;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-weight: 500;
}

.psi-trust-strip-grid {
	list-style: none;
	padding: 20px 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}
.psi-trust-strip-grid li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--psi-c-text);
}
.psi-trust-strip-grid li svg { color: var(--psi-c-primary); flex: none; }
@media (min-width: 720px) {
	.psi-trust-strip-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ---------- How-it-works (1 featured card + 2 hairline supporting) --- */
.psi-hiw-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	margin-top: 36px;
	align-items: start;
}
.psi-hiw-featured {
	background: var(--psi-c-primary);
	color: #fff;
	border-radius: 20px;
	padding: 40px 32px;
	position: relative;
	overflow: hidden;
}
.psi-hiw-featured::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(70% 60% at 100% 100%, rgba(255,255,255,0.08) 0%, rgba(0,0,0,0) 60%);
	pointer-events: none;
}
.psi-hiw-featured > * { position: relative; }
.psi-hiw-featured__num,
.psi-hiw-step__num {
	font-family: var(--wp--preset--font-family--serif-quote);
	font-style: italic;
	font-weight: 400;
}
.psi-hiw-featured__num { font-size: 16px; color: var(--psi-c-text-kicker); margin-bottom: 18px; }
.psi-hiw-featured h3 {
	color: #fff;
	margin: 0 0 14px;
	font-size: 28px;
	line-height: 1.2;
	font-weight: 500;
	letter-spacing: -0.01em;
	max-width: 460px;
}
.psi-hiw-featured p { color: var(--psi-c-text-on-dark); margin: 0; font-size: 16px; line-height: 1.65; max-width: 480px; }
.psi-hiw-featured__rt {
	margin-top: 24px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--psi-c-text-kicker);
	font-size: 14px;
}

.psi-hiw-supporting {
	display: flex;
	flex-direction: column;
}
.psi-hiw-step {
	padding: 24px 0;
	border-top: 1px solid var(--psi-c-border);
	display: grid;
	grid-template-columns: 60px 1fr;
	gap: 18px;
	align-items: flex-start;
}
.psi-hiw-step:first-child { border-top: 1px solid var(--psi-c-border-strong); }
.psi-hiw-step:last-child { border-bottom: 1px solid var(--psi-c-border-strong); }
.psi-hiw-step__num { font-size: 22px; color: var(--psi-c-primary); }
.psi-hiw-step h3 {
	margin: 0 0 6px;
	font-size: 19px;
	font-weight: 500;
	letter-spacing: -0.005em;
}
.psi-hiw-step p { margin: 0; color: var(--psi-c-text-muted); font-size: 15.5px; line-height: 1.6; }

@media (min-width: 960px) {
	.psi-hiw-grid { grid-template-columns: 1.05fr 0.95fr; gap: 48px; align-items: stretch; }
	.psi-hiw-featured { padding: 48px 40px; }
}

/* ---------- Specialty mosaic (9 tiles, size variation) --------------- */
.psi-mosaic {
	margin-top: 36px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-auto-rows: 120px;
	gap: 12px;
}
.psi-mosaic__tile {
	display: flex;
	align-items: flex-end;
	padding: 20px;
	border-radius: 14px;
	text-decoration: none;
	font-weight: 500;
	font-size: 17px;
	letter-spacing: -0.005em;
	position: relative;
	overflow: hidden;
}
.psi-mosaic__tile--lg { grid-area: span 2 / span 2; font-size: 24px; }
.psi-mosaic__tile--md { grid-area: span 2 / span 1; }
.psi-mosaic__tile--sm { grid-area: span 1 / span 1; }
.psi-mosaic__tile--primary       { background: var(--psi-c-primary);      color: #fff;                     --psi-tile-color: #fff; }
.psi-mosaic__tile--primary-deep  { background: var(--psi-c-primary-deep); color: #fff;                     --psi-tile-color: #fff; }
.psi-mosaic__tile--tint          { background: var(--psi-c-primary-tint); color: var(--psi-c-primary-deep); --psi-tile-color: var(--psi-c-primary-deep); }
.psi-mosaic__tile--cream-1       { background: var(--psi-c-cream-1);      color: var(--psi-c-text);         --psi-tile-color: var(--psi-c-text); }
.psi-mosaic__tile--cream-2       { background: var(--psi-c-cream-2);      color: var(--psi-c-text);         --psi-tile-color: var(--psi-c-text); }
/* Lock tile color across all interaction states. Kadence parent's global
   a:hover (specificity 0,1,1) otherwise wins over the tone class (0,1,0)
   and recolors labels into invisibility on dark tiles — most visibly on
   --primary-deep (Ansiedad / Estrés laboral) and the lima district tiles. */
.psi-mosaic__tile:hover,
.psi-mosaic__tile:focus,
.psi-mosaic__tile:focus-visible,
.psi-mosaic__tile:active,
.psi-mosaic__tile:visited { color: var(--psi-tile-color, inherit); }
.psi-mosaic__arrow {
	position: absolute;
	top: 16px;
	right: 16px;
	opacity: 0.6;
}
@media (min-width: 900px) {
	.psi-mosaic { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 130px; gap: 14px; }
}

/* ---------- Lima mosaic (geo) ---------------------------------------- */
.psi-mosaic--lima { grid-auto-rows: 110px; }
.psi-mosaic--lima .psi-mosaic__tile {
	background: var(--psi-c-primary-deep);
	color: #fff;
	--psi-tile-color: #fff;
	border: 1px solid rgba(255,255,255,0.10);
}
.psi-mosaic--lima .psi-mosaic__tile--lg { font-size: 26px; }
.psi-mosaic--lima .psi-mosaic__arrow { opacity: 0.7; }
@media (min-width: 900px) {
	.psi-mosaic--lima { grid-auto-rows: 120px; }
}

/* ---------- Lima coverage strip (simpler 7-pill grid for service tpl) - */
.psi-lima-strip {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}
.psi-lima-strip a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 20px 22px;
	min-height: 72px;
	border-radius: var(--psi-r-lg);
	text-decoration: none;
	color: #fff;
	background: var(--psi-c-primary-deep);
	font-weight: 500;
	font-size: 17px;
	letter-spacing: -0.005em;
	border: 1px solid rgba(255,255,255,0.10);
}
@media (min-width: 720px) {
	.psi-lima-strip { grid-template-columns: repeat(4, 1fr); gap: 14px; }
}
.psi-lima-strip__fallback { margin-top: 28px; font-size: 14px; color: var(--psi-c-text-muted); }
.psi-lima-strip__fallback a { color: var(--psi-c-primary); }

/* ---------- Beneficios (1 featured card + 5 hairline supporting) ----- */
.psi-ben-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	margin-top: 8px;
}
.psi-ben-featured {
	background: var(--psi-c-bg);
	border: 1px solid var(--psi-c-border);
	border-radius: 20px;
	padding: 40px 32px;
	position: relative;
	overflow: hidden;
}
.psi-ben-featured__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 999px;
	background: var(--psi-c-primary-tint);
	color: var(--psi-c-primary);
	margin-bottom: 22px;
}
.psi-ben-featured h3 {
	margin: 0 0 12px;
	font-size: 26px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.01em;
	max-width: 520px;
}
.psi-ben-featured p { margin: 0; color: var(--psi-c-text-muted); font-size: 16px; line-height: 1.65; max-width: 560px; }

.psi-ben-supporting { display: flex; flex-direction: column; }
/* When there's no featured card, the supporting rows stand alone full-width. */
.psi-ben-supporting--standalone { margin-top: 8px; }
.psi-ben-row {
	display: grid;
	grid-template-columns: 44px 1fr;
	gap: 18px;
	padding: 24px 0;
	border-top: 1px solid var(--psi-c-border);
	align-items: flex-start;
}
.psi-ben-row:first-child { border-top: 1px solid var(--psi-c-border-strong); }
.psi-ben-row:last-child  { border-bottom: 1px solid var(--psi-c-border-strong); }
.psi-ben-row__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	background: var(--psi-c-bg);
	color: var(--psi-c-primary);
	border: 1px solid var(--psi-c-border);
	flex: none;
}
/* Typography-only row (item supplied no icon) — drop the icon column. */
.psi-ben-row--no-icon { grid-template-columns: 1fr; }
.psi-ben-row h3 { margin: 0 0 6px; font-size: 17px; font-weight: 500; letter-spacing: -0.005em; }
.psi-ben-row p { margin: 0; color: var(--psi-c-text-muted); font-size: 15px; line-height: 1.6; }

@media (min-width: 960px) {
	.psi-ben-grid { grid-template-columns: 1.05fr 0.95fr; gap: 48px; align-items: start; }
}

/* ---------- Cómo es la sesión (deep teal, asymmetric numbered steps) - */
.psi-ses-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 36px;
	margin-top: 12px;
	align-items: flex-start;
}
.psi-ses-featured {
	position: relative;
	padding: 40px 0;
	border-top: 1px solid rgba(255,255,255,0.18);
	border-bottom: 1px solid rgba(255,255,255,0.18);
}
.psi-ses-featured__num {
	font-family: var(--wp--preset--font-family--serif-quote);
	font-style: italic;
	font-size: 16px;
	color: var(--psi-c-text-kicker);
	margin-bottom: 16px;
	font-weight: 400;
}
.psi-ses-featured h3 {
	color: #fff;
	margin: 0 0 14px;
	font-size: 28px;
	line-height: 1.2;
	font-weight: 500;
	letter-spacing: -0.01em;
	max-width: 520px;
}
.psi-ses-featured p { color: var(--psi-c-text-on-dark); margin: 0; font-size: 17px; line-height: 1.65; max-width: 540px; }
.psi-ses-featured__meta {
	margin-top: 24px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--psi-c-text-kicker);
	font-size: 14px;
}
.psi-ses-supporting { display: grid; grid-template-columns: 1fr; gap: 0; }
/* No featured card → the steps stand alone; restore the top hairline + spacing. */
.psi-ses-supporting--standalone { margin-top: 12px; }
.psi-ses-supporting--standalone > .psi-ses-step:first-child { border-top: 1px solid rgba(255,255,255,0.18); }
.psi-ses-step {
	padding: 24px 0;
	border-bottom: 1px solid rgba(255,255,255,0.12);
}
.psi-ses-step:last-child { border-bottom: 1px solid rgba(255,255,255,0.18); }
.psi-ses-step__num {
	font-family: var(--wp--preset--font-family--serif-quote);
	font-style: italic;
	font-size: 14px;
	color: var(--psi-c-text-kicker);
	margin-bottom: 8px;
}
.psi-ses-step h3 { color: #fff; margin: 0 0 6px; font-size: 18px; font-weight: 500; letter-spacing: -0.005em; }
.psi-ses-step p { color: var(--psi-c-text-on-dark); margin: 0; font-size: 15px; line-height: 1.6; max-width: 480px; }

@media (min-width: 960px) {
	.psi-ses-grid { grid-template-columns: 1.1fr 1fr; gap: 56px; }
	.psi-ses-supporting > .psi-ses-step:first-child { border-top: 1px solid rgba(255,255,255,0.18); }
}

/* ---------- Pricing band --------------------------------------------- */
.psi-pricing-band {
	background: var(--psi-c-primary);
	color: #fff;
	border-radius: 20px;
	padding: 32px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	align-items: center;
}
.psi-pricing-band h2 {
	color: #fff;
	margin: 0 0 12px;
	font-size: clamp(28px, 1.5vw + 22px, 38px);
	line-height: 1.15;
	letter-spacing: -0.015em;
	font-weight: 500;
}
.psi-pricing-band p { color: var(--psi-c-text-on-dark); margin: 0; font-size: 16px; line-height: 1.6; max-width: 460px; }
.psi-pricing-band__card {
	background: rgba(255,255,255,0.10);
	border-radius: var(--psi-r-xl);
	padding: 24px;
	border: 1px solid rgba(255,255,255,0.18);
}
.psi-pricing-band__price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	color: #fff;
	margin-bottom: 6px;
}
.psi-pricing-band__price-currency { font-size: 18px; color: var(--psi-c-text-on-dark); font-weight: 400; }
.psi-pricing-band__price-amount { font-size: 56px; font-weight: 500; line-height: 1; letter-spacing: -0.02em; }
.psi-pricing-band__price-meta { font-size: 16px; color: var(--psi-c-text-on-dark); }
.psi-pricing-band__list {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: var(--psi-c-text-on-dark);
	font-size: 14px;
}
.psi-pricing-band__list li { display: flex; align-items: center; gap: 8px; }
.psi-pricing-band .psi-btn-cta {
	display: flex;
	width: 100%;
	box-sizing: border-box;
	padding: 14px 16px;
}
@media (min-width: 768px) {
	.psi-pricing-band { grid-template-columns: 1.2fr 1fr; gap: 56px; padding: 56px; }
}

/* ---------- Testimonials alternating --------------------------------- */
.psi-testi-stack {
	margin-top: 56px;
	display: flex;
	flex-direction: column;
	gap: 56px;
}
.psi-testi-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	align-items: center;
}
.psi-testi-photo {
	width: 100px;
	height: 100px;
	border-radius: 999px;
	background: linear-gradient(160deg, #E6D7B8 0%, #C7A37A 60%, #8B6A4A 100%);
	flex: none;
	border: 1px solid var(--psi-c-border);
}
.psi-testi-photo--alt { background: linear-gradient(160deg, #D9C4A1 0%, #A8895E 60%, #6F5638 100%); }
.psi-testi-photo--alt2 { background: linear-gradient(160deg, #E8D2B5 0%, #B89875 55%, #80604A 100%); }
.psi-testi-quote {
	font-family: var(--wp--preset--font-family--serif-quote);
	font-style: italic;
	font-size: 24px;
	line-height: 1.45;
	color: var(--psi-c-text);
	font-weight: 400;
	margin: 0 0 16px;
	text-wrap: pretty;
}
.psi-testi-meta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--psi-c-text-muted);
}
.psi-testi-meta__name { color: var(--psi-c-text); font-weight: 500; font-size: 15px; }
@media (min-width: 800px) {
	.psi-testi-row { grid-template-columns: 120px 1fr; gap: 32px; max-width: 800px; }
	.psi-testi-row[data-align="right"] { grid-template-columns: 1fr 120px; margin-left: auto; }
	.psi-testi-row[data-align="right"] .psi-testi-photo { grid-column: 2; grid-row: 1; justify-self: flex-end; }
	.psi-testi-row[data-align="right"] .psi-testi-quote-block { grid-column: 1; grid-row: 1; text-align: right; }
	.psi-testi-photo { width: 120px; height: 120px; }
	.psi-testi-quote { font-size: 26px; }
}

/* ---------- FAQ accordion (single-open) ------------------------------ */
.psi-faq { max-width: 820px; margin-top: 32px; }
.psi-faq__item {
	border-bottom: 1px solid var(--psi-c-border-strong);
}
.psi-faq__item:first-child { border-top: 1px solid var(--psi-c-border-strong); }
.psi-faq__btn {
	width: 100%;
	text-align: left;
	padding: 24px 0;
	background: transparent !important;
	border: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	font-family: inherit;
	font-size: 19px;
	font-weight: 500;
	color: var(--psi-c-text);
	min-height: var(--psi-tap);
	letter-spacing: -0.005em;
	transition: color var(--psi-dur-base) var(--psi-ease);
	box-shadow: none !important;
}
.psi-faq__btn,
.psi-faq__btn:visited,
.psi-faq__btn:link,
.psi-faq__btn:active {
	color: var(--psi-c-text) !important;
	background: transparent !important;
}
.psi-faq__btn:hover,
.psi-faq__btn:focus,
.psi-faq__btn:focus-visible {
	color: var(--psi-c-primary) !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: none;
}
.psi-faq__btn .psi-faq__btn-icon { color: var(--psi-c-text-muted); }
.psi-faq__btn:hover .psi-faq__btn-icon,
.psi-faq__btn:focus .psi-faq__btn-icon,
.psi-faq__btn:focus-visible .psi-faq__btn-icon {
	color: var(--psi-c-primary);
}
.psi-faq__btn-icon {
	display: inline-flex;
	width: 20px;
	height: 20px;
	align-items: center;
	justify-content: center;
	color: var(--psi-c-text-muted);
	flex: none;
	transition: color var(--psi-dur-base) var(--psi-ease);
}
.psi-faq__panel {
	padding-bottom: 24px;
	color: var(--psi-c-text-muted);
	font-size: 16px;
	line-height: 1.7;
	max-width: 680px;
}
.psi-faq__item[data-open="false"] .psi-faq__panel { display: none; }

/* ---------- Embedded lead form (left copy + form right) -------------- */
.psi-form-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 28px;
	align-items: start;
}
.psi-form-copy { max-width: 460px; }
.psi-form-copy h2 {
	margin: 0 0 14px;
	font-size: clamp(24px, 1.5vw + 18px, 30px);
	line-height: 1.2;
	font-weight: 500;
	letter-spacing: -0.01em;
}
.psi-form-copy p { margin: 0; color: var(--psi-c-text-muted); font-size: 16px; line-height: 1.6; }
.psi-form-copy ul {
	list-style: none;
	padding: 0;
	margin: 20px 0 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.psi-form-copy li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--psi-c-text);
}
.psi-form-copy li svg { color: var(--psi-c-primary); flex: none; }

@media (min-width: 900px) {
	.psi-form-grid { grid-template-columns: 1fr 460px; gap: 56px; }
}

/* ---------- Long-form intro (N H2+body blocks, editorial register) ---- */
.psi-intro { max-width: 760px; }
.psi-intro h2,
.psi-longform-intro__h2 {
	margin: 0 0 14px;
	font-size: clamp(24px, 1.5vw + 18px, 32px);
	line-height: 1.2;
	font-weight: 500;
	letter-spacing: -0.015em;
	color: var(--psi-c-text);
}
.psi-intro h2 em,
.psi-longform-intro__h2 em {
	font-family: var(--wp--preset--font-family--serif-quote, 'Source Serif 4', Georgia, serif);
	font-style: italic;
	font-weight: 400;
}
.psi-intro h2 + h2 { margin-top: 40px; }
.psi-longform-intro__body + .psi-longform-intro__h2 { margin-top: 40px; }
.psi-intro p,
.psi-longform-intro__body p {
	font-size: 17px;
	line-height: 1.7;
	color: var(--psi-c-text);
	margin: 0 0 20px;
}
.psi-longform-intro__body p:last-child { margin-bottom: 0; }
.psi-longform-intro__body strong { font-weight: 500; color: var(--psi-c-text); }
.psi-longform-intro__cta {
	max-width: 720px;
	margin: 32px auto 0;
	text-align: center;
	font-size: 16px;
	line-height: 1.55;
	color: var(--psi-c-text);
}

/* ---------- Criterios — 3-up equal-weight vetting cards --------------- */
.psi-criterios {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	max-width: 1080px;
	margin: 36px auto 0;
}
.psi-criterios__card {
	background: #fff;
	border: 1px solid var(--psi-c-border);
	border-radius: 16px;
	padding: 26px 24px 22px;
	box-shadow:
		0 1px 2px rgba(26, 38, 36, 0.03),
		0 8px 24px rgba(26, 38, 36, 0.06);
	display: flex;
	flex-direction: column;
}
.psi-criterios__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	background: var(--psi-c-primary);
	color: #fff;
	margin-bottom: 16px;
	flex: none;
}
.psi-criterios__icon svg {
	display: block;
	width: 18px;
	height: 18px;
}
.psi-criterios__label {
	margin: 0 0 8px;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: -0.005em;
	color: var(--psi-c-text);
	line-height: 1.3;
}
.psi-criterios__body {
	margin: 0;
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--psi-c-text-muted);
}
.psi-criterios__cta {
	max-width: 720px;
	margin: 28px auto 0;
	text-align: center;
	font-size: 16px;
	line-height: 1.55;
	color: var(--psi-c-text);
}
@media (min-width: 880px) {
	.psi-criterios--3up { grid-template-columns: 1fr 1fr 1fr; }
	.psi-criterios--2up { grid-template-columns: 1fr 1fr; }
}

/* ---------- Article ---------------------------------------------------- */
.psi-article-shell {
	max-width: 1080px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
}
.psi-article-shell .psi-toc-sidebar { display: none; }
@media (min-width: 1024px) {
	.psi-article-shell {
		grid-template-columns: minmax(0, 1fr) 240px;
		gap: 56px;
		align-items: flex-start;
	}
	.psi-article-shell .psi-toc-sidebar {
		display: block;
		padding-top: 48px;
		position: sticky;
		top: 96px;
		align-self: flex-start;
		padding-left: 20px;
		border-left: 1px solid var(--psi-c-border);
	}
	.psi-article-toc-mobile { display: none; }
}
.psi-article-header {
	background: var(--psi-c-bg);
	padding: 28px 0 20px;
	border-bottom: 1px solid var(--psi-c-border);
}
.psi-article-breadcrumb {
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--psi-c-text-muted);
	margin-bottom: 22px;
	font-weight: 500;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.psi-article-breadcrumb a { color: var(--psi-c-text-muted); text-decoration: none; }
.psi-article-breadcrumb__sep { color: var(--psi-c-border-strong); }
.psi-article-h1 {
	margin: 0 0 18px;
	font-size: clamp(30px, 3vw + 18px, 52px);
	line-height: 1.12;
	letter-spacing: -0.02em;
	font-weight: 500;
	color: var(--psi-c-text);
	text-wrap: balance;
	max-width: 760px;
}
.psi-article-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px;
	font-size: 14px;
	color: var(--psi-c-text-muted);
	padding-bottom: 22px;
	border-bottom: 1px solid var(--psi-c-border);
	margin-bottom: 22px;
}
.psi-article-meta span { display: inline-flex; align-items: center; gap: 6px; }
.psi-article-lede {
	margin: 0;
	font-size: 19px;
	line-height: 1.6;
	color: var(--psi-c-text);
	max-width: 680px;
	text-wrap: pretty;
	font-family: var(--wp--preset--font-family--serif-quote);
	font-weight: 400;
}
.psi-toc-mobile {
	margin-top: 28px;
	border: 1px solid var(--psi-c-border);
	border-radius: var(--psi-r-lg);
	background: var(--psi-c-cream-1);
}
.psi-toc-mobile__btn {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 18px;
	background: transparent;
	border: 0;
	cursor: pointer;
	font-family: inherit;
	font-size: 15px;
	font-weight: 500;
	color: var(--psi-c-text);
	min-height: var(--psi-tap);
	letter-spacing: -0.005em;
}
.psi-toc-mobile__list {
	list-style: none;
	padding: 0 18px 16px;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.psi-toc-mobile__list a {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 6px 0;
	color: var(--psi-c-text);
	text-decoration: none;
	font-size: 15px;
	line-height: 1.4;
}
.psi-toc-num {
	font-family: var(--wp--preset--font-family--serif-quote);
	font-style: italic;
	font-size: 13px;
	color: var(--psi-c-primary);
	min-width: 22px;
	font-weight: 400;
	font-variant-numeric: tabular-nums;
}
.psi-toc-sticky__title {
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--psi-c-text-muted);
	margin-bottom: 14px;
	font-weight: 500;
}
.psi-toc-sticky ol { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.psi-toc-sticky a {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 8px 0;
	text-decoration: none;
	font-size: 14px;
	line-height: 1.4;
	color: var(--psi-c-text-muted);
	transition: color 200ms var(--psi-ease);
}
.psi-toc-sticky a.is-active { color: var(--psi-c-primary); font-weight: 500; }
.psi-toc-sticky a.is-active .psi-toc-num { color: var(--psi-c-primary); }

.psi-article-body { max-width: 720px; padding-block: 48px 80px; }
.psi-article-body h2 {
	margin: 56px 0 16px;
	font-size: clamp(24px, 2vw + 16px, 32px);
	line-height: 1.2;
	font-weight: 500;
	letter-spacing: -0.015em;
	color: var(--psi-c-text);
	scroll-margin-top: 96px;
}
.psi-article-body h3 {
	margin: 32px 0 12px;
	font-size: 19px;
	font-weight: 500;
	letter-spacing: -0.005em;
}
.psi-article-body p { font-size: 17px; line-height: 1.75; color: var(--psi-c-text); margin: 0 0 18px; }
.psi-article-body ul, .psi-article-body ol { padding-left: 22px; margin: 0 0 22px; }
.psi-article-body li { margin-bottom: 8px; line-height: 1.65; }
.psi-article-body blockquote {
	border-left: 3px solid var(--psi-c-primary);
	padding: 4px 0 4px 20px;
	margin: 22px 0;
	font-family: var(--wp--preset--font-family--serif-quote);
	font-style: italic;
	color: var(--psi-c-text);
	font-size: 19px;
	line-height: 1.5;
}
.psi-article-body .psi-callout {
	background: var(--psi-c-primary-tint);
	border-left: 3px solid var(--psi-c-primary);
	padding: 20px 22px;
	margin: 28px 0;
	border-radius: 0 var(--psi-r-md) var(--psi-r-md) 0;
}
.psi-article-body .psi-callout p { margin-bottom: 8px; }
.psi-article-body .psi-callout p:last-child { margin-bottom: 0; }

/* ---------- Related symptoms tiles ----------------------------------- */
.psi-related-grid {
	margin-top: 36px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
}
.psi-related-tile {
	background: var(--psi-c-cream-1);
	border-radius: var(--psi-r-lg);
	padding: 22px;
	text-decoration: none;
	color: var(--psi-c-text);
	display: flex;
	flex-direction: column;
	gap: 6px;
	border: 1px solid var(--psi-c-border);
	transition: background var(--psi-dur-base) var(--psi-ease);
}
.psi-related-tile:hover { background: var(--psi-c-primary-tint); }

/* ---------- Subtle hover treatments (no Kadence shadow flicker) ------ */
.psi-mosaic__tile,
.psi-lima-strip a,
.psi-related-tile,
.psi-btn,
.psi-btn-cta,
.psi-btn-ghost,
.psi-btn-whatsapp,
.psi-faq__btn,
.psi-lf-chip,
.psi-lf-close,
.psi-site-header__toggle {
	box-shadow: none;
}
.psi-mosaic__tile:hover,
.psi-mosaic__tile:focus-visible,
.psi-lima-strip a:hover,
.psi-lima-strip a:focus-visible {
	opacity: 0.92;
	box-shadow: none !important;
	transform: none;
}
.psi-mosaic__tile,
.psi-lima-strip a {
	transition: opacity var(--psi-dur-base) var(--psi-ease);
}
/* WhatsApp sticky keeps its raised shadow regardless of Kadence hover. */
.wa-sticky,
.wa-sticky:hover,
.wa-sticky:focus-visible {
	box-shadow: var(--psi-shadow-sticky) !important;
}
/* Headers / nav links use a soft text-color hover, not a background flash. */
.psi-site-header__nav a,
.psi-site-header__mobile a {
	transition: color var(--psi-dur-base) var(--psi-ease);
}
.psi-site-header__nav a:hover,
.psi-site-header__mobile a:hover {
	color: var(--psi-c-primary);
}
.psi-site-footer a {
	transition: color var(--psi-dur-base) var(--psi-ease);
}
.psi-site-footer a:hover { color: #fff; }
.psi-related-tile h3 { margin: 0; font-size: 17px; font-weight: 500; letter-spacing: -0.005em; }
.psi-related-tile p { margin: 0; color: var(--psi-c-text-muted); font-size: 14px; line-height: 1.55; }
@media (min-width: 720px) {
	.psi-related-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}
@media (min-width: 1024px) {
	.psi-related-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- WhatsApp sticky pill ------------------------------------- */
.wa-sticky {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 90;
	background: var(--psi-c-whatsapp) !important;
	color: #fff !important;
	padding: 12px 18px !important;
	min-height: var(--psi-tap);
	border-radius: var(--psi-r-pill) !important;
	box-shadow: var(--psi-shadow-sticky) !important;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	font-weight: 500;
	font-size: 15px;
}
.wa-sticky:hover { background: var(--psi-c-whatsapp-deep) !important; color: #fff !important; }
.wa-sticky__glyph { width: 22px; height: 22px; }
.wa-sticky__label { display: inline; }
@media (min-width: 720px) {
	.wa-sticky { right: 24px; bottom: 24px; padding: 14px 22px !important; }
}

/* ---------- Form controls (stacked, large tap targets, mobile-first) - */
.psi-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.psi-field label { font-size: 14px; font-weight: 500; color: var(--psi-c-text); }
.psi-field input,
.psi-field select,
.psi-field textarea {
	min-height: var(--psi-tap);
	padding: 12px 14px;
	font-family: inherit;
	font-size: 16px;
	color: var(--psi-c-text);
	background: #fff;
	border: 1px solid var(--psi-c-border-strong);
	border-radius: var(--psi-r-md);
	transition: border-color var(--psi-dur-fast) var(--psi-ease), box-shadow var(--psi-dur-fast) var(--psi-ease);
	box-sizing: border-box;
	width: 100%;
}
.psi-field input:focus,
.psi-field select:focus,
.psi-field textarea:focus {
	outline: 0;
	border-color: var(--psi-c-primary);
	box-shadow: 0 0 0 3px rgba(15, 110, 86, 0.15);
}

/* ---------- Utility --------------------------------------------------- */
.psi-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}
.psi-stack > * + * { margin-top: 16px; }
.psi-mb-0 { margin-bottom: 0 !important; }
.psi-mt-0 { margin-top: 0 !important; }

/* ---------- Header nav: dropdowns + buttons-as-links ----------------- */
.psi-site-header__nav .psi-nav-link {
	color: var(--psi-c-text);
	text-decoration: none;
	font-weight: 400;
	font-size: 15px;
	padding: 10px 4px;
	background: none;
	border: 0;
	cursor: pointer;
	font-family: inherit;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	transition: color var(--psi-dur-base) var(--psi-ease);
}
.psi-site-header__nav .psi-nav-link:hover,
.psi-site-header__nav .psi-nav-link:focus-visible { color: var(--psi-c-primary); }
.psi-nav-caret { font-size: 11px; opacity: 0.7; }
.psi-nav-item { position: relative; }
.psi-nav-item--has-dropdown .psi-dropdown {
	position: absolute;
	top: calc(100% - 4px);
	left: -16px;
	background: #fff;
	border: 1px solid var(--psi-c-border);
	border-radius: 12px;
	box-shadow: 0 12px 32px rgba(15, 24, 22, 0.10), 0 2px 6px rgba(15, 24, 22, 0.06);
	padding: 8px 0;
	min-width: 240px;
	display: none;
	z-index: 100;
}
.psi-nav-item--has-dropdown:hover .psi-dropdown,
.psi-nav-item--has-dropdown:focus-within .psi-dropdown,
.psi-nav-item--has-dropdown .psi-dropdown[data-open="true"] { display: block; }
.psi-dropdown a {
	display: block;
	padding: 10px 20px;
	color: var(--psi-c-text);
	text-decoration: none;
	font-size: 14px;
	line-height: 1.4;
}
.psi-dropdown a:hover,
.psi-dropdown a:focus-visible {
	background: var(--psi-c-primary-tint);
	color: var(--psi-c-primary-deep);
}

/* Mobile nav sub-groups (flat indented under heading). */
.psi-mobile-group { display: flex; flex-direction: column; padding: 4px 0 8px; }
.psi-mobile-group__heading {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--psi-c-text-muted);
	padding: 8px 4px 4px;
}
.psi-site-header__mobile .psi-mobile-group a { padding-left: 12px; font-size: 15px; }

/* ---------- 404 page hero ------------------------------------------------- */
.psi-404-hero {
	padding-block: 64px 32px;
}
.psi-404-hero__inner {
	max-width: 640px;
}
.psi-404-hero h1 em {
	font-family: 'Source Serif 4', Georgia, serif;
	font-style: italic;
	font-weight: 400;
	color: var(--psi-c-primary-deep);
}

/* ---------- Long-form section (markdown body, designed typography) ----- */
.psi-longform { max-width: 760px; margin: 0 auto; }
.psi-longform__head { margin-bottom: 28px; }
.psi-longform__h2 {
	font-size: 28px;
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: var(--psi-c-text);
	margin: 0;
}
.psi-longform__h2 em {
	font-family: 'Source Serif 4', Georgia, serif;
	font-style: italic;
	font-weight: 400;
	color: var(--psi-c-primary-deep);
}
.psi-longform__body { font-size: 17px; line-height: 1.75; color: var(--psi-c-text); }
.psi-longform__body > * + * { margin-top: 1.1em; }
.psi-longform__body h3 {
	font-size: 20px;
	font-weight: 500;
	line-height: 1.35;
	color: var(--psi-c-text);
	margin-top: 2em;
	letter-spacing: -0.005em;
}
.psi-longform__body h4 {
	font-size: 17px;
	font-weight: 500;
	color: var(--psi-c-text);
	margin-top: 1.6em;
}
.psi-longform__body p { margin: 0; }
.psi-longform__body a {
	color: var(--psi-c-primary);
	text-decoration: underline;
	text-decoration-color: rgba(15, 110, 86, 0.35);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: text-decoration-color var(--psi-dur-base) var(--psi-ease);
}
.psi-longform__body a:hover { text-decoration-color: var(--psi-c-primary); }

/* ---------- Manifesto: parallel-claim lockup (no icons, no numbers) ----- */
.psi-manifesto {
	display: grid;
	grid-template-columns: 1fr;            /* mobile: vertical stack with horizontal hairlines */
	gap: 0;
	max-width: 1040px;
	margin: 36px auto 0;
}
.psi-manifesto__claim {
	padding: 28px 0;
	border-top: 1px solid var(--psi-c-border);
}
.psi-manifesto__claim:first-child { border-top: 1px solid var(--psi-c-border-strong); }
.psi-manifesto__claim:last-child  { border-bottom: 1px solid var(--psi-c-border-strong); }
.psi-manifesto__label {
	margin: 0 0 10px;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: -0.005em;
	color: var(--psi-c-text);
}
.psi-manifesto__body {
	margin: 0;
	font-size: 16px;
	line-height: 1.65;
	color: var(--psi-c-text);
}
.psi-manifesto__cta {
	max-width: 720px;
	margin: 28px auto 0;
	text-align: center;
	font-size: 16px;
	line-height: 1.55;
	color: var(--psi-c-text);
}
@media (min-width: 880px) {
	/* Desktop: 2- or 3-up with vertical hairlines between columns. */
	.psi-manifesto--3up { grid-template-columns: 1fr 1fr 1fr; }
	.psi-manifesto--2up { grid-template-columns: 1fr 1fr; }
	.psi-manifesto--3up .psi-manifesto__claim,
	.psi-manifesto--2up .psi-manifesto__claim {
		padding: 4px 28px;
		border-top: 0;
		border-bottom: 0;
		border-left: 1px solid var(--psi-c-border-strong);
	}
	.psi-manifesto--3up .psi-manifesto__claim:first-child,
	.psi-manifesto--2up .psi-manifesto__claim:first-child {
		padding-left: 0;
		border-left: 0;
	}
	.psi-manifesto--3up .psi-manifesto__claim:last-child,
	.psi-manifesto--2up .psi-manifesto__claim:last-child {
		padding-right: 0;
	}
}

/* Inline prose CTA — opens the lead modal via the [data-psi-open-lead] handler.
   Reads as a prose link (brand-teal, inherits prose font-weight), not a button:
   no underline at rest, underline on hover. */
.psi-inline-cta,
.psi-longform__body a.psi-inline-cta {
	color: var(--psi-c-primary);
	font-weight: inherit;
	text-decoration: none;
	cursor: pointer;
}
.psi-inline-cta:hover,
.psi-inline-cta:focus-visible,
.psi-longform__body a.psi-inline-cta:hover,
.psi-longform__body a.psi-inline-cta:focus-visible {
	color: var(--psi-c-primary-deep);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.psi-longform__body strong { font-weight: 500; color: var(--psi-c-text); }
.psi-longform__body em {
	font-family: 'Source Serif 4', Georgia, serif;
	font-style: italic;
	font-weight: 400;
}
.psi-longform__body blockquote {
	margin: 1.5em 0;
	padding: 18px 22px;
	border-left: 3px solid var(--psi-c-primary);
	background: var(--psi-c-primary-tint);
	border-radius: 0 8px 8px 0;
	font-size: 16.5px;
	color: var(--psi-c-primary-deep);
}
.psi-longform__body blockquote p { margin: 0; }
.psi-longform__body blockquote strong { color: var(--psi-c-primary-deep); }
.psi-longform__body ul, .psi-longform__body ol {
	margin: 0;
	padding-left: 1.5em;
}
.psi-longform__body ul li,
.psi-longform__body ol li { margin-top: 0.5em; }
.psi-longform__body ul li::marker { color: var(--psi-c-primary); }
.psi-longform__body ol li::marker { color: var(--psi-c-text-muted); font-weight: 500; }
.psi-longform__body code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.92em;
	background: var(--psi-c-cream-1);
	padding: 0.1em 0.4em;
	border-radius: 4px;
}

/* ---------- Puntos clave card grid -------------------------------------- */
.psi-puntos-clave {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin-top: 36px;
}
@media (min-width: 720px) {
	.psi-puntos-clave { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (min-width: 1000px) {
	.psi-puntos-clave { grid-template-columns: repeat(3, 1fr); }
}
.psi-puntos-clave__card {
	background: #fff;
	border: 1px solid var(--psi-c-border);
	border-radius: 14px;
	padding: 22px 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: border-color var(--psi-dur-base) var(--psi-ease), transform var(--psi-dur-base) var(--psi-ease);
}
.psi-puntos-clave__card:hover { border-color: var(--psi-c-primary); transform: translateY(-2px); }
.psi-puntos-clave__num {
	font-family: 'Source Serif 4', Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: 28px;
	color: var(--psi-c-primary);
	line-height: 1;
}
.psi-puntos-clave__body {
	font-size: 15.5px;
	line-height: 1.55;
	color: var(--psi-c-text);
}
.psi-puntos-clave__body a {
	color: var(--psi-c-primary);
	text-decoration: underline;
	text-decoration-color: rgba(15, 110, 86, 0.4);
}

/* ---------- Lima mosaic narrative intro (above the tiles) -------------- */
.psi-lima-narrative {
	max-width: 760px;
	margin: 28px auto 36px;
	font-size: 16.5px;
	line-height: 1.75;
	color: var(--psi-c-text);
}
.psi-lima-narrative > * + * { margin-top: 1em; }
.psi-lima-narrative h3 {
	font-size: 19px;
	font-weight: 500;
	margin-top: 1.6em;
	color: var(--psi-c-text);
	letter-spacing: -0.005em;
}
.psi-lima-narrative a {
	color: var(--psi-c-primary);
	text-decoration: underline;
	text-decoration-color: rgba(15, 110, 86, 0.4);
}
.psi-lima-narrative em {
	font-family: 'Source Serif 4', Georgia, serif;
	font-style: italic;
	font-weight: 400;
}

/* ---------- References footer (Estadísticas + Fuentes) ----------------- */
.psi-section.psi-references {
	background: var(--psi-c-cream-1);
	padding-block: 56px 64px;
	border-top: 1px solid var(--psi-c-border);
}
.psi-references__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
}
@media (min-width: 900px) {
	.psi-references__inner { grid-template-columns: 1.1fr 0.9fr; gap: 64px; }
}
.psi-references__h3 {
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--psi-c-text-muted);
	margin: 0 0 14px;
}
.psi-references__list {
	margin: 0;
	padding-left: 1.4em;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--psi-c-text-muted);
}
.psi-references__list li { margin-bottom: 10px; }
.psi-references__list li::marker { color: var(--psi-c-text-muted); }
.psi-references__list--sources {
	list-style: none;
	padding-left: 0;
}
.psi-references__list--sources li {
	padding-left: 1.4em;
	text-indent: -1.4em;
}
.psi-references__list a { color: var(--psi-c-primary-deep); text-decoration: underline; text-decoration-color: rgba(9, 77, 59, 0.3); }
.psi-references__list em {
	font-family: 'Source Serif 4', Georgia, serif;
	font-style: italic;
	font-weight: 400;
	color: var(--psi-c-text);
}

/* ---------- Footer brand row (above the 4-column grid) --------------- */
.psi-site-footer__brand-row {
	padding-block: 48px 0;
	max-width: 720px;
}
.psi-site-footer__brand-row .psi-site-footer__brand-tagline { margin-top: 10px; }
.psi-site-footer__brand-row + .psi-site-footer__cols {
	padding-block: 32px 32px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	margin-top: 32px;
}
