/*
 * JL Boggio internal experience v2.
 * Distinct page identities, stronger wayfinding and restrained interaction.
 */

.jlb-internal-template {
	--jlb-page-accent: #b24a3f;
	--jlb-page-hero-bg: #07111d;
	--jlb-page-hero-ink: #ffffff;
	--jlb-page-hero-muted: rgba(255,255,255,.78);
	--jlb-page-word: rgba(255,255,255,.045);
}

/* Make the current destination unmistakable in the global navigation. */
.jlb-internal-template #ast-desktop-header .main-header-menu > .current-menu-item > .menu-link,
.jlb-internal-template #ast-desktop-header .main-header-menu > .current-menu-parent > .menu-link,
.jlb-internal-template #ast-desktop-header .main-header-menu > .current_page_item > .menu-link {
	position: relative;
	color: #0b1722;
	font-weight: 750;
}

.jlb-internal-template #ast-desktop-header .main-header-menu > .current-menu-item > .menu-link::after,
.jlb-internal-template #ast-desktop-header .main-header-menu > .current-menu-parent > .menu-link::after,
.jlb-internal-template #ast-desktop-header .main-header-menu > .current_page_item > .menu-link::after {
	content: "";
	position: absolute;
	left: 20px;
	right: 20px;
	bottom: 11px;
	height: 2px;
	background: var(--jlb-page-accent);
	transform-origin: left;
	animation: jlb-nav-line .38s ease both;
}

.jlb-internal-template #ast-desktop-header .sub-menu .current-menu-item > .menu-link {
	background: #f4f2ed;
	color: #101922;
	font-weight: 750;
}

/* Breadcrumb becomes a light orientation strip instead of another dark block. */
.jlb-internal-template .jlb-internal-breadcrumbs {
	border-top: 1px solid #e6e8ea;
	border-bottom: 1px solid #e1e4e7;
	background: #ffffff;
	color: #737b82;
}

.jlb-internal-template .jlb-internal-breadcrumbs a {
	color: #4f5962;
}

.jlb-internal-template .jlb-internal-breadcrumbs [aria-current="page"] {
	font-weight: 800;
	color: #101922;
}

/* Compact hero foundation. */
.jlb-internal-template .jlb-internal-page__content > section:first-child {
	display: grid;
	align-content: center;
	min-height: clamp(400px, 54vh, 560px);
	padding-top: clamp(4.3rem, 7vw, 6.2rem);
	padding-bottom: clamp(4rem, 7vw, 6rem);
	background: var(--jlb-page-hero-bg);
	color: var(--jlb-page-hero-ink);
}

.jlb-internal-template .jlb-internal-page__content > section:first-child::before {
	background-image:
		linear-gradient(rgba(110,120,128,.065) 1px, transparent 1px),
		linear-gradient(90deg, rgba(110,120,128,.065) 1px, transparent 1px);
	background-size: 76px 76px;
	mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.55) 65%, transparent 100%);
}

.jlb-internal-template .jlb-internal-page__content > section:first-child::after {
	color: var(--jlb-page-word);
	font-size: clamp(5.5rem, 13vw, 11.5rem);
	bottom: -.06em;
}

.jlb-internal-template .jlb-internal-page__content > section:first-child > * {
	max-width: 790px;
}

.jlb-internal-template .jlb-internal-page__content > section:first-child > p:first-child {
	color: var(--jlb-page-hero-muted);
}

.jlb-internal-template .jlb-internal-page__content > section:first-child > p:first-child::before {
	background: var(--jlb-page-accent);
}

.jlb-internal-template .jlb-internal-page__content > section:first-child h1 {
	max-width: 15ch;
	font-size: clamp(2.55rem, 4.25vw, 4.15rem);
	line-height: 1.01;
	color: var(--jlb-page-hero-ink);
}

.jlb-internal-template .jlb-internal-page__content > section:first-child h1 + p {
	max-width: 62ch;
	font-size: clamp(1rem, 1.3vw, 1.16rem);
	color: var(--jlb-page-hero-muted);
}

.jlb-internal-template .jlb-internal-page__content > section:first-child > p:last-child a:first-child {
	background: var(--jlb-page-accent);
	color: #fff;
}

.jlb-internal-template .jlb-internal-page__content > section:first-child > p:last-child a:last-child {
	border-color: currentColor;
	background: transparent;
	color: var(--jlb-page-hero-ink);
}

/* Distinct page identities. */
.jlb-company-page {
	--jlb-page-accent: #a2463b;
	--jlb-page-hero-bg:
		linear-gradient(90deg, rgba(245,241,233,1) 0%, rgba(245,241,233,.98) 48%, rgba(245,241,233,.78) 68%, rgba(245,241,233,.28) 100%),
		url('/wp-content/uploads/2023/04/slidetemp1-e1682655537749.jpg') center / cover no-repeat;
	--jlb-page-hero-ink: #101922;
	--jlb-page-hero-muted: #59636c;
	--jlb-page-word: rgba(162,70,59,.085);
}
.jlb-company-page .jlb-internal-page__content > section:first-child::after { content: "1995"; }
.jlb-company-page .jlb-internal-page__content > section:first-child > p:last-child a:last-child { color: #101922; }

.jlb-services-page {
	--jlb-page-accent: #d06455;
	--jlb-page-hero-bg:
		linear-gradient(90deg, rgba(7,17,29,.98) 0%, rgba(7,17,29,.94) 48%, rgba(7,17,29,.62) 72%, rgba(7,17,29,.42) 100%),
		url('/wp-content/uploads/2023/05/060523-1.jpg') center / cover no-repeat;
	--jlb-page-hero-ink: #ffffff;
	--jlb-page-hero-muted: rgba(255,255,255,.78);
	--jlb-page-word: rgba(255,255,255,.05);
}

.jlb-clients-page {
	--jlb-page-accent: #355f7b;
	--jlb-page-hero-bg:
		linear-gradient(90deg, rgba(247,248,248,1) 0%, rgba(247,248,248,.98) 52%, rgba(247,248,248,.82) 72%, rgba(247,248,248,.48) 100%),
		url('/wp-content/uploads/2023/05/fservicios3.png') center / cover no-repeat;
	--jlb-page-hero-ink: #10202b;
	--jlb-page-hero-muted: #5d6972;
	--jlb-page-word: rgba(53,95,123,.075);
}
.jlb-clients-page .jlb-internal-page__content > section:first-child > p:last-child a:last-child { color: #10202b; }

.jlb-contact-page {
	--jlb-page-accent: #b24a3f;
	--jlb-page-hero-bg:
		linear-gradient(90deg, rgba(41,27,26,.98) 0%, rgba(74,40,37,.94) 52%, rgba(74,40,37,.64) 74%, rgba(74,40,37,.48) 100%),
		url('/wp-content/uploads/2023/04/slidetemp1-e1682655537749.jpg') center / cover no-repeat;
	--jlb-page-hero-ink: #ffffff;
	--jlb-page-hero-muted: rgba(255,255,255,.8);
	--jlb-page-word: rgba(255,255,255,.055);
}

.jlb-chiller-maintenance-page {
	--jlb-page-accent: #3e86aa;
	--jlb-page-hero-bg:
		linear-gradient(90deg, rgba(7,19,31,.98) 0%, rgba(13,38,55,.94) 50%, rgba(13,38,55,.58) 74%, rgba(13,38,55,.42) 100%),
		url('/wp-content/uploads/2023/05/060523-1.jpg') center / cover no-repeat;
	--jlb-page-word: rgba(113,189,224,.08);
}
.jlb-chiller-maintenance-page .jlb-internal-page__content > section:first-child::after { content: "CHILLERS"; }

.jlb-refrigeration-page {
	--jlb-page-accent: #3f7f88;
	--jlb-page-hero-bg:
		linear-gradient(90deg, rgba(238,244,243,1) 0%, rgba(238,244,243,.98) 50%, rgba(238,244,243,.78) 70%, rgba(238,244,243,.42) 100%),
		url('/wp-content/uploads/2023/04/fotoshome1.jpg') center / cover no-repeat;
	--jlb-page-hero-ink: #102226;
	--jlb-page-hero-muted: #58696b;
	--jlb-page-word: rgba(63,127,136,.085);
}
.jlb-refrigeration-page .jlb-internal-page__content > section:first-child > p:last-child a:last-child { color: #102226; }

.jlb-air-page {
	--jlb-page-accent: #4a78a0;
	--jlb-page-hero-bg:
		linear-gradient(90deg, rgba(242,246,248,1) 0%, rgba(242,246,248,.98) 50%, rgba(242,246,248,.78) 70%, rgba(242,246,248,.42) 100%),
		url('/wp-content/uploads/2023/05/IMG-20230525-WA0006.jpg') center / cover no-repeat;
	--jlb-page-hero-ink: #142536;
	--jlb-page-hero-muted: #5c6c79;
	--jlb-page-word: rgba(74,120,160,.08);
}
.jlb-air-page .jlb-internal-page__content > section:first-child::after { content: "AIRE"; }
.jlb-air-page .jlb-internal-page__content > section:first-child > p:last-child a:last-child { color: #142536; }

.jlb-electric-page {
	--jlb-page-accent: #c16946;
	--jlb-page-hero-bg:
		linear-gradient(90deg, rgba(20,25,29,.98) 0%, rgba(35,43,48,.94) 50%, rgba(35,43,48,.62) 74%, rgba(35,43,48,.44) 100%),
		url('/wp-content/uploads/2023/04/fotoshome2.jpg') center / cover no-repeat;
	--jlb-page-word: rgba(255,255,255,.045);
}

/* In-page navigator: generated from the page's own H2 headings. */
.jlb-page-jump-nav {
	position: sticky;
	top: 0;
	z-index: 24;
	border-bottom: 1px solid rgba(13,24,33,.12);
	background: rgba(255,255,255,.94);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}

.jlb-page-jump-nav__inner {
	display: flex;
	align-items: center;
	gap: .35rem;
	width: min(100% - 3rem, 1180px);
	min-height: 54px;
	margin-inline: auto;
	overflow-x: auto;
	scrollbar-width: none;
}
.jlb-page-jump-nav__inner::-webkit-scrollbar { display: none; }

.jlb-page-jump-nav__label {
	flex: 0 0 auto;
	margin-right: .55rem;
	font-size: .7rem;
	font-weight: 850;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #8a9298;
}

.jlb-page-jump-nav a {
	position: relative;
	flex: 0 0 auto;
	padding: .72rem .8rem;
	border-radius: 3px;
	font-size: .78rem;
	font-weight: 720;
	line-height: 1.2;
	color: #4d5962 !important;
	text-decoration: none !important;
	white-space: nowrap;
	transition: color 150ms ease, background 150ms ease;
}

.jlb-page-jump-nav a:hover,
.jlb-page-jump-nav a.is-active {
	background: #f1f3f4;
	color: #101922 !important;
}

.jlb-page-jump-nav a.is-active::after {
	content: "";
	position: absolute;
	left: .8rem;
	right: .8rem;
	bottom: .28rem;
	height: 2px;
	background: var(--jlb-page-accent);
}

.jlb-internal-page__content > section {
	scroll-margin-top: 72px;
}

/* Clearer content rhythm: fewer billboard-sized headings. */
.jlb-internal-template .jlb-internal-page__content > section {
	padding-block: clamp(3.6rem, 6vw, 5.4rem);
}

.jlb-internal-template .jlb-internal-page__content > section:not(:first-child) h2 {
	font-size: clamp(1.85rem, 2.8vw, 2.65rem);
	line-height: 1.08;
}

.jlb-internal-template .jlb-internal-page__content > section:not(:first-child) h2::before {
	background: var(--jlb-page-accent);
}

/* Make service/capability choices feel interactive instead of like static text boxes. */
.jlb-internal-template .jlb-service-card,
.jlb-internal-template .jlb-capability-card,
.jlb-internal-template .jlb-proof-card,
.jlb-internal-template .jlb-contact-card {
	position: relative;
	overflow: hidden;
	border-color: #d7dde1;
	box-shadow: 0 8px 24px rgba(7,17,29,.035);
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.jlb-internal-template .jlb-service-card::before,
.jlb-internal-template .jlb-capability-card::before,
.jlb-internal-template .jlb-proof-card::before,
.jlb-internal-template .jlb-contact-card::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 4px;
	height: 0;
	background: var(--jlb-page-accent);
	transition: height 180ms ease;
}

.jlb-internal-template .jlb-service-card:hover,
.jlb-internal-template .jlb-capability-card:hover,
.jlb-internal-template .jlb-proof-card:hover,
.jlb-internal-template .jlb-contact-card:hover {
	transform: translateY(-5px);
	border-color: color-mix(in srgb, var(--jlb-page-accent) 42%, #d7dde1);
	box-shadow: 0 18px 42px rgba(7,17,29,.09);
}

.jlb-internal-template .jlb-service-card:hover::before,
.jlb-internal-template .jlb-capability-card:hover::before,
.jlb-internal-template .jlb-proof-card:hover::before,
.jlb-internal-template .jlb-contact-card:hover::before {
	height: 100%;
}

.jlb-internal-template .jlb-service-card a,
.jlb-internal-template .jlb-capability-card a {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	font-weight: 800;
	text-decoration: none;
}

.jlb-internal-template .jlb-service-card a::after,
.jlb-internal-template .jlb-capability-card a::after {
	content: "→";
	transition: transform 150ms ease;
}

.jlb-internal-template .jlb-service-card:hover a::after,
.jlb-internal-template .jlb-capability-card:hover a::after {
	transform: translateX(4px);
}

.jlb-internal-template .jlb-media-grid figure {
	transition: transform 220ms ease, box-shadow 220ms ease;
}
.jlb-internal-template .jlb-media-grid figure:hover {
	transform: translateY(-5px);
	box-shadow: 0 22px 50px rgba(7,17,29,.13);
}
.jlb-internal-template .jlb-media-grid img {
	transition: transform 480ms cubic-bezier(.2,.7,.2,1);
}
.jlb-internal-template .jlb-media-grid figure:hover img { transform: scale(1.035); }

/* Services page: service selection is the primary task, not secondary body copy. */
.jlb-services-page .jlb-internal-page__content > section:first-child {
	min-height: clamp(330px, 42vh, 440px);
}

.jlb-services-page .jlb-services-hub {
	padding-top: clamp(3rem, 5vw, 4.5rem);
	padding-bottom: clamp(4.5rem, 7vw, 6rem);
	background: #f5f3ee !important;
}

.jlb-services-page .jlb-services-hub__eyebrow {
	margin: 0 0 .75rem;
	font-size: .76rem;
	font-weight: 850;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--jlb-page-accent) !important;
}

.jlb-services-page .jlb-services-hub > h2 {
	max-width: 16ch !important;
	margin-bottom: 1rem !important;
}

.jlb-services-page .jlb-services-hub__intro {
	max-width: 66ch !important;
	margin: 0 0 2.2rem !important;
	color: #58636b !important;
}

.jlb-services-visual-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
	margin-top: 2rem;
}

.jlb-service-visual-card {
	display: grid !important;
	grid-template-rows: auto 1fr;
	min-width: 0;
	overflow: hidden;
	border: 1px solid #d7dde1;
	border-radius: 8px;
	background: #fff;
	color: #101922 !important;
	text-decoration: none !important;
	box-shadow: 0 10px 28px rgba(7,17,29,.055);
	transition: transform 220ms cubic-bezier(.2,.7,.2,1), box-shadow 220ms ease, border-color 220ms ease;
}

.jlb-service-visual-card figure {
	position: relative;
	margin: 0;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #dfe4e7;
}

.jlb-service-visual-card figure::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 58%, rgba(7,17,29,.22) 100%);
	pointer-events: none;
}

.jlb-service-visual-card img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 600ms cubic-bezier(.2,.7,.2,1), filter 220ms ease;
}

.jlb-service-visual-card__body {
	position: relative;
	padding: clamp(1.35rem, 2.5vw, 1.9rem);
}

.jlb-service-visual-card__body > span {
	display: inline-block;
	margin-bottom: .65rem;
	font-size: .72rem;
	font-weight: 850;
	letter-spacing: .14em;
	color: var(--jlb-page-accent);
}

.jlb-service-visual-card__body h3 {
	margin: 0 0 .7rem !important;
	font-size: clamp(1.4rem, 2vw, 1.85rem) !important;
	line-height: 1.12 !important;
	color: #0b1722 !important;
}

.jlb-service-visual-card__body p {
	margin: 0 0 1.15rem;
	font-size: .98rem !important;
	line-height: 1.6 !important;
	color: #5a6670 !important;
}

.jlb-service-visual-card__body strong {
	display: inline-flex;
	align-items: center;
	font-size: .92rem;
	font-weight: 800;
	color: #8b3c34;
}

.jlb-service-visual-card:hover,
.jlb-service-visual-card:focus-visible {
	transform: translateY(-7px);
	border-color: color-mix(in srgb, var(--jlb-page-accent) 50%, #d7dde1);
	box-shadow: 0 24px 52px rgba(7,17,29,.14);
}

.jlb-service-visual-card:hover img,
.jlb-service-visual-card:focus-visible img {
	transform: scale(1.055);
	filter: saturate(1.06) contrast(1.03);
}

.jlb-service-visual-card:focus-visible {
	outline: 3px solid var(--jlb-page-accent);
	outline-offset: 4px;
}

@media (max-width: 820px) {
	.jlb-services-visual-grid {
		grid-template-columns: 1fr;
	}
}

/* Clients: trust should read like evidence, not another generic services page. */
.jlb-clients-page .jlb-capability-card {
	background: linear-gradient(145deg, #fff 0%, #f8fafb 100%);
}
.jlb-clients-page .jlb-internal-page__content > section:nth-child(3) {
	background: #eef3f5;
}

/* Contact: make the decision path immediate. */
.jlb-contact-page .jlb-contact-grid {
	gap: 1.25rem;
}
.jlb-contact-page .jlb-contact-card:first-child {
	background: #fff;
	border-top: 4px solid var(--jlb-page-accent);
}
.jlb-contact-page .jlb-contact-form {
	box-shadow: 0 18px 50px rgba(7,17,29,.08);
}
.jlb-contact-page .jlb-contact-form .wpcf7-form input[type="submit"] {
	background: var(--jlb-page-accent);
	border-color: var(--jlb-page-accent);
	transition: transform 160ms ease, filter 160ms ease;
}
.jlb-contact-page .jlb-contact-form .wpcf7-form input[type="submit"]:hover {
	transform: translateY(-2px);
	filter: brightness(.94);
}

/* Hero entrance: restrained movement that confirms a page transition. */
.jlb-internal-template .jlb-internal-page__content > section:first-child > p:first-child {
	animation: jlb-page-in .48s .05s both cubic-bezier(.2,.7,.2,1);
}
.jlb-internal-template .jlb-internal-page__content > section:first-child h1 {
	animation: jlb-page-in .58s .12s both cubic-bezier(.2,.7,.2,1);
}
.jlb-internal-template .jlb-internal-page__content > section:first-child h1 + p {
	animation: jlb-page-in .62s .2s both cubic-bezier(.2,.7,.2,1);
}
.jlb-internal-template .jlb-internal-page__content > section:first-child > p:last-child {
	animation: jlb-page-in .62s .28s both cubic-bezier(.2,.7,.2,1);
}

@keyframes jlb-page-in {
	from { opacity: 0; transform: translateY(18px); }
	to { opacity: 1; transform: translateY(0); }
}
@keyframes jlb-nav-line {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

@media (max-width: 900px) {
	.jlb-page-jump-nav__inner { width: calc(100% - 2rem); }
	.jlb-internal-template .jlb-internal-page__content > section:first-child {
		min-height: 430px;
		padding-top: 3.8rem;
		padding-bottom: 3.6rem;
	}
	.jlb-internal-template .jlb-internal-page__content > section:first-child h1 {
		font-size: clamp(2.4rem, 8.5vw, 3.45rem);
	}
}

@media (max-width: 680px) {
	.jlb-internal-template .jlb-internal-page__content > section:first-child {
		min-height: 420px;
		padding-inline: 1rem;
	}
	.jlb-internal-template .jlb-internal-page__content > section:first-child::after {
		font-size: 23vw;
		bottom: .08em;
	}
	.jlb-page-jump-nav__inner {
		width: 100%;
		padding-inline: .65rem;
	}
	.jlb-page-jump-nav__label { display: none; }
	.jlb-page-jump-nav a { padding-inline: .72rem; }
}

@media (prefers-reduced-motion: reduce) {
	.jlb-internal-template .jlb-internal-page__content > section:first-child > *,
	.jlb-internal-template .jlb-service-card,
	.jlb-internal-template .jlb-capability-card,
	.jlb-internal-template .jlb-proof-card,
	.jlb-internal-template .jlb-contact-card,
	.jlb-internal-template .jlb-media-grid figure,
	.jlb-internal-template .jlb-media-grid img {
		animation: none !important;
		transition: none !important;
	}
}
