:root {
	--itherm-green: #0a5d36;
	--itherm-dark-green: #063f27;
	--itherm-accent: #76b82a;
	--itherm-text: #13231a;
	--itherm-muted: #66756d;
	--itherm-soft: #f4f8f5;
	--itherm-border: #dce7e0;
	--itherm-white: #fff;
	--itherm-radius: 14px;
	--itherm-container: 1280px;
	--itherm-content: 760px;
}

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--itherm-white);
	color: var(--itherm-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--itherm-green);
	text-underline-offset: 0.16em;
}

:focus-visible {
	outline: 3px solid var(--itherm-accent);
	outline-offset: 3px;
}

.itherm-container {
	width: min(calc(100% - 40px), var(--itherm-container));
	margin-inline: auto;
}

.itherm-content-wrap {
	padding-block: clamp(48px, 7vw, 96px);
}

.itherm-content-wrap--narrow {
	max-width: var(--itherm-content);
}

.itherm-site-header {
	background: #fff;
	border-bottom: 1px solid var(--itherm-border);
}

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

.itherm-site-title {
	color: var(--itherm-dark-green);
	font-weight: 800;
	text-decoration: none;
}

.itherm-menu,
.itherm-footer-menu {
	display: flex;
	align-items: center;
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.itherm-site-footer {
	background: var(--itherm-dark-green);
	color: #fff;
}

.itherm-site-footer a {
	color: #fff;
}

.itherm-site-footer__inner {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 40px;
	padding-block: 48px 32px;
}

.itherm-site-footer__legal {
	padding-block: 18px;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	font-size: 0.875rem;
}

.itherm-entry__title {
	color: var(--itherm-dark-green);
	font-size: clamp(2rem, 5vw, 3.6rem);
	line-height: 1.1;
}

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

.itherm-card {
	border: 1px solid var(--itherm-border);
	border-radius: var(--itherm-radius);
}

.itherm-card__body {
	padding: 24px;
}

/* Elementor pages must be allowed to render full-width without theme wrappers. */
.elementor-page .itherm-page {
	margin: 0;
	padding: 0;
}

:where([id]) {
	scroll-margin-top: 100px;
}

@media (max-width: 1024px) {
	.itherm-post-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.itherm-container {
		width: min(calc(100% - 28px), var(--itherm-container));
	}

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

	.itherm-site-footer__inner {
		grid-template-columns: 1fr;
	}
}

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