/* ==========================================================================
   Juan Tortosa Psicólogo — styles.css
   Todo el CSS del tema. Los colores, tipografías y tamaños base se definen
   en theme.json; aquí están los componentes y el diseño de cada sección.

   Índice
   01. Variables
   02. Iconos (SVG en máscaras CSS)
   03. Base y accesibilidad
   04. Estructura: secciones y rejillas
   05. Tipografía auxiliar
   06. Botones
   07. Cabecera y navegación
   08. Hero
   09. Servicios y precio
   10. Sobre mí
   11. Proceso
   12. Con qué te ayudo
   13. Preguntas frecuentes
   14. Llamada a la acción final
   15. Pie de página y botón flotante
   16. Páginas interiores
   17. Responsive
   18. Movimiento reducido
   ========================================================================== */


/* ==========================================================================
   01. Variables
   ========================================================================== */

:root {
	--jt-primary: var(--wp--preset--color--primary, #7b559b);
	--jt-primary-dark: var(--wp--preset--color--primary-dark, #403058);
	--jt-lavender: var(--wp--preset--color--lavender, #efe8f6);
	--jt-pearl: var(--wp--preset--color--pearl, #f7f5fa);
	--jt-ink: var(--wp--preset--color--ink, #2b2335);
	--jt-muted: var(--wp--preset--color--muted, #625a6e);
	--jt-wa: var(--wp--preset--color--whatsapp, #0f7b5c);
	--jt-on-dark: #d9c8ec;
	--jt-border: rgba(64, 48, 88, 0.1);

	--jt-font-heading: var(--wp--preset--font-family--heading);

	--jt-radius-sm: 14px;
	--jt-radius: 22px;
	--jt-radius-lg: 32px;

	--jt-shadow-sm: 0 1px 2px rgba(64, 48, 88, 0.05), 0 4px 14px -6px rgba(64, 48, 88, 0.08);
	--jt-shadow: 0 18px 40px -18px rgba(64, 48, 88, 0.25), 0 2px 6px rgba(64, 48, 88, 0.05);
	--jt-shadow-lg: 0 40px 80px -30px rgba(64, 48, 88, 0.4);

	--jt-gutter: clamp(1rem, 5vw, 3rem);
	--jt-section-space: clamp(4.5rem, 9vw, 7.5rem);
	--jt-header-height: 76px;
	--jt-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}


/* ==========================================================================
   02. Iconos (SVG en máscaras CSS)
   Cada tarjeta con la clase .jt-ico muestra un icono. Para cambiarlo,
   sustituye la clase jt-ico-* en Bloque > Avanzado > Clases CSS adicionales.
   Disponibles: user, users, leaf, cap, briefcase, heart, wave, cloud, spark,
   loop, compass, sun, clock, pin, chat.
   ========================================================================== */

:root {
	--jt-i-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E");
	--jt-i-users: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0'/%3E%3Cpath d='M16 4.5a3.5 3.5 0 0 1 0 7'/%3E%3Cpath d='M18 14.5a6.5 6.5 0 0 1 3.5 5.5'/%3E%3C/svg%3E");
	--jt-i-leaf: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19C5 10 10 5 20 4c-.5 10-5.5 15-15 15z'/%3E%3Cpath d='M5 19l8-8'/%3E%3C/svg%3E");
	--jt-i-cap: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9l10-5 10 5-10 5z'/%3E%3Cpath d='M6 11v5c0 1.5 2.7 3 6 3s6-1.5 6-3v-5'/%3E%3Cpath d='M22 9v6'/%3E%3C/svg%3E");
	--jt-i-briefcase: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2.5'/%3E%3Cpath d='M8.5 7V5.5A1.5 1.5 0 0 1 10 4h4a1.5 1.5 0 0 1 1.5 1.5V7'/%3E%3Cpath d='M3 12.5h18'/%3E%3C/svg%3E");
	--jt-i-heart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7.5-4.6-7.5-10.2A4.3 4.3 0 0 1 12 7a4.3 4.3 0 0 1 7.5 2.8C19.5 15.4 12 20 12 20z'/%3E%3C/svg%3E");
	--jt-i-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9.5c1.7-2.7 3.3-2.7 5 0s3.3 2.7 5 0 3.3-2.7 5 0 3.3 2.7 5 0'/%3E%3Cpath d='M2 15.5c1.7-2.7 3.3-2.7 5 0s3.3 2.7 5 0 3.3-2.7 5 0 3.3 2.7 5 0'/%3E%3C/svg%3E");
	--jt-i-cloud: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 18h10.5a4 4 0 0 0 .6-7.95A6 6 0 0 0 6.3 9.6 4.2 4.2 0 0 0 7 18z'/%3E%3C/svg%3E");
	--jt-i-spark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4c.6 4.4 2.3 6.6 7 8-4.7 1.4-6.4 3.6-7 8-.6-4.4-2.3-6.6-7-8 4.7-1.4 6.4-3.6 7-8z'/%3E%3Cpath d='M19 2.5v3M17.5 4h3'/%3E%3C/svg%3E");
	--jt-i-loop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12a8 8 0 0 1-14.3 4.9'/%3E%3Cpath d='M4 12a8 8 0 0 1 14.3-4.9'/%3E%3Cpath d='M18.5 3v4.5H14'/%3E%3Cpath d='M5.5 21v-4.5H10'/%3E%3C/svg%3E");
	--jt-i-compass: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m15.5 8.5-2 5-5 2 2-5z'/%3E%3C/svg%3E");
	--jt-i-sun: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2.5v2M12 19.5v2M2.5 12h2M19.5 12h2M5.3 5.3l1.4 1.4M17.3 17.3l1.4 1.4M5.3 18.7l1.4-1.4M17.3 6.7l1.4-1.4'/%3E%3C/svg%3E");
	--jt-i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E");
	--jt-i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
	--jt-i-chat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 11.5a8.5 8.5 0 0 1-12.6 7.4L3.5 20l1.2-4.2a8.5 8.5 0 1 1 15.8-4.3z'/%3E%3Cpath d='M9 10.5h6M9 13.5h3.5'/%3E%3C/svg%3E");
	--jt-i-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2.5'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4M9 14.5l2 2 4-4'/%3E%3C/svg%3E");
	--jt-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}

.jt-ico-user { --jt-icon: var(--jt-i-user); }
.jt-ico-users { --jt-icon: var(--jt-i-users); }
.jt-ico-leaf { --jt-icon: var(--jt-i-leaf); }
.jt-ico-cap { --jt-icon: var(--jt-i-cap); }
.jt-ico-briefcase { --jt-icon: var(--jt-i-briefcase); }
.jt-ico-heart { --jt-icon: var(--jt-i-heart); }
.jt-ico-wave { --jt-icon: var(--jt-i-wave); }
.jt-ico-cloud { --jt-icon: var(--jt-i-cloud); }
.jt-ico-spark { --jt-icon: var(--jt-i-spark); }
.jt-ico-loop { --jt-icon: var(--jt-i-loop); }
.jt-ico-compass { --jt-icon: var(--jt-i-compass); }
.jt-ico-sun { --jt-icon: var(--jt-i-sun); }
.jt-ico-clock { --jt-icon: var(--jt-i-clock); }
.jt-ico-pin { --jt-icon: var(--jt-i-pin); }
.jt-ico-chat { --jt-icon: var(--jt-i-chat); }

/* Baldosa de icono: el glifo es opaco y el fondo es el mismo color al 12 %. */
.jt-ico::before {
	content: "";
	display: block;
	width: var(--jt-ico-size, 3.25rem);
	height: var(--jt-ico-size, 3.25rem);
	margin-bottom: 1.25rem;
	border-radius: 16px;
	background-color: var(--jt-ico-color, var(--jt-primary));
	-webkit-mask: var(--jt-icon) center / var(--jt-ico-glyph, 1.5rem) no-repeat, linear-gradient(rgba(0, 0, 0, var(--jt-ico-tile, 0.12)) 0 0);
	mask: var(--jt-icon) center / var(--jt-ico-glyph, 1.5rem) no-repeat, linear-gradient(rgba(0, 0, 0, var(--jt-ico-tile, 0.12)) 0 0);
}


/* ==========================================================================
   03. Base y accesibilidad
   ========================================================================== */

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--jt-header-height) + 1rem);
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--jt-lavender);
	color: var(--jt-primary-dark);
}

p {
	text-wrap: pretty;
}

:where(a, button, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--jt-primary);
	outline-offset: 3px;
	border-radius: 6px;
}

.has-primary-dark-background-color :where(a, button, summary):focus-visible {
	outline-color: var(--jt-on-dark);
}

/* Elimina el espacio por defecto entre cabecera, contenido y pie. */
.wp-site-blocks > * {
	margin-block-start: 0;
}


/* ==========================================================================
   04. Estructura: secciones y rejillas
   ========================================================================== */

.wp-block-group.jt-section {
	position: relative;
	margin-block: 0;
	padding: var(--jt-section-space) var(--jt-gutter);
}

.jt-section .wp-block-columns {
	margin-bottom: 0;
}

.jt-section__head {
	text-align: center;
}

.wp-block-group.jt-section__head > * + * {
	margin-block-start: 1rem;
}

.wp-block-group.jt-section__head + * {
	margin-block-start: clamp(2.5rem, 5vw, 4rem);
}

.jt-grid {
	display: grid;
	gap: clamp(1rem, 2.4vw, 1.5rem);
}

.wp-block-group.jt-grid > * {
	margin-block: 0;
}

.jt-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jt-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.jt-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }


/* ==========================================================================
   05. Tipografía auxiliar
   ========================================================================== */

.jt-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0;
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--jt-primary);
}

.jt-eyebrow::before {
	content: "";
	width: 1.75rem;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	opacity: 0.55;
}

.jt-lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.65;
	color: var(--jt-muted);
}

.wp-block-heading.jt-section__title,
.wp-block-heading.jt-hero__title,
.wp-block-heading.jt-cta__title {
	text-wrap: balance;
}


/* ==========================================================================
   06. Botones
   Variantes (Clases CSS adicionales del bloque Botón):
   jt-btn-sm · jt-btn-lg · jt-btn-xl · jt-btn-doctoralia · jt-btn-whatsapp
   jt-btn-whatsapp-light · jt-btn-light · is-style-outline (estilo nativo)
   ========================================================================== */

.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	text-align: center;
	text-decoration: none;
	box-shadow: 0 10px 24px -10px rgba(123, 85, 155, 0.7);
	transition: transform 0.25s var(--jt-ease), box-shadow 0.25s var(--jt-ease), background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.wp-block-button__link:hover {
	transform: translateY(-2px);
	background-color: var(--jt-primary-dark);
	box-shadow: 0 16px 30px -12px rgba(64, 48, 88, 0.65);
}

.wp-block-button__link:active {
	transform: translateY(0);
}

/* Iconos de botón */
.jt-btn-doctoralia .wp-block-button__link::before,
.jt-btn-light .wp-block-button__link::before,
.jt-btn-whatsapp .wp-block-button__link::before,
.jt-btn-whatsapp-light .wp-block-button__link::before {
	content: "";
	flex-shrink: 0;
	width: 1.15em;
	height: 1.15em;
	background-color: currentColor;
	-webkit-mask: var(--jt-i-calendar) center / contain no-repeat;
	mask: var(--jt-i-calendar) center / contain no-repeat;
}

.jt-btn-whatsapp .wp-block-button__link::before,
.jt-btn-whatsapp-light .wp-block-button__link::before {
	-webkit-mask-image: var(--jt-i-chat);
	mask-image: var(--jt-i-chat);
}

/* Contorno (estilo nativo "Contorno") */
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1.5px solid rgba(64, 48, 88, 0.2);
	background-color: rgba(255, 255, 255, 0.7);
	color: var(--jt-primary-dark);
	box-shadow: none;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	border-color: var(--jt-primary);
	background-color: #fff;
	color: var(--jt-primary);
	box-shadow: var(--jt-shadow-sm);
}

/* WhatsApp relleno */
.jt-btn-whatsapp > .wp-block-button__link {
	background-color: var(--jt-wa);
	color: #fff;
	box-shadow: 0 10px 24px -10px rgba(15, 123, 92, 0.75);
}

.jt-btn-whatsapp > .wp-block-button__link:hover {
	background-color: #0b6249;
	box-shadow: 0 16px 30px -12px rgba(15, 123, 92, 0.75);
}

/* WhatsApp claro */
.jt-btn-whatsapp-light > .wp-block-button__link {
	border: 1.5px solid rgba(64, 48, 88, 0.2);
	background-color: #fff;
	color: var(--jt-primary-dark);
	box-shadow: none;
}

.jt-btn-whatsapp-light > .wp-block-button__link::before {
	background-color: var(--jt-wa);
}

.jt-btn-whatsapp-light > .wp-block-button__link:hover {
	border-color: var(--jt-wa);
	background-color: #fff;
	color: var(--jt-wa);
	box-shadow: var(--jt-shadow-sm);
}

/* Blanco sobre fondo oscuro */
.jt-btn-light > .wp-block-button__link {
	background-color: #fff;
	color: var(--jt-primary-dark);
	box-shadow: 0 14px 30px -12px rgba(0, 0, 0, 0.45);
}

.jt-btn-light > .wp-block-button__link:hover {
	background-color: var(--jt-lavender);
	color: var(--jt-primary-dark);
}

/* Tamaños */
.jt-btn-sm > .wp-block-button__link {
	padding: 0.65rem 1.2rem;
	font-size: 0.9375rem;
}

.jt-btn-lg > .wp-block-button__link {
	padding: 1.1rem 2rem;
	font-size: 1.0625rem;
}

.jt-btn-xl > .wp-block-button__link {
	padding: 1.25rem 2.4rem;
	font-size: 1.125rem;
}


/* ==========================================================================
   07. Cabecera y navegación
   ========================================================================== */

.jt-site-header,
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 100;
}

/* El desenfoque va en un pseudo-elemento para no romper el menú móvil (position: fixed). */
.jt-site-header::before,
.wp-site-blocks > header.wp-block-template-part::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(255, 255, 255, 0.85);
	border-bottom: 1px solid var(--jt-border);
	-webkit-backdrop-filter: saturate(180%) blur(14px);
	backdrop-filter: saturate(180%) blur(14px);
}

.admin-bar .jt-site-header,
.admin-bar .wp-site-blocks > header.wp-block-template-part {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.wp-block-group.jt-header {
	padding: 0.7rem var(--jt-gutter);
}

.jt-header__inner {
	gap: 1.5rem;
	min-height: calc(var(--jt-header-height) - 1.4rem);
}

.wp-block-image.jt-header__logo {
	flex-shrink: 0;
	margin: 0;
}

.jt-header__logo img {
	display: block;
	width: auto;
	height: 60px;
}

.jt-header__actions {
	gap: clamp(0.75rem, 2.5vw, 2rem);
}

.jt-nav .wp-block-navigation__container {
	gap: clamp(1rem, 2.2vw, 2rem);
}

.jt-nav .wp-block-navigation-item__content {
	position: relative;
	padding-block: 0.4rem;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--jt-ink);
	text-decoration: none;
	transition: color 0.2s ease;
}

.jt-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	border-radius: 2px;
	background: var(--jt-primary);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--jt-ease);
}

.jt-nav .wp-block-navigation-item__content:hover {
	color: var(--jt-primary);
}

.jt-nav .wp-block-navigation-item__content:hover::after {
	transform: scaleX(1);
}

/* Botón hamburguesa */
.jt-nav .wp-block-navigation__responsive-container-open {
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	background: var(--jt-lavender);
	color: var(--jt-primary-dark);
}

@media (max-width: 599px) {
	.jt-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
}

/* Menú móvil abierto */
.jt-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.25rem var(--jt-gutter) 2.5rem;
}

.jt-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 4.5rem;
}

.jt-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 1.1rem;
}

.jt-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--jt-font-heading);
	font-size: 1.75rem;
	font-weight: 600;
	color: var(--jt-primary-dark);
}

.jt-nav .wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	background: var(--jt-lavender);
}


/* ==========================================================================
   08. Hero
   ========================================================================== */

.wp-block-group.jt-hero {
	overflow: hidden;
	padding-top: clamp(2.5rem, 6vw, 5.5rem);
	background:
		radial-gradient(55rem 38rem at 92% 0%, rgba(123, 85, 155, 0.16), transparent 62%),
		radial-gradient(40rem 30rem at 0% 100%, rgba(123, 85, 155, 0.08), transparent 60%),
		linear-gradient(180deg, var(--jt-pearl) 0%, #fff 100%);
}

.jt-hero__grid {
	gap: clamp(2.5rem, 6vw, 5.5rem);
}

.wp-block-heading.jt-hero__title {
	margin-top: 1.25rem;
}

.jt-hero__title em {
	font-style: normal;
	color: var(--jt-primary);
	background: linear-gradient(transparent 68%, rgba(123, 85, 155, 0.18) 68%, rgba(123, 85, 155, 0.18) 92%, transparent 92%);
}

.jt-hero__content .jt-lead {
	max-width: 34rem;
	margin-top: 1.5rem;
}

.wp-block-buttons.jt-hero__actions {
	margin-top: 2.25rem;
}

.wp-block-buttons.jt-hero__secondary {
	gap: 0.75rem;
	margin-top: 0.85rem;
}

/* Sellos de confianza */
.wp-block-list.jt-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 1.5rem;
	margin: 2.25rem 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.9375rem;
	color: var(--jt-muted);
}

.jt-trust li {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
}

.jt-trust li::before {
	content: "";
	flex-shrink: 0;
	width: 1.35rem;
	height: 1.35rem;
	border-radius: 50%;
	background-color: var(--jt-primary);
	-webkit-mask: var(--jt-i-check) center / 0.75rem no-repeat, linear-gradient(rgba(0, 0, 0, 0.14) 0 0);
	mask: var(--jt-i-check) center / 0.75rem no-repeat, linear-gradient(rgba(0, 0, 0, 0.14) 0 0);
}

.jt-trust strong {
	color: var(--jt-ink);
}

/* Foto en forma de arco */
.jt-hero__media {
	position: relative;
	isolation: isolate;
}

.jt-hero__media::before {
	content: "";
	position: absolute;
	inset: 7% -5% -4% 12%;
	z-index: -1;
	border-radius: 999px 999px 40px 40px;
	background: linear-gradient(160deg, #e7dcf2 0%, rgba(123, 85, 155, 0.3) 100%);
}

.wp-block-image.jt-hero__photo {
	margin: 0;
}

.jt-hero__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 50% 35%;
	border-radius: 999px 999px 32px 32px;
	box-shadow: var(--jt-shadow-lg);
}

/* ==========================================================================
   09. Servicios y precio
   ========================================================================== */

.wp-block-group.jt-card {
	padding: clamp(1.6rem, 3vw, 2.25rem);
	border: 1px solid var(--jt-border);
	border-radius: var(--jt-radius);
	background: #fff;
	box-shadow: var(--jt-shadow-sm);
	transition: transform 0.35s var(--jt-ease), box-shadow 0.35s var(--jt-ease), border-color 0.35s ease;
}

.wp-block-group.jt-card:hover {
	transform: translateY(-4px);
	border-color: rgba(123, 85, 155, 0.25);
	box-shadow: var(--jt-shadow);
}

.wp-block-group.jt-card > * + * {
	margin-block-start: 0.75rem;
}

.wp-block-heading.jt-card__title {
	font-size: 1.25rem;
	letter-spacing: -0.01em;
}

.jt-card p {
	color: var(--jt-muted);
}

/* Bloque de precio */
.wp-block-group.jt-pricing {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.75rem 3rem;
	margin-block-start: clamp(1rem, 2.4vw, 1.5rem);
	padding: clamp(1.75rem, 4vw, 3rem);
	border: 1px solid rgba(123, 85, 155, 0.16);
	border-radius: var(--jt-radius-lg);
	background: linear-gradient(135deg, var(--jt-lavender) 0%, var(--jt-pearl) 100%);
}

.jt-pricing::after {
	content: "";
	position: absolute;
	top: -5rem;
	right: -5rem;
	width: 16rem;
	height: 16rem;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(123, 85, 155, 0.2), transparent 70%);
	pointer-events: none;
}

.wp-block-group.jt-pricing > * {
	position: relative;
	z-index: 1;
	margin: 0;
}

.jt-pricing__info {
	flex: 1 1 22rem;
	max-width: 36rem;
}

.wp-block-group.jt-pricing__info > * + * {
	margin-block-start: 0.5rem;
}

.wp-block-heading.jt-pricing__title {
	font-size: var(--wp--preset--font-size--x-large);
}

.jt-pricing__text {
	color: var(--jt-muted);
}

.wp-block-group.jt-pricing__action {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.5rem;
}

.wp-block-group.jt-pricing__action > * {
	margin: 0;
}

.jt-price {
	font-family: var(--jt-font-heading);
	font-size: clamp(2.75rem, 5vw, 3.5rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--jt-primary-dark);
}

.jt-price__unit {
	margin-left: -1rem;
	font-size: 0.9375rem;
	color: var(--jt-muted);
}


/* ==========================================================================
   10. Sobre mí
   ========================================================================== */

.jt-about__grid {
	gap: clamp(3rem, 7vw, 6.5rem);
}

.jt-about__media {
	position: relative;
	isolation: isolate;
}

.jt-about__media::before {
	content: "";
	position: absolute;
	inset: -1rem 1rem 1rem -1rem;
	z-index: -1;
	border: 1.5px solid rgba(123, 85, 155, 0.28);
	border-radius: calc(var(--jt-radius-lg) + 4px);
}

.wp-block-image.jt-about__photo {
	margin: 0;
}

.jt-about__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: 50% 50%;
	border-radius: var(--jt-radius-lg);
	box-shadow: var(--jt-shadow-lg);
}

.jt-about__quote {
	position: absolute;
	right: -1.5rem;
	bottom: -2rem;
	max-width: 17rem;
	margin: 0;
	padding: 1.25rem 1.5rem;
	border-radius: 20px;
	background: var(--jt-primary-dark);
	color: #fff;
	font-family: var(--jt-font-heading);
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.4;
	box-shadow: var(--jt-shadow-lg);
}

.jt-about__content .wp-block-heading {
	margin-top: 1rem;
}

.jt-about__personal {
	padding: 1.1rem 1.35rem;
	border-left: 3px solid var(--jt-primary);
	border-radius: 0 var(--jt-radius-sm) var(--jt-radius-sm) 0;
	background: #fff;
	color: var(--jt-muted);
	font-style: italic;
}

.jt-signature {
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--jt-primary);
}

.wp-block-group.jt-cv {
	margin-block-start: clamp(4rem, 8vw, 6rem);
}

/* Línea de tiempo */
.wp-block-list.jt-timeline {
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}

.jt-timeline li {
	position: relative;
	padding: 0 0 1.35rem 1.85rem;
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--jt-muted);
}

.jt-timeline li strong {
	display: inline-block;
	margin-bottom: 0.15rem;
	font-size: 1rem;
	color: var(--jt-ink);
}

.jt-timeline li::before {
	content: "";
	position: absolute;
	top: 0.4rem;
	left: 0;
	width: 0.7rem;
	height: 0.7rem;
	border: 2px solid var(--jt-primary);
	border-radius: 50%;
	background: #fff;
}

.jt-timeline li::after {
	content: "";
	position: absolute;
	top: 1.35rem;
	bottom: 0.2rem;
	left: calc(0.35rem - 1px);
	width: 2px;
	border-radius: 2px;
	background: rgba(123, 85, 155, 0.18);
}

.jt-timeline li:last-child {
	padding-bottom: 0;
}

.jt-timeline li:last-child::after {
	display: none;
}


/* ==========================================================================
   11. Proceso
   ========================================================================== */

.jt-steps {
	counter-reset: jt-step;
}

.wp-block-group.jt-step {
	position: relative;
	padding: 2rem 1.75rem;
	border: 1px solid var(--jt-border);
	border-radius: var(--jt-radius);
	background: var(--jt-pearl);
	counter-increment: jt-step;
	transition: transform 0.35s var(--jt-ease), box-shadow 0.35s var(--jt-ease), background-color 0.35s ease;
}

.wp-block-group.jt-step:hover {
	transform: translateY(-4px);
	background: #fff;
	box-shadow: var(--jt-shadow);
}

.jt-step::before {
	content: counter(jt-step, decimal-leading-zero);
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	margin-bottom: 1.5rem;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--jt-primary), var(--jt-primary-dark));
	color: #fff;
	font-family: var(--jt-font-heading);
	font-size: 1rem;
	font-weight: 700;
	box-shadow: 0 10px 20px -8px rgba(123, 85, 155, 0.7);
}

/* Conector punteado entre pasos (solo escritorio) */
.jt-step::after {
	content: "";
	position: absolute;
	top: calc(2rem + 1.5rem - 1px);
	left: calc(1.75rem + 3rem + 0.75rem);
	right: -1.5rem;
	height: 2px;
	background: repeating-linear-gradient(90deg, rgba(123, 85, 155, 0.35) 0 6px, transparent 6px 12px);
}

.jt-step:last-child::after {
	display: none;
}

.wp-block-group.jt-step > * + * {
	margin-block-start: 0.65rem;
}

.wp-block-heading.jt-step__title {
	font-size: 1.1875rem;
	letter-spacing: -0.01em;
}

.jt-step p {
	font-size: 0.9375rem;
	color: var(--jt-muted);
}

/* Enfoques */
.wp-block-group.jt-approaches {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1rem 1.5rem;
	margin-block-start: clamp(2.5rem, 5vw, 3.5rem);
	text-align: center;
}

.wp-block-group.jt-approaches > * {
	margin: 0;
}

.jt-approaches__label {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--jt-muted);
}

.wp-block-list.jt-pills {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.jt-pills li {
	padding: 0.55rem 1.1rem;
	border: 1px solid rgba(123, 85, 155, 0.22);
	border-radius: 999px;
	background: #fff;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--jt-primary-dark);
}


/* ==========================================================================
   12. Con qué te ayudo
   ========================================================================== */

.wp-block-group.jt-problems {
	background-image:
		radial-gradient(50rem 32rem at 100% 0%, rgba(123, 85, 155, 0.55), transparent 62%),
		radial-gradient(40rem 30rem at 0% 100%, rgba(123, 85, 155, 0.35), transparent 60%);
}

.jt-problems .jt-eyebrow {
	color: var(--jt-on-dark);
}

.jt-problems .wp-block-heading {
	color: #fff;
}

.jt-problems .jt-lead {
	color: rgba(255, 255, 255, 0.78);
}

.wp-block-group.jt-problem {
	padding: 1.75rem;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: var(--jt-radius);
	background: rgba(255, 255, 255, 0.05);
	transition: transform 0.35s var(--jt-ease), background-color 0.35s ease, border-color 0.35s ease;
	--jt-ico-color: var(--jt-on-dark);
	--jt-ico-tile: 0.14;
}

.wp-block-group.jt-problem:hover {
	transform: translateY(-4px);
	border-color: rgba(255, 255, 255, 0.24);
	background: rgba(255, 255, 255, 0.09);
}

.wp-block-group.jt-problem > * + * {
	margin-block-start: 0.5rem;
}

.wp-block-heading.jt-problem__title {
	font-size: 1.125rem;
	letter-spacing: -0.01em;
}

.jt-problem p {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.72);
}

.wp-block-group.jt-problems__note {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1rem 1.5rem;
	width: fit-content;
	margin-block-start: clamp(2.5rem, 5vw, 3.5rem);
	padding: 0.85rem 0.85rem 0.85rem 1.75rem;
	border: 1px dashed rgba(255, 255, 255, 0.25);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.05);
	text-align: center;
}

.wp-block-group.jt-problems__note > * {
	margin: 0;
}

.jt-problems__note p {
	color: rgba(255, 255, 255, 0.85);
}


/* ==========================================================================
   13. Preguntas frecuentes
   ========================================================================== */

.jt-faq__grid {
	gap: clamp(2.5rem, 6vw, 6rem);
}

.jt-faq__intro .wp-block-heading {
	margin-top: 1rem;
}

.jt-faq__intro .wp-block-buttons {
	margin-top: 2rem;
}

.wp-block-column.jt-faq__list > * + * {
	margin-block-start: 0.875rem;
}

.wp-block-details.jt-faq__item {
	border: 1px solid var(--jt-border);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--jt-shadow-sm);
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.wp-block-details.jt-faq__item:hover {
	border-color: rgba(123, 85, 155, 0.3);
}

.wp-block-details.jt-faq__item[open] {
	border-color: rgba(123, 85, 155, 0.35);
	box-shadow: var(--jt-shadow);
}

.jt-faq__item summary {
	position: relative;
	display: block;
	padding: 1.3rem 4rem 1.3rem 1.5rem;
	list-style: none;
	cursor: pointer;
	font-family: var(--jt-font-heading);
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--jt-primary-dark);
	border-radius: 18px;
}

.jt-faq__item summary::-webkit-details-marker {
	display: none;
}

/* Icono + que gira a × al abrir */
.jt-faq__item summary::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 1.25rem;
	width: 2rem;
	height: 2rem;
	margin-top: -1rem;
	border-radius: 50%;
	background:
		linear-gradient(var(--jt-primary), var(--jt-primary)) center / 11px 2px no-repeat,
		linear-gradient(var(--jt-primary), var(--jt-primary)) center / 2px 11px no-repeat,
		var(--jt-lavender);
	transition: transform 0.3s var(--jt-ease), background-color 0.3s ease;
}

.jt-faq__item[open] summary::after {
	transform: rotate(135deg);
	background:
		linear-gradient(#fff, #fff) center / 11px 2px no-repeat,
		linear-gradient(#fff, #fff) center / 2px 11px no-repeat,
		var(--jt-primary);
}

.wp-block-details.jt-faq__item > :not(summary) {
	margin: 0;
	padding: 0 1.5rem;
	color: var(--jt-muted);
}

.wp-block-details.jt-faq__item > :last-child:not(summary) {
	padding-bottom: 1.4rem;
}

/* Apertura animada en navegadores compatibles (mejora progresiva) */
@supports (interpolate-size: allow-keywords) {
	.jt-faq {
		interpolate-size: allow-keywords;
	}

	.jt-faq__item::details-content {
		block-size: 0;
		overflow: hidden;
		transition: block-size 0.35s var(--jt-ease), content-visibility 0.35s allow-discrete;
	}

	.jt-faq__item[open]::details-content {
		block-size: auto;
	}
}


/* ==========================================================================
   14. Llamada a la acción final
   ========================================================================== */

.wp-block-group.jt-cta {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: clamp(3.25rem, 7vw, 5.5rem) clamp(1.5rem, 5vw, 4rem);
	border-radius: clamp(24px, 4vw, 40px);
	background:
		radial-gradient(40rem 26rem at 10% 0%, rgba(160, 125, 195, 0.55), transparent 60%),
		radial-gradient(36rem 26rem at 100% 100%, rgba(123, 85, 155, 0.65), transparent 60%),
		var(--jt-primary-dark);
	box-shadow: var(--jt-shadow-lg);
	color: #fff;
	text-align: center;
}

/* Anillos decorativos */
.jt-cta::before {
	content: "";
	position: absolute;
	top: -12rem;
	right: -9rem;
	z-index: -1;
	width: 28rem;
	height: 28rem;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 50%;
	box-shadow: 0 0 0 3.5rem rgba(255, 255, 255, 0.03), 0 0 0 7rem rgba(255, 255, 255, 0.02);
}

.jt-cta .jt-eyebrow {
	color: var(--jt-on-dark);
}

.wp-block-heading.jt-cta__title {
	margin-top: 1rem;
	font-size: clamp(2rem, 4.5vw, 3.25rem);
	color: #fff;
}

.jt-cta__text {
	font-size: var(--wp--preset--font-size--large);
	color: rgba(255, 255, 255, 0.82);
}

.wp-block-buttons.jt-cta__actions {
	gap: 1rem;
	margin-top: 2.5rem;
}

.jt-cta__note {
	margin-top: 2rem;
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.62);
}


/* ==========================================================================
   15. Pie de página y botón flotante
   ========================================================================== */

.wp-block-group.jt-footer {
	/* Espacio inferior extra para que el botón flotante no tape los enlaces legales. */
	padding: clamp(3.5rem, 7vw, 5.5rem) var(--jt-gutter) 6rem;
	background-image: radial-gradient(45rem 25rem at 100% 0%, rgba(123, 85, 155, 0.35), transparent 60%);
}

.jt-footer__grid {
	display: grid;
	grid-template-columns: 1.5fr repeat(3, minmax(0, 1fr));
	gap: 2.5rem;
}

.wp-block-group.jt-footer__grid > * {
	margin: 0;
}

.wp-block-image.jt-footer__logo {
	margin: 0;
}

.jt-footer__logo img {
	display: block;
	width: auto;
	height: 64px;
	filter: brightness(0) invert(1);
}

.jt-footer__about {
	max-width: 22rem;
	margin-top: 1.25rem;
}

.jt-footer p {
	font-size: 0.9375rem;
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.75);
}

.jt-footer p a {
	color: #fff;
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 1px;
	transition: background-size 0.3s var(--jt-ease);
}

.jt-footer p a:hover {
	background-size: 100% 1px;
}

.wp-block-group.jt-footer__col {
	--jt-ico-size: 2.5rem;
	--jt-ico-glyph: 1.2rem;
	--jt-ico-color: var(--jt-on-dark);
	--jt-ico-tile: 0.14;
}

.jt-footer__col::before {
	margin-bottom: 1rem;
	border-radius: 12px;
}

.wp-block-group.jt-footer__col > * + * {
	margin-block-start: 0.4rem;
}

.wp-block-heading.jt-footer__title {
	margin-bottom: 0.75rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--jt-on-dark);
}

/* Redes sociales */
.wp-block-social-links.jt-social {
	gap: 0.6rem;
	margin-top: 1.5rem;
}

.jt-social.wp-block-social-links.is-style-logos-only .wp-social-link {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	transition: background-color 0.25s ease, transform 0.25s var(--jt-ease);
}

.jt-social.wp-block-social-links.is-style-logos-only .wp-social-link:hover {
	transform: translateY(-2px);
	background: var(--jt-primary);
}

/* Toda la baldosa es pulsable, no solo el icono */
.jt-social .wp-social-link a {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	padding: 0;
}

.jt-social .wp-social-link svg {
	width: 1.15rem;
	height: 1.15rem;
}

/* Franja inferior */
.wp-block-group.jt-footer__bottom {
	gap: 0.5rem 1.5rem;
	margin-block-start: 3.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.wp-block-group.jt-footer__bottom > * {
	margin: 0;
}

.jt-footer p.jt-footer__note {
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.55);
}

.jt-footer__bottom p {
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.6);
}

/* Botón flotante de WhatsApp */
.wp-block-buttons.jt-float {
	position: fixed;
	right: clamp(1rem, 3vw, 1.75rem);
	bottom: clamp(1rem, 3vw, 1.75rem);
	z-index: 90;
	margin: 0;
}

.jt-float .wp-block-button__link {
	padding: 0.95rem 1.35rem;
	box-shadow: 0 14px 30px -8px rgba(15, 123, 92, 0.6), 0 2px 6px rgba(0, 0, 0, 0.12);
}

/* En el editor el botón flotante se muestra en su sitio para poder editarlo. */
.editor-styles-wrapper .wp-block-buttons.jt-float {
	position: static;
	margin-top: 2rem;
}


/* ==========================================================================
   16. Páginas interiores
   ========================================================================== */

.wp-block-group.jt-page {
	padding: clamp(3rem, 7vw, 5.5rem) var(--jt-gutter);
}

.wp-block-post-title.jt-page__title {
	margin-bottom: 2rem;
	text-wrap: balance;
}

.jt-page__meta {
	font-size: 0.875rem;
	color: var(--jt-muted);
}

.wp-block-post-featured-image.jt-page__image img {
	border-radius: var(--jt-radius);
}

.jt-post-list > li + li {
	margin-top: 2.5rem;
	padding-top: 2.5rem;
	border-top: 1px solid var(--jt-border);
}

/* Páginas legales */
.jt-legal {
	font-size: 1rem;
	color: var(--jt-ink);
}

.wp-block-group.jt-legal > * + * {
	margin-block-start: 1rem;
}

.wp-block-group.jt-legal > .wp-block-heading {
	margin-block-start: 2.75rem;
	font-size: var(--wp--preset--font-size--x-large);
}

.jt-legal .wp-block-list {
	padding-left: 1.25rem;
}

.jt-legal .wp-block-list li + li {
	margin-top: 0.5rem;
}

.jt-legal__updated {
	font-size: 0.875rem;
	color: var(--jt-muted);
}

.jt-legal__notice {
	padding: 1.1rem 1.35rem;
	border-left: 3px solid var(--jt-primary);
	border-radius: 0 var(--jt-radius-sm) var(--jt-radius-sm) 0;
	background: var(--jt-lavender);
}

.jt-404 {
	text-align: center;
}

.jt-404 .wp-block-buttons {
	justify-content: center;
}


/* ==========================================================================
   17. Responsive
   ========================================================================== */

/* Menú hamburguesa también en tablet (los 5 enlaces no caben). */
@media (min-width: 600px) and (max-width: 1080px) {
	.jt-nav.jt-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}

	.jt-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
}

@media (max-width: 1080px) {
	.jt-footer__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.wp-block-group.jt-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 1024px) {
	.jt-grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.jt-step::after {
		display: none;
	}
}

@media (min-width: 782px) {
	.jt-hero__grid > .jt-hero__content {
		flex-grow: 1.2;
	}

	.jt-faq__grid > .jt-faq__intro {
		position: sticky;
		top: calc(var(--jt-header-height) + 2rem);
		align-self: flex-start;
		flex-grow: 0.8;
	}
}

@media (min-width: 782px) and (max-width: 1024px) {
	.wp-block-heading.jt-hero__title {
		font-size: 2.5rem;
	}
}

@media (max-width: 781px) {
	.jt-grid--2,
	.jt-grid--3 {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Tarjetas en horizontal: icono a la izquierda */
	.wp-block-group.jt-card {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		align-items: start;
		column-gap: 1.25rem;
	}

	.jt-card::before {
		grid-row: 1 / span 3;
		margin: 0;
	}

	.wp-block-group.jt-card > * {
		grid-column: 2;
	}

	.jt-cv .wp-block-group.jt-card {
		display: block;
	}

	.jt-cv .jt-card::before {
		margin-bottom: 1.25rem;
	}

	.jt-hero__media {
		width: 100%;
		max-width: 26rem;
		margin-inline: auto;
	}

	.jt-about__media {
		width: 100%;
		max-width: 28rem;
		margin-inline: auto;
	}

	.jt-about__quote {
		right: -0.5rem;
		bottom: -1.5rem;
		max-width: 15rem;
		font-size: 1rem;
	}

	.jt-about__grid > .jt-about__content {
		margin-top: 2rem;
	}

	.wp-block-group.jt-problems__note {
		width: auto;
		padding: 1.5rem;
		border-radius: var(--jt-radius);
	}
}

@media (max-width: 599px) {
	:root {
		--jt-header-height: 68px;
	}

	.jt-header__logo img {
		height: 48px;
	}

	.jt-grid--4 {
		grid-template-columns: minmax(0, 1fr);
	}

	/* En móvil las tarjetas vuelven a apilarse (icono arriba) para ganar ancho de texto */
	.wp-block-group.jt-card {
		display: block;
	}

	.jt-card::before {
		margin-bottom: 1.25rem;
	}

	/* Altura mínima táctil recomendada (44 px) */
	.wp-block-button__link {
		min-height: 44px;
	}

	/* Botones principales a ancho completo para pulsarlos con el pulgar */
	.jt-hero__actions .wp-block-button,
	.jt-hero__secondary .wp-block-button,
	.jt-cta__actions .wp-block-button,
	.jt-pricing__action .wp-block-buttons,
	.jt-pricing__action .wp-block-button {
		width: 100%;
	}

	.jt-hero__actions .wp-block-button__link,
	.jt-hero__secondary .wp-block-button__link,
	.jt-cta__actions .wp-block-button__link,
	.jt-pricing__action .wp-block-button__link {
		width: 100%;
	}

	.jt-btn-xl > .wp-block-button__link {
		padding: 1.1rem 1.25rem;
		font-size: 1rem;
	}

	.wp-block-group.jt-cta {
		padding-inline: 1.25rem;
	}

	.wp-block-group.jt-step,
	.wp-block-group.jt-problem {
		padding: 1.5rem;
	}

	.jt-faq__item summary {
		padding: 1.15rem 3.5rem 1.15rem 1.25rem;
		font-size: 1rem;
	}

	.jt-faq__item summary::after {
		right: 1rem;
	}

	.wp-block-details.jt-faq__item > :not(summary) {
		padding-inline: 1.25rem;
	}

	.jt-footer__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.25rem;
	}

	.jt-float .wp-block-button__link {
		padding: 0.85rem 1.1rem;
		font-size: 0.9375rem;
	}
}

/* Barra de administración de WordPress en móvil (no es fija) */
@media (max-width: 600px) {
	.admin-bar .jt-site-header,
	.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: 0;
	}
}


/* ==========================================================================
   18. Movimiento reducido
   ========================================================================== */

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

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}

	.wp-block-button__link:hover,
	.wp-block-group.jt-card:hover,
	.wp-block-group.jt-step:hover,
	.wp-block-group.jt-problem:hover {
		transform: none;
	}
}
