/* New editable homepage sections. Existing hero, game, header and footer stay scoped out. */
.elementor .sj-home-page.e-con {
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	background: transparent;
}

.sj-home-page .sj-home-section {
	--sj-home-copy: color-mix(in srgb, var(--color-navy) 80%, var(--color-offwhite));
	--sj-home-line: color-mix(in srgb, var(--color-navy) 19%, var(--color-offwhite));
	--sj-home-accent: color-mix(in srgb, var(--color-forest) 50%, var(--color-navy));
	width: 100%;
	padding: 0;
	font-family: var(--font-body);
}

.sj-home-page .sj-home-section.sj-dark-section {
	--sj-home-copy: color-mix(in srgb, var(--color-offwhite) 80%, var(--color-navy));
	--sj-home-line: color-mix(in srgb, var(--color-offwhite) 18%, var(--color-navy));
	--sj-home-accent: var(--color-lime);
}

.sj-home-page .sj-home-section,
.sj-home-page .sj-home-section .e-con {
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	min-width: 0;
	max-width: none;
	border-radius: 0;
}

.sj-home-page .sj-home-section .e-con { padding: 0; }
.sj-home-page .sj-home-section .elementor-widget { --kit-widget-spacing: 0px; min-width: 0; margin: 0; }
.sj-home-page .sj-home-section :is(h2, h3, p) { margin: 0; }
.sj-home-page .sj-home-section p + p { margin-top: 20px; }
.sj-home-page .sj-home-section .elementor-heading-title { color: inherit; }
.sj-home-page .sj-home-section .elementor-widget-text-editor { font-family: var(--font-body); font-size: var(--font-size-body); line-height: 1.85; }

.sj-home-page .sj-home-section .sj-home-section-inner.e-con {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 32px;
	width: min(1280px, calc(100% - 64px));
	margin: 0 auto;
	padding: 64px 0;
}

.sj-home-page .sj-home-section .sj-home-kicker :is(.elementor-heading-title, p) {
	color: var(--sj-home-accent);
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

:where(.sj-home-page .sj-home-section) .sj-home-section-title .elementor-heading-title {
	font-family: var(--font-heading);
	font-size: clamp(32px, 3.2vw, 46px);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -0.035em;
	text-wrap: balance;
}

.sj-home-page .sj-home-section .sj-home-section-heading.e-con {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: end;
	gap: 24px 64px;
	width: 100%;
}
.sj-home-page .sj-home-section-intro { max-width: 57ch; color: var(--sj-home-copy); }

.sj-home-page .sj-home-story-grid.e-con {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	align-items: start;
	gap: 80px;
	width: 100%;
}
.sj-home-page .sj-home-story-heading.e-con { display: flex; flex-direction: column; gap: 20px; width: 100%; }
.sj-home-page .sj-home-story-heading .sj-home-section-title { max-width: 17ch; }
.sj-home-page .sj-home-story-copy { max-width: 66ch; color: var(--sj-home-copy); }

.sj-home-page .sj-home-checks.e-con {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: stretch;
	gap: 16px;
	width: 100%;
}
.sj-home-page .sj-home-check.e-con {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 100%;
	padding: 28px;
	border: 1px solid var(--sj-home-line);
	background: transparent;
}
.sj-home-page .sj-home-card-title .elementor-heading-title {
	font-family: var(--font-heading);
	font-size: 25px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.02em;
}
.sj-home-page .sj-home-card-copy { color: var(--sj-home-copy); }

.sj-home-page .sj-home-service-grid.e-con {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 20px;
	width: 100%;
}
.sj-home-page .sj-home-service.e-con {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 16px;
	width: 100%;
	padding: 28px;
	border: 1px solid var(--sj-home-line);
	background: var(--color-white);
}
.sj-home-page .sj-home-service-title .elementor-heading-title {
	font-family: var(--font-heading);
	font-size: 25px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.02em;
}
.sj-home-page .sj-home-service-title .elementor-heading-title a {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	color: inherit;
	text-decoration: none;
}
.sj-home-page .sj-home-service-title .elementor-heading-title a:is(:visited, :hover, :focus, :active) { color: inherit; }
body:not(.elementor-editor-active) .sj-home-page .sj-home-service-title { position: static; }
.sj-home-page .sj-home-service-title .elementor-heading-title a::after { position: absolute; z-index: 1; inset: 0; content: ''; }
body.elementor-editor-active .sj-home-page .sj-home-service-title .elementor-heading-title a::after { display: none; }
.sj-home-page .sj-home-service-icon { flex: 0 0 24px; width: 24px; height: 24px; color: var(--sj-home-accent); font-size: 24px; }
.sj-home-page .sj-home-service:is(:hover, :focus-within) { border-color: var(--sj-home-accent); }
.sj-home-page .sj-home-service:focus-within { outline: 2px solid var(--color-navy); outline-offset: 3px; }
.sj-home-page .sj-home-service-title a:focus-visible { outline: 0; }

.sj-home-page .sj-home-process.sj-light-section { background: var(--color-white); }
.sj-home-page .sj-home-process-grid.e-con {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: start;
	gap: 28px;
	width: 100%;
}
.sj-home-page .sj-home-step.e-con {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 100%;
	padding: 24px 0 0;
	border-top: 1px solid var(--sj-home-line);
}
.sj-home-page .sj-home-step-number :is(.elementor-heading-title, p) {
	color: var(--sj-home-accent);
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
}

.sj-home-page .sj-home-about-grid.e-con {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	align-items: center;
	gap: 72px;
	width: 100%;
}
.sj-home-page .sj-home-about-image.e-con { display: flex; flex-direction: column; gap: 12px; width: 100%; }
.sj-home-page .sj-home-portrait { width: 100%; }
.sj-home-page .sj-home-portrait img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: center; border-radius: 0; }
.sj-home-page .sj-home-image-caption { color: var(--sj-home-copy); font-size: var(--font-size-body); line-height: 1.65 !important; }
.sj-home-page .sj-home-about-copy.e-con { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; width: 100%; }
.sj-home-page .sj-home-about-text { max-width: 62ch; color: var(--sj-home-copy); }

.sj-home-page .sj-home-proof.sj-light-section { background: var(--color-white); }
.sj-home-page .sj-home-quotes.e-con { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 24px; width: 100%; }
.sj-home-page .sj-home-quote.e-con {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	width: 100%;
	padding: 32px;
	border: 1px solid var(--sj-home-line);
	background: var(--color-white);
}
.sj-home-page .sj-home-section .sj-home-quote-text { flex: 1 1 auto; width: 100%; margin-bottom: 28px; font-size: 16px; line-height: 1.8; }
.sj-home-page .sj-home-quote-text blockquote { margin: 0; padding: 0; border: 0; color: inherit; font: inherit; }
.sj-home-page .sj-home-quote-name .elementor-heading-title { font-family: var(--font-body); font-size: 13px; font-weight: 600; line-height: 1.6; }
.sj-home-page .sj-home-section .sj-home-quote-role { margin-top: 8px; color: var(--sj-home-copy); font-size: var(--font-size-body); line-height: 1.7; }

.sj-home-page .sj-home-next-grid.e-con { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); align-items: start; gap: 80px; width: 100%; }
.sj-home-page .sj-home-next-grid > .e-con { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; width: 100%; }
.sj-home-page .sj-home-next .sj-home-section-title { max-width: 19ch; }
.sj-home-page .sj-home-next-copy { max-width: 56ch; color: var(--sj-home-copy); }
.sj-home-page .sj-home-next-grid .sj-home-home-rates.e-con { gap: 0; }
.sj-home-page .sj-home-rate { width: 100%; padding: 16px 0; border-bottom: 1px solid var(--sj-home-line); }
.sj-home-page .sj-home-rate:first-child { padding-top: 0; }
.sj-home-page .sj-home-rate .elementor-heading-title { font-family: var(--font-heading); font-size: 28px; font-weight: 600; line-height: 1.3; letter-spacing: -0.015em; }
.sj-home-page .sj-home-section .sj-home-rate-note { margin-top: 20px; color: var(--sj-home-copy); font-size: var(--font-size-body); line-height: 1.8; }
.sj-home-page .sj-home-next-actions.e-con { display: flex; flex-direction: row; flex-wrap: wrap; align-items: flex-start; gap: 12px; width: 100%; margin-top: 24px; }
.sj-home-page .sj-home-section :is(.sj-home-cta, .sj-home-link-button) { align-self: flex-start; width: auto; }
.sj-home-page .sj-home-section .elementor-button { min-height: 44px; padding: 12px 24px; }

@media (max-width: 1100px) {
	.sj-home-page .sj-home-story-grid.e-con { gap: 48px; }
	.sj-home-page .sj-home-section .sj-home-section-heading.e-con { gap: 24px 40px; }
	.sj-home-page .sj-home-check.e-con { padding: 24px; }
	.sj-home-page .sj-home-service.e-con { padding: 24px; }
	.sj-home-page .sj-home-about-grid.e-con { gap: 48px; }
	.sj-home-page .sj-home-next-grid.e-con { gap: 48px; }
}

@media (max-width: 1000px) {
	.sj-home-page .sj-home-checks.e-con,
	.sj-home-page .sj-home-service-grid.e-con,
	.sj-home-page .sj-home-process-grid.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sj-home-page .sj-home-story-grid.e-con { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 32px; }
	.sj-home-page .sj-home-about-grid.e-con { gap: 32px; }
	.sj-home-page .sj-home-next-grid.e-con { gap: 40px; }
	.sj-home-page .sj-home-quote.e-con { padding: 28px; }
}

@media (max-width: 767px) {
	.sj-home-page .sj-home-section .sj-home-section-inner.e-con { width: calc(100% - 32px); padding: 40px 0; gap: 28px; }
	:where(.sj-home-page .sj-home-section) .sj-home-section-title .elementor-heading-title { font-size: clamp(30px, 7.8vw, 38px); }
	.sj-home-page .sj-home-section .sj-home-section-heading.e-con { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.sj-home-page .sj-home-story-grid.e-con,
	.sj-home-page .sj-home-about-grid.e-con,
	.sj-home-page .sj-home-next-grid.e-con { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.sj-home-page .sj-home-story-heading.e-con { gap: 16px; }
	.sj-home-page .sj-home-story-heading .sj-home-section-title { max-width: 20ch; }
	.sj-home-page .sj-home-about-copy.e-con { gap: 20px; }
	.sj-home-page .sj-home-portrait img { max-height: 520px; }
	.sj-home-page .sj-home-quotes.e-con { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.sj-home-page .sj-home-quote.e-con { padding: 24px; }
	.sj-home-page .sj-home-section .sj-home-quote-text { font-size: 15px; }
	.sj-home-page .sj-home-next-grid > .e-con { gap: 20px; }
	.sj-home-page .sj-home-next .sj-home-section-title { max-width: 20ch; }
	.sj-home-page .sj-home-next-actions.e-con { margin-top: 24px; }
}

@media (max-width: 600px) {
	.sj-home-page .sj-home-checks.e-con,
	.sj-home-page .sj-home-service-grid.e-con,
	.sj-home-page .sj-home-process-grid.e-con { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.sj-home-page .sj-home-check.e-con,
	.sj-home-page .sj-home-service.e-con { padding: 24px; }
	.sj-home-page .sj-home-card-title .elementor-heading-title,
	.sj-home-page .sj-home-service-title .elementor-heading-title { font-size: 24px; }
	.sj-home-page .sj-home-step.e-con { gap: 16px; padding-top: 20px; }
	.sj-home-page .sj-home-process-grid.e-con { gap: 28px; }
	.sj-home-page .sj-home-rate .elementor-heading-title { font-size: 26px; }
	.sj-home-page .sj-home-next-actions.e-con { flex-direction: column; align-items: stretch; }
	.sj-home-page .sj-home-next-actions .sj-home-cta { width: 100%; }
	.sj-home-page .sj-home-next-actions .elementor-button { width: 100%; }
}
