/*
 * Scholarship Saviour theme styles.
 * Direction: "Graduation Day", refined. Lavender and white surfaces, deep indigo ink,
 * brand orange reserved for the logo and a few small markers. One signature: the arched
 * (collegiate window) photo frame. One authored motion: the hero arch reveal.
 * Author: Mike Potter, Bizetools (https://bizetools.com)
 */

:root {
	--ink: var(--wp--preset--color--ink, #1E1A6B);
	--ink-deep: var(--wp--preset--color--ink-deep, #13104A);
	--brand: var(--wp--preset--color--brand, #160A8B);
	--accent: var(--wp--preset--color--accent, #FF6418);
	--accent-text: var(--wp--preset--color--accent-text, #B4471A);
	--text: var(--wp--preset--color--text, #23213D);
	--muted: var(--wp--preset--color--muted, #57546F);
	--line: var(--wp--preset--color--line, #DCDAEC);
	--tint: var(--wp--preset--color--tint, #F1F0F9);
	--paper: var(--wp--preset--color--paper, #FFFFFF);
	--on-dark: #FFFFFF;
	--on-dark-muted: #C9C6EA;
	--f-display: var(--wp--preset--font-family--display, Georgia, serif);
	--f-body: var(--wp--preset--font-family--body, system-ui, sans-serif);
	--r-s: 8px;
	--r-m: 14px;
	--ease: cubic-bezier(.22, 1, .36, 1);
	--gutter: clamp(1rem, 4vw, 2rem);
	--wide: 1200px;
	--section: clamp(4rem, 9vw, 7rem);
	--mast-h: 0px;
	--admin-bar: 0px;
	--bar-h: 56px;
	--arch: 999px 999px var(--r-m) var(--r-m);
}
.admin-bar { --admin-bar: 32px; }
@media (max-width: 782px) { .admin-bar { --admin-bar: 46px; } }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--bar-h) + var(--admin-bar) + 1.5rem); }
html, body { overflow-x: clip; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: "cv11", "ss01"; }
img { max-width: 100%; height: auto; }
::selection { background: #D9D6F5; color: var(--ink-deep); }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; border-radius: 4px; }
.ssv-band :focus-visible, .ssv-footer :focus-visible { outline-color: #FFFFFF; }
.ssv-band .ssv-form :focus-visible { outline-color: var(--brand); }
a { text-underline-offset: .18em; text-decoration-thickness: 1px; }
h1, h2, h3 { text-wrap: balance; font-optical-sizing: auto; }
p { text-wrap: pretty; }
.ssv-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ssv-skip { position: absolute; left: 1rem; top: -100px; z-index: 1000; background: var(--ink); color: #fff; padding: .75rem 1rem; border-radius: var(--r-s); font-weight: 600; }
.ssv-skip:focus { top: calc(var(--admin-bar) + .5rem); }
.ssv-icon { width: 1.2em; height: 1.2em; flex: none; }
.ssv-header-part, .ssv-footer-part { display: contents; }
.ssv-main { margin-block: 0 !important; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-site-blocks { padding: 0 !important; }

/* ---------- Heading system ----------
 * One family (Fraunces, optical sizing on), sentence case, no labels above headings.
 * Scale: display 40-72 / H1 36-56 / section H2 28-40 / prose H2 26-34 / H3 20-22. Ratio about 1.5 per step.
 * Weight drops as size rises (400 large, 500 small) so strokes read evenly. More space above than below.
 */
h1, h2, h3, h4 { font-family: var(--f-display); color: var(--ink); font-weight: 400; letter-spacing: -.015em; line-height: 1.12; }
h3 { font-weight: 500; letter-spacing: -.01em; line-height: 1.25; }
h4 { font-family: var(--f-body); font-weight: 600; letter-spacing: 0; font-size: 1.0625rem; }
.ssv-prose > h2 { font-size: clamp(1.625rem, 1.25rem + 1.1vw, 2.125rem); line-height: 1.15; }
.ssv-prose > h3, .ssv-prose h3 { font-size: clamp(1.25rem, 1.15rem + .35vw, 1.375rem); }
.ssv-section h2, .ssv-founder__title, .ssv-news__title, .ssv-band__title { font-size: clamp(1.75rem, 1.25rem + 1.8vw, 2.5rem); line-height: 1.1; letter-spacing: -.02em; }

/* ---------- Buttons and links ---------- */
.ssv-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: 50px; padding: .8rem 1.35rem; border-radius: var(--r-s); border: 1px solid transparent;
	background: var(--ink); color: #fff; font: 600 1rem/1.2 var(--f-body); letter-spacing: .005em;
	text-decoration: none; cursor: pointer;
	transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.ssv-btn:hover { background: #2C2790; color: #fff; }
.ssv-btn:active { background: var(--ink-deep); }
.ssv-btn--light { background: #fff; color: var(--ink); }
.ssv-btn--light:hover { background: var(--tint); color: var(--ink); }
.ssv-btn--ghost { background: transparent; color: var(--ink); border-color: #BDBADB; }
.ssv-btn--ghost:hover { background: var(--paper); color: var(--ink); border-color: var(--ink); }
.ssv-btn--sm { min-height: 40px; padding: .5rem 1rem; font-size: .9375rem; }
.ssv-btn[disabled] { opacity: .7; cursor: progress; }
.wp-block-button__link { min-height: 50px; border-radius: var(--r-s) !important; transition: background-color .2s var(--ease); }
.wp-block-button__link:hover { background: #2C2790 !important; color: #fff !important; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--ink) !important; color: #fff !important; }
.ssv-link { color: var(--ink); font-weight: 600; text-decoration: underline; text-decoration-color: rgba(30,26,107,.35); text-underline-offset: .3em; transition: text-decoration-color .2s, color .2s; }
.ssv-link:hover { color: var(--accent-text); text-decoration-color: currentColor; }

/* ---------- Signature: arched photo frame ---------- */
.ssv-arch { margin: 0; border-radius: var(--arch); overflow: hidden; background: var(--line); position: relative; }
.ssv-arch__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ssv-arch::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(19,16,74,.06); pointer-events: none; }

/* ---------- Header ---------- */
.ssv-header { position: sticky; z-index: 100; top: calc(var(--admin-bar) - var(--mast-h)); background: var(--paper); }
.ssv-mast__inner {
	max-width: var(--wide); margin: 0 auto; padding: 1.1rem var(--gutter) .9rem;
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem;
}
.ssv-mast__phone { display: inline-flex; align-items: center; gap: .7rem; color: var(--ink); text-decoration: none; justify-self: start; }
.ssv-mast__phone > .ssv-icon { width: 20px; height: 20px; color: var(--ink); }
.ssv-mast__phone span { display: flex; flex-direction: column; line-height: 1.25; }
.ssv-mast__label { font-size: .8125rem; color: var(--muted); }
.ssv-mast__phone strong { font: 500 1.25rem/1.2 var(--f-display); letter-spacing: .01em; font-variant-numeric: lining-nums; }
.ssv-mast__phone:hover strong { color: var(--accent-text); }
.ssv-mast__brand { display: flex; flex-direction: column; align-items: center; text-decoration: none; gap: .3rem; }
.ssv-mast__logo { width: auto; height: clamp(80px, 8vw, 104px); display: block; }
.ssv-mast__tagline { font: italic 400 1rem/1.2 var(--f-display); color: var(--muted); }
.ssv-mast__actions { justify-self: end; display: flex; align-items: center; gap: .5rem; }
.ssv-mast__call, .ssv-mast__toggle { display: none; }

.ssv-bar { background: var(--paper); border-block: 1px solid var(--line); }
.ssv-bar__inner { position: relative; max-width: var(--wide); margin: 0 auto; padding: 0 var(--gutter); display: flex; align-items: center; gap: 1rem; min-height: var(--bar-h); }
.ssv-bar__brand { display: flex; align-items: center; flex: none; width: 0; opacity: 0; overflow: hidden; visibility: hidden; transform: translateX(-6px); transition: opacity .3s var(--ease), transform .3s var(--ease), visibility 0s .3s; }
.ssv-bar__logo { height: 36px; width: auto; display: block; }
.ssv-bar__cta { position: absolute; right: var(--gutter); opacity: 0; visibility: hidden; transition: opacity .3s var(--ease), visibility 0s .3s; }
.ssv-header.is-docked .ssv-bar { box-shadow: 0 6px 20px -14px rgba(19,16,74,.35); }
.ssv-header.is-docked .ssv-bar__brand { width: auto; opacity: 1; visibility: visible; transform: none; transition: opacity .3s var(--ease) .05s, transform .3s var(--ease) .05s, visibility 0s; }
.ssv-header.is-docked .ssv-bar__cta { position: static; margin-left: auto; opacity: 1; visibility: visible; transition: opacity .3s var(--ease) .05s, visibility 0s; }

.ssv-nav { flex: 1; display: flex; justify-content: center; }
.ssv-header.is-docked .ssv-nav { justify-content: flex-start; }
.ssv-nav ul { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; }
.ssv-nav li > a {
	display: block; position: relative; padding: 1.05rem .6rem; color: var(--ink); text-decoration: none;
	font: 500 .9375rem/1.2 var(--f-body); white-space: nowrap;
}
.ssv-nav li > a::after { content: ""; position: absolute; left: .6rem; right: .6rem; bottom: -1px; height: 2px; background: var(--ink); transform: scaleX(0); transition: transform .25s var(--ease); }
.ssv-nav li > a:hover::after { transform: scaleX(1); }
.ssv-nav li > a[aria-current="page"]::after { transform: scaleX(1); background: var(--accent); }
.ssv-nav__mobile-cta { display: none; }
@media (max-width: 1240px) {
	.ssv-nav li > a { padding-inline: .45rem; font-size: .875rem; }
	.ssv-nav li > a::after { left: .45rem; right: .45rem; }
}

/* Tablet and phone: compact masthead + menu button */
@media (max-width: 1100px) {
	.ssv-header { top: var(--admin-bar); border-bottom: 1px solid var(--line); }
	.ssv-header.is-docked { box-shadow: 0 6px 20px -14px rgba(19,16,74,.35); }
	.ssv-mast__inner { grid-template-columns: auto 1fr auto; padding-block: .7rem; }
	.ssv-mast__phone span { display: none; }
	.ssv-mast__brand { flex-direction: row; justify-self: center; gap: .85rem; }
	.ssv-mast__logo { height: 64px; }
	.ssv-mast__cta { display: none; }
	.ssv-mast__toggle {
		display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px;
		border: 1px solid var(--line); border-radius: var(--r-s); background: var(--paper); color: var(--ink); cursor: pointer;
	}
	.ssv-mast__toggle .ssv-icon { width: 22px; height: 22px; }
	.ssv-mast__toggle .is-open-shown, [data-nav-open] .ssv-mast__toggle .is-open-hidden { display: none; }
	[data-nav-open] .ssv-mast__toggle .is-open-shown { display: block; }
	.ssv-bar { border: 0; }
	.ssv-bar__inner { min-height: 0; padding: 0; }
	.ssv-bar__brand, .ssv-bar__cta { display: none; }
	.ssv-nav { display: none; flex-direction: column; padding: .25rem var(--gutter) 1.5rem; max-height: calc(100vh - 120px); overflow-y: auto; border-top: 1px solid var(--line); }
	[data-nav-open] .ssv-nav { display: flex; }
	.ssv-nav ul { flex-direction: column; }
	.ssv-nav li > a { padding: 1rem 0; font-size: 1.0625rem; border-bottom: 1px solid var(--line); }
	.ssv-nav li > a::after { display: none; }
	.ssv-nav li > a[aria-current="page"] { color: var(--accent-text); }
	.ssv-nav__mobile-cta { display: grid; gap: .75rem; margin-top: 1.25rem; }
}
@media (max-width: 600px) {
	.ssv-mast__inner { grid-template-columns: 1fr auto; }
	.ssv-mast__phone { display: none; }
	.ssv-mast__brand { justify-self: start; }
	.ssv-mast__logo { height: 52px; }
	.ssv-mast__tagline { font-size: .9375rem; max-width: 9.5em; }
	.ssv-mast__call {
		display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: var(--r-s);
		background: var(--ink); color: #fff;
	}
	.ssv-mast__call .ssv-icon { width: 20px; height: 20px; }
}

/* ---------- Home hero ---------- */
.ssv-hero { background: var(--tint); }
.ssv-hero__inner {
	max-width: var(--wide); margin: 0 auto; padding: clamp(2.5rem, 6vw, 5rem) var(--gutter) clamp(3rem, 7vw, 5.5rem);
	display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(2rem, 6vw, 5.5rem); align-items: start;
}
.ssv-hero__title { margin: 0; font: 400 var(--wp--preset--font-size--display)/1.02 var(--f-display); letter-spacing: -.025em; color: var(--ink); max-width: 12ch; }
.ssv-hero__title sup { font-size: .32em; vertical-align: top; position: relative; top: .5em; margin-left: .05em; color: var(--muted); }
.ssv-hero__lede { font-size: var(--wp--preset--font-size--lede); line-height: 1.55; color: var(--text); max-width: 38ch; margin: 1.5rem 0 2rem; }
.ssv-hero__form .ssv-form { max-width: 34rem; }
.ssv-hero__note { font-size: .9375rem; color: var(--muted); margin: 1.1rem 0 0; }
.ssv-hero__note a { color: var(--ink); font-weight: 600; white-space: nowrap; }
.ssv-hero__media { align-self: stretch; min-height: 560px; }
.ssv-hero__media .ssv-arch__img { object-position: 62% 40%; }
@media (prefers-reduced-motion: no-preference) {
	.ssv-js .ssv-hero__media { animation: ssv-arch-in 1.1s var(--ease) both .1s; }
	.ssv-js .ssv-hero__media .ssv-arch__img { animation: ssv-arch-img 1.4s var(--ease) both .1s; }
}
@keyframes ssv-arch-in { from { clip-path: inset(100% 0 0 0 round 999px 999px 14px 14px); } to { clip-path: inset(0 0 0 0 round 999px 999px 14px 14px); } }
@keyframes ssv-arch-img { from { transform: scale(1.08); } to { transform: none; } }
@media (max-width: 960px) {
	.ssv-hero__inner { grid-template-columns: 1fr; }
	.ssv-hero__media { order: -1; aspect-ratio: 5 / 4; min-height: 0; max-height: 420px; max-width: 520px; width: 100%; }
	.ssv-hero__title { max-width: 14ch; }
}

/* ---------- Page header ----------
 * Title band aligned to the 720px reading column. Optional wide image straddles the band
 * edge: the section background switches from lavender to white at half the image height.
 */
.ssv-phero { --ph-img: min(calc((100vw - 2 * var(--gutter)) * 7 / 16), 315px); background: var(--tint); }
.ssv-phero.has-media { background: linear-gradient(var(--tint) 0 calc(100% - var(--ph-img) / 2), var(--paper) 0); }
.ssv-phero__band { padding: clamp(2rem, 4.5vw, 3.25rem) var(--gutter) clamp(2.25rem, 4.5vw, 3.25rem); }
.ssv-phero.has-media .ssv-phero__band { padding-bottom: clamp(1.75rem, 3.5vw, 2.5rem); }
.ssv-phero__col { max-width: 720px; margin: 0 auto; }
.ssv-crumbs { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .875rem; color: var(--muted); margin-bottom: .85rem; }
.ssv-crumbs a { color: var(--muted); text-decoration: underline; text-decoration-color: rgba(87,84,111,.35); }
.ssv-crumbs a:hover { color: var(--ink); text-decoration-color: currentColor; }
.ssv-crumbs span[aria-hidden] { color: #A9A6C6; }
.ssv-phero__title { margin: 0; font: 400 clamp(2.25rem, 1.5rem + 2.6vw, 3.5rem)/1.05 var(--f-display); letter-spacing: -.025em; color: var(--ink); max-width: 18ch; }
.ssv-phero__media { max-width: 720px; margin: 0 auto; padding: 0; width: calc(100% - 2 * var(--gutter)); aspect-ratio: 16 / 7; border-radius: var(--r-m); overflow: hidden; background: var(--line); box-shadow: 0 0 0 1px rgba(19,16,74,.08); }
.ssv-phero__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ssv-phero + .ssv-page-body, .ssv-main > .ssv-phero + * { padding-top: clamp(2.5rem, 5vw, 3.5rem); }


/* ---------- Page body / prose ---------- */
.ssv-page-body { padding-block: clamp(3rem, 7vw, 5.5rem) var(--section); }
.ssv-prose > * { margin-block: 0; }
.ssv-prose > * + * { margin-block-start: 1.25rem; }
.ssv-prose > h2 { margin-block-start: clamp(2.75rem, 5vw, 3.75rem); }
.ssv-prose > h2:first-child { margin-block-start: 0; }
.ssv-prose > h2 + *, .ssv-prose > h3 + * { margin-block-start: .85rem; }
.ssv-prose > h3 { margin-block-start: 2rem; }
.ssv-prose p, .ssv-prose li { max-width: 68ch; }
.has-lede-font-size { color: var(--ink); line-height: 1.55; }
.ssv-prose .wp-block-list li + li { margin-top: .4rem; }
.ssv-prose ::marker { color: var(--accent-text); }
.ssv-figure img { border-radius: var(--r-m); }
.ssv-figure figcaption { font-size: .875rem; color: var(--muted); margin-top: .75rem; }
.ssv-figure a { display: block; }
.wp-block-quote { margin-block: 2.25rem !important; padding: 0; border: 0; }
.wp-block-quote p { color: var(--ink); line-height: 1.3; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); }
.wp-block-quote p::before { content: "\201C"; margin-left: -.42em; color: var(--accent); }
.wp-block-quote cite { display: block; margin-top: .75rem; font: 500 .9375rem/1.3 var(--f-body); color: var(--muted); font-style: normal; }
.wp-block-quote cite::before { content: "\2014\00a0"; }
.ssv-mt { margin-block: 2rem !important; gap: 2rem; }
.ssv-mt .wp-block-media-text__content { padding: 0 !important; }
.ssv-mt .wp-block-media-text__content > * + * { margin-top: 1rem; }
.ssv-mt img { border-radius: var(--r-m); }
.ssv-person { padding-block: 2rem; border-top: 1px solid var(--line); margin-block: 0 !important; }
.ssv-person img { border-radius: var(--arch); aspect-ratio: 3 / 4; object-fit: cover; }
.ssv-person h3 { margin-top: 0; }
.ssv-founder-intro img { border-radius: var(--arch); aspect-ratio: 4 / 5; object-fit: cover; }
.ssv-founder-intro .has-lede-font-size { font-size: 1.125rem; }
@media (max-width: 600px) {
	.ssv-founder-intro .wp-block-media-text__media, .ssv-person .wp-block-media-text__media { max-width: 240px; }
	.ssv-founder-intro .wp-block-media-text__content, .ssv-person .wp-block-media-text__content { margin-top: 1.25rem; }
}
.ssv-note { background: var(--tint); padding: 1.1rem 1.4rem; border-radius: var(--r-s); margin-top: 2.5rem !important; }
.ssv-note p { margin: 0; }
.ssv-updated { font-size: .875rem; color: var(--muted); }

/* Lists with ticks (Associate fields) */
.ssv-ticks { list-style: none; padding: 0; }
.ssv-ticks li { position: relative; padding-left: 1.75rem; }
.ssv-ticks li::before {
	content: ""; position: absolute; left: 0; top: .5em; width: 1rem; height: .55rem;
	border-left: 2px solid var(--accent-text); border-bottom: 2px solid var(--accent-text); transform: rotate(-45deg);
}
.ssv-ticks--cols { columns: 2; column-gap: 2rem; }
.ssv-ticks--cols li { break-inside: avoid; margin-bottom: .5rem; }
@media (max-width: 600px) { .ssv-ticks--cols { columns: 1; } }

/* ---------- Home sections ---------- */
.ssv-home-content { margin: 0 !important; }
.ssv-home-content > * { margin-block: 0 !important; }
.ssv-section { padding-block: var(--section) !important; }
.ssv-section--tint { background: var(--tint); }
.ssv-section__head { max-width: 44rem; margin-bottom: clamp(2.5rem, 5vw, 3.5rem) !important; }
.ssv-section__head > * { margin-block: 0; }
.ssv-section__head > * + * { margin-top: 1rem; }
.ssv-problem__cols { gap: clamp(2.5rem, 7vw, 6rem) !important; align-items: start !important; }
.ssv-problem__cols .wp-block-column > * { margin-block: 0; }
.ssv-problem__cols .wp-block-column > * + * { margin-top: 1.15rem; }
.ssv-problem__cols h2 { max-width: 15ch; }

/* At-a-glance facts */
.ssv-facts { margin: .4rem 0 0; border-top: 1px solid var(--ink); }
.ssv-facts > div { display: grid; grid-template-columns: minmax(8rem, 40%) 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.ssv-facts dt { font-size: .9375rem; color: var(--muted); }
.ssv-facts dd { margin: 0; font: 400 1.25rem/1.3 var(--f-display); color: var(--ink); }
.ssv-facts__note { font-size: .8125rem; color: var(--muted); margin-top: .9rem !important; }

/* Ten year plan timeline (a real sequence) */
.ssv-timeline { list-style: none; margin-block: 0; padding: 0; max-width: var(--wide); margin-inline: auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 3.5rem); position: relative; }
.ssv-timeline::before { content: ""; position: absolute; left: 0; right: 0; top: 2.35rem; height: 1px; background: #B9B6DA; }
.ssv-timeline__stage { position: relative; padding-top: 3.5rem; }
.ssv-timeline__stage::before { content: ""; position: absolute; left: 0; top: calc(2.35rem - 6px); width: 13px; height: 13px; border-radius: 50%; background: var(--tint); border: 2px solid var(--ink); }
.ssv-timeline__stage:last-child::before { background: var(--accent); border-color: var(--accent); }
.ssv-timeline__when { position: absolute; top: 0; left: 0; margin: 0; font: 600 .9375rem/1.3 var(--f-body); color: var(--accent-text); font-variant-numeric: lining-nums; }
.ssv-timeline__title { margin: 0 0 .75rem; font-size: 1.5rem; }
.ssv-timeline__stage p:last-child { margin: 0; color: var(--text); max-width: 36ch; }
.ssv-plan__more { margin-top: clamp(2.5rem, 5vw, 3.5rem) !important; color: var(--muted); }
.ssv-plan__sep { margin: 0 .6rem; color: #B9B6DA; }
@media (max-width: 860px) {
	.ssv-timeline { grid-template-columns: 1fr; gap: 0; }
	.ssv-timeline::before { left: 6px; right: auto; top: .5rem; bottom: .5rem; width: 1px; height: auto; }
	.ssv-timeline__stage { padding: 0 0 2.25rem 2.5rem; }
	.ssv-timeline__stage::before { top: .3rem; }
	.ssv-timeline__when { position: static; margin-bottom: .4rem; }
}

/* Services as rows, not cards */
.ssv-rows { list-style: none; margin-block: 0; padding: 0; max-width: var(--wide); margin-inline: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(2rem, 5vw, 4rem); border-top: 1px solid var(--line); }
.ssv-rows li { border-bottom: 1px solid var(--line); }
.ssv-row { display: grid; grid-template-columns: 7.5rem 1fr; gap: 1.5rem; align-items: center; padding: 1.5rem 0; text-decoration: none; color: var(--text); }
.ssv-row__img { width: 7.5rem; height: 7.5rem; object-fit: cover; border-radius: 999px 999px var(--r-s) var(--r-s); display: block; }
.ssv-row__body { display: flex; flex-direction: column; gap: .4rem; }
.ssv-row__title { font: 400 1.5rem/1.2 var(--f-display); color: var(--ink); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: .2em; text-decoration-thickness: 1px; transition: text-decoration-color .2s; }
.ssv-row:hover .ssv-row__title { text-decoration-color: currentColor; }
.ssv-row__text { color: var(--muted); font-size: 1rem; max-width: 40ch; }
@media (max-width: 760px) {
	.ssv-rows { grid-template-columns: 1fr; }
	.ssv-row { grid-template-columns: 5.5rem 1fr; gap: 1.1rem; }
	.ssv-row__img { width: 5.5rem; height: 5.5rem; }
}

/* Founder */
.ssv-founder { background: var(--tint); padding-block: var(--section); }
.ssv-founder__inner { max-width: var(--wide); margin: 0 auto; padding: 0 var(--gutter); display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 7vw, 6rem); align-items: center; }
.ssv-founder__media { aspect-ratio: 4 / 5; max-width: 380px; width: 100%; }
.ssv-founder__copy > * { margin: 0; }
.ssv-founder__copy > * + * { margin-top: 1.1rem; }
.ssv-founder__title { font-size: var(--wp--preset--font-size--h2); max-width: 18ch; }
.ssv-founder__byline { color: var(--muted); margin-top: .9rem !important; }
.ssv-founder__byline strong { color: var(--ink); font-weight: 600; }
.ssv-founder__copy p { max-width: 60ch; }
@media (max-width: 780px) {
	.ssv-founder__inner { grid-template-columns: 1fr; }
	.ssv-founder__media { max-width: 260px; }
}

/* ---------- News slider ---------- */
.ssv-news { padding-block: var(--section); background: var(--paper); }
.ssv-news__inner { max-width: var(--wide); margin: 0 auto; padding: 0 var(--gutter); }
.ssv-news__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem 2rem; flex-wrap: wrap; margin-bottom: 2.25rem; }
.ssv-news__title { margin: 0; font-size: var(--wp--preset--font-size--h2); max-width: 22ch; }
.ssv-slider { position: relative; }
.ssv-slider__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2.5rem) / 3); gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 2px 2px 1.5rem; margin: -2px; }
.ssv-slider__track::-webkit-scrollbar { display: none; }
.ssv-slider.is-ready .ssv-slider__track { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { .ssv-slider.is-ready .ssv-slider__track { scroll-behavior: auto; } }
@media (max-width: 960px) { .ssv-slider__track { grid-auto-columns: calc((100% - 1.25rem) / 2); } }
@media (max-width: 600px) { .ssv-slider__track { grid-auto-columns: 86%; } }
.ssv-clip { scroll-snap-align: start; }
.ssv-clip__link {
	display: flex; flex-direction: column; gap: .75rem; height: 100%; min-height: 12.5rem;
	padding: 1.5rem; text-decoration: none; color: var(--text);
	background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-m);
	transition: border-color .2s var(--ease);
}
.ssv-clip__link:hover { border-color: var(--ink); }
.ssv-clip__meta { font-size: .875rem; color: var(--muted); }
.ssv-clip__title { font: 400 1.375rem/1.25 var(--f-display); color: var(--ink); flex: 1; }
.ssv-clip__cta { font-weight: 600; font-size: .9375rem; color: var(--ink); text-decoration: underline; text-decoration-color: rgba(30,26,107,.35); text-underline-offset: .3em; }
.ssv-clip__link:hover .ssv-clip__cta { text-decoration-color: currentColor; }
.ssv-slider__controls { display: flex; align-items: center; gap: .5rem; margin-top: .25rem; }
.ssv-slider__controls[hidden] { display: none; }
.ssv-slider__btn { width: 44px; height: 44px; border-radius: var(--r-s); border: 1px solid var(--line); background: var(--paper); color: var(--ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color .2s; }
.ssv-slider__btn:hover { border-color: var(--ink); }
.ssv-slider__btn .is-paused, .ssv-slider.is-paused .ssv-slider__btn .is-playing { display: none; }
.ssv-slider.is-paused .ssv-slider__btn .is-paused { display: block; }
.ssv-slider__dots { display: flex; gap: .15rem; flex: 1; justify-content: center; }
.ssv-slider__dot { width: 28px; height: 32px; border: 0; background: transparent; cursor: pointer; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.ssv-slider__dot::before { content: ""; width: 18px; height: 2px; background: var(--line); transition: background-color .3s; }
.ssv-slider__dot[aria-current="true"]::before { background: var(--ink); }

/* Press list (Articles page) */
.ssv-press { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; max-width: none !important; }
.ssv-press__item a { display: flex; flex-direction: column; gap: .5rem; padding: 1.1rem 1.1rem 1.25rem; border: 1px solid var(--line); border-radius: var(--r-m); text-decoration: none; color: var(--text); background: var(--paper); height: 100%; transition: border-color .2s; }
.ssv-press__item a:hover { border-color: var(--ink); }
.ssv-press__thumb { border-radius: var(--r-s); overflow: hidden; background: var(--tint); aspect-ratio: 680 / 173; margin-bottom: .4rem; }
.ssv-press__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: left center; display: block; }
.ssv-press__meta { font-size: .875rem; color: var(--muted); }
.ssv-press__meta strong { font-weight: 500; color: var(--muted); }
.ssv-press__title { font: 400 1.25rem/1.3 var(--f-display); color: var(--ink); }
.ssv-press__cta { margin-top: auto; display: inline-flex; align-items: center; gap: .4rem; font-size: .9375rem; font-weight: 600; color: var(--ink); }
.ssv-press__cta .ssv-icon { color: var(--ink); width: 1.1em; height: 1.1em; }
.page-articles-resources .ssv-page-body > .ssv-prose { max-width: var(--wide); }
.page-articles-resources .ssv-prose > * { max-width: none; }
.ssv-faq-download { margin-top: 2rem !important; }
.ssv-faq-download a { font-weight: 600; }
@media (max-width: 720px) { .ssv-press { grid-template-columns: 1fr; } }

/* ---------- Enquiry band ---------- */
.ssv-band { background: var(--ink-deep); color: var(--on-dark); padding-block: var(--section); }
.ssv-band__inner { max-width: var(--wide); margin: 0 auto; padding: 0 var(--gutter); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.ssv-band__title { color: var(--on-dark); font-size: var(--wp--preset--font-size--h2); margin: 0 0 1.25rem; max-width: 17ch; }
.ssv-band__lede { color: var(--on-dark-muted); font-size: var(--wp--preset--font-size--lede); line-height: 1.6; max-width: 36ch; margin: 0 0 2rem; }
.ssv-band__points { list-style: none; padding: 0; margin: 0 0 2rem; border-top: 1px solid rgba(255,255,255,.16); }
.ssv-band__points li { padding: .85rem 0; border-bottom: 1px solid rgba(255,255,255,.16); color: var(--on-dark); }
.ssv-band__call { color: var(--on-dark-muted); margin: 0; }
.ssv-band__call a { color: var(--on-dark); font: 500 1.25rem/1.2 var(--f-display); white-space: nowrap; text-decoration-color: var(--accent); }
@media (max-width: 900px) { .ssv-band__inner { grid-template-columns: 1fr; } }

/* ---------- Forms ---------- */
.ssv-form { background: var(--paper); color: var(--text); border-radius: var(--r-m); padding: clamp(1.5rem, 3.5vw, 2.25rem); border: 1px solid var(--line); }
.ssv-form--flat { border: 0; }
.ssv-form__title { font: 400 1.625rem/1.2 var(--f-display); color: var(--ink); margin: 0 0 .4rem; }
.ssv-form__intro { color: var(--muted); font-size: .9688rem; margin: 0 0 1.4rem; }
.ssv-form__error { background: #FDECEC; color: #8A1C1C; border-radius: var(--r-s); padding: .75rem 1rem; font-size: .9375rem; margin: 0 0 1rem; }
.ssv-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.ssv-field { display: flex; flex-direction: column; gap: .4rem; min-width: 0; margin: 0; border: 0; padding: 0; }
.ssv-field--full { grid-column: 1 / -1; }
.ssv-field label, .ssv-field legend { font: 500 .875rem/1.3 var(--f-body); color: var(--ink); padding: 0; }
.ssv-field__hint { font-weight: 400; color: var(--muted); }
.ssv-req { color: var(--accent-text); }
.ssv-field input[type="text"], .ssv-field input[type="email"], .ssv-field input[type="tel"], .ssv-field select, .ssv-field textarea {
	width: 100%; min-height: 48px; padding: .7rem .85rem; border: 1px solid #8682B3; border-radius: var(--r-s);
	font: 400 1rem/1.4 var(--f-body); color: var(--text); background: #fff;
	transition: border-color .2s, box-shadow .2s;
}
.ssv-field textarea { min-height: 112px; resize: vertical; }
.ssv-field input:hover, .ssv-field select:hover, .ssv-field textarea:hover { border-color: var(--ink); }
.ssv-field input:focus, .ssv-field select:focus, .ssv-field textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(30,26,107,.16); }
.ssv-field.is-invalid input, .ssv-field.is-invalid textarea { border-color: #B42318; }
.ssv-field__err { font-size: .8125rem; color: #B42318; }
.ssv-field__err:empty { display: none; }
.ssv-field input[type="file"] { font-size: .9375rem; padding: .6rem; border: 1px dashed #8682B3; border-radius: var(--r-s); background: var(--tint); }
.ssv-field--radios { flex-direction: row; flex-wrap: wrap; align-items: center; gap: .25rem 1.25rem; }
.ssv-field--radios legend { width: 100%; margin-bottom: .2rem; float: left; }
.ssv-field--radios label { display: inline-flex; align-items: center; gap: .45rem; font-weight: 400; min-height: 44px; cursor: pointer; color: var(--text); }
.ssv-field--radios input { width: 1.1rem; height: 1.1rem; accent-color: var(--ink); }
.ssv-form__submit { width: 100%; margin-top: 1.25rem; }
.ssv-form--compact .ssv-form__title { font-size: 1.375rem; }
.ssv-form--compact .ssv-form__intro { margin-bottom: 1.1rem; }
.ssv-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.ssv-form--thanks { text-align: center; padding-block: 2.5rem; }
.ssv-form--thanks:focus { outline: none; }
.ssv-form__tick { display: inline-flex; width: 52px; height: 52px; border-radius: 50%; background: var(--tint); color: var(--ink); align-items: center; justify-content: center; margin-bottom: 1rem; }
.ssv-form__tick .ssv-icon { width: 26px; height: 26px; }
.ssv-form--thanks p { color: var(--muted); max-width: 36ch; margin: .5rem auto 0; }
.ssv-form-wrap { margin-top: 2.5rem !important; scroll-margin-top: calc(var(--bar-h) + var(--admin-bar) + 1rem); }
@media (max-width: 480px) { .ssv-form__grid { grid-template-columns: 1fr; } }

/* Privacy: collection notice and consent */
.ssv-consent { margin-top: 1.25rem; display: grid; gap: .85rem; }
.ssv-notice { background: var(--tint); border-radius: var(--r-s); padding: .15rem .9rem; font-size: .8438rem; color: var(--muted); }
.ssv-notice summary { cursor: pointer; display: flex; align-items: center; gap: .5rem; min-height: 40px; font: 500 .875rem/1.3 var(--f-body); color: var(--ink); list-style: none; }
.ssv-notice summary::-webkit-details-marker { display: none; }
.ssv-notice summary::after { content: ""; margin-left: auto; width: .5rem; height: .5rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s var(--ease); }
.ssv-notice[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
.ssv-notice summary .ssv-icon { width: 1.05rem; height: 1.05rem; color: var(--ink); }
.ssv-notice p { margin: 0 0 .8rem; line-height: 1.55; }
.ssv-notice a { color: var(--ink); }
.ssv-check { display: grid; grid-template-columns: auto 1fr; column-gap: .65rem; row-gap: .25rem; align-items: start; }
.ssv-check input { width: 1.2rem; height: 1.2rem; margin: .12rem 0 0; accent-color: var(--ink); }
.ssv-check label { font: 400 .875rem/1.45 var(--f-body) !important; color: var(--text) !important; cursor: pointer; }
.ssv-check .ssv-field__err { grid-column: 2; }
.ssv-check.is-invalid input { outline: 2px solid #B42318; outline-offset: 2px; }
.ssv-field__hint--below { font-size: .8125rem; color: var(--muted); line-height: 1.45; }
.ssv-form__intro--note { margin-top: -.9rem; font-size: .875rem; color: var(--ink); font-weight: 500; }
.ssv-consent-bar { position: fixed; z-index: 200; left: 1rem; right: 1rem; bottom: 1rem; max-width: 720px; margin: 0 auto; display: flex; gap: 1rem 1.5rem; align-items: center; flex-wrap: wrap; padding: 1rem 1.25rem; background: var(--paper); color: var(--text); border: 1px solid var(--line); border-radius: var(--r-m); box-shadow: 0 12px 32px -12px rgba(19,16,74,.3); font-size: .9063rem; }
.ssv-consent-bar[hidden] { display: none; }
.ssv-consent-bar p { margin: 0; flex: 1 1 22rem; }
.ssv-consent-bar__actions { display: flex; gap: .5rem; }

/* Contact page */
.ssv-contact { gap: clamp(2rem, 5vw, 4rem) !important; }
.page-contact .ssv-page-body > .ssv-prose { max-width: var(--wide); }
.page-contact .ssv-prose > * { max-width: none; }
.ssv-contact h2 { margin-top: 0; font-size: var(--wp--preset--font-size--h3); max-width: 20ch; }
.ssv-contact-list { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: 0; border-top: 1px solid var(--line); }
.ssv-contact-list li { display: flex; gap: 1rem; align-items: flex-start; padding: 1.1rem 0; border-bottom: 1px solid var(--line); }
.ssv-contact-list__icon { flex: none; width: 24px; padding-top: .15rem; color: var(--ink); display: inline-flex; }
.ssv-contact-list li > span:last-child { display: flex; flex-direction: column; gap: .15rem; }
.ssv-contact-list__label { font-size: .875rem; color: var(--muted); }
.ssv-contact-list__big { font: 400 1.75rem/1.2 var(--f-display); color: var(--ink); text-decoration: none; }
.ssv-contact-list__big:hover { color: var(--accent-text); }
.page-contact .ssv-form-wrap { margin-top: 0 !important; }

/* FAQ accordion (core/details) */
.ssv-prose .wp-block-details { border-bottom: 1px solid var(--line); padding: 0; margin: 0 !important; }
.ssv-prose .wp-block-details:first-of-type { border-top: 1px solid var(--ink); margin-top: 2rem !important; }
.wp-block-details summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.3rem 0; font: 400 1.3125rem/1.35 var(--f-display); color: var(--ink); }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: ""; flex: none; width: .6rem; height: .6rem; margin-right: .4rem; border-right: 1.5px solid var(--ink); border-bottom: 1.5px solid var(--ink); transform: rotate(45deg) translateY(-3px); transition: transform .25s var(--ease); }
.wp-block-details[open] summary::after { transform: rotate(-135deg) translateY(-3px); }
.wp-block-details summary:hover { color: var(--accent-text); }
.wp-block-details > *:not(summary) { margin: 0 0 1.25rem; color: var(--text); }

/* ---------- Footer ---------- */
.ssv-footer { background: var(--ink-deep); color: var(--on-dark-muted); font-size: .9688rem; border-top: 1px solid rgba(255,255,255,.08); }
.ssv-footer a { color: var(--on-dark); text-decoration: none; }
.ssv-footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ssv-footer .ssv-btn--light, .ssv-footer .ssv-btn--light:hover { color: var(--ink); text-decoration: none; }
.ssv-footer__inner { max-width: var(--wide); margin: 0 auto; padding: clamp(3.5rem, 7vw, 5rem) var(--gutter) 2.5rem; display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); }
.ssv-footer__logo { height: 112px; width: auto; display: block; }
.ssv-footer__lede { max-width: 34ch; margin: 1.5rem 0; color: var(--on-dark-muted); }
.ssv-footer__h { font: 600 .9375rem/1.3 var(--f-body); color: var(--on-dark); margin: 0 0 1.1rem; }
.ssv-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.ssv-footer__col ul a { color: var(--on-dark-muted); }
.ssv-footer__col ul a:hover { color: var(--on-dark); }
.ssv-footer__contact { gap: 1rem !important; }
.ssv-footer__contact a { display: flex; gap: .75rem; align-items: flex-start; color: var(--on-dark) !important; }
.ssv-footer__contact .ssv-icon { color: var(--on-dark-muted); margin-top: .15rem; }
.ssv-footer__base { max-width: var(--wide); margin: 0 auto; padding: 1.5rem var(--gutter) 2.5rem; border-top: 1px solid rgba(255,255,255,.12); display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 2rem; font-size: .8125rem; color: #A9A5D6; }
.ssv-footer__base p { margin: 0; }
.ssv-footer__base a { color: var(--on-dark); }
.ssv-footer__disclaimer { max-width: 68ch; }
.ssv-footer__choices { background: none; border: 0; padding: 0; margin-left: .75rem; color: var(--on-dark); font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ssv-footer__choices[hidden] { display: none; }
@media (max-width: 860px) { .ssv-footer__inner { grid-template-columns: 1fr 1fr; } .ssv-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .ssv-footer__inner { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
