/* Native Elementor pricing content; colour, fonts and action states stay shared. */
.elementor .sj-pricing-page.e-con {
	--sj-pricing-line: color-mix(in srgb, var(--color-navy) 19%, var(--color-offwhite));
	--sj-pricing-muted: color-mix(in srgb, var(--color-navy) 78%, var(--color-offwhite));
	--sj-pricing-accent: color-mix(in srgb, var(--color-forest) 50%, var(--color-navy));
	--sj-pricing-section-gap: 64px;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--container-max-width: 1280px;
	display: flex;
	flex-direction: column;
	gap: 0;
	width: 100%;
	max-width: none;
	padding: 0;
	background: var(--color-surface);
	color: var(--color-navy);
	font-family: var(--font-body);
}

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

.sj-pricing-page .elementor-widget {
	--kit-widget-spacing: 0px;
	min-width: 0;
	margin: 0;
}

.sj-pricing-page :is(h1, h2, h3, p) { margin: 0; }
.sj-pricing-page .elementor-heading-title { color: inherit; }
.sj-pricing-page p + p { margin-top: 16px; }
.sj-pricing-page :is(.elementor-widget-text-editor, .sj-pricing-unit) {
	font-family: var(--font-body);
	font-size: var(--font-size-body);
	line-height: 1.8;
}

.elementor .sj-pricing-hero.e-con {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	align-items: end;
	gap: 24px 64px;
	width: 100%;
	padding: 48px max(32px, calc((100% - 1280px) / 2)) 56px;
	background: var(--color-navy);
	color: var(--color-offwhite);
}

.sj-pricing-hero > .sj-pricing-eyebrow { grid-column: 1 / -1; }
.sj-pricing-eyebrow .elementor-heading-title {
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}
.sj-pricing-hero .sj-pricing-eyebrow .elementor-heading-title { color: var(--color-lime); }

.sj-pricing-title { grid-column: 1; }
.sj-pricing-title .elementor-heading-title {
	font-family: var(--font-heading);
	font-size: clamp(44px, 4.8vw, 70px);
	font-weight: 700;
	line-height: 1.04;
	letter-spacing: -0.04em;
	text-wrap: balance;
}

.elementor .sj-pricing-hero-copy.e-con {
	grid-column: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
	width: 100%;
	padding: 0 0 4px;
}
.sj-pricing-hero .sj-pricing-intro {
	max-width: 52ch;
	font-size: var(--font-size-body);
	line-height: 1.85;
}

.elementor .sj-pricing-body.e-con {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--sj-pricing-section-gap);
	width: min(1280px, calc(100% - 64px));
	margin: 0 auto;
	padding: 56px 0 80px;
}

.elementor .sj-pricing-section-heading.e-con {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: end;
	gap: 20px 48px;
	width: 100%;
}
.sj-pricing-section-heading .elementor-widget-text-editor {
	max-width: 58ch;
	color: var(--sj-pricing-muted);
}
.sj-pricing-section-title .elementor-heading-title {
	font-family: var(--font-heading);
	font-size: clamp(30px, 2.8vw, 40px);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.03em;
	text-wrap: balance;
}
/* Keep the rates heading and its cards together within the wider section rhythm. */
.sj-pricing-body > .sj-pricing-section-heading { margin-bottom: -32px; }

.elementor .sj-pricing-rates.e-con {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 20px;
	width: 100%;
}

.elementor .sj-pricing-rate.e-con {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	width: 100%;
	min-height: 376px;
	padding: 32px;
	border: 1px solid var(--sj-pricing-line);
	background: var(--color-white);
}

.sj-pricing-label .elementor-heading-title {
	color: var(--color-navy);
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
}
.sj-pricing-rate .sj-pricing-price { margin-top: 24px; }
.sj-pricing-price :is(.elementor-heading-title, p) {
	color: var(--color-navy);
	font-family: var(--font-heading);
	font-size: clamp(64px, 5.6vw, 82px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.045em;
	font-variant-numeric: lining-nums tabular-nums;
}
.sj-pricing-unit :is(.elementor-heading-title, p) {
	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.6;
}
.sj-pricing-rate .sj-pricing-unit { margin-top: 8px; }
.sj-pricing-rate-copy { margin-top: 24px !important; color: var(--sj-pricing-muted); }
.sj-pricing-rate .sj-pricing-cta { width: 100%; margin-top: auto; padding-top: 28px; }
.sj-pricing-rate .elementor-button { width: 100%; }
.sj-pricing-note {
	margin-top: -40px !important;
	color: var(--sj-pricing-muted);
	font-size: var(--font-size-body);
	line-height: 1.7 !important;
}

.elementor .sj-pricing-retainer.e-con {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	align-items: stretch;
	gap: 48px;
	width: 100%;
	padding: 40px;
	border: 1px solid var(--color-forest);
	background: var(--color-white);
}
.elementor :is(.sj-pricing-retainer-copy, .sj-pricing-retainer-figure).e-con {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	width: 100%;
}
.sj-pricing-retainer .sj-pricing-eyebrow .elementor-heading-title,
.sj-pricing-retainer-figure .sj-pricing-label .elementor-heading-title { color: var(--sj-pricing-accent); }
.sj-pricing-retainer-terms { max-width: 61ch; color: var(--sj-pricing-muted); }
.elementor .sj-pricing-retainer-figure.e-con {
	justify-content: center;
	gap: 0;
	padding-left: 48px;
	border-left: 1px solid var(--sj-pricing-line);
}
.sj-pricing-retainer-figure .sj-pricing-price { margin-top: 16px; }
.sj-pricing-retainer-figure .sj-pricing-price :is(.elementor-heading-title, p) {
	font-size: clamp(76px, 7.2vw, 104px);
}
.sj-pricing-retainer-figure .sj-pricing-unit { margin-top: 8px; }
.sj-pricing-retainer-monthly { margin-top: 24px !important; }
.sj-pricing-retainer-monthly :is(.elementor-heading-title, p) {
	color: var(--color-navy);
	font-family: var(--font-body);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-body);
	line-height: 1.5;
}
.sj-pricing-retainer-basis { margin-top: 8px !important; color: var(--sj-pricing-muted); font-size: var(--font-size-body); }
.sj-pricing-retainer-figure .sj-pricing-cta { margin-top: 24px; }

.elementor .sj-pricing-working.e-con {
	display: flex;
	flex-direction: column;
	gap: 28px;
	width: 100%;
}
.elementor .sj-pricing-principles.e-con {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 20px;
	width: 100%;
}
.elementor .sj-pricing-principle.e-con {
	display: flex;
	flex-direction: column;
	gap: 16px;
	width: 100%;
	padding: 28px;
	border: 1px solid var(--sj-pricing-line);
	background: var(--color-white);
}
.sj-pricing-principle-title .elementor-heading-title {
	font-family: var(--font-heading);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.02em;
}
.sj-pricing-principle-copy { color: var(--sj-pricing-muted); }

.elementor .sj-pricing-faq.e-con {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr);
	align-items: start;
	gap: 64px;
	width: 100%;
	padding-top: 48px;
	border-top: 1px solid var(--sj-pricing-line);
}
.elementor .sj-pricing-faq-intro.e-con {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 100%;
}
.sj-pricing-faq-intro .elementor-widget-text-editor { max-width: 40ch; color: var(--sj-pricing-muted); }
.elementor .sj-pricing-faq-list.e-con { display: flex; flex-direction: column; gap: 0; width: 100%; }
.elementor .sj-pricing-faq-item.e-con {
	display: flex;
	flex-direction: column;
	gap: 12px;
	width: 100%;
	padding: 24px 0;
	border-bottom: 1px solid var(--sj-pricing-line);
}
.elementor .sj-pricing-faq-item.e-con:first-child { padding-top: 0; }
.sj-pricing-question .elementor-heading-title {
	font-family: var(--font-heading);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.015em;
}
.sj-pricing-answer { color: var(--sj-pricing-muted); }

/* Editable native Accordion: the existing six-column FAQ frame stays intact. */
.sj-pricing-page .sj-pricing-faq-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%;
}
.sj-pricing-page .sj-pricing-faq-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-pricing-faq-accordion .e-n-accordion-item:last-child { border-bottom: 0; }
.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 72px;
	padding: 28px var(--sj-cell-pad, 32px);
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--color-navy);
	list-style: none;
	cursor: pointer;
}
.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item-title::-webkit-details-marker { display: none; }
.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item-title-header { min-width: 0; }
.sj-pricing-page .sj-pricing-faq-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, 600);
	line-height: 1.25;
	letter-spacing: -0.015em;
}
.sj-pricing-page .sj-pricing-faq-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));
	color: var(--color-navy);
}
.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item-title:focus-visible {
	outline: 2px solid var(--color-navy);
	outline-offset: -4px;
}
/* Empty generated-content alt text keeps the local font glyph decorative. */
.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item-title::after {
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	color: inherit;
	font-family: 'pixelart-icons-font';
	font-size: 24px;
	font-style: normal;
	font-weight: normal;
	line-height: 1;
	content: '\ecd8' / '';
}
.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title::after { content: '\ec9a' / ''; }
.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item > .e-con {
	gap: 0;
	width: 100%;
	padding: 0 var(--sj-cell-pad, 32px) 28px;
	border: 0;
	border-radius: 0;
	background: transparent;
}
.sj-pricing-page .sj-pricing-faq-accordion .elementor-widget-text-editor {
	color: var(--sj-pricing-muted);
	font-family: var(--font-body);
	font-size: var(--font-size-body);
	line-height: 1.8;
}
@media (prefers-reduced-motion: no-preference) {
	.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item[open] > .e-con { animation: sj-pricing-faq-reveal 160ms ease-out; }
}
@keyframes sj-pricing-faq-reveal { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 767px) {
	.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item-title { gap: 16px; }
	.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item-title-text { font-size: 21px; }
}
@media (prefers-reduced-motion: reduce) {
	.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item > .e-con { animation: none; }
}
@media (forced-colors: active) {
	.sj-pricing-page .sj-pricing-faq-accordion .e-n-accordion-item-title:focus-visible { outline-color: Highlight; }
}

.elementor .sj-pricing-contact.e-con {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	width: 100%;
	padding-top: 40px;
	border-top: 1px solid var(--sj-pricing-line);
}
.elementor .sj-pricing-contact-copy.e-con {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 16px;
	width: auto;
}
.sj-pricing-contact-copy .elementor-widget-text-editor { max-width: 65ch; color: var(--sj-pricing-muted); }
.sj-pricing-contact .sj-pricing-cta { flex: 0 0 auto; align-self: center; width: auto; }
.sj-pricing-cta { align-self: flex-start; width: auto; }
.sj-pricing-cta .elementor-button { min-height: 44px; padding: 12px 24px; }

@media (max-width: 1100px) {
	.elementor .sj-pricing-hero.e-con { gap: 24px 40px; }
	.elementor .sj-pricing-rate.e-con { min-height: 364px; padding: 24px; }
	.elementor .sj-pricing-retainer.e-con { gap: 32px; padding: 32px; }
	.elementor .sj-pricing-retainer-figure.e-con { padding-left: 32px; }
	.elementor .sj-pricing-principle.e-con { padding: 24px; }
	.elementor .sj-pricing-faq.e-con { gap: 40px; }
}

@media (min-width: 768px) and (max-width: 1000px) {
	.sj-pricing-rate .sj-pricing-label .elementor-heading-title { font-size: 13px; }
	.sj-pricing-rate .elementor-button { padding-inline: 10px; font-size: 13px; }
	.sj-pricing-price :is(.elementor-heading-title, p) { font-size: 64px; }
	.sj-pricing-principle-title .elementor-heading-title { font-size: 22px; }
	.sj-pricing-principle-copy { font-size: var(--font-size-body); }
}

@media (max-width: 900px) {
	.elementor .sj-pricing-hero.e-con { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.elementor .sj-pricing-hero-copy.e-con { grid-column: 1; max-width: 65ch; padding: 0; }
	.sj-pricing-title .elementor-heading-title { max-width: 20ch; }
	.elementor .sj-pricing-page.e-con { --sj-pricing-section-gap: 48px; }
	.elementor .sj-pricing-section-heading.e-con { gap: 20px 32px; }
	.sj-pricing-body > .sj-pricing-section-heading { margin-bottom: -24px; }
	.sj-pricing-note { margin-top: -28px !important; }
	.elementor .sj-pricing-retainer.e-con { gap: 24px; padding: 28px; }
	.elementor .sj-pricing-retainer-figure.e-con { padding-left: 24px; }
	.sj-pricing-retainer-monthly :is(.elementor-heading-title, p) { font-size: var(--font-size-body); }
	.elementor .sj-pricing-faq.e-con { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 32px; }
}

@media (max-width: 767px) {
	.elementor .sj-pricing-page.e-con { --sj-pricing-section-gap: 40px; }
	.elementor .sj-pricing-hero.e-con { padding: 28px 16px 36px; gap: 20px; }
	.sj-pricing-title .elementor-heading-title { font-size: clamp(36px, 9.2vw, 52px); }
	.sj-pricing-hero .sj-pricing-intro { font-size: var(--font-size-body); line-height: 1.8; }
	.elementor .sj-pricing-hero-copy.e-con { gap: 20px; }
	.elementor .sj-pricing-body.e-con { width: calc(100% - 32px); padding: 36px 0 48px; }
	.elementor .sj-pricing-section-heading.e-con { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.sj-pricing-section-title .elementor-heading-title { font-size: 30px; }
	.sj-pricing-body > .sj-pricing-section-heading { margin-bottom: -16px; }
	.elementor .sj-pricing-rates.e-con { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.elementor .sj-pricing-rate.e-con { min-height: 0; padding: 24px; }
	.sj-pricing-rate .sj-pricing-price { margin-top: 20px; }
	.sj-pricing-price :is(.elementor-heading-title, p) { font-size: 72px; }
	.sj-pricing-rate-copy { margin-top: 20px !important; }
	.sj-pricing-rate .sj-pricing-cta { padding-top: 24px; }
	.sj-pricing-note { margin-top: -24px !important; }
	.elementor .sj-pricing-retainer.e-con { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 24px; }
	.elementor .sj-pricing-retainer-figure.e-con { padding: 24px 0 0; border-left: 0; border-top: 1px solid var(--sj-pricing-line); }
	.sj-pricing-retainer-figure .sj-pricing-price :is(.elementor-heading-title, p) { font-size: 84px; }
	.elementor .sj-pricing-working.e-con { gap: 24px; }
	.elementor .sj-pricing-principles.e-con { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.elementor .sj-pricing-principle.e-con { padding: 24px; }
	.sj-pricing-principle-title .elementor-heading-title { font-size: 24px; }
	.elementor .sj-pricing-faq.e-con { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-top: 32px; }
	.elementor .sj-pricing-faq-intro.e-con { gap: 16px; }
	.elementor .sj-pricing-faq-item.e-con { padding-block: 20px; }
	.sj-pricing-question .elementor-heading-title { font-size: 21px; }
	.elementor .sj-pricing-contact.e-con { flex-direction: column; align-items: stretch; gap: 24px; padding-top: 32px; }
	.sj-pricing-contact .sj-pricing-cta { align-self: stretch; width: 100%; }
	.sj-pricing-contact .elementor-button { width: 100%; }
}
