/* Scoped additions for Kadence. Theme variables retain Fern & Shelf defaults. */
.fspl-content-area {
	width: 100%;
}

.fspl-container {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: var(--global-content-width, 1200px);
	padding: clamp(1.25rem, 3vw, 3rem) var(--global-content-edge-padding, 1.5rem) 4rem;
}

.fspl-library,
.fspl-profile {
	color: var(--global-palette3, #26382d);
}

.fspl-library *,
.fspl-profile * {
	box-sizing: border-box;
}

.fspl-library a,
.fspl-profile a {
	text-underline-offset: 0.18em;
}

.fspl-library a:focus-visible,
.fspl-profile a:focus-visible,
.fspl-library button:focus-visible,
.fspl-profile button:focus-visible,
.fspl-library input:focus-visible,
.fspl-library select:focus-visible {
	border-radius: 3px;
	outline: 3px solid var(--global-palette1, #466b50);
	outline-offset: 3px;
}

.fspl-breadcrumb {
	font-size: 0.88rem;
	margin-block: 0 2rem;
}

.fspl-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.fspl-breadcrumb li:not(:last-child)::after {
	color: var(--global-palette6, #6c786f);
	content: "/";
	margin-left: 0.35rem;
}

.fspl-eyebrow {
	color: var(--global-palette1, #466b50);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	margin-block: 0 0.55rem;
	text-transform: uppercase;
}

.fspl-archive-header {
	align-items: center;
	display: grid;
	gap: clamp(1.5rem, 5vw, 4rem);
	grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
}

.fspl-archive-header__image {
	margin: 0;
}

.fspl-archive-header__image img {
	border-radius: 18px;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.fspl-archive-header__image figcaption {
	color: var(--global-palette5, #647168);
	font-size: 0.78rem;
	margin-top: 0.5rem;
}

.fspl-archive-header h1,
.fspl-profile__header h1 {
	font-size: clamp(2.2rem, 5vw, 4rem);
	letter-spacing: -0.035em;
	line-height: 1.03;
	margin-block: 0 1rem;
}

.fspl-archive-header > p:last-child,
.fspl-profile__excerpt {
	color: var(--global-palette4, #506057);
	font-size: clamp(1.05rem, 2vw, 1.25rem);
	line-height: 1.65;
}

.fspl-filter {
	background: var(--global-palette8, #eef1eb);
	border: 1px solid color-mix(in srgb, var(--global-palette1, #466b50) 22%, transparent);
	border-radius: 18px;
	margin-block: clamp(2rem, 5vw, 4rem);
	padding: clamp(1.1rem, 3vw, 2rem);
}

.fspl-filter__heading,
.fspl-results__heading {
	align-items: end;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1.25rem;
}

.fspl-filter__heading h2,
.fspl-results__heading h2 {
	margin: 0;
}

.fspl-filter__heading p,
.fspl-result-count {
	color: var(--global-palette5, #647168);
	margin: 0.25rem 0 0;
}

.fspl-clear-link {
	font-weight: 650;
	white-space: nowrap;
}

.fspl-filter__grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fspl-field--search {
	grid-column: span 2;
}

.fspl-field label {
	display: block;
	font-size: 0.88rem;
	font-weight: 700;
	margin-bottom: 0.35rem;
}

.fspl-field input,
.fspl-field select {
	background: var(--global-palette9, #fff);
	border: 1px solid var(--global-gray-400, #a7afa9);
	border-radius: 7px;
	color: var(--global-palette3, #26382d);
	font: inherit;
	min-height: 46px;
	padding: 0.65rem 0.75rem;
	width: 100%;
}

.fspl-button {
	align-items: center;
	background: var(--global-palette1, #466b50);
	border: 2px solid var(--global-palette1, #466b50);
	border-radius: 999px;
	color: var(--global-palette9, #fff);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 700;
	justify-content: center;
	margin-top: 1.25rem;
	min-height: 46px;
	padding: 0.65rem 1.35rem;
	text-decoration: none;
}

.fspl-button:hover {
	background: var(--global-palette2, #31523b);
	border-color: var(--global-palette2, #31523b);
	color: var(--global-palette9, #fff);
}

.fspl-button--secondary {
	background: transparent;
	color: var(--global-palette1, #466b50);
}

.fspl-card-grid {
	display: grid;
	gap: clamp(1rem, 2vw, 1.75rem);
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fspl-card {
	background: var(--global-palette9, #fff);
	border: 1px solid var(--global-gray-300, #d9ded9);
	border-radius: 14px;
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	transition: box-shadow 180ms ease, transform 180ms ease;
}

.fspl-card:focus-within,
.fspl-card:hover {
	box-shadow: 0 14px 36px rgb(35 57 42 / 12%);
	transform: translateY(-2px);
}

.fspl-card__image {
	background: var(--global-palette8, #eef1eb);
	display: block;
	overflow: hidden;
}

.fspl-card__image img,
.fspl-card__placeholder {
	aspect-ratio: 4 / 3;
	display: block;
	height: auto;
	object-fit: cover;
	transition: transform 220ms ease;
	width: 100%;
}

.fspl-card:hover .fspl-card__image img {
	transform: scale(1.025);
}

.fspl-card__placeholder {
	background: linear-gradient(135deg, var(--global-palette8, #eef1eb), var(--global-palette7, #dfe6dc));
}

.fspl-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.25rem;
}

.fspl-card__botanical {
	color: var(--global-palette5, #647168);
	font-size: 0.88rem;
	margin: 0 0 0.25rem;
}

.fspl-card h3 {
	font-size: 1.35rem;
	line-height: 1.2;
	margin: 0 0 0.65rem;
}

.fspl-card h3 a {
	color: inherit;
}

.fspl-card__body > p:not(.fspl-card__botanical) {
	color: var(--global-palette5, #647168);
	line-height: 1.55;
}

.fspl-card__cue {
	border-left: 3px solid var(--global-palette1, #466b50);
	font-size: 0.88rem;
	padding-left: 0.7rem;
}

.fspl-card__safety {
	display: grid;
	font-size: 0.8rem;
	gap: 0.25rem;
	margin-bottom: 1rem;
}

.fspl-card__safety span {
	color: var(--global-palette5, #647168);
}

.fspl-chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	list-style: none;
	margin: auto 0 0;
	padding: 0;
}

.fspl-chip-list li,
.fspl-status {
	background: var(--global-palette8, #eef1eb);
	border-radius: 999px;
	color: var(--global-palette3, #26382d);
	font-size: 0.78rem;
	font-weight: 650;
	line-height: 1.25;
	padding: 0.38rem 0.68rem;
}

.fspl-empty-state {
	background: var(--global-palette8, #eef1eb);
	border-radius: 14px;
	padding: clamp(1.5rem, 4vw, 3rem);
	text-align: center;
}

.fspl-profile__header {
	align-items: center;
	display: grid;
	gap: clamp(1.5rem, 5vw, 4rem);
	grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
	margin-bottom: clamp(2rem, 5vw, 4rem);
}

.fspl-profile__botanical {
	color: var(--global-palette5, #647168);
	font-size: 1.15rem;
	margin: -0.45rem 0 1rem;
}

.fspl-review-date,
.fspl-small {
	color: var(--global-palette5, #647168);
	font-size: 0.88rem;
}

.fspl-profile__image {
	margin: 0;
}

.fspl-profile__image img {
	border-radius: 18px;
	display: block;
	height: auto;
	max-height: 620px;
	object-fit: cover;
	width: 100%;
}

.fspl-facts {
	background: var(--global-palette8, #eef1eb);
	border-radius: 18px;
	margin-block: 2rem clamp(2rem, 6vw, 5rem);
	padding: clamp(1.25rem, 3vw, 2rem);
}

.fspl-facts h2 {
	margin-top: 0;
}

.fspl-facts dl {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0;
}

.fspl-facts dl div {
	border-top: 1px solid var(--global-gray-400, #a7afa9);
	padding-top: 0.75rem;
}

.fspl-facts dt {
	color: var(--global-palette5, #647168);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.fspl-facts dd {
	font-weight: 650;
	margin: 0.25rem 0 0;
}

.fspl-prose,
.fspl-section,
.fspl-related,
.fspl-hub-copy {
	margin-inline: auto;
	max-width: 820px;
}

.fspl-hub-copy {
	border-top: 1px solid var(--global-gray-300, #d9ded9);
	margin-top: clamp(3rem, 7vw, 6rem);
	padding-top: clamp(2rem, 4vw, 3rem);
}

.fspl-hub-copy h2:not(:first-child) {
	margin-top: clamp(2.25rem, 5vw, 4rem);
}

.fspl-table-wrap {
	overflow-x: auto;
}

.fspl-table-wrap:focus-visible {
	outline: 3px solid var(--global-palette1, #466b50);
	outline-offset: 3px;
}

.fspl-hub-copy table {
	border-collapse: collapse;
	min-width: 620px;
	width: 100%;
}

.fspl-hub-copy th,
.fspl-hub-copy td {
	border: 1px solid var(--global-gray-300, #d9ded9);
	padding: 0.75rem;
	text-align: left;
	vertical-align: top;
}

.fspl-hub-copy thead th {
	background: var(--global-palette8, #eef1eb);
}

.fspl-section,
.fspl-related {
	border-top: 1px solid var(--global-gray-300, #d9ded9);
	margin-top: clamp(2.5rem, 6vw, 5rem);
	padding-top: clamp(1.5rem, 3vw, 2.5rem);
}

.fspl-section h2,
.fspl-related h2 {
	font-size: clamp(1.6rem, 3vw, 2.15rem);
}

.fspl-care-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fspl-care-grid > div {
	background: var(--global-palette8, #eef1eb);
	border-radius: 12px;
	padding: 1.2rem;
}

.fspl-care-grid h3 {
	font-size: 1.1rem;
	margin-top: 0;
}

.fspl-safety__grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fspl-status--verified-non-toxic {
	background: #e3f1e4;
	color: #23512b;
}

.fspl-status--toxic {
	background: #f8dfdc;
	color: #7a2823;
}

.fspl-status--irritating-caution,
.fspl-status--not-verified {
	background: #f6ebca;
	color: #654d0d;
}

.fspl-caution {
	border-left: 4px solid var(--global-palette1, #466b50);
	color: var(--global-palette4, #506057);
	padding-left: 1rem;
}

.fspl-sources li + li {
	margin-top: 0.45rem;
}

.fspl-related__grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fspl-related__item {
	background: var(--global-palette8, #eef1eb);
	border-radius: 12px;
	color: inherit;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 1.15rem;
	text-decoration: none;
}

.fspl-related__item span {
	color: var(--global-palette5, #647168);
	font-size: 0.78rem;
	text-transform: uppercase;
}

@media (max-width: 900px) {
	.fspl-filter__grid,
	.fspl-facts dl {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fspl-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fspl-profile__header {
		grid-template-columns: 1fr;
	}

	.fspl-archive-header {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 620px) {
	.fspl-filter__heading,
	.fspl-results__heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.fspl-filter__grid,
	.fspl-card-grid,
	.fspl-facts dl,
	.fspl-care-grid,
	.fspl-safety__grid,
	.fspl-related__grid {
		grid-template-columns: 1fr;
	}

	.fspl-field--search {
		grid-column: auto;
	}

	.fspl-button {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fspl-card,
	.fspl-card__image img {
		transition: none;
	}
}
