/* Tree Awareness — Premium Editorial Tokens (derived from logo: dawn-over-forest) */

:root {
	--orange: #E8852B;
	--orange-deep: #C96E1F;
	--forest: #1F6B3A;
	--leaf: #2D8F4E;
	--pine: #0F3B20;
	--parchment: #F7F1E5;
	--parchment-deep: #EEE5D3;
	--white: #FFFFFF;
	--ink: #1A1A1A;
	--ink-muted: #5A5A54;
	--rule: #D7CEB8;

	--font-display: "Fraunces", "Fraunces Roman", Georgia, "Times New Roman", serif;
	--font-body: "Inter Tight", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

	--radius-sm: 2px;
	--radius-md: 6px;
	--radius-lg: 14px;

	--shadow-sm: 0 1px 2px rgba(15, 59, 32, 0.06);
	--shadow-md: 0 10px 28px rgba(15, 59, 32, 0.10);
	--shadow-lg: 0 28px 60px rgba(15, 59, 32, 0.14);

	--ease-editorial: cubic-bezier(.2, .7, .2, 1);
}

html { scroll-behavior: smooth; }

body {
	background: var(--parchment);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4 {
	font-family: var(--font-display);
	font-weight: 500;
	font-variation-settings: "SOFT" 100, "opsz" 72;
	letter-spacing: -0.015em;
	line-height: 1.05;
	color: var(--pine);
}

h3, h4 { line-height: 1.15; }

em, i { font-style: italic; }

.tac-mono,
.tac-eyebrow,
.tac-meta {
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink-muted);
	font-weight: 500;
}

.tac-eyebrow--orange { color: var(--orange-deep); }
.tac-eyebrow--parchment { color: var(--parchment); }

.tac-lede {
	font-family: var(--font-display);
	font-size: clamp(20px, 2.2vw, 26px);
	line-height: 1.4;
	color: var(--ink);
	font-weight: 400;
}

a { color: var(--forest); text-decoration: none; transition: color 160ms var(--ease-editorial); }
a:hover { color: var(--orange-deep); }

a:focus-visible,
button:focus-visible,
.elementor-button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 2px solid var(--orange);
	outline-offset: 3px;
	border-radius: var(--radius-sm);
}

.tac-sun-rule {
	display: block;
	width: 64px;
	height: 64px;
	margin: 0 auto;
	background: radial-gradient(circle at 50% 62%, var(--orange) 0 30%, transparent 31%);
	position: relative;
}

.tac-storm-bar {
	background: var(--pine);
	color: var(--parchment);
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-align: center;
	padding: 10px 20px;
}
.tac-storm-bar strong { color: var(--orange); }

/* Editorial image tone lift. */
.tac-editorial-img img,
.elementor-widget-image img {
	filter: saturate(0.95) contrast(1.02);
}

.tac-card {
	background: var(--white);
	border: 1px solid var(--rule);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	transition: box-shadow var(--transition-base), transform var(--transition-base);
}
.tac-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }

/* ==========================================================================
   MOBILE OPTIMIZATIONS
   ========================================================================== */

/* Stack header nav, tighten spacing. */
@media (max-width: 900px) {
	header nav,
	.elementor-location-header nav { display: none !important; }
	.elementor-location-header .elementor-widget-html > div {
		flex-wrap: wrap; justify-content: center; gap: 12px !important;
	}
	.elementor-location-header a[href^="tel:"] { font-size: 13px !important; }
}

/* Paul section — stack columns + shorter photo on mobile. */
@media (max-width: 767px) {
	.tac-paul-frame > div:first-child {
		padding: 0 !important;
	}
	.tac-paul-frame > div:first-child > div[style*="position:relative;z-index:1"] {
		min-height: 460px !important;
	}
	.tac-paul-frame > div:first-child > div[aria-hidden="true"]:first-child {
		left: 0 !important;
		right: 0 !important;
		top: auto !important;
		bottom: -14px !important;
		height: 14px !important;
	}
	.tac-paul-frame > div:first-child > div[aria-hidden="true"]:nth-child(2) {
		display: none !important;
	}
	.tac-paul-frame [style*="max-width:75%"] {
		max-width: 85% !important;
	}
}

/* Hero — tighter on mobile. */
@media (max-width: 767px) {
	.elementor-widget-heading h1 {
		font-size: 34px !important;
		line-height: 1.08 !important;
	}
	.elementor-widget-heading h2 {
		font-size: 28px !important;
		line-height: 1.1 !important;
	}
}

/* Hero + Paul CTAs: full-width stacked on mobile. */
@media (max-width: 767px) {
	.elementor-widget-html a[href^="tel:"],
	.elementor-widget-html a[href^="/contact"],
	.elementor-widget-html a[href^="/about"] {
		display: flex !important;
		width: 100% !important;
		justify-content: center !important;
		align-items: center !important;
		text-align: center !important;
		box-sizing: border-box;
	}
	.elementor-widget-html > div[style*="flex-wrap:wrap"] {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 10px !important;
	}
}

/* Trust strip — 2-col grid on mobile, tighter gap. */
@media (max-width: 767px) {
	[style*="gap:32px 48px"] {
		gap: 20px 16px !important;
		justify-content: flex-start !important;
	}
}

/* Service tile hover — editorial card lift. */
a.tac-svc-tile:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 40px rgba(15, 59, 32, 0.12);
	border-color: #E8852B !important;
}
a.tac-svc-tile:hover img { transform: scale(1.05); }

/* Field note video card hover — play button grows, image zooms. */
a.tac-field-card { transition: transform 300ms cubic-bezier(.2,.7,.2,1); }
a.tac-field-card:hover { transform: translateY(-3px); }
a.tac-field-card:hover img { transform: scale(1.06); }
a.tac-field-card img { transition: transform 800ms cubic-bezier(.2,.7,.2,1); }

/* Philosophy pillars — proper spacing when stacked. */
@media (max-width: 767px) {
	[style*="grid-template-columns:repeat(auto-fit,minmax(240px,1fr))"] {
		gap: 32px !important;
	}
}

/* Gallery — more sensible mobile grid. */
@media (max-width: 767px) {
	[style*="grid-auto-rows:180px"] {
		grid-template-columns: repeat(2, 1fr) !important;
		grid-auto-rows: 140px !important;
	}
	[style*="grid-auto-rows:180px"] > div {
		grid-column: span 1 !important;
		grid-row: span 1 !important;
	}
}

/* Podcast card — tighten on mobile. */
@media (max-width: 767px) {
	[style*="padding:48px 40px"][style*="background:#0F3B20"] {
		padding: 32px 24px !important;
	}
}

/* Testimonials grid — stack video + cards on mobile. */
@media (max-width: 900px) {
	[style*="grid-template-columns:repeat(6,1fr)"] {
		grid-template-columns: 1fr !important;
	}
	[style*="grid-column:span 3"],
	[style*="grid-column:span 2"] {
		grid-column: span 1 !important;
	}
}

/* Mobile sticky CTA. */
@media (max-width: 767px) {
	.tac-sticky-cta {
		position: fixed; inset: auto 0 0 0;
		display: grid; grid-template-columns: 1fr 1fr;
		z-index: 60; box-shadow: var(--shadow-lg);
	}
	.tac-sticky-cta a {
		padding: 14px; text-align: center; color: var(--parchment); font-weight: 600;
		font-family: var(--font-body); letter-spacing: 0.01em;
	}
	.tac-sticky-cta a:first-child { background: var(--pine); }
	.tac-sticky-cta a:last-child { background: var(--orange); color: var(--white); }
	body { padding-bottom: 56px; }
}
@media (min-width: 768px) { .tac-sticky-cta { display: none; } }

/* Reduced motion. */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Button polish across Elementor. */
.elementor-button {
	font-family: var(--font-body) !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em !important;
	border-radius: var(--radius-sm) !important;
	padding: 16px 28px !important;
	transition: transform 200ms var(--ease-editorial), background-color 200ms var(--ease-editorial) !important;
}
.elementor-button:hover { transform: translateY(-2px); }

.elementor-heading-title { font-family: var(--font-display); }
