/*
 * SAIF Child Theme — Shared Widget Styles
 *
 * All custom widget CSS lives here (or in per-widget scoped rules using
 * Elementor's {{WRAPPER}} selector in widget PHP files).
 *
 * Do NOT use !important unless absolutely necessary and documented inline.
 * Brand tokens (colours, fonts, spacing) will be added here once the
 * client styleguide is available.
 */

/* ─── Global font override ─────────────────────────────────────────────── */
body .elementor,
body .elementor *,
body .elementor p,
body .elementor a,
body .elementor span,
body .elementor strong,
body .elementor b,
body .elementor i,
body .elementor em,
body .elementor li,
body .elementor ul,
body .elementor ol,
body .elementor h1,
body .elementor h2,
body .elementor h3,
body .elementor h4,
body .elementor h5,
body .elementor h6,
body .elementor input,
body .elementor textarea,
body .elementor select,
body .elementor button {
	font-family: 'Poppins', sans-serif;
}

/* ─── Global: counter Hello Elementor button reset inside SAIF widgets ─── */
/* Hello Elementor reset.css applies -webkit-appearance:button, border-radius:3px,
   border:1px solid #c36 to all [type=submit]/button elements at specificity 0,1,0.
   Scoping to [class*="sf-"] raises this to 0,2,0 so it wins. All visible styles
   (colours, hover states, sizing) are defined in the widget rules below. */
[class*="sf-"] [type=button],
[class*="sf-"] [type=submit],
[class*="sf-"] button {
	-webkit-appearance: none;
	appearance: none;
	border: none;
	border-radius: 0;
	padding: 0;
}

/* ─── Shared: primary CTA button — accent fill, hollow on hover ────────── */

.sf-support-cta__btn,
.sf-video-feature__btn,
.sf-contact-form .wpcf7-submit,
.sf-contact-section .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: var(--sf-btn-height);
	padding: 0 36px;
	background-color: var(--sf-color-accent);
	color: var(--sf-color-white);
	border: var(--sf-btn-border) solid var(--sf-color-accent);
	border-radius: var(--sf-btn-radius);
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: var(--sf-size-button);
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
	text-align: center;
	height: auto;
	min-height: var(--sf-btn-height);
	padding-top: 7px;
	padding-bottom: 7px;
	line-height: 1.22;
}

.sf-support-cta__btn:hover,
.sf-video-feature__btn:hover,
.sf-contact-form .wpcf7-submit:hover,
.sf-contact-section .wpcf7-submit:hover {
	background-color: transparent;
	color: var(--sf-color-accent);
}

.sf-contact-section .wpcf7-form > p{
    margin: 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
    position: relative;
}

.sf-contact-section .wpcf7-form > p span.wpcf7-spinner {
    position: absolute;
    left: 0;
    top: 0;
    margin-left: 0;
}

/* ─── Elementor: remove default 20px row-gap between widgets/containers ─── */
/* Elementor 4.x sets row-gap on this selector globally; reset to 0 so widget
   sections control their own internal spacing without interference. */

.elementor-element:where(.e-con-full, .elementor-widget) {
	row-gap: 0 !important; /* Override Elementor 4.x default 20px row-gap. Same selector = same specificity, so !important is required to win the cascade regardless of load order. */
}

/* ─── Shared: full-width wrapper + inner container ─────────────────── */

.sf-widget__container {
	width: 100%;
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 40px;
	padding-right: 40px;
}

@media (max-width: 1024px) {
	.sf-widget__container {
		padding-left: 40px;
		padding-right: 40px;
	}
}

/* ─── sf-icon-strip ─────────────────────────────────────────────────── */

.sf-icon-strip {
	--sf-icon-strip-bg-start: #193f74;
	--sf-icon-strip-bg-end: #21559d;
	background: linear-gradient(to right, var(--sf-icon-strip-bg-start), var(--sf-icon-strip-bg-end));
	padding: 40px 0 50px;
}

.sf-icon-strip__heading {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 28px;
	line-height: 1.3;
	color: #ffffff;
	text-align: center;
	margin: 0 0 36px;
}

.sf-icon-strip__items {
	display: flex;
	justify-content: center;
	gap: 24px;
	flex-wrap: wrap;
}

.sf-icon-strip__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	flex: 0 1 200px;
	text-align: center;
}

.sf-icon-strip__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
}

.sf-icon-strip__icon-img {
	display: block;
	object-fit: contain;
}

.sf-icon-strip__label {
	font-family: 'poppins', sans-serif;
	font-weight: 500;
	font-size: 15px;
	line-height: 1.5;
	color: #ffffff;
	margin: 0;
}

@media (max-width: 767px) {
	.sf-icon-strip__heading {
		font-size: 22px;
		margin-bottom: 28px;
	}

	.sf-icon-strip__items {
		flex-direction: column;
		align-items: center;
		gap: 32px;
	}

	.sf-icon-strip__item {
		flex: 0 0 auto;
		width: 100%;
		max-width: 320px;
	}
}

/* ─── sf-stats ─────────────────────────────────────────────────────── */

.sf-stats {
	background-color: #faf4ee;
	padding: 60px 0 70px;
}

.sf-stats__heading {
	font-family: 'New Spirit', Georgia, serif;
	font-weight: 400;
	font-size: 55px;
	line-height: 1;
	color: #f1592b;
	text-align: center;
	max-width: 607px;
	margin: 0 auto 60px;
}

.sf-stats__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px;
}

.sf-stats__card {
	display: flex;
	flex-direction: column;
}

.sf-stats__number {
	font-family: 'Red Hat Display', sans-serif;
	font-weight: 600;
	font-size: 100px;
	line-height: 1.28;
	color: #000;
}

.sf-stats__divider {
	border: none;
	border-top: 1px solid #000;
	margin: 4px 0 12px;
	width: 100%;
}

.sf-stats__label {
	font-family: 'Red Hat Display', sans-serif;
	font-weight: 600;
	font-size: 20px;
	line-height: 1.4;
	color: #000;
}

.sf-stats__desc {
	font-family: 'Red Hat Display', sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.5;
	color: #000;
	margin: 8px 0 0;
}

/* Responsive: stack to 2 columns on tablet, 1 on mobile */
@media (max-width: 1024px) {
	.sf-stats__heading {
		font-size: 40px;
	}

	.sf-stats__number {
		font-size: 72px;
	}

	.sf-stats__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 40px 30px;
	}
}

@media (max-width: 767px) {
	.sf-stats__heading {
		font-size: 32px;
		margin-bottom: 40px;
	}

	.sf-stats__number {
		font-size: 56px;
	}

	.sf-stats__grid {
		grid-template-columns: 1fr;
		gap: 36px;
	}
}

/* ─── sf-contact-form ─────────────────────────────────────────────── */

.sf-contact-form {
	padding: 60px 0 70px;
}

.sf-contact-form__heading {
	font-family: 'New Spirit', Georgia, serif;
	font-weight: 400;
	font-size: 42px;
	line-height: 1.15;
	color: #000;
	margin: 0 0 12px;
}

.sf-contact-form__desc {
	font-family: 'Red Hat Display', sans-serif;
	font-weight: 400;
	font-size: 18px;
	line-height: 1.6;
	color: #444;
	margin: 0 0 32px;
	max-width: 640px;
}

.sf-contact-form__placeholder {
	font-family: 'Red Hat Display', sans-serif;
	font-size: 16px;
	color: #999;
	font-style: italic;
}

/* Form fields */
.sf-contact-form .wpcf7-form p,
.sf-contact-form .sf-cf7-field {
	margin: 0 0 20px;
	font-family: 'poppins', sans-serif;
	font-weight: 500;
	font-size: 16px;
	color: var(--sf-color-ink);
}

.sf-contact-form .wpcf7-form p:last-child,
.sf-contact-form .sf-cf7-field:last-child {
	margin-bottom: 0;
}

.sf-contact-form .wpcf7-form label,
.sf-contact-form .sf-cf7-field label {
	display: block;
	margin-bottom: 6px;
}

.sf-contact-form .sf-cf7-optional {
	font-weight: 400;
	font-style: italic;
}

.sf-contact-form .wpcf7-form-control-wrap {
	display: block;
}

.sf-contact-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio) {
	width: 100%;
	height: 36px;
	padding: 6px 14px;
	border: 1px solid var(--sf-color-ink);
	border-radius: 0;
	font-family: 'poppins', sans-serif;
	font-size: 14px;
	color: var(--sf-color-ink);
	background-color: #ffffff;
	box-sizing: border-box;
	transition: border-color 0.2s ease;
}

.sf-contact-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio)::placeholder {
	color: #d9d9d9;
	font-style: italic;
}

.sf-contact-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio):focus {
	border-color: #795728;
	outline: none;
}

.sf-contact-form .wpcf7-form select.wpcf7-form-control {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23193f74' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 36px;
	cursor: pointer;
}

.sf-contact-form textarea.wpcf7-form-control {
	height: 128px;
	resize: vertical;
}

/* Spinner during submission */
.sf-contact-form .wpcf7-spinner {
	margin-left: 12px;
	vertical-align: middle;
}

/* CF7 response messages */
.sf-contact-form .wpcf7-response-output {
	padding: 16px 20px;
	border-radius: 4px;
	font-family: 'poppins', sans-serif;
	font-size: 15px;
	font-weight: 500;
	margin: 24px 0 0;
}

.sf-contact-form .wpcf7-form.sent .wpcf7-response-output {
	border: 2px solid #2e7d32;
	background-color: #e8f5e9;
	color: #2e7d32;
}

.sf-contact-form .wpcf7-form.invalid .wpcf7-response-output,
.sf-contact-form .wpcf7-form.spam .wpcf7-response-output,
.sf-contact-form .wpcf7-form.failed .wpcf7-response-output {
	border: 2px solid #c62828;
	background-color: #ffebee;
	color: #c62828;
}

.sf-contact-form .wpcf7-not-valid-tip {
	color: #c62828;
	font-family: 'poppins', sans-serif;
	font-size: 13px;
	margin-top: 4px;
	display: block;
}

.sf-contact-form .wpcf7-not-valid {
	border-color: #c62828;
}

/* Responsive */
@media (max-width: 1024px) {
	.sf-contact-form__heading {
		font-size: 34px;
	}
}

@media (max-width: 767px) {
	.sf-contact-form {
		padding: 40px 0 50px;
	}

	.sf-contact-form__heading {
		font-size: 28px;
	}

	.sf-contact-form__desc {
		font-size: 16px;
		margin-bottom: 24px;
	}

	.sf-contact-form .wpcf7-submit {
		width: 100%;
	}
}

/* ─── sf-contact-section ───────────────────────────────────────────── */

.sf-contact-section {
	padding: 80px 0 80px;
	background-color: #ffffff;
}

/* Section intro — centred heading + subheading */
.sf-contact-section__intro {
	text-align: center;
	max-width: 700px;
	margin: 0 auto 56px;
}

.sf-contact-section__section-heading {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 30px;
	line-height: 1.3;
	color: #795728;
	margin: 0 0 16px;
}

.sf-contact-section__section-subheading {
	font-family: 'poppins', sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.6;
	color: var(--sf-color-ink);
	margin: 0;
}

/* Two-column layout */
.sf-contact-section__columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: start;
}

/* ── Left column ── */
.sf-contact-section__left {
	display: flex;
	flex-direction: column;
	row-gap: 40px;
}

.sf-contact-section__left-heading {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 30px;
	line-height: 1.3;
	color: var(--sf-color-ink);
	margin: 0;
}

.sf-contact-section__info-heading {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 20px;
	line-height: 1.3;
	color: #795728;
	margin: 0 0 20px;
}

.sf-contact-section__info-desc {
	font-family: 'poppins', sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.6;
	color: var(--sf-color-ink);
	margin: 0 0 20px;
}

.sf-contact-section__info-link-line {
	font-family: 'poppins', sans-serif;
	font-size: 16px;
	color: var(--sf-color-ink);
	margin: 0;
}

.sf-contact-section__link-prefix {
	margin-right: 4px;
}

.sf-contact-section__info-link {
	color: var(--sf-color-ink);
	font-weight: 600;
	text-decoration: underline;
}

.sf-contact-section__info-link--bold {
	font-weight: 700;
}

.sf-contact-section__info-link:hover {
	color: #795728;
}

.sf-contact-section__divider {
	border: none;
	border-top: 1px solid #d9d9d9;
	margin: 0;
}

.sf-contact-section__hours-list {
	font-family: 'poppins', sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.6;
	color: var(--sf-color-ink);
	margin: 8px 0 0;
	padding-left: 20px;
}

.sf-contact-section__hours-list li {
	margin-bottom: 4px;
}

/* ── Right column ── */
.sf-contact-section__form-heading {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 20px;
	line-height: 1.3;
	color: #795728;
	margin: 0 0 20px;
}

.sf-contact-section__form-card {
	background-color: #f5f5f5;
	padding: 30px 36px;
}

.sf-contact-section__form-placeholder {
	font-family: 'poppins', sans-serif;
	font-size: 14px;
	color: #999;
	font-style: italic;
	margin: 0;
}

/* ── CF7 overrides scoped to this widget ── */

.sf-contact-section__form-card br {
	display: none;
}

/* Labels and field wrappers */
.sf-contact-section .wpcf7-form label,
.sf-contact-section .wpcf7-form .wpcf7-form-control-wrap {
	display: block;
}

.sf-contact-section .wpcf7-form p,
.sf-contact-section .sf-cf7-field {
	margin: 0 0 16px;
	font-family: 'poppins', sans-serif;
	font-weight: 500;
	font-size: 16px;
	color: var(--sf-color-ink);
}

.sf-contact-section .wpcf7-form p:last-child,
.sf-contact-section .sf-cf7-field:last-child {
	margin-bottom: 0;
	margin-top: 32px;
}

.sf-contact-section .sf-cf7-field label {
	display: block;
	margin-bottom: 8px;
}

.sf-contact-section .sf-cf7-optional {
	font-weight: 400;
	font-style: italic;
}

/* Text inputs, email, tel */
.sf-contact-section .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio) {
	width: 100%;
	height: 36px;
	padding: 6px 14px;
	border: 1px solid var(--sf-color-ink);
	border-radius: 0;
	font-family: 'poppins', sans-serif;
	font-size: 14px;
	color: var(--sf-color-ink);
	background-color: #ffffff;
	box-sizing: border-box;
	transition: border-color 0.2s ease;
}

.sf-contact-section .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio)::placeholder {
	color: #d9d9d9;
	font-style: italic;
}

.sf-contact-section .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio):focus {
	border-color: #795728;
	outline: none;
}

/* Select (Nature of enquiry) */
.sf-contact-section .wpcf7-form select.wpcf7-form-control {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23193f74' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 36px;
	cursor: pointer;
}

/* Textarea */
.sf-contact-section textarea.wpcf7-form-control {
	height: 128px;
	resize: vertical;
}

/* Submit button */
.sf-contact-section .wpcf7-submit {
	display: block;
	margin: 0 auto;
}

/* Spinner */
.sf-contact-section .wpcf7-spinner {
	margin-left: 12px;
	vertical-align: middle;
}

/* ── CF7 response messages ── */
.sf-contact-section .wpcf7-response-output {
	padding: 16px 20px;
	border-radius: 4px;
	font-family: 'poppins', sans-serif;
	font-size: 15px;
	font-weight: 500;
	margin: 24px 0 0;
	text-align: center;
}

.sf-contact-section .wpcf7-form.sent .wpcf7-response-output {
	border: 2px solid #2e7d32;
	background-color: #e8f5e9;
	color: #2e7d32;
}

.sf-contact-section .wpcf7-form.invalid .wpcf7-response-output,
.sf-contact-section .wpcf7-form.spam .wpcf7-response-output,
.sf-contact-section .wpcf7-form.failed .wpcf7-response-output {
	border: 2px solid #c62828;
	background-color: #ffebee;
	color: #c62828;
}

.sf-contact-section .wpcf7-not-valid-tip {
	color: #c62828;
	font-family: 'poppins', sans-serif;
	font-size: 13px;
	margin-top: 4px;
	display: block;
}

.sf-contact-section .wpcf7-not-valid {
	border-color: #c62828;
}

/* ── Responsive ── */
@media (max-width: 1024px) {
	.sf-contact-section__columns {
		gap: 40px;
	}
}

@media (max-width: 767px) {
	.sf-contact-section {
		padding: 48px 0 56px;
	}

	.sf-contact-section__intro {
		margin-bottom: 40px;
	}

	.sf-contact-section__section-heading {
		font-size: 20px;
	}

	.sf-contact-section__columns {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.sf-contact-section__left {
		row-gap: 30px;
	}

	.sf-contact-section__left-heading {
		font-size: 20px;
	}

	.sf-contact-section__form-heading {
		font-size: 18px;
	}

	.sf-contact-section__info-heading {
		font-size: 18px;
	}

	.sf-contact-section .wpcf7-submit {
		width: 100%;
	}
}

/* ─── sf-hero ──────────────────────────────────────────────────────── */

.sf-hero {
	position: relative;
	width: 100%;
	min-height: 656px;
	overflow: hidden;
	display: flex;
	align-items: flex-start;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-attachment: fixed;
}

/* Inner grid — left content, right images */
.sf-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	padding: 165px 72px 60px;
	display: grid;
	grid-template-columns: 636px 1fr;
	gap: 0 24px;
}

/* ── Left: content column ── */

.sf-hero__content {
	display: flex;
	flex-direction: column;
	padding-right: 32px;
	gap: 28px;
}

.sf-hero__headline {
	font-family: var(--sf-font-primary);
	font-weight: 700;
	font-size: var(--sf-size-display);
	line-height: var(--sf-lh-display);
	/* margin: 0 0 28px; */
	margin: 0;
}

.sf-hero__headline-ink {
	color: var(--sf-color-ink);
}

.sf-hero__headline-white {
	color: var(--sf-color-white);
}

.sf-hero__subheading {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-lead);
	line-height: var(--sf-lh-lead);
	color: var(--sf-color-ink-deep);
	/* margin: 0 0 48px; */
	/* max-width: 636px; */
	margin: 0;
}

/* Search block */

.sf-hero__search-label {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-lead);
	line-height: normal;
	color: var(--sf-color-white);
	margin: 0 0 12px;
}

.sf-hero__search-form {
	display: flex;
	align-items: center;
	position: relative;
	width: 100%;
	max-width: 415px;
	height: 48px;
	border: 2px solid var(--sf-color-white);
	margin: 0;
	background: transparent;
}

.sf-hero__search-input {
	flex: 1;
	height: 100%;
	padding: 0 44px 0 16px;
	background: transparent;
	border: none;
	outline: none;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
	font-family: var(--sf-font-primary);
	font-style: italic;
	font-size: 11px;
	color: var(--sf-color-white);
	border-radius: 0;
}

.sf-hero__search-input::placeholder {
	color: rgba(255, 255, 255, 0.47);
}

.sf-hero form.sf-hero__search-form input.sf-hero__search-input,
.sf-hero form.sf-hero__search-form button.sf-hero__search-submit {
	border: 0;
	outline: 0;
	box-shadow: none;
	color: var(--sf-color-white);
}

.sf-hero__search-submit {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border: none;
	padding: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}

.sf-hero__search-submit svg {
	width: 19px;
	height: 18px;
	fill: none;
	stroke: var(--sf-color-white);
	stroke-width: 1.5;
	stroke-linecap: round;
}

.sf-hero .sf-hero__search-submit:hover {
	background: transparent;
	color: inherit;
}

.sf-hero .sf-hero__search-submit:hover svg circle,
.sf-hero .sf-hero__search-submit:hover svg line {
	stroke: var(--sf-color-white);
}

.sf-hero__location-link {
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: 12px;
	color: var(--sf-color-white);
	text-decoration: underline;
	display: inline-block;
}

.sf-hero__location-link:hover {
	color: var(--sf-color-white);
	text-decoration: none;
}

/* ── Right: image collage ── */

.sf-hero__images {
	position: relative;
	/* height: 458px; */
	align-self: flex-start;
}

.sf-hero__img-accent {
	position: absolute;
	overflow: hidden;
}

/*
 * Accent: no top-left radius, 70px on the other three corners.
 * Shown at 60% opacity — intentional design detail from Figma. Sits behind primary.
 */
.sf-hero__img-accent {
	opacity: 0.6;
	top: -26px;
	left: -24px;
	aspect-ratio: 53 / 36;
	border-radius: 0 70px 70px 70px;
	width: 100%;
}

.sf-hero__img-accent img {
	height: auto;
	position: relative;
	width: 100% !important;
	height: 100%  !important;
	object-fit: cover !important;
	object-position: center !important;
	border-radius: 0 !important ;
}

/*
 * Primary: no bottom-left radius, 70px on the other three corners.
 * Main collage image, full opacity, overlapping in front of the accent image.
 */
.sf-hero__img-primary {
	height: auto;
	width: 100%;
	aspect-ratio: 53 / 36;
	border-radius: 70px 70px 0 70px;
	overflow: hidden;
	position: relative;
}

.sf-hero__img-primary img {
	width: 100%;
	height: auto;
	object-fit: cover;
	object-position: center;
	margin: 0;
	
	position: relative;
	width: 100% !important;
	height: 100%  !important;
	object-fit: cover !important;
	object-position: center !important;
	border-radius: 0 !important ;
}

/* ── sf-hero tablet (768px–1099px) ── */

@media (min-width: 768px) and (max-width: 1099px) {

	.sf-hero:before{
		content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    z-index: 1;
    background-color: #fff;
    opacity: 0.2;
	}

	.sf-hero {
		min-height: auto;
	}

	.sf-hero__inner {
		grid-template-columns: 1fr;
		padding: 100px 40px 48px;
		gap: 40px 0;
	}

	.sf-hero__subheading {
		font-size: var(--sf-size-body);
		line-height: var(--sf-lh-body);
	}

	.sf-hero__search-form {
		max-width: 480px;
		width: 100%;
	}

	/* .sf-hero__images {
		height: 340px;
		width: 100%;
	} */

	/* .sf-hero__img-accent {
		width: 60%;
		height: 250px;
		top: 0;
		left: 0;
	} */

	.sf-hero__img-primary {
    aspect-ratio: 296.82 / 171.88;
    border-radius: 27.758px 27.758px 0 27.758px;
	}

	.sf-hero__img-accent {
		top: -16px;
    left: -14px;
    aspect-ratio: 296.82 / 171.88;
    border-radius: 0 27.758px 27.758px 27.758px;
	}
}

/* ── sf-hero mobile (≤1024px) ── */

@media (max-width: 1024px) {
	.sf-hero:before{
		content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    z-index: 1;
    background-color: #fff;
    opacity: 0.2;
	}

	.sf-hero {
		min-height: auto;
	}

	.sf-hero__inner {
		grid-template-columns: 1fr;
		padding: 110px 40px 40px;
		gap: 40px 0;
	}

	.sf-hero__content {
		text-align: center;
		align-items: center; /* centres flex children: form, location link */
		padding-right: 0;
	}

	.sf-hero__subheading {
		font-size: var(--sf-size-body);
		line-height: var(--sf-lh-body);
	}

	.sf-hero__search-form {
		width: 100%;
		margin: 0 auto;
	}
/* 
	.sf-hero__images {
		height: 280px;
		width: 100%;
	} */

	/* .sf-hero__img-accent {
		width: 78%;
		height: 200px;
		top: 0;    /* reset desktop -26px offset * /
		left: 0;   /* reset desktop -24px bleed  * /
	} */

	.sf-hero__img-primary {
    aspect-ratio: 296.82 / 171.88;
    border-radius: 27.758px 27.758px 0 27.758px;
	}

	.sf-hero__img-accent {
		top: -16px;
    left: -14px;
    aspect-ratio: 296.82 / 171.88;
    border-radius: 0 27.758px 27.758px 27.758px;
	}
}

/* ── sf-hero: Elementor wrapper overrides ──────────────────────────
 * Elementor wraps every widget in .elementor-widget-container which
 * can carry default padding, and the parent section/column adds its
 * own horizontal padding. These rules strip that so the hero bleeds
 * edge-to-edge.  !important is required here to win the specificity
 * battle against Elementor's inline styles.
 * ────────────────────────────────────────────────────────────────── */

.elementor-widget-sf-hero {
	width: 100%;
	max-width: 100% !important;
}

.elementor-widget-sf-hero > .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
}

/* ─── sf-video-feature ─────────────────────────────────────────── */

.sf-video-feature {
	background: linear-gradient(to bottom, var(--sf-color-cream), #fff);
	padding: 48px 0 60px;
}

.sf-video-feature__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 72px;
	display: grid;
	grid-template-columns: 746px 1fr;
	gap: 0 27px;
	align-items: center;
}

/* ── Video block ── */

.sf-video-feature__video-block {
	position: relative;
}

.sf-video-feature__thumbnail {
	position: relative;
	width: 746px;
	height: 418px;
	background: #d9d9d9;
	overflow: hidden;
}

.sf-video-feature__thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sf-video-feature__thumbnail::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 130px;
	background: linear-gradient(to bottom, transparent, black);
	mix-blend-mode: multiply;
	pointer-events: none;
	z-index: 1;
}

/* Play button — white ring, transparent fill; !important overrides Elementor/theme button resets */
.sf-video-feature__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 72px !important;
	height: 72px !important;
	border-radius: 50% !important;
	background: transparent !important;
	border: 2px solid #fff !important;
	padding: 0 !important;
	margin: 0 !important;
	cursor: pointer;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: #fff !important;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 2;
	transition: background 0.2s ease, transform 0.2s ease;
}

.sf-video-feature__play:hover,
.sf-video-feature__play:focus-visible {
	background: rgba(255, 255, 255, 0.15) !important;
	transform: translate(-50%, -50%) scale(1.08);
	outline: none;
}

.sf-video-feature__play svg {
	display: block;
	margin-left: 2px; /* optical centering — play triangle centroid sits 1px left of SVG midpoint */
}

/* Bottom text overlay — gradient lives on .sf-video-feature__thumbnail::after */
.sf-video-feature__overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 130px;
	padding: 0 16px 16px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	z-index: 2;
}

.sf-video-feature__overlay-title {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: 18px;
	line-height: normal;
	color: var(--sf-color-white);
	margin: 0;
}

.sf-video-feature__overlay-duration {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: normal;
	color: var(--sf-color-white);
	margin: 0;
}

/* iframe replaces thumbnail on play */
.sf-video-feature__iframe {
	width: 746px;
	height: 418px;
	border: none;
	display: block;
}

/* ── Right content ── */

.sf-video-feature__heading {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-h2);
	line-height: var(--sf-lh-h2);
	color: var(--sf-color-ink-deep);
	margin: 0 0 24px;
}

.sf-video-feature__body {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: 1.6;
	color: var(--sf-color-ink-deep);
	margin: 0 0 32px;
}

/* Elementor wrapper */
.elementor-widget-sf-video-feature > .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
}

/* Responsive */

/* Tablet: fluid two-column, video scales via aspect-ratio */
@media (max-width: 1280px) {

	.sf-video-feature__inner {
		grid-template-columns: 3fr 2fr;
		padding: 0 40px;
	}

	.sf-video-feature__thumbnail,
	.sf-video-feature__iframe {
		width: 100%;
		height: auto;
		aspect-ratio: 16 / 9;
	}
}

/* Mobile: single column, centred text */
@media (max-width: 767px) {

	.sf-video-feature {
		padding: 40px 0 50px;
	}

	.sf-video-feature__inner {
		grid-template-columns: 1fr;
		padding: 0 24px;
		gap: 48px 0;
	}

	.sf-video-feature__thumbnail,
	.sf-video-feature__iframe {
		width: 100%;
		height: auto;
		aspect-ratio: 16 / 9;
	}

	.sf-video-feature__content {
		order: 1;
		text-align: center;
	}

	.sf-video-feature__video-block {
		order: 2;
	}

	.sf-video-feature__heading {
		font-size: 20px;
	}
}

/* ─── sf-info-columns ──────────────────────────────────────────────── */

.sf-info-columns {
	background: #fff;
	padding: 60px 0 70px;
}

.sf-info-columns__inner {
	width: 100%;
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 40px;
	padding-right: 40px;
}

.sf-info-columns__eyebrow {
	text-align: center;
	font-family: var(--sf-font-primary);
	font-size: var(--sf-size-eyebrow);
	font-weight: 500;
	font-style: normal;
	text-transform: uppercase;
	text-decoration: underline;
	color: #acacac;
	opacity: 0.6;
	margin: 0 0 32px;
}

.sf-info-columns__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
}

.sf-info-columns__col {
	display: flex;
	flex-direction: column;
}

.sf-info-columns__heading {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-h2);
	line-height: var(--sf-lh-h2);
	font-style: normal;
	color: var(--sf-color-accent);
	margin: 0 0 24px;
}

.sf-info-columns__body {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: normal;
	font-style: normal;
	color: var(--sf-color-ink-deep);
	margin: 0 0 40px;
	flex: 1;
}

.sf-info-columns__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: var(--sf-size-link);
	font-style: normal;
	color: var(--sf-color-accent);
	text-decoration: underline;
	align-self: flex-start;
}

.sf-info-columns__cta:hover {
	text-decoration: none;
	color: var(--sf-color-ink-deep);
}

.sf-info-columns__arrow {
	font-style: normal;
}

/* Elementor wrapper */
.elementor-widget-sf-info-columns > .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
}

/* Responsive */
@media (max-width: 1024px) {
	.sf-info-columns__grid {
		gap: 32px;
	}
}

@media (max-width: 1024px) {
	.sf-info-columns {
		padding: 40px 0 50px;
	}

	.sf-info-columns__inner {
		padding-left: 40px;
		padding-right: 40px;
	}

	.sf-info-columns__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.sf-info-columns__heading {
		font-size: 20px; /* --sf-size-h2 = 30px is too large; Figma shows 20px */
		line-height: 28px;
	}

	.sf-info-columns__body {
		flex: none;
	}
}

/* ─── sf-quote ──────────────────────────────────────────────────────── */

.sf-quote {
	position: relative;
	min-height: 553px;
	display: flex;
	align-items: center;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-attachment: fixed;
	padding: 60px 0;
}

.sf-quote__inner {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 40px;
	display: flex;
	justify-content: center;
}

.sf-quote__card {
	position: relative;
	background-color: #ebe4d8;
	max-width: 856px;
	width: 100%;
	padding: 40px 60px 40px;
	text-align: center;
}

.sf-quote__icon {
	position: absolute;
	top: -48px;
	left: 50%;
	transform: translateX(-50%);
}

.sf-quote__text {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 30px;
	line-height: 1.25;
	color: var(--sf-color-ink);
	margin: 0 auto 20px;
	max-width: 770px;
}

.sf-quote__attribution {
	font-family: 'poppins', sans-serif;
	font-style: italic;
	font-size: 16px;
	line-height: 1.5;
	color: var(--sf-color-ink);
	margin: 0;
}

@media (max-width: 1024px) {
	.sf-quote__card {
		padding: 40px 40px 36px;
	}

	.sf-quote__text {
		font-size: 26px;
	}
}

@media (max-width: 767px) {
	.sf-quote {
		min-height: auto;
		padding: 40px 0;
		background-attachment: scroll; /* background-attachment:fixed is unsupported on iOS Safari */
	}

	.sf-quote__inner {
		padding: 0 40px;
	}

	.sf-quote__card {
		padding: 40px 24px 28px;
	}

	.sf-quote__text {
		font-size: 25px; /* Figma mobile: 25px; was 22px */
	}

	.sf-quote__attribution {
		font-size: 14px;
	}
}

/* ─── sf-videos ─────────────────────────────────────────────────────── */

/*
 * Elementor wrapper reset — strips default padding/margin so the section
 * bleeds edge-to-edge. !important required to override Elementor inline styles.
 */
.elementor-widget-sf-videos,
.elementor-widget-sf-videos > .elementor-widget-container {
	width: 100%;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

.sf-videos {
	background: linear-gradient(to right, #193f74, #21559d);
	padding: 60px 0 70px;
}

/* Section heading */
.sf-videos__heading {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-h2);
	line-height: var(--sf-lh-h2);
	color: #fff;
	text-align: center;
	margin: 0 0 16px;
}

/* Section subheading */
.sf-videos__subheading {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: 1.6;
	color: #fff;
	text-align: center;
	max-width: 856px;
	margin: 0 auto 40px;
}

/* Two-column video grid */
.sf-videos__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	margin-bottom: 40px;
}

/* Single-video: center at half-width (desktop only) */
@media (min-width: 768px) {
	.sf-videos__grid--single {
		grid-template-columns: 1fr;
		max-width: 50%;
		margin-left: auto;
		margin-right: auto;
	}
}

/* Card media wrapper — maintains 16:9 aspect ratio */
.sf-videos__card-media {
	position: relative;
	overflow: hidden;
	border-radius: 4px;
	aspect-ratio: 16 / 9;
	background: #000;
}

/* Thumbnail image */
.sf-videos__card-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Dark gradient overlay at the bottom of each card */
.sf-videos__card-overlay {
	position: absolute;
	inset: auto 0 0 0;
	height: 130px;
	background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.75));
	pointer-events: none;
}

/* Circular play button — centred over the thumbnail; !important overrides Elementor/theme button resets */
.sf-videos__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 72px !important;
	height: 72px !important;
	border-radius: 50% !important;
	border: 2px solid #fff !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	color: #fff !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 2;
	transition: background 0.2s ease, transform 0.2s ease;
}

.sf-videos__play:hover,
.sf-videos__play:focus-visible {
	background: rgba(255, 255, 255, 0.15) !important;
	transform: translate(-50%, -50%) scale(1.08);
	outline: none;
}

.sf-videos__play svg {
	display: block;
	margin-left: 2px; /* optical centering — play triangle centroid sits 1px left of SVG midpoint */
}

/* YouTube iframe injected by JS when play is clicked */
.sf-videos__iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: none;
}

/* Title + caption overlay pinned to card bottom */
.sf-videos__card-meta {
	position: absolute;
	bottom: 14px;
	left: 16px;
	right: 16px;
	z-index: 2;
}

.sf-videos__card-title {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-lead);
	line-height: normal;
	color: #fff;
	margin: 0 0 4px;
}

.sf-videos__card-caption {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: normal;
	color: #fff;
	margin: 0;
}

/* Outlined pill CTA button — cream ghost variant for dark backgrounds */
.sf-videos__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	height: var(--sf-btn-height);
	padding: 0 36px;
	margin: 0 auto;
	border: var(--sf-btn-border) solid #fff;
	border-radius: var(--sf-btn-radius);
	color: #fff;
	font-family: var(--sf-font-primary);
	font-size: var(--sf-size-button);
	font-weight: 500;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.sf-videos__btn:hover,
.sf-videos__btn:focus-visible {
	background: var(--sf-color-cream);
	color: var(--sf-color-ink-deep);
	outline: none;
}

/* Responsive: stack to single column on mobile */
@media (max-width: 767px) {
	.sf-videos {
		padding: 40px 0 50px;
	}

	.sf-videos__heading {
		font-size: 20px; /* --sf-size-h2 = 30px; Figma mobile shows 20px */
		line-height: 28px;
	}

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

/* ─── sf-articles ───────────────────────────────────────────────────── */

.sf-articles {
	background: var(--sf-color-white);
	padding: 60px 0 70px;
}

/* Elementor wrapper reset */
.elementor-widget-sf-articles > .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
}

/* Header row: eyebrow label left, "View All" link right */
.sf-articles__header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 24px;
}

.sf-articles__eyebrow {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-eyebrow);
	line-height: normal;
	text-transform: uppercase;
	text-decoration: underline;
	color: var(--sf-color-ink-deep);
	margin: 0;
}

.sf-articles__view-all {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: var(--sf-size-meta);
	line-height: normal;
	color: var(--sf-color-muted);
	text-decoration: underline;
	white-space: nowrap;
}

.sf-articles__view-all:hover {
	color: var(--sf-color-ink-deep);
	text-decoration: none;
}

.sf-articles__view-all-arrow {
	font-style: normal;
}

/* Three-column card grid */
.sf-articles__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

/* Card */
.sf-articles__card {
	display: flex;
	flex-direction: column;
}

/* Image wrap — fixed aspect ratio, hover reveals pill overlay */
.sf-articles__image-wrap {
	display: block;
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	text-decoration: none;
}

/* Background-image span: fills the wrap and zooms on hover independently of the overlay */
.sf-articles__image-bg {
	display: block;
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transition: transform 0.3s ease;
}

.sf-articles__image-wrap:hover .sf-articles__image-bg {
	transform: scale(1.03);
}

/* "Read more" pill — fades in on hover */
.sf-articles__overlay {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	height: var(--sf-btn-height);
	padding: 0 24px;
	background: var(--sf-color-white);
	border-radius: var(--sf-btn-radius);
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: var(--sf-size-button);
	color: var(--sf-color-ink-deep);
	display: flex;
	align-items: center;
	white-space: nowrap;
	opacity: 0;
	transition: opacity 0.2s ease;
	pointer-events: none;
}

.sf-articles__image-wrap:hover .sf-articles__overlay {
	opacity: 1;
}

/* Card text body */
.sf-articles__body {
	padding-top: 16px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

/* Title link — removes default link styling */
.sf-articles__title-link {
	text-decoration: none;
}

.sf-articles__title-link:hover .sf-articles__title {
	text-decoration: underline;
}

.sf-articles__title {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-lead);
	line-height: 1.315;
	color: var(--sf-color-accent);
	margin: 0 0 10px;
}

.sf-articles__excerpt {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: 1.315;
	color: var(--sf-color-ink-deep);
	margin: 0 0 10px;
}

.sf-articles__meta {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: 12px;
	line-height: normal;
	color: var(--sf-color-muted);
	margin: 0;
}

/* Responsive: 2 columns on tablet */
@media (max-width: 1024px) {
	.sf-articles__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.sf-articles__header {
    margin-left: -25px;
    margin-right: -25px;
	}
}

/* Responsive: single column on mobile; overlay always visible (no hover on touch) */
@media (max-width: 767px) {
	.sf-articles {
		padding: 40px 0 50px;
	}

	.sf-articles__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.sf-articles__excerpt {
		font-size: 14px; /* --sf-size-body = 16px; Figma shows 14px on mobile */
	}

	.sf-articles__overlay {
		opacity: 1;
	}
}

/* ─────────────────────────────────────────────────────────────────────────── */
/* sf-support-cta                                                              */
/* ─────────────────────────────────────────────────────────────────────────── */

.sf-support-cta {
	padding: 100px 40px;
	text-align: center;
	position: relative;
	background-color: var(--sf-color-cream);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-attachment: fixed;
}

/* Elementor strips wrapper padding — restore full bleed */
.elementor-widget-sf-support-cta > .elementor-widget-container {
	padding: 0 !important;
}

.sf-support-cta__inner {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}

.sf-support-cta__eyebrow {
	font-family: var(--sf-font-primary);
	font-size: 14px;
	font-weight: 500;
	color: var(--sf-color-accent);
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: 4px;
	line-height: normal;
	margin: 0;
}

.sf-support-cta__heading {
	font-family: var(--sf-font-primary);
	font-size: var(--sf-size-h2);
	font-weight: 600;
	color: var(--sf-color-ink-deep);
	line-height: 42px;
	margin: 0;
}

.sf-support-cta__body {
	font-family: var(--sf-font-primary);
	font-size: var(--sf-size-body);
	font-weight: 400;
	color: var(--sf-color-ink-deep);
	line-height: 1.6;
	max-width: 842px;
	margin: 0;
}

.sf-support-cta__btn {
	min-width: 240px;
}

/* ── sf-support-cta responsive ── */

@media (max-width: 1024px) {
	.sf-support-cta {
		padding: 50px 40px;
		background-attachment: scroll; /* background-attachment:fixed is unsupported on iOS Safari */
	}

	.sf-support-cta__heading {
		font-size: 20px; /* Figma mobile: 20px; was 22px */
		line-height: 28px;
	}

	.sf-support-cta__btn {
		min-width: 0;
	}
}

/* ─── sf-page-header ────────────────────────────────────────────────── */

.sf-page-header {
	position: relative;
	width: 100%;
	min-height: 327px;
	display: flex;
	align-items: center;
	background-color: #f0ebe4; /* fallback if no image */
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	background-attachment: fixed;
	overflow: hidden;
}

/* White wash overlay — opacity set inline via the widget control */
.sf-page-header__overlay {
	position: absolute;
	inset: 0;
	background-color: #ffffff;
	pointer-events: none;
}

.sf-page-header__inner {
	position: relative; /* sit above the overlay */
	z-index: 1;
	padding-top: 60px;
	padding-bottom: 60px;
	text-align: center;
}

.sf-page-header__title {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 40px;
	line-height: 50px;
	color: var(--sf-color-ink);
	margin: 0;
}

.sf-page-header__subheading {
	font-family: 'poppins', sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.6;
	color: var(--sf-color-ink);
	margin: 16px auto 0;
	max-width: 680px;
}

/* ── sf-page-header responsive ── */

@media (max-width: 1024px) {
	.sf-page-header__title {
		font-size: 34px;
		line-height: 44px;
	}
}

@media (max-width: 767px) {
	.sf-page-header {
		min-height: 220px;
		background-attachment: scroll; /* background-attachment:fixed is unsupported on iOS Safari */
	}

	.sf-page-header__inner {
		padding-top: 40px;
		padding-bottom: 40px;
	}

	.sf-page-header__title {
		font-size: 22px; /* Figma mobile: 22px; was 26px */
		line-height: 30px;
	}

	.sf-page-header__subheading {
		font-size: 15px;
	}
}

/* ─── sf-intro-panels ───────────────────────────────────────────── */

.sf-intro-panels {
	background: var(--sf-color-white);
	padding: 80px 0;
}

.sf-intro-panels__inner {
	display: flex;
	flex-direction: column;
	gap: 60px;
}

/* ── Each row is a two-column grid ── */

.sf-intro-panels__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: center;
}

/* ── Images ── */

/*
 * The "signature corner" treatment used across the site:
 * three rounded corners (70px) + one square corner, alternated
 * between rows so the square corner always faces the centre gap.
 *
 * Variant A (row 1, left)  : square = bottom-right  → TL TR BR  BL
 * Variant B (row 2, right) : square = top-left       → TL TR BR  BL
 */

.sf-intro-panels__img-wrap {
	overflow: hidden;
	width: 100%;
	aspect-ratio: 526 / 372;
	flex-shrink: 0;
}

.sf-intro-panels__img-wrap--a {
	border-radius: 70px 70px 0 70px;
}

.sf-intro-panels__img-wrap--b {
	border-radius: 0 70px 70px 70px;
}

.sf-intro-panels__img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* ── Content columns ── */

.sf-intro-panels__content {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.sf-intro-panels__heading {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-h2);
	line-height: var(--sf-lh-h2);
	margin: 0;
}

.sf-intro-panels__heading--accent {
	color: var(--sf-color-accent);
}

.sf-intro-panels__heading--ink {
	color: var(--sf-color-ink-deep);
}

.sf-intro-panels__body {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: var(--sf-lh-body);
	color: var(--sf-color-ink-deep);
	margin: 0;
}

/* ── Search block ── */

.sf-intro-panels__search {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 8px;
}

.sf-intro-panels__search-label {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-body);
	color: var(--sf-color-accent);
	margin: 0;
}

.sf-intro-panels__search-form {
	display: flex;
	align-items: center;
	position: relative;
	height: 48px;
	border: 1px solid var(--sf-color-accent);
	background: transparent;
	max-width: 523px;
	width: 100%;
}

.sf-intro-panels__search-input {
	flex: 1;
	height: 100%;
	padding: 0 44px 0 16px;
	background: transparent;
	border: none;
	outline: none;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
	font-family: var(--sf-font-primary);
	font-style: italic;
	font-size: 11px;
	color: var(--sf-color-accent);
	border-radius: 0;
}

.sf-intro-panels form.sf-intro-panels__search-form input.sf-intro-panels__search-input,
.sf-intro-panels form.sf-intro-panels__search-form button.sf-intro-panels__search-submit {
	border: 0;
	outline: 0;
	box-shadow: none;
	color: var(--sf-color-accent);
}

.sf-intro-panels__search-input::placeholder {
	color: var(--sf-color-accent);
	opacity: 0.47;
}

.sf-intro-panels__search-submit {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border: none;
	padding: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}

.sf-intro-panels__search-submit svg {
	width: 19px;
	height: 19px;
	fill: none;
	stroke: var(--sf-color-accent);
	stroke-width: 1.5;
	stroke-linecap: round;
}

.sf-intro-panels .sf-intro-panels__search-submit:hover {
	background: transparent;
	color: inherit;
}

.sf-intro-panels .sf-intro-panels__search-submit:hover svg circle,
.sf-intro-panels .sf-intro-panels__search-submit:hover svg line {
	stroke: var(--sf-color-accent);
}

.sf-intro-panels__location-link {
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: var(--sf-size-meta);
	color: var(--sf-color-accent);
	text-decoration: underline;
	display: inline-block;
	width: fit-content;
}

.sf-intro-panels__location-link:hover {
	text-decoration: none;
	color: var(--sf-color-accent);
}

/* ── sf-intro-panels mobile (≤1024px) ── */

@media (max-width: 1024px) {
	.sf-intro-panels {
		padding: 60px 0;
	}

	.sf-intro-panels__inner {
		gap: 48px;
	}

	.sf-intro-panels__row {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	/* Text-first on mobile: push image below content for both rows */
	.sf-intro-panels__row--1 .sf-intro-panels__img-wrap,
	.sf-intro-panels__row--2 .sf-intro-panels__img-wrap {
		order: 2;
	}

	.sf-intro-panels__img-wrap--a,
	.sf-intro-panels__img-wrap--b {
		border-radius: 50px;
	}

	.sf-intro-panels__search-form {
		max-width: 100%;
	}
}

/* ── sf-intro-panels small-phone (≤767px) ── */

@media (max-width: 767px) {
	.sf-intro-panels {
		padding: 48px 0;
	}

	.sf-intro-panels__img-wrap--a,
	.sf-intro-panels__img-wrap--b {
		border-radius: 40px;
	}

	.sf-intro-panels__heading {
		font-size: 20px;
		line-height: 26px;
	}
}


/* ─── sf-comparison-table ───────────────────────────────────────────── */

.sf-comparison-table {
	background-color: #ebe4d8;
	padding: 48px 0 52px;
}

.sf-comparison-table__heading {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 30px;
	line-height: 1.3;
	color: #795728;
	text-align: center;
	margin: 0 0 46px;
}

/* ── Shared flex pattern: top row and every data row ── */

.sf-comparison-table__layout {
	border-bottom: 1px solid var(--sf-color-ink);
}

.sf-comparison-table__top,
.sf-comparison-table__row {
	display: flex;
	align-items: stretch;
}

/* Left side — grows to fill space */
.sf-comparison-table__intro-wrap,
.sf-comparison-table__question {
	flex: 1 1 0%;
	min-width: 0;
	padding: 13px 32px 13px 0;
	font-family: 'poppins', sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: var(--sf-color-ink);
}

/* Right side — fixed-width column area with gap between columns */
.sf-comparison-table__col-headers,
.sf-comparison-table__cells {
	display: flex;
	align-items: stretch;
	gap: 24px;
	flex-shrink: 0;
}

/* Push column headers to the right edge of the top row */
.sf-comparison-table__col-headers {
	margin-left: auto;
}

/* ── Top row specifics ── */

/* Align intro text and header boxes to the bottom of the row */
.sf-comparison-table__top {
	align-items: flex-end;
	border-bottom: 1px solid var(--sf-color-ink);
}

/* Constrain intro text to ~59% width to match Figma — creates visual gap before columns */
.sf-comparison-table__intro-wrap {
	max-width: 59%;
}

.sf-comparison-table__intro {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 18px;
	line-height: 1.5;
	color: var(--sf-color-ink);
	margin: 0;
}

.sf-comparison-table__intro--mobile {
	display: none;
}

/* ── Column header boxes ── */

.sf-comparison-table__col-header {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 86px;
	flex-shrink: 0;
	padding: 19px 10px;
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.3;
	color: #ffffff;
	background-color: var(--sf-color-ink);
	border-left: 1px solid var(--sf-color-ink);
	border-right: 1px solid var(--sf-color-ink);
	text-align: center;
}

/* ── Data rows ── */

.sf-comparison-table__row {
	align-items: stretch;
	border-bottom: 1px solid rgba(25, 63, 116, 0.35);
}

.sf-comparison-table__row:last-child {
	border-bottom: none; /* layout border-bottom closes the table */
}

/* Value cells — match column width, carry left/right borders */
.sf-comparison-table__cell {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 86px;
	flex-shrink: 0;
	padding: 13px 8px;
	font-family: 'poppins', sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.5;
	color: #193f74;
	text-align: center;
	border-left: 1px solid #193f74;
	border-right: 1px solid #193f74;
}

/* ── Share bar ── */

.sf-comparison-table__share {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	margin-top: 36px;
}

.sf-comparison-table__share-label {
	font-family: 'poppins', sans-serif;
	font-weight: 500;
	font-size: 14px;
	color: #193f74;
}

.sf-comparison-table__share-icons {
	display: flex;
	align-items: center;
	gap: 10px;
}

.sf-comparison-table__share-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #795728;
	transition: opacity 0.2s ease;
	text-decoration: none;
}

.sf-comparison-table__share-icon:hover {
	opacity: 0.65;
}


/* ── Responsive ── */

@media (max-width: 1024px) {
	.sf-comparison-table__intro-wrap {
		display: none;
	}

	.sf-comparison-table__intro--mobile {
		display: block;
		text-align: center;
		margin-bottom: 24px;
	}
}

@media (max-width: 767px) {
	.sf-comparison-table {
		padding: 40px 0 36px;
	}

	.sf-comparison-table__heading {
		font-size: 20px; /* was 22px; Figma mobile shows 20px */
		margin-bottom: 20px;
	}

	.sf-comparison-table__intro {
		font-size: 14px; /* was 15px; Figma mobile shows 14px */
	}

	.sf-comparison-table__col-headers,
	.sf-comparison-table__cells {
		gap: 12px;
	}

	.sf-comparison-table__col-header {
		width: 68px;
		font-size: 14px;
		padding: 14px 6px;
	}

	.sf-comparison-table__intro-wrap,
	.sf-comparison-table__question {
		font-size: 14px;
		padding: 11px 16px 11px 0;
	}

	.sf-comparison-table__cell {
		width: 68px;
		font-size: 14px;
		padding: 11px 6px;
	}
}

/* ─── sf-options-accordion ──────────────────────────────────────── */

.sf-options-accordion {
	background: linear-gradient(to right, #193f74, #21559d);
	padding: 60px 0 70px;
}

.sf-options-accordion__heading {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-h2);
	line-height: var(--sf-lh-h2);
	color: var(--sf-color-white);
	text-align: center;
	margin: 0 0 40px;
}

.sf-options-accordion__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* Each item — closed state */
.sf-options-accordion__item {
	border: 1px solid var(--sf-color-white);
}

/* Open state — white card */
.sf-options-accordion__item[open] {
	background: var(--sf-color-white);
}

/* Summary / trigger row */
.sf-options-accordion__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 24px;
	cursor: pointer;
	list-style: none;
	user-select: none;
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: var(--sf-size-lead); /* 18px — closed rows */
	line-height: normal;
	color: var(--sf-color-white);
}

/* Remove browser disclosure marker */
.sf-options-accordion__trigger::-webkit-details-marker { display: none; }
.sf-options-accordion__trigger::marker { display: none; }

/* Open trigger — smaller, navy */
.sf-options-accordion__item[open] > .sf-options-accordion__trigger {
	font-size: var(--sf-size-body); /* 16px — matches Figma expanded title */
	color: var(--sf-color-ink-deep);
	padding-bottom: 8px;
}

.sf-options-accordion__trigger-title {
	flex: 1;
}

.sf-options-accordion__item[open] .sf-options-accordion__trigger-title {
	font-weight: 600;
}

/* Chevron icon */
.sf-options-accordion__chevron {
	flex-shrink: 0;
	width: 10px;
	height: 6px;
	color: currentColor;
	transition: transform 0.25s ease;
}

/* Rotate to point up when open */
.sf-options-accordion__item[open] > .sf-options-accordion__trigger .sf-options-accordion__chevron {
	transform: rotate(180deg);
}

/* Expanded panel */
.sf-options-accordion__panel {
	padding: 0 24px 28px;
}

/* Badge pill */
.sf-options-accordion__badge {
	display: inline-block;
	padding: 6px 18px;
	background: var(--sf-color-accent);
	color: var(--sf-color-white);
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: var(--sf-size-button); /* 14px */
	line-height: normal;
	border-radius: var(--sf-btn-radius); /* full pill */
	margin-bottom: 16px;
}

/* WYSIWYG body */
.sf-options-accordion__body {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: normal;
	color: var(--sf-color-ink-deep);
}

.sf-options-accordion__body p {
	margin: 0 0 12px;
}

.sf-options-accordion__body p:last-child {
	margin-bottom: 0;
}

.sf-options-accordion__body ul,
.sf-options-accordion__body ol {
	margin: 0;
	padding-left: 20px;
}

.sf-options-accordion__body li {
	margin-bottom: 4px;
}

.sf-options-accordion__body li:last-child {
	margin-bottom: 0;
}

/* Mobile */
@media (max-width: 767px) {
	.sf-options-accordion {
		padding: 40px 0 50px;
	}

	.sf-options-accordion__heading {
		font-size: 20px; /* was 22px; Figma mobile shows 20px */
		margin-bottom: 28px;
	}

	.sf-options-accordion__trigger {
		font-size: var(--sf-size-body);
		padding: 12px 16px;
	}

	.sf-options-accordion__item[open] > .sf-options-accordion__trigger {
		padding-bottom: 6px;
	}

	.sf-options-accordion__panel {
		padding: 0 16px 20px;
	}
}

/* Light colour scheme modifier */
.sf-options-accordion--light {
	background: #ffffff;
}

.sf-options-accordion--light .sf-options-accordion__heading {
	color: #795728;
}

.sf-options-accordion--light .sf-options-accordion__item {
	border-color: #193f74;
}

.sf-options-accordion--light .sf-options-accordion__trigger {
	color: #193f74;
}

.sf-options-accordion--light .sf-options-accordion__item[open] {
	background: #f5f5f5;
	border-color: transparent;
}

.sf-options-accordion--light .sf-options-accordion__item[open] > .sf-options-accordion__trigger {
	color: #193f74;
}

/* Narrow container modifier — restricts inner width to 856px for article pages */
.sf-options-accordion--narrow .sf-widget__container,
.sf-widget__container.sf-narrow  {
	max-width: 856px;
	padding-left: 0;
	padding-right: 0;
}

@media (max-width: 1024px) {
	.sf-options-accordion--narrow .sf-widget__container,
	.sf-widget__container.sf-narrow {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* ─── sf-about-snippet ────────────────────────────────────────────── */

.sf-about-snippet {
	background-color: var(--sf-color-white);
	padding: 80px 0;
}

.sf-about-snippet__layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 60px;
}

/* Image on right: swap visual order */
.sf-about-snippet__layout--image-right .sf-about-snippet__image-wrap {
	order: 2;
}

.sf-about-snippet__layout--image-right .sf-about-snippet__content {
	order: 1;
}

/*
 * 3-corner radius: the corner facing the text column is square; the three
 * outer corners are rounded. Matches the hero image treatment (70px).
 * Image left  → top-right is square  → border-radius: 70px 0 70px 70px
 * Image right → top-left  is square  → border-radius: 0 70px 70px 70px
 */
.sf-about-snippet__image-wrap {
	overflow: hidden;
	border-radius: 70px 0 70px 70px; /* tl tr br bl */
	line-height: 0; /* remove inline-block gap below img */
}

.sf-about-snippet__layout--image-right .sf-about-snippet__image-wrap {
	border-radius: 0 70px 70px 70px; /* mirrored */
}

.sf-about-snippet__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 526 / 371; /* matches Figma proportions */
	object-fit: cover;
}

.sf-about-snippet__heading {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-h2);
	line-height: var(--sf-lh-h2);
	color: var(--sf-color-accent);
	margin: 0 0 20px;
}

.sf-about-snippet__body {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: 1.6;
	color: var(--sf-color-ink-deep);
	margin: 0 0 20px;
}

.sf-about-snippet__body p {
	margin: 0 0 16px;
}

.sf-about-snippet__body p:last-child {
	margin-bottom: 0;
}

.sf-about-snippet__link {
	display: inline-block;
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: var(--sf-size-link);
	color: var(--sf-color-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.sf-about-snippet__link:hover,
.sf-about-snippet__link:focus {
	opacity: 0.75;
}

/* Tablet */
@media (max-width: 1024px) {
	.sf-about-snippet__layout {
		gap: 40px;
	}
}

/* Mobile: single column, image always on top */
@media (max-width: 767px) {
	.sf-about-snippet {
		padding: 50px 0;
	}

	.sf-about-snippet__layout,
	.sf-about-snippet__layout--image-right {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	/* Reset order so image is always first on mobile */
	.sf-about-snippet__layout--image-right .sf-about-snippet__image-wrap,
	.sf-about-snippet__layout--image-right .sf-about-snippet__content {
		order: unset;
	}

	/* Reduce radius and use consistent 3-corner treatment at mobile size */
	.sf-about-snippet__image-wrap,
	.sf-about-snippet__layout--image-right .sf-about-snippet__image-wrap {
		border-radius: 40px 40px 40px 0; /* tl tr br bl — bottom-left square */
	}

	.sf-about-snippet__image {
		aspect-ratio: 4 / 3;
	}

	.sf-about-snippet__heading {
		font-size: 20px;   /* --sf-size-h2 = 30px is too large; Figma mobile shows 20px */
		line-height: 28px;
	}
}

/* ─── sf-search-banner ──────────────────────────────────────────── */

/*
 * Elementor wrapper reset — bleeds edge-to-edge.
 * !important needed to override Elementor inline styles.
 */
.elementor-widget-sf-search-banner,
.elementor-widget-sf-search-banner > .elementor-widget-container {
	width: 100%;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

.sf-search-banner {
	background: linear-gradient(to right, #193f74, #21559d);
	padding: 60px 0;
}

.sf-search-banner__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 80px;
	align-items: center;
}

/* ── Left: heading ── */

.sf-search-banner__heading {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-h2);
	line-height: 1.4;
	color: var(--sf-color-white);
	margin: 0;
}

/* ── Right: search form block ── */

.sf-search-banner__right {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}

.sf-search-banner__label {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-lead);
	line-height: normal;
	color: var(--sf-color-white);
	margin: 0;
	align-self: center;
}

.sf-search-banner__form {
	width: 100%;
	margin: 0;
}

.sf-search-banner__input-wrap {
	display: flex;
	align-items: center;
	position: relative;
	width: 100%;
	height: 48px;
	border: 1px solid var(--sf-color-white);
	background: transparent;
}

.sf-search-banner__input {
	flex: 1;
	height: 100%;
	padding: 0 44px 0 16px;
	background: transparent;
	border: none;
	outline: none;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
	font-family: var(--sf-font-primary);
	font-style: italic;
	font-size: 11px;
	color: var(--sf-color-white);
}

.sf-search-banner form.sf-search-banner__form input.sf-search-banner__input,
.sf-search-banner form.sf-search-banner__form button.sf-search-banner__submit {
	border: 0;
	outline: 0;
	box-shadow: none;
	color: var(--sf-color-white);
}

.sf-search-banner__input::placeholder {
	color: #d9d9d9;
}

.sf-search-banner__submit {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border: none;
	padding: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}

.sf-search-banner__submit svg {
	display: block;
	fill: none;
	stroke: var(--sf-color-white);
	stroke-width: 1.5;
	stroke-linecap: round;
}

.sf-search-banner .sf-search-banner__submit:hover {
	background: transparent;
	color: inherit;
}

.sf-search-banner .sf-search-banner__submit:hover svg circle,
.sf-search-banner .sf-search-banner__submit:hover svg line {
	stroke: var(--sf-color-white);
}

.sf-search-banner__location-link {
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: 12px;
	color: var(--sf-color-white);
	text-decoration: underline;
	display: inline-block;
	align-self: center;
}

.sf-search-banner__location-link:hover {
	color: var(--sf-color-white);
	text-decoration: none;
}

/* ── Responsive ── */

@media (max-width: 1024px) {
	.sf-search-banner__inner {
		gap: 0 48px;
	}
}

@media (max-width: 767px) {
	.sf-search-banner {
		padding: 48px 0;
	}

	.sf-search-banner__inner {
		grid-template-columns: 1fr;
		gap: 32px 0;
	}

	.sf-search-banner__heading {
		font-size: 20px;
		text-align: center;
	}

	.sf-search-banner__right {
		align-items: stretch;
	}

	.sf-search-banner__label {
		align-self: auto;
		text-align: center;
	}

	.sf-search-banner__location-link {
		align-self: auto;
		text-align: center;
	}
}

/* ─── Wave edges ─────────────────────────────────────────────────── */

/*
 * .sf-wave-host   — applied to any widget outer element that uses SF_Wave_Edges.
 *                   Establishes the positioning context for the absolute waves.
 *                   overflow:hidden clips SVG geometry that exceeds the wave band.
 * .sf-has-wave-top / .sf-has-wave-bottom
 *                 — added when the respective wave is enabled; adds padding so
 *                   section content does not sit behind the wave shape.
 */

.sf-wave-host {
	position: relative;
}

.sf-has-wave-top {
	padding-top: 120px;
}

.sf-has-wave-bottom {
	padding-bottom: 120px;
}

.sf-wave {
	position: absolute;
	left: 0;
	right: 0;
	width: 100%;
	height: 120px; /* visible wave band — increase with matching padding if you want more curve depth */
	overflow: hidden;
	line-height: 0;
	pointer-events: none;
}

.sf-wave--top {
	top: 0;
}

.sf-wave--bottom {
	bottom: 0;
}

.sf-wave svg {
	position: absolute;
	display: block;
	width: 100%;
	/* no explicit height — SVG scales proportionally from its viewBox */
}

.sf-wave--top svg {
	bottom: 0; /* wavy bottom edge of SVG sits at the bottom of the wave band */
}

.sf-wave--bottom svg {
	top: 0; /* after vertical flip, wavy top edge sits at the top of the wave band */
}

@media (max-width: 1024px) {
	.sf-wave            { height: 80px; }
	.sf-has-wave-top    { padding-top: 80px; }
	.sf-has-wave-bottom { padding-bottom: 80px; }
}

@media (max-width: 767px) {
	.sf-wave            { height: 60px; }
	.sf-has-wave-top    { padding-top: 60px; }
	.sf-has-wave-bottom { padding-bottom: 60px; }
}

/* ─── Sticky header z-index — sits above ASL GDPR overlay (z-index:100) ─── */
body .elementor-sticky.elementor-element {
	z-index: 200;
}

/* ─── Elementor Nav Menu — prevent items shrinking on browser resize ─── */
/* Elementor flex navs allow items to shrink but never re-expand; this    */
/* locks each item to its natural size so the menu stays stable.          */
/* !important on width rules: Elementor's stretchMenu JS injects inline   */
/* width styles on resize even when "Stretch Menu" is disabled (stale     */
/* cached settings). These rules override those inline styles.            */
.elementor-nav-menu--main .elementor-nav-menu {
	flex-wrap: nowrap;
}

.elementor-nav-menu--main .elementor-nav-menu > li {
	flex-shrink: 0;
}

.elementor-nav-menu--main,
.elementor-widget-nav-menu .elementor-widget-container {
	width: 100% !important;
}

/* ─── Nav menu: colour states ─────────────────────────────────────── */
/* Selectors confirmed via DevTools — scoped to the sticky header      */
/* element's class states to beat Elementor's generated specificity.   */

body .elementor-sticky.elementor-element .elementor-nav-menu--main .elementor-nav-menu .elementor-item {
	color: var(--sf-color-ink) !important;
	text-transform: none;
}

body .elementor-sticky.elementor-element .elementor-nav-menu--main .elementor-nav-menu .elementor-item:hover {
	 /*font-weight: 600; .elementor-item-active */
	color: var(--sf-color-accent) !important;
}

body .elementor-sticky.elementor-element .elementor-nav-menu--main .elementor-nav-menu .elementor-item.elementor-item-active {
	font-weight: 600;
	color: var(--sf-color-accent) !important;
	text-decoration: underline;
}

body .elementor-sticky.elementor-element.elementor-sticky--active.elementor-sticky--effects .elementor-nav-menu--main .elementor-nav-menu .elementor-item {
	color: var(--sf-color-white) !important;
}

body .elementor-sticky.elementor-element.elementor-sticky--active.elementor-sticky--effects .elementor-nav-menu--main .elementor-nav-menu .elementor-item:hover {
	color: var(--sf-color-accent) !important;
	opacity: 0.8;
}

body.home .elementor-sticky.elementor-element .elementor-nav-menu--main .elementor-nav-menu .elementor-item {
	color: var(--sf-color-white) !important;
}

body.home .elementor-sticky.elementor-element .elementor-nav-menu--main .elementor-nav-menu .elementor-item:hover {
	color: var(--sf-color-white) !important;
	opacity: 0.8;
}

/* ─── Nav CTA button — last item ──────────────────────────────────── */

body .elementor-sticky.elementor-element .elementor-nav-menu--main .elementor-nav-menu > li:last-child .elementor-item,
body.home .elementor-sticky.elementor-element .elementor-nav-menu--main .elementor-nav-menu > li:last-child .elementor-item {
	border: 2px solid var(--sf-color-ink);
	border-radius: var(--sf-btn-radius);
	padding: 8px 20px !important;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
	color: var(--sf-color-ink) !important;
}

body .elementor-sticky.elementor-element.elementor-sticky--active.elementor-sticky--effects .elementor-nav-menu--main .elementor-nav-menu > li:last-child .elementor-item {
	background: var(--sf-color-white) !important;
	color: var(--sf-color-accent) !important;
	border-color: var(--sf-color-ink) !important;
	opacity: 1 !important;
}

body .elementor-sticky.elementor-element .elementor-nav-menu--main .elementor-nav-menu > li:last-child .elementor-item:hover,
body .elementor-sticky.elementor-element.elementor-sticky--active.elementor-sticky--effects .elementor-nav-menu--main .elementor-nav-menu > li:last-child .elementor-item:hover {
	background: var(--sf-color-ink) !important;/*var(--sf-color-white) !important;*/
	color: var(--sf-color-white) !important;/*var(--sf-color-accent) !important; */
	border-color: var(--sf-color-ink) !important;
	opacity: 1 !important;
}

/* ─── Site logo: dark/light swap ──────────────────────────────────── */
/* #darkLogo default visible; #lightLogo shown on scroll and homepage. */

#lightLogo { display: none; }

body .elementor-sticky.elementor-element.elementor-sticky--active.elementor-sticky--effects #darkLogo,
body.home #darkLogo {
	display: none;
}

body .elementor-sticky.elementor-element.elementor-sticky--active.elementor-sticky--effects #lightLogo,
body.home #lightLogo {
	display: block;
}

/* ─── Mobile menu toggle: colour states ───────────────────────────── */
/* Mirrors nav link states so the hamburger is always visible.         */
/* The toggle icon bars use currentColor, so setting color is enough.  */

body .elementor-sticky.elementor-element .elementor-menu-toggle svg {
	fill: var(--sf-color-ink);
}

body .elementor-sticky.elementor-element.elementor-sticky--active.elementor-sticky--effects .elementor-menu-toggle svg {
	fill: var(--sf-color-white);
}

body.home .elementor-sticky.elementor-element .elementor-menu-toggle svg {
	fill: var(--sf-color-white);
}

/* ─── Mobile dropdown menu: nav link and CTA button styling ──────────── */
/* .elementor-nav-menu--dropdown is the mobile panel shown when the       */
/* hamburger is tapped — these rules are dropdown-only, no desktop effect.*/

.elementor-nav-menu--dropdown {
	background-color: var(--sf-color-ink) !important;
}

.elementor-nav-menu--dropdown .elementor-nav-menu .elementor-item {
	color: var(--sf-color-white) !important;
}

.elementor-nav-menu--dropdown .elementor-nav-menu > li:last-child .elementor-item {
	display: block;
	background: var(--sf-color-white) !important;
	color: var(--sf-color-accent) !important;
	border: none !important;
	border-radius: 200px !important;
	padding: 14px 32px !important;
	text-align: center;
	margin: 32px auto 0;
	width: fit-content;
	font-size: 14px;
	font-weight: 500;
}

.elementor-nav-menu--dropdown .elementor-nav-menu .elementor-item:hover,
.elementor-nav-menu--dropdown .elementor-nav-menu .elementor-item.elementor-item-active {
	color: var(--sf-color-white) !important;
	opacity: 0.8;
	text-decoration: none;
}

.elementor-nav-menu--dropdown .elementor-nav-menu > li:last-child .elementor-item:hover {
	opacity: 0.9;
	color: var(--sf-color-accent) !important;
}

/* ─── sf-support-tabs ───────────────────────────────────────────────── */

/* Elementor wrapper reset */
.elementor-widget-sf-support-tabs > .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
}

.sf-support-tabs {
	background: var(--sf-color-white);
	border-bottom: 1px solid #e5e7eb;
}

.sf-support-tabs__list {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0;
}

.sf-support-tabs__link {
	display: block;
	padding: 18px 32px;
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: var(--sf-size-body);
	line-height: normal;
	color: var(--sf-color-muted);
	text-decoration: none;
	border-bottom: 3px solid transparent;
	margin-bottom: -1px;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.sf-support-tabs__link:hover {
	color: var(--sf-color-ink-deep);
}

.sf-support-tabs__link.is-active {
	color: var(--sf-color-ink-deep);
	border-bottom-color: var(--sf-color-accent);
	font-weight: 600;
}

@media (max-width: 767px) {
	.sf-support-tabs__list {
		gap: 0;
	}

	.sf-support-tabs__link {
		padding: 14px 20px;
		font-size: var(--sf-size-meta);
	}
}

/* ─── sf-articles-listing ───────────────────────────────────────────── */

/* Elementor wrapper reset */
.elementor-widget-sf-articles-listing > .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
}

.sf-articles-listing {
	background: var(--sf-color-white);
	padding: 60px 0 70px;
}

/* Tab navigation — Articles / Videos switcher */
.sf-articles-listing__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 32px;
}

.sf-articles-listing__tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 31px;
	padding: 0 18px;
	border-radius: 30px;
	border: 1px solid var(--sf-color-ink-deep);
	background: transparent;
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: var(--sf-size-button);
	color: var(--sf-color-ink-deep);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.sf-articles-listing__tab--active {
	background: var(--sf-color-ink-deep);
	color: var(--sf-color-white);
	border-color: var(--sf-color-ink-deep);
}

.sf-articles-listing__tab:not(.sf-articles-listing__tab--active):hover {
	background: var(--sf-color-ink-deep);
	color: var(--sf-color-white);
}

/* Three-column card grid — mirrors sf-articles */
.sf-articles-listing__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-bottom: 40px;
}

/* Hidden cards — revealed by widgets.js when "Load more" is clicked */
.sf-articles-listing__card--hidden {
	display: none;
}

.sf-articles-listing__card {
	display: flex;
	flex-direction: column;
}

.sf-articles-listing__image-wrap {
	display: block;
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	text-decoration: none;
}

.sf-articles-listing__image-bg {
	display: block;
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transition: transform 0.3s ease;
}

.sf-articles-listing__image-wrap:hover .sf-articles-listing__image-bg {
	transform: scale(1.03);
}

.sf-articles-listing__overlay {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	height: var(--sf-btn-height);
	padding: 0 24px;
	background: var(--sf-color-cream);
	border-radius: var(--sf-btn-radius);
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: var(--sf-size-button);
	color: var(--sf-color-ink-deep);
	display: flex;
	align-items: center;
	white-space: nowrap;
	opacity: 0;
	transition: opacity 0.2s ease;
	pointer-events: none;
}

.sf-articles-listing__image-wrap:hover .sf-articles-listing__overlay {
	opacity: 1;
}

.sf-articles-listing__body {
	padding-top: 16px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.sf-articles-listing__title-link {
	text-decoration: none;
}

.sf-articles-listing__title-link:hover .sf-articles-listing__title {
	text-decoration: underline;
}

.sf-articles-listing__title {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-lead);
	line-height: 1.315;
	color: var(--sf-color-accent);
	margin: 0 0 10px;
}

.sf-articles-listing__excerpt {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: 1.315;
	color: var(--sf-color-ink-deep);
	margin: 0 0 10px;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sf-articles-listing__meta {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: 12px;
	line-height: normal;
	color: var(--sf-color-muted);
	margin: 0;
}

/* Footer row: load more button centred */
.sf-articles-listing__footer {
	text-align: center;
}

.sf-articles-listing__footer button.sf-articles-listing__load-more {
	display: inline-block;
	height: var(--sf-btn-height);
	padding: 0 32px;
	border: 1px solid var(--sf-color-ink-deep);
	border-radius: var(--sf-btn-radius);
	background: var(--sf-color-ink-deep);
	font-family: var(--sf-font-primary);
	font-size: var(--sf-size-button);
	font-weight: 500;
	color: var(--sf-color-white);
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.sf-articles-listing__footer button.sf-articles-listing__load-more:hover,
.sf-articles-listing__footer button.sf-articles-listing__load-more:focus {
	background: transparent;
	color: var(--sf-color-ink-deep);
	outline: none;
}

.sf-articles-listing__footer button.sf-articles-listing__load-more:focus-visible {
	background: transparent;
	color: var(--sf-color-ink-deep);
	outline: 2px solid var(--sf-color-ink-deep);
	outline-offset: 3px;
}

.sf-articles-listing__footer button.sf-articles-listing__load-more:active {
	background: #0f2a4f;
	color: var(--sf-color-white);
	border-color: #0f2a4f;
	outline: none;
}

.sf-articles-listing__empty {
	font-family: var(--sf-font-primary);
	font-size: var(--sf-size-body);
	color: var(--sf-color-muted);
	text-align: center;
	padding: 40px 0;
}

/* Responsive: 2 columns on tablet */
@media (max-width: 1024px) {
	.sf-articles-listing__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Responsive: single column on mobile */
@media (max-width: 767px) {
	.sf-articles-listing {
		padding: 40px 0 50px;
	}

	.sf-articles-listing__tabs {
		justify-content: center;
	}

	.sf-articles-listing__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.sf-articles-listing__excerpt {
		font-size: 14px; /* --sf-size-body = 16px; Figma shows 14px on mobile */
	}

	.sf-articles-listing__overlay {
		opacity: 1;
	}
}

/* ─── sf-videos-listing ─────────────────────────────────────────────── */

/* Elementor wrapper reset */
.elementor-widget-sf-videos-listing > .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
}

.sf-videos-listing {
	background: var(--sf-color-white);
	padding: 60px 0 70px;
}

.sf-videos-listing__header {
	margin-bottom: 32px;
}

.sf-videos-listing__heading {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-h2);
	line-height: var(--sf-lh-h2);
	color: var(--sf-color-ink-deep);
	margin: 0 0 12px;
}

.sf-videos-listing__subheading {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: 1.6;
	color: var(--sf-color-ink-deep);
	margin: 0;
	max-width: 720px;
}

/* Two-column video grid — mirrors sf-videos */
.sf-videos-listing__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	margin-bottom: 40px;
}

/* Hidden cards — revealed by widgets.js when "Load more videos" is clicked */
.sf-videos-listing__card--hidden {
	display: none;
}

.sf-videos-listing__card-media {
	position: relative;
	overflow: hidden;
	border-radius: 4px;
	aspect-ratio: 16 / 9;
	background: #000;
}

.sf-videos-listing__card-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.sf-videos-listing__card-overlay {
	position: absolute;
	inset: auto 0 0 0;
	height: 130px;
	background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.75));
	pointer-events: none;
}

/* Play button — same style as sf-videos */
.sf-videos-listing__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 72px !important;
	height: 72px !important;
	border-radius: 50% !important;
	border: 2px solid #fff !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	color: #fff !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 2;
	transition: background 0.2s ease, transform 0.2s ease;
}

.sf-videos-listing__play:hover,
.sf-videos-listing__play:focus-visible {
	background: rgba(255, 255, 255, 0.15) !important;
	transform: translate(-50%, -50%) scale(1.08);
	outline: none;
}

.sf-videos-listing__play svg {
	display: block;
	margin-left: 2px;
}

.sf-videos-listing__iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: none;
}

.sf-videos-listing__card-meta {
	position: absolute;
	bottom: 14px;
	left: 16px;
	right: 16px;
	z-index: 2;
}

.sf-videos-listing__card-title {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-lead);
	line-height: normal;
	color: #fff;
	margin: 0 0 4px;
}

.sf-videos-listing__card-caption {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: normal;
	color: #fff;
	margin: 0;
}

/* Footer row: load more button centred */
.sf-videos-listing__footer {
	text-align: center;
}

.sf-videos-listing__footer button.sf-videos-listing__load-more {
	display: inline-block;
	height: var(--sf-btn-height);
	padding: 0 32px;
	border: 1px solid var(--sf-color-ink-deep);
	border-radius: var(--sf-btn-radius);
	background: var(--sf-color-ink-deep);
	font-family: var(--sf-font-primary);
	font-size: var(--sf-size-button);
	font-weight: 500;
	color: var(--sf-color-white);
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.sf-videos-listing__footer button.sf-videos-listing__load-more:hover,
.sf-videos-listing__footer button.sf-videos-listing__load-more:focus {
	background: transparent;
	color: var(--sf-color-ink-deep);
	outline: none;
}

.sf-videos-listing__footer button.sf-videos-listing__load-more:focus-visible {
	background: transparent;
	color: var(--sf-color-ink-deep);
	outline: 2px solid var(--sf-color-ink-deep);
	outline-offset: 3px;
}

.sf-videos-listing__footer button.sf-videos-listing__load-more:active {
	background: #0f2a4f;
	color: var(--sf-color-white);
	border-color: #0f2a4f;
	outline: none;
}

.sf-videos-listing__empty {
	font-family: var(--sf-font-primary);
	font-size: var(--sf-size-body);
	color: var(--sf-color-muted);
	text-align: center;
	padding: 40px 0;
}

/* Responsive: single column on mobile */
@media (max-width: 767px) {
	.sf-videos-listing {
		padding: 40px 0 50px;
	}

	.sf-articles-listing__tabs {
		justify-content: center;
	}

	.sf-videos-listing__heading {
		font-size: 22px;
		text-align: center;
	}

	.sf-videos-listing__subheading {
		text-align: center;
	}

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

	.sf-videos-listing__load-more {
		background: var(--sf-color-ink-deep);
		color: var(--sf-color-white);
	}
}

/* ─── sf-article-intro ──────────────────────────────────────────────── */

.sf-article-intro {
	background: var(--sf-color-white);
	padding: 0 0 56px;
}

.sf-article-intro .sf-widget__container,
.sf-article-body-section .sf-widget__container {
	max-width: 856px;
	padding-left: 0;
	padding-right: 0;
}

@media (max-width: 1024px) {
	.sf-article-intro .sf-widget__container,
	.sf-article-body-section .sf-widget__container {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* Breadcrumb */
.sf-article-intro__breadcrumb {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 32px;
	flex-wrap: wrap;
}

.sf-article-intro__bc-link,
.sf-article-intro__bc-current {
	font-family: var(--sf-font-primary);
	font-size: 10px;
	line-height: 1.4;
	color: var(--sf-color-ink-deep);
	text-decoration: none;
}

.sf-article-intro__bc-link:hover {
	text-decoration: underline;
}

.sf-article-intro__bc-current {
	font-weight: 600;
}

.sf-article-intro__bc-sep {
	font-size: 10px;
	color: var(--sf-color-ink-deep);
	line-height: 1;
}

/* Title */
.sf-article-intro__title {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-h2);
	line-height: var(--sf-lh-h2);
	color: var(--sf-color-accent);
	margin: 0 0 24px;
}

/* Lead paragraph */
.sf-article-intro__lead {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: 24px;
	color: var(--sf-color-ink-deep);
	max-width: 856px;
}

.sf-article-intro__lead p {
	margin: 0 0 16px;
}

.sf-article-intro__lead p:last-child {
	margin-bottom: 0;
}

.sf-article-intro__read-time {
	margin: 16px 0 0;
	font-family: var(--sf-font-primary);
	font-size: 13px;
	font-weight: 400;
	color: var(--sf-color-muted);
	text-align: center;
	display: none !important;
}

@media (max-width: 767px) {
	.sf-article-intro {
		padding: 32px 0 40px;
	}

	.sf-article-intro__title {
		font-size: 22px;
		line-height: 1.3;
		text-align: left;
	}
	
	.sf-article-intro {
		background: var(--sf-color-white);
		padding: 0 0 32px;
	}
}

/* ─── sf-article-body-section ───────────────────────────────────────── */

.sf-article-body-section {
	background: var(--sf-color-white);
	padding: 0 0 60px;
}

/* Section heading — navy, SemiBold, sits above the two-column layout */
.sf-article-body-section__heading {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: 25px;
	line-height: 1.3;
	color: var(--sf-color-ink-deep);
	margin: 0 0 24px;
}

/* Two-column grid */
.sf-article-body-section__columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	align-items: start;
}

/* Image on the left — swap column order */
.sf-article-body-section--image-left .sf-article-body-section__image-wrap {
	order: -1;
}

/* Body copy column */
.sf-article-body-section__text {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: var(--sf-size-body);
	line-height: 24px;
	color: var(--sf-color-ink-deep);
}

.sf-article-body-section__text p {
	margin: 0 0 16px;
}

.sf-article-body-section__text p:last-child {
	margin-bottom: 0;
}

.sf-article-body-section__text ul,
.sf-article-body-section__text ol {
	margin: 0 0 16px;
	padding-left: 20px;
}

.sf-widget__container.sf-narrow a,
.sf-article-body-section__text a  {
    text-decoration: underline;
    color: #193f74;
}

.sf-widget__container.sf-narrow a:hover,
.sf-article-body-section__text a:hover {
    text-decoration: none;
    opacity: 0.8;
}

/* Image — SAIF asymmetric radius: square top-left, rounded on the other three */
.sf-article-body-section__image-wrap {
	overflow: hidden;
	border-radius: 0 var(--sf-hero-image-radius) var(--sf-hero-image-radius) var(--sf-hero-image-radius);
}

.sf-article-body-section__image {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

@media (max-width: 767px) {
	.sf-article-body-section {
		padding-bottom: 40px;
	}

	.sf-article-body-section__heading {
		font-size: 20px; /* desktop: 25px; Figma mobile shows 20px */
		line-height: 28px;
	}

	.sf-article-body-section__columns {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	/* Reduce image radius on mobile — 70px is too large at narrow widths */
	.sf-article-body-section__image-wrap {
		border-radius: 0 40px 40px 40px;
	}

	/* On mobile, image always follows the text regardless of desktop position */
	.sf-article-body-section--image-left .sf-article-body-section__image-wrap {
		order: 0;
	}
}

/* ─── sf-what-to-expect ─────────────────────────────────────────────── */

.sf-what-to-expect {
	background: #ffffff;
	padding: 72px 0 80px;
}

/* Elementor wrapper reset */
.elementor-widget-sf-what-to-expect > .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
}

/* Two-column grid: heading left, items right */
.sf-what-to-expect__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 60px;
	align-items: center;
}

/* Left: heading centred to right column height via align-items: center on parent */
.sf-what-to-expect__left {
	display: flex;
	align-items: center;
}

.sf-what-to-expect__heading {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: 30px;
	line-height: 1.3;
	color: #193f74;
	margin: 0;
}

/* Right: stacked repeater items */
.sf-what-to-expect__right {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.sf-what-to-expect__item {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.sf-what-to-expect__item-title {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: 18px;
	line-height: normal;
	color: #795728;
	margin: 0;
}

.sf-what-to-expect__item-body {
	font-family: var(--sf-font-primary);
	font-weight: 400;
	font-size: 16px;
	line-height: 1.6;
	color: #193f74;
	margin: 0;
}

/* ── Responsive: tablet ── */

@media (max-width: 1024px) {
	.sf-what-to-expect__left {
		text-align: center;
		justify-content: center;
	}

	.sf-what-to-expect__inner {
		gap: 0 40px;
	}

	.sf-what-to-expect__heading {
		font-size: 26px;
	}
}

/* ── Responsive: mobile — stack, heading on top ── */

@media (max-width: 767px) {
	.sf-what-to-expect {
		padding: 48px 0 56px;
	}

	.sf-what-to-expect__inner {
		grid-template-columns: 1fr;
		gap: 32px 0;
	}

	.sf-what-to-expect__heading {
		font-size: 20px; /* was 24px; Figma mobile shows 20px */
	}

	.sf-what-to-expect__right {
		gap: 32px;
	}
}

/* ─── sf-director-cta ───────────────────────────────────────────────── */

.sf-director-cta {
	background: var(--sf-color-white);
	padding: 64px 0 72px;
	text-align: center;
}

/* Statement */
.sf-director-cta__statement {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-h2);
	line-height: 42px;
	color: var(--sf-color-accent);
	max-width: 856px;
	margin: 0 auto 40px;
}

/* Form wrapper — constrains the form to a readable width */
.sf-director-cta__form-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}

/* Label above input */
.sf-director-cta__label {
	font-family: var(--sf-font-primary);
	font-weight: 600;
	font-size: var(--sf-size-eyebrow);
	line-height: 1.4;
	color: var(--sf-color-ink-deep);
	margin: 0;
}

/* Input + submit button wrapper */
.sf-director-cta__input-wrap {
	display: flex;
	align-items: center;
	width: 416px;
	max-width: 100%;
	border: 1px solid var(--sf-color-ink-deep);
	background: var(--sf-color-white);
}

.sf-director-cta__input {
	flex: 1;
	height: 48px;
	border: none;
	outline: none;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
	padding: 0 12px;
	font-family: var(--sf-font-primary);
	font-style: italic;
	font-size: 11px;
	color: var(--sf-color-ink-deep);
}

.sf-director-cta form.sf-director-cta__form input.sf-director-cta__input,
.sf-director-cta form.sf-director-cta__form button.sf-director-cta__submit,
.sf-director-cta form.sf-director-cta__form button.sf-director-cta__submit:focus {
	border: 0;
	outline: 0;
	box-shadow: none;
	color: var(--sf-color-ink-deep);
	padding: 0 20px;
	background-color: transparent;
}

.sf-director-cta__input::placeholder {
	color: var(--sf-color-muted);
}

.sf-director-cta__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 48px;
	flex-shrink: 0;
	border: none;
	background: transparent;
	cursor: pointer;
	padding: 0;
}

.sf-director-cta__submit svg {
	display: block;
	fill: none;
	stroke: var(--sf-color-ink-deep);
	stroke-width: 1.5;
	stroke-linecap: round;
}

.sf-director-cta .sf-director-cta__submit:hover {
	background: transparent;
	color: inherit;
}

.sf-director-cta .sf-director-cta__submit:hover svg circle,
.sf-director-cta .sf-director-cta__submit:hover svg line {
	stroke: var(--sf-color-ink-deep);
}

/* Location link */
.sf-director-cta__location-link {
	font-family: var(--sf-font-primary);
	font-weight: 500;
	font-size: 12px;
	line-height: 1.4;
	color: var(--sf-color-ink-deep);
	text-decoration: underline;
}

.sf-director-cta__location-link:hover {
	color: var(--sf-color-accent);
}

@media (max-width: 767px) {
	.sf-director-cta {
		padding: 48px 0 56px;
	}

	.sf-director-cta__statement {
		font-size: 25px; /* was 22px; Figma mobile shows 25px — node 2331:396 */
		line-height: 1.3;
	}

	.sf-director-cta__input-wrap {
		width: 100%;
	}
}

/* ─── sf-store-locator ──────────────────────────────────────────────── */

.sf-store-locator {
	background: #ffffff;
	padding: 60px 0 80px;
}

/* Intro: heading + subheading above the ASL block */

.sf-store-locator__intro {
	margin-bottom: 32px;
	text-align: center;
}

.sf-store-locator__heading {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 30px;
	line-height: 1.3;
	color: #795728;
	margin: 0 0 12px;
}

.sf-store-locator__subheading {
	font-family: 'poppins', sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.6;
	color: #193f74;
	max-width: 490px;
	margin: 0 auto;
}

/* Remove default ASL outer margins/padding so the card layout sits flush */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator {
	margin: 0;
	/* Override ASL's primary colour variable — fixes icons, scrollbar, buttons in one shot */
	--sl-primary: #193f74;
}

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .asl-wrapper,
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-container {
	padding-left: 0;
	padding-right: 0;
}

/* ── Left panel: branded bordered card ──
   No overflow:hidden here — ASL's .asl-panel-inner is position:absolute filling the card,
   so overflow:hidden clips the search form. Instead we apply matching border-radius to the
   inner elements that have backgrounds, so they clip themselves to match the card corners. */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator #asl-panel {
	border: 2px solid #193f74;
	border-radius: 30px;
	padding: 28px 24px;
	background: #ffffff;
	position: relative; /* ensure absolute children reference this card */
}

/* Search filter strip: remove ASL's grey background so it sits cleanly inside the card */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .inside.search_filter {
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	position: relative;
	z-index: 2; /* stay above .asl-panel-inner which is also absolute */
}

/* .asl-panel-inner fills the card absolutely — round its bottom corners to match the card,
   and push it down below the search form so they don't overlap.
   top is set via JS by ASL; we add bottom-radius so its white bg clips at the card corners. */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .asl-panel-inner {
	border-radius: 0 0 28px 28px;
}

/* Search label inside the card */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator label[for='auto-complete-search'] {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.4;
	color: #795728 !important; /* ASL injects inline colour styles */
	display: block;
	margin-bottom: 8px;
}

/* Search input */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator input#auto-complete-search {
	font-family: 'poppins', sans-serif;
	font-weight: 400;
	font-size: 14px;
	color: #193f74;
	border: 1px solid #193f74 !important; /* override ASL inline border styles */
	border-radius: 6px 0 0 6px;
	height: 40px;
	box-shadow: none;
}

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator input#auto-complete-search::placeholder {
	font-style: italic;
	font-size: 10px;
	color: #d9d9d9;
}

/* Search / geo button ("Find now") */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .span-geo {
	background-color: #193f74 !important; /* ASL injects inline background-color */
	border-color: #193f74 !important;
	color: #ffffff !important;
	font-family: 'poppins', sans-serif;
	font-weight: 500;
	font-size: 14px;
	border-radius: 0 6px 6px 0;
	height: 40px;
	padding: 0 16px;
}

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .span-geo:hover {
	background-color: #152f57 !important;
	border-color: #152f57 !important;
}

/* Results count bar — hidden per Figma design.
   !important needed because ASL JS toggles display inline after search. */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .top-title.Num_of_store {
	display: none !important;
}

/* ── Result list items (template-0) ── */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Each result row: padding + separator line */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item {
	padding: 14px 0;
	border-bottom: 1px solid rgba(25, 63, 116, 0.18);
}

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item:last-child {
	border-bottom: none;
}

/* Store name */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .sl-addr-list-title {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.35;
	color: #193f74 !important;
	margin: 0 0 8px;
}

/* Detail list reset */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .addr-loc ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Each detail row (address, phone, email, hours) */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .addr-loc li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-bottom: 4px;
	font-family: 'poppins', sans-serif;
	font-weight: 400;
	font-size: 15px;
	line-height: 1.5;
	color: #193f74;
}

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .addr-loc li span,
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .addr-loc li a {
	font-family: 'poppins', sans-serif;
	font-weight: 400;
	font-size: 15px;
	color: #193f74 !important;
	text-decoration: none;
}

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .addr-loc li a:hover {
	text-decoration: underline;
}

/* Detail row icons */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .addr-loc li i {
	color: #193f74 !important;
	font-size: 15px;
	flex-shrink: 0;
	margin-top: 3px;
}

/* ── Custom PNG icons: phone, location, website ── */

/* Hide address-row FA icon (no icon shown in Figma for address rows) */
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .addr-loc li i.fa-home,
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .addr-loc li i.fa-map-marker,
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .addr-loc li i.fa-map-marker-alt {
	display: none !important;
}

/* Phone icon */
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .addr-loc li i.fa-phone,
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .addr-loc li i.fa-phone-alt {
	font-size: 0 !important;
	display: inline-block;
	width: 18px;
	height: 18px;
	background: url('../images/icon-phone.png') no-repeat center / contain;
	flex-shrink: 0;
}

/* Distance / location icon */
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .sl-miles i {
	font-size: 0 !important;
	display: inline-block;
	width: 18px;
	height: 18px;
	background: url('../images/icon-location.png') no-repeat center / contain;
	flex-shrink: 0;
}

/* Website icon */
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .s-visit-website i {
	font-size: 0 !important;
	display: inline-block;
	width: 18px;
	height: 18px;
	background: url('../images/icon-website.png') no-repeat center / contain;
	flex-shrink: 0;
}

/* Hide categories row */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .sl-categories,
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-cat,
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-tags {
	display: none !important;
}

/* Description row — show if present */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .sl-desc p {
	font-family: 'poppins', sans-serif;
	font-weight: 400;
	font-size: 14px;
	color: #193f74;
	margin: 6px 0 0;
}

/* ── Buttons area (sl-act-btns): distance + website, no Directions button ── */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .sl-act-btns {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 6px;
}

/* Hide Directions button */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .s-direction {
	display: none !important;
}

/* Distance — plain text, matching detail rows */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .sl-miles {
	display: flex;
	align-items: center;
	gap: 8px;
}

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .sl-miles .s-distance {
	font-family: 'poppins', sans-serif;
	font-weight: 400;
	font-size: 15px;
	color: #193f74 !important;
}

/* Website link — plain icon+text, no button styling */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .s-visit-website {
	display: flex !important;
	align-items: center;
	gap: 8px;
	font-family: 'poppins', sans-serif;
	font-weight: 400;
	font-size: 15px;
	color: #193f74 !important;
	text-decoration: none;
	background: none !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
}

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-list .sl-item .s-visit-website:hover {
	text-decoration: underline;
	background: none !important;
}

.sf-store-locator #asl-storelocator.asl-cont .asl-wrapper .sl-main-cont .asl-panel-inner .sl-main-cont-box .sl-list-wrapper .sl-list .sl-item{
		border-top: 1px solid #193f74;
		border-bottom: 1px solid #193f74;
    cursor: pointer;
}

.sf-store-locator #asl-storelocator.asl-cont .asl-wrapper .sl-main-cont .asl-panel-inner .sl-main-cont-box .sl-list-wrapper .sl-list {
    padding-top: 30px;
}

.sf-store-locator #asl-storelocator.asl-cont.asl-template-0 .asl-wrapper .sl-main-cont .asl-panel-inner .sl-main-cont-box .sl-list-wrapper .sl-list .sl-item.highlighted {
	background-color: rgba(33, 85, 157, 0.1);
}

/* "See more" / load-more — hidden per design */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-more-btn,
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator a.asl-more,
.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .asl-load-more {
	display: none !important;
}

/* ── Map infobox popup (template-0-infobox.html) ──
   ASL renders the infobox inside the Google Maps DOM; the --sl-primary variable
   does not reach these elements, so we override colours explicitly. */

/* Store name */
#asl-storelocator .infowindowContent h3 {
	font-family: 'poppins', sans-serif;
	font-weight: 600;
	font-size: 15px;
	color: #193f74 !important;
}

/* Address text */
#asl-storelocator .infowindowContent .sl-tag {
	font-family: 'poppins', sans-serif;
	font-size: 13px;
	color: #193f74 !important;
}

/* Detail row icons (distance, phone, email, hours) */
#asl-storelocator .infowindowContent .info-addr-inner i {
	color: #193f74 !important;
}

/* Detail row text / links */
#asl-storelocator .infowindowContent .info-addr-inner a,
#asl-storelocator .infowindowContent .info-addr-inner span {
	font-family: 'poppins', sans-serif;
	font-size: 13px;
	color: #193f74 !important;
}

/* Infobox action button */
#asl-storelocator .infowindowContent .asl-buttons a,
#asl-storelocator .infowindowContent .asl-buttons .btn-asl,
#asl-storelocator .infowindowContent .asl-buttons .directions {
	background-color: #193f74 !important;
	border-color: #193f74 !important;
	color: #ffffff !important;
	font-family: 'poppins', sans-serif;
	font-weight: 500;
	font-size: 13px;
	border-radius: 6px;
}

#asl-storelocator .infowindowContent .asl-buttons a:hover,
#asl-storelocator .infowindowContent .asl-buttons .btn-asl:hover {
	background-color: #152f57 !important;
	border-color: #152f57 !important;
}

/* Map panel: no extra border, gap from the search card */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .asl-map {
	border: none;
	padding-left: 24px;
}

/* Ensure the map canvas has a minimum height */

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator #asl-map-canv {
	min-height: 450px;
}

.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .sl-no-item {
	padding-left: 10px;
	padding-right: 10px;
}

/* ── Responsive ── */

@media (max-width: 767px) {
	.sf-store-locator {
		padding: 40px 0 60px;
	}

	.sf-store-locator__heading {
		font-size: 24px;
	}

	.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator #asl-panel {
		border-radius: 16px;
		padding: 20px 16px;
	}

	.sf-store-locator .sf-store-locator__asl-wrap #asl-storelocator .asl-map {
		padding-left: 0;
		margin-top: 30px;
	}
}

@media (max-width: 1024px) {
	.sf-store-locator__intro {
		text-align: center;
	}
}

/* ─── sf-content-expander ─────────────────────────────────────────── */

.sf-content-expander {
	background: #ffffff;
	padding: 60px 0;
}

.sf-content-expander__inner {
	max-width: 960px;
	margin: 0 auto;
	padding: 0 24px;
}

.sf-content-expander__title {
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	font-size: 30px;
	color: #795728;
	text-align: center;
	margin: 0 0 32px;
}

.sf-content-expander__preview p,
.sf-content-expander__extended p {
	font-family: 'Poppins', sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.7;
	color: #193f74;
	margin: 0 0 1em;
}

.sf-content-expander__toggle {
	display: block;
	margin: 24px auto 0;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	font-family: 'Poppins', sans-serif;
	font-weight: 500;
	font-size: 16px;
	color: #795728;
	text-decoration: underline;
}

button.sf-content-expander__toggle:hover,
.sf-content-expander__toggle:focus-visible,
.sf-content-expander__toggle:focus {
    background-color: transparent;
    color: #193f74;
    text-decoration: underline;
}

@media (max-width: 767px) {
	.sf-content-expander {
		padding: 40px 0;
	}

	.sf-content-expander__title {
		font-size: 22px;
	}
}

/* ── sf-pill-nav ──────────────────────────────────────────────────────────── */

.elementor-widget-sf-pill-nav,
.elementor-widget-sf-pill-nav > .elementor-widget-container {
	width: 100%;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

.sf-pill-nav {
	background: #fff;
	padding: 20px 0;
}

.sf-pill-nav__list {
	display: flex;
	flex-wrap: nowrap;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.sf-pill-nav__list::-webkit-scrollbar {
	display: none;
}

.sf-pill-nav__link {
	display: inline-flex;
	align-items: center;
	height: 31px;
	padding: 0 18px;
	border-radius: 30px;
	font-family: var(--sf-font-primary, 'Poppins', sans-serif);
	font-weight: 500;
	font-size: 14px;
	white-space: nowrap;
	text-decoration: none;
	color: #193f74;
	border: 1px solid #193f74;
	background: transparent;
	transition: background 0.2s, color 0.2s;
}

.sf-pill-nav__link.is-active {
	background: #193f74;
	color: #fff;
	border-color: #193f74;
}

.sf-pill-nav__link:hover:not(.is-active) {
	background: rgba(25, 63, 116, 0.07);
}

@media (max-width: 767px) {
	.sf-pill-nav {
		padding: 16px 0;
	}

	.sf-pill-nav__list {
		padding-bottom: 2px;
	}
}

/* ── sf-anchor-sections ───────────────────────────────────────────────────── */

.elementor-widget-sf-anchor-sections,
.elementor-widget-sf-anchor-sections > .elementor-widget-container {
	width: 100%;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

.sf-anchor-sections {
	background: #fff;
}

/* pill nav strip */

.sf-anchor-sections__nav-wrap {
	padding: 20px 0;
}

.sf-anchor-sections__list {
	display: flex;
	flex-wrap: nowrap;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.sf-anchor-sections__list::-webkit-scrollbar {
	display: none;
}

.sf-anchor-sections__link {
	display: inline-flex;
	align-items: center;
	height: 31px;
	padding: 0 18px;
	border-radius: 30px;
	font-family: var(--sf-font-primary, 'Poppins', sans-serif);
	font-weight: 500;
	font-size: 14px;
	white-space: nowrap;
	text-decoration: none;
	color: #193f74;
	border: 1px solid #193f74;
	background: transparent;
	transition: background 0.2s, color 0.2s;
}

.sf-anchor-sections__link.is-active {
	background: #193f74;
	color: #fff;
	border-color: #193f74;
}

.sf-anchor-sections__link:hover:not(.is-active) {
	background: rgba(25, 63, 116, 0.07);
}

/* content sections */

.sf-anchor-sections__sections {
	padding: 48px 0;
}

.sf-anchor-sections__section {
	padding-top: 48px;
}

.sf-anchor-sections__section:first-child {
	padding-top: 0;
}

.sf-anchor-sections__section-title {
	font-family: var(--sf-font-primary, 'Poppins', sans-serif);
	font-weight: 600;
	font-size: 30px;
	color: #794528;
	margin-bottom: 24px;
	line-height: 1.3;
}

.sf-anchor-sections__section-body {
	font-family: var(--sf-font-primary, 'Poppins', sans-serif);
	font-weight: 400;
	font-size: 16px;
	color: #193f74;
	line-height: 1.7;
}

.sf-anchor-sections__section-body p {
	margin-bottom: 1em;
}

.sf-anchor-sections__section-body p:last-child {
	margin-bottom: 0;
}

@media (max-width: 767px) {
	.sf-anchor-sections__nav-wrap {
		padding: 16px 0;
	}

	.sf-anchor-sections__list {
		padding-bottom: 2px;
	}

	.sf-anchor-sections__sections {
		padding: 30px 0;
	}

	.sf-anchor-sections__section {
		padding-top: 30px;
	}
}

/* main footer */
.elementor-widget-n-menu.sf-footer-menu ul.e-n-menu-heading div.e-n-menu-title {
		text-wrap: auto;
}

@media all and (min-width: 1025px) {
	.elementor-widget-n-menu.sf-footer-menu ul.e-n-menu-heading div.e-n-menu-title {
			padding-left: 0;
	}
}

@media all and (max-width: 1024px) {
	.elementor-widget-n-menu.sf-footer-menu ul.e-n-menu-heading {
			flex-direction: column;
			align-items: center;
	}
	.elementor-widget-n-menu.sf-footer-menu ul.e-n-menu-heading li.e-n-menu-item {
		margin: 0 !important;
	}
	
	.elementor-nav-menu--dropdown.elementor-nav-menu__container {
		height: 100vh;
		width: 100vw;
	}
	
	.elementor-nav-menu--dropdown.elementor-nav-menu__container ul.elementor-nav-menu {
		display: flex;
		flex-direction: column;
		height: 100%;
		flex-grow: 1;
		row-gap: 32px;
		padding-top: 40px;
	}

	.elementor-nav-menu--dropdown.elementor-nav-menu__container ul.elementor-nav-menu > li a {
		font-size: 20px !important;;
	}

	.elementor-nav-menu--dropdown .elementor-nav-menu > li:last-child {
			position: absolute;
			bottom: 0;
			left: 0;
			right: 0;
			padding: 0 0 30px 0;
	}

	.elementor-nav-menu--dropdown.elementor-nav-menu__container ul.elementor-nav-menu > li:last-child a {
			font-size: 14px !important;
	}

	body .elementor-sticky.elementor-element.elementor-sticky--active.elementor-sticky--effects .elementor-menu-toggle.elementor-active svg {
		border: 2px solid white;
    border-radius: 50%;
    padding: 4px;
	}
	.elementor-86 .elementor-element.elementor-element-5f27180.elementor-sticky--effects .elementor-widget-theme-site-logo img {
		height: 53px;
		width: 53px;
	}
}

/* ─── sf-video-trio ─────────────────────────────────────────────── */

/* Elementor wrapper reset — full bleed */
.elementor-widget-sf-video-trio,
.elementor-widget-sf-video-trio > .elementor-widget-container {
	width: 100%;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

.sf-video-trio {
	background: var(--sf-color-white);
	padding: 60px 0 70px;
}

.sf-video-trio__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 72px;
}

/*
 * Flexbox grid — always centred.
 * Each card is ~1/3 width (matching a slot in the 3-up layout),
 * so 1 or 2 cards stay that size and centre naturally rather than
 * stretching to fill the container.
 */
.sf-video-trio__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 24px;
}

.sf-video-trio__card {
	flex: 0 0 calc(33.333% - 16px); /* 16px = 2/3 of the 24px gap */
	min-width: 0;
}

/* 16:9 card */
.sf-video-trio__card-media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
}

.sf-video-trio__card-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Subtle dark overlay */
.sf-video-trio__card-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.20);
	pointer-events: none;
}

/* Play button — matches .sf-videos__play exactly */
.sf-video-trio__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 72px !important;
	height: 72px !important;
	border-radius: 50% !important;
	border: 2px solid #fff !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	color: #fff !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer;
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 2;
	transition: background 0.2s ease, transform 0.2s ease;
}

.sf-video-trio__play:hover,
.sf-video-trio__play:focus-visible {
	background: rgba(255, 255, 255, 0.15) !important;
	transform: translate(-50%, -50%) scale(1.08);
	outline: none;
}

.sf-video-trio__play svg {
	display: block;
	margin-left: 2px; /* optical centering — play triangle centroid sits 1px left of SVG midpoint */
}

/* YouTube iframe injected by JS when play is clicked */
.sf-video-trio__iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

@media (max-width: 1280px) {
	.sf-video-trio__inner {
		padding: 0 40px;
	}
}

/* Mobile: stack to single column */
@media (max-width: 1024px) {
	.sf-video-trio__card {
		flex: 0 0 100%;
	}
}

@media (max-width: 767px) {
	.sf-video-trio__inner {
		padding: 0 24px;
	}
}

