/**
 * Camber Elementor Child — minimal global helpers only.
 * Build layout, typography, and colors in Elementor Site Settings.
 */

/* Prevent horizontal overflow from full-bleed sections */
html,
body {
	overflow-x: clip;
}

/* Home is built as Elementor canvas with in-page header/footer components */
body.elementor-page-125 .site-header,
body.elementor-page-125 .site-footer,
body.elementor-page-125 .skip-link,
body.elementor-page-125 .page-header {
	display: none !important;
}

/* Supplied SVG icons injected via [camber_icon] */
.camber-icon {
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: middle;
}

.camber-icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

/* HubSpot embed wrapper — style the section in Elementor; this keeps embeds responsive */
.camber-hubspot-form iframe,
.camber-hubspot-form .hs-form-frame {
	max-width: 100%;
}

/*
 * Responsive adjustments. Desktop (Figma 1440) is unchanged.
 * Header, service cards, quotes, and the Services subnav are the
 * layouts that stay in a desktop row after the viewport gets narrow.
 */

.camber-nav-toggle {
	display: none;
	width: 44px;
	height: 44px;
	margin-left: auto;
	padding: 10px;
	border: 0;
	background: transparent;
	cursor: pointer;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	z-index: 2;
}

header.e-default-header .camber-nav-toggle,
header.e-default-header .camber-nav-toggle:hover,
header.e-default-header .camber-nav-toggle:focus,
header.e-default-header .camber-nav-toggle:focus-visible,
header.e-default-header .camber-nav-toggle:active {
	background: transparent !important;
	background-color: transparent !important;
	color: #ffffff !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.camber-nav-toggle span {
	display: block;
	height: 2px;
	background: #ffffff;
	transform-origin: center;
}

header.e-default-header.is-nav-open .camber-nav-toggle span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

header.e-default-header.is-nav-open .camber-nav-toggle span:nth-child(2) {
	opacity: 0;
}

header.e-default-header.is-nav-open .camber-nav-toggle span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

body.camber-nav-lock {
	overflow: hidden;
}

@media (max-width: 900px) {
	header.e-default-header {
		position: relative;
		flex-wrap: nowrap !important;
		align-items: center !important;
		height: auto !important;
		z-index: 40;
	}

	header.e-default-header .camber-nav-toggle {
		display: inline-flex;
	}

	header.e-default-header > .e-con:nth-child(2) {
		display: none !important;
	}

	header.e-default-header.is-nav-open > .e-con:nth-child(2) {
		display: flex !important;
		position: absolute;
		top: 100%;
		left: calc(50% - 50vw) !important;
		right: auto !important;
		z-index: 40;
		flex-direction: column !important;
		align-items: flex-start !important;
		justify-content: flex-start !important;
		flex-wrap: nowrap !important;
		width: 100vw !important;
		max-width: 100vw !important;
		height: auto !important;
		gap: 4px !important;
		margin: 0 !important;
		box-sizing: border-box !important;
		padding: 12px 24px 24px !important;
		background: #0c1927;
		box-shadow: 0 16px 28px rgba(12, 25, 39, 0.28);
	}

	header.e-default-header.is-nav-open > .e-con:nth-child(2) > .e-flexbox-base {
		display: flex !important;
		flex-direction: column !important;
		align-items: flex-start !important;
		justify-content: flex-start !important;
		flex-wrap: nowrap !important;
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
		gap: 0 !important;
	}

	header.e-default-header.is-nav-open > .e-con:nth-child(2) > .e-flexbox-base > a {
		display: flex !important;
		align-items: center;
		justify-content: flex-start !important;
		text-align: left !important;
		width: 100%;
		min-height: 44px;
		padding: 10px 0 !important;
		color: #ffffff !important;
	}

	header.e-default-header.is-nav-open > .e-con:nth-child(2) > .e-flexbox-base > a span {
		justify-content: flex-start !important;
		text-align: left !important;
		width: auto;
		margin-right: auto;
	}

	header.e-default-header.is-nav-open > .e-con:nth-child(2) > a {
		margin-top: 8px;
		margin-left: 0 !important;
		margin-right: 0 !important;
		align-self: flex-start !important;
	}
}

@media (max-width: 900px) {
	.elementor-element-2890f532,
	.elementor-element-52512335 {
		flex-direction: column !important;
		align-items: stretch !important;
		height: auto !important;
	}

	.elementor-element-2890f532 > .elementor-element,
	.elementor-element-52512335 > .elementor-element {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		flex: 1 1 auto !important;
		height: auto !important;
	}

	.elementor-element-1614d58b,
	.elementor-element-b69e4ce,
	.elementor-element-16bdf845 {
		align-items: flex-start !important;
	}

	.elementor-element-1614d58b :is(h3, h4, p),
	.elementor-element-b69e4ce :is(h3, h4, p),
	.elementor-element-16bdf845 :is(h3, h4, p) {
		text-align: left !important;
	}

	.elementor-element-1614d58b h3,
	.elementor-element-b69e4ce h3,
	.elementor-element-16bdf845 h3 {
		font-size: 80px !important;
		line-height: 1.2 !important;
	}
}

/* Testimonials: cards sliding left disappear at the content edge, not the page edge. */
.elementor-element-3739a8b0 {
	--camber-slider-inset: max(1.5rem, calc((100% - 70rem) / 2));
	overflow-anchor: none;
	-webkit-mask-image: linear-gradient(to right, transparent 0, transparent var(--camber-slider-inset), #000 var(--camber-slider-inset));
	mask-image: linear-gradient(to right, transparent 0, transparent var(--camber-slider-inset), #000 var(--camber-slider-inset));
}

@media (max-width: 520px) {
	.elementor-element-3739a8b0 > .elementor-element {
		width: calc(100vw - 48px) !important;
		min-width: 0 !important;
		max-width: calc(100vw - 48px) !important;
		flex: 0 0 calc(100vw - 48px) !important;
	}
}

@media (max-width: 960px) {
	.elementor-element-5217aed3 {
		height: auto !important;
		overflow: visible !important;
	}

	.elementor-element-49b735e {
		width: 100% !important;
		height: auto !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: flex-start !important;
		justify-content: flex-start !important;
		gap: 16px !important;
	}

	.elementor-element-3c39cb84 {
		width: 100% !important;
		max-width: 100% !important;
		height: 1px !important;
		min-height: 1px !important;
		align-self: stretch !important;
	}

	.elementor-element-658cac45 {
		flex: 1 1 auto !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		height: auto !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: flex-start !important;
		justify-content: flex-start !important;
		gap: 12px !important;
	}

	.elementor-element-658cac45 > a {
		flex: 0 0 auto !important;
		width: auto !important;
	}
}

/* News articles use the Elementor header and footer. Hide the Hello theme chrome. */
body.single-camber_news > header#site-header,
body.single-camber_news > footer#site-footer,
body.single-camber_insight > header#site-header,
body.single-camber_insight > footer#site-footer {
	display: none !important;
}

.elementor-element-4eaae7b5 p {
	margin: 0 0 1rem;
}

.elementor-element-4eaae7b5 h2,
.elementor-element-4eaae7b5 h3 {
	margin: 1.5rem 0 0.75rem;
	color: #0c1927;
}

/* Tags repeat categories until real insight tags exist. */
.elementor-element-2a1d67cd,
.elementor-element-73a39f0a {
	display: none;
}

.elementor-element-2a1d67cd.camber-has-tags,
.elementor-element-73a39f0a.camber-has-tags {
	display: flex !important;
}

/* Who we serve: once the photo has grown, keep the copy a steady distance from it. */
@media (min-width: 1700px) {
	.elementor-element-2581b20a {
		margin-left: auto !important;
		margin-right: 12rem !important;
	}
}

/* Optional: hide Elementor default icon libraries if accidentally enqueued (brief: SVG only) */
.elementor-widget-icon .fa,
.elementor-widget-icon .eicon {
	/* Prefer Image/HTML widget with SVG instead */
}
.insight-card:hover .e-heading-link-base,
.insight-card:hover .camber-post-meta,
.insight-card:hover .camber-post-excerpt{color: #fff !important;}

.camber-news-card:hover .e-heading-link-base,
.camber-news-card:hover .camber-post-meta,
.camber-news-card:hover .camber-read-link{color: #fff !important;}
.camber-news-card:hover .camber-read-link{border-block-end-color: #fff;}