/*
 * Flora Fauna Fun Resources. Scoped under .ffr.ffr-root; classes use the ffr- prefix.
 * Brand tokens come from the child theme (--title-font, --body-font, Ink #1a3a2f,
 * Mint #e8f4ec) with fallbacks so the local test page renders the same.
 * Component rules use .ffr.ffr-root .ffr-x because the theme's .entry-content
 * p / li / a rules out-specify single-class rules; link colours carry !important.
 * No url() anywhere.
 */

.ffr {
	--ffr-ink: #1a3a2f;
	--ffr-text: #33544a;
	--ffr-muted: #557268;
	--ffr-line: rgba(26, 58, 47, .12);
	--ffr-mint: #e8f4ec;
	--ffr-sky: #e9f2fd;
	--ffr-sky-ink: #1f4f8f;
	--ffr-leaf-ink: #2d6a3e;
	--ffr-head: var(--title-font, Fredoka, Arial, Helvetica, sans-serif);
	--ffr-body: var(--body-font, "Nunito Sans", Arial, Helvetica, sans-serif);
	box-sizing: border-box;
	color: var(--ffr-text);
	font-family: var(--ffr-body);
	font-size: 17px;
	line-height: 1.55;
	margin: 1.5em 0 2em;
	max-width: 100%;
}

.ffr *,
.ffr *::before,
.ffr *::after { box-sizing: border-box; }

.ffr.ffr-root ul,
.ffr.ffr-root ol { list-style: none; margin: 0; padding: 0; }
.ffr.ffr-root li { margin: 0; padding: 0; }
.ffr.ffr-root li::before { content: none; }
.ffr.ffr-root p { margin: 0; padding: 0; }
.ffr.ffr-root img { height: auto; max-width: 100%; }

.ffr .ffr-sr {
	clip: rect(0 0 0 0);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.ffr a:focus-visible {
	outline: 3px solid var(--ffr-ink);
	outline-offset: 3px;
}

/* ------------------------------------------------------------- hub grid */

.ffr.ffr-root .ffr-grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 599px) {
	.ffr.ffr-root .ffr-grid { gap: 18px; grid-template-columns: minmax(0, 1fr); }
}

.ffr.ffr-root .ffr-item { display: flex; min-width: 0; }

.ffr.ffr-root .ffr-card {
	background: #ffffff;
	border: 1px solid var(--ffr-line);
	border-radius: 16px;
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease;
	width: 100%;
}

.ffr.ffr-root .ffr-card:hover {
	box-shadow: 0 18px 38px rgba(26, 58, 47, .14);
	transform: translateY(-3px);
}

.ffr.ffr-root .ffr-thumb,
.ffr.ffr-root .ffr-feature-thumb {
	aspect-ratio: 16 / 9;
	background: var(--ffr-mint);
	display: block;
	overflow: hidden;
}

.ffr.ffr-root .ffr-thumb img,
.ffr.ffr-root .ffr-feature-thumb img {
	aspect-ratio: 16 / 9;
	border-radius: 0;
	display: block;
	height: auto;
	margin: 0;
	object-fit: cover;
	width: 100%;
}

.ffr.ffr-root .ffr-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 18px 22px 22px;
}

.ffr.ffr-root .ffr-title {
	color: var(--ffr-ink);
	font-family: var(--ffr-head);
	font-size: 1.375rem;
	font-weight: 600;
	line-height: 1.2;
	margin: 0 0 6px;
	padding: 0;
}

.ffr.ffr-root a.ffr-title-link { color: var(--ffr-ink) !important; text-decoration: none !important; }
.ffr.ffr-root a.ffr-title-link:hover { text-decoration: underline !important; text-underline-offset: 3px; }

.ffr.ffr-root .ffr-meta {
	color: var(--ffr-leaf-ink);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: .05em;
	margin: 0 0 10px;
	text-transform: uppercase;
}

.ffr.ffr-hub-habitats .ffr-meta { color: var(--ffr-sky-ink); }

.ffr.ffr-root .ffr-line { color: var(--ffr-text); font-size: 1rem; line-height: 1.55; margin: 0 0 18px; }

.ffr.ffr-root .ffr-actions { margin-top: auto; }

.ffr.ffr-root a.ffr-btn {
	background: var(--ffr-ink);
	border-radius: 999px;
	color: #ffffff !important;
	display: inline-block;
	font-family: var(--ffr-body);
	font-size: 0.9375rem;
	font-weight: 800;
	line-height: 1.2;
	min-height: 44px;
	padding: 13px 22px;
	text-align: center;
	text-decoration: none !important;
}

.ffr.ffr-root a.ffr-btn::after { content: " \2192"; }
.ffr.ffr-root a.ffr-btn:hover { background: #0f261e; color: #ffffff !important; }

/* ------------------------------------------------------- homepage band */

.ffr.ffr-home { margin: 0; }

.ffr.ffr-root .ffr-features {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 760px) {
	.ffr.ffr-root .ffr-features { grid-template-columns: minmax(0, 1fr); }
}

.ffr.ffr-root .ffr-feature {
	border: 1px solid var(--ffr-line);
	border-radius: 16px;
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
}

.ffr.ffr-root .ffr-feature-habitats { background: linear-gradient(135deg, #e9f2fd, #dfeafb); }
.ffr.ffr-root .ffr-feature-models { background: linear-gradient(135deg, #eef7e6, #e8f4ec); }

.ffr.ffr-root .ffr-feature-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 20px 24px 20px;
}

.ffr.ffr-root .ffr-feature .ffr-line { font-size: 0.9375rem; margin-bottom: 10px; }

.ffr.ffr-root .ffr-sublinks { margin: 0 0 8px; }
.ffr.ffr-root .ffr-sublinks li { border-top: 1px solid var(--ffr-line); }

.ffr.ffr-root a.ffr-sub {
	color: var(--ffr-ink) !important;
	display: block;
	font-size: 0.9375rem;
	font-weight: 700;
	min-height: 42px;
	padding: 10px 0;
	text-decoration: none !important;
}

.ffr.ffr-root a.ffr-sub:hover { text-decoration: underline !important; text-underline-offset: 3px; }

.ffr.ffr-root .ffr-more { margin-top: auto; }

.ffr.ffr-root a.ffr-seeall {
	display: inline-block;
	font-size: 0.875rem;
	font-weight: 800;
	min-height: 42px;
	padding: 10px 0;
	text-decoration: none !important;
}

.ffr.ffr-root a.ffr-seeall::after { content: " \2192"; }
.ffr.ffr-root a.ffr-seeall:hover { text-decoration: underline !important; text-underline-offset: 3px; }
.ffr.ffr-root .ffr-feature-habitats a.ffr-seeall { color: var(--ffr-sky-ink) !important; }
.ffr.ffr-root .ffr-feature-models a.ffr-seeall { color: var(--ffr-leaf-ink) !important; }

@media (max-width: 480px) {
	.ffr.ffr-root .ffr-body,
	.ffr.ffr-root .ffr-feature-body { padding: 16px 18px 18px; }
}

@media (prefers-reduced-motion: reduce) {
	.ffr.ffr-root .ffr-card { transition: none; }
	.ffr.ffr-root .ffr-card:hover { transform: none; }
}
