/*
 * JP Financial responsive system.
 *
 * The approved desktop reference is 1800 x 1169 CSS pixels. Rules in this
 * file preserve that reference and make the intermediate widths scale
 * continuously instead of jumping between unrelated Elementor breakpoints.
 */

:root {
	--jp-reference-width: 1800;
	--jp-fluid-gutter: clamp(24px, 4.333vw, 78px);
	--jp-fluid-gutter-compact: clamp(20px, 3.333vw, 60px);
	--jp-fluid-gap: clamp(24px, 3.333vw, 60px);
	--jp-fluid-section-space: clamp(64px, 6.667vw, 120px);
	--jp-content-rail: min(calc(100vw - (2 * var(--jp-fluid-gutter))), 1644px);
}

@media (max-width: 1024px) {
	:is(
		body.home .jp-stats-cards > .elementor-container,
		body.home.home .elementor-element.elementor-element-jplatestgrid .jp-post-grid-items,
		body.jp-about-page .jp-about-stats-grid,
		body.jp-about-page .jp-about-team-grid,
		body.jp-about-page .jp-about-team-carousel-track,
		body.jp-single-service-page .jp-ss-include-grid,
		body.jp-single-service-page .jp-ss-other-grid,
		body.jp-method-page .jp-method-result-grid,
		body.jp-method-page .jp-method-journey-track,
		body.jp-know-page .jp-know-cards
	) {
		-webkit-overflow-scrolling: touch !important;
		overscroll-behavior-x: contain !important;
		scroll-behavior: auto !important;
		scroll-snap-type: x mandatory !important;
		scrollbar-width: none !important;
		touch-action: pan-x pan-y !important;
	}

	:is(
		body.home .jp-stats-cards > .elementor-container,
		body.home.home .elementor-element.elementor-element-jplatestgrid .jp-post-grid-items,
		body.jp-about-page .jp-about-stats-grid,
		body.jp-about-page .jp-about-team-grid,
		body.jp-about-page .jp-about-team-carousel-track,
		body.jp-single-service-page .jp-ss-include-grid,
		body.jp-single-service-page .jp-ss-other-grid,
		body.jp-method-page .jp-method-result-grid,
		body.jp-method-page .jp-method-journey-track,
		body.jp-know-page .jp-know-cards
	)::-webkit-scrollbar {
		display: none !important;
	}

	:is(
		body.home .jp-stat-card,
		body.home.home .elementor-element.elementor-element-jplatestgrid .jp-post-grid-item,
		body.jp-about-page .jp-about-stat,
		body.jp-about-page .jp-about-team-card,
		body.jp-single-service-page .jp-ss-include-card,
		body.jp-single-service-page .jp-ss-other-card,
		body.jp-method-page .jp-method-result-card,
		body.jp-method-page .jp-method-journey-step,
		body.jp-know-page .jp-know-card
	) {
		scroll-snap-align: start !important;
		scroll-snap-stop: normal !important;
	}

	:is(
		body.jp-blog-page .jp-blog-category-filters,
		body.jp-news-page .jp-blog-category-filters,
		body.jp-know-page .jp-know-filters
	) {
		-webkit-overflow-scrolling: touch !important;
		overscroll-behavior-x: contain !important;
		scroll-behavior: auto !important;
		scrollbar-width: none !important;
		touch-action: pan-x pan-y !important;
	}

	:is(
		body.jp-blog-page .jp-blog-category-filters,
		body.jp-news-page .jp-blog-category-filters,
		body.jp-know-page .jp-know-filters
	)::-webkit-scrollbar {
		display: none !important;
	}
}

/* Method page / Resultado — mobile carousel.
 * Figma node 129:183. Elementor keeps the existing heading and four cards;
 * the mobile controller only changes their layout and responsive sizing. */


/* About / Propósito: highlighted words and the generated blank between them
 * must behave as one continuous emphasis mark during the reveal animation. */


/*
 * Home / En cifras: mobile and vertical tablet carousel.
 * Figma node 57:47 defines a clipped gradient card with a horizontal
 * stats track, not a stacked grid.
 */
@media (max-width: 920px) {
	body.home .elementor-element.elementor-element-jpstats1 {
		border-radius: 24px !important;
		box-sizing: border-box !important;
		height: auto !important;
		margin-right: 16px !important;
		margin-bottom: clamp(32px, 8.142vw, 64px) !important;
		margin-left: 16px !important;
		max-width: calc(100vw - 32px) !important;
		min-height: 0 !important;
		overflow: hidden !important;
		padding: 40px 20px !important;
		width: calc(100vw - 32px) !important;
	}

	body.home .elementor-element.elementor-element-jpstats1 > .elementor-container {
		height: auto !important;
		margin-bottom: clamp(56px, 6.25vw, 64px) !important;
		min-height: 0 !important;
		overflow: visible !important;
		padding: 0 !important;
		width: 100% !important;
	}

	body.home .elementor-element.elementor-element-jpstats1 .elementor-column,
	body.home .elementor-element.elementor-element-jpstats1 .elementor-widget-wrap {
		height: auto !important;
		min-height: 0 !important;
		width: 100% !important;
	}

	body.home .jp-stats-kicker,
	body.home .jp-stats-kicker p {
		color: #fff !important;
		font-size: 13px !important;
		font-weight: 700 !important;
		letter-spacing: 1.8px !important;
		line-height: 1.2 !important;
		margin: 0 !important;
		text-align: center !important;
		text-transform: uppercase !important;
	}

	body.home .jp-stats-title {
		margin-top: 12px !important;
		width: 100% !important;
	}

	body.home .jp-stats-title .elementor-heading-title {
		color: #fff !important;
		font-size: 28px !important;
		letter-spacing: -0.16px !important;
		line-height: 32px !important;
		margin: 0 !important;
		text-align: center !important;
	}

	body.home .jp-stats-cards {
		display: flex !important;
		margin-top: 32px !important;
		overflow: visible !important;
		padding: 0 !important;
		width: 100% !important;
	}

	body.home .jp-stats-cards > .elementor-container {
		-webkit-overflow-scrolling: touch;
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		gap: clamp(18.366px, 4.67vw, 28px) !important;
		margin-top: 0 !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		padding: 0 !important;
		scroll-padding-left: 0;
		scroll-snap-type: x mandatory;
		width: 100% !important;
	}

	body.home .jp-stats-cards > .elementor-container::-webkit-scrollbar {
		display: none;
	}

	body.home .jp-stat-card {
		align-items: center !important;
		background: rgba(245, 244, 240, 0.36) !important;
		border-radius: clamp(18.366px, 4.67vw, 24px) !important;
		box-sizing: border-box !important;
		display: flex !important;
		flex: 0 0 clamp(229.577px, 58.416vw, 320px) !important;
		flex-direction: column !important;
		gap: clamp(13.775px, 3.505vw, 18px) !important;
		justify-content: center !important;
		margin: 0 !important;
		min-height: clamp(162px, 41.5vw, 210px) !important;
		padding: clamp(27.549px, 7.01vw, 36px) clamp(18.366px, 4.67vw, 24px) !important;
		scroll-snap-align: start;
		width: clamp(229.577px, 58.416vw, 320px) !important;
	}

	body.home .jp-stat-number,
	body.home .jp-stat-number .elementor-widget-container,
	body.home .jp-stat-number .elementor-counter {
		width: auto !important;
	}

	body.home .jp-stat-number .elementor-counter-number-wrapper {
		color: #fff !important;
		font-size: clamp(55.099px, 14.02vw, 72px) !important;
		font-weight: 800 !important;
		letter-spacing: clamp(-2.755px, -0.7vw, -2px) !important;
		line-height: 1 !important;
		text-align: center !important;
		white-space: nowrap !important;
	}

	body.home .jp-stat-card .elementor-divider,
	body.home .jp-stat-card .elementor-divider-separator {
		border-color: #00352d !important;
		border-radius: 999px !important;
		width: clamp(36.732px, 9.346vw, 48px) !important;
	}

	body.home .jp-stat-label,
	body.home .jp-stat-label p,
	body.home .jp-stat-card .elementor-widget-text-editor,
	body.home .jp-stat-card .elementor-widget-text-editor p {
		color: #fff !important;
		font-size: clamp(17.218px, 4.381vw, 22px) !important;
		font-weight: 400 !important;
		line-height: normal !important;
		margin: 0 !important;
		text-align: center !important;
		white-space: nowrap !important;
	}
}

/* Home / En cifras: iPad Pro and narrow tablet layout, 2 cards per row. */
@media (min-width: 921px) and (max-width: 1024px) {
	body.home .elementor-element.elementor-element-jpstats1 {
		height: auto !important;
		min-height: 0 !important;
		overflow: hidden !important;
		padding-bottom: 80px !important;
	}

	body.home .elementor-element.elementor-element-jpstats1 > .elementor-container {
		height: auto !important;
		min-height: 0 !important;
	}

	body.home .jp-stats-cards {
		margin-top: 56px !important;
		width: 100% !important;
	}

	body.home .jp-stats-cards > .elementor-container {
		display: grid !important;
		gap: 24px !important;
		grid-template-columns: repeat(2, minmax(0, 320px)) !important;
		justify-content: center !important;
		margin-inline: auto !important;
		max-width: 664px !important;
		width: 100% !important;
	}

	body.home .jp-stat-card {
		display: flex !important;
		height: auto !important;
		min-height: 205px !important;
		width: 320px !important;
	}

	body.home .jp-stat-card > .elementor-widget-wrap {
		align-content: center !important;
		align-items: center !important;
		justify-content: center !important;
	}
}

/*
 * Wide desktop with short usable browser height.
 *
 * A 1920x1080 monitor with Chrome UI and dock commonly leaves ~830px of page
 * height. Keep the 1800x921 reference untouched, but scale Home when the wide
 * viewport is height-constrained.
 */
@media (min-width: 1800px) and (max-width: 1920px) and (max-height: 900px) {
	:root {
		--jp-wide-short-scale: clamp(0.86, calc(100svh / 921), 1);
		--jp-wide-24: clamp(20.64px, 2.606svh, 24px);
		--jp-wide-40: clamp(34.4px, 4.343svh, 40px);
		--jp-wide-60: clamp(51.6px, 6.515svh, 60px);
		--jp-wide-80: clamp(68.8px, 8.686svh, 80px);
		--jp-wide-100: clamp(86px, 10.858svh, 100px);
		--jp-wide-128: clamp(110.08px, 13.898svh, 128px);
		--jp-wide-160: clamp(137.6px, 17.372svh, 160px);
		--jp-wide-240: clamp(206.4px, 26.059svh, 240px);
		--jp-wide-520: clamp(447.2px, 56.46svh, 520px);
		--jp-wide-596: clamp(512.56px, 64.712svh, 596px);
		--jp-wide-598: clamp(514.28px, 64.929svh, 598px);
		--jp-wide-742: clamp(638.12px, 80.565svh, 742px);
		--jp-wide-757: clamp(651.02px, 82.193svh, 757px);
		--jp-wide-762: clamp(655.32px, 82.736svh, 762px);
		--jp-wide-875: clamp(752.5px, 95.005svh, 875px);
		--jp-wide-900: clamp(774px, 97.72svh, 900px);
		--jp-wide-975: clamp(838.5px, 105.863svh, 975px);
		--jp-wide-1061: clamp(912.46px, 115.201svh, 1061px);
	}

	body.home .elementor-location-header .jp-native-header.elementor-section {
		height: clamp(67.08px, 8.469svh, 78px) !important;
		min-height: clamp(67.08px, 8.469svh, 78px) !important;
		margin: clamp(8.6px, 1.086svh, 10px) clamp(17.2px, 2.172svh, 20px) 0 !important;
	}

	body.home .elementor-location-header .jp-native-header.elementor-section > .elementor-container,
	body.home .elementor-location-header .jp-native-header.elementor-section .jp-col-logo,
	body.home .elementor-location-header .jp-native-header.elementor-section .jp-col-nav,
	body.home .elementor-location-header .jp-native-header.elementor-section .jp-col-cta {
		height: 100% !important;
		min-height: 100% !important;
	}

	body.home .elementor-element.elementor-element-jphero1,
	body.home .elementor-element.elementor-element-jphero1 > .elementor-container {
		height: var(--jp-wide-900) !important;
		min-height: var(--jp-wide-900) !important;
	}

	body.home .elementor-element.elementor-element-jphero1 > .elementor-container,
	body.home .elementor-element.elementor-element-jplogos1 > .elementor-container,
	body.home .elementor-element.elementor-element-jpabout1 > .elementor-container,
	body.home .elementor-element.elementor-element-jpstats1 > .elementor-container,
	body.home .elementor-element.elementor-element-jpservices1 > .elementor-container,
	body.home .elementor-element.elementor-element-jp-methodology1 > .elementor-container,
	body.home .elementor-element.elementor-element-jp-objective1 > .elementor-container {
		zoom: var(--jp-wide-short-scale);
	}

	body.home .elementor-element.elementor-element-jphero1 .jp-hero-more {
		bottom: clamp(42px, 6.949svh, 64px) !important;
	}

	body.home .elementor-element.elementor-element-jplogos1 {
		height: var(--jp-wide-100) !important;
		min-height: var(--jp-wide-100) !important;
	}

	body.home .elementor-element.elementor-element-jplogos1 > .elementor-container {
		height: 100px !important;
		min-height: 100px !important;
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		align-items: center !important;
	}

	body.home .elementor-element.elementor-element-jplogos1 .jp-logo-track,
	body.home .elementor-element.elementor-element-jplogos1 .jp-logo-track > .elementor-widget-wrap {
		height: 26px !important;
		min-height: 26px !important;
		align-items: center !important;
	}

	body.home .elementor-element.elementor-element-jpabout1 {
		height: var(--jp-wide-520) !important;
		min-height: var(--jp-wide-520) !important;
		padding-top: var(--jp-wide-60) !important;
	}

	body.home .elementor-element.elementor-element-jpabout1 > .elementor-container {
		height: 456px !important;
		min-height: 456px !important;
	}

	body.home .elementor-element.elementor-element-jpstats1 {
		height: var(--jp-wide-596) !important;
		min-height: var(--jp-wide-596) !important;
		margin-top: var(--jp-wide-60) !important;
		padding-block: clamp(32.68px, 4.126svh, 38px) !important;
	}

	body.home .elementor-element.elementor-element-jpstats1 > .elementor-container {
		height: 596px !important;
		min-height: 596px !important;
	}

	body.home.home .elementor-element.elementor-element-jpservices1 {
		height: calc(var(--jp-wide-1061) + var(--jp-wide-160)) !important;
		min-height: calc(var(--jp-wide-1061) + var(--jp-wide-160)) !important;
	}

	body.home .elementor-element.elementor-element-jp-methodology1,
	body.home .elementor-element.elementor-element-jp-methodology-media-image,
	body.home .elementor-element.elementor-element-jp-methodology-media-image img {
		height: var(--jp-wide-1061) !important;
		min-height: var(--jp-wide-1061) !important;
	}

	body.home .elementor-element.elementor-element-jp-methodology1 > .elementor-container {
		height: 1061px !important;
		min-height: 1061px !important;
	}

	body.home .elementor-element.elementor-element-jp-objective1 {
		height: var(--jp-wide-757) !important;
		min-height: var(--jp-wide-757) !important;
		padding-top: var(--jp-wide-100) !important;
		padding-bottom: clamp(143.62px, 18.133svh, 167px) !important;
	}

	body.home .elementor-element.elementor-element-jp-objective1 > .elementor-container {
		height: 470px !important;
		min-height: 470px !important;
	}

	body.home .elementor-element.elementor-element-jp-testimonials1 {
		height: var(--jp-wide-762) !important;
		min-height: var(--jp-wide-762) !important;
		margin-top: clamp(-416px, -45.168svh, -357.76px) !important;
		padding-top: var(--jp-wide-100) !important;
		padding-bottom: var(--jp-wide-60) !important;
		padding-right: var(--jp-wide-80) !important;
		padding-left: var(--jp-wide-80) !important;
		border-radius: var(--jp-wide-40) var(--jp-wide-40) 0 0 !important;
	}

	body.home .jp-testimonials-carousel,
	body.home .jp-testimonials-carousel .swiper,
	body.home .jp-testimonial-slide {
		height: 458px !important;
	}

	body.home .jp-testimonials-carousel {
		width: calc(100% / var(--jp-wide-short-scale)) !important;
		zoom: var(--jp-wide-short-scale);
	}

	body.home .elementor-element.elementor-element-jp-latest1 {
		min-height: var(--jp-wide-975) !important;
		padding: var(--jp-wide-128) var(--jp-wide-80) var(--jp-wide-240) !important;
		border-radius: 0 !important;
	}

	body.home .elementor-element.elementor-element-jp-latest1 > * {
		width: calc(100% / var(--jp-wide-short-scale)) !important;
		zoom: var(--jp-wide-short-scale);
	}

	body.home .elementor-element.elementor-element-jp-faq1 {
		min-height: var(--jp-wide-742) !important;
		margin-top: calc(-1 * var(--jp-wide-160)) !important;
		padding: var(--jp-wide-80) !important;
		border-radius: var(--jp-wide-40) var(--jp-wide-40) 0 0 !important;
	}

	body.home .elementor-element.elementor-element-jp-faq1 > * {
		width: calc(100% / var(--jp-wide-short-scale)) !important;
		zoom: var(--jp-wide-short-scale);
	}

	body.home .jp-contact-outer {
		min-height: var(--jp-wide-598) !important;
		padding-inline: var(--jp-wide-24) !important;
	}

	body.home .jp-contact-layout {
		height: var(--jp-wide-598) !important;
		min-height: var(--jp-wide-598) !important;
		padding: var(--jp-wide-80) !important;
	}

	body.home .elementor-location-footer .jp-footer-outer {
		padding: var(--jp-page-footer-gap) var(--jp-wide-24) var(--jp-wide-24) !important;
	}

	body.home .elementor-location-footer .jp-global-footer {
		padding: var(--jp-wide-60) var(--jp-wide-60) 0 !important;
		border-radius: clamp(27.52px, 3.474svh, 32px) !important;
	}

	body.home .elementor-location-footer .jp-global-footer > * {
		width: calc(100% / var(--jp-wide-short-scale)) !important;
		zoom: var(--jp-wide-short-scale);
	}

	/* Services listing: apply the same short-viewport canvas correction as Home. */






	/* Other page compositions: use the same usable-height ratio at 1920x1080
	 * so their desktop canvas does not become larger than the 1800 reference. */


	body.jp-know-page .jp-know-hero,
	body.jp-know-page .jp-know-hero > .elementor-container {
		height: clamp(430px, 54.56svh, 503px) !important;
		min-height: clamp(430px, 54.56svh, 503px) !important;
	}

	body.jp-blog-page .jp-blog-hero {
		height: clamp(430px, 55.2svh, 509px) !important;
		min-height: clamp(430px, 55.2svh, 509px) !important;
		padding-top: var(--jp-wide-160) !important;
		padding-bottom: var(--jp-wide-60) !important;
	}



	body.jp-author-profile-page .jp-author-hero {
		height: clamp(720px, 102.93svh, 948px) !important;
		min-height: clamp(720px, 102.93svh, 948px) !important;
		padding-top: var(--jp-wide-100) !important;
		padding-bottom: var(--jp-wide-100) !important;
	}



	/* Keep shared inner rails proportional without changing the Elementor
	 * breakpoint-specific typography controls. */
	body.jp-method-page .jp-method-hero-copy,
	body.jp-know-page .jp-know-hero,
	body.jp-blog-page .jp-blog-hero,
	body.jp-about-page .jp-about-hero,
	body.jp-author-profile-page .jp-author-hero,
	body.jp-single-service-page .jp-ss-hero {
		box-sizing: border-box;
	}
}

/* Keep deliberately oversized artwork and marquees inside their own canvas. */
body.home .elementor-element.elementor-element-jpwatermark1,
body.home .elementor-element.elementor-element-jplogos1,
.jp-blog-featured-section,
.jp-about-page .jp-about-origin,
.jp-about-page .jp-about-personality,
.jp-about-page .jp-about-team {
	max-width: 100%;
	overflow-x: clip;
}

/*
 * Footer wordmark — match Figma node 43:231.
 * The Elementor Image widget must fill the complete inner footer rail so the
 * JP Financial wordmark reaches both horizontal margins at every breakpoint.
 */
.elementor-location-footer .jp-footer-wordmark,
.elementor-location-footer .jp-footer-wordmark .elementor-widget-container,
.elementor-location-footer .jp-footer-wordmark a,
.elementor-location-footer .jp-footer-wordmark img {
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
}

.elementor-location-footer .jp-footer-wordmark a {
	display: block !important;
	overflow: hidden !important;
}

.elementor-location-footer .jp-footer-wordmark-wrap {
	overflow: hidden !important;
	clip-path: inset(0) !important;
}

.elementor-location-footer .jp-footer-wordmark img {
	position: relative !important;
	left: -9.6% !important;
	width: 116% !important;
	max-width: none !important;
}

@media (min-width: 1025px) {
	.elementor-location-footer .jp-footer-wordmark-wrap {
		box-sizing: border-box !important;
		padding-right: clamp(16px, 1.333vw, 24px) !important;
	}
}

/* Keep the footer wordmark inside the real footer rail on laptop widths. */
@media (min-width: 1025px) and (max-width: 1799px) {
	body.home .elementor-location-footer .jp-global-footer > .jp-footer-wordmark-wrap,
	body.home .elementor-location-footer .jp-global-footer > .jp-footer-wordmark-wrap .jp-footer-wordmark {
		width: 100% !important;
		zoom: 1 !important;
	}
}

body.home.home .elementor-element.elementor-element-jp-latest1 {
	position: relative !important;
	top: auto !important;
	border-radius: 0 !important;
}

@media (min-width: 921px) {
	.elementor-location-header .jp-native-header.elementor-section .jp-mobile-menu-cta {
		display: none !important;
	}
}

/* Home hero desktop/tablet: keep both CTA buttons grouped at the center. */
@media (min-width: 921px) {
	body.home .elementor-element.elementor-element-jphero-actions {
		display: flex !important;
		justify-content: center !important;
		margin-top: clamp(24px, 1.778vw, 32px) !important;
		width: 100% !important;
	}

	body.home .elementor-element.elementor-element-jphero-actions > .elementor-container {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: clamp(18px, 1.333vw, 24px) !important;
		justify-content: center !important;
		margin-inline: auto !important;
		width: auto !important;
	}

	body.home .elementor-element.elementor-element-jphero-actions .jp-hero-action-col {
		flex: 0 0 auto !important;
		width: auto !important;
	}

	body.home .elementor-element.elementor-element-jphero-actions .jp-hero-action-col > .elementor-widget-wrap,
	body.home .elementor-element.elementor-element-jphero-actions .jp-hero-button {
		width: auto !important;
	}
}

/* Fluid desktop and laptop header. The 1800px reference remains unchanged. */
@media (min-width: 921px) and (max-width: 1799px) {
	.elementor-location-header .jp-native-header.elementor-section > .elementor-container {
		flex-wrap: nowrap !important;
		gap: clamp(8px, 1vw, 14px);
		padding-inline: clamp(20px, 2.64vw, 36px);
	}

	.elementor-location-header .jp-native-header.elementor-section .jp-col-logo {
		flex: 0 1 clamp(132px, 11.111vw, 200px) !important;
		min-width: 132px;
		width: clamp(132px, 11.111vw, 200px) !important;
	}

	.elementor-location-header .jp-native-header.elementor-section .jp-col-nav {
		display: flex !important;
		flex: 1 1 auto !important;
		min-width: 0;
		width: auto !important;
	}

	.elementor-location-header .jp-native-header.elementor-section .jp-col-nav > .elementor-widget-wrap,
	.elementor-location-header .jp-native-header.elementor-section .jp-native-menu,
	.elementor-location-header .jp-native-header.elementor-section .jp-nav-menu-panel,
	.elementor-location-header .jp-native-header.elementor-section .jp-nav-menu {
		min-width: 0;
		width: 100% !important;
	}

	.elementor-location-header .jp-native-header.elementor-section .jp-nav-menu {
		align-items: center;
		display: flex;
		flex-wrap: nowrap;
		justify-content: center;
	}

	.elementor-location-header .jp-native-header.elementor-section .jp-nav-menu > li > a {
		font-size: clamp(12px, 1.172vw, 16px) !important;
		padding-inline: clamp(8px, 1.1vw, 20px) !important;
		white-space: nowrap;
	}

	.elementor-location-header .jp-native-header.elementor-section .jp-col-cta,
	.elementor-location-header .jp-native-header.elementor-section .jp-native-cta {
		flex: 0 0 auto !important;
		min-width: 0;
		width: auto !important;
	}

	.elementor-location-header .jp-native-header.elementor-section .jp-native-cta .elementor-button {
		font-size: clamp(12px, 1.172vw, 16px) !important;
		padding-inline: clamp(14px, 1.556vw, 28px) !important;
		width: auto !important;
	}
}

/*
 * Elementor owns the mobile/tablet type controls. Interpolate only across
 * the laptop/desktop range that Elementor cannot express continuously.
 */
@media (min-width: 1025px) and (max-width: 1799px) {
	body.home .elementor-element.elementor-element-jphero-title .elementor-heading-title {
		font-size: clamp(64px, min(6.111vw, 9.41svh), 110px) !important;
		letter-spacing: clamp(-5.5px, -0.306vw, -2px) !important;
		line-height: 0.92 !important;
	}





	.jp-blog-page .jp-blog-hero .elementor-heading-title {
		font-size: clamp(76px, min(5.556vw, 8.55svh), 100px) !important;
		line-height: 1 !important;
	}

	body.jp-author-profile-page .elementor-element-jra-title:not(.is-long) .elementor-heading-title {
		font-size: clamp(56px, min(5.6vw, 8.62svh), 100.8px) !important;
		line-height: 0.96 !important;
	}



	body.jp-contact-page .jp-contact-hero-title .elementor-heading-title {
		font-size: clamp(44px, min(3vw, 4.62svh), 54px) !important;
		line-height: 0.98 !important;
	}



	body.jp-know-page .jp-know-hero-title .elementor-heading-title {
		font-size: clamp(48px, min(4.444vw, 6.84svh), 80px) !important;
		line-height: 1.05 !important;
	}
}

/*
 * Proportional laptop canvas.
 *
 * Elementor's desktop values are authored against 1800 x 1169. Between its
 * tablet breakpoint (1024) and that reference there is no native controller,
 * so the fixed desktop pixels are interpolated here. `min(vw, svh)` follows
 * the most restrictive axis: short laptop screens no longer enlarge the
 * composition or hide a CTA below an overlapping section.
 */
@media (min-width: 1025px) and (max-width: 1799px) {
	:root {
		--jp-laptop-scale: clamp(0.72, calc(100vw / 1800px), 1);
		--jp-scale-120: clamp(76px, min(6.667vw, 10.265svh), 120px);
		--jp-scale-100: clamp(64px, min(5.556vw, 8.554svh), 100px);
		--jp-scale-80: clamp(52px, min(4.444vw, 6.843svh), 80px);
		--jp-scale-60: clamp(40px, min(3.333vw, 5.133svh), 60px);
		--jp-scale-40: clamp(28px, min(2.222vw, 3.422svh), 40px);
		--jp-overlap-118: clamp(72px, min(6.556vw, 10.094svh), 118px);
		--jp-overlap-104: clamp(64px, min(5.778vw, 8.897svh), 104px);
		--jp-overlap-84: clamp(54px, min(4.667vw, 7.186svh), 84px);
		--jp-overlap-70: clamp(44px, min(3.889vw, 5.988svh), 70px);
		--jp-overlap-40: clamp(28px, min(2.222vw, 3.422svh), 40px);
		--jp-overlap-160: clamp(96px, min(8.889vw, 13.687svh), 160px);
	}

	/* Home */
	body.home .elementor-element.elementor-element-jphero1,
	body.home .elementor-element.elementor-element-jphero1 > .elementor-container {
		height: clamp(680px, min(50vw, 76.99svh), 900px) !important;
		min-height: clamp(680px, min(50vw, 76.99svh), 900px) !important;
	}

	body.home .elementor-element.elementor-element-jphero1 .jp-hero-more {
		bottom: clamp(42px, 3.556vw, 64px) !important;
	}

	body.home .elementor-element.elementor-element-jplogos1 {
		height: clamp(84px, min(5.556vw, 8.554svh), 100px) !important;
		min-height: clamp(84px, min(5.556vw, 8.554svh), 100px) !important;
	}

	body.home .elementor-element.elementor-element-jpabout1,
	body.home .elementor-element.elementor-element-jpabout1 > .elementor-container {
		height: clamp(400px, min(26.056vw, 40.12svh), 469px) !important;
		min-height: clamp(400px, min(26.056vw, 40.12svh), 469px) !important;
	}

	body.home .elementor-element.elementor-element-jpstats1 {
		box-sizing: border-box;
		height: clamp(460px, min(33.111vw, 50.984svh), 596px) !important;
		min-height: clamp(460px, min(33.111vw, 50.984svh), 596px) !important;
		margin-top: var(--jp-scale-60) !important;
		padding-block: var(--jp-scale-40) !important;
	}

	body.home .elementor-element.elementor-element-jpstats1 > .elementor-container {
		height: 100% !important;
		min-height: 0 !important;
		padding-top: var(--jp-scale-40) !important;
		padding-bottom: var(--jp-scale-60) !important;
	}

	body.home .elementor-element.elementor-element-jpservices1 .jp-services-column > .elementor-widget-wrap {
		padding-top: var(--jp-scale-80) !important;
		padding-bottom: var(--jp-scale-80) !important;
	}

	body.home .elementor-element.elementor-element-jpservices1 .jp-service-row {
		box-sizing: border-box;
		height: clamp(150px, min(10.278vw, 15.825svh), 185px) !important;
		min-height: clamp(150px, min(10.278vw, 15.825svh), 185px) !important;
		padding-top: clamp(32px, min(2.278vw, 3.508svh), 41px) !important;
		padding-bottom: clamp(32px, min(2.222vw, 3.422svh), 40px) !important;
	}

	body.home .elementor-element.elementor-element-jp-objective1 {
		padding-top: var(--jp-scale-100) !important;
		padding-bottom: var(--jp-scale-120) !important;
	}

	body.home .elementor-element.elementor-element-jp-faq1 {
		margin-top: calc(-1 * var(--jp-overlap-160)) !important;
	}

	body.home .elementor-element.elementor-element-jp-faq-grid {
		margin-top: 0 !important;
		padding-top: var(--jp-scale-100) !important;
		padding-bottom: var(--jp-scale-80) !important;
	}

	/* Services listing */






	/* Single service */






	/* About */








	/* Method */








	/* Know */
	body.jp-know-page .jp-know-hero,
	body.jp-know-page .jp-know-hero > .elementor-container {
		height: auto !important;
		min-height: clamp(430px, min(27.944vw, 43.029svh), 503px) !important;
	}

	body.jp-know-page .jp-know-pillars {
		margin-top: calc(-1 * var(--jp-overlap-70)) !important;
	}

	body.jp-know-page .jp-know-faq {
		margin-top: calc(-1 * var(--jp-overlap-104)) !important;
	}

	/* Blog and author */
	body.jp-blog-page .jp-blog-hero {
		height: auto !important;
		min-height: clamp(440px, min(28.278vw, 43.541svh), 509px) !important;
		padding-top: clamp(140px, min(10vw, 15.398svh), 180px) !important;
		padding-bottom: var(--jp-scale-80) !important;
	}

	body.jp-author-profile-page .jp-author-hero {
		height: auto !important;
		min-height: clamp(720px, min(52.667vw, 81.095svh), 948px) !important;
		padding-top: var(--jp-scale-100) !important;
		padding-bottom: calc(var(--jp-scale-100) + var(--jp-overlap-40)) !important;
	}

	body.jp-author-profile-page .jp-author-main-image img {
		height: clamp(520px, min(36.111vw, 55.603svh), 650px) !important;
	}

}

/* Elementor tablet values win over the legacy 820px home rule at 921-1024. */
@media (min-width: 921px) and (max-width: 1024px) {
	body.home .elementor-element.elementor-element-jphero1,
	body.home .elementor-element.elementor-element-jphero1 > .elementor-container {
		height: 760px !important;
		min-height: 760px !important;
	}

	body.home .elementor-element.elementor-element-jphero1 .jp-hero-more {
		bottom: 24px !important;
	}
}

/* Home: keep the decorative watermark from defining the document width. */
@media (min-width: 921px) and (max-width: 1279px) {
	body.home .elementor-element.elementor-element-jpwatermark1 .jp-watermark-image {
		max-width: 100vw;
		width: 100vw;
	}

	body.home .elementor-element.elementor-element-jpabout1 .jp-about-title .elementor-heading-title {
		font-size: clamp(38px, calc(26.1px + 1.161vw), 47px) !important;
		line-height: 1.328 !important;
	}
}

/* Services: remove the 760px -> 900px jump around the former 920px breakpoint. */
@media (min-width: 768px) and (max-width: 1024px) {
	/* Mirror Elementor's tablet values where legacy section CSS is more specific. */



}

/* On compact Services layouts the desktop quick-links rail must not remain
 * positioned outside the one-column hero canvas. Elementor keeps the left
 * content as the sole hero column at these breakpoints. */


/*
 * Services hero — mobile and vertical tablet.
 * Figma node 108:20 uses the service index as the first hero block, then the
 * copy and stacked CTAs. Elementor owns the content; this only remaps the
 * existing Elementor columns for compact devices.
 */




/* Decorative/footer artwork may intentionally exceed its visual rail; clip it
 * to the page canvas so it cannot create a horizontal scroll or shift controls. */
@media (max-width: 1279px) {
	body.jp-know-page .jp-know-filter {
		max-width: calc(100vw - 32px);
	}




}

/*
 * Single service hero — mobile and vertical tablet.
 * Figma node 110:19. Elementor keeps the content widgets; CSS only changes
 * the responsive composition that Elementor cannot express continuously.
 */
@media (max-width: 1024px) {


































	/*
	 * About hero — mobile and vertical tablet.
	 * Figma node 142:33. Keep Elementor widgets/content, but normalize the
	 * responsive canvas to the single-service hero rhythm requested by the
	 * client.
	 */






















	/*
	 * Single service detail — Contexto / Qué incluye / Qué obtienes.
	 * Figma node 104:1440 keeps this whole block as a compact mobile/tablet
	 * composition: smaller watermark, horizontal cards, then the white results
	 * panel with heading before image.
	 */







































































































}









/* Blog featured story and newsletter retain the reference two-column composition. */
@media (min-width: 768px) and (max-width: 1365px) {
	.jp-blog-featured-section .elementor-element-jpb15w {
		margin-left: 0 !important;
	}

	.jp-blog-featured-card,
	.jp-blog-featured-dynamic-widget,
	.jp-blog-featured-dynamic-widget .elementor-widget-container,
	.jp-blog-featured-dynamic-widget .elementor-shortcode,
	.jp-blog-featured-dynamic {
		height: auto !important;
		min-height: 0 !important;
		width: 100% !important;
	}

	.jp-blog-featured-dynamic {
		display: grid;
		grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
		gap: var(--jp-fluid-gap);
	}

	.jp-blog-featured-media,
	.jp-blog-featured-copy,
	.jp-blog-featured-dynamic__image,
	.jp-blog-featured-dynamic__content {
		flex: 0 1 auto !important;
		margin-left: 0 !important;
		max-width: none !important;
		min-width: 0;
		width: 100% !important;
	}

	.jp-blog-featured-dynamic__image,
	.jp-blog-featured-media .elementor-widget-image,
	.jp-blog-featured-media .elementor-widget-container,
	.jp-blog-featured-media .elementor-widget-image img {
		aspect-ratio: 8 / 5;
		height: auto !important;
		width: 100% !important;
	}

	.jp-blog-featured-dynamic__content,
	.jp-blog-featured-copy {
		padding: clamp(12px, 2vw, 28px) 0 !important;
	}

	.jp-blog-featured-dynamic__title,
	.jp-blog-featured-dynamic__excerpt {
		max-width: 100%;
		width: 100% !important;
	}

	.jp-blog-featured-dynamic__title {
		font-size: clamp(30px, 3.516vw, 48px);
		line-height: 1.05;
		overflow-wrap: anywhere;
	}

	.jp-blog-newsletter {
		align-items: end;
		gap: var(--jp-fluid-gap);
	}

	.jp-blog-newsletter .jp-blog-newsletter-info,
	.jp-blog-newsletter .elementor-element-jpb31w {
		flex: 1 1 0 !important;
		max-width: none !important;
		min-width: 0;
		width: auto !important;
	}

	.jp-blog-newsletter .elementor-form-fields-wrapper {
		max-width: 100%;
		width: 100% !important;
	}

	.jp-blog-newsletter .elementor-field-group.elementor-field-type-email {
		flex: 1 1 auto;
		min-width: 0;
		width: auto;
	}
}

/* About: replace fixed 1272px grids with proportional tracks on smaller canvases. */




/* About / Personalidad: the desktop section covers Misión y Visión on scroll.
 * Mobile and tablet remain in normal document flow (see the <=1024px rules below). */


/*
 * About / Origen — mobile and vertical tablet composition.
 * Figma node 142:53. Elementor owns the content widgets; this only changes
 * their responsive ordering, sizing and spacing.
 */




/*
 * About / En cifras — mobile and narrow tablet carousel.
 * Mirrors the approved Home stats behaviour: horizontal track until the iPad
 * Pro breakpoint, where the existing two-by-two grid remains active.
 */




/*
 * About / Misión y visión — mobile composition.
 * Figma node 142:100.
 */


/*
 * About / Personalidad — mobile list typography.
 * Figma node 142:114.
 * On mobile/tablet this section must flow after Misión/Visión: no cover
 * animation, no rounded overlap, and no negative pull over the previous block.
 */






/*
 * About / Equipo — mobile carousel.
 * Figma node 142:139. No arrows; narrow cards so the next one remains visible.
 */


/* Small-screen interaction targets without changing the visual language. */
@media (max-width: 767px) {
	.elementor-location-header .jp-native-header.elementor-section .jp-nav-menu-toggle,
	.jp-footer-social,
	.jp-blog-category-filter,
	body.jp-know-page .jp-know-filter {
		min-height: 44px !important;
	}

	.elementor-location-header .jp-native-header.elementor-section .jp-nav-menu-toggle,
	.jp-footer-social {
		min-width: 44px !important;
	}
}

/*
 * Mobile header dropdown: Figma node 74:68.
 * Keep this in the final responsive layer so the open panel is not affected by
 * older Customizer rules for the legacy white dropdown.
 */
@media (max-width: 920px) {
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) {
		align-content: flex-start !important;
		align-items: flex-start !important;
		background: rgba(25, 25, 25, 0.8) !important;
		border-color: transparent !important;
		border-radius: 25px !important;
		box-shadow: none !important;
		-webkit-backdrop-filter: blur(12px);
		backdrop-filter: blur(12px);
		height: auto !important;
		justify-content: flex-start !important;
		min-height: 0 !important;
		margin: 8px 10px 0 !important;
		overflow: visible !important;
		padding: 0 10px 40px 10px !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) > .elementor-container {
		align-self: flex-start !important;
		height: 78px !important;
		margin-top: 0 !important;
		min-height: 78px !important;
		padding: 0 15px 0 10px !important;
		top: 0 !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .elementor-column,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .elementor-widget-wrap {
		height: 78px !important;
		min-height: 78px !important;
		align-content: center !important;
		align-items: center !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-logo-light {
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-logo-dark {
		opacity: 0 !important;
		pointer-events: none !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-logo-light,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-logo-dark {
		top: calc(50% + 1px) !important;
		transform: translateY(-50%) !important;
		width: 148px !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-logo-light img,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-logo-dark img {
		height: 38px !important;
		width: 132px !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-menu .jp-nav-menu-toggle {
		border-color: rgba(255,255,255,.65) !important;
		color: #dafba2 !important;
		height: 40px !important;
		top: 0 !important;
		width: 40px !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-menu .jp-nav-menu-toggle-icon {
		background: #dafba2 !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] {
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		display: flex !important;
		flex-direction: column;
		gap: 24px;
		left: 0 !important;
		margin: 0 !important;
		overflow: visible !important;
		padding: 0 !important;
		position: static !important;
		right: auto !important;
		top: auto !important;
		width: 100% !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-mobile-menu-cta {
		display: flex;
		justify-content: flex-start;
		width: 100%;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-mobile-menu-cta .elementor-button,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-mobile-menu-cta-button {
		background: #dafba2 !important;
		border: 0 !important;
		border-radius: 999px !important;
		color: #00352d !important;
		display: inline-flex !important;
		font-family: Inter, "DM Sans", Arial, sans-serif !important;
		font-size: 16px !important;
		font-weight: 700 !important;
		line-height: normal !important;
		min-height: 43px !important;
		padding: 12px 28px !important;
		width: auto !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-mobile-menu-cta .elementor-button *,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-mobile-menu-cta-button * {
		color: #00352d !important;
		fill: #00352d !important;
		stroke: #00352d !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu {
		align-items: flex-start !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 4px !important;
		width: 100% !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu > li {
		width: auto !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-link {
		align-items: center !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 10px !important;
		color: #fff !important;
		display: flex !important;
		font-family: Inter, "DM Sans", Arial, sans-serif !important;
		font-size: 16px !important;
		font-weight: 500 !important;
		gap: 6px !important;
		justify-content: flex-start !important;
		line-height: normal !important;
		padding: 10px 16px !important;
		white-space: nowrap !important;
		width: auto !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .sub-arrow {
		color: #fff !important;
		display: inline-flex !important;
		height: 10px;
		width: 10px;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .sub-menu {
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		display: block !important;
		margin: 0 !important;
		padding: 0 0 0 16px !important;
		position: static !important;
		width: auto !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .sub-menu .jp-nav-menu-link {
		color: rgba(255,255,255,.78) !important;
		font-size: 15px !important;
		padding: 8px 16px !important;
	}

	/*
	 * Final mobile menu geometry. The dropdown node sits inside the hamburger
	 * column, so it must be anchored to the header instead of flowing inside
	 * that column.
	 */
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) {
		left: auto !important;
		margin-inline: 10px !important;
		min-height: 464px !important;
		right: auto !important;
		top: auto !important;
		width: calc(100% - 20px) !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]):has(.menu-item.is-submenu-open) {
		min-height: 530px !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-col-logo,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-col-nav,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-col-cta {
		position: static !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-menu {
		position: static !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-nav-menu-widget {
		position: static !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-menu .jp-nav-menu-toggle {
		height: 44px !important;
		min-height: 44px !important;
		min-width: 44px !important;
		position: absolute !important;
		right: 10px !important;
		top: 17px !important;
		width: 44px !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-logo-light,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-logo-dark {
		top: calc(50% - 5px) !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-menu .jp-nav-menu-toggle {
		top: 12px !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] {
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 24px !important;
		left: -1px !important;
		max-height: none !important;
		min-width: 0 !important;
		overflow: visible !important;
		padding: 0 !important;
		position: absolute !important;
		right: -1px !important;
		top: 102px !important;
		transform: none !important;
		width: auto !important;
		z-index: 2 !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .elementor-nav-menu--dropdown.jp-nav-menu-panel[aria-hidden="false"] {
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 24px !important;
		left: -1px !important;
		max-height: none !important;
		overflow: visible !important;
		padding: 0 !important;
		position: absolute !important;
		right: -1px !important;
		top: 102px !important;
		transform: none !important;
		width: auto !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] .jp-nav-menu {
		align-items: flex-start !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 4px !important;
		margin: 0 !important;
		padding: 0 !important;
		width: auto !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] .jp-nav-menu > li,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] .jp-nav-menu-link {
		width: auto !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] .sub-menu {
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		display: none !important;
		margin: 0 !important;
		padding: 2px 0 4px 16px !important;
		position: static !important;
		width: auto !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] .menu-item.is-submenu-open > .sub-menu {
		display: block !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] .sub-menu .jp-nav-menu-link {
		color: #fff !important;
		font-size: 15px !important;
		font-weight: 500 !important;
		padding: 8px 16px !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"],
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] *,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-mobile-menu-cta {
		color: #fff !important;
		fill: #fff !important;
		stroke: #fff !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] svg,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] svg * {
		fill: #fff !important;
		stroke: #fff !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] .jp-mobile-menu-cta .elementor-button,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] .jp-mobile-menu-cta-button {
		background: #dafba2 !important;
		color: #00352d !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] .jp-mobile-menu-cta .elementor-button *,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-panel[aria-hidden="false"] .jp-mobile-menu-cta-button * {
		color: #00352d !important;
		fill: #00352d !important;
		stroke: #00352d !important;
	}
}

/*
 * Services page / Service 01 — mobile and tablet.
 * Figma node 108:32 maps the existing Elementor widgets into a single card:
 * service label + decorative number, heading, image, body/list, CTA.
 */






@media (max-width: 1024px) {




























































	/* Services 02–04 inherit the same mobile/tablet card composition as
	 * Service 01 without changing the desktop alternating layout.
	 */













































































}





/*
 * Single service contact form.
 * Mirrors the approved Home contact form skin while keeping the page-specific
 * copy and Elementor structure.
 */








































/*
 * Contact textarea behaviour.
 * All JP/CF7 message fields should expand by user resize instead of showing
 * an internal scrollbar.
 */
.jp-cf7-message textarea,
textarea.wpcf7-textarea {
	overflow: hidden !important;
	resize: vertical !important;
}

/*
 * Method page / Hero — mobile and tablet portrait.
 * Figma node 129:35: 393x629, 20px side padding, 138px top padding,
 * centered copy, and two 219x53 CTAs stacked with 12px gap.
 */




/* Method page / Tres ejes cards: same visual system as Home objective cards. */






































/* Method page / Hoja de ruta: mobile horizontal carousel.
 * Figma node 129:130. Desktop keeps the existing timeline; mobile becomes a
 * horizontal scroll-snap rail with the destination pill below it.
 */


/* Method page / Nuestro método comparison: Figma mobile node 129:89.
 * Tablet keeps the desktop table layout.
 */




.jp-contact-title .elementor-heading-title em,
body.home .jp-contact-title .elementor-heading-title em,
body.home .jp-contact-title .elementor-heading-title em {
	color: #dafba2 !important;
}





/*
 * Shared contact template.
 * The same Elementor template is embedded across multiple pages; these rules
 * prevent page-specific Elementor/CF7 defaults from changing the form skin.
 */
.jp-contact-card,
.jp-contact-card * {
	box-sizing: border-box !important;
}

.jp-contact-outer .elementor-widget-image {
	text-align: center !important;
}

.jp-contact-card .elementor-widget,
.jp-contact-card .elementor-widget-container,
.jp-contact-card .wpcf7,
.jp-contact-card .wpcf7-form {
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
}

.jp-contact-card .wpcf7-form {
	display: flex !important;
	flex-direction: column !important;
}

.jp-contact-card .wpcf7-form > p,
.jp-contact-card .jp-cf7-row,
.jp-contact-card .jp-cf7-row > p {
	margin: 0 !important;
	padding: 0 !important;
}

.jp-contact-card .jp-cf7-row {
	display: grid !important;
	width: 100% !important;
}

.jp-contact-card .jp-cf7-row > p {
	display: contents !important;
}

.jp-contact-card br {
	display: none !important;
}

.jp-contact-card .jp-cf7-field {
	display: flex !important;
	flex-direction: column !important;
	margin: 0 !important;
	min-width: 0 !important;
	padding: 0 !important;
	width: 100% !important;
}

.jp-contact-card .jp-cf7-label {
	display: block !important;
}

.jp-contact-card .wpcf7-form-control-wrap {
	display: block !important;
	width: 100% !important;
}

.jp-contact-card input:not([type="hidden"]):not([type="submit"]),
.jp-contact-card textarea,
.jp-contact-card select {
	appearance: none !important;
	box-shadow: none !important;
	display: block !important;
	line-height: normal !important;
	margin: 0 !important;
	outline: none !important;
	width: 100% !important;
}

.jp-contact-card textarea {
	overflow: hidden !important;
}

.jp-contact-card input[type="submit"],
.jp-contact-card .wpcf7-submit,
.jp-contact-card button[type="submit"] {
	align-items: center !important;
	appearance: none !important;
	border: 0 !important;
	box-shadow: none !important;
	cursor: pointer !important;
	display: block !important;
	justify-content: center !important;
	line-height: normal !important;
	margin: 0 !important;
	text-align: center !important;
	text-decoration: none !important;
	width: 100% !important;
}

.jp-contact-card .wpcf7-spinner {
	display: none !important;
}

.jp-contact-card .wpcf7-response-output {
	border-color: rgba(255, 255, 255, 0.22) !important;
	border-radius: 12px !important;
	color: #fff !important;
	font-family: Inter, sans-serif !important;
	font-size: 14px !important;
	line-height: 1.35 !important;
	margin: 0 !important;
	padding: 10px 12px !important;
}





@media (max-width: 920px) {
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"])),
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"])) > .elementor-container,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"])) .elementor-column,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"])) .elementor-widget-wrap {
		align-content: center !important;
		align-items: center !important;
		height: 68px !important;
		min-height: 68px !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"])) .jp-native-logo-light,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"])) .jp-native-logo-dark {
		top: 50% !important;
		transform: translateY(-50%) !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"])) .jp-native-menu,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"])) .jp-native-menu .elementor-widget-container,
	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"])) .jp-native-menu .jp-nav-menu-widget {
		align-items: center !important;
		display: flex !important;
		height: 44px !important;
		justify-content: center !important;
		min-height: 44px !important;
	}

	body:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"])) .jp-native-menu .jp-nav-menu-toggle {
		margin: 0 !important;
		top: -1px !important;
		transform: none !important;
	}
}

/* Header links/buttons remain clickable while the wrapper stays click-through,
 * so sticky heroes below are not blocked by header layout boxes. */
body:not(.elementor-editor-active) .elementor-location-header .jp-native-header a,
body:not(.elementor-editor-active) .elementor-location-header .jp-native-header button {
	pointer-events: auto !important;
}

/*
 * Canonical mobile/tablet header states.
 * Figma: sticky 74:36, expanded navigation 74:67.
 *
 * This deliberately includes the open state in the selector so it wins over
 * the retired white Elementor dropdown rules without changing desktop.
 */
@media (max-width: 920px) {
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section {
		height: 78px !important;
		margin: 10px 20px 0 !important;
		width: calc(100% - 40px) !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.elementor-sticky--active {
		left: 20px !important;
		margin: 0 !important;
		right: 20px !important;
		top: 10px !important;
		width: calc(100% - 40px) !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section > .elementor-container,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .elementor-column,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .elementor-widget-wrap,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-nav-menu-toggle[aria-expanded="true"])) > .elementor-container,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-nav-menu-toggle[aria-expanded="true"])) .elementor-column,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-nav-menu-toggle[aria-expanded="true"])) .elementor-widget-wrap {
		align-content: center !important;
		align-items: center !important;
		height: 76px !important;
		min-height: 76px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section > .elementor-container {
		padding: 0 15px 0 10px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-col-logo {
		flex-basis: 200px !important;
		width: 200px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-logo-light,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-logo-dark,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky .jp-native-logo-light,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky .jp-native-logo-dark {
		height: 40px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: 200px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-logo-light img,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-logo-dark img {
		height: 40px !important;
		width: 139.98px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-nav-menu-toggle[aria-expanded="true"])) {
		-webkit-backdrop-filter: blur(12px) !important;
		backdrop-filter: blur(12px) !important;
		background: rgba(25, 25, 25, 0.2) !important;
		border: 1px solid rgba(0, 53, 45, 0.08) !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		box-sizing: border-box !important;
		height: 78px !important;
		min-height: 78px !important;
		overflow: hidden !important;
		padding: 0 !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-nav-menu-toggle[aria-expanded="true"])) .jp-native-logo-light {
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-nav-menu-toggle[aria-expanded="true"])) .jp-native-logo-dark {
		opacity: 0 !important;
		pointer-events: none !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-toggle,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:not(:has(.jp-nav-menu-toggle[aria-expanded="true"])) .jp-native-menu .jp-nav-menu-toggle {
		border-color: rgba(255, 255, 255, 0.65) !important;
		color: #dafba2 !important;
		height: 44px !important;
		margin: 0 !important;
		min-height: 44px !important;
		min-width: 44px !important;
		top: 0 !important;
		transform: scale(0.9091) !important;
		width: 44px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section .jp-native-menu .jp-nav-menu-toggle-icon,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky .jp-native-menu .jp-nav-menu-toggle-icon {
		background: #dafba2 !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) {
		-webkit-backdrop-filter: blur(12px) !important;
		backdrop-filter: blur(12px) !important;
		background: rgba(25, 25, 25, 0.8) !important;
		border: 1px solid transparent !important;
		border-radius: 25px !important;
		box-shadow: none !important;
		height: auto !important;
		margin: 10px 20px 0 !important;
		min-height: 471px !important;
		overflow: visible !important;
		padding: 0 0 40px !important;
		width: calc(100% - 40px) !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]):has(.menu-item.is-submenu-open) {
		min-height: 512px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) > .elementor-container {
		height: 76px !important;
		min-height: 76px !important;
		padding: 0 15px 0 10px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .elementor-column,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .elementor-widget-wrap {
		height: 76px !important;
		min-height: 76px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-logo-light {
		opacity: 1 !important;
		pointer-events: auto !important;
		height: 40px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: 200px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-logo-dark {
		opacity: 0 !important;
		pointer-events: none !important;
		height: 40px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: 200px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-logo-light img,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-logo-dark img {
		height: 40px !important;
		width: 139.98px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-menu .jp-nav-menu-toggle {
		border-color: rgba(255, 255, 255, 0.65) !important;
		color: #dafba2 !important;
		right: 15px !important;
		top: 16px !important;
		transform: scale(0.9091) !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section.jp-header-sticky:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-menu .jp-nav-menu-toggle {
		top: 16px !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-native-menu .elementor-nav-menu--dropdown.jp-nav-menu-panel[aria-hidden="false"] {
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 24px !important;
		left: 15px !important;
		margin: 0 !important;
		max-height: none !important;
		overflow: visible !important;
		padding: 0 !important;
		position: absolute !important;
		right: 20px !important;
		top: 102px !important;
		transform: none !important;
		width: auto !important;
	}

	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-nav-menu-panel[aria-hidden="false"] .jp-nav-menu-link,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-nav-menu-panel[aria-hidden="false"] .jp-nav-menu-link:hover,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-nav-menu-panel[aria-hidden="false"] .jp-nav-menu-link:focus,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-nav-menu-panel[aria-hidden="false"] .jp-nav-menu-link:focus-visible,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-nav-menu-panel[aria-hidden="false"] .jp-nav-menu-link:active,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-nav-menu-panel[aria-hidden="false"] .jp-nav-menu-link.elementor-item-active,
	body.jp-site:not(.elementor-editor-active) .elementor-location-header .jp-native-header.elementor-section:has(.jp-native-menu .jp-nav-menu-toggle[aria-expanded="true"]) .jp-nav-menu-panel[aria-hidden="false"] .jp-nav-menu-link.highlighted {
		background: transparent !important;
		color: #fff !important;
		fill: #fff !important;
		stroke: #fff !important;
	}
}

/* JP HERO FIGMA ALIGNMENT 20260831 */
@media (min-width: 1025px) {
	body.home .elementor-element.elementor-element-jphero1,
	body.home .elementor-element.elementor-element-jphero1 > .elementor-container { height: clamp(648px, 62.5vw, 900px) !important; min-height: clamp(648px, 62.5vw, 900px) !important; zoom: 1 !important; width: 100% !important; }
	body.home .elementor-element.elementor-element-jphero-title .elementor-heading-title { font-size: clamp(64px, 7.639vw, 110px) !important; line-height: .88 !important; letter-spacing: clamp(-5.5px, -.382vw, -2px) !important; }
	body.jp-services-page .jp-services-hero, body.jp-services-page .jp-services-hero > .elementor-container { height: clamp(680px, 57.5vw, 828px) !important; min-height: clamp(680px, 57.5vw, 828px) !important; }
	body.jp-services-page .jp-services-left { width: 75% !important; }
	body.jp-services-page .jp-services-right { width: 25% !important; }
	body.jp-services-page .jp-services-title .elementor-heading-title { font-size: clamp(70px, 7.153vw, 103px) !important; line-height: 1.033 !important; letter-spacing: clamp(-5.04px, -.35vw, -1.8px) !important; }
	body.jp-single-service-page .jp-ss-hero { height: auto !important; min-height: clamp(560px, 46.458vw, 669px) !important; }
	body.jp-single-service-page .jp-ss-hero-title, body.jp-single-service-page .jp-ss-hero-title .elementor-heading-title { max-width: 940px !important; }
	body.jp-single-service-page .jp-ss-hero-title .elementor-heading-title { font-size: clamp(64px, 7.153vw, 103px) !important; line-height: .886 !important; letter-spacing: clamp(-3.84px, -.267vw, -1.8px) !important; }
	body.jp-method-page .jp-method-hero, body.jp-method-page .jp-method-hero > .elementor-container { height: auto !important; min-height: clamp(680px, 57.847vw, 833px) !important; }
	body.jp-method-page .jp-method-hero-title .elementor-heading-title { font-size: clamp(44px, 5.417vw, 78px) !important; line-height: .923 !important; letter-spacing: clamp(-3.46px, -.24vw, -1.5px) !important; }
	body.jp-about-page .jp-about-hero { height: auto !important; min-height: clamp(700px, 56.944vw, 820px) !important; }
	body.jp-about-page .jp-about-hero-title .elementor-heading-title { font-size: clamp(62px, 5.556vw, 80px) !important; line-height: 1.08 !important; }
	body.jp-author-profile-page .jp-author-hero { height: auto !important; min-height: clamp(720px, 65.833vw, 948px) !important; }
	body.jp-author-profile-page .jp-author-title:not(.is-long) .elementor-heading-title { font-size: clamp(56px, 7vw, 100.8px) !important; line-height: .95 !important; }
	body.jp-blog-page .jp-blog-hero { height: 448.67px !important; min-height: 448.67px !important; padding-top: 160px !important; padding-bottom: 60px !important; }
	body.jp-blog-page .jp-blog-hero .elementor-heading-title { font-size: clamp(64px, 6vw, 86.4px) !important; line-height: .98 !important; letter-spacing: clamp(-3.456px, -.24vw, -1.8px) !important; }
	body.jp-know-page .jp-know-hero, body.jp-know-page .jp-know-hero > .elementor-container { height: 503px !important; min-height: 503px !important; }
	body.jp-know-page .jp-know-hero .elementor-column > .elementor-widget-wrap { padding: 146px 70px 141px !important; }
	body.jp-know-page .jp-know-hero-title { margin-top: 4px !important; }
	body.jp-know-page .jp-know-hero-title .elementor-heading-title { font-size: clamp(48px, 5.556vw, 80px) !important; line-height: 1.05 !important; letter-spacing: -2.8px !important; }
	body.jp-know-page .jp-know-hero-text { margin-top: 14px !important; max-width: 734px !important; }
	body.jp-contact-page .jp-contact-hero-title .elementor-heading-title { font-size: clamp(44px, 3.75vw, 54px) !important; line-height: .815 !important; }
}
.single-post .jp-hero-title { text-wrap: balance !important; }
