/**
 * Saviour Financial Services: front-end styles.
 *
 * Structural and component CSS only. Every colour, shadow, radius, duration and easing comes from
 * theme.json (preset and custom CSS variables); restyle a client build there first, then add the
 * client's look in a clearly marked section at the end of this file.
 *
 * @author Mike Potter, Bizetools (https://bizetools.com)
 */

/* ---------- Tokens (aliases of theme.json variables; no literal colours here) ---------- */
:root {
	--ink: var(--wp--preset--color--ink);
	--ink-deep: var(--wp--preset--color--ink-deep);
	--surface: var(--wp--preset--color--surface);
	--paper: var(--wp--preset--color--paper);
	--white: var(--wp--preset--color--white);
	--muted: var(--wp--preset--color--muted);
	--line: var(--wp--preset--color--line);
	--accent: var(--wp--preset--color--accent);
	--accent-ink: var(--wp--preset--color--accent-ink);
	--muted-dark: var(--wp--custom--color--muted-on-dark);
	--line-dark: var(--wp--custom--color--line-on-dark);
	--field: var(--wp--custom--color--field);
	--error: var(--wp--custom--color--error);
	--error-bg: var(--wp--custom--color--error-bg);
	--error-line: var(--wp--custom--color--error-line);
	--display: var(--wp--preset--font-family--display);
	--body: var(--wp--preset--font-family--body);
	--r-sm: var(--wp--custom--radius--sm);
	--r-md: var(--wp--custom--radius--md);
	--r-lg: var(--wp--custom--radius--lg);
	--pill: var(--wp--custom--radius--pill);
	--ease: var(--wp--custom--ease--out);
	--fast: var(--wp--custom--duration--fast);
	--base: var(--wp--custom--duration--base);
	--reveal: var(--wp--custom--duration--reveal);
	--shadow-card: var(--wp--preset--shadow--card);
	--shadow-lift: var(--wp--preset--shadow--lift);
	--shadow-dock: var(--wp--preset--shadow--dock);
	--section: var(--wp--preset--spacing--80);
	--gutter: clamp(1rem, 4vw, 2rem);
	--header-h: var(--wp--custom--header--height);
	--header-h-docked: var(--wp--custom--header--height-docked);
	--wide: var(--wp--style--global--wide-size, 77.5rem);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body { margin: 0; background: var(--surface); color: var(--ink); font-family: var(--body); -webkit-font-smoothing: antialiased; }
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
.sfs-icon { flex: none; display: inline-block; vertical-align: middle; }

/* ---------- Focus ---------- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--accent-ink); outline-offset: 2px; border-radius: 4px; }
.sfs-dark :where(a, button, input, select, textarea, summary):focus-visible,
.sfs-topbar :focus-visible, .sfs-footer :focus-visible, .sfs-footcta :focus-visible, .sfs-trust :focus-visible, .sfs-actionbar :focus-visible { outline-color: var(--accent); }

/* ---------- Utilities ---------- */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.sfs-skip { position: absolute; left: 1rem; top: -100px; z-index: 1000; background: var(--ink); color: var(--surface); padding: 0.75rem 1rem; border-radius: var(--r-sm); font-weight: 700; }
.sfs-skip:focus { top: 1rem; }
.sfs-wrap { width: 100%; max-width: calc(var(--wide) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.sfs-main { display: block; }
.sfs-section { padding-block: var(--section); }
.sfs-dark { background: var(--ink); color: var(--surface); }
.sfs-dark a:not(.sfs-btn) { color: var(--surface); }
.sfs-js-only { display: none !important; }
.js .sfs-js-only { display: revert !important; }
.js .sfs-stepper__btn.sfs-js-only { display: inline-flex !important; }
.sfs-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Type helpers ---------- */
.sfs-eyebrow { margin: 0 0 0.9rem; font-family: var(--body); font-size: var(--wp--preset--font-size--eyebrow); font-weight: 800; letter-spacing: var(--wp--custom--tracking--eyebrow); text-transform: uppercase; color: var(--accent-ink); }
.sfs-dark .sfs-eyebrow, .sfs-eyebrow--accent { color: var(--accent); }
.sfs-head { margin-bottom: clamp(2rem, 4vw, 3.25rem); }
.sfs-head__title { margin: 0; font-family: var(--display); font-weight: 700; font-size: var(--wp--preset--font-size--h-2); line-height: 1.1; letter-spacing: var(--wp--custom--tracking--heading); max-width: 20ch; text-wrap: balance; }
.sfs-lede { margin: 1.1rem 0 0; font-size: var(--wp--preset--font-size--lede); line-height: 1.55; color: var(--muted); max-width: 40ch; text-wrap: pretty; }
.sfs-dark .sfs-lede { color: var(--muted-dark); }
.sfs-lede a[data-sfs-call] { font-weight: 700; color: var(--ink); text-underline-offset: 3px; }
.sfs-rule { display: block; width: 72px; height: 4px; margin: 1.5rem 0; background: var(--accent); border-radius: 2px; }
.sfs-byline { margin: 1rem 0 0; font-size: var(--wp--preset--font-size--small); color: var(--muted); }
.sfs-byline a { color: var(--ink); font-weight: 700; }
.sfs-textlink { display: inline-flex; align-items: center; gap: 0.4rem; min-height: 44px; padding: 0.5rem 0; background: none; border: 0; cursor: pointer; font: inherit; font-weight: 700; color: inherit; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; text-decoration-color: var(--accent); }
.sfs-textlink .sfs-icon { transition: transform var(--fast) var(--ease); }
.sfs-textlink:hover .sfs-icon { transform: translateX(3px); }

/* ---------- Buttons ---------- */
.sfs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; min-height: 48px; padding: 0.8rem 1.4rem; border-radius: var(--pill); border: 2px solid transparent; font: inherit; font-size: 1rem; font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background-color var(--fast) var(--ease), color var(--fast) var(--ease), border-color var(--fast) var(--ease); }
.sfs-btn .sfs-icon { transition: transform var(--fast) var(--ease); }
.sfs-btn:hover .sfs-icon:last-child { transform: translateX(3px); }
.sfs-btn--primary { background: var(--ink); color: var(--surface); }
.sfs-btn--primary .sfs-icon { color: var(--accent); }
.sfs-btn--primary:hover { background: var(--ink-deep); color: var(--white); }
.sfs-btn--accent { background: var(--accent); color: var(--ink-deep); }
.sfs-btn--accent:hover { background: color-mix(in srgb, var(--accent) 85%, var(--white)); color: var(--ink-deep); }
.sfs-dark .sfs-btn--accent, .sfs-dark .sfs-btn--accent:hover { color: var(--ink-deep); }
.sfs-btn--ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
.sfs-btn--ghost:hover { background: var(--ink); color: var(--surface); }
.sfs-btn--ghost-light { background: transparent; color: var(--surface); border-color: var(--surface); }
.sfs-btn--ghost-light:hover { background: var(--surface); color: var(--ink); }
.sfs-actions { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; align-items: center; margin-top: 1.75rem; }
.wp-element-button, .wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; }
.is-style-outline > .wp-block-button__link { background: transparent; color: var(--ink); border: 2px solid var(--ink); }

/* ---------- Top bar + header (dock mechanics) ---------- */
.sfs-topbar { background: var(--ink-deep); color: var(--muted-dark); font-size: 0.875rem; }
.sfs-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 40px; }
.sfs-topbar__text { margin: 0; }
.sfs-topbar__tel { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 40px; color: var(--surface); text-decoration: none; }
.sfs-topbar__tel .sfs-icon { color: var(--accent); }
.sfs-topbar__tel strong { color: var(--white); }
.sfs-site-header { display: contents; }
/* Sticky below the admin bar; main.js toggles .is-docked once the page scrolls past the top bar. */
.sfs-header { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 60; background: var(--surface); border-bottom: 1px solid var(--line); transition: box-shadow var(--fast) var(--ease), background-color var(--fast) var(--ease); }
.sfs-header.is-docked { background: var(--paper); box-shadow: var(--shadow-dock); }
.sfs-header__bar { display: flex; align-items: center; gap: 1.5rem; min-height: var(--header-h); }
.sfs-header.is-docked .sfs-header__bar { min-height: var(--header-h-docked); }
.sfs-logo { flex: none; display: block; color: inherit; text-decoration: none; }
.sfs-logo img { height: 56px; width: auto; }
.sfs-header.is-docked .sfs-logo img { height: 44px; }
.sfs-logo__text { font-family: var(--display); font-weight: 800; font-size: 1.25rem; letter-spacing: var(--wp--custom--tracking--heading); }
.sfs-nav { flex: 1; }
.sfs-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; justify-content: center; gap: 0.25rem; }
.sfs-menu__item { position: relative; display: flex; align-items: center; }
.sfs-menu__link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 0.55rem; white-space: nowrap; color: var(--ink); font-weight: 650; font-size: 0.9688rem; text-decoration: none; border-radius: var(--r-sm); }
.sfs-menu__link:hover, .sfs-menu__link[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 3px; text-underline-offset: 8px; }
.sfs-sub-toggle { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 44px; margin-left: -0.5rem; background: none; border: 0; color: var(--ink); cursor: pointer; border-radius: var(--r-sm); }
.sfs-sub-toggle .sfs-icon { transition: transform var(--fast) var(--ease); }
.sfs-sub-toggle[aria-expanded="true"] .sfs-icon { transform: rotate(180deg); }
.sfs-sub { position: absolute; top: 100%; left: -0.5rem; min-width: 300px; padding-top: 12px; visibility: hidden; opacity: 0; transform: translateY(6px); transition: opacity var(--fast) var(--ease), transform var(--fast) var(--ease), visibility 0s linear var(--fast); z-index: 70; }
.sfs-sub::before { content: ""; position: absolute; inset: -12px -16px auto; height: 24px; }
.sfs-sub__list { list-style: none; margin: 0; padding: 0.5rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md) var(--r-md) 0 0; box-shadow: var(--shadow-lift); }
.sfs-sub__list a { display: flex; align-items: center; gap: 0.75rem; padding: 0.7rem 0.75rem; border-radius: var(--r-sm); color: var(--ink); text-decoration: none; font-weight: 600; }
.sfs-sub__list a .sfs-icon { color: var(--accent-ink); }
.sfs-sub__list a:hover { background: var(--surface); }
.sfs-sub__all { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.85rem 1.25rem; background: var(--ink); color: var(--surface); border-radius: 0 0 var(--r-md) var(--r-md); text-decoration: none; font-weight: 700; font-size: 0.9375rem; box-shadow: var(--shadow-lift); }
.sfs-sub__all .sfs-icon { color: var(--accent); }
.has-sub:hover > .sfs-sub, .has-sub:focus-within > .sfs-sub, .has-sub.is-open > .sfs-sub { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
.sfs-nav__mobile-cta { display: none; }
.sfs-header__actions { display: flex; align-items: center; gap: 1rem; margin-left: auto; }
.sfs-header__tel { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; color: var(--ink); font-weight: 800; text-decoration: none; white-space: nowrap; }
.sfs-header__tel .sfs-icon { color: var(--accent-ink); }
.sfs-menu-toggle { display: none; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: var(--pill); border: 2px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; }
.sfs-menu-toggle__close { display: none; }
.sfs-menu-toggle[aria-expanded="true"] .sfs-menu-toggle__open { display: none; }
.sfs-menu-toggle[aria-expanded="true"] .sfs-menu-toggle__close { display: inline-flex; }

@media (max-width: 1359px) {
	.sfs-header__tel-num { display: none; }
	.sfs-header__tel { width: 48px; height: 48px; justify-content: center; border-radius: var(--pill); background: var(--ink); color: var(--surface); }
	.sfs-header__tel .sfs-icon { color: var(--accent); }
}
/* Keep this breakpoint in sync with the matchMedia query in main.js. */
@media (max-width: 1199px) {
	:root { --header-h: 76px; --header-h-docked: 64px; }
	.sfs-logo img { height: 48px; }
	.sfs-header.is-docked .sfs-logo img { height: 40px; }
	.sfs-menu-toggle { display: inline-flex; }
	.sfs-nav { position: fixed; inset: calc(var(--wp-admin--admin-bar--height, 0px) + var(--header-h)) 0 0; background: var(--paper); overflow-y: auto; padding: 1rem var(--gutter) 6rem; display: none; border-top: 1px solid var(--line); }
	.sfs-nav.is-open { display: block; }
	.sfs-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.sfs-menu__item { flex-wrap: wrap; border-bottom: 1px solid var(--line); }
	.sfs-menu__link { flex: 1; min-height: 56px; font-size: 1.125rem; padding: 0; }
	.sfs-sub-toggle { width: 56px; height: 56px; margin: 0; }
	.sfs-sub { position: static; display: none; min-width: 0; width: 100%; padding: 0 0 1rem; visibility: visible; opacity: 1; transform: none; }
	.sfs-sub::before { display: none; }
	.has-sub:hover > .sfs-sub, .has-sub:focus-within > .sfs-sub { display: none; }
	.has-sub.is-open > .sfs-sub { display: block; }
	.sfs-sub__list, .sfs-sub__all { box-shadow: none; }
	.sfs-nav__mobile-cta { display: grid; gap: 0.75rem; margin-top: 1.5rem; }
	body.sfs-nav-open { overflow: hidden; }
}
@media (max-width: 699px) {
	:root { --header-h: 68px; --header-h-docked: 60px; }
	.sfs-header__cta, .sfs-topbar__text { display: none; }
	.sfs-topbar__inner { justify-content: center; }
	.sfs-logo img { height: 40px; }
	.sfs-header.is-docked .sfs-logo img { height: 36px; }
}

/* ---------- Home hero ---------- */
.sfs-hero { padding-block: clamp(2.5rem, 6vw, 5rem) clamp(3rem, 7vw, 6rem); }
.sfs-hero__grid { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.sfs-hero__title { margin: 0; font-family: var(--display); font-weight: 800; font-size: var(--wp--preset--font-size--h-1); line-height: 1.04; letter-spacing: var(--wp--custom--tracking--heading); max-width: 16ch; text-wrap: balance; }
.sfs-ticks { list-style: none; margin: 1.75rem 0; padding: 0; display: grid; gap: 0.6rem; font-weight: 650; }
.sfs-ticks li { display: flex; gap: 0.6rem; align-items: flex-start; }
.sfs-ticks .sfs-icon { color: var(--accent-ink); margin-top: 2px; }
/* ---------- Trust strip ---------- */
.sfs-trust { background: var(--ink); color: var(--surface); }
.sfs-trust__list { list-style: none; margin-block: 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem 2rem; padding-block: 1.1rem; font-weight: 700; font-size: 0.9688rem; }
.sfs-trust__list li { display: flex; align-items: center; gap: 0.55rem; }
.sfs-trust__list .sfs-icon { color: var(--accent); }
@media (max-width: 1199px) { .sfs-trust__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .sfs-trust__list { grid-template-columns: 1fr; } }

/* ---------- Cards ---------- */
.sfs-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 1.25rem; }
.sfs-card { position: relative; display: flex; flex-direction: column; gap: 0.75rem; padding: 1.75rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md); transition: transform var(--fast) var(--ease), box-shadow var(--fast) var(--ease); }
.sfs-card:hover, .sfs-card:focus-within { transform: translateY(-3px); box-shadow: var(--shadow-card); }
.sfs-card__num { position: absolute; top: 1.25rem; right: 1.5rem; font-weight: 800; font-size: 1.5rem; line-height: 1; color: var(--muted); }
.sfs-card__icon { display: inline-flex; width: 52px; height: 52px; align-items: center; justify-content: center; border-radius: var(--r-md); background: var(--ink); color: var(--accent); }
.sfs-card__title { margin: 0.25rem 0 0; font-family: var(--body); font-size: 1.25rem; font-weight: 800; line-height: 1.3; letter-spacing: 0; }
.sfs-card__link { color: inherit; text-decoration: none; }
.sfs-card__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.sfs-card__text { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.55; }
.sfs-card__more { margin-top: auto; padding-top: 0.5rem; display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 800; font-size: 0.9375rem; color: var(--accent-ink); }
.sfs-card__more .sfs-icon { transition: transform var(--fast) var(--ease); }
.sfs-card:hover .sfs-card__more .sfs-icon { transform: translateX(3px); }
.sfs-card--dark { background: var(--ink); border-color: var(--ink); color: var(--surface); }
.sfs-card--dark .sfs-card__icon { background: var(--accent); color: var(--ink); }
.sfs-card--dark .sfs-card__text { color: var(--muted-dark); }
.sfs-card--dark .sfs-card__more { color: var(--accent); }

/* ---------- Process ---------- */
.sfs-process { background: var(--paper); border-block: 1px solid var(--line); }
.sfs-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 2rem 1.75rem; }
.sfs-step { border-top: 2px solid var(--ink); padding-top: 1.25rem; }
.sfs-step__num { display: block; font-weight: 800; font-size: 2rem; line-height: 1; margin-bottom: 0.75rem; }
.sfs-step__title { margin: 0 0 0.5rem; font-family: var(--body); font-size: 1.1875rem; font-weight: 800; letter-spacing: 0; }
.sfs-step__text { margin: 0; color: var(--muted); line-height: 1.6; }

/* ---------- About band ---------- */
.sfs-about__grid { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
@media (min-width: 900px) { .sfs-about__grid:not(.sfs-about__grid--solo) { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr); } }
.sfs-about__media { margin: 0; }
.sfs-about__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-sm); }
.sfs-about__media--portrait { max-width: 460px; justify-self: center; width: 100%; }
.sfs-about__media--portrait img { aspect-ratio: 4 / 5; object-position: 50% 20%; }
.sfs-about__caption { display: grid; gap: 0.15rem; margin-top: 0.9rem;  font-size: 0.9375rem; color: var(--muted); }
.sfs-about__caption strong { color: var(--ink); font-size: 1.0625rem; }
.sfs-about__caption a { color: inherit; text-underline-offset: 3px; }
.sfs-about__copy p:not(.sfs-eyebrow) { font-size: 1.0625rem; line-height: 1.7; max-width: 58ch; }
.sfs-about__copy .sfs-head__title { margin-bottom: 1.25rem; }

/* ---------- Photo strip ---------- */
.sfs-strip { margin: 0; line-height: 0; background: var(--ink); }
.sfs-strip img { width: 100%; height: clamp(220px, 34vw, 560px); object-fit: cover; }

/* ---------- Areas band ---------- */
.sfs-areas__grid { display: grid; gap: clamp(2rem, 5vw, 4rem); }
@media (min-width: 960px) { .sfs-areas__grid { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: start; } }
.sfs-areas__media { margin: 0; }
.sfs-areas__media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--r-sm); }
.sfs-arealist { list-style: none; margin: 0; padding: 0; }
.sfs-arealist li { border-top: 1px solid var(--line-dark); }
.sfs-arealist li:last-child { border-bottom: 1px solid var(--line-dark); }
.sfs-arealist a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.25rem 1rem; padding: 1.35rem 0.25rem; text-decoration: none; color: var(--surface); }
.sfs-arealist__name { font-weight: 800; font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.625rem); line-height: 1.2; }
.sfs-arealist__text { grid-column: 1; color: var(--muted-dark); font-size: 0.9688rem; line-height: 1.5; }
.sfs-arealist__arrow { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--accent); transition: transform var(--fast) var(--ease); }
.sfs-arealist a:hover .sfs-arealist__arrow { transform: translateX(4px); }
.sfs-arealist a:hover .sfs-arealist__name { text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: 6px; }

/* ---------- Guides ---------- */
.sfs-split-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.sfs-split-head .sfs-head { margin-bottom: 0; }
.sfs-guidecards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 1.25rem; }
.sfs-guidecard { position: relative; display: flex; flex-direction: column; gap: 0.6rem; padding: 1.75rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md); transition: box-shadow var(--fast) var(--ease), transform var(--fast) var(--ease); }
.sfs-guidecard:hover, .sfs-guidecard:focus-within { box-shadow: var(--shadow-card); transform: translateY(-3px); }
.sfs-guidecard__title { margin: 0; font-size: 1.3125rem; line-height: 1.25; }
.sfs-guidecard p { margin: 0; color: var(--muted); }

/* ---------- Quote band ---------- */
.sfs-band { background: var(--paper); border-top: 1px solid var(--line); }
.sfs-band__grid { display: grid; gap: clamp(2rem, 5vw, 4rem); }
@media (min-width: 960px) { .sfs-band__grid { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); align-items: start; } }
.sfs-band__alt { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; gap: 0.9rem; }
.sfs-band__alt li { display: flex; gap: 0.7rem; align-items: flex-start; }
.sfs-band__alt .sfs-icon { color: var(--accent-ink); margin-top: 3px; }
.sfs-band__alt a { font-weight: 800; }
.sfs-band__form { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); padding: clamp(1.25rem, 3vw, 2rem); box-shadow: var(--shadow-card); }

/* ---------- Forms ---------- */
.sfs-form { display: grid; gap: 1.1rem; }
.sfs-form__grid { display: grid; gap: 1.1rem; }
@media (min-width: 640px) { .sfs-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sfs-field { display: grid; gap: 0.4rem; }
.sfs-field__label { font-weight: 700; font-size: 0.9375rem; }
.sfs-req { color: var(--accent-ink); }
.sfs-opt { font-weight: 500; color: var(--muted); font-size: 0.875rem; }
.sfs-field input:not([type="checkbox"]), .sfs-field select, .sfs-field textarea, .sfs-search input { width: 100%; min-height: 48px; padding: 0.7rem 0.9rem; font: inherit; font-size: 1rem; color: var(--ink); background: var(--white); border: 1px solid var(--field); border-radius: var(--r-sm); transition: border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease); }
.sfs-field textarea { min-height: 96px; resize: vertical; }
.sfs-field input:focus, .sfs-field select:focus, .sfs-field textarea:focus, .sfs-search input:focus { border-color: var(--ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent); outline: none; }
.sfs-field input:focus-visible, .sfs-field select:focus-visible, .sfs-field textarea:focus-visible { outline: 2px solid var(--ink); outline-offset: 1px; }
.sfs-field__hint { font-size: 0.875rem; color: var(--muted); }
.sfs-field--check { display: flex; align-items: center; gap: 0.65rem; min-height: 44px; }
.sfs-field--check input { width: 22px; height: 22px; accent-color: var(--ink); flex: none; margin: 0; }
.sfs-field--check label { font-weight: 600; cursor: pointer; }
.sfs-form__actions { display: grid; gap: 0.75rem; justify-items: start; }
.sfs-form__fine { margin: 0; font-size: 0.875rem; color: var(--muted); }
.sfs-notice { padding: 0.9rem 1rem; border-radius: var(--r-sm); font-weight: 600; }
.sfs-notice p { margin: 0; }
.sfs-notice--error { background: var(--error-bg); color: var(--error); border: 1px solid var(--error-line); }
.sfs-notice--error a { color: var(--error); }
.sfs-panel { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); padding: clamp(1.25rem, 3vw, 2rem); box-shadow: var(--shadow-card); }

/* ---------- Page hero ---------- */
.sfs-pagehero { padding-block: clamp(2.25rem, 5vw, 4rem) clamp(2rem, 4vw, 3.25rem); border-bottom: 1px solid var(--line); }
.sfs-pagehero__grid { display: grid; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
@media (min-width: 960px) { .sfs-pagehero--media .sfs-pagehero__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); } }
.sfs-pagehero__title { margin: 0; font-family: var(--display); font-weight: 800; font-size: var(--wp--preset--font-size--h-1); line-height: 1.06; letter-spacing: var(--wp--custom--tracking--heading); max-width: 20ch; text-wrap: balance; }
.sfs-pagehero__media { margin: 0; }
.sfs-pagehero__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-md); box-shadow: var(--shadow-card); }
.sfs-pagehero__media img.sfs-pagehero__natural { aspect-ratio: auto; width: auto; height: auto; max-width: 100%; max-height: 460px; margin-inline: auto; }
.sfs-pagehero__caption { display: grid; gap: 0.1rem; width: fit-content; margin: 0.85rem auto 0;  font-size: 0.9375rem; color: var(--muted); }
.sfs-pagehero__caption strong { color: var(--ink); font-size: 1.0625rem; }
@media (max-width: 959px) {
	.sfs-pagehero__media img.sfs-pagehero__natural { max-height: 380px; }
	.sfs-pagehero__media img:not(.sfs-pagehero__natural) { aspect-ratio: 16 / 9; }
	.sfs-pagehero--calc .sfs-pagehero__media { display: none; }
}
.sfs-crumbs { margin: 0 0 1.5rem; font-size: 0.875rem; color: var(--muted); display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }
.sfs-crumbs a { color: var(--ink); }
.sfs-404 { border-bottom: 0; padding-bottom: var(--section); }
.sfs-404 .search-form { margin-top: 2rem; display: flex; gap: 0.5rem; max-width: 520px; }

/* ---------- Prose (page content) ---------- */
.sfs-prose { padding-block: clamp(2.5rem, 5vw, 4rem) 0; }
.sfs-prose .wp-block-post-content > *:last-child:not(.alignfull) { margin-bottom: var(--section); }
.sfs-prose h2 { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.4rem); margin-top: 2.75rem; margin-bottom: 0.9rem; text-wrap: balance; }
.sfs-prose h3 { margin-top: 2rem; margin-bottom: 0.5rem; }
.sfs-prose p, .sfs-prose li { line-height: 1.7; }
.sfs-prose > .wp-block-post-content > p:first-child { font-size: var(--wp--preset--font-size--lede); line-height: 1.6; }
.sfs-prose ul, .sfs-prose ol { padding-left: 1.25rem; }
.sfs-prose li + li { margin-top: 0.35rem; }
.sfs-prose li::marker { color: var(--accent-ink); }
.sfs-prose a:not(.sfs-btn):not(.wp-block-button__link):not(.sfs-card__link) { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.sfs-prose .is-style-ticks { list-style: none; padding-left: 0; }
.sfs-prose .is-style-ticks li { position: relative; padding-left: 1.75rem; }
.sfs-prose .is-style-ticks li::before { content: ""; position: absolute; left: 0; top: 0.45em; width: 14px; height: 8px; border-left: 3px solid var(--accent-ink); border-bottom: 3px solid var(--accent-ink); transform: rotate(-45deg); }
@media (min-width: 640px) { .sfs-prose .is-style-columns { columns: 2; column-gap: 2.5rem; } .sfs-prose .is-style-columns li { break-inside: avoid; } }
.is-style-panel { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md); padding: clamp(1.25rem, 3vw, 2rem); }
.sfs-home-content { padding-block: var(--section) 0; }
.sfs-home-content > .wp-block-post-content > *:last-child { margin-bottom: 0; }

/* FAQ (Yoast FAQ block and core details) */
.schema-faq { border-top: 1px solid var(--line); margin-top: 1.5rem; }
.schema-faq-section { padding: 1.35rem 0; border-bottom: 1px solid var(--line); }
.schema-faq-question { display: block; font-weight: 700; font-size: 1.25rem; line-height: 1.35; margin-bottom: 0.5rem; }
.schema-faq-answer { margin: 0; color: var(--muted); line-height: 1.7; }
.wp-block-details summary { font-weight: 700; cursor: pointer; min-height: 44px; display: flex; align-items: center; }

/* ---------- Expert profile, guide box, reviewed badge (E-E-A-T) ---------- */
.sfs-profile { display: grid; gap: 1.5rem; margin-block: 0 2.5rem; }
@media (min-width: 900px) { .sfs-profile { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: stretch; } }
.sfs-profile__photo { margin: 0; }
.sfs-profile__photo img { width: 100%; height: 100%; min-height: 360px; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 15%; border-radius: var(--r-lg); }
.sfs-profile__card { border-radius: var(--r-lg); padding: clamp(1.5rem, 4vw, 2.5rem); display: grid; gap: 1rem; align-content: center; }
.sfs-profile__name { margin: 0; font-family: var(--display); font-weight: 800; font-size: clamp(2rem, 1.6rem + 1.4vw, 2.75rem); line-height: 1.05; color: var(--white); }
.sfs-profile__summary { margin: 0; color: var(--muted-dark); font-size: 1.0625rem; line-height: 1.6; max-width: 44ch; }
.sfs-profile__facts { margin: 0.5rem 0 0.75rem; display: grid; border-top: 1px solid var(--line-dark); }
.sfs-profile__facts div { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 1rem; padding: 0.75rem 0; border-bottom: 1px solid var(--line-dark); }
.sfs-profile__facts dt { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); padding-top: 0.2rem; }
.sfs-profile__facts dd { margin: 0; color: var(--surface); font-weight: 600; }
.sfs-profile .sfs-btn { justify-self: start; }
.sfs-expert { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.25rem 1.5rem; align-items: start; margin-block: 3rem var(--section); padding: clamp(1.25rem, 3vw, 2rem); background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md); }
.sfs-expert__photo img { width: 96px; height: 96px; border-radius: var(--pill); object-fit: cover; object-position: 50% 20%; }
.sfs-expert__title { margin: 0 0 0.5rem; font-size: 1.5rem; line-height: 1.2; }
.sfs-expert__title a { color: inherit; text-underline-offset: 5px; }
.sfs-expert__title span { display: block; margin-top: 0.25rem; font-family: var(--body); font-size: 0.9375rem; font-weight: 600; color: var(--muted); }
.sfs-expert p:not(.sfs-eyebrow) { margin: 0; color: var(--muted); line-height: 1.65; max-width: 64ch; }
.sfs-expert .sfs-actions { margin-top: 0.75rem; }
@media (max-width: 559px) { .sfs-expert { grid-template-columns: 1fr; } }
.sfs-reviewed { display: inline-flex; align-items: center; gap: 0.9rem; margin-top: 1rem; padding: 0.7rem 1rem 0.7rem 0.7rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md); max-width: 100%; }
.sfs-reviewed__photo { width: 56px; height: 56px; flex: none; border-radius: var(--pill); object-fit: cover; object-position: 50% 20%; border: 2px solid var(--accent); }
.sfs-reviewed__body { display: grid; gap: 0.3rem; min-width: 0; }
.sfs-reviewed__who { margin: 0; font-size: 0.9375rem; color: var(--muted); }
.sfs-reviewed__who a, .sfs-reviewed__who strong { color: var(--ink); font-weight: 800; text-underline-offset: 3px; }
.sfs-reviewed__date { white-space: nowrap; }
.sfs-reviewed__creds { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.2rem 0.9rem; font-size: 0.8125rem; font-weight: 600; color: var(--ink); }
.sfs-reviewed__creds li { display: inline-flex; align-items: center; gap: 0.3rem; }
.sfs-reviewed__creds .sfs-icon { color: var(--accent-ink); }

/* ---------- Related ---------- */
.sfs-related { padding-block: clamp(2.5rem, 5vw, 3.5rem); background: var(--paper); border-top: 1px solid var(--line); }
.sfs-related__title { margin: 0 0 1.25rem; font-family: var(--body); font-size: var(--wp--preset--font-size--eyebrow); font-weight: 800; letter-spacing: var(--wp--custom--tracking--eyebrow); text-transform: uppercase; color: var(--accent-ink); }
.sfs-pills { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.sfs-pills a { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 48px; padding: 0.6rem 1.1rem; border: 2px solid var(--ink); border-radius: var(--pill); color: var(--ink); text-decoration: none; font-weight: 700; transition: background-color var(--fast) var(--ease), color var(--fast) var(--ease); }
.sfs-pills a:hover { background: var(--ink); color: var(--surface); }
.sfs-pills a:hover .sfs-icon { color: var(--accent); }

/* ---------- Archive ---------- */
.sfs-archive .nav-links { display: flex; gap: 0.5rem; margin-top: 2rem; }
.sfs-archive .page-numbers { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: var(--r-sm); text-decoration: none; color: var(--ink); padding: 0 0.75rem; }
.sfs-archive .page-numbers.current { background: var(--ink); color: var(--surface); }

/* ---------- Contact ---------- */
.sfs-contact { display: grid; gap: 1.5rem; margin-block: 2rem; }
@media (min-width: 900px) { .sfs-contact { grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr); align-items: start; } }
.sfs-contact__info { border-radius: var(--r-lg); padding: clamp(1.25rem, 3vw, 2rem); }
.sfs-contact__title { margin: 0 0 1.25rem; font-size: 1.5rem; }
.sfs-contact__photo { margin: 0 0 1.5rem; }
.sfs-contact__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 15%; border-radius: var(--r-md); }
.sfs-contact__photo figcaption { display: grid; gap: 0.1rem; margin-top: 0.75rem;  font-size: 0.9375rem; color: var(--muted-dark); }
.sfs-contact__photo figcaption strong { color: var(--surface); font-size: 1.0625rem; }
.sfs-contact__photo figcaption a { color: inherit; text-underline-offset: 3px; }
.sfs-contact__call { width: 100%; margin: 0 0 1.25rem; }
.sfs-contact__more { margin-top: 0; }

/* ---------- Footer CTA + footer grid ---------- */
.sfs-site-footer { display: contents; }
.sfs-footcta { background: var(--ink-deep); color: var(--surface); }
.sfs-footcta__inner { display: grid; gap: 1.5rem 3rem; padding-block: clamp(2.75rem, 6vw, 4.5rem); align-items: center; }
@media (min-width: 960px) { .sfs-footcta__inner { grid-template-columns: minmax(0, 1.3fr) auto; } }
.sfs-footcta__title { margin: 0; font-family: var(--display); font-weight: 800; font-size: clamp(1.75rem, 1.35rem + 1.6vw, 2.75rem); line-height: 1.12; letter-spacing: var(--wp--custom--tracking--heading); max-width: 22ch; text-wrap: balance; }
.sfs-footcta__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.sfs-footer { background: var(--ink); color: var(--muted-dark); font-size: 0.9688rem; }
.sfs-footer__grid { display: grid; gap: 2.5rem 2rem; padding-block: clamp(3rem, 6vw, 4.5rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
@media (min-width: 1100px) { .sfs-footer__grid { grid-template-columns: 1.6fr repeat(4, minmax(0, 1fr)); } }
.sfs-footer__brand { grid-column: 1 / -1; }
@media (min-width: 1100px) { .sfs-footer__brand { grid-column: auto; padding-right: 1.5rem; } }
.sfs-footer__logo { color: var(--surface); text-decoration: none; }
.sfs-footer__logo img { height: 56px; width: auto; }
.sfs-footer__blurb { margin: 1.25rem 0; max-width: 40ch; line-height: 1.6; }
.sfs-footer__contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
.sfs-footer__contact li { display: flex; gap: 0.65rem; align-items: flex-start; color: var(--surface); }
.sfs-footer__contact .sfs-icon { color: var(--accent); margin-top: 3px; }
.sfs-footer__contact a { color: var(--surface); font-weight: 700; text-decoration: none; }
.sfs-footer__contact a:hover { text-decoration: underline; text-decoration-color: var(--accent); }
.sfs-contact__info .sfs-footer__contact a { font-size: 1.125rem; }
.sfs-footer__social { list-style: none; margin: 1.5rem 0 0; padding: 0; display: flex; gap: 0.5rem; }
.sfs-footer__social a { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border: 1px solid var(--line-dark); border-radius: var(--pill); color: var(--surface); }
.sfs-footer__social a:hover { background: var(--accent); color: var(--ink); border-color: var(--accent); }
.sfs-footer__heading { margin: 0 0 1rem; font-family: var(--body); font-size: var(--wp--preset--font-size--eyebrow); font-weight: 800; letter-spacing: var(--wp--custom--tracking--eyebrow); text-transform: uppercase; color: var(--accent); }
.sfs-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.15rem; }
.sfs-footer__col a { display: inline-flex; align-items: center; min-height: 36px; color: var(--surface); text-decoration: none; line-height: 1.35; }
.sfs-footer__col a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 4px; }
.sfs-footer__bottom { border-top: 1px solid var(--line-dark); font-size: 0.875rem; }
.sfs-footer__bottom-inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.5rem 1.5rem; padding-block: 1.1rem; }
.sfs-footer__bottom p { margin: 0; }
.sfs-totop { display: inline-flex; align-items: center; gap: 0.4rem; min-height: 44px; color: var(--surface); font-weight: 700; text-decoration: none; }
.sfs-totop .sfs-icon { color: var(--accent); }

/* ---------- Phone-width action bar ---------- */
.sfs-actionbar { display: none; }
@media (max-width: 699px) {
	.sfs-actionbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); background: var(--ink-deep); border-top: 1px solid var(--line-dark); padding-bottom: env(safe-area-inset-bottom); }
	.sfs-actionbar a { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 60px; font-weight: 800; text-decoration: none; color: var(--surface); }
	.sfs-actionbar a .sfs-icon { color: var(--accent); }
	.sfs-actionbar__quote { background: var(--accent); color: var(--ink-deep) !important; }
	.sfs-actionbar__quote .sfs-icon { color: var(--ink-deep) !important; }
	.sfs-footer { padding-bottom: 60px; }
	/* Bizetools Quick Contact Widget: sit above the action bar. */
	body .bqcw-widget { bottom: calc(60px + 12px + env(safe-area-inset-bottom)); }
}

/* ---------- Scroll reveal (motion.js). Hidden state only under .js, so no-JS shows everything. ---------- */
.js [data-reveal="up"], .js [data-reveal="fade"], .js [data-reveal="scale"], .js [data-reveal="stagger"] > * { opacity: 0; transition: opacity var(--reveal) var(--ease), transform var(--reveal) var(--ease); }
.js [data-reveal="up"], .js [data-reveal="stagger"] > * { transform: translateY(16px); }
.js [data-reveal="scale"] { transform: scale(0.97); }
.js [data-reveal="stagger"] > * { transition-delay: calc(var(--i, 0) * 70ms); }
.js [data-reveal].is-in, .js [data-reveal="stagger"].is-in > * { opacity: 1; transform: none; }

/* ---------- Reduced motion: everything instant ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
	.js [data-reveal], .js [data-reveal="stagger"] > * { opacity: 1 !important; transform: none !important; }
}

/* ---------- Print ---------- */
@media print {
	.sfs-topbar, .sfs-header, .sfs-footcta, .sfs-actionbar, .sfs-band { display: none !important; }
}

/* ---------- Client look: add the brand layer for each build below this line ---------- */

/* Saviour homepage. */
:root { --saviour-ink:#102f33; --saviour-teal:#075c60; --saviour-gold:#e5bc23; --saviour-soft:#e9f1ee; --saviour-white:#fff; }
.saviour-shell { width:min(100% - 64px, 1320px); margin-inline:auto; }
.saviour-skip { position:absolute; z-index:100; top:-100px; left:16px; padding:12px 18px; background:#fff; color:#102f33; }
.saviour-skip:focus { top:12px; }
.saviour-header { background:#fff; color:var(--saviour-ink); }
.saviour-header__inner { min-height:102px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.saviour-brand { display:flex; align-items:center; gap:10px; color:var(--saviour-ink); text-decoration:none; font-size:24px; font-weight:800; letter-spacing:-.03em; line-height:.98; }
.saviour-brand img { display:block; flex:none; }
.saviour-brand small { display:block; margin-top:5px; font-size:12px; font-weight:600; letter-spacing:.02em; }
.saviour-nav { display:flex; align-items:center; gap:34px; }
.saviour-nav a { color:var(--saviour-ink); font-size:15px; font-weight:650; text-decoration:none; }
.saviour-nav a:not(.saviour-nav__action):hover { text-decoration:underline; text-underline-offset:6px; }
.saviour-nav .saviour-nav__action { padding:14px 21px; background:var(--saviour-ink); color:#fff; }
.saviour-main { overflow:hidden; color:var(--saviour-ink); }
.saviour-main h1,.saviour-main h2,.saviour-main h3 { color:inherit; letter-spacing:-.035em; }
.saviour-hero { position:relative; overflow:hidden; background:var(--saviour-ink); color:#fff; }
.saviour-hero::after { content:''; position:absolute; width:clamp(180px,24vw,350px); top:0; bottom:0; right:0; background:var(--saviour-teal); border-left:clamp(22px,3vw,45px) solid var(--saviour-gold); pointer-events:none; }
.saviour-hero__inner { position:relative; z-index:1; padding-block:clamp(92px,11vw,165px) 60px; }
.saviour-hero__title { max-width:800px; margin:0; font-size:clamp(48px,6.5vw,92px); line-height:1.02; font-weight:750; text-wrap:balance; }
.saviour-hero__intro { max-width:570px; margin:30px 0 35px; font-size:clamp(19px,2vw,25px); line-height:1.5; }
.saviour-main .saviour-button .wp-block-button__link { border-radius:0; background:var(--saviour-gold); color:#102f33; padding:17px 25px; font-size:16px; font-weight:750; text-decoration:none; }
.saviour-main .saviour-button .wp-block-button__link:hover { background:#f4d752; }
.saviour-hero__note { margin:92px 0 0; font-size:15px; color:#d3e4df; }
.saviour-solutions { padding-block:clamp(78px,9vw,135px); background:#fff; }
.saviour-section-title { max-width:800px; margin:0; font-size:clamp(38px,4.4vw,64px); line-height:1.08; }
.saviour-section-intro { max-width:650px; margin:22px 0 58px; font-size:19px; line-height:1.6; }
.saviour-offerings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 64px; }
.saviour-offering { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 24px; padding:27px 0 30px; border-top:2px solid #cbd9d4; }
.saviour-offering h3 { margin:0; font-size:clamp(23px,2.2vw,30px); line-height:1.2; }
.saviour-offering p:not(.saviour-offering__link) { grid-column:1; margin:0; color:#365553; font-size:16px; line-height:1.55; }
.saviour-offering__link { grid-column:2; grid-row:1 / span 2; margin:0; align-self:center; }
.saviour-offering__link a { color:var(--saviour-teal); font-weight:700; text-decoration:none; font-size:15px; }
.saviour-offering__link a:hover { text-decoration:underline; text-underline-offset:4px; }
.saviour-offering__link span { padding-left:5px; }
.saviour-about { padding-block:clamp(75px,8vw,125px); background:var(--saviour-soft); }
.saviour-about__inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(35px,8vw,140px); align-items:start; }
.saviour-about h2,.saviour-contact h2 { margin:0; font-size:clamp(38px,4.5vw,64px); line-height:1.08; }
.saviour-about p { max-width:540px; margin:0 0 18px; font-size:20px; line-height:1.65; }
.saviour-contact { padding-block:clamp(80px,9vw,130px); background:var(--saviour-gold); }
.saviour-contact__inner { max-width:1320px; }
.saviour-contact h2 { max-width:800px; }
.saviour-contact p { margin:24px 0 30px; font-size:20px; }
.saviour-main .saviour-button--dark .wp-block-button__link { background:var(--saviour-ink); color:#fff; }
.saviour-main .saviour-button--dark .wp-block-button__link:hover { background:var(--saviour-teal); }
.saviour-footer { background:#09272b; color:#d8e7e1; padding-block:65px 25px; }
.saviour-footer__inner { display:flex; justify-content:space-between; gap:50px; padding-bottom:58px; }
.saviour-footer__name { margin:0 0 16px; color:#fff; font-size:28px; font-weight:800; line-height:1; }
.saviour-footer__name span { display:block; font-size:13px; font-weight:600; margin-top:7px; }
.saviour-footer p:not(.saviour-footer__name) { margin:0; }
.saviour-footer nav { display:flex; gap:28px; flex-wrap:wrap; }
.saviour-footer nav a { color:#fff; text-decoration:none; font-size:15px; }
.saviour-footer nav a:hover { text-decoration:underline; }
.saviour-footer__bottom { padding-top:22px; border-top:1px solid #526d6a; font-size:13px; }
.saviour-main a:focus-visible,.saviour-header a:focus-visible,.saviour-footer a:focus-visible { outline:3px solid #e5bc23; outline-offset:4px; }
@media (max-width:800px) { .saviour-shell { width:calc(100% - 40px); } .saviour-header__inner { min-height:90px; align-items:center; } .saviour-nav { gap:16px; } .saviour-nav a { font-size:13px; } .saviour-nav .saviour-nav__action { padding:11px 13px; } .saviour-brand { font-size:20px; } .saviour-brand img { width:48px; height:48px; } .saviour-hero::after { width:13%; border-left-width:14px; } .saviour-hero__title { max-width:80%; } .saviour-hero__intro { max-width:75%; } .saviour-offerings { grid-template-columns:1fr; } .saviour-about__inner { grid-template-columns:1fr; } }
@media (max-width:540px) { .saviour-header__inner { align-items:flex-start; padding-block:14px; flex-direction:column; gap:14px; } .saviour-nav { width:100%; justify-content:space-between; gap:10px; } .saviour-hero__inner { padding-block:76px 38px; } .saviour-hero__title { max-width:90%; font-size:clamp(40px,10.4vw,56px); } .saviour-hero__intro { max-width:85%; } .saviour-hero::after { width:8%; border-left-width:9px; } .saviour-hero__note { margin-top:70px; } .saviour-offering { grid-template-columns:1fr; gap:10px; } .saviour-offering__link { grid-column:1; grid-row:auto; } .saviour-footer__inner { flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { .saviour-main *, .saviour-header *, .saviour-footer * { scroll-behavior:auto; } }
.wp-site-blocks > * + *, .saviour-main > * + * { margin-block-start:0; }
.saviour-contact__email { font-size:16px !important; }
.saviour-contact__email a { color:inherit; font-weight:700; text-underline-offset:4px; }
.saviour-about__inner { align-items:center; }
.saviour-about__inner > .wp-block-group:first-child { max-width:570px; }
.saviour-about__inner h2 { margin:0 0 28px; }
.saviour-founder { margin:0; max-width:480px; justify-self:end; }
.saviour-founder img { display:block; width:100%; height:auto; aspect-ratio:1.1; object-fit:cover; object-position:center 22%; }
.saviour-about__inner > .wp-block-group:empty { display:none; }
@media (max-width:800px) { .saviour-founder { justify-self:start; width:min(100%,480px); } }
.saviour-page__header { background:var(--saviour-ink); color:#fff; padding-block:clamp(65px,8vw,110px); }
.saviour-page__header h1 { color:#fff; margin:0; font-size:clamp(44px,6vw,80px); letter-spacing:-.035em; line-height:1.05; }
.saviour-page__content { padding-block:clamp(65px,8vw,110px); max-width:960px; }
.saviour-page__content p { max-width:70ch; font-size:18px; line-height:1.7; }
.saviour-page__content .saviour-page__lede { color:var(--saviour-ink); font-size:clamp(22px,2.5vw,30px); line-height:1.45; }
.saviour-page__content h2 { margin:55px 0 16px; color:var(--saviour-ink); font-size:clamp(30px,3vw,42px); line-height:1.15; }
.saviour-page__content a { color:var(--saviour-teal); font-weight:700; text-underline-offset:4px; }
.saviour-page__content .saviour-founder { margin:35px 0; }

/* Corporate redesign: quiet type, real content and a photographic hero. */
@font-face { font-family:'Saviour Fira'; src:url('../fonts/FiraSans-Regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Saviour Fira'; src:url('../fonts/FiraSans-SemiBold.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Saviour Fira'; src:url('../fonts/FiraSans-Bold.woff2') format('woff2'); font-weight:700; font-style:normal; font-display:swap; }
:root { --saviour-ink:#15343e; --saviour-teal:#126367; --saviour-gold:#dfb629; --saviour-soft:#f1f5f3; }
.saviour-header,.saviour-main,.saviour-footer,.saviour-page { font-family:'Saviour Fira',Arial,sans-serif; }
.saviour-shell { width:min(100% - 80px, 1280px); }
.saviour-header { border-bottom:1px solid #e2e8e6; }
.saviour-header__inner { min-height:98px; }
.saviour-brand { font-family:'Saviour Fira',Arial,sans-serif; font-size:25px; font-weight:700; }
.saviour-brand small { font-weight:400; font-size:12px; letter-spacing:.02em; }
.saviour-nav a { font-size:16px; font-weight:600; }
.saviour-nav .saviour-nav__action { background:var(--saviour-teal); padding:15px 23px; }
.saviour-nav .saviour-nav__action:hover { background:var(--saviour-ink); }
.saviour-hero { background:#f4f7f5; color:var(--saviour-ink); }
.saviour-hero::after { top:0; right:0; bottom:0; width:50%; border:0; background: url('../img/home-hero.webp') center center / cover no-repeat; }
.saviour-hero__inner { min-height:570px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding-block:84px 65px; }
.saviour-hero__title { width:45%; max-width:570px; font-family:'Saviour Fira',Arial,sans-serif; font-size:clamp(46px,4.4vw,67px); font-weight:600; line-height:1.08; letter-spacing:-.025em !important; }
.saviour-hero__intro { width:43%; max-width:515px; margin:24px 0 30px; font-size:clamp(18px,1.5vw,21px); color:#3c5557; line-height:1.5; }
.saviour-main .saviour-button .wp-block-button__link { background:var(--saviour-teal); color:#fff; border-radius:3px; padding:17px 24px; font-weight:600; }
.saviour-main .saviour-button .wp-block-button__link:hover { background:var(--saviour-ink); }
.saviour-hero__note { margin:38px 0 0; color:#526966; font-size:15px; }
.saviour-lenders { background:#fff; border-bottom:1px solid #e5ebe8; }
.saviour-lenders__inner { padding-block:35px; display:grid; grid-template-columns:250px 1fr; gap:40px; align-items:center; }
.saviour-lenders__copy h2 { margin:0 0 5px; font-size:18px; line-height:1.25; color:var(--saviour-ink); font-weight:600; }
.saviour-lenders__copy p { margin:0; color:#5d7071; font-size:14px; line-height:1.4; }
.saviour-lenders__logos { display:flex; list-style:none; align-items:center; justify-content:space-between; gap:28px; margin:0; padding:0; }
.saviour-lenders__logos li { flex:0 1 150px; display:flex; justify-content:center; align-items:center; }
.saviour-lenders__logos img { display:block; width:auto; max-width:100%; height:auto; max-height:38px; object-fit:contain; }
.saviour-solutions { padding-block:clamp(80px,8vw,120px); }
.saviour-section-title,.saviour-about h2,.saviour-contact h2 { font-family:'Saviour Fira',Arial,sans-serif; font-weight:600; letter-spacing:-.025em; }
.saviour-section-title { max-width:680px; font-size:clamp(38px,4vw,57px); }
.saviour-section-intro { max-width:640px; margin:18px 0 52px; color:#4a6262; font-size:19px; }
.saviour-offering { border-top:1px solid #d5e0dc; padding-block:27px 32px; }
.saviour-offering h3 { font-family:'Saviour Fira',Arial,sans-serif; font-weight:600; font-size:26px; letter-spacing:-.015em; }
.saviour-offering p:not(.saviour-offering__link) { color:#536c69; }
.saviour-offering__link a { font-weight:600; }
.saviour-about { background:#f2f6f4; }
.saviour-about h2 { font-size:clamp(38px,4vw,56px); }
.saviour-about p { font-size:19px; color:#3b5553; }
.saviour-founder { max-width:460px; }
.saviour-founder img { aspect-ratio:1.14; }
.saviour-founder figcaption { display:grid; gap:4px; margin-top:16px; color:var(--saviour-ink); font-size:15px; line-height:1.4; }
.saviour-founder figcaption strong { font-size:17px; font-weight:600; }
.saviour-contact { background:#eaf2ee; }
.saviour-contact h2 { font-size:clamp(38px,4vw,56px); }
.saviour-main .saviour-button--dark .wp-block-button__link { background:var(--saviour-teal); }
.saviour-footer { background:#102e38; }
.saviour-footer__name { font-family:'Saviour Fira',Arial,sans-serif; font-weight:700; }
::selection { background:#d9bd54; color:#102e38; }
@media (max-width:900px) { .saviour-shell { width:calc(100% - 48px); } .saviour-hero__inner { min-height:480px; } .saviour-hero__title { width:46%; font-size:clamp(40px,5vw,54px); } .saviour-hero__intro { width:44%; } .saviour-lenders__inner { grid-template-columns:1fr; gap:24px; } }
@media (max-width:600px) { .saviour-shell { width:calc(100% - 40px); } .saviour-header__inner { min-height:0; } .saviour-hero { display:flex; flex-direction:column; } .saviour-hero::after { position:relative; display:block; width:100%; height:260px; min-height:260px; right:auto; top:auto; border:0; background-position:center; } .saviour-hero__inner { min-height:0; padding-block:64px 48px; } .saviour-hero__title { width:100%; max-width:100%; font-size:clamp(40px,10vw,50px); } .saviour-hero__intro { width:100%; max-width:100%; font-size:18px; } .saviour-hero__note { margin-top:28px; } .saviour-lenders__inner { padding-block:30px; } .saviour-lenders__logos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); justify-items:start; gap:22px 18px; } .saviour-lenders__logos li { max-width:110px; } .saviour-lenders__logos img { max-height:30px; } .saviour-offering { padding-block:24px; } }
.saviour-associations { background:#fff; border-top:1px solid #e5ebe8; }
.saviour-associations__inner { display:grid; grid-template-columns:minmax(220px, .8fr) minmax(0, 1.5fr); align-items:center; gap:clamp(40px,7vw,100px); padding-block:clamp(55px,6vw,80px); }
.saviour-associations h2 { max-width:320px; margin:0 0 12px; font-size:clamp(26px,2.2vw,32px); line-height:1.18; letter-spacing:-.025em; color:var(--saviour-ink); font-weight:600; }
.saviour-associations p { max-width:270px; margin:0; font-size:16px; line-height:1.5; color:#526966; }
.saviour-associations__marks { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(26px,4vw,58px); margin:0; padding:0; }
.saviour-associations__item { display:grid; grid-template-columns:90px minmax(0,1fr); align-items:center; gap:20px; padding-block:12px; }
.saviour-associations__marks img { display:block; width:90px; height:76px; object-fit:contain; }
.saviour-associations__item span { color:var(--saviour-ink); font-size:15px; font-weight:600; line-height:1.4; }
@media (max-width:900px) { .saviour-associations__inner { grid-template-columns:1fr; gap:26px; } .saviour-associations__intro p { max-width:none; } }
@media (max-width:600px) { .saviour-associations__marks { grid-template-columns:1fr; gap:0; } .saviour-associations__item { grid-template-columns:76px minmax(0,1fr); gap:20px; border-top:1px solid #e5ebe8; padding-block:18px; } .saviour-associations__marks img { width:76px; height:66px; } }
.saviour-offerings > .wp-block-group { margin-block:0; }

/* Contact page: direct channels and a clear enquiry pathway. */
.contact-page { font-family:'Saviour Fira',Arial,sans-serif; color:var(--saviour-ink); }
.contact-page__intro { background:#f1f5f3; }
.contact-page__intro-inner { padding-block:clamp(70px,8vw,112px) clamp(72px,8vw,110px); }
.contact-page__intro h1 { max-width:830px; margin:0; color:var(--saviour-ink); font-size:clamp(46px,6vw,78px); line-height:1.04; letter-spacing:-.035em; text-wrap:balance; }
.contact-page__intro p { max-width:650px; margin:26px 0 0; font-size:clamp(19px,2vw,23px); line-height:1.55; color:#405b60; }
.contact-page__body { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.1fr); gap:clamp(55px,10vw,145px); padding-block:clamp(70px,8vw,115px); align-items:start; }
.contact-page__body h2,.contact-page__explore h2 { margin:0; color:var(--saviour-ink); font-size:clamp(30px,3vw,42px); line-height:1.15; letter-spacing:-.025em; }
.contact-page__description,.contact-page__enquiry > p { margin:20px 0 0; font-size:18px; line-height:1.6; color:#405b60; }
.contact-page__method { border-top:1px solid #cddbd6; padding:23px 0; }
.contact-page__description + .contact-page__method { margin-top:38px; }
.contact-page__method h3 { margin:0 0 8px; font-size:15px; color:#526a6b; font-weight:600; }
.contact-page__method p { margin:0; font-size:20px; line-height:1.4; }
.contact-page__method a { color:var(--saviour-ink); font-weight:600; text-decoration:none; overflow-wrap:anywhere; }
.contact-page__method a:hover { text-decoration:underline; text-underline-offset:5px; }
.contact-page__enquiry { background:#f4f7f5; padding:clamp(28px,4vw,55px); }
.contact-page__enquiry .contact-page__sensitive { margin-top:16px; font-size:15px; line-height:1.55; }
.contact-page__enquiry .sfs-form { margin-top:30px; }
.contact-page__enquiry .sfs-field input,.contact-page__enquiry .sfs-field textarea { border-radius:0; border-color:#9dafaa; }
.contact-page__enquiry .sfs-btn,.contact-page__button { display:inline-flex; align-items:center; justify-content:center; min-height:52px; margin-top:28px; padding:14px 22px; border:0; border-radius:0; background:var(--saviour-teal); color:#fff; font:inherit; font-weight:600; text-decoration:none; cursor:pointer; }
.contact-page__enquiry .sfs-btn { margin-top:0; }
.contact-page__button:hover,.contact-page__enquiry .sfs-btn:hover { background:var(--saviour-ink); color:#fff; }
.contact-page__explore { background:#eaf2ee; }
.contact-page__explore-inner { display:flex; justify-content:space-between; gap:30px; align-items:center; padding-block:58px; }
.contact-page__explore p { margin:14px 0 0; color:#405b60; font-size:18px; }
.contact-page__explore-inner > p { margin:0; }
.contact-page__explore a { display:inline-block; padding:14px 0; color:var(--saviour-teal); font-weight:700; text-decoration:none; white-space:nowrap; }
.contact-page__explore a:hover { text-decoration:underline; text-underline-offset:5px; }
.contact-page a:focus-visible,.contact-page button:focus-visible { outline:3px solid #a47c00; outline-offset:4px; }
@media (max-width:800px) { .contact-page__body { grid-template-columns:1fr; gap:50px; } .contact-page__explore-inner { align-items:flex-start; flex-direction:column; gap:12px; } }

/* Expanded lender directory, using the original site's marks. */
.saviour-lenders__more { padding-bottom:26px; }
.saviour-lenders__more summary { width:fit-content; min-height:44px; display:flex; align-items:center; gap:10px; color:var(--saviour-teal); font-weight:600; cursor:pointer; list-style:none; }
.saviour-lenders__more summary::-webkit-details-marker { display:none; }
.saviour-lenders__more summary::after { content:'+'; font-size:23px; line-height:1; }
.saviour-lenders__more details[open] summary::after { content:'−'; }
.saviour-lenders__more summary:focus-visible { outline:3px solid #a47c00; outline-offset:4px; }
.saviour-lenders__directory { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); list-style:none; margin:22px 0 8px; padding:0; border-top:1px solid #dce7e2; }
.saviour-lenders__directory li { display:flex; justify-content:center; align-items:center; min-height:105px; padding:20px; border-bottom:1px solid #e5ebe8; }
.saviour-lenders__directory img { display:block; width:100%; height:65px; max-width:155px; object-fit:contain; }
@media(max-width:900px) { .saviour-lenders__directory { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:600px) { .saviour-lenders__directory { grid-template-columns:repeat(2,minmax(0,1fr)); } .saviour-lenders__directory li { min-height:90px; padding:16px; } .saviour-lenders__directory img { height:54px; } }
