body.single-post {
	--gn-post-forest: #153f2b;
	--gn-post-forest-2: #245d3d;
	--gn-post-green: #3a874a;
	--gn-post-lime: #86ae48;
	--gn-post-mint: #e9f3e5;
	--gn-post-cream: #f8f8f1;
	--gn-post-text: #1b2920;
	--gn-post-muted: #6e7b70;
	--gn-post-border: #e5ebe1;
	--gn-post-radius: 18px;
	--gn-post-shadow: 0 14px 40px rgb(32 61 39 / 8%);
	background: #fff;
}
.single-post .page-wrapper{
	padding-top: 0 !important;
}
.gn-single-post-page {
	color: var(--gn-post-text);
	background: #fff;
	font-size: 14px;
	line-height: 1.72;
	-webkit-font-smoothing: antialiased;
}

.gn-single-post-page *,
.gn-single-post-page *::before,
.gn-single-post-page *::after {
	box-sizing: border-box;
}

.gn-post-container {
	width: min(1300px, calc(100% - 48px));
	margin-right: auto;
	margin-left: auto;
	text-align: justify;
}

.gn-post-hero {
	position: relative;
	overflow: hidden;
	padding: 18px 0 62px;
	background:
		radial-gradient(ellipse 48% 78% at 88% 48%, rgb(177 212 144 / 18%), transparent 78%),
		linear-gradient(105deg, #f2f8ef, #fbfbf5 61%, #f0f6e8);
}

.gn-post-hero-orbit {
	position: absolute;
	width: 520px;
	height: 520px;
	border: 1px solid #dcebcf;
	border-radius: 50%;
	box-shadow: 0 0 0 70px rgb(194 218 175 / 8%), 0 0 0 140px rgb(194 218 175 / 5%);
	pointer-events: none;
}

.gn-post-hero-orbit--one {
	top: -245px;
	right: -180px;
}

.gn-post-hero-orbit--two {
	bottom: -430px;
	left: -360px;
	width: 480px;
	height: 480px;
}

.gn-post-breadcrumbs {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 7px 10px;
	margin: 0 0 34px;
	color: #6f8a74;
	font-size: 13px;
	font-weight: 500;
}

.gn-post-breadcrumbs a {
	color: inherit;
	text-decoration: none;
}

.gn-post-breadcrumbs a:hover,
.gn-post-breadcrumbs [aria-current="page"] {
	color: #2a603a;
}

.gn-post-breadcrumbs [aria-current="page"] {
	overflow: hidden;
	max-width: min(440px, 100%);
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gn-post-hero-grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(34px, 6vw, 88px);
}

.gn-post-hero-copy {
	max-width: 620px;
	padding-bottom: 12px;
}

.gn-post-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-bottom: 16px;
	color: #377743;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 1.8px;
	line-height: 1.5;
	text-transform: uppercase;
}

.gn-post-eyebrow-mark {
	width: 19px;
	height: 2px;
	border-radius: 3px;
	background: #6b9b4b;
}

.gn-post-hero-copy h1 {
	margin: 0 0 18px;
	color: #173d27;
	font-size: clamp(32px, 3.35vw, 42px);
	line-height: 1.2;
	text-align: left !important;
}

.gn-post-excerpt {
	max-width: 520px;
	margin: 0 0 25px;
	color: #677b66;
	font-size: 14px;
	line-height: 1.85;
}

.gn-post-hero-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 17px;
	color: #607262;
	font-size: 11px;
}

.gn-post-author-mini {
	display: flex;
	align-items: center;
	gap: 10px;
}

.gn-post-author-mini .gn-post-avatar {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	object-fit: cover;
}

.gn-post-author-mini strong,
.gn-post-author-mini small,
.gn-post-date strong,
.gn-post-date small {
	display: block;
}

.gn-post-author-mini strong,
.gn-post-date strong {
	color: #395d3e;
	font-size: 11px;
	font-weight: 700;
}

.gn-post-author-mini small,
.gn-post-date small {
	margin-top: 1px;
	color: #879487;
	font-size: 10px;
}

.gn-post-meta-divider {
	width: 1px;
	height: 28px;
	background: #d0dfca;
}

.gn-post-readtime {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
}

.gn-post-readtime > span {
	color: #4e8a4d;
	font-size: 18px;
}

.gn-post-hero-visual {
	position: relative;
	min-width: 0;
	height: 376px;
}

.gn-post-hero-frame {
	position: absolute;
	overflow: hidden;
	margin: 0;
	border: 7px solid #fff;
	border-radius: 18px;
	background: #e7efdf;
	box-shadow: 0 18px 48px rgb(39 81 43 / 18%);
}

.gn-post-hero-frame--main {
	top: 0;
	left: 2%;
	width: 79%;
	height: 345px;
	transform: rotate(-2.5deg);
}

.gn-post-hero-frame--detail {
	right: 0;
	bottom: 4px;
	width: 40%;
	height: 228px;
	transform: rotate(5deg);
}

.gn-post-hero-image,
.gn-post-hero-frame--detail img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gn-post-hero-placeholder {
	position: absolute;
	inset: 24px 18px 34px;
	display: grid;
	place-items: center;
	border: 1px solid #dcebcf;
	border-radius: 34px 90px 34px 90px;
	background: linear-gradient(145deg, #e0efd8, #f8faef 55%, #d5e6ca);
	color: #5b8a4c;
	font-size: clamp(76px, 9vw, 140px);
	font-weight: 800;
	letter-spacing: -.1em;
	box-shadow: 0 18px 48px rgb(39 81 43 / 12%);
}

.gn-post-hero-placeholder i {
	position: absolute;
	right: 18%;
	bottom: 14%;
	width: 48px;
	height: 78px;
	border: 2px solid rgb(91 138 76 / 35%);
	border-radius: 100% 0 100% 0;
	transform: rotate(35deg);
}

.gn-post-hero-sticker {
	position: absolute;
	top: -20px;
	right: 18px;
	z-index: 2;
	display: flex;
	width: 98px;
	height: 98px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border: 6px solid #fff;
	border-radius: 50%;
	background: #f1f8e5;
	color: #37733a;
	font-size: 9px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	transform: rotate(9deg);
	box-shadow: 0 8px 18px rgb(36 66 40 / 12%);
}

.gn-post-hero-sticker strong {
	font-size: 10px;
	letter-spacing: 1px;
}

.gn-post-sticker-leaf {
	margin-top: 3px;
	color: #79a952;
	font-size: 17px;
}

.gn-post-hero-wave {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	height: 36px;
	background: #fff;
	clip-path: polygon(0 60%, 50% 0, 100% 70%, 100% 100%, 0 100%);
}

.gn-post-shell {
	padding-top: 30px;
	padding-bottom: 30px;
}

.gn-post-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	align-items: start;
	gap: clamp(30px, 4vw, 52px);
}

.gn-post-article {
	min-width: 0;
}

.gn-post-article-actions,
.gn-post-tags,
.gn-post-share-tools {
	display: flex;
	align-items: center;
}

.gn-post-article-actions {
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 20px;
}

.gn-post-tags {
	flex-wrap: wrap;
	gap: 7px;
}

.gn-post-pill {
	padding: 6px 12px;
	border-radius: 20px;
	background: #eaf3e6;
	color: #2d713f;
	font-size: 10px;
	font-weight: 750;
	text-decoration: none;
}

.gn-post-share-tools {
	flex-shrink: 0;
	gap: 7px;
}

.gn-post-share-tools > span {
	margin-right: 3px;
	color: #7a847b;
	font-size: 11px;
	font-weight: 650;
}

.gn-post-share-button {
	display: grid;
	width: 34px;
	height: 34px;
	place-items: center;
	border: 1px solid #dbe5d8;
	border-radius: 50%;
	background: #fff;
	color: #527559;
	font-family: inherit;
	font-size: 15px;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
	transition: .2s ease;
}

.gn-post-share-button:hover {
	border-color: #215e3b;
	background: #215e3b;
	color: #fff;
}

.gn-post-reading-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 22px;
	padding-bottom: 13px;
	border-bottom: 1px solid var(--gn-post-border);
}

.gn-post-reading-row > span {
	color: #4e794c;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.gn-post-text-sizer {
	display: flex;
	align-items: center;
	gap: 6px;
}

.gn-post-text-sizer > span {
	margin-right: 3px;
	color: #8a9586;
	font-size: 11px;
}

.gn-post-text-sizer button {
	min-width: 35px;
	height: 30px;
	padding: 0 6px;
	border: 1px solid #dce6d9;
	border-radius: 7px;
	background: #fff;
	color: #3d6b43;
	font-size: 11px;
	font-weight: 800;
}

.gn-post-text-sizer button:hover {
	background: #eff7e9;
}

.gn-post-body {
	--gn-article-font-size: 15px;
	color: #435248;
	font-size: var(--gn-article-font-size);
	line-height: 1.95;
	 overflow-wrap: anywhere;
}

.gn-post-body > *:first-child {
	margin-top: 0;
}

.gn-post-body p,
.gn-post-body ul,
.gn-post-body ol,
.gn-post-body blockquote,
.gn-post-body figure,
.gn-post-body .wp-block-image,
.gn-post-body .wp-block-gallery,
.gn-post-body pre,
.gn-post-body table {
	margin-bottom: 1.35em;
}

.gn-post-body h2,
.gn-post-body h3,
.gn-post-body h4,
.gn-post-body h5 {
	color: #19482a;
	font-weight: 800;
	letter-spacing: -.45px;
	line-height: 1.4;
	scroll-margin-top: 120px;
}

.gn-post-body h2 {
	margin: 44px 0 16px;
	font-size: clamp(21px, 2.15vw, 25px);
}

.gn-post-body h3 {
	margin: 30px 0 12px;
	font-size: clamp(18px, 1.8vw, 21px);
}

.gn-post-body h4,
.gn-post-body h5 {
	margin: 24px 0 10px;
	font-size: 17px;
}

.gn-post-body a {
	color: #245d3d;
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
}

.gn-post-body strong {
	color: #253a2c;
}

.gn-post-body ul,
.gn-post-body ol {
	padding-left: 1.35em;
}

.gn-post-body li {
	margin-bottom: .5em;
}

.gn-post-body blockquote {
	position: relative;
	margin: 28px 0;
	padding: 23px 26px;
	border: 1px solid #dce8e0;
	border-left: 4px solid #3a874a;
	border-radius: 0 18px 18px 0;
	background: linear-gradient(180deg, #f8fcfa, #f1f7f3);
	color: #315a3c;
	font-size: 1.08em;
}

.gn-post-body blockquote p:last-child {
	margin-bottom: 0;
}

.gn-post-body img,
.gn-post-body video,
.gn-post-body iframe {
	max-width: 100%;
	border-radius: 12px;
}

.gn-post-body img {
	height: auto;
}

.gn-post-body figcaption,
.gn-post-body .wp-caption-text {
	margin-top: 7px;
	color: #849180;
	font-size: 11px;
	font-style: italic;
	line-height: 1.5;
	text-align: center;
}

.gn-post-body table {
	width: 100%;
	border-collapse: collapse;
	font-size: .92em;
}

.gn-post-body th,
.gn-post-body td {
	padding: 10px 12px;
	border: 1px solid #dfe8dd;
	text-align: left;
}

.gn-post-body th {
	background: #f0f7ee;
	color: #275638;
}

.gn-post-body pre {
	max-width: 100%;
	overflow: auto;
	padding: 16px;
	border-radius: 10px;
	background: #f4f7f2;
	font-size: .88em;
}

.gn-post-page-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 25px 0;
}

.gn-post-end {
	display: flex;
	flex-direction: column;
	gap: 17px;
	margin-top: 35px;
	padding: 22px 0;
	border-top: 1px solid var(--gn-post-border);
}

.gn-post-tag-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.gn-post-tag-list > strong,
.gn-post-end-share > strong {
	color: #293d30;
	font-size: 12px;
}

.gn-post-tag-list a {
	padding: 6px 11px;
	border: 1px solid #e2e9df;
	border-radius: 7px;
	color: #63816b;
	font-size: 11px;
	text-decoration: none;
}

.gn-post-end-share {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.gn-post-end-share button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 13px;
	border: 0;
	border-radius: 7px;
	background: #eaf4e9;
	color: #2d753c;
	font-size: 11px;
	font-weight: 700;
}

.gn-post-author-card {
	display: flex;
	align-items: center;
	gap: 17px;
	margin: 10px 0 35px;
	padding: 22px;
	border-radius: 16px;
	background: #f4f7f1;
}

.gn-post-author-badge {
	flex: 0 0 60px;
	width: 60px;
	height: 60px;
}

.gn-post-author-badge .gn-post-avatar {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
}

.gn-post-author-card small {
	color: #719370;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 1.2px;
}

.gn-post-author-card h2 {
	margin: 2px 0 3px;
	color: #1f5632;
	font-size: 17px;
}

.gn-post-author-card p {
	max-width: 520px;
	margin: 0;
	color: #6b796d;
	font-size: 11px;
	line-height: 1.7;
}

.gn-post-navigation {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 0 0 38px;
}

.gn-post-navigation > a {
	display: flex;
	min-height: 84px;
	flex-direction: column;
	justify-content: center;
	padding: 14px 17px;
	border: 1px solid #e2e9df;
	border-radius: 12px;
	background: #fff;
	text-decoration: none;
}

.gn-post-navigation > a:hover {
	border-color: #a8c6a5;
	background: #f6faf4;
}

.gn-post-navigation small {
	color: #779879;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 1px;
}

.gn-post-navigation strong {
	margin-top: 5px;
	color: #31523a;
	font-size: 12px;
	line-height: 1.5;
}

.gn-post-navigation-next {
	text-align: right;
}

.gn-post-comments {
	padding-top: 24px;
	border-top: 1px solid var(--gn-post-border);
}

.gn-post-comments .comments-area {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.gn-post-comments .comments-title,
.gn-post-comments .comment-reply-title {
	color: #19492d;
	font-size: 22px;
	font-weight: 800;
}

.gn-post-comments .comment-list {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.gn-post-comments .comment-list > li,
.gn-post-comments .comment-list .children > li {
	padding: 17px 0;
	border-bottom: 1px solid #edf3ef;
}

.gn-post-comments .comment-meta a,
.gn-post-comments .reply a,
.gn-post-comments .logged-in-as a,
.gn-post-comments .comment-notes a {
	color: #145236;
}

.gn-single-post-page .gn-post-comments .comments-area input[type="text"],
.gn-single-post-page .gn-post-comments .comments-area input[type="email"],
.gn-single-post-page .gn-post-comments .comments-area input[type="url"],
.gn-single-post-page .gn-post-comments .comments-area textarea {
	width: 100%;
	border: 1px solid #dfe9dd;
	border-radius: 9px;
	background: #fbfdfb;
	box-shadow: none;
	padding: 12px 14px;
}

.gn-single-post-page .gn-post-comments .comments-area textarea {
	min-height: 150px;
}

.gn-single-post-page .gn-post-comments .comments-area input[type="submit"],
.gn-single-post-page .gn-post-comments .comments-area .submit {
	min-height: 44px;
	padding: 0 20px;
	border: 0;
	border-radius: 9px;
	background: #23673d;
	color: #fff;
	font-weight: 700;
}

.gn-post-sidebar {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 17px;
}

.gn-post-side-card {
	padding: 19px;
	border: 1px solid #e6ece2;
	border-radius: 15px;
	background: #fff;
	box-shadow: 0 8px 25px rgb(28 69 36 / 4%);
}

.gn-post-toc-card {
	position: static;
	width: min(100%, 320px);
	margin-left: auto;
}

.gn-post-side-heading {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-bottom: 15px;
}

.gn-post-side-heading h2 {
	margin: 0;
	color: #235236;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.4;
}

.gn-post-side-icon {
	display: grid;
	width: 30px;
	height: 30px;
	flex: 0 0 30px;
	place-items: center;
	border-radius: 9px;
	background: #edf6e8;
	color: #448f44;
	font-size: 19px;
}

.gn-post-reading-progress {
	height: 4px;
	overflow: hidden;
	margin-bottom: 10px;
	border-radius: 5px;
	background: #edf3e9;
}

.gn-post-reading-progress span {
	display: block;
	width: 0;
	height: 100%;
	border-radius: inherit;
	background: #5f9f4d;
	transition: width .18s ease;
}

.gn-post-toc {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.gn-post-toc a {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	padding: 8px;
	border-radius: 6px;
	color: #677a69;
	font-size: 13px;
	line-height: 1.45;
	text-decoration: none;
	transition: .18s ease;
}

.gn-post-toc a > span {
	flex: 0 0 20px;
	color: #28561e;
	font-size: 12px;
}

.gn-post-toc a.is-subitem {
	padding-left: 10px;
}

.gn-post-toc a:hover,
.gn-post-toc a.is-active {
	background: #eef7e9;
	color: #255d30;
	font-weight: 700;
}

.gn-post-toc-bottom {
	display: block;
	margin-top: 12px;
	padding-top: 11px;
	border-top: 1px solid #edf1ea;
	color: #99a597;
	font-size: 10px;
}

.gn-post-side-search {
	display: flex;
	width: 100%;
	height: 46px;
	overflow: hidden;
	border: 1px solid #dce7dc;
	border-radius: 10px;
	background: #fff;
	transition: border-color .18s ease, box-shadow .18s ease;
}

.gn-post-search-card .gn-post-side-heading {
	gap: 10px;
	margin-bottom: 17px;
}

.gn-post-search-card .gn-post-side-icon {
	width: 34px;
	height: 34px;
	flex-basis: 34px;
	border-radius: 10px;
}

.gn-post-side-search:focus-within {
	border-color: #78ae83;
	box-shadow: 0 0 0 3px rgb(63 137 76 / 10%);
}

.gn-post-search-card .gn-post-side-search input[type="search"] {
	width: 100%;
	height: 100%;
	min-width: 0;
	flex: 1;
	margin: 0;
	padding: 0 13px;
	border: 0 !important;
	border-radius: 0;
	background: transparent;
	box-shadow: none !important;
	color: #33513b;
	font: inherit;
	font-size: 12px;
	line-height: 1;
	outline: 0;
	appearance: none;
}

.gn-post-search-card .gn-post-side-search input[type="search"]::placeholder {
	color: #849286;
	opacity: 1;
}

.gn-post-search-card .gn-post-side-search button[type="submit"] {
	display: grid;
	width: 48px;
	height: 100%;
	flex: 0 0 48px;
	place-items: center;
	margin: 0;
	padding: 0;
	border: 0 !important;
	border-radius: 0;
	background: #286c43;
	color: #fff;
	font-size: 17px;
	line-height: 1;
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color .18s ease;
}

.gn-post-search-card .gn-post-side-search button[type="submit"]:hover {
	background: #1d5936;
}

.gn-post-category-links {
	display: flex;
	flex-direction: column;
}

.gn-post-category-links a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 0;
	border-bottom: 1px solid #f0f3ee;
	color: #455b48;
	font-size: 14px;
	text-decoration: none;
}

.gn-post-category-links a:last-child {
	border-bottom: 0;
}

.gn-post-category-links a:hover {
	color: #3f914c;
}

.gn-post-category-links b {
	margin-left: auto;
	color: #a0b39f;
	font-size: 10px;
	font-weight: 600;
}

.gn-post-side-promo {
	position: relative;
	overflow: hidden;
	min-height: 275px;
	padding: 26px 23px;
	border-radius: 16px;
	background: linear-gradient(150deg, #eff8e1, #e4f2d3 53%, #d4e8bf);
}

.gn-post-side-promo-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gn-post-side-promo.has-image.has-text::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(105deg, rgb(239 248 225 / 96%), rgb(228 242 211 / 91%) 58%, rgb(212 232 191 / 62%));
	content: "";
	pointer-events: none;
}

.gn-post-side-promo-content {
	position: relative;
	z-index: 2;
}

.gn-post-side-promo::after {
	position: absolute;
	right: -30px;
	bottom: -75px;
	width: 200px;
	height: 200px;
	border: 1px solid rgb(98 144 74 / 18%);
	border-radius: 50%;
	box-shadow: 0 0 0 32px rgb(98 144 74 / 6%), 0 0 0 64px rgb(98 144 74 / 5%);
	content: "";
	pointer-events: none;
}

.gn-post-promo-eyebrow {
	position: relative;
	z-index: 1;
	color: #598f47;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 1.7px;
}

.gn-post-promo-leaf {
	position: absolute;
	top: 7px;
	right: 13px;
	color: rgb(84 135 66 / 22%);
	font-size: 69px;
}

.gn-post-side-promo-content h2 {
	position: relative;
	z-index: 1;
	margin: 12px 0 8px;
	color: #1b5631;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.6px;
	line-height: 1.35;
}

.gn-post-side-promo-content p {
	position: relative;
	z-index: 1;
	max-width: 225px;
	margin: 0 0 13px;
	color: #6d8167;
	font-size: 11px;
	line-height: 1.7;
}

.gn-post-side-promo-content > a {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 15px;
	border-radius: 40px;
	background: #1d6338;
	color: #fff;
	font-size: 10px;
	font-weight: 750;
	text-decoration: none;
}

.gn-post-recent-list {
	display: flex;
	flex-direction: column;
}

.gn-post-recent-item {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 10px 0;
	border-bottom: 1px solid #eff2ed;
	text-decoration: none;
}

.gn-post-recent-item:first-child {
	padding-top: 0;
}

.gn-post-recent-item:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.gn-post-recent-item img,
.gn-post-recent-placeholder {
	display: grid;
	width: 68px;
	height: 64px;
	flex: 0 0 68px;
	place-items: center;
	border-radius: 9px;
	background: #edf5e8;
	color: #5c8a4d;
	font-size: 14px;
	font-weight: 800;
	object-fit: cover;
}

.gn-post-recent-item strong {
	display: block;
	color: #31523a;
	font-size: 14px;
	line-height: 1.5;
}

.gn-post-recent-item:hover strong {
	color: #5ca25a;
}

.gn-post-recent-item small {
	display: block;
	margin-top: 4px;
	color: #91a08f;
	font-size: 11px;
}

.gn-post-related {
	padding: 68px 0 76px;
	background: #f5f8f1;
}

.gn-post-related-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 24px;
}

.gn-post-related-heading .gn-post-eyebrow {
	margin-bottom: 4px;
}

.gn-post-related-heading h2 {
	margin: 4px 0 0;
	color: #1e4b2c;
	font-size: clamp(24px, 3vw, 31px);
	font-weight: 800;
	letter-spacing: -.8px;
}

.gn-post-related-heading h2 span {
	color: #83ac4e;
}

.gn-post-related-heading > a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 7px;
	color: #397b40;
	font-size: 11px;
	font-weight: 750;
	white-space: nowrap;
}

.gn-post-related-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 21px;
}

.gn-post-related-card {
	min-width: 0;
	overflow: hidden;
	border-radius: 15px;
	background: #fff;
	box-shadow: 0 8px 28px rgb(38 65 41 / 6%);
	text-decoration: none;
	transition: transform .22s ease, box-shadow .22s ease;
}

.gn-post-related-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--gn-post-shadow);
}

.gn-post-related-image {
	position: relative;
	display: grid;
	height: 208px;
	place-items: center;
	overflow: hidden;
	background: linear-gradient(145deg, #e4efdc, #f5f7ef);
	color: #6b9657;
	font-size: 30px;
	font-weight: 800;
}

.gn-post-related-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 45%;
	transition: transform .35s ease;
}

.gn-post-related-card:hover .gn-post-related-image img {
	transform: scale(1.04);
}

.gn-post-related-content {
	padding: 16px 18px 18px;
}

.gn-post-related-content small {
	color: #779879;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 1.1px;
	text-transform: uppercase;
}

.gn-post-related-content h3 {
	margin: 6px 0 7px;
	color: #1e4a2c;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.5;
}

.gn-post-related-content p {
	margin: 0 0 12px;
	color: #718071;
	font-size: 11px;
	line-height: 1.6;
}

.gn-post-related-content > span {
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: #7f9280;
	font-size: 10px;
}

.gn-post-related-content > span b {
	color: #4d9146;
	font-size: 16px;
}

.gn-post-toast {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 9999;
	padding: 11px 16px;
	border-radius: 9px;
	background: #17472f;
	color: #fff;
	font-size: 12px;
	opacity: 0;
	pointer-events: none;
	transform: translateY(8px);
	transition: opacity .18s ease, transform .18s ease;
}

.gn-post-toast.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (max-width: 1050px) {
	.gn-post-grid {
		grid-template-columns: minmax(0, 1fr) 290px;
		gap: 28px;
	}

	.gn-post-hero-grid {
		gap: 38px;
	}
}

@media (max-width: 849px) {
	.gn-post-container {
		width: min(100% - 40px, 760px);
	}

	.gn-post-hero {
		padding: 16px 0 48px;
	}

	.gn-post-breadcrumbs {
		margin-bottom: 24px;
	}

	.gn-post-hero-grid {
		grid-template-columns: minmax(0, 1fr) minmax(260px, .8fr);
		gap: 24px;
	}

	.gn-post-hero-copy h1 {
		font-size: clamp(30px, 5vw, 42px);
	}

	.gn-post-hero-visual {
		height: 310px;
	}

	.gn-post-hero-frame--main {
		height: 275px;
	}

	.gn-post-hero-frame--detail {
		height: 175px;
	}

	.gn-post-shell {
		padding-top: 36px;
	}

	.gn-post-grid {
		grid-template-columns: 1fr;
	}

	.gn-post-sidebar {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}

	.gn-post-toc-card,
	.gn-post-side-promo {
		grid-column: 1 / -1;
	}

	.gn-post-toc-card {
		position: static;
		width: 100%;
		max-width: none;
		max-height: none;
		margin-left: 0;
		overflow: visible;
		overscroll-behavior: auto;
	}

	.gn-post-related-grid {
		gap: 14px;
	}

	.gn-post-related-image {
		height: 170px;
	}
}

@media (max-width: 620px) {
	.gn-post-container {
		width: calc(100% - 32px);
	}

	.gn-post-hero {
		padding: 14px 0 38px;
	}

	.gn-post-breadcrumbs {
		gap: 5px 7px;
		margin-bottom: 19px;
		font-size: 12px;
	}

	.gn-post-hero-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.gn-post-hero-copy {
		padding-bottom: 0;
	}

	.gn-post-hero-copy h1 {
		margin-bottom: 12px;
		font-size: clamp(29px, 8vw, 38px);
		letter-spacing: -.8px;
	}

	.gn-post-excerpt {
		margin-bottom: 17px;
		font-size: 13px;
	}

	.gn-post-hero-meta {
		gap: 9px 12px;
	}

	.gn-post-meta-divider {
		height: 23px;
	}

	.gn-post-hero-visual {
		height: 275px;
		margin: 5px 3px 0;
	}

	.gn-post-hero-frame {
		border-width: 5px;
		border-radius: 15px;
	}

	.gn-post-hero-frame--main {
		left: 1%;
		width: 83%;
		height: 245px;
	}

	.gn-post-hero-frame--detail {
		bottom: 2px;
		width: 37%;
		height: 145px;
	}

	.gn-post-hero-sticker {
		top: -9px;
		right: 6px;
		width: 78px;
		height: 78px;
		border-width: 4px;
		font-size: 8px;
	}

	.gn-post-hero-sticker strong {
		font-size: 9px;
	}

	.gn-post-sticker-leaf {
		font-size: 14px;
	}

	.gn-post-shell {
		padding-top: 28px;
		padding-bottom: 54px;
	}

	.gn-post-article-actions {
		align-items: flex-start;
	}

	.gn-post-share-tools > span {
		display: none;
	}

	.gn-post-reading-row {
		align-items: flex-start;
	}

	.gn-post-reading-row > span {
		max-width: 130px;
		font-size: 9px;
	}

	.gn-post-text-sizer > span {
		display: none;
	}

	.gn-post-body {
		line-height: 1.82;
	}

	.gn-post-body h2 {
		margin-top: 34px;
	}

	.gn-post-body blockquote {
		padding: 18px 19px;
	}

	.gn-post-author-card {
		align-items: flex-start;
		gap: 12px;
		padding: 17px;
	}

	.gn-post-author-badge {
		flex-basis: 48px;
		width: 48px;
		height: 48px;
	}

	.gn-post-navigation {
		grid-template-columns: 1fr;
	}

	.gn-post-navigation-next {
		text-align: left;
	}

	.gn-post-sidebar {
		grid-template-columns: 1fr;
	}

	.gn-post-toc-card,
	.gn-post-side-promo {
		grid-column: auto;
	}

	.gn-post-related {
		padding: 48px 0 54px;
	}

	.gn-post-related-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}

	.gn-post-related-heading h2 {
		font-size: 25px;
	}

	.gn-post-related-grid {
		grid-template-columns: 1fr;
	}

	.gn-post-related-image {
		height: 205px;
	}

	.gn-post-toast {
		right: 16px;
		bottom: 16px;
		left: 16px;
		text-align: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gn-single-post-page *,
	.gn-single-post-page *::before,
	.gn-single-post-page *::after {
		 scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}
