:root {
	--tt-forest: #1f3d2b;
	--tt-dark-forest: #152b20;
	--tt-leaf: #3e6b4f;
	--tt-light-lime: #cde3b9;
	--tt-pale-lime: #e4f0d8;
	--tt-amber: #e8a72e;
	--tt-dark-amber: #c98d1b;
	--tt-paper: #f5f6f1;
	--tt-white: #ffffff;
	--tt-ink: #182019;
	--tt-muted: #5c6659;
	--tt-radius: 22px;
	--tt-radius-lg: 28px;
	--tt-shadow: 0 18px 48px rgb(21 43 32 / 0.12);
	--tt-shadow-soft: 0 12px 30px rgb(21 43 32 / 0.08);
	--tt-width: 1100px;
	--tt-focus: 0 0 0 3px rgb(232 167 46 / 0.45);
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--tt-paper);
	color: var(--tt-ink);
	font-family: Manrope, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.65;
	text-rendering: optimizeLegibility;
}

body.menu-open {
	overflow: hidden;
}

img,
svg {
	display: block;
	max-width: 100%;
}

a {
	color: var(--tt-forest);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

a:hover {
	color: var(--tt-dark-amber);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
	outline: 0;
	box-shadow: var(--tt-focus);
}

button,
input,
textarea {
	font: inherit;
}

.container {
	width: min(100% - 32px, var(--tt-width));
	margin-inline: auto;
}

.section {
	padding: 92px 0;
	scroll-margin-top: 96px;
}

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

.screen-reader-text:focus {
	position: fixed;
	z-index: 1000;
	top: 12px;
	left: 12px;
	width: auto;
	height: auto;
	padding: 12px 16px;
	clip: auto;
	background: var(--tt-white);
	border-radius: 12px;
	color: var(--tt-ink);
	box-shadow: var(--tt-shadow);
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	backdrop-filter: blur(16px);
	background: rgb(245 246 241 / 0.86);
	border-bottom: 1px solid rgb(31 61 43 / 0.1);
}

.site-header__inner {
	min-height: 78px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--tt-forest);
	text-decoration: none;
	flex-shrink: 0;
}

.brand__text {
	display: grid;
	gap: 0;
}

.brand__name {
	font-weight: 850;
	font-size: 1.12rem;
	line-height: 1.1;
}

.brand__subtitle {
	font-size: 0.78rem;
	color: var(--tt-muted);
	line-height: 1.2;
}

.site-nav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	font-size: 0.92rem;
	font-weight: 750;
}

.site-nav a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 8px 12px;
	border-radius: 999px;
	color: var(--tt-forest);
	text-decoration: none;
}

.site-nav a:hover,
.site-nav a:focus-visible {
	background: var(--tt-pale-lime);
	color: var(--tt-dark-forest);
}

.site-nav .nav-cta {
	background: var(--tt-amber);
	color: var(--tt-dark-forest);
	box-shadow: inset 0 -2px 0 rgb(21 43 32 / 0.12);
}

.site-nav .nav-cta:hover {
	background: var(--tt-dark-amber);
	color: var(--tt-white);
}

.language-switcher {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	margin-left: 4px;
	padding: 3px;
	border-radius: 999px;
	background: rgb(31 61 43 / 0.08);
}

.language-switcher a {
	min-height: 34px;
	padding: 6px 10px;
	font-size: 0.82rem;
}

.language-switcher .is-current {
	background: var(--tt-white);
	color: var(--tt-dark-forest);
	box-shadow: 0 2px 8px rgb(21 43 32 / 0.12);
}

.menu-toggle {
	display: none;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: var(--tt-forest);
	color: var(--tt-white);
	align-items: center;
	justify-content: center;
	position: relative;
	cursor: pointer;
}

.menu-toggle__bar {
	position: absolute;
	width: 18px;
	height: 2px;
	background: currentColor;
	border-radius: 999px;
	transition: transform 180ms ease, opacity 180ms ease;
}

.menu-toggle__bar:first-child {
	transform: translateY(-4px);
}

.menu-toggle__bar:nth-child(2) {
	transform: translateY(4px);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__bar:first-child {
	transform: rotate(45deg);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__bar:nth-child(2) {
	transform: rotate(-45deg);
}

.hero {
	padding-top: 54px;
	background: linear-gradient(135deg, var(--tt-dark-forest), var(--tt-forest));
	color: var(--tt-white);
}

.hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
	align-items: center;
	gap: 44px;
	min-height: 640px;
}

.eyebrow {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 16px;
	color: var(--tt-leaf);
	font-weight: 850;
	font-size: 0.84rem;
	text-transform: uppercase;
}

.hero .eyebrow,
.section-heading--dark .eyebrow {
	color: var(--tt-light-lime);
}

.review-badge {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	padding: 4px 9px;
	background: rgb(232 167 46 / 0.18);
	color: var(--tt-dark-amber);
	font-size: 0.72rem;
	font-weight: 850;
	text-transform: none;
}

.hero .review-badge,
.support .review-badge {
	color: var(--tt-white);
	background: rgb(232 167 46 / 0.28);
}

h1,
h2,
h3,
h4,
h5 {
	margin: 0;
	color: inherit;
	line-height: 1.08;
	font-weight: 880;
}

h1 {
	max-width: 820px;
	font-size: clamp(3rem, 7vw, 5.8rem);
}

h1 span {
	color: var(--tt-amber);
}

h2 {
	font-size: clamp(2rem, 4.8vw, 3.8rem);
}

h3 {
	font-size: 1.35rem;
}

h4 {
	font-size: 1.05rem;
}

h5 {
	font-size: 1rem;
}

.hero__intro {
	max-width: 710px;
	margin: 24px 0 0;
	color: rgb(255 255 255 / 0.86);
	font-size: 1.18rem;
}

.hero__actions,
.button {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
}

.hero__actions {
	margin-top: 34px;
}

.button {
	width: fit-content;
	min-height: 48px;
	justify-content: center;
	border: 0;
	border-radius: 999px;
	padding: 12px 18px;
	font-weight: 850;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.button .icon {
	width: 22px;
	height: 22px;
}

.button-primary {
	background: var(--tt-amber);
	color: var(--tt-dark-forest);
}

.button-primary:hover {
	background: var(--tt-dark-amber);
	color: var(--tt-white);
}

.button-secondary {
	background: rgb(255 255 255 / 0.12);
	color: var(--tt-white);
	border: 1px solid rgb(255 255 255 / 0.28);
}

.button-secondary:hover {
	background: var(--tt-white);
	color: var(--tt-forest);
}

.hero__panel {
	align-self: stretch;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 18px;
}

.stat-grid {
	display: grid;
	gap: 16px;
}

.stat-card {
	padding: 24px;
	border-radius: var(--tt-radius);
	background: rgb(255 255 255 / 0.1);
	border: 1px solid rgb(255 255 255 / 0.18);
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.14);
}

.stat-card strong {
	display: block;
	color: var(--tt-amber);
	font-size: 2.6rem;
	line-height: 1;
}

.stat-card span {
	display: block;
	margin-top: 8px;
	color: rgb(255 255 255 / 0.82);
	font-weight: 750;
}

.review-note,
.fallback-note,
.footer-notice {
	color: var(--tt-muted);
	font-size: 0.92rem;
}

.hero .review-note {
	color: rgb(255 255 255 / 0.72);
}

.section-heading {
	max-width: 760px;
	margin-bottom: 34px;
}

.section-heading p:not(.eyebrow) {
	margin: 18px 0 0;
	color: var(--tt-muted);
	font-size: 1.06rem;
}

.section-heading--dark {
	color: var(--tt-white);
}

.section-heading--dark p:not(.eyebrow) {
	color: rgb(255 255 255 / 0.78);
}

.story-grid,
.transparency-grid,
.support-grid,
.news-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

.story-card,
.info-panel,
.table-panel,
.news-card,
.post-card,
.entry {
	border-radius: var(--tt-radius-lg);
	background: var(--tt-white);
	box-shadow: var(--tt-shadow-soft);
	border: 1px solid rgb(31 61 43 / 0.08);
}

.story-card,
.info-panel,
.news-card,
.post-card,
.entry {
	padding: 28px;
}

.story-card p,
.activity-card p,
.info-panel p,
.support-card p,
.news-card p,
.post-card p {
	color: var(--tt-muted);
}

.timeline-block {
	margin-top: 26px;
	padding: 32px;
	border-radius: var(--tt-radius-lg);
	background: var(--tt-pale-lime);
	border: 1px solid rgb(31 61 43 / 0.1);
}

.timeline-groups {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	margin-top: 22px;
}

.timeline {
	display: grid;
	gap: 18px;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}

.timeline li {
	display: grid;
	grid-template-columns: 78px 1fr;
	gap: 16px;
	position: relative;
}

.timeline time {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	border-radius: 999px;
	background: var(--tt-forest);
	color: var(--tt-white);
	font-weight: 850;
}

.timeline p {
	margin: 8px 0 0;
	color: var(--tt-muted);
}

.valley-photo {
	margin-top: 34px;
	position: relative;
	min-height: 360px;
	overflow: hidden;
	border-radius: var(--tt-radius-lg);
	background: linear-gradient(135deg, var(--tt-forest), var(--tt-leaf));
	box-shadow: var(--tt-shadow);
}

.valley-photo__caption {
	position: absolute;
	z-index: 2;
	top: 24px;
	left: 24px;
}

.valley-photo__image,
.valley-photo__placeholder {
	width: 100%;
	height: 100%;
	min-height: 360px;
	object-fit: cover;
}

.valley-photo__placeholder {
	display: grid;
	place-items: center;
	padding: 32px;
	background:
		linear-gradient(140deg, rgb(31 61 43 / 0.98), rgb(62 107 79 / 0.92)),
		repeating-linear-gradient(45deg, rgb(255 255 255 / 0.08) 0 12px, transparent 12px 24px);
	color: var(--tt-white);
	text-align: center;
}

.valley-photo__placeholder span {
	max-width: 520px;
	font-size: 1.15rem;
	font-weight: 750;
}

.activities {
	background: linear-gradient(180deg, rgb(228 240 216 / 0.48), transparent);
}

.activity-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.activity-card {
	min-height: 270px;
	padding: 24px;
	border-radius: var(--tt-radius-lg);
	background: var(--tt-white);
	border: 1px solid rgb(31 61 43 / 0.08);
	box-shadow: var(--tt-shadow-soft);
	display: grid;
	grid-template-rows: auto 1fr;
	gap: 18px;
}

.activity-card__icon {
	width: 58px;
	height: 58px;
	display: grid;
	place-items: center;
	border-radius: 18px;
	background: var(--tt-pale-lime);
	color: var(--tt-forest);
}

.activity-card__icon .icon {
	width: 34px;
	height: 34px;
}

.status-pill {
	display: inline-flex;
	width: fit-content;
	margin: 0 0 12px;
	padding: 5px 10px;
	border-radius: 999px;
	background: rgb(232 167 46 / 0.16);
	color: var(--tt-dark-amber);
	font-size: 0.78rem;
	font-weight: 850;
}

.transparency {
	background: var(--tt-paper);
}

.fact-list,
.compact-facts {
	display: grid;
	gap: 14px;
	margin: 18px 0 0;
}

.fact-list div,
.compact-facts div {
	display: grid;
	grid-template-columns: minmax(110px, 0.42fr) 1fr;
	gap: 12px;
	padding-bottom: 12px;
	border-bottom: 1px solid rgb(31 61 43 / 0.1);
}

.fact-list dt,
.compact-facts dt {
	color: var(--tt-muted);
	font-weight: 750;
}

.fact-list dd,
.compact-facts dd {
	margin: 0;
	font-weight: 780;
}

.document-list {
	display: grid;
	gap: 12px;
	margin-top: 20px;
}

.document-link,
.coming-soon {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	min-height: 40px;
	border-radius: 999px;
	padding: 8px 14px;
	font-weight: 820;
}

.document-link {
	background: var(--tt-forest);
	color: var(--tt-white);
	text-decoration: none;
}

.document-link:hover {
	background: var(--tt-dark-amber);
	color: var(--tt-white);
}

.coming-soon {
	background: var(--tt-pale-lime);
	color: var(--tt-forest);
}

.table-panel {
	margin-top: 22px;
	padding: 0;
	overflow: hidden;
}

.table-panel__heading {
	padding: 28px 28px 0;
}

.table-panel__heading p {
	margin: 12px 0 0;
	color: var(--tt-muted);
}

.responsive-table {
	overflow-x: auto;
	padding: 24px 28px 28px;
}

table {
	width: 100%;
	min-width: 580px;
	border-collapse: collapse;
}

th,
td {
	padding: 14px 16px;
	text-align: left;
	border-bottom: 1px solid rgb(31 61 43 / 0.12);
}

th {
	background: var(--tt-pale-lime);
	color: var(--tt-forest);
	font-size: 0.88rem;
}

.support {
	background:
		linear-gradient(135deg, rgb(21 43 32 / 0.98), rgb(31 61 43 / 0.96)),
		var(--tt-dark-forest);
	color: var(--tt-white);
}

.support-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.support-card {
	display: flex;
	flex-direction: column;
	gap: 18px;
	min-height: 100%;
	padding: 26px;
	border-radius: var(--tt-radius-lg);
	background: rgb(255 255 255 / 0.1);
	border: 1px solid rgb(255 255 255 / 0.16);
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.12);
}

.support-card p {
	color: rgb(255 255 255 / 0.76);
}

.support-card .compact-facts div {
	grid-template-columns: 92px 1fr;
	border-color: rgb(255 255 255 / 0.14);
}

.support-card .compact-facts dt,
.support-card .compact-facts dd {
	color: var(--tt-white);
}

.instruction-list {
	display: grid;
	gap: 10px;
}

.instruction-list p {
	margin: 0;
}

.donation-detail {
	display: grid;
	gap: 8px;
}

.donation-detail span {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	color: rgb(255 255 255 / 0.72);
	font-size: 0.9rem;
	font-weight: 750;
}

.donation-detail strong {
	overflow-wrap: anywhere;
	font-size: 1.03rem;
}

.copy-button {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	border: 1px solid rgb(255 255 255 / 0.22);
	border-radius: 999px;
	padding: 8px 12px;
	background: rgb(255 255 255 / 0.1);
	color: var(--tt-white);
	font-weight: 820;
	cursor: pointer;
}

.copy-button:hover {
	background: rgb(255 255 255 / 0.18);
}

.copy-button .icon {
	width: 18px;
	height: 18px;
}

.copy-button__status {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.qr-box {
	display: grid;
	place-items: center;
	min-height: 160px;
	padding: 20px;
	border: 1px dashed rgb(255 255 255 / 0.32);
	border-radius: var(--tt-radius);
	color: rgb(255 255 255 / 0.72);
	text-align: center;
}

.qr-box img {
	width: min(100%, 180px);
	height: auto;
	border-radius: 12px;
	background: var(--tt-white);
	padding: 8px;
}

.news-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.news-card {
	display: grid;
	gap: 12px;
}

.news-card__date,
.entry-meta {
	margin: 0;
	color: var(--tt-muted);
	font-size: 0.88rem;
	font-weight: 750;
}

.news-card h3 a,
.post-card h2 a {
	color: var(--tt-forest);
	text-decoration: none;
}

.news-card h3 a:hover,
.post-card h2 a:hover {
	color: var(--tt-dark-amber);
}

.text-link {
	font-weight: 850;
}

.empty-state {
	padding: 24px;
	border-radius: var(--tt-radius);
	background: var(--tt-white);
	color: var(--tt-muted);
}

.social-section {
	padding: 58px 0;
	background: var(--tt-pale-lime);
}

.social-section__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
}

.social-section h2 {
	font-size: clamp(1.8rem, 4vw, 3rem);
}

.social-section p {
	margin: 8px 0 0;
	color: var(--tt-muted);
}

.social-links {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}

.social-links p {
	flex-basis: 100%;
	margin: 0;
	color: var(--tt-forest);
	font-weight: 850;
}

.social-links a {
	display: inline-flex;
	min-height: 40px;
	align-items: center;
	border-radius: 999px;
	padding: 8px 14px;
	background: var(--tt-white);
	color: var(--tt-forest);
	font-weight: 820;
	text-decoration: none;
}

.site-footer {
	padding: 34px 0;
	background: var(--tt-dark-forest);
	color: rgb(255 255 255 / 0.78);
}

.site-footer__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
	gap: 24px;
	align-items: start;
}

.site-footer p {
	margin: 0 0 8px;
}

.site-footer strong {
	color: var(--tt-white);
}

.back-to-top {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	border-radius: 999px;
	padding: 8px 12px;
	background: rgb(255 255 255 / 0.1);
	color: var(--tt-white);
	text-decoration: none;
	font-weight: 820;
}

.back-to-top .icon {
	width: 20px;
	height: 20px;
}

.content-layout {
	max-width: 840px;
}

.entry-header {
	margin-bottom: 24px;
}

.entry-content {
	color: var(--tt-ink);
}

.entry-content img {
	height: auto;
	border-radius: var(--tt-radius);
}

.post-list {
	display: grid;
	gap: 18px;
}

.reveal {
	opacity: 1;
	transform: none;
}

.terratal-js .reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 480ms ease, transform 480ms ease;
}

.terratal-js .reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (max-width: 1080px) {
	.site-nav {
		font-size: 0.86rem;
	}

	.site-nav a {
		padding-inline: 9px;
	}

	.hero__inner,
	.support-grid,
	.news-grid {
		grid-template-columns: 1fr;
	}

	.hero__inner {
		min-height: 0;
		padding-bottom: 40px;
	}

	.stat-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

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

@media (max-width: 820px) {
	.site-header__inner {
		min-height: 68px;
	}

	.menu-toggle {
		display: inline-flex;
	}

	.site-nav {
		position: static;
		display: grid;
		grid-template-columns: 1fr;
		width: 100%;
		padding: 0 0 18px;
		gap: 4px;
	}

	.terratal-js .site-header__inner {
		flex-wrap: wrap;
	}

	.terratal-js .site-nav {
		display: none;
	}

	.terratal-js .site-nav.is-open {
		display: grid;
	}

	.site-nav a,
	.language-switcher {
		width: 100%;
	}

	.language-switcher {
		justify-content: stretch;
		margin-left: 0;
	}

	.language-switcher a {
		justify-content: center;
	}

	.section {
		padding: 68px 0;
	}

	.hero {
		padding-top: 38px;
	}

	.hero__inner,
	.story-grid,
	.transparency-grid,
	.timeline-groups,
	.activity-grid,
	.site-footer__inner {
		grid-template-columns: 1fr;
	}

	.stat-grid {
		grid-template-columns: 1fr;
	}

	.social-section__inner {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 520px) {
	.container {
		width: min(100% - 24px, var(--tt-width));
	}

	h1 {
		font-size: 2.62rem;
	}

	h2 {
		font-size: 2rem;
	}

	.brand__subtitle {
		max-width: 180px;
	}

	.hero__actions,
	.hero__actions .button,
	.support-card .button {
		width: 100%;
	}

	.hero__actions .button,
	.support-card .button {
		justify-content: center;
	}

	.story-card,
	.info-panel,
	.news-card,
	.post-card,
	.entry,
	.timeline-block,
	.support-card,
	.activity-card {
		padding: 22px;
	}

	.timeline li,
	.fact-list div,
	.compact-facts div,
	.support-card .compact-facts div {
		grid-template-columns: 1fr;
		gap: 6px;
	}

	.timeline time {
		width: fit-content;
	}

	.table-panel__heading,
	.responsive-table {
		padding-inline: 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.001ms !important;
	}

	.terratal-js .reveal {
		opacity: 1;
		transform: none;
	}
}
