/**
 * GFCH custom homepage styles (Elementor-free).
 * Colors aligned to brand: green #005028, gold #F2B84B.
 */

:root {
	--gfch-green: #005028;
	--gfch-green-dark: #003d1e;
	--gfch-gold: #f2b84b;
	--gfch-gold-dark: #d49a2e;
	--gfch-cream: #faf8f4;
	--gfch-text: #1a1a1a;
	--gfch-muted: #5c5c5c;
	--gfch-white: #ffffff;
	--gfch-max: 1180px;
	--gfch-radius: 10px;
	--gfch-font: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
}

/* Home content width — slight side inset from viewport edges */
.gfch-home-body {
	--gfch-max: min(1400px, calc(100% - 4rem));
	--gfch-home-gutter: 1.75rem;
	--gfch-hero-orange: #f29420;
	--gfch-hero-pad: max(var(--gfch-home-gutter, 1.75rem), calc((100% - var(--gfch-max)) / 2));
	--gfch-orange-start: calc((100% + var(--gfch-hero-pad)) / 2);
	margin: 0;
	font-family: var(--gfch-font);
	color: var(--gfch-text);
	background: var(--gfch-cream);
}

/* Full-width chrome. Orange starts at the hero image column. */
.gfch-home-body .gfch-topbar--modern {
	width: 100%;
	background: linear-gradient(
		to right,
		var(--gfch-green, #005028) var(--gfch-orange-start),
		var(--gfch-hero-orange) var(--gfch-orange-start)
	);
	color: #fff;
}

.gfch-home-body .gfch-topbar--modern .gfch-topbar__phone {
	color: #ffffff;
}

.gfch-home-body .gfch-header--modern {
	width: 100%;
	background: linear-gradient(
		to right,
		#ffffff var(--gfch-orange-start),
		var(--gfch-hero-orange) var(--gfch-orange-start)
	);
	transition: background 0.2s ease;
}

.gfch-home-body .gfch-header--modern.is-scrolled {
	background: #ffffff;
}

.gfch-home-body .gfch-header--modern:not(.is-scrolled) .gfch-header__icon-btn:hover,
.gfch-home-body .gfch-header--modern:not(.is-scrolled) .gfch-header__icon-btn:focus-visible {
	background: var(--gfch-green, #005028);
	color: #fff;
}

.gfch-home-body .gfch-header--modern:not(.is-scrolled) .gfch-nav-list a:hover,
.gfch-home-body .gfch-header--modern:not(.is-scrolled) .gfch-nav-list .is-active > a,
.gfch-home-body .gfch-header--modern:not(.is-scrolled) .gfch-nav-list .current-menu-item > a {
	background: var(--gfch-green, #005028);
	color: #fff;
}

.gfch-home-body .gfch-header--modern .gfch-header__dashboard--ghost {
	background: var(--gfch-green, #005028);
	color: #fff;
	box-shadow: none;
}

.gfch-home-body .gfch-header--modern .gfch-header__dashboard--ghost:hover {
	background: #fff;
	color: var(--gfch-green, #005028);
	border: 0;
	box-shadow: none;
}

.gfch-home-body .gfch-topbar--purple .gfch-topbar__inner,
.gfch-home-body .gfch-header--purple .gfch-header__inner,
.gfch-home-body .gfch-footer__inner {
	padding-left: var(--gfch-home-gutter);
	padding-right: var(--gfch-home-gutter);
}

@media (max-width: 1100px) {
	.gfch-home-body .gfch-topbar--modern {
		background: var(--gfch-green, #005028);
	}

	.gfch-home-body .gfch-header--modern,
	.gfch-home-body .gfch-header--modern.is-scrolled {
		background: #ffffff;
	}
}

/* Keep footer clear of the floating wishlist/cart rail on smaller screens */
@media (max-width: 980px) {
	.gfch-home-body .gfch-footer__inner,
	.gfch-home-body .gfch-footer__bottom {
		padding-right: max(var(--gfch-home-gutter, 1.25rem), 3.75rem);
	}
}

@media (max-width: 520px) {
	.gfch-home-body .gfch-footer__inner,
	.gfch-home-body .gfch-footer__bottom {
		padding-right: max(0.9rem, 3.35rem);
	}
}

.gfch-home-body .gfch-site {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.gfch-home {
	flex: 1;
	overflow-x: clip;
	width: 100%;
}

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

.gfch-home img,
.gfch-home svg {
	max-width: 100%;
	height: auto;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

/* Top bar / header chrome live in header.css (gfch-topbar--modern / gfch-header--modern). */

/* Search form (header + hero) */
.gfch-search-form {
	display: flex;
	max-width: 520px;
	width: 100%;
	background: var(--gfch-white);
	border-radius: 999px;
	overflow: hidden;
	box-shadow: 0 0 0 1px rgba(0, 80, 40, 0.12);
}

.gfch-search-form input[type="search"] {
	flex: 1;
	border: 0;
	padding: 0.85rem 1.15rem;
	font-size: 1rem;
	outline: none;
	background: transparent;
	min-width: 0;
}

.gfch-search-form button {
	border: 0;
	background: var(--gfch-green);
	color: var(--gfch-white);
	padding: 0 1.15rem;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
}

.gfch-search-form button:hover {
	background: #f7941d;
}

/* Buttons */
.gfch-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.65rem 1.35rem;
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	border: 0;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.gfch-btn--primary {
	background: var(--gfch-green);
	color: var(--gfch-white);
}

.gfch-btn--primary:hover {
	background: #f7941d;
	color: var(--gfch-white);
}

.gfch-btn--ghost {
	background: transparent;
	color: var(--gfch-green);
	box-shadow: inset 0 0 0 1.5px rgba(0, 80, 40, 0.28);
}

.gfch-btn--ghost:hover {
	background: #f7941d;
	color: #fff;
	box-shadow: none;
}

.gfch-btn--cart {
	width: 100%;
	border-radius: 4px;
	background: #8a8a8a;
	color: var(--gfch-white);
	padding: 0.55rem 0.75rem;
}

.gfch-btn--cart:hover {
	background: #f7941d;
	color: var(--gfch-white);
}

.gfch-btn--muted {
	background: #b0b0b0;
}

.gfch-btn--signin {
	background: #e07f0d !important;
	color: #fff !important;
	font-weight: 800;
}

.gfch-btn--signin:hover {
	background: #f7941d !important;
	color: #fff !important;
}

/* Divider â€” extra bottom space matches top spacing added below icons */
.gfch-home-divider {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1.75rem;
	box-sizing: border-box;
	height: auto;
	padding: 1.5rem 1rem 4.5rem;
	line-height: 0;
}

.gfch-home-divider__icon {
	display: block;
	width: 3.5rem;
	height: 3.5rem;
	object-fit: contain;
}

.gfch-home-divider__icon--mid {
	width: 4.5rem;
	height: 4.5rem;
}

/* Hero — full-bleed brand-first composition */
.gfch-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background:
		radial-gradient(1000px 520px at 0% 0%, rgba(0, 80, 40, 0.07), transparent 55%),
		radial-gradient(900px 480px at 100% 10%, rgba(247, 148, 29, 0.16), transparent 50%),
		linear-gradient(165deg, #ffffff 0%, #f7faf7 48%, #fff8ef 100%);
}

.gfch-hero__mesh {
	display: none;
}

.gfch-hero__inner {
	position: relative;
	z-index: 1;
	max-width: none;
	margin: 0 auto;
	padding: 0 0 0 max(var(--gfch-home-gutter, 1.75rem), calc((100% - var(--gfch-max)) / 2));
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0;
	align-items: start;
}

.gfch-hero__content {
	min-width: 0;
	max-width: none;
	padding: 2.5rem 2rem 2.5rem 0;
	animation: gfch-hero-rise 0.7s ease both;
}

.gfch-hero__brand {
	margin: 0 0 0.85rem;
	font-size: clamp(0.9rem, 1.55vw, 1.05rem);
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #e07f0d;
}

.gfch-hero__title {
	margin: 0 0 0.95rem;
	color: #006719;
	font-size: clamp(1.9rem, 2.9vw, 3rem);
	line-height: 1.22;
	font-weight: 800;
	letter-spacing: -0.03em;
	max-width: none;
	overflow: visible;
}

.gfch-hero__title-line {
	display: block;
	width: fit-content;
	white-space: nowrap;
	max-width: 100%;
	padding-bottom: 0.08em;
	background-image: linear-gradient(90deg, #005028 0%, #006719 48%, #F19621 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

.gfch-hero__title-since {
	display: block;
	margin-top: 0.3em;
	padding-bottom: 0.12em;
	line-height: 1.25;
	overflow: visible;
	color: #6e7a19;
	-webkit-text-fill-color: #6e7a19;
	background: none;
	-webkit-background-clip: border-box;
	background-clip: border-box;
}

.gfch-hero__lead {
	margin: 0 0 1.45rem;
	max-width: 32rem;
	font-size: clamp(1.1rem, 1.65vw, 1.25rem);
	line-height: 1.55;
	color: var(--gfch-muted);
}

.gfch-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
	margin-bottom: 1.1rem;
}

.gfch-hero__ctas .gfch-btn {
	min-height: 2.9rem;
	padding: 0.7rem 1.5rem;
	font-weight: 800;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.gfch-hero__ctas .gfch-btn:hover {
	transform: translateY(-1px);
}

.gfch-hero__academy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.85rem;
	margin: 0;
}

.gfch-hero__academy-text {
	margin: 0;
	font-size: clamp(1.05rem, 1.6vw, 1.35rem);
	font-weight: 600;
	line-height: 1.35;
	color: #111111;
	white-space: normal;
	max-width: 100%;
}

.gfch-hero__academy-break {
	display: none;
}

.gfch-hero__academy-host {
	color: #f7941d;
	font-weight: 700;
	white-space: nowrap;
}

.gfch-hero__academy .gfch-btn {
	min-height: 2.9rem;
	padding: 0.7rem 1.5rem;
	font-size: 0.95rem;
	font-weight: 800;
	line-height: 1;
}

.gfch-hero__search {
	max-width: 340px;
	width: 100%;
	position: relative;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.8) inset,
		0 14px 36px rgba(15, 23, 42, 0.08);
	border: 1px solid rgba(0, 80, 40, 0.1);
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: blur(8px);
}

.gfch-hero__search-icon {
	position: absolute;
	left: 1.05rem;
	top: 50%;
	transform: translateY(-50%);
	color: #94a3b8;
	pointer-events: none;
	z-index: 1;
}

.gfch-hero__search input[type="search"] {
	padding-left: 2.75rem;
	background: transparent;
}

.gfch-hero__search button {
	border-radius: 0;
	padding: 0 1.35rem;
	font-weight: 800;
	background: #005028;
	color: #fff;
}

.gfch-hero__search button:hover {
	background: #f7941d;
}

/* Hero — static visual (40% column, natural image height) */
.gfch-hero__gallery {
	position: relative;
	width: 100%;
	min-width: 0;
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	padding: 0;
	margin: 0;
}

.gfch-hero__visual {
	margin: 0;
	width: 100%;
	height: auto;
	max-width: none;
	line-height: 0;
	border-radius: 0;
	overflow: hidden;
	background: none;
	box-shadow: none;
}

.gfch-hero__visual img {
	display: block;
	width: 100%;
	height: auto;
	max-height: none;
	object-fit: contain;
	object-position: left top;
	margin-top: -22%;
}

.gfch-hero-book {
	--gfch-book-open-x: 36%;
	--gfch-book-open-scale: 0.84;
	width: 100%;
	max-width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	overflow: visible;
}

.gfch-hero-book__scene {
	position: relative;
	width: min(100%, 340px);
	aspect-ratio: 3 / 4.15;
	perspective: 2200px;
	perspective-origin: 55% 45%;
	transition: transform 0.9s cubic-bezier(0.645, 0.045, 0.355, 1);
	will-change: transform;
	transform-origin: center center;
}

/*
 * Open book ≈ 2× page width (flipped leaf sits left of the spine).
 * Shift + scale keep the spread inside the right column / viewport.
 */
.gfch-hero-book.is-open .gfch-hero-book__scene {
	transform: translateX(var(--gfch-book-open-x)) scale(var(--gfch-book-open-scale));
}

.gfch-hero:has(.gfch-hero-book.is-open) {
	overflow: visible;
}

.gfch-home:has(.gfch-hero-book.is-open) {
	overflow-x: visible;
}

.gfch-hero:has(.gfch-hero-book.is-open) .gfch-hero__inner {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 2rem 2rem;
	overflow: visible;
}

.gfch-hero:has(.gfch-hero-book.is-open) .gfch-hero__gallery {
	justify-self: stretch;
	align-items: center;
	padding-inline: 0;
}

@media (min-width: 1200px) {
	.gfch-hero-book {
		--gfch-book-open-x: 42%;
		--gfch-book-open-scale: 0.88;
	}
}

@media (min-width: 1400px) {
	.gfch-hero-book {
		--gfch-book-open-x: 46%;
		--gfch-book-open-scale: 0.9;
	}
}

@media (min-width: 1600px) {
	.gfch-home-body {
		--gfch-max: min(1600px, calc(100% - 6rem));
	}

	.gfch-hero-book {
		--gfch-book-open-x: 50%;
		--gfch-book-open-scale: 0.92;
	}
}

/* Large tablet — stacked hero (image first); book uses single-page mode via JS (≤1100px) */
@media (max-width: 1100px) and (min-width: 981px) {
	.gfch-hero__inner {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.gfch-hero-book__scene {
		width: min(100%, 340px);
	}

	.gfch-hero-book {
		--gfch-book-open-x: 0%;
		--gfch-book-open-scale: 1;
	}

	.gfch-hero-book__page-title {
		font-size: clamp(1rem, 1.8vw, 1.2rem);
	}

	.gfch-hero-book__page-desc {
		font-size: clamp(0.8rem, 1.4vw, 0.92rem);
	}

	.gfch-hero-book__page-btn {
		font-size: 0.78rem;
		padding: 0.55rem 1.05rem;
	}
}

/*
 * Single-page book (mobile + tablet ≤1100px) — JS adds .is-single-page.
 * One centered page at a time; no open two-page spread.
 */
.gfch-hero-book.is-single-page .gfch-hero-book__leaf {
	transform-origin: center center;
}

.gfch-hero-book.is-single-page .gfch-hero-book__leaf.is-flipped {
	transform: rotateY(-180deg);
}

.gfch-hero-book.is-single-page .gfch-hero-book__leaf:not(.is-single-current) {
	visibility: hidden;
	pointer-events: none;
}

.gfch-hero-book.is-single-page .gfch-hero-book__leaf.is-single-current,
.gfch-hero-book.is-single-page .gfch-hero-book__leaf.is-turning {
	visibility: visible;
}

.gfch-hero-book.is-single-page .gfch-hero-book__leaf.is-single-current {
	pointer-events: auto;
}

.gfch-hero-book.is-single-page .gfch-hero-book__scene,
.gfch-hero-book.is-single-page.is-open .gfch-hero-book__scene {
	transform: none !important;
	width: min(88%, 400px);
	/* Taller than desktop page so about copy fits without clipping */
	aspect-ratio: 3 / 4.75;
}

.gfch-hero-book.is-single-page.is-open .gfch-hero-book__book::before {
	content: none;
}

.gfch-hero-book.is-single-page .gfch-hero-book__book {
	transform: rotateY(-5deg) rotateX(2deg);
}

.gfch-hero-book.is-single-page.is-open .gfch-hero-book__book {
	transform: rotateY(-3deg) rotateX(1deg);
}

/* Spine / hinge seam only make sense on a two-page spread — hide in single-page
   so they don’t paint a hairline to the left of the centered page. */
.gfch-hero-book.is-single-page .gfch-hero-book__spine {
	display: none;
}

.gfch-hero:has(.gfch-hero-book.is-single-page.is-open) .gfch-hero__inner {
	gap: 2rem 2rem;
}

/* About face — fit full copy on mobile/tablet single-page book */
.gfch-hero-book.is-single-page .gfch-hero-book__face--about {
	overflow: hidden;
}

.gfch-hero-book.is-single-page .gfch-hero-book__about {
	justify-content: flex-start;
	gap: 0.35rem;
	padding: 0.8rem 0.75rem 0.9rem;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
}

.gfch-hero-book.is-single-page .gfch-hero-book__about-mark {
	width: 18%;
	max-width: 2.75rem;
	margin-bottom: 0;
}

.gfch-hero-book.is-single-page .gfch-hero-book__about-kicker {
	font-size: 0.65rem;
	letter-spacing: 0.12em;
}

.gfch-hero-book.is-single-page .gfch-hero-book__about-title {
	font-size: clamp(0.92rem, 3.6vw, 1.12rem);
	line-height: 1.2;
}

.gfch-hero-book.is-single-page .gfch-hero-book__about-text {
	font-size: clamp(0.68rem, 2.7vw, 0.82rem);
	line-height: 1.38;
}

.gfch-hero-book__shadow {
	display: none;
}

.gfch-hero-book__book {
	position: absolute;
	inset: 0;
	transform-style: preserve-3d;
	transform: rotateY(-12deg) rotateX(4deg);
	cursor: pointer;
	z-index: 1;
}

.gfch-hero-book__spine {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 16px;
	transform: translateX(-50%) rotateY(-90deg);
	transform-origin: center center;
	background: linear-gradient(
		90deg,
		#002816 0%,
		#003d1e 28%,
		#5c4818 48%,
		#f2b84b 54%,
		#5c4818 60%,
		#003d1e 78%,
		#002816 100%
	);
	box-shadow: inset -1px 0 3px rgba(0, 0, 0, 0.35);
	border-radius: 2px;
	pointer-events: none;
	z-index: 40;
	/* Closed cover: spine edge otherwise reads as a stray left hairline */
	opacity: 0;
	visibility: hidden;
}

.gfch-hero-book.is-open .gfch-hero-book__spine {
	opacity: 1;
	visibility: visible;
}

/* Soft classic gutter — thin gold seam, no hardware look */
.gfch-hero-book.is-open .gfch-hero-book__book::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	transform: translateX(-50%);
	z-index: 260;
	pointer-events: none;
	border-radius: 1px;
	background: linear-gradient(
		180deg,
		rgba(242, 184, 75, 0.35) 0%,
		#f2b84b 12%,
		#e0a63a 50%,
		#f2b84b 88%,
		rgba(242, 184, 75, 0.35) 100%
	);
	box-shadow:
		-1px 0 4px rgba(0, 0, 0, 0.12),
		1px 0 4px rgba(0, 0, 0, 0.12);
}

.gfch-hero-book.is-open .gfch-hero-book__book::after {
	content: none;
}

.gfch-hero-book__leaf {
	position: absolute;
	inset: 0;
	transform-origin: left center;
	transform-style: preserve-3d;
	transition: transform 0.9s cubic-bezier(0.645, 0.045, 0.355, 1);
	border-radius: 12px;
	will-change: transform;
	/* No per-leaf box-shadow — stacked leaves were causing ring banding */
	box-shadow: none;
}

.gfch-hero-book__leaf.is-flipped {
	transform: rotateY(-180deg);
}

.gfch-hero-book__leaf.is-turning {
	z-index: 100 !important;
}

.gfch-hero-book__face {
	position: absolute;
	inset: 0;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	border-radius: inherit;
	overflow: hidden;
	background: #f7f3ea;
}

.gfch-hero-book__face--front {
	transform: rotateY(0deg);
}

.gfch-hero-book__face--back {
	transform: rotateY(180deg);
}

.gfch-hero-book__face--cover {
	background: #005028;
	padding: 0;
	/* Hard clip — cover PNG has a soft baked halo that bands as rings */
	-webkit-mask-image: linear-gradient(#000 0 100%);
	mask-image: linear-gradient(#000 0 100%);
}

.gfch-hero-book__face--cover img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center;
	/* Mild crop — keep edges of the cover visible without the soft PNG halo */
	transform: scale(1.06);
	transform-origin: center center;
}

/* Single clean drop under the closed/open book (one layer only) */
.gfch-hero-book__scene::after {
	content: "";
	position: absolute;
	left: 12%;
	right: 8%;
	bottom: -6px;
	height: 18px;
	border-radius: 50%;
	background: rgba(15, 23, 42, 0.16);
	filter: blur(7px);
	transform: scaleY(0.45);
	pointer-events: none;
	z-index: 0;
	opacity: 0.85;
}

.gfch-hero-book__face--inside {
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(233, 180, 76, 0.55);
	background:
		radial-gradient(ellipse 60% 50% at 20% 25%, rgba(70, 48, 14, 0.35), transparent 70%),
		radial-gradient(ellipse 50% 40% at 85% 80%, rgba(0, 0, 0, 0.35), transparent 65%),
		linear-gradient(160deg, #004020 0%, #005028 55%, #003318 100%);
}

.gfch-hero-book__face--about {
	align-items: stretch;
	justify-content: stretch;
	color: #f3e6c2;
	overflow: hidden;
	background-color: #005028;
	background-image:
		linear-gradient(90deg, rgba(0, 0, 0, 0.12) 0%, transparent 14%, transparent 86%, rgba(0, 0, 0, 0.16) 100%),
		var(--gfch-book-page-bg, none);
	background-size: cover, cover;
	background-position: center, center;
	background-repeat: no-repeat, no-repeat;
}

/* Aged parchment overlays — stains, wear patches, grain */
.gfch-hero-book__face--about::before,
.gfch-hero-book__page::before,
.gfch-hero-book__face--end::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	border-radius: inherit;
	background:
		radial-gradient(ellipse 48% 36% at 14% 18%, rgba(90, 62, 18, 0.18), transparent 72%),
		radial-gradient(ellipse 42% 34% at 88% 14%, rgba(0, 0, 0, 0.12), transparent 68%),
		radial-gradient(ellipse 55% 40% at 78% 86%, rgba(55, 36, 10, 0.2), transparent 70%),
		radial-gradient(ellipse 38% 30% at 22% 78%, rgba(0, 0, 0, 0.14), transparent 68%),
		radial-gradient(ellipse 28% 22% at 58% 42%, rgba(242, 184, 75, 0.08), transparent 70%),
		radial-gradient(ellipse 22% 18% at 40% 60%, rgba(20, 8, 0, 0.1), transparent 70%),
		repeating-linear-gradient(
			0deg,
			transparent 0 2px,
			rgba(0, 0, 0, 0.02) 2px 3px
		),
		repeating-linear-gradient(
			90deg,
			transparent 0 3px,
			rgba(255, 236, 180, 0.015) 3px 4px
		);
}

.gfch-hero-book__face--about::after,
.gfch-hero-book__page::after,
.gfch-hero-book__face--end::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	border-radius: inherit;
	/* Corner foxing + soft torn-edge vignette */
	background:
		radial-gradient(ellipse 70% 55% at 0% 0%, rgba(120, 80, 20, 0.14), transparent 55%),
		radial-gradient(ellipse 65% 50% at 100% 0%, rgba(0, 0, 0, 0.1), transparent 55%),
		radial-gradient(ellipse 70% 55% at 0% 100%, rgba(0, 0, 0, 0.14), transparent 55%),
		radial-gradient(ellipse 65% 50% at 100% 100%, rgba(100, 68, 16, 0.16), transparent 55%),
		linear-gradient(180deg, rgba(255, 220, 140, 0.03), transparent 18%, transparent 82%, rgba(0, 0, 0, 0.1));
	box-shadow:
		inset 0 0 0 1px rgba(242, 184, 75, 0.1),
		inset 0 0 28px rgba(0, 0, 0, 0.14);
}

.gfch-hero-book__about {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.55rem;
	box-sizing: border-box;
	height: 100%;
	padding: 1.15rem 1.05rem 1.2rem 1.15rem;
	text-align: center;
}

.gfch-hero-book__about-mark {
	display: block;
	width: 22%;
	max-width: 3.25rem;
	height: auto;
	margin: 0 auto 0.15rem;
	object-fit: contain;
	/* PNG has a black plate — knock it out on the green page */
	mix-blend-mode: screen;
}

.gfch-hero-book__about-kicker {
	margin: 0;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #e9b44c;
	text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25);
}

.gfch-hero-book__about-title {
	margin: 0;
	font-size: clamp(0.92rem, 2vw, 1.1rem);
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: 0.01em;
	color: #ffffff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

.gfch-hero-book__about-text {
	margin: 0;
	font-size: clamp(0.72rem, 1.35vw, 0.82rem);
	line-height: 1.45;
	font-weight: 600;
	color: #f3e6c2;
	text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25);
	text-wrap: pretty;
}

.gfch-hero-book__inside-mark {
	display: block;
	width: 42%;
	line-height: 0;
	opacity: 0.85;
}

.gfch-hero-book__inside-mark svg {
	width: 100%;
	height: auto;
	display: block;
}

.gfch-hero-book__face--end {
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background-color: #005028;
	background-image: var(--gfch-book-page-bg, linear-gradient(165deg, #004020 0%, #005028 52%, #003318 100%));
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.gfch-hero-book__page {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 0.85rem 0.85rem 0.9rem;
	text-decoration: none;
	color: inherit;
	box-sizing: border-box;
	overflow: hidden;
	background-color: #005028;
	background-image:
		linear-gradient(90deg, rgba(0, 0, 0, 0.14) 0%, transparent 12%),
		linear-gradient(90deg, transparent 0%, transparent 88%, rgba(0, 0, 0, 0.14) 100%),
		var(--gfch-book-page-bg, none);
	background-size: auto, auto, cover;
	background-position: center, center, center;
	background-repeat: no-repeat, no-repeat, no-repeat;
}

.gfch-hero-book__page > * {
	position: relative;
	z-index: 1;
}

.gfch-hero-book__page--back {
	pointer-events: auto;
}

.gfch-hero-book__leaf:not(.is-flipped) .gfch-hero-book__page--back {
	pointer-events: none;
}

.gfch-hero-book__page-frame {
	position: relative;
	flex: 0 0 auto;
	height: 34%;
	min-height: 0;
	border-radius: 8px;
	overflow: hidden;
	background: transparent;
	box-shadow: none;
}

.gfch-hero-book__page-frame img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
	object-position: center;
	padding: 0;
	box-sizing: border-box;
}

.gfch-hero-book__page-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 0.55rem;
	min-height: 0;
	padding: 0.75rem 0.2rem 0.15rem;
	text-align: left;
}

.gfch-hero-book__page-title {
	margin: 0;
	font-size: clamp(0.92rem, 2vw, 1.1rem);
	font-weight: 800;
	line-height: 1.25;
	color: #ffffff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-align: left;
	width: 100%;
}

.gfch-hero-book__page-desc {
	margin: 0;
	font-size: clamp(0.72rem, 1.35vw, 0.82rem);
	line-height: 1.45;
	font-weight: 600;
	color: #f3e6c2;
	text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25);
	display: -webkit-box;
	-webkit-line-clamp: 6;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-wrap: pretty;
	text-align: left;
	width: 100%;
}

.gfch-hero-book__page-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 0.35rem;
	padding: 0.48rem 1rem;
	border-radius: 999px;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	color: #003318;
	background: #e9b44c;
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25) inset;
	transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.gfch-hero-book__page-btn:hover {
	background: #f7941d;
	color: #fff;
	transform: translateY(-1px);
}

.gfch-hero-book__leaf.is-turning .gfch-hero-book__face--front::after,
.gfch-hero-book__leaf.is-turning .gfch-hero-book__face--back::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(
		90deg,
		rgba(0, 0, 0, 0.18) 0%,
		rgba(0, 0, 0, 0.04) 18%,
		transparent 42%,
		rgba(255, 255, 255, 0.12) 100%
	);
}

.gfch-hero__dots,
.gfch-hero-book__dots {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.45rem;
	margin-top: 1.15rem;
	min-height: 1rem;
}

.gfch-hero__dot {
	width: 0.55rem;
	height: 0.55rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(0, 80, 40, 0.22);
	cursor: pointer;
	transition: background 0.15s ease, width 0.15s ease;
}

.gfch-hero__dot.is-active {
	width: 1.35rem;
	background: #f7941d;
}

.gfch-hero__fallback {
	width: min(100%, 280px);
	aspect-ratio: 3 / 4;
	border-radius: 18px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	background: linear-gradient(155deg, var(--gfch-green) 0%, #006b36 48%, var(--gfch-green-dark) 100%);
	color: var(--gfch-gold);
	box-shadow: 0 18px 40px rgba(0, 80, 40, 0.18);
}

.gfch-hero__fallback-mark {
	width: 38%;
	line-height: 0;
}

.gfch-hero__fallback-mark svg {
	width: 100%;
	height: auto;
	display: block;
}

.gfch-hero__fallback-label {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.9);
}

@keyframes gfch-hero-rise {
	from {
		opacity: 0;
		transform: translateY(16px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.gfch-hero__content,
	.gfch-hero__gallery {
		animation: none;
	}

	.gfch-hero-book__leaf,
	.gfch-hero-book__scene {
		transition: none !important;
	}
}
/* Categories bento */
.gfch-categories__inner {
	max-width: var(--gfch-max);
	margin: 0 auto;
	padding: 0 var(--gfch-home-gutter, 1.75rem) 0.5rem;
}

.gfch-categories__grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 0.85rem;
}

.gfch-cat {
	display: flex;
	align-items: flex-end;
	min-height: 170px;
	padding: 1.1rem 1.2rem;
	border-radius: var(--gfch-radius);
	text-decoration: none;
	color: var(--gfch-white);
	font-weight: 800;
	font-size: 1.35rem;
	line-height: 1.2;
	letter-spacing: -0.02em;
	background-color: #5a6a7a;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	position: relative;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
	transition: transform 0.2s ease, filter 0.2s ease;
}

.gfch-cat::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.08) 20%, rgba(0, 0, 0, 0.55) 100%);
	pointer-events: none;
	transition: background 0.2s ease;
}

.gfch-cat--has-image::before {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.12) 15%, rgba(0, 0, 0, 0.62) 100%);
}

.gfch-cat__label {
	position: relative;
	z-index: 1;
	font-size: inherit;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.02em;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
	color: #fff;
}

.gfch-cat--large {
	grid-column: span 4;
	grid-row: span 2;
	min-height: 520px;
	font-size: 1.35rem;
}

.gfch-cat--medium {
	grid-column: span 4;
	min-height: 185px;
}

.gfch-cat--wide {
	grid-column: span 4;
	min-height: 185px;
}

.gfch-cat--small {
	grid-column: span 3;
	min-height: 185px;
}

.gfch-cat--half {
	grid-column: span 3;
	min-height: 250px;
}

.gfch-cat--gf-herbs {
	background-color: #f7941d;
}
.gfch-cat--kpc { background-color: #6b5b95; }
.gfch-cat--needles { background-color: #5b8fb9; }
.gfch-cat--tools { background-color: #e07a3d; }
.gfch-cat--liniments { background-color: #9b7ebd; }
.gfch-cat--salves { background-color: #e8a07a; }
.gfch-cat--classes { background-color: #4a6b5a; }
.gfch-cat--resources { background-color: #5a6a7a; }

.gfch-cat:hover {
	filter: brightness(1.06);
	transform: translateY(-2px);
}

.gfch-cat:hover::before {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 10%, rgba(0, 0, 0, 0.5) 100%);
}

/* Shipping / promo slider */
.gfch-shipping {
	padding: 0 0 0.5rem;
}

.gfch-shipping__slider {
	max-width: var(--gfch-max);
	margin: 0 auto;
	padding: 0 var(--gfch-home-gutter, 1.75rem);
}

.gfch-shipping__viewport {
	overflow: hidden;
	border-radius: var(--gfch-radius);
}

.gfch-shipping__track {
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
}

.gfch-shipping__slide {
	margin: 0;
	padding: 0;
	animation: gfch-promo-fade 0.45s ease;
}

.gfch-shipping__slide[hidden] {
	display: none !important;
}

.gfch-shipping__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	background: var(--gfch-gold);
	border-radius: var(--gfch-radius);
	overflow: hidden;
	/* 2nd slide image is 1200×700 in the left half */
	aspect-ratio: 24 / 7;
	min-height: 0;
	max-height: none;
	min-width: 0;
}

.gfch-shipping__media,
.gfch-shipping__copy {
	min-width: 0;
	min-height: 0;
}

.gfch-shipping__media {
	position: relative;
	align-self: stretch;
	height: 100%;
	background: #e0a63c;
	overflow: hidden;
	max-width: none;
}

.gfch-shipping__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	max-height: none;
	max-width: none;
	object-fit: cover;
	object-position: center;
}

.gfch-shipping__media-placeholder {
	min-height: 0;
	height: 100%;
	background:
		linear-gradient(135deg, rgba(0, 80, 40, 0.15), transparent),
		repeating-linear-gradient(
			-12deg,
			rgba(255, 255, 255, 0.15) 0 8px,
			transparent 8px 16px
		),
		#e0a63c;
}

.gfch-shipping__copy {
	padding: 1.35rem 1.75rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	overflow: hidden;
}

.gfch-shipping__title {
	margin: 0 0 0.65rem;
	color: var(--gfch-green);
	font-size: clamp(1.25rem, 2.2vw, 1.75rem);
	line-height: 1.25;
	font-weight: 800;
}

.gfch-shipping__text {
	margin: 0;
	color: var(--gfch-text);
	line-height: 1.5;
	font-size: clamp(1.08rem, 1.5vw, 1.2rem);
	font-weight: 700;
}

.gfch-shipping__dots {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: nowrap;
	gap: clamp(0.35rem, 2.5vw, 1.1rem);
	margin-top: 1.15rem;
	padding: 0.15rem 0.35rem 0.35rem;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.gfch-shipping__dot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 1 auto;
	width: clamp(2.85rem, 18vw, 5.5rem);
	height: clamp(2.85rem, 18vw, 5.5rem);
	padding: 0;
	border: 0;
	background: transparent;
	color: #f7941d;
	opacity: 0.4;
	cursor: pointer;
	transition: opacity 0.2s ease, color 0.2s ease;
}

.gfch-shipping__dot:hover {
	opacity: 0.75;
}

.gfch-shipping__dot.is-active {
	opacity: 1;
	color: #e07f0d;
	transform: none;
}

.gfch-shipping__dot-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	width: 78%;
	height: 78%;
	max-width: 4.3rem;
	max-height: 4.3rem;
}

.gfch-shipping__dot-icon img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 4.3rem;
	max-height: 4.3rem;
	object-fit: contain;
}

@keyframes gfch-promo-fade {
	from {
		opacity: 0.35;
		transform: translateY(6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.gfch-shipping__slide {
		animation: none;
	}
}

/* Featured products slider */
.gfch-featured {
	padding: 0.5rem 0 2.5rem;
}

.gfch-featured__inner {
	max-width: var(--gfch-max);
	margin: 0 auto;
	padding: 0.5rem var(--gfch-home-gutter, 1.75rem) 1rem;
}

.gfch-featured__title {
	margin: 0 0 1.5rem;
	color: var(--gfch-green);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	text-align: center;
}

.gfch-featured__empty {
	text-align: center;
	color: var(--gfch-muted);
}

.gfch-featured__slider {
	position: relative;
	padding: 0;
}

.gfch-featured__viewport {
	overflow: hidden;
	width: 100%;
}

.gfch-featured__track {
	list-style: none;
	margin: 0;
	padding: 0.35rem 0 0.75rem;
	display: flex;
	align-items: stretch;
	gap: 18px;
	transition: transform 0.45s cubic-bezier(0.4, 0.2, 0.2, 1);
	will-change: transform;
}

.gfch-featured__track::before,
.gfch-featured__track::after,
.woocommerce .gfch-featured__track::before,
.woocommerce .gfch-featured__track::after {
	content: none !important;
	display: none !important;
}

.gfch-featured__track > .gfch-card,
.gfch-featured__track > li.product {
	list-style: none;
	margin: 0 !important;
	float: none !important;
	width: auto !important;
	flex: 0 0 calc((100% - 72px) / 5);
	max-width: calc((100% - 72px) / 5);
	height: auto;
}

.gfch-featured__nav {
	display: none !important;
}

.gfch-featured__dots {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.45rem;
	margin-top: 0.85rem;
	min-height: 1rem;
}

.gfch-featured__dot {
	width: 0.55rem;
	height: 0.55rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(0, 80, 40, 0.25);
	cursor: pointer;
	transition: background 0.15s ease, transform 0.15s ease, width 0.15s ease;
}

.gfch-featured__dot.is-active {
	width: 1.35rem;
	background: #f7941d;
}

.gfch-featured__footer {
	margin-top: 1.25rem;
	text-align: center;
}

.gfch-featured__shop-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.65rem;
	padding: 0 1.35rem;
	border-radius: 999px;
	background: #005028;
	color: #fff !important;
	font-weight: 800;
	text-decoration: none !important;
}

.gfch-featured__shop-link:hover {
	background: #f7941d;
	color: #fff !important;
}

@media (prefers-reduced-motion: reduce) {
	.gfch-featured__track {
		transition: none;
	}
}

/* About â€” brand-forward split */
.gfch-about {
	position: relative;
	isolation: isolate;
	padding: 2.5rem 0 3.75rem;
	overflow: hidden;
	width: 100%;
}

.gfch-about__atmosphere {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(ellipse 70% 80% at 8% 50%, rgba(0, 80, 40, 0.1), transparent 55%),
		radial-gradient(ellipse 50% 60% at 92% 20%, rgba(242, 184, 75, 0.18), transparent 50%),
		linear-gradient(180deg, #fff 0%, var(--gfch-cream) 100%);
}

.gfch-about__inner {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 clamp(1.75rem, 5vw, 4.25rem);
	display: grid;
	grid-template-columns: minmax(280px, 1fr) minmax(0, 1.15fr);
	gap: clamp(1.75rem, 4vw, 3.5rem);
	align-items: stretch;
}

.gfch-about__visual {
	display: flex;
	min-height: 0;
	height: 100%;
}

.gfch-about__visual-panel {
	position: relative;
	flex: 1 1 auto;
	width: 100%;
	height: 100%;
	min-height: 320px;
	border-radius: calc(var(--gfch-radius) + 4px);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	padding: 2rem 1.5rem;
	background:
		linear-gradient(155deg, var(--gfch-green) 0%, #006b36 48%, var(--gfch-green-dark) 100%);
	box-shadow: 0 18px 40px rgba(0, 80, 40, 0.18);
	animation: gfch-about-rise 0.7s ease both;
}

.gfch-about__visual-panel::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		repeating-linear-gradient(
			-18deg,
			rgba(255, 255, 255, 0.06) 0 10px,
			transparent 10px 22px
		);
	pointer-events: none;
}

.gfch-about__visual-panel::after {
	content: "";
	position: absolute;
	width: 140%;
	height: 140%;
	top: -20%;
	left: -20%;
	background: radial-gradient(circle at 70% 30%, rgba(242, 184, 75, 0.28), transparent 45%);
	pointer-events: none;
	animation: gfch-about-glow 8s ease-in-out infinite alternate;
}

.gfch-about__visual-panel--photo {
	padding: 0;
	min-height: 0;
	background: transparent;
	align-self: stretch;
}

.gfch-about__visual-panel--photo::before,
.gfch-about__visual-panel--photo::after {
	display: none;
}

/* Beat `.gfch-home img { height: auto }` so the photo fills the stretched panel. */
.gfch-home .gfch-about__visual-img {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	min-height: 100%;
	object-fit: cover;
	object-position: center;
	border-radius: inherit;
}

.gfch-about__visual-mark {
	position: relative;
	z-index: 1;
	width: min(160px, 48%);
	color: var(--gfch-gold);
	line-height: 0;
	opacity: 0.95;
	animation: gfch-about-spin 28s linear infinite;
}

.gfch-about__visual-mark svg {
	width: 100%;
	height: auto;
	display: block;
}

.gfch-about__since {
	position: relative;
	z-index: 1;
	margin: 0;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.92);
}

.gfch-about__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	height: 100%;
	animation: gfch-about-rise 0.7s ease 0.12s both;
}

.gfch-about__eyebrow {
	margin: 0 0 0.65rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #e07f0d;
}

.gfch-about__title {
	margin: 0 0 1.35rem;
	color: var(--gfch-text);
	font-size: clamp(1.55rem, 2.8vw, 2.2rem);
	line-height: 1.2;
	font-weight: 800;
	letter-spacing: -0.02em;
	max-width: none;
}

.gfch-about__brand {
	display: inline;
	color: var(--gfch-green);
}

.gfch-about__body {
	max-width: none;
}

.gfch-about__body p {
	margin: 0 0 1rem;
	line-height: 1.7;
	color: var(--gfch-muted);
	font-size: 1.02rem;
}

.gfch-about__body p:last-child {
	margin-bottom: 0;
}

.gfch-about__closing {
	margin: 1.5rem 0 0;
	padding-top: 1.25rem;
	border-top: 2px solid var(--gfch-gold);
	max-width: none;
	color: var(--gfch-green);
	font-weight: 800;
	font-size: 1.05rem;
	line-height: 1.45;
}

.gfch-about__closing strong {
	font-weight: 800;
	color: inherit;
}

.gfch-about__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

@keyframes gfch-about-rise {
	from {
		opacity: 0;
		transform: translateY(14px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes gfch-about-spin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes gfch-about-glow {
	from {
		transform: translate(0, 0) scale(1);
	}
	to {
		transform: translate(-6%, 4%) scale(1.06);
	}
}

@media (prefers-reduced-motion: reduce) {
	.gfch-about__visual-panel,
	.gfch-about__copy,
	.gfch-about__visual-mark,
	.gfch-about__visual-panel::after {
		animation: none;
	}
}

/* Footer */
.gfch-footer {
	background: var(--gfch-gold);
	margin-top: auto;
	flex: 0 0 auto;
	color: var(--gfch-text);
	padding-left: env(safe-area-inset-left, 0);
	padding-right: env(safe-area-inset-right, 0);
}

.gfch-footer__inner {
	max-width: var(--gfch-max);
	margin: 0 auto;
	padding: 2.5rem var(--gfch-home-gutter, 1.75rem) 1.75rem;
	display: grid;
	grid-template-columns: 1.2fr 1fr 1.2fr 1fr;
	gap: 1.75rem;
	align-items: stretch;
}

.gfch-footer__col {
	min-width: 0;
}

.gfch-footer__brand {
	height: 0;
	min-height: 100%;
	display: flex;
	align-items: center;
	align-self: stretch;
}

.gfch-footer__logo {
	display: flex;
	align-items: center;
	align-self: stretch;
	height: 100%;
	max-height: 100%;
	gap: 0.65rem;
	text-decoration: none;
	color: var(--gfch-green);
	font-weight: 700;
	line-height: 0;
}

.gfch-footer__logo-img {
	display: block;
	width: auto;
	height: 100%;
	max-height: 100%;
	max-width: 100%;
	object-fit: contain;
	object-position: left center;
}

.gfch-footer__logo-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	background: var(--gfch-green);
	color: var(--gfch-gold);
	border-radius: 8px;
}

.gfch-footer__heading {
	margin: 0 0 0.85rem;
	font-size: 1.12rem;
	font-weight: 800;
	color: var(--gfch-green);
}

.gfch-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gfch-footer__links a,
.gfch-footer__contact a {
	color: var(--gfch-green-dark, #003d1e);
	text-decoration: none;
	font-size: 1.02rem;
	font-weight: 700;
}

.gfch-footer__links a:hover,
.gfch-footer__contact a:hover {
	text-decoration: underline;
}

.gfch-footer__links li {
	margin-bottom: 0.5rem;
}

.gfch-footer__contact p {
	margin: 0 0 0.85rem;
	line-height: 1.55;
	font-size: 1.02rem;
	font-weight: 600;
	color: var(--gfch-green-dark, #003d1e);
}

.gfch-footer__contact strong {
	font-weight: 800;
	color: var(--gfch-green);
}

.gfch-footer__follow-text {
	margin: 0 0 0.85rem;
	font-size: 1.02rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--gfch-green-dark, #003d1e);
}

.gfch-footer__social {
	display: flex;
	gap: 0.75rem;
}

.gfch-footer__social a {
	color: var(--gfch-green);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 2px solid var(--gfch-green);
	border-radius: 999px;
}

.gfch-footer__bottom {
	border-top: 1px solid rgba(0, 80, 40, 0.15);
	padding: 0.95rem var(--gfch-home-gutter, 1.75rem);
	text-align: center;
	font-size: 0.95rem;
	font-weight: 600;
}

.gfch-footer__bottom p {
	margin: 0;
}

/* Responsive */
@media (max-width: 1366px) {
	.gfch-hero__title-line {
		white-space: normal;
	}
}

@media (max-width: 1279px) {
	.gfch-featured__track > .gfch-card,
	.gfch-featured__track > li.product {
		flex: 0 0 calc((100% - 54px) / 4);
		max-width: calc((100% - 54px) / 4);
	}
}

@media (max-width: 1100px) {
	.gfch-featured__track > .gfch-card,
	.gfch-featured__track > li.product {
		flex: 0 0 calc((100% - 36px) / 3);
		max-width: calc((100% - 36px) / 3);
	}

	.gfch-hero__inner {
		grid-template-columns: 1fr;
		padding: 0;
		gap: 0;
	}

	.gfch-hero__gallery {
		order: -1;
		width: 100%;
		min-height: 0;
		margin: 0;
		padding: 0;
	}

	.gfch-hero__visual {
		max-width: 100%;
	}

	.gfch-hero__visual img {
		width: 100%;
		height: auto;
		margin-top: 0;
		object-fit: contain;
		object-position: center top;
	}

	.gfch-hero__content {
		padding: 1.75rem 1.25rem 1.5rem;
	}

	.gfch-hero__academy-text {
		white-space: normal;
	}

	.gfch-hero__academy-break {
		display: block;
	}
}

@media (max-width: 980px) {
	.gfch-home-divider {
		padding: 1.35rem 1rem 3.75rem;
	}

	.gfch-hero__inner {
		grid-template-columns: 1fr;
		padding: 0;
		gap: 0;
	}

	.gfch-hero__content {
		min-width: 0;
		max-width: none;
		padding: 2rem 1rem 1.5rem;
	}

	.gfch-hero__gallery {
		width: 100%;
	}

	.gfch-hero__visual img {
		height: auto;
		margin-top: 0;
		object-fit: contain;
		object-position: center top;
	}

	.gfch-hero__title {
		max-width: none;
		font-size: clamp(1.5rem, 4.6vw, 2.4rem);
	}

	.gfch-hero__lead {
		font-size: 1.12rem;
		max-width: 40rem;
	}

	.gfch-hero__search {
		max-width: min(100%, 420px);
	}

	.gfch-hero__gallery {
		min-height: 0;
		max-width: none;
		margin: 0;
		width: 100%;
		padding: 0;
	}

	.gfch-hero__visual {
		max-width: 100%;
	}

	.gfch-hero-book {
		--gfch-book-open-x: 0%;
		--gfch-book-open-scale: 1;
		width: 100%;
	}

	/* Single page — same size open or closed */
	.gfch-hero-book__scene,
	.gfch-hero-book:not(.is-open) .gfch-hero-book__scene,
	.gfch-hero-book.is-open .gfch-hero-book__scene {
		width: min(88%, 400px);
		transform: none;
	}

	.gfch-hero:has(.gfch-hero-book.is-open) .gfch-hero__inner {
		grid-template-columns: 1fr;
	}

	.gfch-hero:has(.gfch-hero-book.is-open) .gfch-hero__gallery {
		padding-inline: 0;
		min-height: clamp(420px, 118vw, 620px);
	}

	.gfch-hero-book__book {
		transform: rotateY(-4deg) rotateX(1.5deg);
	}

	.gfch-hero-book.is-open .gfch-hero-book__book {
		transform: none;
	}

	.gfch-hero-book__page-frame {
		height: 26%;
	}

	.gfch-hero-book__page {
		padding: 0.85rem 0.8rem 0.9rem;
	}

	.gfch-hero-book__page-body {
		gap: 0.45rem;
		padding: 0.55rem 0.1rem 0.1rem;
	}

	.gfch-hero-book__page-title {
		font-size: clamp(1.05rem, 4.6vw, 1.4rem);
		line-height: 1.2;
		-webkit-line-clamp: 3;
	}

	.gfch-hero-book__page-desc {
		font-size: clamp(0.84rem, 3.5vw, 1.02rem);
		line-height: 1.4;
		font-weight: 600;
		-webkit-line-clamp: 5;
		letter-spacing: 0.01em;
	}

	.gfch-hero-book__page-btn {
		font-size: 0.8rem;
		padding: 0.6rem 1.15rem;
		min-height: 2.5rem;
		margin-top: auto;
	}

	.gfch-hero-book__about {
		padding: 0.8rem 0.75rem 0.9rem;
		gap: 0.35rem;
	}

	.gfch-hero-book__about-mark {
		width: 18%;
		max-width: 2.75rem;
	}

	.gfch-hero-book__about-kicker {
		font-size: 0.65rem;
	}

	.gfch-hero-book__about-title {
		font-size: clamp(0.92rem, 3.6vw, 1.12rem);
		line-height: 1.2;
	}

	.gfch-hero-book__about-text {
		font-size: clamp(0.68rem, 2.7vw, 0.82rem);
		line-height: 1.38;
	}

	.gfch-hero-book__dots {
		margin-top: 1rem;
		gap: 0.55rem;
	}

	.gfch-hero__dot {
		width: 0.7rem;
		height: 0.7rem;
		outline-offset: 8px;
		box-shadow: 0 0 0 10px transparent;
	}

	.gfch-hero__dot.is-active {
		width: 1.55rem;
	}

	.gfch-cat--large {
		grid-column: span 6;
		grid-row: span 2;
		min-height: 420px;
	}

	.gfch-cat--medium,
	.gfch-cat--wide,
	.gfch-cat--small,
	.gfch-cat--half {
		grid-column: span 6;
		min-height: 160px;
	}

	.gfch-cat--half {
		min-height: 200px;
	}

	.gfch-featured__slider {
		padding: 0;
	}

	.gfch-featured__track > .gfch-card,
	.gfch-featured__track > li.product {
		flex: 0 0 calc((100% - 18px) / 2);
		max-width: calc((100% - 18px) / 2);
	}

	.gfch-shipping__inner {
		grid-template-columns: 1fr;
		aspect-ratio: auto;
		min-height: 0;
		max-height: none;
	}

	.gfch-shipping__media {
		order: -1;
		max-width: none;
		aspect-ratio: 12 / 7;
		min-height: 0;
		height: auto;
	}

	.gfch-shipping__image {
		position: absolute;
		inset: 0;
		min-height: 0;
		max-height: none;
	}

	.gfch-shipping__media-placeholder {
		min-height: 0;
		aspect-ratio: 12 / 7;
	}

	.gfch-shipping__copy {
		padding: 1.25rem 1.15rem 1.35rem;
	}

	.gfch-about__inner {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		align-items: start;
	}

	.gfch-about__visual {
		height: auto;
	}

	.gfch-about__visual-panel {
		min-height: 220px;
		max-width: none;
		margin: 0;
		width: 100%;
	}

	.gfch-about__visual-panel--photo {
		aspect-ratio: 16 / 10;
		min-height: 0;
	}

	.gfch-about__visual-img {
		min-height: 0;
	}

	.gfch-about__copy {
		height: auto;
	}

	.gfch-footer__inner {
		grid-template-columns: 1fr 1fr;
		padding: 2rem 1.25rem 1.25rem;
		padding-right: max(var(--gfch-home-gutter, 1.25rem), 3.75rem);
		gap: 1.25rem 1.15rem;
	}

	.gfch-footer__brand {
		height: auto;
		min-height: 0;
		grid-column: 1 / -1;
		justify-content: center;
	}

	.gfch-footer__logo {
		height: auto;
		max-height: none;
		align-self: center;
	}

	.gfch-footer__logo-img {
		height: auto;
		max-height: 155px;
		width: auto;
		max-width: min(270px, 100%);
		object-position: center;
	}

	.gfch-footer__inner > .gfch-footer__col:last-child {
		grid-column: 1 / -1;
	}
}

@media (max-width: 720px) {
	.gfch-hero__inner {
		padding: 0;
	}

	.gfch-hero__content {
		padding: 1.5rem 1rem 1.35rem;
	}

	.gfch-hero__ctas {
		width: 100%;
	}

	.gfch-hero__ctas .gfch-btn {
		flex: 1 1 calc(50% - 0.4rem);
		min-width: 0;
		text-align: center;
	}

	.gfch-hero__academy-text {
		font-size: 1.15rem;
	}

	.gfch-hero__search {
		max-width: 100%;
		border-radius: 999px;
	}

	.gfch-hero__search input[type="search"] {
		font-size: 0.95rem;
		padding-right: 0.5rem;
	}

	.gfch-hero__search button {
		padding: 0 1rem;
		font-size: 0.9rem;
		white-space: nowrap;
	}

	.gfch-hero__gallery {
		min-height: 0;
		padding: 0.35rem 0 0;
	}

	.gfch-hero-book__scene,
	.gfch-hero-book:not(.is-open) .gfch-hero-book__scene,
	.gfch-hero-book.is-open .gfch-hero-book__scene {
		width: min(92%, 380px);
		transform: none;
	}

	.gfch-hero:has(.gfch-hero-book.is-open) .gfch-hero__gallery {
		min-height: clamp(440px, 128vw, 600px);
	}

	.gfch-categories__inner,
	.gfch-shipping__slider,
	.gfch-featured__inner,
	.gfch-about__inner {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.gfch-categories__grid {
		gap: 0.65rem;
	}

	.gfch-cat {
		min-height: 150px;
		padding: 0.95rem 1rem;
		font-size: 1.15rem;
	}

	.gfch-cat--large {
		grid-row: auto;
		min-height: 190px;
		font-size: 1.15rem;
	}

	.gfch-cat--medium,
	.gfch-cat--wide,
	.gfch-cat--small,
	.gfch-cat--half {
		grid-column: span 6;
		min-height: 150px;
	}

	.gfch-shipping__dots {
		gap: clamp(0.25rem, 2vw, 0.65rem);
		margin-top: 1rem;
		flex-wrap: nowrap;
	}

	.gfch-shipping__dot {
		width: clamp(2.6rem, 16vw, 4.25rem);
		height: clamp(2.6rem, 16vw, 4.25rem);
		flex-shrink: 1;
		min-width: 0;
	}

	.gfch-shipping__dot-icon,
	.gfch-shipping__dot-icon img {
		width: 78%;
		height: 78%;
		max-width: 3.35rem;
		max-height: 3.35rem;
	}

	.gfch-featured {
		padding-bottom: 2rem;
	}

	.gfch-featured__title {
		margin-bottom: 1.1rem;
	}

	.gfch-featured__slider {
		padding: 0;
	}

	.gfch-featured__track > .gfch-card,
	.gfch-featured__track > li.product {
		flex: 0 0 100%;
		max-width: 100%;
	}

	.gfch-about {
		padding: 1.75rem 0 2.75rem;
	}

	.gfch-about__visual-panel {
		min-height: 180px;
	}

	.gfch-about__visual-panel--photo {
		aspect-ratio: 4 / 3;
	}

	.gfch-about__visual-mark {
		width: min(120px, 42%);
	}

	.gfch-about__ctas {
		width: 100%;
	}

	.gfch-about__ctas .gfch-btn {
		flex: 1 1 auto;
		min-width: min(100%, 10rem);
		justify-content: center;
	}

	.gfch-footer__inner {
		grid-template-columns: 1fr 1fr;
		padding: 1.65rem 1rem 1.1rem;
		padding-right: max(1rem, 3.5rem);
		gap: 1.15rem 1rem;
	}

	.gfch-footer__brand,
	.gfch-footer__inner > .gfch-footer__col:last-child {
		grid-column: 1 / -1;
	}

	.gfch-footer__logo-img {
		max-height: 140px;
		max-width: min(250px, 100%);
		object-position: center;
	}

	.gfch-footer__bottom {
		padding: 0.7rem 1rem;
		padding-right: max(1rem, 3.5rem);
		padding-bottom: max(0.7rem, env(safe-area-inset-bottom, 0px));
		font-size: 0.88rem;
	}
}

@media (max-width: 480px) {
	.gfch-home-divider {
		gap: 1.25rem;
		height: auto;
		padding: 1.15rem 0.75rem 3.25rem;
	}

	.gfch-home-divider__icon {
		width: 2.9rem;
		height: 2.9rem;
	}

	.gfch-home-divider__icon--mid {
		width: 3.7rem;
		height: 3.7rem;
	}

	.gfch-hero__inner {
		padding: 0;
		gap: 0;
	}

	.gfch-hero__content {
		padding: 1.25rem 0.85rem 1.15rem;
	}

	.gfch-hero__brand {
		font-size: 0.78rem;
		letter-spacing: 0.14em;
	}

	.gfch-hero__title {
		font-size: clamp(1.25rem, 5.4vw, 1.7rem);
	}

	.gfch-hero__lead {
		font-size: 1.05rem;
		margin-bottom: 1.1rem;
	}

	.gfch-hero__academy-text {
		font-size: 1rem;
	}

	.gfch-hero__ctas {
		flex-direction: column;
		gap: 0.55rem;
	}

	.gfch-hero__ctas .gfch-btn {
		flex: 1 1 auto;
		width: 100%;
	}

	.gfch-search-form {
		border-radius: 14px;
		flex-wrap: nowrap;
	}

	.gfch-hero__search-icon {
		left: 0.85rem;
	}

	.gfch-hero__search input[type="search"] {
		padding-left: 2.35rem;
		padding-top: 0.75rem;
		padding-bottom: 0.75rem;
		font-size: 0.9rem;
	}

	.gfch-hero__search button {
		padding: 0 0.85rem;
		font-size: 0.85rem;
	}

	.gfch-hero__gallery {
		min-height: 0;
		padding: 0.25rem 0 0;
	}

	.gfch-hero-book__scene,
	.gfch-hero-book:not(.is-open) .gfch-hero-book__scene,
	.gfch-hero-book.is-open .gfch-hero-book__scene {
		width: min(94%, 360px);
		transform: none;
	}

	.gfch-hero:has(.gfch-hero-book.is-open) .gfch-hero__gallery {
		min-height: clamp(400px, 138vw, 560px);
	}

	.gfch-hero-book__page-frame {
		height: 22%;
	}

	.gfch-hero-book__page-title {
		font-size: clamp(1.1rem, 5.2vw, 1.35rem);
	}

	.gfch-hero-book__page-desc {
		font-size: clamp(0.88rem, 3.8vw, 1.02rem);
		-webkit-line-clamp: 4;
	}

	.gfch-hero-book__page-btn {
		font-size: 0.82rem;
		min-height: 2.55rem;
		width: 100%;
	}

	.gfch-hero-book__about-title {
		font-size: clamp(0.9rem, 4.2vw, 1.08rem);
	}

	.gfch-hero-book__about-text {
		font-size: clamp(0.66rem, 3.1vw, 0.8rem);
		line-height: 1.36;
	}

	.gfch-categories__inner,
	.gfch-shipping__slider,
	.gfch-featured__inner,
	.gfch-about__inner {
		padding-left: 0.85rem;
		padding-right: 0.85rem;
	}

	.gfch-cat--medium,
	.gfch-cat--wide,
	.gfch-cat--small,
	.gfch-cat--half,
	.gfch-cat--large {
		grid-column: span 12;
	}

	.gfch-cat--large {
		grid-row: auto;
		min-height: 170px;
	}

	.gfch-cat--medium,
	.gfch-cat--wide,
	.gfch-cat--small,
	.gfch-cat--half {
		min-height: 150px;
	}

	.gfch-shipping__copy {
		padding: 1.15rem 1.1rem 1.25rem;
	}

	.gfch-shipping__title {
		font-size: 1.15rem;
	}

	.gfch-shipping__text {
		font-size: 0.92rem;
	}

	.gfch-featured__slider {
		padding: 0;
	}

	.gfch-featured__dots {
		margin-top: 0.75rem;
	}

	.gfch-about__body p,
	.gfch-about__closing {
		font-size: 0.98rem;
	}

	.gfch-about__ctas {
		flex-direction: column;
	}

	.gfch-about__ctas .gfch-btn {
		width: 100%;
	}

	.gfch-footer__bottom {
		padding: 0.7rem 1rem;
		padding-right: max(1rem, 3.5rem);
		padding-bottom: max(0.7rem, env(safe-area-inset-bottom, 0px));
		font-size: 0.85rem;
	}
}

@media (max-width: 520px) {
	.gfch-footer__inner {
		grid-template-columns: 1fr 1fr;
		gap: 1.05rem 0.85rem;
		padding: 1.4rem 0.9rem 0.95rem;
		padding-right: max(0.9rem, 3.35rem);
	}

	.gfch-footer__brand,
	.gfch-footer__inner > .gfch-footer__col:last-child {
		grid-column: 1 / -1;
	}

	.gfch-footer__logo-img {
		max-height: 130px;
		max-width: min(230px, 100%);
		object-position: center;
	}

	.gfch-footer__bottom {
		padding: 0.65rem 0.9rem;
		padding-right: max(0.9rem, 3.35rem);
		padding-bottom: max(0.65rem, env(safe-area-inset-bottom, 0px));
		text-align: left;
		font-size: 0.82rem;
	}
}

@media (max-width: 360px) {
	.gfch-hero__search {
		flex-direction: column;
		border-radius: 12px;
		overflow: hidden;
	}

	.gfch-hero__search input[type="search"] {
		width: 100%;
		padding-left: 2.35rem;
	}

	.gfch-hero__search button {
		width: 100%;
		padding: 0.7rem 1rem;
		justify-content: center;
	}

	.gfch-hero__search-icon {
		top: 1.05rem;
		transform: none;
	}
}
