/* Standard WordPress pages share the dark hero / light content treatment. */
.sj-standard-page {
	width: 100%;
	max-width: none;
	margin: 0;
	color: var(--color-navy);
	background: var(--color-surface);
}

.sj-page-hero {
	padding: 48px max(32px, calc((100% - 1280px) / 2)) 56px;
	color: var(--color-offwhite);
	background: var(--color-navy);
}

.sj-page-hero-inner { max-width: 1280px; }

.sj-page-eyebrow {
	margin: 0 0 20px;
	color: var(--color-lime);
	font-family: var(--font-body);
	font-size: 12px;
	line-height: 1.6;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.sj-page-title {
	margin: 0;
	color: inherit;
	font-family: var(--font-heading);
	font-size: clamp(42px, 4.6vw, 68px);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.04em;
	overflow-wrap: anywhere;
}

.sj-page-summary {
	max-width: 65ch;
	margin-top: 24px;
	font-size: var(--font-size-body);
	line-height: 1.8;
}

.sj-page-summary p { margin: 0; }

.sj-page-body {
	min-height: 300px;
	padding: 48px max(32px, calc((100% - 1280px) / 2)) 64px;
}

.sj-page-body-inner { max-width: 1280px; }
.sj-page-body-inner > :first-child { margin-top: 0; }
.sj-page-body-inner > :last-child { margin-bottom: 0; }

/* Native Elementor content on service and enquiry pages. */
.sj-page-body .sj-visitor-content { --gap: 40px; padding: 0; }
.sj-page-body .sj-visitor-intro { max-width: 800px; padding: 0; --gap: 20px; }
.sj-page-body .sj-visitor-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	padding: 1px;
	background: var(--color-navy);
	align-items: stretch;
}
.sj-page-body .sj-visitor-card {
	min-width: 0;
	width: 100%;
	padding: clamp(24px, 3vw, 40px);
	background: var(--color-surface);
	--gap: 24px;
}
.sj-page-body .sj-visitor-card-accent { background: var(--color-lime); }
/* The shared footer now owns the enquiry; a remaining service card fills its row. */
.sj-page-body .sj-visitor-grid > .sj-visitor-card:only-child { grid-column: 1 / -1; }
.sj-page-body .sj-visitor-content h2 { font-size: clamp(26px, 3vw, 36px); line-height: 1.15; }
.sj-page-body .sj-visitor-content p { max-width: 68ch; }
.sj-page-body .sj-visitor-content li + li { margin-top: 12px; }
.sj-page-body .sj-visitor-content .elementor-widget-button { max-width: 100%; }
.sj-page-body .sj-visitor-content a { overflow-wrap: anywhere; }

.sj-page-body a:where(:not(.button, .wp-element-button, .wp-block-button__link, .elementor-button)) {
	color: var(--color-navy);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.sj-page-body a:where(:not(.button, .wp-element-button, .wp-block-button__link, .elementor-button)):is(:hover, :focus-visible) {
	text-decoration-thickness: 1px;
}

.sj-page-body :is(a, input, textarea, select):focus-visible {
	outline: 2px solid var(--color-navy);
	outline-offset: 3px;
}

@media (max-width: 600px) {
	.sj-page-body .sj-visitor-grid { grid-template-columns: minmax(0, 1fr); }
	.sj-page-body .sj-visitor-content { --gap: 32px; }
	.sj-page-hero { padding: 24px 16px 32px; }
	.sj-page-eyebrow { margin-bottom: 16px; }
	.sj-page-title { font-size: clamp(34px, 9vw, 48px); }
	.sj-page-summary { font-size: var(--font-size-body); }
	.sj-page-body { padding: 32px 16px 40px; min-height: 240px; }
}
