/* Open section introductions, with one continuous frame around each comparison. */
.elementor .sj-pricing-page .sj-pricing-section-heading > .elementor-widget {
	padding: 56px var(--sj-page-pad, 32px) 40px;
	border-left: 0;
}
.sj-pricing-page .sj-pricing-section-title .elementor-heading-title {
	font-size: clamp(36px, 3.8vw, 54px);
	line-height: 1.1;
	letter-spacing: -.035em;
}
.elementor .sj-pricing-page :is(.sj-pricing-rate, .sj-pricing-principle).e-con {
	padding: 40px var(--sj-page-pad, 32px) 48px;
	min-height: 0;
}
.sj-pricing-page .sj-pricing-note { padding: 24px var(--sj-page-pad, 32px); }
.elementor .sj-pricing-page :is(.sj-pricing-retainer-copy, .sj-pricing-retainer-figure).e-con {
	padding: 56px var(--sj-page-pad, 32px);
}
.elementor .sj-pricing-page .sj-pricing-faq-intro.e-con { padding: 40px var(--sj-page-pad, 32px); }
.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item-title { padding: 28px var(--sj-page-pad, 32px); }
.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item > .e-con { padding: 0 var(--sj-page-pad, 32px) 28px; }
@media (max-width: 1000px) {
	.elementor .sj-pricing-page :is(.sj-pricing-section-heading, .sj-pricing-rates, .sj-pricing-retainer, .sj-pricing-principles, .sj-pricing-faq).e-con {
		grid-template-columns: minmax(0, 1fr);
	}
	.elementor .sj-pricing-page :is(.sj-pricing-section-heading, .sj-pricing-rates, .sj-pricing-retainer, .sj-pricing-principles, .sj-pricing-faq) > * {
		grid-column: 1 / -1;
	}
	.elementor .sj-pricing-page .sj-pricing-section-heading > .elementor-widget + .elementor-widget { padding-top: 0; }
	.elementor .sj-pricing-page :is(.sj-pricing-rate, .sj-pricing-principle).e-con + .e-con { border-left: 0; }
	.elementor .sj-pricing-page .sj-pricing-retainer-figure.e-con {
		border-left: 0;
		border-top: 1px solid var(--sj-pricing-line);
	}
	.elementor .sj-pricing-page .sj-pricing-faq-list.e-con {
		border-left: 0;
		border-top: 1px solid var(--sj-pricing-line);
	}
	.sj-pricing-page .sj-pricing-rate .sj-pricing-label .elementor-heading-title { font-size: 14px; }
	.sj-pricing-page .sj-pricing-rate .elementor-button { padding-inline: 24px; font-size: 14px; }
	.sj-pricing-page .sj-pricing-principle-title .elementor-heading-title { font-size: 24px; }
}
@media (max-width: 767px) {
	.elementor .sj-pricing-page .sj-pricing-hero.e-con { padding-inline: 20px; }
	.elementor .sj-pricing-page .sj-pricing-section-heading > .elementor-widget { padding: 40px 20px 24px; }
	.elementor .sj-pricing-page .sj-pricing-section-heading > .elementor-widget + .elementor-widget { padding-top: 0; padding-bottom: 40px; }
	.sj-pricing-page .sj-pricing-section-title .elementor-heading-title { font-size: clamp(30px, 7.8vw, 40px); }
	.elementor .sj-pricing-page :is(.sj-pricing-rate, .sj-pricing-principle).e-con { padding: 32px 20px 40px; }
	.sj-pricing-page .sj-pricing-note { padding: 24px 20px; }
	.elementor .sj-pricing-page :is(.sj-pricing-retainer-copy, .sj-pricing-retainer-figure).e-con { padding: 40px 20px; }
	.elementor .sj-pricing-page .sj-pricing-faq-intro.e-con { padding: 40px 20px; }
	.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item-title { padding: 24px 20px; }
	.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item > .e-con { padding: 0 20px 24px; }
}

/* Typical timelines remain native editable accordion content inside the page rails. */
.elementor .sj-pricing-page .sj-pricing-timelines.e-con {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	width: 100%;
	padding: 0;
	border-top: 1px solid var(--sj-pricing-line);
	background: var(--color-white);
	color: var(--color-navy);
}
.sj-pricing-page .sj-timeline-accordion {
	--n-accordion-border-width: 0px;
	--n-accordion-border-radius: 0px;
	--n-accordion-item-title-space-between: 0px;
	--n-accordion-item-title-distance-from-content: 0px;
	--n-accordion-title-normal-color: var(--color-navy);
	--n-accordion-title-hover-color: var(--color-navy);
	--n-accordion-title-active-color: var(--color-navy);
	width: 100%;
	border-top: 1px solid var(--sj-pricing-line);
}
.sj-pricing-page .sj-timeline-accordion :is(.elementor-widget-container, .e-n-accordion) {
	width: 100%;
	margin: 0;
	padding: 0;
	gap: 0;
}
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item {
	margin: 0;
	border: 0;
	border-bottom: 1px solid var(--sj-pricing-line);
	border-radius: 0;
	background: transparent;
}
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item:last-child { border-bottom: 0; }
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 72px;
	margin: 0;
	padding: 28px var(--sj-page-pad, 32px);
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--color-navy);
	list-style: none;
	cursor: pointer;
}
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title::-webkit-details-marker { display: none; }
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title-header { min-width: 0; }
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title-icon { display: none; }
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title-text {
	margin: 0;
	color: inherit;
	font-family: var(--font-heading);
	font-size: 22px;
	font-weight: var(--font-weight-secondary);
	line-height: 1.25;
	letter-spacing: -.015em;
	overflow-wrap: anywhere;
}
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item:not([open]) > .e-n-accordion-item-title:is(:hover, :focus-visible) {
	background: color-mix(in srgb, var(--color-navy) 4%, var(--color-offwhite));
}
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title:is(:hover, :focus-visible) { background: transparent; }
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title:focus-visible { outline: 2px solid var(--color-navy); outline-offset: -4px; }
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title::after {
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	color: inherit;
	font: 24px/1 'pixelart-icons-font';
	content: '\ecd8' / '';
}
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title::after { content: '\ec9a' / ''; }
.elementor .sj-pricing-page .sj-timeline-accordion .e-n-accordion-item > .e-con,
.elementor .sj-pricing-page .sj-timeline-panel.e-con {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	width: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}
.elementor .sj-pricing-page .sj-timeline-row.e-con {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	align-items: start;
	gap: 24px;
	width: 100%;
	padding: 28px var(--sj-page-pad, 32px);
	border-top: 1px solid var(--sj-pricing-line);
}
.elementor .sj-pricing-page .sj-timeline-description.e-con { flex-direction: column; align-items: stretch; gap: 8px; width: 100%; padding: 0; }
.sj-pricing-page .sj-timeline-name .elementor-heading-title { margin: 0; font-size: 21px; font-weight: var(--font-weight-secondary); line-height: 1.3; letter-spacing: -.015em; }
.sj-pricing-page .sj-timeline-detail { max-width: 68ch; color: var(--sj-pricing-muted); }
.elementor .sj-pricing-page .sj-timeline-estimate.e-con { flex-direction: row; flex-wrap: wrap; align-items: baseline; justify-content: flex-start; gap: 4px 20px; width: 100%; padding: 0; }
.sj-pricing-page .sj-timeline-estimate > .elementor-widget { width: auto; max-width: 100%; }
.sj-pricing-page .sj-timeline-time { color: var(--color-navy); }
.sj-pricing-page .sj-timeline-cost { color: var(--sj-pricing-muted); }
.sj-pricing-page .sj-pricing-timelines :is(.sj-timeline-detail, .sj-timeline-time, .sj-timeline-cost, .sj-timeline-note, .sj-timeline-enquiry-copy) {
	font-family: var(--font-body);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-body);
	line-height: 1.8;
}
.sj-pricing-page .sj-timeline-note { width: 100%; margin: 0; padding: 24px var(--sj-page-pad, 32px); border-top: 1px solid var(--sj-pricing-line); color: var(--sj-pricing-muted); }

/* The enquiry divider reaches the top and bottom rules, with padding inside each cell. */
.elementor .sj-pricing-page .sj-timeline-enquiry.e-con {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch;
	gap: 0;
	width: 100%;
	padding: 0;
	border-block: 1px solid var(--sj-pricing-line);
}
.sj-pricing-page .sj-timeline-enquiry > .sj-timeline-quote,
.elementor .sj-pricing-page .sj-timeline-quote-cta.e-con { width: 100%; margin: 0; padding: 40px var(--sj-page-pad, 32px); }
.sj-pricing-page .sj-timeline-quote blockquote { margin: 0; padding: 0; border: 0; }
.sj-pricing-page .sj-timeline-quote blockquote > p { margin: 0; font-family: var(--font-secondary); font-size: clamp(24px, 2.4vw, 32px); font-weight: var(--font-weight-secondary); line-height: 1.4; letter-spacing: -.02em; }
.sj-pricing-page .sj-timeline-quote blockquote > footer { margin-top: 24px; color: var(--sj-pricing-muted); font-family: var(--font-body); font-size: var(--font-size-body); font-weight: var(--font-weight-body); line-height: 1.8; }
.elementor .sj-pricing-page .sj-timeline-quote-cta.e-con { flex-direction: column; align-items: flex-start; gap: 20px; border-left: 1px solid var(--sj-pricing-line); }
.sj-pricing-page .sj-timeline-enquiry-title .elementor-heading-title { margin: 0; font-size: clamp(27px, 2.5vw, 36px); font-weight: var(--font-weight-secondary); line-height: 1.15; letter-spacing: -.025em; }
.sj-pricing-page .sj-timeline-enquiry-copy { color: var(--sj-pricing-muted); }

@media (max-width: 1000px) {
	.elementor .sj-pricing-page .sj-timeline-enquiry.e-con { grid-template-columns: minmax(0, 1fr); }
	.elementor .sj-pricing-page .sj-timeline-quote-cta.e-con { border-left: 0; border-top: 1px solid var(--sj-pricing-line); }
}
@media (max-width: 767px) {
	.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title { gap: 16px; padding: 24px 20px; }
	.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title-text { font-size: 21px; }
	.elementor .sj-pricing-page .sj-timeline-row.e-con { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 24px 20px; }
	.sj-pricing-page .sj-timeline-name .elementor-heading-title { font-size: 20px; }
	.sj-pricing-page .sj-timeline-note { padding: 24px 20px; }
	.sj-pricing-page .sj-timeline-enquiry > .sj-timeline-quote,
	.elementor .sj-pricing-page .sj-timeline-quote-cta.e-con { padding: 32px 20px; }
}
@media (forced-colors: active) {
	.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title:focus-visible { outline-color: Highlight; }
}

/* Group ranges share the row estimate column while the native title stays one heading. */
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title:has(.sj-timeline-group-price) { position: relative; display: block; }
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title-header:has(.sj-timeline-group-price) { width: 100%; }
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title-text:has(.sj-timeline-group-price) {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	align-items: center;
	gap: 24px;
	width: 100%;
}
.sj-pricing-page .sj-timeline-group-name { min-width: 0; }
.sj-pricing-page .sj-timeline-group-price {
	min-width: 0;
	padding-right: 48px;
	font-family: var(--font-body);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-body);
	line-height: 1.8;
	letter-spacing: normal;
}
.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title:has(.sj-timeline-group-price)::after {
	position: absolute;
	top: 50%;
	right: var(--sj-page-pad, 32px);
	transform: translateY(-50%);
}
@media (max-width: 767px) {
	.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title-text:has(.sj-timeline-group-price) {
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
		padding-right: 40px;
	}
	.sj-pricing-page .sj-timeline-group-price { padding-right: 0; }
	.sj-pricing-page .sj-timeline-accordion .e-n-accordion-item-title:has(.sj-timeline-group-price)::after { right: 20px; }
}

/* Animate on the visible details host so reopening reliably replays the cue. */
@property --sj-accordion-edge-ink {
	syntax: '<color>';
	inherits: true;
	initial-value: transparent;
}
.sj-pricing-page :is(.sj-timeline-accordion, .sj-pricing-faq-accordion) .e-n-accordion-item {
	--sj-accordion-edge-rest: color-mix(in srgb, var(--color-navy) 4%, var(--color-offwhite));
	--sj-accordion-edge-ink: var(--sj-accordion-edge-rest);
	animation: none;
}
/* Open panels get a paint-only pixel frame: no displaced rails or moving copy. */
.elementor .sj-pricing-page :is(.sj-timeline-accordion, .sj-pricing-faq-accordion) .e-n-accordion-item > .e-con {
	position: relative;
	animation: none;
}
.elementor .sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item > .e-con {
	padding-top: 16px;
}
.sj-pricing-page :is(.sj-timeline-accordion, .sj-pricing-faq-accordion) .e-n-accordion-item[open] > .e-con::after {
	--sj-pixel-pattern: repeating-conic-gradient(currentColor 0% 25%, transparent 0% 50%);
	position: absolute;
	z-index: 1;
	inset: 0;
	width: auto;
	height: auto;
	color: var(--sj-accordion-edge-ink);
	background-image: var(--sj-pixel-pattern);
	background-size: var(--sj-pixel-pattern-size);
	/* A complete inset ring keeps all four pixel edges joined inside the rails. */
	clip-path: polygon(evenodd, 0 0, 100% 0, 100% 100%, 0 100%, 0 0, var(--sj-pixel-shadow-size) var(--sj-pixel-shadow-size), calc(100% - var(--sj-pixel-shadow-size)) var(--sj-pixel-shadow-size), calc(100% - var(--sj-pixel-shadow-size)) calc(100% - var(--sj-pixel-shadow-size)), var(--sj-pixel-shadow-size) calc(100% - var(--sj-pixel-shadow-size)), var(--sj-pixel-shadow-size) var(--sj-pixel-shadow-size));
	pointer-events: none;
	content: '';
}
@media (prefers-reduced-motion: no-preference) {
	.sj-pricing-page :is(.sj-timeline-accordion, .sj-pricing-faq-accordion) .e-n-accordion-item[open] {
		animation: sj-accordion-pixel-reveal 720ms ease-out both;
	}
}
@keyframes sj-accordion-pixel-reveal {
	0%, 20% { --sj-accordion-edge-ink: var(--color-lime); }
	100% { --sj-accordion-edge-ink: var(--sj-accordion-edge-rest); }
}
@media (prefers-reduced-motion: reduce) {
	.sj-pricing-page :is(.sj-timeline-accordion, .sj-pricing-faq-accordion) .e-n-accordion-item[open] { animation: none; }
}
@media (forced-colors: active) {
	.sj-pricing-page :is(.sj-timeline-accordion, .sj-pricing-faq-accordion) .e-n-accordion-item[open] { animation: none; }
	.sj-pricing-page :is(.sj-timeline-accordion, .sj-pricing-faq-accordion) .e-n-accordion-item[open] > .e-con::after {
		animation: none;
		background: none;
		clip-path: none;
		border: 2px solid CanvasText;
	}
}

/* A single native testimonial uses the homepage's quote and attribution styling. */
.elementor .sj-pricing-page .sj-pricing-testimonial.e-con {
	--sj-home-line: var(--sj-pricing-line);
	--sj-home-copy: color-mix(in srgb, var(--color-navy) 80%, var(--color-offwhite));
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	padding: 40px var(--sj-page-pad, 32px);
}
.sj-pricing-page .sj-pricing-testimonial .sj-home-quote-text {
	flex: 1 1 auto;
	width: 100%;
	max-width: 58ch;
	margin: 0 0 32px;
	font-family: var(--font-heading);
	font-size: clamp(26px, 2.7vw, 36px);
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: -.025em;
}
.sj-pricing-page .sj-pricing-testimonial .sj-home-quote-text :is(blockquote, p) {
	margin: 0;
	padding: 0;
	border: 0;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
}
.elementor .sj-pricing-page .sj-pricing-testimonial .sj-home-quote-person.e-con {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	align-items: center;
	column-gap: 16px;
	row-gap: 4px;
	width: 100%;
	min-height: 72px;
	margin-top: auto;
	padding: 0;
}
.sj-pricing-page .sj-pricing-testimonial .sj-home-quote-person > .sj-home-quote-avatar {
	grid-column: 1;
	grid-row: 1 / span 2;
	width: 72px;
	height: 72px;
	margin: 0;
	overflow: visible;
	border: 0;
}
.sj-pricing-page .sj-pricing-testimonial .sj-home-quote-avatar .elementor-widget-container { width: 100%; height: 100%; }
.sj-pricing-page .sj-pricing-testimonial .sj-home-quote-avatar .sj-photo-frame { width: 100%; height: 100%; max-width: none; margin: 0; }
.sj-pricing-page .sj-pricing-testimonial .sj-home-quote-avatar img { display: block; box-sizing: border-box; width: 100%; max-width: none; height: 100%; border: 0; border-radius: 0; object-fit: cover; }
.sj-pricing-page .sj-pricing-testimonial .sj-home-quote-avatar--oscar img { object-position: center top; transform: scale(2.85); transform-origin: 87% 14%; }
.sj-pricing-page .sj-pricing-testimonial .sj-home-quote-person > .sj-home-quote-name { grid-column: 2; grid-row: 1; align-self: end; min-width: 0; }
.sj-pricing-page .sj-pricing-testimonial .sj-home-quote-name .elementor-heading-title { font-family: var(--font-body); font-size: 13px; font-weight: 600; line-height: 1.6; }
.sj-pricing-page .sj-pricing-testimonial .sj-home-quote-person > .sj-home-quote-role {
	grid-column: 2;
	grid-row: 2;
	align-self: start;
	min-width: 0;
	margin: 0;
	color: var(--sj-home-copy);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-body);
	line-height: 1.85;
}
@media (max-width: 767px) {
	.elementor .sj-pricing-page .sj-pricing-testimonial.e-con { padding: 32px 20px; }
	.sj-pricing-page .sj-pricing-testimonial .sj-home-quote-text { font-size: 28px; line-height: 1.35; }
	.elementor .sj-pricing-page .sj-pricing-testimonial .sj-home-quote-person.e-con { column-gap: 12px; }
}
@media (max-width: 380px) {
	.elementor .sj-pricing-page .sj-pricing-testimonial .sj-home-quote-person.e-con { grid-template-columns: 56px minmax(0, 1fr); min-height: 56px; }
	.sj-pricing-page .sj-pricing-testimonial .sj-home-quote-person > .sj-home-quote-avatar { width: 56px; height: 56px; }
}
