/**
 * SJ Morse Homepage — Figma frame 32:3 (node 32:3)
 *
 * Only values explicitly extracted from the Figma design context are used here.
 * Inter-element vertical gaps are applied through Elementor _margin in the JSON
 * (so they remain editable). Section min-heights and image dimensions come from
 * the Figma frame sizes. Anything not present in Figma is left to flow.
 *
 * Reference artboard width: 1440 px.
 */

/* =========================================================================
   Theme Builder header (Figma: logo 423×75 @ Y22; nav row 772×28 @ Y109;
   menu type Source Sans Pro Bold 20px, letter-spacing 3%, fill #fff)
   ========================================================================= */
.sj-el-header.elementor-section > .elementor-container {
	max-width: var(--sj32-canvas);
	margin-left: auto;
	margin-right: auto;
}

.sj-hdr-logo img,
.sj-hdr-logo .elementor-widget-container img {
	width: 423px;
	height: 75px;
	max-width: 100%;
	object-fit: contain;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

/* Tighten the vertical rhythm: logo → tagline → nav. */
.sj-el-header .sj-hdr-logo.elementor-widget,
.sj-el-header .elementor-widget-shortcode,
.sj-el-header .elementor-widget-nav-menu {
	margin-bottom: 0 !important;
}

.sj-el-header .elementor-widget-shortcode {
	margin-top: 2px !important;
}

.sj-el-header .elementor-widget-nav-menu {
	margin-top: 4px !important;
}

.sj-el-header .elementor-nav-menu .elementor-item {
	font-family: "Source Sans Pro", "Source Sans 3", sans-serif;
	font-weight: 700;
	font-size: 20px;
	line-height: 28px;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

:root {
	--sj32-about-bg: #e7e7e7;
	--sj32-services-bg: #333638;
	--sj32-service-card-bg: #777e85;
	--sj32-cta-bg: #bec852;
	--sj32-video-bg: #0a0000;
	--sj32-projects-bg: #d9d9d9;
	--sj32-projects-pad-y: 76px;
	--sj32-footer-bg: #333638;
	--sj32-footer-muted: #777e85;
	--sj32-hero-overlay: rgba(60, 60, 60, 0.5);
	--sj32-canvas: 1440px;
	--sj32-container: 1437px;
}

/* =========================================================================
   Hero (frame 32:3 root, 1440 × 876)
   Background image MICRON (node 44:2): x 0, y -206, w 1506, h 1408
   Overlay: Figma #3C3C3C 50% full hero + 350px #000→transparent (style.css)
   ========================================================================= */
.sj-figma-home-hero.elementor-section {
	position: relative;
	min-height: 876px;
	overflow: hidden;
}


/* Full-bleed hero image at every viewport (fixed 1506px left a grey strip on wide screens). */
.sj-figma-home-hero,
.sj-figma-home-hero > .elementor-background-holder,
.sj-figma-home-hero > .elementor-element-populated > .elementor-background-holder {
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
}

.sj-figma-home-hero.elementor-section.elementor-section-stretched {
	left: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.sj-figma-home-hero > .elementor-container {
	position: relative;
	z-index: 3;
	max-width: var(--sj32-canvas);
	margin-left: auto;
	margin-right: auto;
}

/* Hero headlines (nodes 32:7 – 32:10)
   Barlow Condensed SemiBold 140 px / line-height 123.056 px, uppercase, white.
   Heading x in Figma:  Proven 117, precision 115, Performance 113.
   Column left padding = 113, so per-heading offset = x − 113. */
.sj-hero-h .elementor-heading-title {
	font-family: "Barlow Condensed", sans-serif;
	font-weight: 600;
	font-size: 140px;
	line-height: 123.056px;
	text-transform: uppercase;
	color: #ffffff;
	margin: 0;
	padding: 0;
}

.sj-hero-h-proven .elementor-heading-title {
	margin-left: 4px;
}

.sj-hero-h-precision .elementor-heading-title {
	margin-left: 2px;
}

.sj-hero-h-performance .elementor-heading-title {
	margin-left: 0;
}

/* Hero CTA — Figma: frame 328×70 @ (119,639), fill #BEC852, radius 0;
   type Open Sans Condensed Bold 40px uppercase; column inset 113 + widget margin 6 = x 119. */
.sj-hero-cta .elementor-button {
	font-family: "Open Sans Condensed", sans-serif;
	font-weight: 700;
	font-size: 40px;
	line-height: 1;
	text-transform: uppercase;
	color: #000000 !important;
	background-color: var(--sj32-cta-bg) !important;
	border-radius: 0;
	box-sizing: border-box;
	width: 328px !important;
	min-height: 70px !important;
	height: 70px !important;
	padding: 0 20px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* =========================================================================
   About — Figma: section bg #e7e7e7, min-h 388; content x 126.
   Title @ y 968 (hero 876 → padding-top 92), Barlow Condensed Bold 52px, tracking 3% (1.56px).
   Body @ y 1054 (title h 62 → gap 24), 1224×110, Source Sans Pro 32/50, #000.
   ========================================================================= */
.sj-about-figma.elementor-section {
	background-color: var(--sj32-about-bg) !important;
	min-height: 388px;
	box-sizing: border-box;
}

.sj-about-figma > .elementor-container {
	max-width: var(--sj32-canvas);
	margin-left: auto;
	margin-right: auto;
	padding-top: 92px;
	padding-left: 126px;
	padding-right: 0;
}

.sj-about-figma .sj-about-title .elementor-heading-title {
	font-family: "Barlow Condensed", sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: normal;
	letter-spacing: 1.56px;
	text-transform: uppercase;
	color: #000000;
	margin: 0 0 24px;
}

.sj-about-figma .sj-about-body,
.sj-about-figma .sj-about-body p {
	font-family: "Source Sans Pro", "Source Sans 3", sans-serif;
	font-weight: 400;
	font-size: 32px;
	line-height: 50px;
	color: #000000;
	margin: 0;
	max-width: 1224px;
}

/* =========================================================================
   Services — Figma: section 1440×1328 @ y1262, bg #333638; title @ x126 y1348
   (Barlow Condensed Bold 52px, 3% tracking, white); cards row1 inset 119;
   arch card 526×468, image 522×324 @ x123 (+4px inset); gutter 193px keeps
   row width 119+526+193+510; row2 +93; inter-row inset +1px.
   Caption “ARCHITECTURAL…”: Source Sans Pro SemiBold 38/49, 3% tracking,
   box 392×118, white on #777e85.
   ========================================================================= */
.sj-services-figma.elementor-section {
	background-color: var(--sj32-services-bg) !important;
	min-height: 1328px;
	box-sizing: border-box;
}

/* Force Figma charcoal — Kit / Theme Style often sets a lighter section fill. */
.sj-morse-home .sj-services-figma.elementor-section,
.elementor-location-single .sj-services-figma.elementor-section,
.elementor .sj-services-figma.elementor-section {
	background-color: #333638 !important;
}

.sj-services-figma > .elementor-container,
.sj-services-figma .sj-services-col > .elementor-widget-wrap,
.sj-services-figma .sj-services-col.elementor-column > .elementor-element-populated {
	background-color: transparent !important;
}

.sj-services-figma .sj-services-row1.elementor-section,
.sj-services-figma .sj-services-row2.elementor-section,
.sj-services-figma .sj-services-row1 > .elementor-container,
.sj-services-figma .sj-services-row2 > .elementor-container {
	background-color: transparent !important;
}

.sj-services-figma > .elementor-container {
	max-width: var(--sj32-canvas);
	margin-left: auto;
	margin-right: auto;
	padding-top: 86px;
	padding-left: 119px;
	padding-right: 0;
}

.sj-services-figma .sj-services-title.elementor-widget-heading {
	margin-left: 0;
	margin-bottom: 50px;
}

.sj-services-figma .sj-services-title .elementor-heading-title {
	font-family: "Barlow Condensed", sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: normal;
	letter-spacing: 1.56px;
	text-transform: uppercase;
	color: #ffffff;
	margin: 0;
}

/*
 * Service rows — Elementor 3+ removed .elementor-row; columns sit directly
 * under .elementor-container. Flex + gap must apply to the container (and
 * .elementor-row when present on older exports).
 */
.sj-services-row1 > .elementor-container,
.sj-services-row1 > .elementor-container > .elementor-row,
.sj-services-row2 > .elementor-container,
.sj-services-row2 > .elementor-container > .elementor-row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	column-gap: 193px;
	align-items: flex-start;
	justify-content: flex-start;
	box-sizing: border-box;
	padding-left: 0;
	padding-right: 0;
}

.sj-services-row1 > .elementor-container > .elementor-row,
.sj-services-row2 > .elementor-container > .elementor-row {
	width: 100%;
}

.sj-services-row2 > .elementor-container,
.sj-services-row2 > .elementor-container > .elementor-row {
	margin-left: 1px; /* Figma row2 inset 120 vs row1 119 */
}

/* Inner sections default to boxed (1140px) — not wide enough for two cards + gap. */
.sj-services-row1.elementor-section > .elementor-container,
.sj-services-row2.elementor-section > .elementor-container {
	max-width: none !important;
	width: 100%;
}

/* Inner service rows must span the full services column (avoid shrink-to-fit layout). */
.sj-services-figma .sj-services-row1.elementor-section,
.sj-services-figma .sj-services-row2.elementor-section {
	width: 100% !important;
	max-width: none !important;
}

/* Cancel Elementor stretch-section inline math on inner rows (nested in column). */
.sj-services-figma .sj-services-row1.elementor-section.elementor-section-stretched,
.sj-services-figma .sj-services-row2.elementor-section.elementor-section-stretched,
.sj-projects-figma .sj-projects-row-imgs.elementor-section.elementor-section-stretched {
	left: 0 !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
}

.sj-services-figma .sj-svc-arch,
.sj-services-figma .sj-svc-cust,
.sj-services-figma .sj-svc-fin,
.sj-services-figma .sj-svc-edge {
	flex: 0 0 auto;
	width: auto !important;
	max-width: none !important;
	box-sizing: border-box;
}

.sj-services-figma .sj-svc-arch { width: 526px !important; min-height: 468px; }
.sj-services-figma .sj-svc-cust { width: 510px !important; min-height: 458px; }
.sj-services-figma .sj-svc-fin  { width: 510px !important; min-height: 453.91px; }
.sj-services-figma .sj-svc-edge { width: 510px !important; min-height: 453.91px; }

/* Image frame per card (image_box internals) */
.sj-services-figma .sj-svc-arch .elementor-image-box-img {
	display: block !important;
	width: 100% !important;
	max-width: 522px;
	height: 324px;
	margin: 0 0 0 4px !important;
	overflow: hidden;
	flex-shrink: 0;
	align-self: stretch;
	box-sizing: border-box;
}

.sj-services-figma .sj-svc-cust .elementor-image-box-img {
	display: block !important;
	width: 100% !important;
	max-width: 510px;
	height: 315px;
	margin: 0 !important;
	overflow: hidden;
	flex-shrink: 0;
	align-self: stretch;
	box-sizing: border-box;
}

.sj-services-figma .sj-svc-fin .elementor-image-box-img {
	display: block !important;
	width: 100% !important;
	max-width: 508px;
	height: 351px;
	margin: 0 0 0 2px !important;
	overflow: hidden;
	flex-shrink: 0;
	align-self: stretch;
	box-sizing: border-box;
}

.sj-services-figma .sj-svc-edge .elementor-image-box-img {
	display: block !important;
	width: 100% !important;
	max-width: 510px;
	height: 347px;
	margin: 0 !important;
	overflow: hidden;
	flex-shrink: 0;
	align-self: stretch;
	box-sizing: border-box;
}

.sj-services-figma .sj-svc-arch .elementor-image-box-img img,
.sj-services-figma .sj-svc-cust .elementor-image-box-img img,
.sj-services-figma .sj-svc-fin .elementor-image-box-img img,
.sj-services-figma .sj-svc-edge .elementor-image-box-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	opacity: 1;
}

/*
 * Image-box: stack image over caption (Figma). Elementor defaults figure to
 * display:inline-block and (≥768px) uses row flex for position-left/right —
 * that shrinks the image to a vertical strip beside the caption band.
 * Force column layout and block-level figures so images span the card width.
 */
.sj-services-figma .sj-svc-arch .elementor-widget-image-box,
.sj-services-figma .sj-svc-cust .elementor-widget-image-box,
.sj-services-figma .sj-svc-fin .elementor-widget-image-box,
.sj-services-figma .sj-svc-edge .elementor-widget-image-box {
	width: 100%;
	max-width: 100%;
	margin-bottom: 0 !important;
}

.sj-services-figma .sj-svc-arch .elementor-widget-image-box .elementor-widget-container,
.sj-services-figma .sj-svc-cust .elementor-widget-image-box .elementor-widget-container,
.sj-services-figma .sj-svc-fin .elementor-widget-image-box .elementor-widget-container,
.sj-services-figma .sj-svc-edge .elementor-widget-image-box .elementor-widget-container {
	width: 100%;
	max-width: 100%;
}

.sj-services-figma .sj-svc-arch .elementor-widget-image-box .elementor-image-box-wrapper,
.sj-services-figma .sj-svc-cust .elementor-widget-image-box .elementor-image-box-wrapper,
.sj-services-figma .sj-svc-fin .elementor-widget-image-box .elementor-image-box-wrapper,
.sj-services-figma .sj-svc-edge .elementor-widget-image-box .elementor-image-box-wrapper {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100% !important;
	box-sizing: border-box;
}

/* Caption band: full card width, Figma fill #777E85; text centered; min-height from label frame. */
.sj-services-figma .sj-svc-arch .elementor-image-box-content,
.sj-services-figma .sj-svc-cust .elementor-image-box-content,
.sj-services-figma .sj-svc-fin .elementor-image-box-content,
.sj-services-figma .sj-svc-edge .elementor-image-box-content {
	width: 100%;
	max-width: none;
	min-height: 118px;
	margin-left: 0;
	margin-right: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	background-color: var(--sj32-service-card-bg) !important;
	flex: 1 1 auto;
	align-self: stretch;
}

.sj-services-figma .sj-svc-arch .elementor-image-box-content .elementor-image-box-title,
.sj-services-figma .sj-svc-cust .elementor-image-box-content .elementor-image-box-title,
.sj-services-figma .sj-svc-fin .elementor-image-box-content .elementor-image-box-title,
.sj-services-figma .sj-svc-edge .elementor-image-box-content .elementor-image-box-title {
	max-width: 392px;
	width: 100%;
	text-align: center;
}

/* Caption typography — Figma: Source Sans Pro SemiBold 38/49, 3% tracking, centered. */
.sj-services-figma .sj-svc-arch .elementor-image-box-title,
.sj-services-figma .sj-svc-cust .elementor-image-box-title,
.sj-services-figma .sj-svc-fin .elementor-image-box-title,
.sj-services-figma .sj-svc-edge .elementor-image-box-title {
	font-family: "Source Sans Pro", "Source Sans 3", sans-serif;
	font-weight: 600;
	font-size: 38px;
	line-height: 49px;
	letter-spacing: 1.14px;
	text-transform: uppercase;
	text-align: center;
	color: #ffffff !important;
	margin: 0;
}

/*
 * Hover — dim the photo and reveal the Image Box description over the image.
 * Descriptions can stay empty in Elementor until copy is ready; dim still runs.
 */
.sj-services-figma .sj-svc-arch .elementor-widget-image-box .elementor-image-box-wrapper,
.sj-services-figma .sj-svc-cust .elementor-widget-image-box .elementor-image-box-wrapper,
.sj-services-figma .sj-svc-fin .elementor-widget-image-box .elementor-image-box-wrapper,
.sj-services-figma .sj-svc-edge .elementor-widget-image-box .elementor-image-box-wrapper {
	position: relative;
}

.sj-services-figma .sj-svc-arch .elementor-image-box-img,
.sj-services-figma .sj-svc-cust .elementor-image-box-img,
.sj-services-figma .sj-svc-fin .elementor-image-box-img,
.sj-services-figma .sj-svc-edge .elementor-image-box-img {
	position: relative;
	cursor: pointer;
}

.sj-services-figma .sj-svc-arch .elementor-image-box-img::after,
.sj-services-figma .sj-svc-cust .elementor-image-box-img::after,
.sj-services-figma .sj-svc-fin .elementor-image-box-img::after,
.sj-services-figma .sj-svc-edge .elementor-image-box-img::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
	opacity: 0;
	transition: opacity 0.25s ease;
	pointer-events: none;
	z-index: 1;
}

.sj-services-figma .sj-svc-arch .elementor-image-box-wrapper:hover .elementor-image-box-img::after,
.sj-services-figma .sj-svc-cust .elementor-image-box-wrapper:hover .elementor-image-box-img::after,
.sj-services-figma .sj-svc-fin .elementor-image-box-wrapper:hover .elementor-image-box-img::after,
.sj-services-figma .sj-svc-edge .elementor-image-box-wrapper:hover .elementor-image-box-img::after {
	opacity: 1;
}

.sj-services-figma .sj-svc-arch .elementor-image-box-description,
.sj-services-figma .sj-svc-cust .elementor-image-box-description,
.sj-services-figma .sj-svc-fin .elementor-image-box-description,
.sj-services-figma .sj-svc-edge .elementor-image-box-description {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	margin: 0;
	padding: 0 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-family: "Source Sans Pro", "Source Sans 3", sans-serif;
	font-weight: 400;
	font-size: 24px;
	line-height: 32px;
	letter-spacing: 0.5px;
	color: #ffffff;
	text-shadow: 0 2px 6px rgba(0, 0, 0, 0.55);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease, visibility 0.25s ease;
	pointer-events: none;
	z-index: 2;
	box-sizing: border-box;
}

.sj-services-figma .sj-svc-arch .elementor-image-box-description {
	height: 324px;
	max-width: 522px;
	margin-left: 4px;
}

.sj-services-figma .sj-svc-cust .elementor-image-box-description {
	height: 315px;
}

.sj-services-figma .sj-svc-fin .elementor-image-box-description {
	height: 351px;
	max-width: 508px;
	margin-left: 2px;
}

.sj-services-figma .sj-svc-edge .elementor-image-box-description {
	height: 347px;
}

.sj-services-figma .sj-svc-arch .elementor-image-box-wrapper:hover .elementor-image-box-description:not(:empty),
.sj-services-figma .sj-svc-cust .elementor-image-box-wrapper:hover .elementor-image-box-description:not(:empty),
.sj-services-figma .sj-svc-fin .elementor-image-box-wrapper:hover .elementor-image-box-description:not(:empty),
.sj-services-figma .sj-svc-edge .elementor-image-box-wrapper:hover .elementor-image-box-description:not(:empty) {
	opacity: 1;
	visibility: visible;
}

.sj-services-figma .sj-svc-arch .elementor-widget-wrap,
.sj-services-figma .sj-svc-cust .elementor-widget-wrap,
.sj-services-figma .sj-svc-fin .elementor-widget-wrap,
.sj-services-figma .sj-svc-edge .elementor-widget-wrap {
	padding: 0 !important;
	background: transparent !important;
}

/* =========================================================================
   Company + Video — Figma: block 1437×483, fill #0A0000.
   Title @ x118 y2704: Barlow Condensed Bold 52px, 3% tracking, #fff, max-w 391.
   Body @ x126 y2796: Source Sans Pro 32/50, #fff, max-w 568 (+8px / +30px vs title).
   Video @ x800 y2674: 550.156×307.912, 5px inside stroke #fff.
   ========================================================================= */
.sj-company-figma.elementor-section,
.sj-video-figma.elementor-section,
.sj-morse-home .sj-company-figma.elementor-section,
.elementor .sj-company-figma.elementor-section {
	background-color: #0a0000 !important;
	min-height: 483px;
	box-sizing: border-box;
}

.sj-company-figma > .elementor-container {
	max-width: var(--sj32-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: 118px;
	padding-right: 90px;
	padding-top: 85px;  /* Figma: video @ y2674 = 85px from section top (y2589). */
	padding-bottom: 85px;
	display: flex;
	align-items: flex-start;
	flex-wrap: nowrap;
	box-sizing: border-box;
	background-color: transparent !important;
}

.sj-company-figma .sj-co-col-txt > .elementor-widget-wrap,
.sj-company-figma .sj-co-col-vid > .elementor-widget-wrap {
	background-color: transparent !important;
}

.sj-company-figma .sj-co-title.elementor-widget-heading {
	margin-top: 30px;  /* Figma: title @ y2704 = 115px from section top (85px padding + 30px). */
}

.sj-company-figma .sj-co-title .elementor-heading-title {
	font-family: "Barlow Condensed", sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: normal;
	letter-spacing: 1.56px;
	text-transform: uppercase;
	color: #ffffff !important;
	white-space: nowrap;
	margin: 0;
}

.sj-company-figma .sj-co-body,
.sj-company-figma .sj-co-body p {
	font-family: "Source Sans Pro", "Source Sans 3", sans-serif;
	font-weight: 400;
	font-size: 32px;
	line-height: 50px;
	letter-spacing: 0;
	color: #ffffff !important;
	max-width: 568px;
}

.sj-company-figma .sj-co-body p {
	margin: 0;
}

.sj-company-figma .sj-co-body.elementor-widget-text-editor {
	margin-top: 30px;
	margin-left: 8px;
	margin-right: 0;
	margin-bottom: 0;
}

.sj-company-figma .sj-co-col-vid > .elementor-widget-wrap,
.sj-company-figma .sj-co-col-vid.elementor-column > .elementor-element-populated {
	display: flex;
	justify-content: flex-end;
	align-items: flex-start;
}

.sj-company-figma .sj-co-col-vid .elementor-widget-video {
	width: 550.156px;
	max-width: 100%;
	flex-shrink: 0;
}

.sj-company-figma .elementor-widget-video .elementor-wrapper {
	border: 5px solid #ffffff;
	box-sizing: border-box;
	width: 100%;
	aspect-ratio: 550.156 / 307.912;
	max-height: 307.912px;
}

.sj-company-figma .elementor-widget-video .elementor-wrapper .elementor-video,
.sj-company-figma .elementor-widget-video .elementor-wrapper .elementor-custom-embed-image-overlay {
	border-radius: 0;
}

.sj-company-figma .elementor-widget-video .elementor-custom-embed-image-overlay {
	background-size: cover !important;
	background-position: center !important;
}

/* =========================================================================
   Projects (node 32:35) — SINGLE section (intro + gallery)
   Section h 797, bg #d9d9d9, container w 1437.
   Content x ~123.74 (title/body).
   Images:
     1: 388.19 × 256
     2: 391.591 × 255.733
     3: 406.982 × 260.468
   Row x inset 119.75, row gap 25.74.
   Title 52 Barlow Condensed 700, tracking 1.56, max-width 266.
   Body 32 / 50 Source Sans 3 400, max-width 1221.45.
   ========================================================================= */
.sj-projects-figma.elementor-section {
	background-color: var(--sj32-projects-bg) !important;
	min-height: 0;
	box-sizing: border-box;
}

.sj-projects-figma > .elementor-container {
	max-width: var(--sj32-container);
	margin-left: auto;
	margin-right: auto;
	padding-top: var(--sj32-projects-pad-y);
	padding-bottom: var(--sj32-projects-pad-y);
	padding-left: 123.74px;
	padding-right: 0;
}

.sj-projects-figma .sj-pr-title .elementor-heading-title {
	font-family: "Barlow Condensed", sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: normal;
	letter-spacing: 1.56px;
	text-transform: uppercase;
	color: #000000;
	max-width: 266px;
	margin: 0;
}

.sj-projects-figma .sj-pr-body,
.sj-projects-figma .sj-pr-body p {
	font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
	font-weight: 400;
	font-size: 32px;
	line-height: 50px;
	color: #000000;
	max-width: 1221.45px;
	margin: 0;
}

/* Gallery row: exact widths, exact 25.74 px gap, exact 119.75 px left inset.
   Inset is relative to the projects column (which already has 123.74),
   so the gallery row is shifted back by 4 px to land at x 119.75 in the section. */
.sj-projects-row-imgs > .elementor-container,
.sj-projects-row-imgs > .elementor-container > .elementor-row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	column-gap: 25.74px;
	margin-left: -3.99px;
	align-items: flex-start;
	box-sizing: border-box;
}

.sj-projects-row-imgs > .elementor-container > .elementor-row {
	width: 100%;
}

.sj-projects-row-imgs.elementor-section > .elementor-container {
	max-width: none !important;
	width: 100%;
}

.sj-projects-figma .sj-pr-col1,
.sj-projects-figma .sj-pr-col2,
.sj-projects-figma .sj-pr-col3 {
	flex: 0 0 auto;
	width: auto !important;
	max-width: none !important;
}

.sj-projects-figma .sj-pr-col1 { width: 388.19px !important; }
.sj-projects-figma .sj-pr-col2 { width: 391.591px !important; }
.sj-projects-figma .sj-pr-col3 { width: 406.982px !important; }

.sj-projects-figma .sj-pr-img1 img,
.sj-projects-figma .sj-pr-img2 img,
.sj-projects-figma .sj-pr-img3 img {
	display: block;
	max-width: 100%;
	object-fit: cover;
}

.sj-projects-figma .sj-pr-img1 img { width: 388.19px;  height: 256px; }
.sj-projects-figma .sj-pr-img2 img { width: 391.591px; height: 255.733px; }
.sj-projects-figma .sj-pr-img3 img { width: 406.982px; height: 260.468px; }

/* =========================================================================
   Footer (Figma frame 32:3, footer group @ Y3874, 1440×219, fill #777E85)
   Logo @ Y3906 (32 from top), 175×31, centered.
   Nav  @ Y3960 (54 below logo top, 23 below logo bottom), Source Sans Pro
        Bold 16, tracking 0.48 (3%), uppercase, fill #F5F5F5.
   Copyright below nav, smaller text, fill #F5F5F5.
   ========================================================================= */
.sj-el-footer.elementor-section,
.elementor-location-footer .sj-el-footer.elementor-section {
	background-color: #333638 !important;
	min-height: 0;
	box-sizing: border-box;
	padding-top: 20px;
	padding-bottom: 16px;
}

.sj-el-footer > .elementor-container > .elementor-column-gap-default,
.sj-el-footer .elementor-widget {
	margin-bottom: 0;
}

.sj-el-footer .sj-ftr-logo.elementor-widget {
	margin-bottom: 0 !important;
}

.sj-el-footer > .elementor-container {
	max-width: var(--sj32-canvas);
	margin-left: auto;
	margin-right: auto;
	background-color: transparent !important;
}

.sj-el-footer .sj-ftr-logo .elementor-widget-container,
.sj-el-footer .sj-ftr-logo .elementor-image {
	text-align: center;
}

.sj-el-footer .sj-ftr-logo img {
	width: 175px;
	height: 31px;
	max-width: 100%;
	object-fit: contain;
	display: inline-block;
	margin: 0 auto;
}

.sj-el-footer .sj-ftr-nav {
	margin-top: 10px !important;
	margin-bottom: 0 !important;
}

.sj-el-footer .sj-ftr-nav .elementor-nav-menu,
.sj-el-footer .elementor-widget-nav-menu .elementor-nav-menu {
	justify-content: center;
}

.sj-el-footer .elementor-nav-menu .elementor-item,
.sj-el-footer .elementor-nav-menu a.elementor-item {
	font-family: "Source Sans Pro", "Source Sans 3", sans-serif !important;
	font-weight: 700;
	font-size: 16px;
	line-height: 23px;
	letter-spacing: 0.48px;
	text-transform: uppercase;
	color: #f5f5f5 !important;
}

.sj-el-footer .elementor-nav-menu .elementor-item:hover,
.sj-el-footer .elementor-nav-menu .elementor-item.elementor-item-active {
	color: #bec852 !important;
}

.sj-el-footer .sj-ftr-copy,
.sj-el-footer .sj-copyright-line,
.sj-el-footer .sj-ftr-copy .elementor-widget-container,
.sj-el-footer .sj-ftr-copy p {
	font-family: "Source Sans Pro", "Source Sans 3", sans-serif !important;
	font-weight: 400;
	font-size: 14px;
	letter-spacing: 0.42px;
	color: #f5f5f5 !important;
	text-align: center;
	margin: 0;
}

.sj-el-footer .sj-ftr-copy {
	margin-top: 8px !important;
	margin-bottom: 0 !important;
}

/* =========================================================================
   Responsive — preserve desktop 1440 source of truth; collapse only below
   the design width. Values below 1440 are not in Figma and use safe defaults.
   ========================================================================= */
@media (max-width: 1439px) {
	.sj-figma-home-hero,
	.sj-figma-home-hero > .elementor-background-holder,
	.sj-figma-home-hero > .elementor-element-populated > .elementor-background-holder {
		background-position: center top !important;
		background-size: cover !important;
	}
}

@media (max-width: 1200px) {
	.sj-figma-home-hero,
	.sj-figma-home-hero > .elementor-background-holder,
	.sj-figma-home-hero > .elementor-element-populated > .elementor-background-holder {
		background-size: cover !important;
		background-position: center center !important;
	}

	.sj-hero-col.elementor-column > .elementor-element-populated,
	.sj-hero-col > .elementor-widget-wrap {
		padding-left: 32px !important;
		padding-right: 32px !important;
	}

	.sj-about-figma > .elementor-container {
		padding-left: 32px !important;
		padding-right: 32px !important;
	}

	.sj-services-figma .sj-svc-arch,
	.sj-services-figma .sj-svc-cust,
	.sj-services-figma .sj-svc-fin,
	.sj-services-figma .sj-svc-edge {
		width: 100% !important;
		min-height: 0;
	}
	.sj-services-figma .sj-svc-arch .elementor-image-box-img,
	.sj-services-figma .sj-svc-cust .elementor-image-box-img,
	.sj-services-figma .sj-svc-fin .elementor-image-box-img,
	.sj-services-figma .sj-svc-edge .elementor-image-box-img {
		width: 100% !important;
		max-width: 100% !important;
		height: auto;
		margin: 0 !important;
	}
	.sj-services-row1 > .elementor-container,
	.sj-services-row1 > .elementor-container > .elementor-row,
	.sj-services-row2 > .elementor-container,
	.sj-services-row2 > .elementor-container > .elementor-row {
		flex-wrap: wrap;
		row-gap: 48px;
		column-gap: 32px;
		margin-left: 0;
		padding-left: 0;
		padding-right: 0;
		justify-content: flex-start;
	}
	.sj-services-figma .sj-services-title.elementor-widget-heading {
		margin-left: 0;
		margin-bottom: 24px;
	}
	.sj-services-figma .sj-svc-arch .elementor-image-box-content,
	.sj-services-figma .sj-svc-cust .elementor-image-box-content,
	.sj-services-figma .sj-svc-fin .elementor-image-box-content,
	.sj-services-figma .sj-svc-edge .elementor-image-box-content {
		min-height: 0;
	}
	.sj-services-figma .sj-svc-arch .elementor-image-box-content .elementor-image-box-title,
	.sj-services-figma .sj-svc-cust .elementor-image-box-content .elementor-image-box-title,
	.sj-services-figma .sj-svc-fin .elementor-image-box-content .elementor-image-box-title,
	.sj-services-figma .sj-svc-edge .elementor-image-box-content .elementor-image-box-title {
		max-width: 100%;
	}
	.sj-services-figma .sj-svc-arch .elementor-image-box-description {
		height: auto;
		aspect-ratio: 522 / 324;
		max-width: 100%;
		margin-left: 0;
	}
	.sj-services-figma .sj-svc-cust .elementor-image-box-description {
		height: auto;
		aspect-ratio: 510 / 315;
		max-width: 100%;
	}
	.sj-services-figma .sj-svc-fin .elementor-image-box-description {
		height: auto;
		aspect-ratio: 508 / 351;
		max-width: 100%;
		margin-left: 0;
	}
	.sj-services-figma .sj-svc-edge .elementor-image-box-description {
		height: auto;
		aspect-ratio: 510 / 347;
		max-width: 100%;
	}
	.sj-about-figma > .elementor-container,
	.sj-services-figma > .elementor-container,
	.sj-company-figma > .elementor-container,
	.sj-projects-figma > .elementor-container {
		padding-left: 32px;
		padding-right: 32px;
	}
	.sj-company-figma > .elementor-container {
		flex-wrap: wrap;
		row-gap: 32px;
	}
	.sj-company-figma .sj-co-body.elementor-widget-text-editor {
		margin-left: 0;
		margin-top: 24px;
	}
	.sj-company-figma .sj-co-col-vid .elementor-widget-wrap {
		justify-content: center;
	}
	.sj-company-figma .sj-co-col-vid .elementor-widget-video {
		width: 100%;
	}
	.sj-about-figma > .elementor-container {
		padding-top: 48px;
	}
	.sj-projects-row-imgs > .elementor-container,
	.sj-projects-row-imgs > .elementor-container > .elementor-row {
		flex-wrap: wrap;
		row-gap: 24px;
		margin-left: 0;
	}
	.sj-projects-figma .sj-pr-col1,
	.sj-projects-figma .sj-pr-col2,
	.sj-projects-figma .sj-pr-col3 {
		width: 100% !important;
	}
	.sj-projects-figma .sj-pr-img1 img,
	.sj-projects-figma .sj-pr-img2 img,
	.sj-projects-figma .sj-pr-img3 img {
		width: 100%;
		height: auto;
	}
	.sj-hero-h .elementor-heading-title {
		font-size: clamp(56px, 10vw, 140px);
		line-height: 1;
	}
	.sj-hero-cta .elementor-button {
		width: 100% !important;
		max-width: 328px;
		min-height: 56px !important;
		height: auto !important;
	}
}
