/*
Theme Name: Shirleys Field Community
Author: Shirleys Field Community
Description: Block theme for an AI technology services company serving community farms, gardens, charities and social enterprises.
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.0
Version: 1.0.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: shirleys-field-community
*/

/* ---------- Base ---------- */

:root {
	--sfc-ink: #0e1a14;
	--sfc-forest: #16352a;
	--sfc-leaf: #2f6b4f;
	--sfc-sprout: #b9e36b;
	--sfc-clay: #c2693e;
	--sfc-cream: #f5f2e9;
	--sfc-paper: #ffffff;
	--sfc-stone: #56625a;
	--sfc-line: #dcd8cb;
	--sfc-radius: 18px;
	--sfc-radius-sm: 10px;
	--sfc-shadow: 0 1px 2px rgba(14, 26, 20, .06), 0 8px 24px rgba(14, 26, 20, .06);
	--sfc-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
img, svg { max-width: 100%; height: auto; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.wp-site-blocks { display: flex; flex-direction: column; min-height: 100vh; }
.wp-site-blocks > main { flex: 1 0 auto; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible {
	outline: 3px solid var(--sfc-clay);
	outline-offset: 2px;
}
.screen-reader-text:not(:focus) { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; }

/* ---------- Header ---------- */

.sfc-header-wrap {
	position: sticky;
	top: 0;
	z-index: 50;
}
.sfc-header {
	position: relative;
	z-index: 0;
	border-bottom: 1px solid rgba(14, 26, 20, .08);
}
/* Blur lives on a pseudo-element: backdrop-filter on the header itself would
   trap the fixed-position mobile menu overlay inside the header box. */
.sfc-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(245, 242, 233, .9);
	backdrop-filter: saturate(160%) blur(12px);
	-webkit-backdrop-filter: saturate(160%) blur(12px);
}
.admin-bar .sfc-header-wrap { top: 32px; }
@media (max-width: 782px) { .admin-bar .sfc-header-wrap { top: 46px; } }
@media (max-width: 600px) { .admin-bar .sfc-header-wrap { top: 0; } }
.sfc-header__inner { gap: 1.5rem; }
.sfc-brand { display: flex; align-items: center; gap: .6rem; text-decoration: none; }
.sfc-brand .wp-block-site-title { margin: 0; }
.sfc-brand .wp-block-site-title a { text-decoration: none; color: var(--sfc-ink); font-weight: 750; letter-spacing: -0.02em; }
.sfc-logo-mark { display: inline-flex; width: 30px; height: 30px; flex: 0 0 30px; }
.sfc-nav .wp-block-navigation-item__content { text-decoration: none; font-weight: 550; color: var(--sfc-ink); padding: .35rem 0; }
.sfc-nav .wp-block-navigation-item__content:hover,
.sfc-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--sfc-leaf); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.sfc-header .wp-block-button__link { padding: .6rem 1.1rem; font-size: .95rem; }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--sfc-cream) !important; padding: 2rem 1.25rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.35rem; }
.sfc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.sfc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; }
.sfc-brand .wp-block-site-title { white-space: nowrap; }
@media (max-width: 1150px) { .sfc-header .sfc-header__cta { display: none; } }
/* Collapse to the overlay menu below 1000px (core only does this below 600px). */
@media (max-width: 999px) {
	.sfc-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.sfc-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }

/* ---------- Sections ---------- */

.sfc-section { padding-block: clamp(4rem, 9vw, 7.5rem); }
.sfc-section--tight { padding-block: clamp(2.5rem, 5vw, 4rem); }
.sfc-dark { background: var(--sfc-ink); color: #e9efe9; }
.sfc-forest { background: var(--sfc-forest); color: #e9efe9; }
.sfc-paper { background: var(--sfc-paper); }
.sfc-cream { background: var(--sfc-cream); }
.sfc-dark :where(h1, h2, h3, h4), .sfc-forest :where(h1, h2, h3, h4) { color: #fff; }
.sfc-dark a:not(.wp-block-button__link), .sfc-forest a:not(.wp-block-button__link) { color: var(--sfc-sprout); }
.sfc-section > * + * { margin-block-start: 1.25rem; }

.sfc-eyebrow {
	font-family: var(--sfc-mono);
	font-size: .8rem !important;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--sfc-leaf);
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: .55rem;
}
.sfc-eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 2px; background: currentColor; transform: rotate(45deg); }
.sfc-dark .sfc-eyebrow, .sfc-forest .sfc-eyebrow { color: var(--sfc-sprout); }
.sfc-lead { font-size: clamp(1.125rem, 1.6vw, 1.3rem) !important; line-height: 1.6; color: var(--sfc-stone); max-width: 44rem; }
.sfc-dark .sfc-lead, .sfc-forest .sfc-lead { color: #c3d0c7; }
.sfc-muted { color: var(--sfc-stone); }
.sfc-dark .sfc-muted, .sfc-forest .sfc-muted { color: #a9b8ad; }
.sfc-center { text-align: center; }
.sfc-center .sfc-lead { margin-inline: auto; }
.sfc-intro { max-width: 48rem; }
.sfc-intro.sfc-center { margin-inline: auto !important; }

/* ---------- Hero ---------- */

.sfc-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(4rem, 9vw, 7rem) clamp(4rem, 8vw, 6rem);
	background:
		radial-gradient(60rem 30rem at 85% 10%, rgba(185, 227, 107, .14), transparent 60%),
		radial-gradient(40rem 30rem at 0% 100%, rgba(47, 107, 79, .45), transparent 60%),
		var(--sfc-ink);
	color: #e9efe9;
}
.sfc-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
	background-size: 44px 44px;
	mask-image: linear-gradient(180deg, #000 0%, transparent 85%);
	-webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 85%);
	pointer-events: none;
}
.sfc-hero > * { position: relative; z-index: 1; }
.sfc-hero h1 { color: #fff; font-size: clamp(2.5rem, 5.6vw, 4.4rem); line-height: 1.04; letter-spacing: -0.035em; margin-block: 1rem 0; }
.sfc-hero h1 em { font-style: normal; color: var(--sfc-sprout); }
.sfc-hero .sfc-lead { color: #c3d0c7; margin-top: 1.4rem; }
.sfc-hero .wp-block-buttons { margin-top: 2rem; }
.sfc-hero-art { display: block; width: 100%; }
.sfc-hero-art svg { display: block; width: 100%; filter: drop-shadow(0 30px 60px rgba(0,0,0,.35)); }
.sfc-hero-note { font-size: .92rem !important; color: #a9b8ad; margin-top: 1.75rem !important; display: flex; align-items: center; gap: .5rem; }
.sfc-hero-note::before { content: ""; width: 22px; height: 1px; background: var(--sfc-sprout); }

.sfc-page-hero {
	padding-block: clamp(3.5rem, 7vw, 5.5rem);
	background:
		radial-gradient(50rem 25rem at 90% 0%, rgba(185, 227, 107, .12), transparent 60%),
		var(--sfc-ink);
	color: #e9efe9;
}
.sfc-page-hero h1 { color: #fff; font-size: clamp(2.2rem, 4.6vw, 3.6rem); line-height: 1.07; letter-spacing: -0.03em; margin-block: .9rem 0; max-width: 52rem; }
.sfc-page-hero .sfc-lead { color: #c3d0c7; margin-top: 1.25rem; }

/* ---------- Strip ---------- */

.sfc-strip { border-bottom: 1px solid var(--sfc-line); background: var(--sfc-paper); }
.sfc-strip__label { font-family: var(--sfc-mono); font-size: .78rem !important; letter-spacing: .1em; text-transform: uppercase; color: var(--sfc-stone); margin: 0 !important; }
.sfc-strip__list { display: flex; flex-wrap: wrap; gap: .6rem 2rem; list-style: none; padding: 0; margin: 0 !important; font-weight: 650; color: var(--sfc-forest); }
.sfc-strip__list li { display: flex; align-items: center; gap: .55rem; }
.sfc-strip__list li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--sfc-clay); }

/* ---------- Cards ---------- */

.sfc-cards { gap: 1.25rem !important; margin-top: 3rem !important; }
.sfc-card {
	background: var(--sfc-paper);
	border: 1px solid var(--sfc-line);
	border-radius: var(--sfc-radius);
	padding: 1.75rem 1.6rem 1.6rem;
	box-shadow: var(--sfc-shadow);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
	height: 100%;
}
.sfc-card:hover { transform: translateY(-3px); border-color: #c8d4c4; box-shadow: 0 2px 4px rgba(14,26,20,.06), 0 18px 40px rgba(14,26,20,.09); }
.sfc-card > * + * { margin-block-start: .7rem; }
.sfc-card h3 { font-size: 1.22rem; letter-spacing: -0.015em; margin-top: 1.1rem; }
.sfc-card p { color: var(--sfc-stone); font-size: 1rem; line-height: 1.6; }
.sfc-card .wp-block-list { color: var(--sfc-stone); font-size: .97rem; }
.sfc-dark .sfc-card, .sfc-forest .sfc-card { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.1); box-shadow: none; }
.sfc-dark .sfc-card p, .sfc-forest .sfc-card p, .sfc-dark .sfc-card .wp-block-list, .sfc-forest .sfc-card .wp-block-list { color: #b7c5bb; }
.sfc-card--flat { box-shadow: none; }
.sfc-card--flat:hover { transform: none; box-shadow: none; }

.sfc-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: #e8f0df;
	color: var(--sfc-leaf);
}
.sfc-icon svg { width: 24px; height: 24px; }
.sfc-dark .sfc-icon, .sfc-forest .sfc-icon { background: rgba(185, 227, 107, .12); color: var(--sfc-sprout); }
.sfc-icon--clay { background: #f6e4da; color: var(--sfc-clay); }

.sfc-tag {
	display: inline-block;
	font-family: var(--sfc-mono);
	font-size: .72rem !important;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .3rem .6rem;
	border-radius: 999px;
	background: #eef3e6;
	color: var(--sfc-leaf);
	font-weight: 600;
}
.sfc-tag--clay { background: #f6e4da; color: #9a4b26; }
.sfc-dark .sfc-tag, .sfc-forest .sfc-tag { background: rgba(185,227,107,.14); color: var(--sfc-sprout); }

/* ---------- Check list ---------- */

.sfc-check { list-style: none; padding-left: 0 !important; }
.sfc-check li { position: relative; padding-left: 1.9rem; margin-block: .55rem; }
.sfc-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .2em;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: #e2eed3 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232f6b4f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 70% no-repeat;
}
.sfc-dark .sfc-check li::before, .sfc-forest .sfc-check li::before {
	background: rgba(185,227,107,.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b9e36b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 70% no-repeat;
}

/* ---------- Steps ---------- */

.sfc-steps { counter-reset: sfc-step; gap: 1.25rem !important; margin-top: 3rem !important; }
.sfc-step { counter-increment: sfc-step; position: relative; padding: 1.6rem 1.5rem 1.5rem; border-top: 2px solid var(--sfc-leaf); background: var(--sfc-paper); border-radius: 0 0 var(--sfc-radius-sm) var(--sfc-radius-sm); }
.sfc-step::before { content: counter(sfc-step, decimal-leading-zero); font-family: var(--sfc-mono); font-size: .85rem; font-weight: 700; color: var(--sfc-clay); letter-spacing: .08em; }
.sfc-step h3 { font-size: 1.15rem; margin-top: .6rem; }
.sfc-step p { color: var(--sfc-stone); font-size: .98rem; margin-top: .5rem; }
.sfc-dark .sfc-step, .sfc-forest .sfc-step { background: rgba(255,255,255,.04); border-top-color: var(--sfc-sprout); }
.sfc-dark .sfc-step p, .sfc-forest .sfc-step p { color: #b7c5bb; }
.sfc-dark .sfc-step::before, .sfc-forest .sfc-step::before { color: var(--sfc-sprout); }

/* ---------- Split / feature rows ---------- */

.sfc-split { gap: clamp(2rem, 5vw, 4.5rem) !important; }
.sfc-feature { padding-block: clamp(2.5rem, 5vw, 3.5rem); border-top: 1px solid var(--sfc-line); }
.sfc-feature:first-child { border-top: 0; }
.sfc-feature h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); }
.sfc-panel {
	background: var(--sfc-paper);
	border: 1px solid var(--sfc-line);
	border-radius: var(--sfc-radius);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	box-shadow: var(--sfc-shadow);
}
.sfc-panel--dark { background: var(--sfc-ink); color: #e9efe9; border-color: var(--sfc-ink); }
.sfc-panel--dark h3 { color: #fff; }
.sfc-panel--dark p { color: #b7c5bb; }
.sfc-panel--dark a { color: var(--sfc-sprout); }
.sfc-panel--dark .sfc-contact-list li { color: #e9efe9; }
.sfc-panel > * + * { margin-block-start: .8rem; }

/* Illustrative UI mock used in panels */
.sfc-mock { font-size: .92rem; }
.sfc-mock__bar { display: flex; align-items: center; gap: .4rem; margin-bottom: 1rem; }
.sfc-mock__bar span { width: 9px; height: 9px; border-radius: 50%; background: var(--sfc-line); }
.sfc-mock__bar b { margin-left: .5rem; font-family: var(--sfc-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sfc-stone); font-weight: 600; }
.sfc-mock__row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .7rem .85rem; border-radius: 10px; background: var(--sfc-cream); margin-top: .5rem; }
.sfc-mock__row strong { font-weight: 650; color: var(--sfc-ink); }
.sfc-mock__row em { font-style: normal; font-family: var(--sfc-mono); font-size: .8rem; color: var(--sfc-leaf); background: #e2eed3; padding: .15rem .5rem; border-radius: 999px; white-space: nowrap; }
.sfc-mock__row em.is-clay { color: #9a4b26; background: #f6e4da; }
.sfc-mock__ai { margin-top: 1rem; padding: .9rem 1rem; border-radius: 12px; border: 1px dashed #b8c9b0; color: var(--sfc-forest); background: #f4f8ee; line-height: 1.55; }
.sfc-mock__ai b { font-family: var(--sfc-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sfc-leaf); display: block; margin-bottom: .25rem; }

/* ---------- Stats ---------- */

.sfc-facts { gap: 1rem !important; margin-top: 2.5rem !important; }
.sfc-fact { border-left: 2px solid var(--sfc-sprout); padding: .2rem 0 .2rem 1.1rem; }
.sfc-fact__value { font-size: clamp(1.5rem, 2.3vw, 2rem) !important; white-space: nowrap; font-weight: 750; letter-spacing: -0.03em; line-height: 1.1; color: #fff; margin: 0 !important; }
.sfc-fact__label { color: #a9b8ad; font-size: .95rem !important; margin-top: .3rem !important; }
.sfc-paper .sfc-fact__value, .sfc-cream .sfc-fact__value { color: var(--sfc-ink); }
.sfc-paper .sfc-fact { border-left-color: var(--sfc-leaf); }
.sfc-paper .sfc-fact__label { color: var(--sfc-stone); }

/* ---------- CTA ---------- */

.sfc-cta-wrap { padding-block: clamp(3rem, 7vw, 5.5rem); }
.sfc-cta {
	position: relative;
	overflow: hidden;
	border-radius: 28px;
	padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.5rem, 5vw, 4.5rem);
	background:
		radial-gradient(40rem 20rem at 100% 0%, rgba(185, 227, 107, .22), transparent 60%),
		linear-gradient(135deg, var(--sfc-forest), var(--sfc-ink));
	color: #e9efe9;
}
.sfc-cta h2 { color: #fff; font-size: clamp(1.9rem, 3.6vw, 2.8rem); letter-spacing: -0.03em; max-width: 40rem; }
.sfc-cta p { color: #c3d0c7; max-width: 38rem; font-size: 1.12rem; }
.sfc-cta .wp-block-buttons { margin-top: 1.75rem; }

/* ---------- Buttons ---------- */

.wp-block-button__link { transition: transform .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.sfc-dark .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.sfc-forest .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.sfc-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.sfc-page-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.sfc-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--sfc-sprout); color: var(--sfc-ink); }
.sfc-dark .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.sfc-forest .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.sfc-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.sfc-page-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.sfc-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: #cdf08a; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 1.5px solid currentColor; }
.sfc-dark .is-style-outline .wp-block-button__link, .sfc-forest .is-style-outline .wp-block-button__link,
.sfc-hero .is-style-outline .wp-block-button__link, .sfc-page-hero .is-style-outline .wp-block-button__link,
.sfc-cta .is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.4); }
.sfc-dark .is-style-outline .wp-block-button__link:hover, .sfc-forest .is-style-outline .wp-block-button__link:hover,
.sfc-hero .is-style-outline .wp-block-button__link:hover, .sfc-page-hero .is-style-outline .wp-block-button__link:hover,
.sfc-cta .is-style-outline .wp-block-button__link:hover { border-color: #fff; }

.sfc-link-arrow a, a.sfc-link-arrow { font-weight: 650; text-decoration: none; color: var(--sfc-leaf); }
.sfc-link-arrow a::after, a.sfc-link-arrow::after { content: " →"; transition: margin .15s ease; }
.sfc-link-arrow a:hover::after { margin-left: .2rem; }

/* ---------- FAQ ---------- */

.sfc-faq .wp-block-details {
	border-bottom: 1px solid var(--sfc-line);
	padding-block: 1.15rem;
	margin: 0 !important;
}
.sfc-faq .wp-block-details summary { font-weight: 650; font-size: 1.1rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.sfc-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.sfc-faq .wp-block-details summary::after { content: "+"; font-family: var(--sfc-mono); color: var(--sfc-leaf); font-size: 1.3rem; line-height: 1; }
.sfc-faq .wp-block-details[open] summary::after { content: "−"; }
.sfc-faq .wp-block-details p { color: var(--sfc-stone); margin-top: .75rem; }

/* ---------- Prose (legal pages) ---------- */

.sfc-prose h2 { font-size: 1.5rem; margin-top: 2.5rem; }
.sfc-prose h3 { font-size: 1.15rem; margin-top: 1.75rem; }
.sfc-prose p, .sfc-prose li { color: #2c3a32; line-height: 1.75; }

/* ---------- Contact form ---------- */

.sfc-form { display: grid; gap: 1rem; }
.sfc-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .sfc-form__row { grid-template-columns: 1fr; } }
.sfc-form label { display: block; font-weight: 600; font-size: .95rem; margin-bottom: .35rem; color: var(--sfc-ink); }
.sfc-form label span { color: var(--sfc-stone); font-weight: 400; }
.sfc-form input, .sfc-form select, .sfc-form textarea {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	font-size: 1rem;
	padding: .8rem .95rem;
	border-radius: var(--sfc-radius-sm);
	border: 1.5px solid var(--sfc-line);
	background: #fff;
	color: var(--sfc-ink);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.sfc-form input:focus, .sfc-form select:focus, .sfc-form textarea:focus { border-color: var(--sfc-leaf); box-shadow: 0 0 0 4px rgba(47,107,79,.14); outline: none; }
.sfc-form textarea { min-height: 9rem; resize: vertical; }
.sfc-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.sfc-form__consent { font-size: .9rem; color: var(--sfc-stone); display: flex; gap: .6rem; align-items: flex-start; }
.sfc-form__consent input { width: auto; margin-top: .25rem; }
.sfc-form button {
	justify-self: start;
	font: inherit;
	font-weight: 650;
	padding: .9rem 1.5rem;
	border-radius: 999px;
	border: 0;
	background: var(--sfc-ink);
	color: #fff;
	cursor: pointer;
	transition: background .15s ease, transform .15s ease;
}
.sfc-form button:hover { background: var(--sfc-forest); transform: translateY(-1px); }
.sfc-notice { padding: 1rem 1.15rem; border-radius: var(--sfc-radius-sm); font-weight: 550; margin-bottom: 1rem; }
.sfc-notice--ok { background: #e2eed3; color: #234d39; }
.sfc-notice--err { background: #f6e4da; color: #7f3a1b; }

.sfc-contact-list { list-style: none; padding: 0 !important; }
.sfc-contact-list li { padding-block: .9rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.sfc-contact-list li:last-child { border-bottom: 0; }
.sfc-contact-list b { display: block; font-family: var(--sfc-mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sfc-sprout); font-weight: 600; margin-bottom: .2rem; }

/* ---------- Footer ---------- */

.sfc-footer { background: var(--sfc-ink); color: #b7c5bb; padding-block: clamp(3.5rem, 6vw, 5rem) 2rem; font-size: .97rem; }
.sfc-footer a { color: #e9efe9; text-decoration: none; }
.sfc-footer a:hover { color: var(--sfc-sprout); text-decoration: underline; }
.sfc-footer h2 { font-family: var(--sfc-mono); font-size: .78rem !important; letter-spacing: .12em; text-transform: uppercase; color: var(--sfc-sprout); font-weight: 600; margin-bottom: 1rem; }
.sfc-footer .wp-block-site-title a { color: #fff; font-weight: 750; letter-spacing: -0.02em; font-size: 1.35rem; }
.sfc-footer ul { list-style: none; padding: 0; margin: 0; }
.sfc-footer li { margin-block: .55rem; }
.sfc-footer__base { border-top: 1px solid rgba(255,255,255,.1); margin-top: 3rem !important; padding-top: 1.5rem; font-size: .88rem; color: #8b9a90; }
.sfc-footer__base p { margin: 0; }

/* ---------- Posts ---------- */

.sfc-post-card { background: var(--sfc-paper); border: 1px solid var(--sfc-line); border-radius: var(--sfc-radius); padding: 1.6rem; height: 100%; }
.sfc-post-card .wp-block-post-title a { text-decoration: none; color: var(--sfc-ink); }

/* ---------- Responsive ---------- */

@media (max-width: 781px) {
	.sfc-hero .wp-block-columns { gap: 2.5rem; }
	.sfc-hero-art { max-width: 520px; margin-inline: auto; }
	.sfc-reverse-mobile { flex-direction: column-reverse; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
