:root {
	--sf-bg: #091526;
	--sf-bg-soft: #0f2237;
	--sf-text: #ffffff;
	--sf-muted: #c3ced8;
	--sf-yellow: #f2cb07;
	--sf-yellow-ink: #2e4253;
	--sf-border: rgba(255, 255, 255, 0.2);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body {
	margin: 0;
	padding: 0;
}

body {
	font-family: 'Inter', sans-serif;
	color: var(--sf-text);
	background: var(--sf-bg);
	line-height: 1.5;
}

a {
	color: inherit;
	text-decoration: none;
}

img {
	max-width: 100%;
	height: auto;
}

.sf-wrap {
	width: min(1200px, 92vw);
	margin: 0 auto;
}

.sf-eyebrow {
	margin: 0 0 0.6rem;
	color: var(--sf-yellow);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.78rem;
}

.sf-site-header {
	position: sticky;
	top: 0;
	z-index: 30;
	background: rgba(9, 21, 38, 0.95);
	backdrop-filter: blur(5px);
	border-bottom: 1px solid var(--sf-border);
}

.sf-header-inner {
	min-height: 82px;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 1.25rem;
}

.sf-brand-link {
	font-family: 'Montserrat', sans-serif;
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.sf-brand .custom-logo {
	max-height: 56px;
	width: auto;
}

.sf-nav {
	justify-self: center;
}

.sf-menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.sf-menu a {
	color: var(--sf-text);
	font-weight: 500;
}

.sf-menu a:hover {
	color: var(--sf-yellow);
}

.sf-header-cta,
.sf-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 2px solid transparent;
	border-radius: 6px;
	font-weight: 700;
	letter-spacing: 0.02em;
	padding: 0.75rem 1.15rem;
	transition: all 0.2s ease;
}

.sf-header-cta,
.sf-btn-primary {
	background: var(--sf-yellow);
	color: var(--sf-yellow-ink);
}

.sf-header-cta:hover,
.sf-btn-primary:hover {
	background: #ffd61e;
	transform: translateY(-1px);
}

.sf-btn-secondary {
	border-color: var(--sf-border);
	color: var(--sf-text);
	background: rgba(255, 255, 255, 0.05);
}

.sf-btn-secondary:hover {
	border-color: rgba(255, 255, 255, 0.45);
}

.sf-menu-toggle {
	display: none;
	border: 0;
	background: transparent;
	padding: 0;
	cursor: pointer;
}

.sf-menu-toggle span {
	display: block;
	width: 26px;
	height: 2px;
	margin: 5px 0;
	background: #fff;
}

.sf-hero {
	position: relative;
	overflow: hidden;
	padding: 4.5rem 0;
}

.sf-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(92deg, rgba(3, 16, 33, 0.86) 0%, rgba(7, 24, 45, 0.62) 46%, rgba(7, 21, 38, 0.72) 100%);
	z-index: 0;
}

.sf-hero > .elementor-container {
	position: relative;
	z-index: 1;
}

.sf-hero .sf-hero-copy > .elementor-widget-wrap {
	background: rgba(4, 16, 31, 0.52);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 14px;
	padding: 1.35rem;
	backdrop-filter: blur(2px);
}

.sf-hero-grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 2rem;
	align-items: start;
}

.sf-hero-logo {
	max-width: 300px;
	margin-bottom: 1rem;
}

.sf-hero .sf-hero-kicker p {
	margin: 0 0 0.35rem;
	color: #dbe7f6;
	letter-spacing: 0.05em;
	font-weight: 700;
	text-transform: uppercase;
	text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45);
}

.sf-hero .sf-hero-title .elementor-heading-title {
	margin: 0 0 0.3rem;
	font-family: 'Montserrat', sans-serif;
	font-size: clamp(2rem, 5vw, 4rem);
	line-height: 1.08;
	color: #eff9ff;
	text-shadow: 0 4px 18px rgba(0, 0, 0, 0.45);
}

.sf-hero .sf-hero-subtitle .elementor-heading-title {
	margin: 0 0 1rem;
	font-family: 'Montserrat', sans-serif;
	font-size: clamp(1rem, 2.4vw, 1.6rem);
	color: #8bd6ff;
	text-shadow: 0 3px 14px rgba(0, 0, 0, 0.45);
}

.sf-hero .sf-hero-desc p {
	margin: 0;
	max-width: 54ch;
	color: rgba(245, 251, 255, 0.94);
	font-size: clamp(1rem, 2vw, 1.14rem);
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}

.sf-hero-actions {
	margin-top: 1.5rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
}

.sf-apply-card {
	background: rgba(3, 15, 30, 0.64);
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 12px;
	padding: 1.35rem;
	backdrop-filter: blur(3px);
}

.sf-apply-card h2 {
	margin-top: 0;
	font-family: 'Montserrat', sans-serif;
	font-size: 1.2rem;
	color: #8bd6ff;
	line-height: 1.15;
}

.sf-hero .sf-btn {
	margin-top: 0.65rem;
}

.sf-hero .sf-btn .elementor-button {
	border-radius: 8px;
	font-weight: 800;
	letter-spacing: 0.01em;
	padding: 0.95rem 1.25rem;
	border: 2px solid transparent;
}

.sf-hero .sf-btn-primary .elementor-button {
	background: var(--sf-yellow);
	color: #23384a;
	border-color: var(--sf-yellow);
}

.sf-hero .sf-btn-primary .elementor-button:hover {
	background: #ffe04b;
	border-color: #ffe04b;
}

.sf-hero .sf-btn-secondary .elementor-button {
	background: rgba(255, 255, 255, 0.08);
	color: #ffffff;
	border-color: rgba(255, 255, 255, 0.45);
}

.sf-hero .sf-btn-secondary .elementor-button:hover {
	background: rgba(255, 255, 255, 0.14);
	border-color: rgba(255, 255, 255, 0.75);
}

.sf-fallback-form {
	display: grid;
	gap: 0.8rem;
}

.sf-fallback-form label {
	display: grid;
	gap: 0.4rem;
	font-size: 0.95rem;
}

.sf-fallback-form input,
.sf-fallback-form select {
	width: 100%;
	border: 1px solid rgba(255, 255, 255, 0.42);
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	padding: 0.72rem 0.78rem;
}

.sf-fallback-form option {
	color: #111;
}

.sf-jobs,
.sf-services,
.sf-career,
.sf-gallery,
.sf-testimonials,
.sf-faq {
	padding: 4rem 0;
}

.sf-jobs {
	background: linear-gradient(180deg, #020912 0%, #030d1a 100%);
}

.sf-jobs > .elementor-container {
	width: min(1200px, 92vw);
}

/* Heading row */
.sf-jobs#jobs {
	padding: 2.2rem 0 0.8rem;
}

.sf-jobs#jobs .elementor-heading-title {
	color: #67c6ff;
	font-size: clamp(2rem, 3.1vw, 2.8rem);
	line-height: 1.12;
	margin: 0 0 0.5rem;
}

.sf-jobs#jobs .sf-section-intro {
	color: rgba(238, 246, 255, 0.9);
	font-size: clamp(1.06rem, 1.6vw, 1.26rem);
	line-height: 1.6;
	max-width: 62ch;
	margin: 0 auto;
	text-align: center;
}

.sf-section-intro {
	color: var(--sf-muted);
	max-width: 65ch;
	margin: 0 0 1.2rem;
}

.sf-jobs-grid {
	padding: 0.9rem 0 1.4rem;
}

.sf-jobs-grid > .elementor-container {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.35rem;
	width: min(1320px, 96vw);
	margin: 0 auto;
	justify-content: center;
	align-items: stretch;
}

.sf-jobs-grid > .elementor-container > .elementor-column.elementor-col-25 {
	width: 100% !important;
	max-width: 100% !important;
	flex: 1 1 auto !important;
	min-width: 0;
}

.sf-jobs-grid .sf-card {
	background: transparent;
	border: 0;
	padding: 0;
}

.sf-jobs-grid .sf-card > .elementor-widget-wrap {
	background: #0f2744;
	border: 1px solid rgba(135, 196, 255, 0.3);
	border-radius: 12px;
	padding: 1.35rem 1.25rem;
	height: 100%;
}

.sf-jobs-grid .sf-card .elementor-heading-title {
	color: #67c6ff;
	font-size: clamp(1.4rem, 2vw, 1.9rem);
	line-height: 1.08;
	margin: 0;
	min-height: 3.25em;
}

.sf-jobs-grid .sf-card .elementor-widget-heading {
	display: flex;
	flex-direction: column;
	margin-bottom: 0.75rem;
}

.sf-jobs-grid .sf-card .elementor-widget-heading::after {
	content: '✦';
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	margin: 0 auto;
	border-radius: 999px;
	border: 1px solid rgba(128, 203, 255, 0.55);
	background: rgba(128, 203, 255, 0.12);
	color: #9edfff;
	font-size: 0.95rem;
	line-height: 1;
}

.sf-jobs-grid .sf-card p {
	color: rgba(239, 247, 255, 0.95);
	font-size: clamp(1.02rem, 1.2vw, 1.12rem);
	line-height: 1.58;
	margin: 0;
}

/* Button row */
.sf-jobs:not(#jobs):not(.sf-jobs-grid) {
	padding: 0.8rem 0 2.4rem;
}

.sf-jobs:not(#jobs):not(.sf-jobs-grid) .elementor-widget-button {
	text-align: center;
}

.sf-jobs:not(#jobs):not(.sf-jobs-grid) .elementor-widget-button .elementor-widget-container {
	display: flex;
	justify-content: center;
}

.sf-jobs:not(#jobs):not(.sf-jobs-grid) .elementor-button {
	background: var(--sf-yellow);
	color: #223a4b;
	border: 2px solid var(--sf-yellow);
	border-radius: 9px;
	font-weight: 800;
	font-size: 1.02rem;
	padding: 0.9rem 1.5rem;
}

.sf-jobs:not(#jobs):not(.sf-jobs-grid) .elementor-button:hover {
	background: #ffe04b;
	border-color: #ffe04b;
}

.sf-services {
	background: #050d18;
}

.sf-services-grid {
	padding: 0.8rem 0 1.4rem;
}

.sf-services-grid > .elementor-container {
	display: grid;
	grid-template-columns: repeat(3, minmax(260px, 320px));
	gap: 1.4rem;
	width: min(1320px, 96vw);
	margin: 0 auto;
	justify-content: center;
	align-items: stretch;
}

.sf-services-grid > .elementor-container > .elementor-column.elementor-col-33 {
	width: 100% !important;
	max-width: 100% !important;
	flex: 1 1 auto !important;
	min-width: 0;
}

.sf-services-grid .sf-service-card {
	background: transparent;
	border: 0;
	padding: 0;
}

.sf-services-grid .sf-service-card > .elementor-widget-wrap {
	background: #102b49;
	border: 1px solid rgba(127, 195, 255, 0.35);
	border-radius: 12px;
	padding: 1.4rem 1.2rem;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.sf-services-grid .sf-service-card .elementor-widget {
	width: 100%;
}

.sf-services-grid .sf-service-card .elementor-heading-title {
	text-align: center;
}

.sf-services-grid .sf-service-card p {
	text-align: center;
	margin: 0;
}

.sf-service-card img {
	height: 80px;
	width: auto;
	object-fit: contain;
	margin-bottom: 0.8rem;
}

.sf-career {
	background: linear-gradient(110deg, #091526 0%, #102640 100%);
}

.sf-career-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.4rem;
	align-items: center;
}

.sf-career-copy h2 {
	margin-top: 0;
	margin-bottom: 0.6rem;
	font-family: 'Montserrat', sans-serif;
	font-size: clamp(1.7rem, 3vw, 2.6rem);
}

.sf-career-copy p {
	color: var(--sf-muted);
	margin: 0 0 0.8rem;
}

.sf-career-media img {
	border-radius: 12px;
	border: 1px solid var(--sf-border);
}

.sf-special {
	background:
		linear-gradient(90deg, rgba(9, 21, 38, 0.88), rgba(9, 21, 38, 0.78)),
		var(--sf-special-bg);
	background-size: cover;
	background-position: center;
	padding: 4rem 0;
}

.sf-special h2 {
	margin: 0 0 0.8rem;
	font-family: 'Montserrat', sans-serif;
	font-size: clamp(1.6rem, 3vw, 2.6rem);
	max-width: 18ch;
}

.sf-special p {
	margin: 0 0 1rem;
	color: var(--sf-muted);
	max-width: 54ch;
}

.sf-gallery {
	background: #000;
}

.sf-gallery-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.75rem;
}

.sf-gallery-item {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 0;
	border: 1px solid rgba(255, 255, 255, 0.14);
}

.sf-gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.25s ease;
}

.sf-gallery-item:hover img {
	transform: scale(1.04);
}

/* Keep gallery tiles uniform across fallback and WP gallery markups. */
.sf-gallery .gallery,
.sf-gallery .wp-block-gallery,
.sf-gallery .photo-video-gallery-grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.75rem;
	width: 100% !important;
	align-content: start !important;
}

.sf-gallery .gallery-item,
.sf-gallery .wp-block-image,
.sf-gallery .photo-video-gallery-grid-item {
	margin: 0 !important;
	aspect-ratio: 4 / 3;
	height: 100% !important;
	width: 100% !important;
	min-width: 0 !important;
	min-height: 0 !important;
	overflow: hidden;
	border-radius: 0 !important;
	grid-row: auto !important;
	grid-column: auto !important;
}

.sf-gallery .gallery-item img,
.sf-gallery .wp-block-image img,
.sf-gallery .photo-video-gallery-grid-item img,
.sf-gallery .photo-video-gallery-grid-item-img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	object-fit: cover !important;
}

/* High-specificity override for embedded GHL gallery widget styles. */
body #photo-video-gallery-oKiuco_0SK .photo-video-gallery-grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	grid-auto-rows: clamp(180px, 15vw, 260px) !important;
	gap: 0.75rem !important;
	width: 100% !important;
	align-content: start !important;
}

body #photo-video-gallery-oKiuco_0SK .photo-video-gallery-grid-item {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
	border-radius: 0 !important;
}

body #photo-video-gallery-oKiuco_0SK .photo-video-gallery-grid-item-img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	object-fit: cover !important;
	border-radius: 0 !important;
}

.sf-testimonials {
	background: linear-gradient(160deg, #102640 0%, #0a1b30 65%, #091526 100%);
}

.sf-testimonials-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.sf-testimonials blockquote {
	margin: 0 0 0.6rem;
	font-size: 1.06rem;
}

.sf-t-name {
	margin: 0;
	color: var(--sf-muted);
	font-weight: 600;
}

.sf-faq {
	background: #000;
}

.sf-faq-list {
	display: grid;
	gap: 0.7rem;
}

.sf-faq details {
	background: var(--sf-bg-soft);
	border: 0;
	border-radius: 10px;
	padding: 0.8rem 0.95rem;
}

.sf-faq summary {
	cursor: pointer;
	font-weight: 600;
}

.sf-faq p {
	margin: 0.7rem 0 0;
	color: var(--sf-muted);
}

.sf-card {
	background: var(--sf-bg-soft);
	border: 1px solid var(--sf-border);
	border-radius: 10px;
	padding: 1.2rem;
}

.sf-card h3 {
	margin: 0 0 0.7rem;
	font-family: 'Montserrat', sans-serif;
}

.sf-card p {
	margin: 0;
	color: var(--sf-muted);
}

.sf-prefooter {
	padding: 3.3rem 0;
	border-top: 1px solid var(--sf-border);
	background: #081321;
}

.sf-prefooter-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}

.sf-prefooter h3 {
	margin: 0 0 0.6rem;
	font-size: 0.9rem;
	letter-spacing: 0.06em;
	color: var(--sf-yellow);
}

.sf-prefooter ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.4rem;
}

.sf-social {
	display: flex !important;
	gap: 0.75rem !important;
	align-items: center;
	flex-wrap: wrap;
}

.sf-social li {
	margin: 0;
}

.sf-social .sf-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 1.5px solid rgba(255, 255, 255, 0.75);
	color: #ffffff;
	transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.sf-social .sf-social-link:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: #ffffff;
	transform: translateY(-1px);
}

.sf-social .sf-social-icon {
	width: 18px;
	height: 18px;
	display: block;
}

.sf-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.sf-prefooter a {
	color: #d4dbe2;
}

.sf-prefooter a:hover {
	color: #fff;
}

.sf-default-content {
	padding: 2rem 0 4rem;
}

.sf-site-footer {
	background: #030a14;
	border-top: 1px solid var(--sf-border);
}

.sf-footer-inner {
	padding: 1.1rem 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.2rem;
	justify-content: center;
}

.sf-footer-inner p {
	margin: 0;
	color: #9fb3c7;
	font-size: 0.92rem;
}

@media (max-width: 1024px) {
	.sf-hero-grid,
	.sf-career-grid {
		grid-template-columns: 1fr;
	}

	.sf-jobs-grid > .elementor-container {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sf-services-grid > .elementor-container {
		grid-template-columns: repeat(2, minmax(260px, 360px));
	}

	.sf-prefooter-grid,
	.sf-gallery-grid,
	.sf-gallery .gallery,
	.sf-gallery .wp-block-gallery,
	.sf-gallery .photo-video-gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body #photo-video-gallery-oKiuco_0SK .photo-video-gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		grid-auto-rows: clamp(170px, 24vw, 240px) !important;
	}
}

@media (max-width: 960px) {
	.sf-header-inner {
		grid-template-columns: auto auto auto;
	}

	.sf-menu-toggle {
		display: inline-block;
	}

	.sf-nav {
		position: absolute;
		left: 0;
		right: 0;
		top: 82px;
		background: #091526;
		padding: 0.75rem 1rem;
		border-bottom: 1px solid var(--sf-border);
		display: none;
	}

	.sf-nav.is-open {
		display: block;
	}

	.sf-menu {
		flex-direction: column;
		align-items: flex-start;
	}

	.sf-header-cta {
		display: none;
	}
}

@media (max-width: 720px) {
	.sf-jobs-grid > .elementor-container,
	.sf-services-grid > .elementor-container,
	.sf-testimonials-grid,
	.sf-prefooter-grid,
	.sf-gallery-grid,
	.sf-gallery .gallery,
	.sf-gallery .wp-block-gallery,
	.sf-gallery .photo-video-gallery-grid {
		grid-template-columns: 1fr;
	}

	body #photo-video-gallery-oKiuco_0SK .photo-video-gallery-grid {
		grid-template-columns: 1fr !important;
		grid-auto-rows: clamp(180px, 58vw, 260px) !important;
	}
}

/* Light theme overrides */
:root {
	--sf-bg: #f4f7fb;
	--sf-bg-soft: #ffffff;
	--sf-text: #172b3f;
	--sf-muted: #4b6278;
	--sf-yellow: #f2cb07;
	--sf-yellow-ink: #22384a;
	--sf-border: rgba(23, 43, 63, 0.14);
}

body {
	background: var(--sf-bg);
	color: var(--sf-text);
}

.sf-site-header {
	background: rgba(255, 255, 255, 0.94);
	border-bottom: 1px solid rgba(23, 43, 63, 0.12);
}

.sf-menu a,
.sf-brand-link {
	color: #1b3046;
}

.sf-menu a:hover {
	color: #0a84d8;
}

.sf-btn-secondary {
	background: #ffffff;
	color: #1d344b;
	border-color: rgba(23, 43, 63, 0.2);
}

.sf-btn-secondary:hover {
	background: #f3f7fc;
	border-color: rgba(23, 43, 63, 0.35);
}

.sf-menu-toggle span {
	background: #1c3349;
}

.sf-hero::before {
	background: linear-gradient(92deg, rgba(255, 255, 255, 0.9) 0%, rgba(245, 250, 255, 0.82) 48%, rgba(241, 248, 255, 0.84) 100%);
}

.sf-hero .sf-hero-copy > .elementor-widget-wrap {
	background: rgba(255, 255, 255, 0.76);
	border: 1px solid rgba(23, 43, 63, 0.12);
}

.sf-hero .sf-hero-kicker p {
	color: #32506c;
	text-shadow: none;
}

.sf-hero .sf-hero-title .elementor-heading-title {
	color: #10324f;
	text-shadow: none;
}

.sf-hero .sf-hero-subtitle .elementor-heading-title {
	color: #1a78bf;
	text-shadow: none;
}

.sf-hero .sf-hero-desc p {
	color: #2f4a62;
	text-shadow: none;
}

.sf-apply-card {
	background: rgba(255, 255, 255, 0.86);
	border: 1px solid rgba(23, 43, 63, 0.14);
}

.sf-apply-card h2 {
	color: #1a78bf;
}

.sf-fallback-form label {
	color: #1f3b55;
}

.sf-fallback-form input,
.sf-fallback-form select {
	background: #ffffff;
	color: #1d334b;
	border: 1px solid rgba(23, 43, 63, 0.24);
}

.sf-jobs,
.sf-services,
.sf-career,
.sf-gallery,
.sf-testimonials,
.sf-faq,
.sf-special {
	background: #ffffff;
}

.sf-jobs#jobs .elementor-heading-title,
.sf-services .elementor-heading-title,
.sf-career-copy h2,
.sf-special h2,
.sf-gallery h2,
.sf-testimonials h2,
.sf-faq h2 {
	color: #143552;
}

.sf-jobs#jobs .sf-section-intro,
.sf-section-intro,
.sf-career-copy p,
.sf-special p,
.sf-card p,
.sf-t-name,
.sf-faq p {
	color: #4c6379;
}

.sf-jobs-grid .sf-card > .elementor-widget-wrap,
.sf-services-grid .sf-service-card > .elementor-widget-wrap,
.sf-card {
	background: #ffffff;
	border: 1px solid rgba(23, 43, 63, 0.12);
	box-shadow: 0 8px 22px rgba(14, 41, 66, 0.08);
}

.sf-jobs-grid .sf-card .elementor-heading-title,
.sf-services-grid .sf-service-card .elementor-heading-title {
	color: #1b4263;
}

.sf-jobs-grid .sf-card p,
.sf-services-grid .sf-service-card p {
	color: #465f76;
}

.sf-jobs-grid .sf-card .elementor-widget-heading::after {
	border-color: rgba(23, 43, 63, 0.2);
	background: rgba(12, 121, 213, 0.08);
	color: #0b7ccf;
}

.sf-faq details {
	background: #ffffff;
	border: 0;
}

.sf-prefooter {
	background: #2f4558;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.sf-prefooter h3 {
	color: #ffffff;
}

.sf-prefooter a {
	color: #eaf2f8;
}

.sf-prefooter a:hover {
	color: #ffffff;
}

.sf-site-footer {
	background: #2f4558;
	border-top: 2px solid #efcb2f;
}

.sf-footer-inner p {
	width: 100%;
	text-align: center;
	color: #eaf2f8;
	font-size: 1rem;
	letter-spacing: 0.01em;
}

.sf-gallery-item {
	border: 1px solid rgba(23, 43, 63, 0.14);
}

@media (max-width: 960px) {
	.sf-nav {
		background: #ffffff;
		border-bottom: 1px solid rgba(23, 43, 63, 0.12);
	}
}

/* Career section layout tuning */
.sf-career,
.sf-career.sf-career-grid {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 3.4rem 0;
}

.elementor-section.sf-career > .elementor-container,
.sf-career > .elementor-container,
.sf-career.sf-career-grid > .elementor-container {
	flex: 0 1 min(1360px, 94vw);
	width: min(1360px, 94vw) !important;
	max-width: 1360px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: clamp(14px, 1.8vw, 24px);
	padding-right: clamp(14px, 1.8vw, 24px);
	box-sizing: border-box;
	display: grid !important;
	grid-template-columns: minmax(380px, 560px) minmax(560px, 760px);
	justify-content: center;
	gap: 2.6rem;
	align-items: center;
}

.elementor-section.sf-career > .elementor-container > .elementor-column.elementor-col-50,
.sf-career > .elementor-container > .elementor-column.elementor-col-50 {
	width: 100% !important;
	max-width: 100% !important;
	flex: 1 1 auto !important;
}

.sf-career-copy > .elementor-widget-wrap {
	max-width: 620px;
	margin-left: auto;
	margin-right: auto;
}

.sf-career-copy h2,
.sf-career-copy p {
	text-align: left;
}

.sf-career-media > .elementor-widget-wrap {
	display: flex;
	justify-content: center;
}

.sf-career > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap {
	display: flex;
	justify-content: center;
}

.sf-career-media .elementor-widget-image {
	width: 100%;
	display: flex;
	justify-content: center;
}

.sf-career-media .elementor-widget-image img {
	width: min(112%, 760px);
	max-width: min(112%, 760px);
	height: auto;
}

.sf-career > .elementor-container > .elementor-column:last-child img {
	width: min(112%, 760px);
	max-width: min(112%, 760px);
	height: auto;
}

@media (max-width: 1024px) {
	.elementor-section.sf-career > .elementor-container,
	.sf-career > .elementor-container,
	.sf-career.sf-career-grid > .elementor-container {
		grid-template-columns: 1fr;
		gap: 1.4rem;
	}

	.sf-career-copy > .elementor-widget-wrap {
		max-width: 100%;
	}

	.sf-career-media > .elementor-widget-wrap {
		justify-content: center;
	}

	.sf-career-media .elementor-widget-image img {
		width: 100%;
		max-width: 100%;
	}

	.sf-career > .elementor-container > .elementor-column:last-child img {
		width: 100%;
		max-width: 100%;
	}
}

/* Final hard override: force embedded gallery widgets to use full-size tiles. */
.photo-video-gallery-grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 0.85rem !important;
	width: 100% !important;
	align-items: stretch !important;
	justify-items: stretch !important;
}

.photo-video-gallery-grid-item {
	display: block !important;
	position: relative !important;
	width: 100% !important;
	min-width: 0 !important;
	height: clamp(200px, 16vw, 280px) !important;
	margin: 0 !important;
	overflow: hidden !important;
	border-radius: 0 !important;
}

.photo-video-gallery-grid-item-img,
.photo-video-gallery-grid-item img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	object-fit: cover !important;
	border-radius: 0 !important;
}

/* Fix WP/Elementor gallery defaults that keep items at max-width:25%. */
.sf-gallery .gallery .gallery-item {
	max-width: 100% !important;
	width: 100% !important;
	display: block !important;
}

.sf-gallery .gallery .gallery-icon,
.sf-gallery .gallery .gallery-icon a {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
}

.sf-gallery .gallery .gallery-icon img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	border-radius: 0 !important;
}

@media (max-width: 1024px) {
	.photo-video-gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.photo-video-gallery-grid-item {
		height: clamp(180px, 24vw, 240px) !important;
	}
}

@media (max-width: 720px) {
	.photo-video-gallery-grid {
		grid-template-columns: 1fr !important;
	}

	.photo-video-gallery-grid-item {
		height: clamp(180px, 62vw, 260px) !important;
	}
}

/* Elementor accordion: remove borders from item wrappers in FAQ widget */
.elementor-widget-accordion .elementor-accordion .elementor-accordion-item,
.elementor-widget-accordion .elementor-accordion .elementor-tab-content,
.elementor-widget-accordion .elementor-accordion .elementor-tab-title.elementor-active {
	border: 0 !important;
}

.elementor-widget-accordion .elementor-accordion .elementor-tab-content,
.elementor-widget-accordion .elementor-accordion .elementor-tab-content p {
	color: #fff !important;
}

/* Application + Contact page templates */
.sf-page-application,
.sf-page-contact {
	background: #f3f7fb;
	color: #1d344b;
}

.sf-page-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(3rem, 6vw, 5rem) 0;
	color: #fff;
	background: #0d2237;
}

.sf-page-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: linear-gradient(105deg, rgba(7, 18, 30, 0.84) 6%, rgba(12, 29, 46, 0.72) 46%, rgba(11, 30, 51, 0.86) 100%), var(--sf-page-hero-bg);
	background-position: center;
	background-size: cover;
}

.sf-page-hero .sf-wrap {
	position: relative;
	z-index: 1;
	max-width: 760px;
}

.sf-page-hero-kicker {
	margin: 0 0 0.65rem;
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.sf-page-hero h1 {
	margin: 0;
	font-family: 'Montserrat', sans-serif;
	font-size: clamp(2rem, 5vw, 3.1rem);
	line-height: 1.08;
}

.sf-page-hero-sub {
	margin: 0.45rem 0 1.4rem;
	font-family: 'Montserrat', sans-serif;
	font-size: clamp(1rem, 2.3vw, 1.35rem);
	color: #99ddff;
}

.sf-page-main {
	padding: clamp(2.3rem, 5vw, 3.8rem) 0;
}

.sf-page-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
	gap: 1.2rem;
	align-items: start;
}

.sf-form-shell,
.sf-side-shell {
	background: #fff;
	border: 1px solid rgba(17, 43, 67, 0.12);
	border-radius: 14px;
	box-shadow: 0 16px 30px rgba(20, 52, 78, 0.08);
	padding: clamp(1rem, 2vw, 1.6rem);
}

.sf-form-shell h2,
.sf-side-shell h3 {
	margin: 0;
	font-family: 'Montserrat', sans-serif;
	color: #173652;
}

.sf-form-shell h2 {
	font-size: clamp(1.5rem, 3.5vw, 2.15rem);
}

.sf-form-shell h2 span {
	display: block;
	color: #1d7fc7;
	font-size: clamp(1rem, 2.1vw, 1.25rem);
	margin-top: 0.35rem;
}

.sf-form-intro,
.sf-side-shell p {
	margin: 0.75rem 0 1rem;
	color: #4e6680;
}

.sf-form-feedback {
	margin: 0 0 0.9rem;
	padding: 0.72rem 0.82rem;
	border-radius: 8px;
	font-size: 0.9rem;
	line-height: 1.45;
}

.sf-form-feedback-success {
	background: #e7f9ee;
	border: 1px solid #98d9af;
	color: #1d6a39;
}

.sf-form-feedback-error {
	background: #fff0f0;
	border: 1px solid #f0b6b6;
	color: #8d1d1d;
}

.sf-page-form {
	display: grid;
	gap: 0.95rem;
}

.sf-contact-form-shortcode .wpcf7 form {
	display: grid;
	gap: 0.55rem;
}

.sf-contact-form-shortcode .wpcf7 form p {
	margin: 0 !important;
}

.sf-contact-form-shortcode p {
	margin: 0;
}

.sf-contact-form-shortcode label {
	display: grid;
	gap: 0.42rem;
	font-size: 0.91rem;
	font-weight: 600;
	color: #274966;
}

.sf-contact-form-shortcode .sf-cf7-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.45rem;
}

.sf-contact-form-shortcode .sf-cf7-field {
	margin: 0;
}

.sf-contact-form-shortcode .sf-cf7-grid br,
.sf-contact-form-shortcode .sf-cf7-consent br {
	display: none;
}

.sf-contact-form-shortcode .sf-cf7-field-full {
	grid-column: 1 / -1;
}

.sf-contact-form-shortcode input[type='text'],
.sf-contact-form-shortcode input[type='email'],
.sf-contact-form-shortcode input[type='tel'],
.sf-contact-form-shortcode select,
.sf-contact-form-shortcode textarea {
	width: 100%;
	padding: 0.64rem 0.72rem;
	border: 1px solid rgba(17, 43, 67, 0.2);
	border-radius: 8px;
	background: #f8fbff;
	color: #1e364d;
	font: inherit;
}

.sf-contact-form-shortcode select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	padding-right: 2.2rem;
	background-image:
		linear-gradient(45deg, transparent 50%, #1e364d 50%),
		linear-gradient(135deg, #1e364d 50%, transparent 50%);
	background-position:
		calc(100% - 16px) calc(50% - 3px),
		calc(100% - 11px) calc(50% - 3px);
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
	cursor: pointer;
}

.sf-contact-form-shortcode textarea {
	min-height: 96px;
}

.sf-contact-form-shortcode input[type='text']:focus,
.sf-contact-form-shortcode input[type='email']:focus,
.sf-contact-form-shortcode input[type='tel']:focus,
.sf-contact-form-shortcode select:focus,
.sf-contact-form-shortcode textarea:focus {
	border-color: #1684d8;
	outline: none;
	box-shadow: 0 0 0 3px rgba(22, 132, 216, 0.15);
}

.sf-contact-form-shortcode .sf-cf7-consent {
	margin: 0.15rem 0 0;
}

.sf-contact-form-shortcode .sf-cf7-consent .wpcf7-list-item {
	margin: 0;
}

.sf-contact-form-shortcode .sf-cf7-consent .wpcf7-list-item-label {
	display: inline;
	font-size: 0.9rem;
	font-weight: 400;
	line-height: 1.48;
	color: #3d5d78;
}

.sf-contact-form-shortcode .sf-cf7-consent label {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	font-weight: 400;
}

.sf-contact-form-shortcode .sf-cf7-consent input[type='checkbox'] {
	width: 18px;
	height: 18px;
	margin-top: 0.1rem;
}

.sf-contact-form-shortcode .sf-cf7-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	font-size: 0.9rem;
	font-weight: 400;
	line-height: 1.48;
	color: #3d5d78;
}

.sf-contact-form-shortcode .sf-cf7-checkbox input[type='checkbox'] {
	width: 18px;
	height: 18px;
	margin-top: 0.1rem;
}

.sf-contact-form-shortcode .sf-cf7-submit-row {
	margin: 0.1rem 0 0;
	width: 100%;
}

.sf-contact-form-shortcode .wpcf7-submit {
	border: 0;
	border-radius: 999px;
	padding: 0.8rem 1.4rem;
	width: 100%;
	background: #f2cd1a;
	color: #0f2b45;
	font-weight: 700;
	cursor: pointer;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.sf-contact-form-shortcode .wpcf7-submit:hover {
	background: #e1bc08;
	transform: translateY(-1px);
}

.sf-contact-form-shortcode .wpcf7-response-output {
	margin: 0.7rem 0 0 !important;
	padding: 0.72rem 0.82rem !important;
	border-radius: 8px;
	font-size: 0.9rem;
}

@media (max-width: 720px) {
	.sf-contact-form-shortcode .sf-cf7-grid {
		grid-template-columns: 1fr;
	}
}

.sf-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.8rem;
}

.sf-page-form label {
	display: grid;
	gap: 0.42rem;
}

.sf-page-form label > span {
	font-size: 0.91rem;
	font-weight: 600;
	color: #274966;
}

.sf-page-form input,
.sf-page-form select,
.sf-page-form textarea {
	width: 100%;
	padding: 0.76rem 0.78rem;
	border: 1px solid rgba(17, 43, 67, 0.2);
	border-radius: 8px;
	background: #f8fbff;
	color: #1e364d;
	font: inherit;
}

.sf-page-form input:focus,
.sf-page-form select:focus,
.sf-page-form textarea:focus {
	border-color: #1684d8;
	outline: none;
	box-shadow: 0 0 0 3px rgba(22, 132, 216, 0.15);
}

.sf-form-full {
	grid-column: 1 / -1;
}

.sf-check-row {
	display: flex !important;
	align-items: flex-start;
	gap: 0.6rem;
	font-size: 0.9rem;
	color: #3d5d78;
}

.sf-check-row input[type='checkbox'] {
	width: 18px;
	height: 18px;
	margin-top: 0.1rem;
}

.sf-check-long {
	line-height: 1.48;
}

.sf-form-note {
	margin: 0.9rem 0 0;
	color: #4d637a;
	font-size: 0.92rem;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	text-align: center;
}

.sf-form-note span {
	margin: 0 0.25rem;
}

.sf-form-note a {
	color: #157fce;
}

.sf-form-note a:hover {
	color: #0c6fb6;
}

.sf-side-shell ul,
.sf-contact-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.6rem;
}

.sf-form-shell .sf-contact-list {
	margin-bottom: 1rem;
}

.sf-side-shell li,
.sf-contact-list li {
	color: #2f4b64;
	line-height: 1.45;
}

.sf-page-faq {
	padding: 0 0 3.7rem;
}

.sf-page-faq h2 {
	margin: 0 0 0.8rem;
	font-family: 'Montserrat', sans-serif;
	color: #183652;
	text-align: center;
}

.sf-page-faq-list {
	display: grid;
	gap: 0.7rem;
}

.sf-page-faq-list details {
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 7px 20px rgba(18, 42, 65, 0.08);
	padding: 0.9rem 1rem;
}

.sf-page-faq-list summary {
	cursor: pointer;
	font-weight: 700;
	color: #163d5f;
}

.sf-page-faq-list p {
	margin: 0.7rem 0 0;
	color: #4f6580;
}

@media (max-width: 960px) {
	.sf-page-grid {
		grid-template-columns: 1fr;
	}

	.sf-form-grid {
		grid-template-columns: 1fr;
	}
}

/* Home FAQ restyle (replace existing accordion look) */
body.home .sf-faq {
	background: #e9eff5 !important;
	padding: 3.1rem 0 3.4rem !important;
}

body.home .sf-faq h2 {
	color: #143e67 !important;
	font-size: clamp(2rem, 3.4vw, 3rem);
	margin: 0 0 1.15rem;
	text-align: center;
}

body.home .sf-faq .elementor-widget-accordion .elementor-accordion {
	display: grid;
	gap: 0.72rem;
}

body.home .sf-faq .elementor-widget-accordion .elementor-accordion-item {
	border: 0 !important;
	background: #ffffff !important;
	border-radius: 11px;
	overflow: hidden;
	box-shadow: none;
}

body.home .sf-faq .elementor-widget-accordion .elementor-tab-title {
	position: relative;
	padding: 1.03rem 1.1rem 1.03rem 1.9rem;
	background: #ffffff;
}

body.home .sf-faq .elementor-widget-accordion .elementor-tab-title::before {
	content: '';
	position: absolute;
	left: 0.95rem;
	top: 50%;
	transform: translateY(-50%) rotate(0deg);
	width: 0;
	height: 0;
	border-top: 4px solid transparent;
	border-bottom: 4px solid transparent;
	border-left: 6px solid #113c64;
}

body.home .sf-faq .elementor-widget-accordion .elementor-tab-title.elementor-active::before {
	transform: translateY(-50%) rotate(90deg);
}

body.home .sf-faq .elementor-widget-accordion .elementor-accordion-icon {
	display: none !important;
}

body.home .sf-faq .elementor-widget-accordion .elementor-accordion-title {
	color: #133f68 !important;
	font-size: clamp(1.02rem, 1.75vw, 1.05rem);
	font-weight: 700;
	line-height: 1.4;
}

body.home .sf-faq .elementor-widget-accordion .elementor-tab-content {
	padding: 0 1.1rem 1rem 1.9rem;
	background: #ffffff !important;
	border: 0 !important;
	color: #3f5d77 !important;
}

body.home .sf-faq .elementor-widget-accordion .elementor-tab-content p {
	margin: 0;
	color: #3f5d77 !important;
}

/* Fallback FAQ variant with the same visual language */
body.home .sf-faq .sf-faq-list {
	gap: 0.72rem;
}

body.home .sf-faq .sf-faq-list details {
	border: 0 !important;
	background: #ffffff !important;
	border-radius: 11px;
	padding: 0;
}

body.home .sf-faq .sf-faq-list summary {
	list-style: none;
	position: relative;
	padding: 1.03rem 1.1rem 1.03rem 1.9rem;
	color: #133f68;
	font-weight: 700;
}

body.home .sf-faq .sf-faq-list summary::-webkit-details-marker {
	display: none;
}

body.home .sf-faq .sf-faq-list summary::before {
	content: '';
	position: absolute;
	left: 0.95rem;
	top: 50%;
	transform: translateY(-50%) rotate(0deg);
	width: 0;
	height: 0;
	border-top: 4px solid transparent;
	border-bottom: 4px solid transparent;
	border-left: 6px solid #113c64;
}

body.home .sf-faq .sf-faq-list details[open] summary::before {
	transform: translateY(-50%) rotate(90deg);
}

body.home .sf-faq .sf-faq-list p {
	margin: 0;
	padding: 0 1.1rem 1rem 1.9rem;
	color: #3f5d77 !important;
}

