/* =====================================================================
   VDSA theme — Story Factory replica stylesheet
   Tokens come from theme.json (--wp--preset--*). Component classes are
   prefixed .sf-. Brand colours are never hard-coded here except inside
   SVG data URIs, which mirror theme.json.
   ===================================================================== */

/* ---------- 1. Root / fluid type (10px → 16px between 470 and 1600px) ---------- */
html { font-size: clamp(10px, calc(10px + 6 * ((100vw - 470px) / 1130)), 16px); scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: 0.001s !important; transition-duration: 0.001s !important; } }
body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.sf-nav-locked { overflow: hidden; }
img { max-width: 100%; height: auto; }
p { margin-block: 0 1.6875rem; }
h1, h2, h3, h4, h5, h6 { margin-block: 0 1.6875rem; overflow-wrap: anywhere; }
.entry-content > :first-child { margin-top: 0; }
:where(.entry-content) p a, .sf-body a { color: var(--wp--preset--color--teal); }
:where(.entry-content) p a:hover { color: var(--wp--preset--color--aqua); }
:where(.entry-content) ul:not([class]) { list-style: none; padding-left: 1.5rem; }
:where(.entry-content) ul:not([class]) li { position: relative; margin-bottom: .5rem; }
:where(.entry-content) ul:not([class]) li::before { content: ""; position: absolute; left: -1.5rem; top: .6em; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--teal); }
.has-teal-background-color ul:not([class]) li::before, .has-purple-background-color ul:not([class]) li::before { background: var(--wp--preset--color--white); }
.sf-lead, .text-emphasis { font-size: 1.2375rem; font-weight: 700; }
.sf-subtitle { font-size: 1rem; }
.sf-small, .has-small-font-size { font-size: .875rem; }
.sf-rule { border: 0; border-top: 1px solid var(--wp--preset--color--grey); margin: 0; }

/* Page offset for fixed header, except when the first thing is a full-bleed banner */
.sf-main > :first-child:not(.sf-hero):not(.sf-banner):not(.wp-block-post-content),
.sf-main > .wp-block-post-content:first-child > :first-child:not(.sf-hero):not(.sf-banner) { margin-top: calc(var(--wp--custom--header-height) + 3.375rem); }
.sf-main > .sf-hero:first-child, .sf-main > .sf-banner:first-child, .sf-main > .wp-block-post-content:first-child { margin-top: 0; }

/* ---------- 2. Buttons ---------- */
.wp-block-button__link, .sf-btn, button.sf-btn, .wp-element-button, input[type=submit] {
	display: inline-block; text-align: center; min-height: 2.125rem; position: relative;
	border: 1px solid currentColor; border-radius: 0; background: transparent; color: var(--wp--preset--color--black);
	font-family: var(--wp--preset--font-family--body); font-weight: 800; font-size: 1rem; line-height: 1.5;
	text-transform: uppercase; letter-spacing: 1px; text-decoration: none; padding: .875rem 2.625rem; cursor: pointer;
	transition: color .2s, background-color .2s;
}
.wp-block-button__link::after, .sf-btn::after, .wp-element-button::after {
	content: ""; position: absolute; left: 2.5rem; bottom: .55rem; height: 2.5px; width: 0;
	background: url("../img/underline.svg") center / 100% 100% no-repeat; transition: width .3s ease-in-out;
}
.wp-block-button__link:hover::after, .sf-btn:hover::after, .wp-element-button:hover::after { width: calc(100% - 5rem); }
/* white ghost variant for colour bands */
.is-style-ghost .wp-block-button__link, .sf-btn--ghost, .has-teal-background-color .wp-block-button__link, .has-purple-background-color .wp-block-button__link,
.has-teal-background-color .sf-btn, .has-purple-background-color .sf-btn {
	color: var(--wp--preset--color--white); border-color: var(--wp--preset--color--white); background: transparent;
}
.is-style-ghost .wp-block-button__link::after, .sf-btn--ghost::after, .has-teal-background-color .wp-block-button__link::after, .has-purple-background-color .wp-block-button__link::after,
.has-teal-background-color .sf-btn::after, .has-purple-background-color .sf-btn::after { background-image: url("../img/underline-white.svg"); }
.is-style-fill .wp-block-button__link { background: var(--wp--preset--color--white); color: var(--wp--preset--color--black); }
.sf-btn--pill { border-radius: 20px; background: var(--wp--preset--color--teal); color: var(--wp--preset--color--white); border-color: var(--wp--preset--color--teal); }
.sf-btn--pill::after { display: none; }
.sf-btn--small { font-size: .667rem; padding: .6rem 1.6rem; }
/* text link with hand-drawn underline */
.sf-read-more, .sf-underline { position: relative; display: inline-block; font-weight: 700; text-transform: capitalize; background: none; border: 0; padding: 0 0 .35rem; color: inherit; cursor: pointer; font-family: inherit; font-size: 1.125rem; }
.sf-read-more::after, .sf-underline::after { content: ""; position: absolute; left: 0; bottom: 0; height: 2.5px; width: 0; background: url("../img/underline.svg") center / 100% 100% no-repeat; transition: width .3s ease-in-out; }
.sf-read-more:hover::after, .sf-underline:hover::after, a:hover .sf-read-more::after { width: 100%; }
.sf-underline--white::after { background-image: url("../img/underline-white.svg"); }
.wp-block-read-more { font-weight: 700; text-decoration: none; }

/* ---------- 3. Header ---------- */
.sf-header {
	position: fixed; inset: 0 0 auto 0; z-index: 101; background: var(--wp--preset--color--cream);
	box-shadow: var(--wp--custom--shadow); transition: box-shadow .2s;
}
.sf-header__inner { max-width: 1550px; margin: 0 auto; padding: .75rem 3.375rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: var(--wp--custom--header-height); }
.sf-header__logo { display: block; width: 6.25rem; flex: 0 0 auto; }
.sf-header__logo img, .sf-header__logo svg { display: block; width: 100%; height: auto; }
.sf-header__right { display: flex; align-items: center; gap: .75rem; }
.sf-header .wp-block-navigation { font-weight: 700; font-size: 1.125rem; }
.sf-header .wp-block-navigation .wp-block-navigation-item__content { padding: 1.3125rem 1.1rem; color: var(--wp--preset--color--black); }
.sf-header .wp-block-navigation .wp-block-navigation-item__content:hover, .sf-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content, .sf-header .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content { color: var(--wp--preset--color--teal); }
.sf-header .wp-block-navigation__submenu-container { background: var(--wp--preset--color--cream) !important; border: 0 !important; min-width: 12.5rem !important; padding: 0; box-shadow: var(--wp--custom--shadow); }
.sf-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .8rem 1.25rem; font-size: 1rem; font-weight: 700; display: block; }
.sf-header .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content { background: var(--wp--preset--color--teal); color: var(--wp--preset--color--black); }
.sf-header .wp-block-navigation__submenu-icon { display: none; }
.sf-header .wp-block-navigation__responsive-container-open, .sf-header .wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--teal); }
.sf-header .wp-block-navigation__responsive-container-open svg, .sf-header .wp-block-navigation__responsive-container-close svg { width: 32px; height: 32px; }
/* mobile drawer */
.sf-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--cream) !important; left: auto; width: min(28.125rem, 100vw); padding: 7.5rem 2.5rem 2.5rem; box-shadow: -4px 0 20px rgba(0,0,0,.15); }
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; gap: 0; }
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { padding: .75rem 0; font-size: 1.25rem; }
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { box-shadow: none; padding-left: 1.25rem; }
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: inline-flex; }
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content { background: transparent; color: var(--wp--preset--color--teal); }
.sf-search-toggle { background: none; border: 0; padding: .5rem; cursor: pointer; display: inline-flex; color: var(--wp--preset--color--black); }
.sf-search-toggle svg { width: 17px; height: 17px; }
.sf-header__donate { display: none; }
/* Search overlay */
.sf-search-overlay { position: fixed; inset: 0; z-index: 200; background: rgba(241,238,232,.97); display: flex; align-items: center; justify-content: center; padding: 2rem; }
.sf-search-overlay[hidden] { display: none; }
.sf-search-overlay__close { position: absolute; top: 1.5rem; right: 1.5rem; background: none; border: 0; font-size: 2.5rem; line-height: 1; cursor: pointer; color: var(--wp--preset--color--black); }
.sf-search-overlay .wp-block-search { width: min(46rem, 100%); }
.sf-search-overlay .wp-block-search__inside-wrapper { border: 0 !important; border-bottom: 2px solid var(--wp--preset--color--black) !important; padding: 0 !important; border-radius: 0; }
.sf-search-overlay .wp-block-search__input { background: transparent; border: 0; font-size: 2rem; padding: .75rem 0; font-family: inherit; color: var(--wp--preset--color--black); }
.sf-search-overlay .wp-block-search__input:focus { outline: none; }
.sf-search-overlay .wp-block-search__button { background: none; border: 0; padding: .5rem; color: var(--wp--preset--color--black); }
.sf-search-overlay .wp-block-search__button svg { width: 28px; height: 28px; fill: currentColor; }
.sf-search-overlay .wp-block-search__label { display: block; text-align: center; font-size: 1.125rem; margin-bottom: 1rem; font-weight: 700; }

/* ---------- 4. Hero slider / page banner ---------- */
.sf-hero, .sf-banner { position: relative; width: 100%; margin: 0 !important; }
.sf-hero { height: 100vh; min-height: 34rem; overflow: hidden; }
.sf-hero__slide { position: absolute !important; inset: 0; opacity: 0; transition: opacity .6s ease; margin: 0 !important; min-height: 100vh !important; }
.sf-hero__slide.is-active { opacity: 1; z-index: 1; }
.sf-hero__slide .wp-block-cover__image-background { object-fit: cover; }
.sf-hero__slide .wp-block-cover__inner-container, .sf-banner .wp-block-cover__inner-container { width: 100%; align-self: flex-end; margin: 0; }
.sf-hero__slide .wp-block-cover__background { display: none; }
.sf-hero .wp-block-cover { align-items: flex-end; padding: 0 !important; }
.sf-banner.wp-block-cover { height: 100vh; min-height: 34rem; align-items: flex-end; padding: 0 !important; }
.sf-banner .wp-block-cover__background { display: none; }
.sf-hero__bar, .sf-banner__bar {
	opacity: .85; min-height: 6.25rem; margin: 0 !important; width: 100%;
	display: flex; align-items: center; padding: 1rem 3.375rem !important; gap: 1.5rem; max-width: none !important;
}
.sf-hero__bar { justify-content: center; gap: 3rem; padding-inline: 5rem !important; }
.sf-hero__bar > *, .sf-banner__bar > * { margin: 0 !important; }
.sf-hero__bar p, .sf-banner__bar p { font-size: 1.375rem; font-weight: 700; line-height: 1.4; flex: 1 1 auto; max-width: 58%; }
.sf-hero__bar p { flex: 0 1 auto; max-width: 46rem; text-align: left; }
.sf-banner__bar h1 { font-size: 2.75rem; flex: 0 0 25%; }
.sf-banner__bar p { flex: 1 1 auto; max-width: 66%; }
.sf-hero__bar .wp-block-buttons { flex: 0 0 auto; margin: 0 !important; }
.sf-hero__arrow { position: absolute; bottom: 6.25rem; z-index: 5; transform: translateY(50%); width: 36px; height: 36px; border: 0; background: none; padding: 0; cursor: pointer; color: var(--wp--preset--color--pink); opacity: .9; }
.sf-hero__arrow svg { width: 100%; height: 100%; display: block; }
.sf-hero__arrow--prev { left: .75rem; }
.sf-hero__arrow--next { right: .75rem; }
.sf-hero__dots { position: absolute; z-index: 5; bottom: .5rem; right: 3.375rem; display: flex; gap: .4rem; }
.sf-hero__dots button { width: 10px; height: 10px; border-radius: 50%; border: 0; background: rgba(0,0,0,.25); padding: 0; cursor: pointer; }
.sf-hero__dots button.is-active { background: var(--wp--preset--color--black); }
.sf-fixed-cta { position: fixed; bottom: 1.25rem; right: 1.25rem; z-index: 99; }
.sf-fixed-cta .sf-btn--pill { box-shadow: 0 4px 14px rgba(0,0,0,.2); }
.sf-fixed-cta { display: none; }
.is-front-page .sf-fixed-cta { display: block; }

/* ---------- 5. Sections ---------- */
.sf-section { padding-block: 3.375rem; }
.sf-section--flush { padding-block: 0; }
.sf-wrap { max-width: 1550px; margin-inline: auto; padding-inline: 3.375rem; }
.sf-wrap--medium { max-width: 1420px; }
.sf-wrap--small { max-width: 1120px; }
/* Intro statement over animated blobs */
.sf-intro { position: relative; overflow: hidden; text-align: center; padding: 3.375rem 3.375rem 2rem; max-width: 1420px; margin-inline: auto; }
.sf-intro h1, .sf-intro h2 { font-size: 4rem; position: relative; z-index: 1; }
.sf-intro .wp-block-buttons { position: relative; z-index: 1; }
.sf-intro__shapes { position: absolute; inset: 0; z-index: 0; pointer-events: none; display: flex; align-items: center; justify-content: center; opacity: .9; }
.sf-intro__shapes svg { width: 100%; height: 100%; }
.sf-intro__shapes .blob-1, .sf-intro__shapes .blob-5 { animation: sf-rotate-back-forth 14s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
.sf-intro__shapes .blob-2, .sf-intro__shapes .blob-6 { animation: sf-wobble 14s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
.sf-intro__shapes .blob-3, .sf-intro__shapes .blob-7 { animation: sf-heartbeat 14s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
.sf-intro__shapes .blob-4, .sf-intro__shapes .blob-8 { animation: sf-rotate 40s linear infinite; transform-origin: center; transform-box: fill-box; }
@keyframes sf-rotate-back-forth { 0%,100% { transform: rotate(-6deg); } 50% { transform: rotate(6deg); } }
@keyframes sf-wobble { 0%,100% { transform: translate(0,0); } 33% { transform: translate(12px,-8px); } 66% { transform: translate(-10px,6px); } }
@keyframes sf-heartbeat { 0%,100% { transform: scale(1); } 50% { transform: scale(1.08); } }
@keyframes sf-rotate { to { transform: rotate(360deg); } }

/* CTA band */
.sf-cta { padding: 3.375rem; color: var(--wp--preset--color--white); }
.sf-cta .wp-block-columns { max-width: 1550px; margin-inline: auto; align-items: center; gap: 5rem; }
.sf-cta h2, .sf-cta h1 { font-size: 3.625rem; color: var(--wp--preset--color--white); line-height: 1.25; }
.sf-cta p { font-size: 1.75rem; line-height: 1.4; font-weight: 400; }
.sf-accent-underline { position: relative; display: inline-block; }
.sf-accent-underline::after { content: ""; position: absolute; left: 0; bottom: -.15em; height: .22em; width: 100%; background: url("../img/underline-accent.svg") center / 100% 100% no-repeat; transform-origin: left; animation: sf-draw 1.2s .4s ease-out both; }
@keyframes sf-draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.sf-accent-circle { position: relative; display: inline-block; }
.sf-accent-circle::before { content: ""; position: absolute; left: -8%; top: -25%; width: 116%; height: 160%; background: url("../img/circle-accent.svg") center / 100% 100% no-repeat; pointer-events: none; }
.has-white-color h1, .has-white-color h2, .has-white-color h3, .has-white-color h4, .has-white-color h5 { color: inherit; }
.has-teal-background-color, .has-purple-background-color, .has-teal-background-color h1, .has-teal-background-color h2, .has-teal-background-color h3, .has-teal-background-color h4, .has-purple-background-color h1, .has-purple-background-color h2, .has-purple-background-color h3, .has-purple-background-color h4 { color: var(--wp--preset--color--white); }
.has-teal-background-color a:not(.wp-block-button__link), .has-purple-background-color a:not(.wp-block-button__link) { color: var(--wp--preset--color--white); }
.has-teal-background-color a:not(.wp-block-button__link):hover { color: var(--wp--preset--color--aqua); }

/* Highlight cards (4 program shapes) */
.sf-highlights { max-width: 1550px; margin-inline: auto; padding: 3.375rem; }
.sf-highlights .wp-block-columns { gap: 0; }
.sf-highlight { position: relative; text-align: center; min-height: 15rem; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem 1.5rem; }
.sf-highlight__shape { position: absolute; width: 15.5rem; height: 15.5rem; top: 50%; left: 50%; transform: translate(-50%, -55%); mix-blend-mode: multiply; pointer-events: none; transition: transform .6s ease; }
.sf-highlight__shape svg, .sf-highlight__shape img { width: 100%; height: 100%; display: block; }
.sf-highlight h3 { position: relative; z-index: 1; font-size: 2.25rem; margin-bottom: 1rem; }
.sf-highlight .sf-read-more { position: relative; z-index: 1; }
.sf-highlight a { color: inherit; text-decoration: none; }
.sf-highlight--cog:hover .sf-highlight__shape { animation: sf-rotate 8s linear infinite; transform-origin: center; }
.sf-highlight--triangle:hover .sf-highlight__shape, .sf-highlight--square:hover .sf-highlight__shape { transform: translate(-50%, -55%) rotate(15deg); }
.sf-highlight--hex:hover .sf-highlight__shape { transform: translate(-50%, -75%); }
.sf-highlight__link { position: absolute; inset: 0; z-index: 2; }

/* Divider */
.sf-divider { display: block; width: 100%; height: 6px; margin: 1.5rem auto; background: url("../img/divider.svg") center / 100% 100% no-repeat; border: 0; }
hr.wp-block-separator:not(.is-style-dots) { border: 0; height: 6px; background: url("../img/divider.svg") center / 100% 100% no-repeat; width: 100%; max-width: none; opacity: 1; }
.sf-squiggle::after { content: ""; display: block; width: 12.5rem; height: 12px; margin-top: .5rem; background: url("../img/underline-squiggle.svg") center / 100% 100% no-repeat; }
.has-text-align-center.sf-squiggle::after { margin-inline: auto; }

/* Cards / listings */
.sf-cards .wp-block-post-template, .sf-cards.wp-block-post-template { gap: 2.5rem; }
.sf-card, .sf-cards .wp-block-post { display: flex; flex-direction: column; }
.sf-card .wp-block-post-featured-image, .sf-cards .wp-block-post-featured-image { margin-bottom: 1.5rem; }
.sf-card .wp-block-post-featured-image img, .sf-cards .wp-block-post-featured-image img, .sf-frame img { height: 21.875rem; object-fit: cover; width: 100%; border: var(--wp--custom--frame) solid var(--wp--preset--color--teal); box-sizing: border-box; transition: transform .3s; }
.sf-frame img { height: auto; }
.sf-cards .wp-block-post:nth-child(4n+2) .wp-block-post-featured-image img, .sf-frame--coral img { border-color: var(--wp--preset--color--coral); }
.sf-cards .wp-block-post:nth-child(4n+3) .wp-block-post-featured-image img, .sf-frame--yellow img { border-color: var(--wp--preset--color--yellow); }
.sf-cards .wp-block-post:nth-child(4n+4) .wp-block-post-featured-image img, .sf-frame--pink img { border-color: var(--wp--preset--color--pink); }
.sf-cards .wp-block-post-featured-image:hover img { transform: scale(1.02); }
.sf-cards .wp-block-post-title { font-size: 1.75rem; margin-bottom: .75rem; }
.sf-cards .wp-block-post-title a { color: inherit; text-decoration: none; }
.sf-cards .wp-block-post-title a:hover { color: var(--wp--preset--color--teal); }
.sf-cards .wp-block-post-date { font-size: 1rem; margin-bottom: .75rem; }
.sf-cards .wp-block-post-excerpt__excerpt { margin-bottom: .75rem; }
.sf-cards .wp-block-post-excerpt__more-link, .sf-cards .wp-block-read-more { font-weight: 700; color: inherit; text-decoration: none; position: relative; display: inline-block; padding-bottom: .35rem; }
.sf-cards .wp-block-post-excerpt__more-link::after, .sf-cards .wp-block-read-more::after { content: ""; position: absolute; left: 0; bottom: 0; height: 2.5px; width: 0; background: url("../img/underline.svg") center / 100% 100% no-repeat; transition: width .3s; }
.sf-cards .wp-block-post-excerpt__more-link:hover::after, .sf-cards .wp-block-read-more:hover::after { width: 100%; }
.sf-cards .wp-block-post-terms a { display: inline-block; background: var(--wp--preset--color--pink); color: var(--wp--preset--color--cream); font-size: .667rem; padding: .25rem .6rem; text-transform: uppercase; letter-spacing: .5px; text-decoration: none; }
.sf-tile { background: var(--wp--preset--color--teal); color: var(--wp--preset--color--white); padding: 1.6875rem; flex: 1; }
.sf-tile h4 { color: var(--wp--preset--color--white); }
.sf-tile img { border: 0; }
/* Story cards on torn paper */
.sf-story-card { position: relative; padding: 3rem 2.25rem 2.5rem; min-height: 24rem; background: url("../img/card-bg-1.svg") center / 100% 100% no-repeat; }
.sf-story-card:nth-child(5n+2) { background-image: url("../img/card-bg-2.svg"); }
.sf-story-card:nth-child(5n+3) { background-image: url("../img/card-bg-3.svg"); }
.sf-story-card:nth-child(5n+4) { background-image: url("../img/card-bg-4.svg"); }
.sf-story-card:nth-child(5n+5) { background-image: url("../img/card-bg-5.svg"); }
.sf-story-card__icon { width: 4.75rem; height: 4.75rem; margin-bottom: 1rem; }
.sf-story-card h4 { font-size: 1.5rem; }

/* Highlight (image + text) split */
.sf-split { max-width: 1550px; margin-inline: auto; padding: 3.375rem; }
.sf-split .wp-block-columns { align-items: center; gap: 5rem; }
.sf-split .wp-block-image img { border: var(--wp--custom--frame) solid var(--wp--preset--color--teal); }
.sf-split .sf-frame--coral img { border-color: var(--wp--preset--color--coral); }
.sf-split .sf-frame--yellow img { border-color: var(--wp--preset--color--yellow); }
.sf-split .sf-frame--pink img { border-color: var(--wp--preset--color--pink); }
.sf-split .sf-frame--green img, .sf-frame--green img { border-color: var(--wp--preset--color--green); }
.sf-split .sf-meta { list-style: none; padding: 0; margin: 0 0 1rem; font-size: 1rem; }
.sf-split .sf-meta li { display: inline; }
.sf-split .sf-meta li + li::before { content: " | "; }

/* Quote block */
.sf-quote { position: relative; text-align: center; padding: 4rem 3.375rem; min-height: 24rem; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.sf-quote::before, .sf-quote::after { content: ""; display: block; width: 5rem; height: 3.75rem; background: url("../img/quote.svg") center / contain no-repeat; margin: 0 auto 1.5rem; }
.sf-quote::after { transform: rotate(180deg); margin: 1.5rem auto 0; }
.sf-quote p:first-of-type { font-size: 2.25rem; font-weight: 300; line-height: 1.4; max-width: 60rem; margin-inline: auto; }
.sf-quote cite, .sf-quote .sf-quote__cite { display: block; font-style: normal; font-size: 1.5rem; font-weight: 700; margin-top: .75rem; }
.sf-quote.has-teal-background-color .sf-quote__cite, .sf-quote.has-purple-background-color .sf-quote__cite { color: var(--wp--preset--color--aqua); }
.wp-block-quote { position: relative; }
.wp-block-quote::before { content: "\201C"; position: absolute; top: .5rem; left: 1.25rem; font-size: 6.25rem; line-height: 1; color: var(--wp--preset--color--pink-light); font-style: normal; }

/* Accordion (core/details) */
.wp-block-details { border: 0; margin-bottom: .5rem; background: var(--wp--preset--color--white); }
.wp-block-details summary { background: var(--wp--preset--color--teal); color: var(--wp--preset--color--white); font-weight: 700; font-size: 1.5rem; padding: 1rem 1.6875rem 1rem 4rem; list-style: none; position: relative; cursor: pointer; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::before, .wp-block-details summary::after { content: ""; position: absolute; left: 1.6875rem; top: 50%; width: 1.25rem; height: 6px; border-radius: 3px; background: var(--wp--preset--color--cream); transform: translateY(-50%); transition: transform .3s; }
.wp-block-details summary::after { transform: translateY(-50%) rotate(90deg); }
.wp-block-details[open] summary::after { transform: translateY(-50%) rotate(0); }
.wp-block-details > :not(summary) { padding: 1.6875rem; }
.wp-block-details > :not(summary):last-child { margin-bottom: 0; }

/* Team */
.sf-team .wp-block-column { text-align: left; }
.sf-team img { width: 100%; aspect-ratio: 320 / 432; object-fit: cover; }
.sf-team h5 { color: var(--wp--preset--color--teal); font-size: 1.625rem; margin: 1rem 0 .5rem; }
.sf-team h5 span { display: block; font-weight: 400; font-size: 1.125rem; color: var(--wp--preset--color--black); }
.sf-team__bio { max-height: 18.75rem; overflow: auto; scrollbar-color: var(--wp--preset--color--teal) rgba(0,177,174,.1); font-size: 1rem; }

/* Partners */
.sf-partners { list-style: none; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem 3rem; }
.sf-partners li { width: 150px; }
.sf-partners img { width: 100%; aspect-ratio: 16/9; object-fit: contain; mix-blend-mode: multiply; }

/* Stats */
.sf-stat { font-size: 1.75rem; margin-bottom: .75rem; }
.sf-stat b { color: var(--wp--preset--color--teal); font-size: 2.75rem; }

/* Filter form (stories / workshops) */
.sf-filter { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: flex-end; margin-bottom: 2.5rem; }
.sf-filter select { background: transparent; border: 0; border-bottom: 2px solid var(--wp--preset--color--black); font: inherit; font-size: 1.125rem; padding: .5rem 2rem .5rem 0; min-width: 12rem; }
.sf-filter .sf-btn { padding-inline: 1.6rem; }

/* Forms (Contact Form 7 / core) */
.wpcf7 input:not([type=submit]):not([type=checkbox]), .wpcf7 textarea, .sf-form input:not([type=submit]), .sf-form textarea {
	width: 100%; background: transparent; border: 0; border-bottom: 2px solid currentColor; font: inherit; font-size: 1.3125rem; padding: .6rem 0; color: inherit; border-radius: 0;
}
.wpcf7 textarea, .sf-form textarea { border: 2px solid currentColor; height: 6.75rem; padding: .75rem; }
.wpcf7 input:focus, .wpcf7 textarea:focus, .sf-form input:focus, .sf-form textarea:focus { outline: none; border-color: var(--wp--preset--color--teal); }
.sf-form label { display: block; font-weight: 700; margin-bottom: .25rem; }
.sf-form__row { display: grid; gap: 1.5rem; grid-template-columns: 1fr 1fr; margin-bottom: 1.5rem; }
.sf-form__row--full { grid-template-columns: 1fr; }
.sf-form ::placeholder { color: inherit; opacity: .8; }

/* Newsletter band */
.sf-newsletter { padding: 3.375rem; color: var(--wp--preset--color--white); }
.sf-newsletter .wp-block-columns { max-width: 1550px; margin-inline: auto; gap: 5rem; align-items: flex-start; }
.sf-newsletter h2 { color: var(--wp--preset--color--white); font-size: 2.75rem; }
.sf-newsletter__arrow { width: 15.875rem; height: 15.875rem; transform: rotate(60deg); animation: sf-arrow 2s ease-in-out infinite; transform-origin: 30% 70%; }
.sf-newsletter__arrow img, .sf-newsletter__arrow svg { width: 100%; height: 100%; }
@keyframes sf-arrow { 0%,100% { transform: rotate(60deg); } 50% { transform: rotate(66deg); } }
.sf-newsletter__form { margin-top: 8rem; }
.sf-newsletter__form input:not([type=submit]) { border-bottom: 2px solid var(--wp--preset--color--white); font-size: 1.5rem; color: var(--wp--preset--color--white); }
.sf-newsletter__form input:not([type=submit]):focus { border-bottom-color: var(--wp--preset--color--pink-light); }
.sf-newsletter__form ::placeholder { color: rgba(255,255,255,.85); }
.sf-newsletter__form .sf-btn { color: var(--wp--preset--color--white); border-color: var(--wp--preset--color--white); }
.sf-newsletter__form .sf-btn::after { background-image: url("../img/underline-white.svg"); }
.sf-newsletter__form .sf-small a { color: var(--wp--preset--color--white); text-decoration: underline; }

/* ---------- 6. Footer ---------- */
.sf-footer { background: var(--wp--preset--color--aqua); color: var(--wp--preset--color--teal); padding: 1.5rem 3.375rem 2rem; }
.sf-footer__inner { max-width: 1550px; margin-inline: auto; }
.sf-footer h2, .sf-footer h4, .sf-footer h5 { color: var(--wp--preset--color--teal); }
.sf-footer a { color: var(--wp--preset--color--teal); }
.sf-footer a:hover { color: var(--wp--preset--color--black); }
.sf-footer__ack { text-align: center; font-size: 2.75rem; padding: 1.5rem 0 3rem; margin: 0 0 1.5rem; border-bottom: 1px solid var(--wp--preset--color--grey); line-height: 1.35; }
.sf-footer__row { display: grid; grid-template-columns: 5fr 7fr; gap: 3rem; padding-block: 1.5rem; }
.sf-footer__locations { border-right: 1px solid var(--wp--preset--color--grey); padding-right: 3rem; display: grid; gap: 1.5rem; }
.sf-location { display: grid; grid-template-columns: 6rem 1fr; gap: 1.25rem; align-items: start; font-size: 1rem; line-height: 1.5; }
.sf-location img { width: 6rem; height: 5rem; }
.sf-location h5 { margin-bottom: .35rem; font-size: 1.5rem; }
.sf-location p { margin: 0; }
.sf-footer__cta h4 { font-size: 2.75rem; }
.sf-footer__donate { display: inline-flex; align-items: center; justify-content: center; width: 15.9375rem; height: 5.4375rem; background: url("../img/btn-blob.svg") center / 100% 100% no-repeat; color: var(--wp--preset--color--white) !important; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; gap: .5rem; text-decoration: none; }
.sf-footer__donate img, .sf-footer__donate svg { width: 1.25rem; height: 1.25rem; transition: transform .2s; }
.sf-footer__donate:hover img, .sf-footer__donate:hover svg { transform: scale(1.3); }
.sf-footer__icons { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; margin-top: 2.5rem; }
.sf-footer__flags { display: flex; gap: .75rem; align-items: center; }
.sf-footer__flags span { display: inline-block; height: 2.125rem; padding: 0 .75rem; line-height: 2.125rem; font-size: .75rem; font-weight: 700; background: var(--wp--preset--color--white); color: var(--wp--preset--color--black); }
.sf-social { display: flex; gap: .75rem; list-style: none; padding: 0; margin: 0; }
.sf-social a { display: inline-flex; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--wp--preset--color--teal); align-items: center; justify-content: center; padding: 0; border: 0; }
.sf-social a::after { display: none; }
.sf-social svg, .sf-social img { width: 1.35rem; height: 1.35rem; }
.sf-footer__legal { border-top: 1px solid var(--wp--preset--color--grey); margin-top: 1.5rem; padding-top: 1.5rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; font-size: 1rem; }
.sf-footer__legal p { margin: 0 0 .25rem; }
.sf-footer__legal a + a::before { content: " | "; color: var(--wp--preset--color--teal); }
.sf-footer__acnc { display: inline-flex; align-items: center; justify-content: center; width: 8.625rem; height: 4.5rem; border: 2px solid var(--wp--preset--color--teal); border-radius: .5rem; font-size: .75rem; font-weight: 700; text-align: center; padding: .5rem; }
.sf-footer__child-safe { font-size: 1rem; margin-top: 1rem; }

/* ---------- 7. Archives, single, misc ---------- */
.sf-breadcrumbs { font-size: 1rem; margin-bottom: 1.5rem; }
.sf-breadcrumbs a { color: var(--wp--preset--color--teal); }
.sf-single .wp-block-post-featured-image img { height: 32.875rem; object-fit: cover; width: 100%; border: var(--wp--custom--frame) solid var(--wp--preset--color--teal); box-sizing: border-box; }
.sf-single .wp-block-post-date { font-size: 1rem; margin-bottom: 1.6875rem; }
.sf-pagination { margin-top: 3rem; }
.sf-pagination .wp-block-query-pagination-numbers, .sf-pagination { font-weight: 700; }
.sf-pagination .page-numbers { display: inline-block; padding: .4rem .7rem; color: var(--wp--preset--color--black); text-decoration: none; }
.sf-pagination .page-numbers.current, .sf-pagination .page-numbers:hover { color: var(--wp--preset--color--teal); }
.sf-post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; border-top: 1px solid var(--wp--preset--color--grey); padding-top: 2rem; margin-top: 3rem; }
.sf-post-nav .wp-block-post-navigation-link a { font-weight: 700; font-size: 1.5rem; text-decoration: none; }
.wp-block-post-navigation-link.has-text-align-right { text-align: right; }
.sf-video { aspect-ratio: 16 / 9; }
.sf-video iframe { width: 100%; height: 100%; }
.is-style-tilted img { transform: rotate(-2deg); box-shadow: 0 10px 30px rgba(0,0,0,.15); }
.is-style-torn-top { position: relative; }
.is-style-torn-top::before { content: ""; position: absolute; top: -18px; left: 0; right: 0; height: 20px; background: inherit; clip-path: polygon(0 100%, 3% 40%, 7% 90%, 12% 30%, 18% 80%, 24% 20%, 30% 70%, 37% 35%, 44% 85%, 50% 25%, 57% 75%, 63% 30%, 70% 90%, 77% 40%, 84% 80%, 90% 20%, 96% 70%, 100% 100%); }
.is-style-torn-bottom::after { content: ""; position: absolute; bottom: -18px; left: 0; right: 0; height: 20px; background: inherit; clip-path: polygon(0 0, 3% 60%, 7% 10%, 12% 70%, 18% 20%, 24% 80%, 30% 30%, 37% 65%, 44% 15%, 50% 75%, 57% 25%, 63% 70%, 70% 10%, 77% 60%, 84% 20%, 90% 80%, 96% 30%, 100% 0); }
.is-style-torn-bottom { position: relative; }
.sf-404 { text-align: center; padding: 6rem 3.375rem; }
.sf-404 h1 { font-size: 8rem; color: var(--wp--preset--color--teal); margin-bottom: 0; }

/* ---------- 8. Responsive ---------- */
@media (max-width: 1279px) {
	.sf-header__inner { padding: .75rem 1.5rem; }
	.sf-header__donate { display: inline-block; }
}
@media (max-width: 1023px) {
	.sf-cta h2, .sf-cta h1 { font-size: 2.625rem; }
	.sf-cta .wp-block-columns, .sf-newsletter .wp-block-columns, .sf-split .wp-block-columns { gap: 2.5rem; }
	.sf-newsletter__form { margin-top: 0; }
	.sf-accent-underline::after { display: none; }
	.sf-hero__bar, .sf-banner__bar { min-height: 8.125rem; padding: 1rem 1.5rem !important; }
	.sf-footer__row { grid-template-columns: 1fr; }
	.sf-footer__locations { border-right: 0; padding-right: 0; border-bottom: 1px solid var(--wp--preset--color--grey); padding-bottom: 1.5rem; }
	.sf-footer__ack { font-size: 2rem; }
}
@media (max-width: 767px) {
	.sf-intro h1, .sf-intro h2 { font-size: 2.125rem; }
	.sf-intro, .sf-section, .sf-wrap, .sf-cta, .sf-newsletter, .sf-highlights, .sf-split, .sf-footer, .sf-quote { padding-inline: 1.5rem; }
	.sf-hero__bar, .sf-banner__bar { flex-direction: column; align-items: flex-start; justify-content: center; min-height: 22rem; padding-top: 2.75rem !important; padding-bottom: 2rem !important; }
	.sf-hero__bar { align-items: center; text-align: center; gap: 1.25rem; padding-inline: 1.5rem !important; }
	.sf-hero__bar p { text-align: center; }
	.sf-hero__bar .wp-block-buttons { margin-left: 0 !important; }
	.sf-hero__bar p, .sf-banner__bar p { max-width: 100%; font-size: 1.25rem; }
	.sf-banner__bar h1 { flex: 0 0 auto; font-size: 2rem; }
	.sf-hero__bar .wp-block-buttons { margin-left: 0 !important; }
	.sf-hero__arrow { bottom: 22rem; }
	.sf-highlight { min-height: 12rem; }
	.sf-highlights .wp-block-columns.is-not-stacked-on-mobile { flex-wrap: wrap !important; }
	.sf-highlights .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column { flex-basis: 50% !important; }
	.sf-highlight h3 { font-size: 1.6rem; }
	.sf-highlight__shape { width: 10rem; height: 10rem; }
	.sf-post-nav, .sf-form__row { grid-template-columns: 1fr; }
	.sf-single .wp-block-post-featured-image img { height: 16rem; }
	.sf-footer__ack { font-size: 1.5rem; }
	.sf-location { grid-template-columns: 4rem 1fr; }
	.sf-location img { width: 4rem; height: 3.35rem; }
	.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; }
}
@media (max-width: 650px) {
	.sf-hero__slide--has-mobile .wp-block-cover__image-background { display: none; }
	.sf-hero__slide--has-mobile { background-size: cover; background-position: center; }
}
/* Editor niceties */
.editor-styles-wrapper .sf-hero__slide { position: relative !important; opacity: 1; min-height: 40vh !important; }
.editor-styles-wrapper .sf-hero { height: auto; }

/* Mobile drawer alignment */
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { justify-content: flex-start !important; align-items: flex-start !important; width: 100%; }
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; align-items: flex-start; text-align: left; }
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: block; width: 100%; }
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.05rem; font-weight: 400; padding: .4rem 0; }
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { top: 1.5rem; right: 1.5rem; }

/* ---------- 9. VDSA additions ---------- */
.sf-header__logo { display: flex; align-items: center; gap: .75rem; width: auto; }
.sf-header__logo img { width: 3.6rem; height: auto; }
.sf-header__wordmark { font-weight: 800; font-size: 1.05rem; line-height: 1.15; max-width: 9rem; color: var(--wp--preset--color--black); text-transform: uppercase; letter-spacing: .02em; }
.sf-footer__acnc-img { width: 8.625rem; height: auto; mix-blend-mode: multiply; }
.sf-pillars .wp-block-columns { gap: 0; }
.sf-newsletter-list li { margin-bottom: .75rem; }
.sf-paypal { max-width: 28rem; margin: 2rem auto 0; }
.sf-board .wp-block-column img { aspect-ratio: 1; object-fit: cover; border: var(--wp--custom--frame) solid var(--wp--preset--color--teal); }
.sf-board .wp-block-column:nth-child(2) img { border-color: var(--wp--preset--color--coral); }
.sf-board .wp-block-column:nth-child(3) img { border-color: var(--wp--preset--color--yellow); }
.sf-board .wp-block-column:nth-child(4) img { border-color: var(--wp--preset--color--pink); }
@media (max-width: 767px) { .sf-header__wordmark { display: none; } }

/* ---------- 10. Donate as a button in the header ---------- */
.sf-header .wp-block-navigation-item__content[href*="/donatenow/"],
.sf-header .sf-header__donate {
	background: var(--wp--preset--color--pink); color: var(--wp--preset--color--white) !important; border: 1px solid var(--wp--preset--color--pink);
	border-radius: 999px; padding: .7rem 1.6rem !important; margin-left: .75rem; font-weight: 800; font-size: 1rem; letter-spacing: .5px; text-transform: uppercase;
	box-shadow: 0 4px 14px rgba(0,0,0,.12); transition: background-color .2s, border-color .2s, transform .2s;
}
.sf-header .wp-block-navigation-item__content[href*="/donatenow/"]:hover,
.sf-header .sf-header__donate:hover { background: var(--wp--preset--color--teal); border-color: var(--wp--preset--color--teal); color: var(--wp--preset--color--white) !important; transform: translateY(-1px); }
.sf-header .sf-header__donate::after { display: none; }
.sf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content[href*="/donatenow/"] { display: inline-block; width: auto; margin: 1rem 0 0; }

/* ---------- 11. Community redesign components ---------- */
.sf-eyebrow { font-size: .875rem; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; color: var(--wp--preset--color--teal); margin-bottom: .6rem; }
.sf-section-title { font-size: 2.75rem; margin-bottom: 2.5rem; }
.sf-blade { display: inline-block; line-height: 0; }
.sf-blade svg { width: 100%; height: auto; display: block; }
/* Valerio strip */
.sf-valerio { padding: 4.5rem 3.375rem; }
.sf-valerio .wp-block-columns { max-width: 1332px; margin-inline: auto; align-items: center; gap: 4rem; }
.sf-valerio .wp-block-image img { border: var(--wp--custom--frame) solid var(--wp--preset--color--yellow); transform: rotate(-2deg); box-shadow: 0 10px 30px rgba(0,0,0,.12); }
.sf-valerio h2 { font-size: 2.75rem; line-height: 1.25; margin-bottom: 1.25rem; }
.sf-valerio p { font-size: 1.25rem; max-width: 46rem; }
/* Pillar cards with photo */
.sf-pillar-cards { max-width: 1440px; margin-inline: auto; padding: 5rem 3.375rem 2.5rem; }
.sf-pillar-cards .wp-block-columns { gap: 2.5rem; }
.sf-pillar-card { display: grid; gap: 1rem; }
.sf-pillar-card__media { position: relative; height: 19rem; }
.sf-pillar-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; clip-path: polygon(0 8%, 100% 0, 100% 92%, 0 100%); }
.sf-pillar-card__mark { position: absolute; left: -1.25rem; bottom: -1.75rem; width: 6.5rem; mix-blend-mode: multiply; opacity: .9; transition: transform .5s; }
.sf-pillar-card:hover .sf-pillar-card__mark { transform: rotate(8deg) translateY(-4px); }
.sf-pillar-card h3 { font-size: 1.875rem; line-height: 1.25; margin: 1.5rem 0 0; }
.sf-pillar-card p { margin: 0; }
/* Numbers band */
.sf-numbers { background: var(--wp--preset--color--teal); color: var(--wp--preset--color--white); padding: 4rem 3.375rem; }
.sf-numbers .wp-block-columns { max-width: 1332px; margin-inline: auto; gap: 2.5rem; text-align: center; }
.sf-numbers b { display: block; font-size: 4rem; line-height: 1; font-weight: 800; margin-bottom: .75rem; }
.sf-numbers p { margin: 0; font-size: 1.125rem; line-height: 1.4; }
/* Get involved doors */
.sf-doors { max-width: 1440px; margin-inline: auto; padding: 5rem 3.375rem; }
.sf-doors .wp-block-columns { gap: 2.5rem; }
.sf-door { background: var(--wp--preset--color--white); padding: 2.5rem 2.25rem; display: flex; flex-direction: column; gap: 1rem; min-height: 19rem; position: relative; overflow: hidden; height: 100%; }
.sf-door__blade { position: absolute; right: -2rem; bottom: -2rem; width: 10.5rem; opacity: .18; pointer-events: none; }
.sf-door__icon { width: 3.25rem; height: 3.25rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--wp--preset--color--white); background: var(--wp--preset--color--teal); }
.sf-door__icon svg { width: 1.75rem; height: 1.75rem; }
.sf-door--green .sf-door__icon { background: var(--wp--preset--color--green); }
.sf-door--magenta .sf-door__icon { background: var(--wp--preset--color--pink); }
.sf-door h3 { font-size: 1.875rem; line-height: 1.25; margin: 0; }
.sf-door p { flex: 1; margin: 0; }
.sf-door .sf-read-more { align-self: flex-start; position: relative; z-index: 1; }
/* Voices */
.sf-voices { background: var(--wp--preset--color--aqua); padding: 5rem 3.375rem; }
.sf-voices__inner { max-width: 1332px; margin-inline: auto; }
.sf-voices .wp-block-columns { gap: 2.5rem; }
.sf-voice { background: var(--wp--preset--color--white); padding: 2.25rem 2rem; position: relative; height: 100%; }
.sf-voice__blade { position: absolute; right: 1.25rem; top: 1.1rem; width: 2.75rem; }
.sf-voice p:first-of-type { font-size: 1.375rem; line-height: 1.5; font-style: italic; margin-bottom: 1.1rem; padding-right: 3rem; }
.sf-voice__who { font-weight: 700; color: var(--wp--preset--color--teal); margin: 0; }
.sf-voice__who small { display: block; color: var(--wp--preset--color--black); font-weight: 400; font-size: .95rem; }
/* Timeline */
.sf-timeline { background: var(--wp--preset--color--white); padding: 5rem 3.375rem; }
.sf-timeline__inner { max-width: 1332px; margin-inline: auto; }
.sf-timeline__track { position: relative; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1rem; }
.sf-timeline__track::before { content: ""; position: absolute; left: 0; right: 0; top: 2.1rem; height: 3px; background: var(--wp--preset--color--teal); opacity: .35; }
.sf-timeline__item { position: relative; display: grid; gap: .8rem; justify-items: start; }
.sf-timeline__item .sf-blade { height: 4.4rem; width: 3.5rem; display: flex; align-items: center; }
.sf-timeline__item b { font-size: 1.625rem; color: var(--wp--preset--color--teal); }
.sf-timeline__item p { font-size: 1rem; line-height: 1.4; margin: 0; padding-right: .5rem; }
/* Facts trio */
.sf-facts { max-width: 1440px; margin-inline: auto; padding: 5rem 3.375rem; }
.sf-facts .wp-block-columns { gap: 2.5rem; }
.sf-fact { display: grid; gap: .9rem; padding: 2.25rem; height: 100%; }
.sf-fact .sf-blade { width: 3.75rem; }
.sf-fact h3 { font-size: 1.75rem; line-height: 1.25; margin: 0; }
.sf-fact p { margin: 0; }
/* Split meta + secondary action */
.sf-split .sf-meta--muted { color: var(--wp--preset--color--grey); font-size: 1rem; margin: .5rem 0 1rem; }
.sf-split .sf-actions { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; margin-top: 1.5rem; }
/* News cards: category pill above title */
.sf-cards .wp-block-post-terms { margin: 1.25rem 0 .6rem; }
.sf-cards .wp-block-post-terms a { font-size: .7rem; padding: .3rem .65rem; }
.sf-cards .wp-block-post-terms a + a { display: none; }
.sf-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: 2.5rem; flex-wrap: wrap; }
.sf-section-head h2 { margin: 0; }
/* Footer blades instead of building icons */
.sf-location .sf-blade { width: 4rem; }
@media (max-width: 1023px) {
	.sf-timeline__track { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 2.5rem; }
	.sf-timeline__track::before { display: none; }
	.sf-numbers b { font-size: 3rem; }
}
@media (max-width: 767px) {
	.sf-valerio, .sf-pillar-cards, .sf-numbers, .sf-doors, .sf-voices, .sf-timeline, .sf-facts { padding-inline: 1.5rem; }
	.sf-timeline__track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sf-pillar-card__media { height: 15rem; }
	.sf-section-title { font-size: 2.125rem; }
}

/* Placeholder tile for posts without an image */
.sf-card-placeholder { display: flex; align-items: center; justify-content: center; height: 21.875rem; width: 100%; box-sizing: border-box; background: var(--wp--preset--color--white); border: var(--wp--custom--frame) solid var(--wp--preset--color--teal); }
.sf-cards .wp-block-post:nth-child(4n+2) .sf-card-placeholder { border-color: var(--wp--preset--color--coral); }
.sf-cards .wp-block-post:nth-child(4n+3) .sf-card-placeholder { border-color: var(--wp--preset--color--yellow); }
.sf-cards .wp-block-post:nth-child(4n+4) .sf-card-placeholder { border-color: var(--wp--preset--color--pink); }
.sf-door p, .sf-voice p:first-of-type { font-size: 1.125rem; }
.sf-voice p:first-of-type { font-size: 1.3rem; }

/* ---------- 12. Review fixes ---------- */
/* 1. voices: cards hug their content, equal padding top and bottom */
.sf-voices .wp-block-columns { align-items: flex-start; }
.sf-voice { height: auto; }
/* 2. footer donate: clean pill aligned with the heading */
.sf-footer__donate { width: auto; height: auto; background: var(--wp--preset--color--teal); border-radius: 999px; padding: 1rem 2rem; box-shadow: none; }
.sf-footer__donate:hover { background: var(--wp--preset--color--pink); }
/* 3. split images share one crop ratio */
.sf-split .wp-block-image img, .sf-valerio-story .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.sf-valerio-story .wp-block-image img { aspect-ratio: 1; }
/* 4. board members without a portrait get a placeholder tile like the news cards */
.sf-board .sf-portrait-placeholder { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; width: 100%; box-sizing: border-box; background: var(--wp--preset--color--white); border: var(--wp--custom--frame) solid var(--wp--preset--color--coral); }
.sf-board .wp-block-column:nth-child(3) .sf-portrait-placeholder { border-color: var(--wp--preset--color--yellow); }
/* 5. banner bar: title and subtitle share a baseline */
.sf-banner__bar { align-items: baseline; }
@media (max-width: 767px) { .sf-banner__bar { align-items: flex-start; } }
