/*
 * JP Financial — Contacto responsive composition
 * Extracted intact in Phase 5 and loaded only on its consumer pages.
 */

/* Contact-only responsive/cover rules moved from the global responsive layer
 * in Phase 7. This block intentionally precedes the page composition rules:
 * responsive-system.css previously loaded immediately before contacto.css, so
 * this placement preserves the original cascade without page-ID selectors. */
body.jp-contact-page .jp-contact-hero {
	position: sticky !important;
	top: var(--jp-contact-hero-sticky-top, 0px) !important;
	z-index: 1 !important;
}

body.jp-contact-page .jp-contact-visit-title .elementor-heading-title span,
body.jp-contact-page .jp-contact-faq .jp-faq-emphasis,
body.jp-contact-page .jp-contact-faq .elementor-heading-title em {
	background: #98aba6 !important;
	box-decoration-break: clone !important;
	color: #dafba2 !important;
	display: inline !important;
	font-style: italic !important;
	line-height: inherit !important;
	padding: 0 2px 1px !important;
	-webkit-box-decoration-break: clone !important;
}

@media (min-width: 1025px) and (max-width: 1799px) {
	body.jp-contact-page .jp-contact-hero {
		height: auto !important;
		min-height: 100svh;
		overflow: visible;
	}

	body.jp-contact-page .jp-contact-hero > .elementor-container {
		min-height: 0 !important;
	}



	html body.jp-site.jp-contact-page .jp-contact-visit {
		margin-top: 0 !important;
		padding-top: var(--jp-scale-80) !important;
		padding-bottom: var(--jp-scale-80) !important;
	}

	body.jp-contact-page .jp-contact-faq {
		padding-top: var(--jp-scale-100) !important;
		padding-bottom: var(--jp-scale-100) !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	body.jp-contact-page .jp-contact-hero {
		height: auto !important;
		min-height: 100svh;
		overflow: visible;
		padding-bottom: var(--jp-fluid-section-space) !important;
	}

	body.jp-contact-page .jp-contact-hero .elementor-container {
		align-items: stretch !important;
	}

	body.jp-contact-page .jp-contact-hero .elementor-column,
	body.jp-contact-page .jp-contact-hero .elementor-widget-wrap {
		min-width: 0;
	}

	body.jp-contact-page .jp-contact-hero .elementor-heading-title,
	body.jp-contact-page .jp-contact-hero .elementor-widget-container,
	body.jp-contact-page .jp-contact-info-card {
		max-width: 100%;
		width: 100% !important;
	}

	body.jp-contact-page .jp-contact-info-card {
		height: auto;
	}




}

@media (min-width: 768px) and (max-width: 900px) {
	body.jp-contact-page .jp-contact-hero .elementor-container {
		flex-direction: column;
		gap: 48px;
	}

	body.jp-contact-page .jp-contact-hero .elementor-column {
		width: 100% !important;
	}
}

/* Contact page hero: mobile/tablet layout from Figma node 179:274. */
@media (max-width: 1024px) {
	body.jp-contact-page .jp-contact-hero {
		align-items: center !important;
		background: #001208 !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 0 !important;
		height: auto !important;
		min-height: 0 !important;
		overflow: visible !important;
		padding: 120px 20px 112px !important;
	}

	body.jp-contact-page .jp-contact-hero > .elementor-container,
	body.jp-contact-page .jp-contact-hero .elementor-column,
	body.jp-contact-page .jp-contact-hero .elementor-widget-wrap {
		display: contents !important;
	}

	body.jp-contact-page .jp-contact-hero .elementor-widget {
		flex: 0 0 auto !important;
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: 720px !important;
		width: 100% !important;
	}

	body.jp-contact-page .jp-contact-hero .elementor-widget-spacer {
		display: none !important;
	}

	body.jp-contact-page .jp-contact-kicker {
		margin-bottom: 12px !important;
		order: 1 !important;
	}

	body.jp-contact-page .jp-contact-kicker .elementor-heading-title {
		color: #dafba2 !important;
		font-family: Inter, sans-serif !important;
		font-size: 14px !important;
		font-weight: 700 !important;
		letter-spacing: 1.68px !important;
		line-height: 1 !important;
		text-transform: uppercase !important;
	}

	body.jp-contact-page .jp-contact-hero-title {
		margin-bottom: 40px !important;
		order: 2 !important;
	}

	body.jp-contact-page .jp-contact-hero-title .elementor-heading-title {
		color: #ffffff !important;
		font-family: "TWK Everett", Inter, sans-serif !important;
		font-size: 42px !important;
		font-weight: 700 !important;
		letter-spacing: -1px !important;
		line-height: 1 !important;
	}

	body.jp-contact-page .jp-contact-hero-title .elementor-heading-title span {
		color: #dafba2 !important;
		font-style: italic !important;
	}

	body.jp-contact-page .jp-contact-meta-label {
		margin-bottom: 8px !important;
	}

	body.jp-contact-page .jp-contact-meta-label .elementor-heading-title {
		color: rgba(255, 255, 255, 0.6) !important;
		font-family: Inter, sans-serif !important;
		font-size: 14px !important;
		font-weight: 600 !important;
		letter-spacing: 1px !important;
		line-height: 1.15 !important;
		text-transform: uppercase !important;
	}

	body.jp-contact-page .jp-contact-meta-text {
		margin-bottom: 24px !important;
	}

	body.jp-contact-page .jp-contact-meta-text,
	body.jp-contact-page .jp-contact-meta-text p,
	body.jp-contact-page .jp-contact-meta-text .elementor-widget-container {
		color: #ffffff !important;
		font-family: Inter, sans-serif !important;
		font-size: 18px !important;
		font-weight: 500 !important;
		letter-spacing: -0.2px !important;
		line-height: 1.25 !important;
	}

	body.jp-contact-page .jp-contact-address-value,
	body.jp-contact-page .jp-contact-hours-value {
		margin-bottom: 24px !important;
	}

	body.jp-contact-page .jp-contact-address-value,
	body.jp-contact-page .jp-contact-address-value p,
	body.jp-contact-page .jp-contact-hours-value,
	body.jp-contact-page .jp-contact-hours-value p {
		font-size: 16px !important;
		line-height: 1.25 !important;
	}

	body.jp-contact-page .jp-contact-email-label { order: 3 !important; }
	body.jp-contact-page .jp-contact-email-value { order: 4 !important; }
	body.jp-contact-page .jp-contact-phone-label { order: 5 !important; }
	body.jp-contact-page .jp-contact-phone-value { order: 6 !important; }
	body.jp-contact-page .jp-contact-address-label { order: 7 !important; }
	body.jp-contact-page .jp-contact-address-value { order: 8 !important; }
	body.jp-contact-page .jp-contact-hours-label { order: 9 !important; }
	body.jp-contact-page .jp-contact-hours-value { order: 10 !important; }

	body.jp-contact-page .jp-contact-social-widget {
		margin-bottom: 48px !important;
		order: 11 !important;
	}

	body.jp-contact-page .jp-contact-socials {
		align-items: center !important;
		display: flex !important;
		gap: 8px !important;
		justify-content: space-between !important;
		width: 100% !important;
	}

	body.jp-contact-page .jp-contact-socials a {
		align-items: center !important;
		background: rgba(255, 255, 255, 0.06) !important;
		border: 1px solid rgba(255, 255, 255, 0.15) !important;
		border-radius: 999px !important;
		color: rgba(255, 255, 255, 0.75) !important;
		display: inline-flex !important;
		flex: 1 1 0 !important;
		font-family: Inter, sans-serif !important;
		font-size: 16px !important;
		font-weight: 500 !important;
		height: 32px !important;
		justify-content: center !important;
		line-height: 1 !important;
		padding: 8px 10px !important;
		text-decoration: none !important;
		white-space: nowrap !important;
	}

	body.jp-contact-page .jp-contact-booking-widget {
		margin-bottom: 24px !important;
		order: 12 !important;
	}

























































	body.jp-contact-page .jp-contact-info-widget {
		order: 13 !important;
	}

	body.jp-contact-page .jp-contact-info-card {
		background: rgba(255, 255, 255, 0.15) !important;
		border: 1px solid rgba(218, 251, 162, 0.15) !important;
		border-radius: 12px !important;
		box-shadow: none !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 6px !important;
		height: auto !important;
		margin: 0 !important;
		padding: 16px !important;
		width: 100% !important;
	}

	body.jp-contact-page .jp-contact-info-card strong {
		color: #dafba2 !important;
		font-family: Inter, sans-serif !important;
		font-size: 14px !important;
		font-weight: 700 !important;
		letter-spacing: 1px !important;
		line-height: 1 !important;
		text-transform: uppercase !important;
	}

	body.jp-contact-page .jp-contact-info-card p {
		color: rgba(255, 255, 255, 0.85) !important;
		font-family: Inter, sans-serif !important;
		font-size: 16px !important;
		font-weight: 400 !important;
		line-height: 1.25 !important;
		margin: 0 !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	body.jp-contact-page .jp-contact-hero {
		padding: 128px 40px 88px !important;
	}

	body.jp-contact-page .jp-contact-hero-title .elementor-heading-title {
		font-size: 54px !important;
		line-height: 0.98 !important;
	}
}

@media (max-width: 767px) {
	body.jp-contact-page .jp-contact-hero {
		padding-bottom: 112px !important;
	}
}

/* Contact page: Visítanos covers only the hero with a controlled rounded overlap.
 * It must remain a normal section, not sticky; the hero is the sticky layer
 * underneath. Keep this selector intentionally specific because legacy
 * Customizer CSS is injected after the theme and also controls this transition. */
html body.jp-contact-page .elementor-element.jp-contact-visit.jp-contact-visit {
	border-radius: 40px 40px 0 0 !important;
	margin-top: -40px !important;
	position: relative !important;
	z-index: 2 !important;
}

html body.jp-contact-page .elementor-element.jp-contact-faq,
html body.jp-contact-page .jp-contact-faq {
	margin-top: 0 !important;
	position: relative !important;
	top: auto !important;
	z-index: 1 !important;
}

@media (max-width: 1024px) {
	html body.jp-contact-page .elementor-element.jp-contact-visit.jp-contact-visit {
		border-radius: 32px 32px 0 0 !important;
		margin-top: -32px !important;
	}
}

@media (max-width: 767px) {
	html body.jp-contact-page .elementor-element.jp-contact-visit.jp-contact-visit {
		border-radius: 28px 28px 0 0 !important;
		margin-top: -28px !important;
	}
}

html body.jp-contact-page .elementor-element.jp-contact-faq .jp-faq-emphasis,
html body.jp-contact-page .elementor-element.jp-contact-faq .elementor-heading-title em {
	background: #98aba6 !important;
	box-decoration-break: clone !important;
	color: #dafba2 !important;
	display: inline !important;
	font-style: italic !important;
	line-height: inherit !important;
	padding: 0 2px 1px !important;
	-webkit-box-decoration-break: clone !important;
}

@media (min-width: 1025px) {
	html body.jp-contact-page .elementor-element.jp-contact-faq .jp-faq-title .elementor-heading-title {
		max-width: 620px !important;
		width: max-content !important;
	}
}

/* JP_CONTACT_BOOKING_DEPLOY_START */
body.jp-contact-page .jp-contact-booking-widget{width:100%;}
body.jp-contact-page .jp-contact-booking-card{-webkit-backdrop-filter:blur(18px);align-items:flex-start;backdrop-filter:blur(18px);background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.14);border-radius:20px;box-shadow:0 28px 68px rgba(0,0,0,.18);color:#fff;display:flex;flex-direction:column;gap:24px;margin-left:auto;max-width:640px;padding:clamp(32px,3.2vw,48px);width:100%;}
body.jp-contact-page .jp-contact-booking-card__eyebrow{color:#dafba2;font:700 16px/1 "Inter",sans-serif;letter-spacing:1.68px;text-transform:uppercase;}
body.jp-contact-page .jp-contact-booking-card h2{color:#fff;font:700 clamp(34px,3.1vw,54px)/.98 "TWK Everett",Inter,sans-serif;letter-spacing:-.04em;margin:0;max-width:8.8em;}
body.jp-contact-page .jp-contact-booking-card p{color:rgba(255,255,255,.78);font:400 clamp(17px,1.05vw,20px)/1.42 "Inter",sans-serif;margin:0;max-width:28em;}
body.jp-contact-page .jp-contact-booking-card__info{background:rgba(255,255,255,.12);border:1px solid rgba(218,251,162,.16);border-radius:12px;padding:18px 20px;width:100%;}
body.jp-contact-page .jp-contact-booking-card__info strong{color:#dafba2;display:block;font:700 14px/1 "Inter",sans-serif;letter-spacing:1.2px;margin-bottom:8px;text-transform:uppercase;}
body.jp-contact-page .jp-contact-booking-card__info span{color:rgba(255,255,255,.85);display:block;font:400 16px/1.4 "Inter",sans-serif;}
body.jp-contact-page .jp-contact-booking-card__button{align-items:center;background:#dafba2;border:1px solid #dafba2;border-radius:999px;color:#001c10;display:inline-flex;font:700 16px/1 "Inter",sans-serif;gap:12px;justify-content:center;min-height:56px;padding:0 30px;text-decoration:none;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;white-space:nowrap;}
body.jp-contact-page .jp-contact-booking-card__button:hover,body.jp-contact-page .jp-contact-booking-card__button:focus-visible{background:#00352d;border-color:#dafba2;color:#dafba2;text-decoration:none;transform:translateY(-1px);}
@media (max-width:1024px){body.jp-contact-page .jp-contact-two-step-widget,body.jp-contact-page .jp-contact-booking-widget{margin-bottom:24px!important;order:12!important;}body.jp-contact-page .jp-contact-booking-card{margin-left:auto;margin-right:auto;max-width:720px;padding:28px;}body.jp-contact-page .jp-contact-booking-card h2{font-size:34px;line-height:1;max-width:10em;}}
@media (max-width:767px){body.jp-contact-page .jp-contact-booking-card{border-radius:18px;gap:20px;padding:24px;}body.jp-contact-page .jp-contact-booking-card__eyebrow{font-size:14px;letter-spacing:1.2px;}body.jp-contact-page .jp-contact-booking-card h2{font-size:28px;letter-spacing:-.03em;}body.jp-contact-page .jp-contact-booking-card p{font-size:16px;line-height:1.45;}body.jp-contact-page .jp-contact-booking-card__button{min-height:52px;width:100%;}}
/* JP_CONTACT_BOOKING_DEPLOY_END */
