/*
 * Texas Zoom Mortgage UI v2.
 * Presentation-only layer for Elementor-authored pages and CPT records.
 */

:root {
	--tzm-v2-ink: #07111f;
	--tzm-v2-muted: #58687c;
	--tzm-v2-soft: #eef5ff;
	--tzm-v2-surface: rgba(255, 255, 255, 0.74);
	--tzm-v2-surface-strong: rgba(255, 255, 255, 0.88);
	--tzm-v2-line: rgba(8, 35, 66, 0.1);
	--tzm-v2-glass-line: rgba(255, 255, 255, 0.82);
	--tzm-v2-blue: #0b66d8;
	--tzm-v2-blue-2: #0a4ea3;
	--tzm-v2-navy: #061f41;
	--tzm-v2-radius: 28px;
	--tzm-v2-radius-sm: 22px;
	--tzm-v2-shell: min(1220px, calc(100% - 48px));
	--tzm-v2-wide: min(1360px, calc(100% - 48px));
	--tzm-v2-section: clamp(72px, 8vw, 118px);
	--tzm-v2-section-tight: clamp(56px, 6vw, 86px);
	--tzm-v2-pad: clamp(26px, 3.2vw, 42px);
	--tzm-v2-shadow: 0 28px 90px rgba(6, 31, 65, 0.13);
	--tzm-v2-shadow-soft: 0 18px 54px rgba(6, 31, 65, 0.09);
	--tzm-v2-blur: blur(26px) saturate(165%);
}

html {
	background: #f6f9fd !important;
}

body.texaszoom-child-theme {
	background:
		radial-gradient(circle at 10% -6%, rgba(11, 102, 216, 0.16), transparent 34rem),
		radial-gradient(circle at 92% 4%, rgba(6, 31, 65, 0.11), transparent 38rem),
		linear-gradient(180deg, #ffffff 0%, #f6f9fd 46%, #ffffff 100%) !important;
	color: var(--tzm-v2-ink) !important;
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

.tzm-site-main {
	background:
		linear-gradient(135deg, rgba(11, 102, 216, 0.045) 0 1px, transparent 1px 34px),
		linear-gradient(45deg, rgba(6, 31, 65, 0.03) 0 1px, transparent 1px 38px) !important;
}

.tzm-site-header {
	background: rgba(255, 255, 255, 0.76) !important;
	border-bottom: 1px solid rgba(6, 31, 65, 0.08) !important;
	box-shadow: 0 14px 44px rgba(6, 31, 65, 0.07) !important;
	backdrop-filter: var(--tzm-v2-blur) !important;
	-webkit-backdrop-filter: var(--tzm-v2-blur) !important;
}

.tzm-site-header__inner {
	inline-size: var(--tzm-v2-wide) !important;
	min-height: 82px !important;
	gap: clamp(16px, 2.1vw, 28px) !important;
}

.tzm-site-brand {
	min-width: clamp(205px, 18vw, 270px) !important;
}

.tzm-site-brand img,
.tzm-site-brand .custom-logo {
	max-height: 58px !important;
	max-width: min(265px, 42vw) !important;
}

.tzm-site-nav {
	gap: 8px clamp(14px, 1.65vw, 24px) !important;
}

.tzm-site-nav a {
	border-radius: 999px !important;
	color: var(--tzm-v2-ink) !important;
	font-size: 0.95rem !important;
	font-weight: 750 !important;
	padding: 10px 0 !important;
}

.tzm-site-nav a:hover,
.tzm-site-nav a:focus-visible {
	color: var(--tzm-v2-blue) !important;
}

.tzm-header-cta,
.tzm-header-cta:visited {
	background: linear-gradient(135deg, var(--tzm-v2-navy), var(--tzm-v2-blue)) !important;
	box-shadow: 0 16px 44px rgba(11, 102, 216, 0.22) !important;
	color: #fff !important;
	font-size: 0.95rem !important;
	min-height: 50px !important;
	padding: 0 26px !important;
}

.tzm-page-shell,
.tzm-template-shell,
.tzm-page-content .elementor-section:not(.tzm-elementor-carousel-section) > .elementor-container,
.tzm-page-content .elementor-section:not(.tzm-elementor-carousel-section) > .elementor-container.elementor-column-gap-default,
.tzm-elementor-section > .elementor-container {
	inline-size: var(--tzm-v2-shell) !important;
	max-width: var(--tzm-v2-shell) !important;
}

.tzm-page-content > .elementor,
.tzm-page-content > .elementor-section-wrap {
	max-width: none !important;
}

.tzm-page-content .elementor-section:not(.tzm-elementor-carousel-section),
.tzm-template-shell {
	overflow: hidden !important;
	padding-block: var(--tzm-v2-section) !important;
	position: relative !important;
}

.tzm-page-content .elementor-section > .elementor-container {
	position: relative !important;
	z-index: 2 !important;
}

.tzm-page-content .elementor-section.tzm-elementor-hero,
.tzm-page-content .elementor-section:first-child:not(.tzm-elementor-carousel-section) {
	background:
		radial-gradient(circle at 14% 8%, rgba(11, 102, 216, 0.17), transparent 31rem),
		radial-gradient(circle at 88% 18%, rgba(6, 31, 65, 0.1), transparent 34rem),
		linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 253, 0.86)) !important;
	border-bottom: 1px solid rgba(6, 31, 65, 0.075) !important;
	padding-block: clamp(76px, 9vw, 136px) clamp(62px, 7vw, 104px) !important;
}

.tzm-page-content .elementor-section.tzm-elementor-hero::before,
.tzm-page-content .elementor-section:first-child:not(.tzm-elementor-carousel-section)::before,
.tzm-page-content .tzm-elementor-band::before,
.tzm-page-content .elementor-section.tzm-elementor-cards-row::before,
.tzm-template-shell::before {
	background:
		linear-gradient(135deg, rgba(11, 102, 216, 0.055) 0 1px, transparent 1px 28px),
		linear-gradient(45deg, rgba(6, 31, 65, 0.035) 0 1px, transparent 1px 34px);
	content: "";
	inset: 0;
	opacity: 0.86;
	pointer-events: none;
	position: absolute;
	z-index: 0;
}

.tzm-page-content .elementor-section.tzm-elementor-hero::after,
.tzm-page-content .elementor-section:first-child:not(.tzm-elementor-carousel-section)::after {
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.18)) !important;
	border: 1px solid rgba(255, 255, 255, 0.72) !important;
	border-radius: 999px !important;
	box-shadow: 0 28px 90px rgba(11, 102, 216, 0.1) !important;
	content: "" !important;
	height: clamp(150px, 18vw, 260px) !important;
	position: absolute !important;
	right: max(24px, calc((100vw - 1220px) / 2)) !important;
	top: clamp(54px, 8vw, 110px) !important;
	width: clamp(150px, 18vw, 260px) !important;
	z-index: 0 !important;
	backdrop-filter: var(--tzm-v2-blur) !important;
	-webkit-backdrop-filter: var(--tzm-v2-blur) !important;
}

.tzm-page-content .elementor-section.tzm-elementor-hero + .elementor-section,
.tzm-page-content .elementor-section:first-child:not(.tzm-elementor-carousel-section) + .elementor-section {
	padding-top: var(--tzm-v2-section-tight) !important;
}

.tzm-page-content .tzm-elementor-band,
.tzm-page-content .elementor-section.tzm-elementor-cards-row {
	background:
		radial-gradient(circle at 15% 10%, rgba(11, 102, 216, 0.11), transparent 30rem),
		linear-gradient(180deg, rgba(255, 255, 255, 0.56), rgba(236, 244, 253, 0.72)) !important;
	border-block: 1px solid rgba(6, 31, 65, 0.065) !important;
}

.tzm-page-content .elementor-widget-heading,
.tzm-page-content .elementor-widget-text-editor {
	margin-bottom: 20px !important;
}

.tzm-page-content .elementor-heading-title,
.tzm-template-header h1,
.tzm-post-card h2,
.tzm-post-card h3 {
	color: var(--tzm-v2-ink) !important;
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
	font-weight: 820 !important;
	letter-spacing: 0 !important;
}

.tzm-page-content h1.elementor-heading-title,
.tzm-template-header h1 {
	font-size: clamp(2.55rem, 5vw, 4.7rem) !important;
	line-height: 1.02 !important;
	margin: 0 0 18px !important;
	max-width: 900px !important;
}

.tzm-page-content h2.elementor-heading-title {
	font-size: clamp(1.85rem, 3.35vw, 3rem) !important;
	line-height: 1.08 !important;
	margin: 0 0 14px !important;
	max-width: 900px !important;
}

.tzm-page-content h3.elementor-heading-title,
.tzm-page-content h4.elementor-heading-title,
.tzm-post-card h2,
.tzm-post-card h3 {
	font-size: clamp(1.22rem, 1.9vw, 1.62rem) !important;
	line-height: 1.16 !important;
	margin: 0 0 12px !important;
}

.tzm-page-content .elementor-widget-text-editor,
.tzm-page-content .elementor-widget-text-editor p,
.tzm-page-content .elementor-widget-text-editor li,
.tzm-template-header p,
.tzm-entry-content,
.tzm-post-card p {
	color: var(--tzm-v2-muted) !important;
	font-size: clamp(1rem, 1.22vw, 1.12rem) !important;
	font-weight: 450 !important;
	line-height: 1.7 !important;
}

.tzm-page-content .tzm-kicker,
.tzm-page-content .tzm-kicker p,
.tzm-kicker {
	color: var(--tzm-v2-blue) !important;
	font-size: 0.78rem !important;
	font-weight: 850 !important;
	letter-spacing: 0.055em !important;
	line-height: 1.25 !important;
	margin: 0 0 14px !important;
	text-transform: uppercase !important;
}

.tzm-page-content .elementor-button,
.tzm-page-content .elementor-button:visited,
.tzm-page-content .elementor-widget-button .elementor-button,
.tzm-button,
.wp-block-button.tzm-button .wp-block-button__link,
.tzm-post-card__link {
	background: linear-gradient(135deg, var(--tzm-v2-navy), var(--tzm-v2-blue)) !important;
	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: 0 18px 44px rgba(11, 102, 216, 0.24) !important;
	color: #fff !important;
	display: inline-flex !important;
	font-size: 0.96rem !important;
	font-weight: 820 !important;
	justify-content: center !important;
	line-height: 1 !important;
	min-height: 50px !important;
	padding: 16px 28px !important;
	text-decoration: none !important;
	transition: box-shadow 180ms ease, transform 180ms ease !important;
	width: auto !important;
}

.tzm-page-content .elementor-button:hover,
.tzm-page-content .elementor-button:focus-visible,
.tzm-post-card:hover .tzm-post-card__link {
	box-shadow: 0 24px 58px rgba(11, 102, 216, 0.28) !important;
	color: #fff !important;
	transform: translateY(-2px) !important;
}

.tzm-page-content .elementor-widget-button {
	margin: 10px 14px 0 0 !important;
	width: auto !important;
}

.tzm-page-content .tzm-elementor-cards-row > .elementor-container,
.tzm-post-grid {
	display: grid !important;
	gap: clamp(24px, 3.2vw, 34px) !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)) !important;
}

.tzm-page-content .tzm-elementor-cards-row > .elementor-container > .elementor-column {
	width: auto !important;
}

.tzm-page-content .tzm-elementor-card > .elementor-widget-wrap,
.tzm-page-content .tzm-elementor-cards-row > .elementor-container > .elementor-column > .elementor-widget-wrap,
.tzm-post-card,
.tzm-empty-state,
.tzm-elementor-shortcode .elementor-shortcode {
	background:
		linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.66)),
		radial-gradient(circle at 100% 0%, rgba(11, 102, 216, 0.08), transparent 18rem) !important;
	border: 1px solid var(--tzm-v2-glass-line) !important;
	border-radius: var(--tzm-v2-radius) !important;
	box-shadow: var(--tzm-v2-shadow) !important;
	display: flex !important;
	flex-direction: column !important;
	height: 100% !important;
	min-height: 100% !important;
	padding: var(--tzm-v2-pad) !important;
	backdrop-filter: var(--tzm-v2-blur) !important;
	-webkit-backdrop-filter: var(--tzm-v2-blur) !important;
}

.tzm-page-content .tzm-elementor-card > .elementor-widget-wrap:hover,
.tzm-page-content .tzm-elementor-cards-row > .elementor-container > .elementor-column > .elementor-widget-wrap:hover,
.tzm-post-card:hover {
	box-shadow: 0 36px 104px rgba(6, 31, 65, 0.17) !important;
	transform: translateY(-4px) !important;
	transition: box-shadow 180ms ease, transform 180ms ease !important;
}

.tzm-page-content .tzm-elementor-card .elementor-widget-button:last-child,
.tzm-page-content .tzm-elementor-cards-row .elementor-widget-button:last-child {
	margin-top: auto !important;
	padding-top: 10px !important;
}

.tzm-page-content .tzm-elementor-final > .elementor-container > .elementor-column > .elementor-widget-wrap {
	background:
		radial-gradient(circle at 88% 10%, rgba(11, 102, 216, 0.18), transparent 28rem),
		linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.72)) !important;
	border: 1px solid var(--tzm-v2-glass-line) !important;
	border-radius: 34px !important;
	box-shadow: var(--tzm-v2-shadow) !important;
	padding: clamp(40px, 5.5vw, 72px) !important;
	backdrop-filter: var(--tzm-v2-blur) !important;
	-webkit-backdrop-filter: var(--tzm-v2-blur) !important;
}

.tzm-page-content {
	--tzm-carousel-height: clamp(520px, 62vh, 700px);
}

.home .tzm-page-content > .elementor > .elementor-section:first-child,
.home .tzm-page-content > .elementor-section:first-child,
.home .elementor-section.tzm-home-carousel-fallback,
.tzm-elementor-carousel-section,
.elementor-section:has(.tzm-carousel-panel) {
	background:
		radial-gradient(circle at 12% 18%, rgba(11, 102, 216, 0.19), transparent 30rem),
		radial-gradient(circle at 86% 8%, rgba(6, 31, 65, 0.14), transparent 34rem),
		linear-gradient(180deg, #ffffff 0%, #f4f8fe 100%) !important;
	color: var(--tzm-v2-ink) !important;
	min-height: var(--tzm-carousel-height) !important;
	overflow: hidden !important;
}

.tzm-elementor-carousel-section > .elementor-container,
.elementor-section:has(.tzm-carousel-panel) > .elementor-container,
.home .elementor-section.tzm-home-carousel-fallback > .elementor-container {
	min-height: var(--tzm-carousel-height) !important;
}

.tzm-elementor-carousel-section > .elementor-container > .elementor-column > .elementor-widget-wrap,
.elementor-section:has(.tzm-carousel-panel) > .elementor-container > .elementor-column > .elementor-widget-wrap,
.home .elementor-section.tzm-home-carousel-fallback > .elementor-container > .elementor-column > .elementor-widget-wrap {
	align-content: center !important;
	justify-content: center !important;
	inline-size: var(--tzm-v2-shell) !important;
	min-height: var(--tzm-carousel-height) !important;
	padding-block: clamp(64px, 8vw, 104px) !important;
}

.tzm-carousel-panel .elementor-heading-title,
.tzm-elementor-carousel-section .elementor-heading-title,
.tzm-elementor-carousel-section h1,
.tzm-elementor-carousel-section h2,
.tzm-elementor-carousel-section h3 {
	color: var(--tzm-v2-ink) !important;
	max-width: 900px !important;
}

.home .tzm-page-content > .elementor > .elementor-section:first-child h1.elementor-heading-title,
.home .tzm-page-content > .elementor-section:first-child h1.elementor-heading-title,
.home .elementor-section.tzm-home-carousel-fallback h1.elementor-heading-title {
	font-size: clamp(2.8rem, 5.3vw, 5.1rem) !important;
	line-height: 1.01 !important;
}

.tzm-carousel-panel .elementor-widget-text-editor,
.tzm-carousel-panel .elementor-widget-text-editor p,
.tzm-elementor-carousel-section .elementor-widget-text-editor,
.tzm-elementor-carousel-section .elementor-widget-text-editor p {
	color: var(--tzm-v2-muted) !important;
	max-width: 780px !important;
}

.tzm-carousel-pagination--elementor {
	bottom: 30px !important;
}

.tzm-carousel-dot {
	background: rgba(6, 31, 65, 0.22) !important;
	height: 10px !important;
	width: 10px !important;
}

.tzm-carousel-dot.is-active {
	background: var(--tzm-v2-blue) !important;
	width: 34px !important;
}

.tzm-compliance-footer {
	background: rgba(255, 255, 255, 0.82) !important;
	box-shadow: 0 -18px 54px rgba(6, 31, 65, 0.055) !important;
	padding-block: 34px !important;
	backdrop-filter: blur(22px) saturate(160%) !important;
	-webkit-backdrop-filter: blur(22px) saturate(160%) !important;
}

.tzm-footer-grid {
	gap: 24px !important;
}

.tzm-gdpr-badge {
	box-shadow: 0 18px 54px rgba(6, 31, 65, 0.16) !important;
}

@media (max-width: 1040px) {
	.tzm-site-header__inner {
		grid-template-columns: auto minmax(0, 1fr) auto !important;
		min-height: 76px !important;
	}

	.tzm-menu-toggle {
		display: inline-grid !important;
	}

	.tzm-header-cta {
		grid-column: 2 !important;
		justify-self: end !important;
	}

	.tzm-site-nav {
		background: rgba(255, 255, 255, 0.94) !important;
		border: 1px solid var(--tzm-v2-line) !important;
		border-radius: 24px !important;
		box-shadow: var(--tzm-v2-shadow-soft) !important;
		display: none !important;
		gap: 4px !important;
		grid-column: 1 / -1 !important;
		justify-content: stretch !important;
		padding: 10px !important;
		backdrop-filter: var(--tzm-v2-blur) !important;
		-webkit-backdrop-filter: var(--tzm-v2-blur) !important;
	}

	.tzm-site-header.is-menu-open .tzm-site-nav {
		display: grid !important;
	}

	.tzm-site-nav a {
		display: block !important;
		padding: 14px 16px !important;
	}
}

@media (max-width: 720px) {
	:root {
		--tzm-v2-shell: min(1220px, calc(100% - 30px));
		--tzm-v2-wide: min(1360px, calc(100% - 30px));
		--tzm-v2-section: 58px;
		--tzm-v2-section-tight: 48px;
		--tzm-v2-pad: 24px;
	}

	.tzm-page-content {
		--tzm-carousel-height: clamp(500px, 72vh, 650px);
	}

	.tzm-page-content .elementor-section.tzm-elementor-hero,
	.tzm-page-content .elementor-section:first-child:not(.tzm-elementor-carousel-section) {
		padding-block: 64px 52px !important;
	}

	.tzm-page-content h1.elementor-heading-title,
	.tzm-template-header h1 {
		font-size: clamp(2.25rem, 11vw, 3.35rem) !important;
	}

	.tzm-page-content h2.elementor-heading-title {
		font-size: clamp(1.65rem, 7.5vw, 2.3rem) !important;
	}

	.tzm-page-content .tzm-elementor-cards-row > .elementor-container,
	.tzm-post-grid {
		grid-template-columns: 1fr !important;
	}

	.tzm-site-brand {
		min-width: 0 !important;
	}

	.tzm-site-brand img,
	.tzm-site-brand .custom-logo {
		max-width: min(210px, 47vw) !important;
	}

	.tzm-header-cta,
	.tzm-header-cta:visited {
		font-size: 0.82rem !important;
		min-height: 42px !important;
		padding-inline: 14px !important;
	}
}
