:root {
	--ink: #18201d;
	--muted: #65726d;
	--line: #d8dfdc;
	--paper: #f6f7f4;
	--white: #ffffff;
	--green: #1d6b4f;
	--green-dark: #104332;
	--amber: #d99b2b;
	--red: #b94736;
	--blue: #346a8c;
	--shadow: 0 18px 42px rgba(24, 32, 29, 0.13);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	line-height: 1.5;
}
a { color: inherit; }
img { display: block; max-width: 100%; }

.site-header {
	position: sticky;
	top: 0;
	z-index: 40;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 14px clamp(18px, 4vw, 56px);
	background: rgba(246, 247, 244, 0.92);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid rgba(216, 223, 220, 0.9);
}
.brand {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	min-width: 230px;
}
.brand-mark {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 8px;
	background: var(--ink);
	color: var(--white);
	font-weight: 800;
}
.brand strong, .brand small { display: block; }
.brand small { color: var(--muted); font-size: 0.78rem; }
.main-nav {
	display: flex;
	align-items: center;
	gap: 8px;
}
.main-nav a {
	padding: 9px 12px;
	border-radius: 7px;
	text-decoration: none;
	color: var(--muted);
	font-weight: 700;
	font-size: 0.94rem;
}
.main-nav a:hover, .main-nav a[aria-current="page"] {
	background: #e7ece8;
	color: var(--ink);
}
.menu-toggle {
	display: none;
	width: 42px;
	height: 42px;
	border: 1px solid var(--line);
	border-radius: 7px;
	background: var(--white);
}
.menu-toggle span {
	display: block;
	width: 18px;
	height: 2px;
	margin: 4px auto;
	background: var(--ink);
}

.hero {
	position: relative;
	min-height: 74vh;
	display: flex;
	align-items: end;
	overflow: hidden;
}
.hero img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(10, 22, 18, 0.86), rgba(10, 22, 18, 0.42) 44%, rgba(10, 22, 18, 0.12)), linear-gradient(0deg, rgba(24, 32, 29, 0.62), transparent 42%);
}
.hero-content {
	position: relative;
	z-index: 1;
	width: min(720px, calc(100% - 36px));
	margin: 0 clamp(18px, 6vw, 76px) 7vh;
	color: var(--white);
}
.eyebrow {
	margin: 0 0 10px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--amber);
	font-size: 0.78rem;
	font-weight: 900;
}
h1, h2, h3, p { margin-top: 0; }
.hero h1 {
	margin-bottom: 18px;
	font-size: clamp(2.4rem, 5vw, 5.3rem);
	line-height: 0.96;
	max-width: 10ch;
}
.hero p:not(.eyebrow) {
	max-width: 650px;
	font-size: 1.13rem;
	color: rgba(255, 255, 255, 0.88);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid transparent;
	border-radius: 7px;
	text-decoration: none;
	font-weight: 800;
	cursor: pointer;
}
.button.primary { background: var(--amber); color: #20170a; }
.button.ghost { color: var(--white); border-color: rgba(255, 255, 255, 0.58); }
.button.reset { width: 100%; background: var(--ink); color: var(--white); }

.metrics-band {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-block: 1px solid var(--line);
	background: var(--white);
}
.metric {
	padding: 22px clamp(18px, 4vw, 54px);
	border-right: 1px solid var(--line);
}
.metric:last-child { border-right: 0; }
.metric strong { display: block; font-size: 2rem; line-height: 1; }
.metric span { color: var(--muted); font-size: 0.92rem; }

.workspace {
	display: grid;
	grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
	gap: 22px;
	padding: 28px clamp(18px, 4vw, 56px) 48px;
}
.filters-panel {
	align-self: start;
	position: sticky;
	top: 84px;
	padding: 18px;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 8px;
	box-shadow: var(--shadow);
}
.panel-heading h2 { margin-bottom: 16px; font-size: 1.35rem; }
label span {
	display: block;
	margin-bottom: 7px;
	color: var(--muted);
	font-size: 0.82rem;
	font-weight: 800;
}
input, select, textarea {
	width: 100%;
	min-height: 42px;
	padding: 10px 11px;
	border: 1px solid var(--line);
	border-radius: 7px;
	background: #fbfcfa;
	color: var(--ink);
	font: inherit;
}
.filters-panel > label { display: block; margin-bottom: 13px; }
.check-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin: 14px 0;
}
.check-grid label {
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 10px;
	border: 1px solid var(--line);
	border-radius: 7px;
	font-size: 0.88rem;
	font-weight: 700;
}
.check-grid input { width: 16px; min-height: 16px; }
.source-note {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--line);
	color: var(--muted);
	font-size: 0.82rem;
}

.map-column { min-width: 0; }
.map {
	min-height: 520px;
	border: 1px solid var(--line);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: var(--shadow);
	background: #d9e2dd;
}
.results-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 18px 0;
}
.results-toolbar strong { font-size: 1.6rem; }
.results-toolbar span { color: var(--muted); margin-left: 6px; }
.results-toolbar select { width: min(280px, 45%); }
.park-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}
.park-card, .feature-grid article, .chart-layout article, .indicator-grid article, .submission-box {
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 8px;
}
.park-card { padding: 16px; }
.card-top {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	color: var(--muted);
	font-size: 0.82rem;
	font-weight: 800;
}
.status {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	padding: 0 8px;
	border-radius: 999px;
	font-size: 0.76rem;
	font-weight: 900;
}
.status.ok { background: #dcf0e6; color: var(--green-dark); }
.status.pending { background: #f7e6bf; color: #704b07; }
.park-card h3 { margin: 12px 0 5px; font-size: 1.15rem; }
.park-card p { color: var(--muted); }
.tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
.tags span {
	padding: 5px 8px;
	border-radius: 6px;
	background: #edf3f0;
	color: var(--green-dark);
	font-size: 0.78rem;
	font-weight: 800;
}
.park-card ul { padding-left: 18px; margin: 10px 0; color: var(--muted); }
.park-card .notes { min-height: 3em; }
.text-link { color: var(--blue); font-weight: 900; text-decoration: none; }

.data-section, .subpage {
	padding: 48px clamp(18px, 4vw, 56px);
}
.section-intro, .page-heading { max-width: 820px; }
.section-intro h2, .page-heading h1 { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1; margin-bottom: 14px; }
.section-intro p, .page-heading p { color: var(--muted); font-size: 1.05rem; }
.feature-grid, .indicator-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-top: 24px;
}
.feature-grid article { padding: 20px; }
.feature-grid p { color: var(--muted); margin-bottom: 0; }

.catalog-tools {
	display: flex;
	gap: 12px;
	margin: 28px 0 16px;
}
.catalog-tools input { flex: 1; }
.catalog-tools select { width: 230px; }
.table-wrap {
	overflow-x: auto;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 8px;
}
table { width: 100%; border-collapse: collapse; min-width: 860px; }
th, td { padding: 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; }
td small { display: block; color: var(--muted); }

.indicator-grid article { padding: 22px; }
.indicator-grid strong { display: block; font-size: 2.2rem; }
.indicator-grid span { color: var(--muted); }
.chart-layout {
	display: grid;
	grid-template-columns: 1.25fr 0.75fr;
	gap: 16px;
	margin-top: 20px;
}
.chart-layout article { padding: 22px; }
.bar-row {
	display: grid;
	grid-template-columns: 150px 1fr 32px;
	align-items: center;
	gap: 12px;
	margin: 12px 0;
}
.bar-row div { height: 12px; background: #e3e9e6; border-radius: 999px; overflow: hidden; }
.bar-row i { display: block; height: 100%; background: var(--green); }
.priority-list { list-style: none; margin: 0; padding: 0; }
.priority-list li { padding: 12px 0; border-bottom: 1px solid var(--line); }
.priority-list span { display: block; color: var(--muted); }

.contribute-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
	gap: 18px;
	margin-top: 26px;
}
.contribute-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	padding: 18px;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 8px;
}
.contribute-form .full, .contribute-form button { grid-column: 1 / -1; }
.submission-box { padding: 20px; align-self: start; }
pre {
	white-space: pre-wrap;
	margin: 0;
	padding: 14px;
	background: #eef3f0;
	border-radius: 7px;
	color: var(--green-dark);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.88rem;
}

.site-footer {
	display: flex;
	justify-content: space-between;
	gap: 18px;
	padding: 28px clamp(18px, 4vw, 56px);
	background: var(--ink);
	color: var(--white);
}
.site-footer p { margin: 4px 0 0; color: rgba(255, 255, 255, 0.68); }
.site-footer a { color: #f0bf5b; font-weight: 900; text-decoration: none; }

@media (max-width: 980px) {
	.metrics-band, .feature-grid, .indicator-grid { grid-template-columns: repeat(2, 1fr); }
	.workspace, .chart-layout, .contribute-layout { grid-template-columns: 1fr; }
	.filters-panel { position: static; }
	.park-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
	.site-header { align-items: flex-start; }
	.menu-toggle { display: block; }
	.main-nav {
		display: none;
		position: absolute;
		left: 18px;
		right: 18px;
		top: 72px;
		flex-direction: column;
		align-items: stretch;
		padding: 10px;
		background: var(--white);
		border: 1px solid var(--line);
		border-radius: 8px;
		box-shadow: var(--shadow);
	}
	.main-nav.is-open { display: flex; }
	.hero { min-height: 78vh; }
	.hero h1 { max-width: 11ch; }
	.metrics-band, .feature-grid, .indicator-grid { grid-template-columns: 1fr; }
	.metric { border-right: 0; border-bottom: 1px solid var(--line); }
	.results-toolbar, .catalog-tools, .site-footer { flex-direction: column; align-items: stretch; }
	.results-toolbar select, .catalog-tools select { width: 100%; }
	.map { min-height: 420px; }
	.contribute-form { grid-template-columns: 1fr; }
	.bar-row { grid-template-columns: 105px 1fr 28px; font-size: 0.88rem; }
}
