/*
Theme Name: GoodTree Twenty Twenty-Five
Theme URI: https://goodtree.us/
Description: GoodTree's editorial presentation layer over Twenty Twenty-Five.
Author: GoodTree
Template: twentytwentyfive
Version: 1.0.0
*/

:root {
	--goodtree-ink: #2d3748;
	--goodtree-heading: #1a202c;
	--goodtree-muted: #667085;
	--goodtree-page: #f7fafc;
	--goodtree-surface: #ffffff;
	--goodtree-rule: #d9e0e5;
	--goodtree-accent: #4b6658;
	--goodtree-shell: 980px;
}

body {
	background: var(--goodtree-page);
	color: var(--goodtree-ink);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.6;
}

.wp-site-blocks {
	min-height: 100vh;
}

.goodtree-site-header {
	background: var(--goodtree-surface);
	border-bottom: 1px solid var(--goodtree-rule);
}

.goodtree-site-header__inner {
	box-sizing: border-box;
	max-width: var(--goodtree-shell);
	padding: 1.05rem 1.5rem;
}

.goodtree-site-header .wp-block-site-title {
	color: var(--goodtree-heading);
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: -.02em;
}

.goodtree-site-header .wp-block-site-title a,
.goodtree-site-nav a {
	color: inherit;
	text-decoration: none;
}

.goodtree-site-header .wp-block-navigation {
	font-size: .95rem;
	font-weight: 500;
}

.goodtree-site-header .wp-block-navigation a:hover,
.goodtree-site-header .wp-block-navigation a:focus {
	color: var(--goodtree-accent);
	text-decoration: underline;
	text-underline-offset: .18em;
}

.goodtree-main,
.goodtree-single-shell {
	box-sizing: border-box;
	max-width: var(--goodtree-shell);
	margin-right: auto;
	margin-left: auto;
	padding-right: 1.5rem;
	padding-left: 1.5rem;
}

.goodtree-main {
	margin-top: clamp(2.5rem, 7vw, 5rem) !important;
}

.goodtree-home-title {
	max-width: 100% !important;
	width: 100%;
	color: var(--goodtree-heading);
	font-size: clamp(2.4rem, 5vw, 4.5rem);
	font-weight: 700;
	letter-spacing: -.045em;
	line-height: 1.05;
	margin: 0 0 2rem;
	text-align: left;
}

.goodtree-main .wp-block-query {
	max-width: 100%;
}

.goodtree-main .wp-block-post-template > li {
	border-top: 1px solid var(--goodtree-rule);
	padding: clamp(1.5rem, 4vw, 2.5rem) 0;
}

.goodtree-main .wp-block-post-title,
.goodtree-main .wp-block-post-content,
.goodtree-main .wp-block-post-date {
	max-width: 100%;
}

.goodtree-main .wp-block-post-title {
	font-size: clamp(1.6rem, 3.2vw, 2.55rem);
	font-weight: 650;
	letter-spacing: -.035em;
	line-height: 1.15;
	margin: 0 0 .7rem;
}

.goodtree-main .wp-block-post-title a {
	color: var(--goodtree-heading);
	text-decoration: none;
}

.goodtree-main .wp-block-post-title a:hover,
.goodtree-main .wp-block-post-title a:focus {
	color: var(--goodtree-accent);
	text-decoration: underline;
	text-underline-offset: .16em;
}

.goodtree-main .wp-block-post-content {
	color: var(--goodtree-ink);
	font-size: 1rem;
	line-height: 1.7;
}

.goodtree-main .wp-block-post-date {
	color: var(--goodtree-muted);
	font-size: .85rem;
	margin-top: 1rem;
}

.single-post .goodtree-single-shell,
.single-goodtree_note .goodtree-single-shell {
	margin-top: clamp(2.5rem, 7vw, 5rem);
}

.single-post .wp-block-post-title,
.single-goodtree_note .wp-block-post-title {
	box-sizing: border-box;
	color: var(--goodtree-heading);
	font-size: clamp(2.4rem, 6vw, 4.7rem);
	font-weight: 650;
	letter-spacing: -.055em;
	line-height: 1.05;
	margin-bottom: 1.1rem;
}

.single-post .wp-block-post-title,
.single-post .wp-block-group:has(> .wp-block-post-author-name) {
	box-sizing: border-box;
	max-width: var(--goodtree-shell) !important;
	width: 100%;
	margin-right: auto;
	margin-left: auto;
	text-align: left;
}

.single-post .wp-block-group:has(> .wp-block-post-author-name) {
	padding-right: 0;
	padding-left: 0;
}

.single-post .wp-block-post-content {
	box-sizing: border-box;
	font-size: 1.08rem;
	line-height: 1.75;
	max-width: var(--goodtree-shell) !important;
}

.single-post .wp-block-post-content > :where(p, ul, ol, blockquote, h2, h3, h4) {
	max-width: 760px;
}

.single-post .wp-block-post-content blockquote {
	border-left: 4px solid var(--goodtree-accent);
	color: var(--goodtree-heading);
	padding-left: 1.25rem;
}

.goodtree-site-footer {
	border-top: 1px solid var(--goodtree-rule);
	color: var(--goodtree-muted);
	font-size: .9rem;
	margin-top: clamp(4rem, 10vw, 8rem);
	padding: 2rem 1.5rem;
	text-align: center;
}

@media (max-width: 700px) {
	.goodtree-site-header__inner,
	.goodtree-main,
	.goodtree-single-shell {
		padding-right: 1rem;
		padding-left: 1rem;
	}

	.goodtree-site-header__inner {
		padding-top: .85rem;
		padding-bottom: .85rem;
	}

	.single-post .wp-block-post-content {
		font-size: 1rem;
	}
}
