/*
Theme Name: Somos Terra Verde
Theme URI: https://somosterraverde.com.br/
Author: Terra Verde
Description: Tema institucional em blocos da Terra Verde.
Requires at least: 6.5
Requires PHP: 8.2
Version: 1.0.5
Text Domain: terraverde
*/

:root {
	--surface-page: var(--wp--preset--color--off-white);
	--surface-hero-overlay: var(--wp--preset--color--verde-escuro);
	--surface-footer: var(--wp--preset--color--laranja);
	--surface-card-dark: var(--wp--preset--color--verde-medio);
	--surface-card-light: var(--wp--preset--color--creme);
	--text-on-dark: var(--wp--preset--color--creme);
	--text-on-light: var(--wp--preset--color--verde-escuro);
	--text-heading: var(--wp--preset--color--laranja);
	--text-heading-alt: var(--wp--preset--color--laranja-claro);
	--accent-cta: var(--wp--preset--color--laranja);
	--accent-cta-alt: var(--wp--preset--color--verde-oliva);
	--border-image-radius: var(--wp--custom--border--image-radius);
}

.wp-block-image img {
	border-radius: var(--border-image-radius);
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--terraverde-header-offset, var(--wp--preset--spacing--110));
}

.terraverde-section[id] {
	scroll-margin-top: var(--terraverde-header-offset, var(--wp--preset--spacing--110));
}

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

.terraverde-header-part {
	position: sticky;
	top: 0;
	z-index: 1000;
	margin: 0;
}

.terraverde-whatsapp-float {
	position: fixed;
	right: var(--wp--preset--spacing--20);
	bottom: var(--wp--preset--spacing--20);
	z-index: 1000;
	display: flex;
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
	width: var(--wp--preset--spacing--60);
	height: var(--wp--preset--spacing--60);
	border-radius: var(--wp--custom--border--radius--pill);
	box-shadow: var(--wp--custom--shadow--float-button);
}

.terraverde-whatsapp-float__icon {
	width: var(--wp--preset--spacing--30);
	height: var(--wp--preset--spacing--30);
}

.terraverde-site-header {
	box-sizing: border-box;
	width: 100%;
}

.admin-bar .terraverde-header-part {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.terraverde-site-header__inner {
	position: relative;
	min-height: var(--wp--preset--spacing--60);
}

.terraverde-site-header .terraverde-site-header__inner {
	max-width: 1440px;
	margin-left: auto;
	margin-right: auto;
}

.terraverde-site-logo {
	flex: 0 0 70px;
	margin: 0;
}

.terraverde-site-logo img {
	display: block;
	width: 70px;
	height: 70px;
	border-radius: 0;
}

.terraverde-site-header .wp-block-navigation {
	font-weight: var(--wp--custom--typography--font-weight--medium);
	letter-spacing: var(--wp--custom--typography--letter-spacing--normal);
	text-transform: uppercase;
}

.terraverde-site-header .wp-block-navigation__container {
	column-gap: var(--wp--preset--spacing--40);
	align-items: center;
}

@media (min-width: 600px) {
	.terraverde-site-header .wp-block-navigation {
		position: absolute;
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%);
		width: 100%;
		justify-content: center;
		pointer-events: none;
	}

	.terraverde-site-header .wp-block-navigation-item,
	.terraverde-site-header .wp-block-navigation__responsive-container-open,
	.terraverde-site-header .wp-block-navigation__responsive-container-close {
		pointer-events: auto;
	}
}

.terraverde-site-header .wp-block-navigation-item__content {
	text-decoration: none;
	text-underline-offset: 0.35em;
}

.terraverde-site-header .wp-block-navigation-item__content:hover,
.terraverde-site-header .wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--laranja-claro);
	text-decoration: underline;
}

.terraverde-site-header .wp-block-navigation__submenu-container {
	gap: var(--wp--preset--spacing--8);
	min-width: 14rem;
	padding: var(--wp--preset--spacing--20);
	border: 0;
	border-radius: var(--wp--custom--border--radius--sm);
	background: var(--wp--preset--color--verde-medio);
	color: var(--wp--preset--color--creme);
}

.terraverde-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: var(--wp--preset--spacing--8) 0;
	text-transform: none;
	white-space: nowrap;
}

.terraverde-site-header .wp-block-navigation__responsive-container-open,
.terraverde-site-header .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--creme);
}

/* The fullscreen overlay must stay fully opaque so the page never shows through. */
.terraverde-site-header .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--verde-escuro) !important;
	opacity: 1;
	backdrop-filter: none;
}

.terraverde-site-header__end {
	column-gap: var(--wp--preset--spacing--40);
}

.terraverde-site-header .wp-block-navigation__container > .wp-block-navigation-item:first-child {
	position: relative;
	padding-right: var(--wp--preset--spacing--40);
}

.terraverde-site-header .wp-block-navigation__container > .wp-block-navigation-item:first-child::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: 1px;
	height: 17px;
	transform: translateY(-50%);
	background: var(--wp--preset--color--laranja-claro);
}

.terraverde-site-header__social {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--10);
}

.terraverde-site-header__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.terraverde-site-header__social-icon {
	display: block;
	transition: filter 0.15s ease;
}

.terraverde-site-header__social-link:hover .terraverde-site-header__social-icon,
.terraverde-site-header__social-link:focus-visible .terraverde-site-header__social-icon {
	filter: brightness( 0 ) invert( 1 );
}

@media (max-width: 599px) {
	.terraverde-site-header {
		padding-right: var(--wp--preset--spacing--20) !important;
		padding-left: var(--wp--preset--spacing--20) !important;
	}

	.terraverde-site-header .wp-block-navigation__responsive-container.is-menu-open {
		padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20);
	}

	.terraverde-site-header .wp-block-navigation__responsive-container-content,
	.terraverde-site-header .wp-block-navigation__container {
		align-items: stretch;
		gap: var(--wp--preset--spacing--20);
		width: 100%;
	}

	.terraverde-site-header .wp-block-navigation__submenu-container {
		min-width: 0;
		padding: var(--wp--preset--spacing--14) 0 0 var(--wp--preset--spacing--16) !important;
		background: transparent;
	}
}

.terraverde-site-logo--footer {
	flex-basis: var(--wp--custom--footer--logo-size);
	justify-self: center;
}

.terraverde-site-logo--footer img {
	width: var(--wp--custom--footer--logo-size);
	height: var(--wp--custom--footer--logo-size);
}

.terraverde-site-footer {
	box-sizing: border-box;
	min-height: var(--wp--custom--footer--capture-height);
	padding-top: var(--wp--custom--footer--top-inset);
	background: var(--wp--preset--color--verde-escuro);
}

.terraverde-site-footer__card {
	box-sizing: border-box;
	width: auto;
	min-height: var(--wp--custom--footer--card-height);
	margin-right: var(--wp--preset--spacing--40) !important;
	margin-left: var(--wp--preset--spacing--40) !important;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	border-radius: var(--wp--custom--border--radius--lg);
}

.terraverde-site-footer__main {
	display: grid;
	grid-template-columns: minmax(0, 1.8fr) minmax(0, 0.6fr) minmax(0, 1fr);
	gap: var(--wp--preset--spacing--60);
	align-items: flex-start;
	width: 100%;
	max-width: var(--wp--custom--footer--content-width) !important;
	margin-right: auto;
	margin-left: auto;
}

.terraverde-site-footer__policies-column {
	gap: var(--wp--preset--spacing--60);
}

.terraverde-site-footer__navigation,
.terraverde-site-footer__policies {
	gap: var(--wp--preset--spacing--10);
	font-weight: var(--wp--custom--typography--font-weight--medium);
	line-height: var(--wp--custom--typography--line-height--body);
}

.terraverde-site-footer__navigation p,
.terraverde-site-footer__policies p {
	margin: 0;
}

.terraverde-site-footer__navigation a,
.terraverde-site-footer__policies a,
.terraverde-site-footer__policies span {
	color: var(--wp--preset--color--branco);
	line-height: inherit;
}

.terraverde-site-footer__navigation a {
	text-decoration: none;
}

.terraverde-site-footer__policies a,
.terraverde-site-footer__policies span {
	text-decoration: underline;
	text-decoration-thickness: 0.05em;
	text-underline-offset: 0.2em;
}

.terraverde-site-footer__navigation a:hover,
.terraverde-site-footer__navigation a:focus-visible,
.terraverde-site-footer__policies a:hover,
.terraverde-site-footer__policies a:focus-visible {
	color: var(--wp--preset--color--verde-escuro);
}

.terraverde-products__grid {
	gap: var(--wp--preset--spacing--26);
	align-items: stretch;
}

.terraverde-products__cta {
	box-sizing: border-box;
	max-width: 1414px !important;
	min-height: 126px;
	margin-right: auto !important;
	margin-left: auto !important;
	border-radius: var(--wp--custom--border--radius--md);
	align-items: center;
	gap: var(--wp--preset--spacing--60);
}

.terraverde-products__cta-text {
	max-width: 349px;
}

.terraverde-products__cta .wp-block-button__link {
	padding: var(--wp--preset--spacing--16) var(--wp--preset--spacing--30);
}

.terraverde-site-footer__separator {
	width: 100%;
	max-width: var(--wp--custom--footer--content-width) !important;
	margin-top: 40px;
	margin-bottom: var(--wp--custom--footer--separator-bottom);
	border-color: var(--wp--preset--color--verde-escuro);
	opacity: 1;
}

.terraverde-site-footer__meta {
	gap: var(--wp--preset--spacing--60);
	width: 100%;
	max-width: var(--wp--custom--footer--content-width) !important;
	margin-right: auto;
	margin-left: auto;
	font-weight: var(--wp--custom--typography--font-weight--medium);
}

.terraverde-site-footer__meta p {
	margin: 0;
	color: var(--wp--preset--color--branco);
	line-height: var(--wp--custom--typography--line-height--body);
	width: 50%;
}

.terraverde-site-footer__copyright {
	max-width: var(--wp--custom--footer--copyright-width);
	font-weight: var(--wp--custom--typography--font-weight--regular);
}

@media (max-width: 960px) {
	.terraverde-site-footer__card {
		min-height: 0;
	}

	.terraverde-site-footer__main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--wp--preset--spacing--40);
	}

	.terraverde-site-logo--footer {
		grid-row: span 2;
	}
}

.terraverde-site-footer__credit {
	margin-top: var(--wp--preset--spacing--26);
	margin-bottom: var(--wp--preset--spacing--26);
	color: var(--wp--preset--color--branco);
	letter-spacing: 0;
	text-transform: uppercase;
}

.terraverde-legal-page {
	min-height: calc(100vh - var(--terraverde-header-offset, var(--wp--preset--spacing--110)));
}

.terraverde-legal-page__content {
	width: 100%;
}

.terraverde-legal-page .wp-block-post-title {
	margin-top: 0;
	margin-bottom: 0;
}

.terraverde-legal-page .wp-block-post-content {
	line-height: var(--wp--custom--typography--line-height--body-loose);
}

.terraverde-legal-page .wp-block-post-content > :first-child {
	margin-top: 0;
}

.terraverde-legal-page .wp-block-post-content a {
	font-weight: var(--wp--custom--typography--font-weight--bold);
	text-underline-offset: 0.2em;
}

@media (max-width: 599px) {
	.terraverde-site-footer {
		min-height: 0;
		padding-top: var(--wp--preset--spacing--20);
	}

	.terraverde-site-footer__card {
		margin-right: var(--wp--preset--spacing--20) !important;
		margin-left: var(--wp--preset--spacing--20) !important;
		padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20);
	}

	.terraverde-site-footer__main {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--30);
	}

	.terraverde-site-logo--footer {
		grid-row: auto;
	}

	.terraverde-site-footer__meta {
		align-items: flex-start;
		flex-direction: column;
		gap: var(--wp--preset--spacing--20);
	}

	.terraverde-legal-page {
		padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--20) var(--wp--preset--spacing--81) !important;
	}
}

/* Institutional patterns. Layout lives here so pattern content only uses presets. */
.terraverde-section {
	box-sizing: border-box;
}

.terraverde-section .wp-block-heading,
.terraverde-section p,
.terraverde-section figure {
	margin-top: 0;
	margin-bottom: 0;
}

/* Long Portuguese words must wrap instead of overflowing narrow mobile columns. */

.terraverde-hero__card {
	isolation: isolate;
	box-sizing: border-box;
	width: auto;
	min-height: 40.4vw;
	margin-right: var(--wp--preset--spacing--40) !important;
	margin-left: var(--wp--preset--spacing--40) !important;
	padding-top: 0;
	padding-bottom: 0;
	overflow: hidden;
	border-radius: var(--wp--custom--border--radius--lg);
	margin-top: -20px !important;
}

@media (min-width: 961px) {
	.terraverde-hero__card > .wp-block-cover__image-background {
		/* The reference frames the full viewport-wide photo inside the inset card. */
		transform: translateY(-1%) scale(1.0435);
		transform-origin: center;
	}

	.terraverde-hero__content {
		transform: translateY(-1%);
	}

	.terraverde-hero__content .wp-block-buttons {
		position: relative;
		top: var(--wp--preset--spacing--20);
	}
}

.terraverde-hero__card::after {
	position: absolute;
	z-index: 1;
	top: 0;
	bottom: 0;
	left: calc(32.3vw - var(--wp--preset--spacing--40));
	width: 35.4vw;
	background: var(--wp--preset--color--verde-medio);
	opacity: 0.95;
	content: "";
	pointer-events: none;
}

body .terraverde-hero__card > .wp-block-cover__inner-container {
	z-index: 2 !important;
	display: flex;
	align-items: center;
	min-height: inherit;
}

.terraverde-hero__content {
	position: relative;
	z-index: 2;
	box-sizing: border-box;
	width: 365px;
	max-width: 100%;
	margin-left: calc(32.3% + (35.4% - 365px) / 2);
}

.terraverde-hero__content .wp-block-buttons {
	margin-top: var(--wp--preset--spacing--30);
}

.terraverde-hero__content .wp-block-button__link {
	padding: var(--wp--preset--spacing--16) var(--wp--preset--spacing--30);
	border-radius: var(--wp--custom--border--radius--pill);
	text-transform: uppercase;
	letter-spacing: var(--wp--custom--typography--letter-spacing--normal);
}

.terraverde-hero__content h1 + p {
	width: calc(100% + var(--wp--preset--spacing--20));
	margin-top: var(--wp--preset--spacing--30);
}

.terraverde-hero__content p + p {
	margin-top: var(--wp--preset--spacing--30);
}

.terraverde-hero__marquee {
	width: 100%;
	max-width: none !important;
	margin-top: calc(var(--wp--preset--spacing--60) + var(--wp--preset--spacing--8)) !important;
	overflow: hidden;
	font-size: var(--wp--preset--font-size--body-lg) !important;
	letter-spacing: var(--wp--custom--typography--letter-spacing--wider);
	text-transform: uppercase;
	white-space: nowrap;
}

.terraverde-hero {
	padding-bottom: var(--wp--preset--spacing--20);
}

.terraverde-hero__marquee-track {
	display: flex;
	width: max-content;
	animation: terraverde-hero-marquee 30s linear infinite;
	will-change: transform;
}

.terraverde-hero__marquee-group {
	display: flex;
	flex-shrink: 0;
	align-items: center;
}

.terraverde-hero__marquee-item {
	display: inline-block;
	padding-right: calc(var(--wp--preset--spacing--40) + var(--wp--preset--spacing--10));
	padding-left: calc(var(--wp--preset--spacing--40) + var(--wp--preset--spacing--10));
}

.terraverde-hero__marquee-separator {
	flex-shrink: 0;
}

@keyframes terraverde-hero-marquee {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

.terraverde-about {
	margin-top: var(--wp--preset--spacing--60);
}

.terraverde-about__block {
	width: auto;
	margin-right: var(--wp--preset--spacing--40) !important;
	margin-left: var(--wp--preset--spacing--40) !important;
	border-radius: var(--wp--custom--border--radius--lg);
}

.terraverde-about__pillars {
	display: grid;
	grid-template-columns: 646fr 634fr;
	grid-template-areas:
		"intro photo"
		"card-ceasa photo"
		"photo-veggies card-hortifruti";
	gap: var(--wp--preset--spacing--30);
	max-width: 1300px !important;
	margin-inline: auto;
}

/*
 * Without this the grid tracks grow to the items' min-content width — the wide
 * inner padding of the CEASA/hortifruti cards then pushes every column past the
 * cream block and the copy gets clipped at the viewport edge on phones.
 */
.terraverde-about__pillars > * {
	min-width: 0;
}

.terraverde-about__intro-copy {
	grid-area: intro;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	max-width: 446px;
	margin-inline: auto;
	text-align: left;
}

.terraverde-about__title {
	margin-inline: 0 !important;
	line-height: var(--wp--custom--typography--line-height--display-tight);
}

.terraverde-about__card {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	padding: var(--wp--preset--spacing--30);
	border-radius: var(--wp--custom--border--radius--lg);
}

.terraverde-about__card--ceasa {
	grid-area: card-ceasa;
	padding-right: 100px;
	padding-left: 100px;
	border-bottom-right-radius: 0;
}

.terraverde-about__card--hortifruti {
	grid-area: card-hortifruti;
	padding-right: 86px;
	padding-left: 86px;
	margin-top: 0;
	border-top-left-radius: 0;
}

.terraverde-about__photo-frame {
	grid-area: photo;
	overflow: hidden;
	border-radius: var(--wp--custom--border--radius--lg);
}

.terraverde-about__photo-secondary {
	grid-area: photo-veggies;
	overflow: hidden;
	margin-top: 0;
	border-radius: var(--wp--custom--border--radius--lg);
}

.terraverde-about__photo-frame-image,
.terraverde-about__photo-secondary-image,
.terraverde-about__photo-frame-image img,
.terraverde-about__photo-secondary-image img {
	width: 100%;
	height: 100%;
}

.terraverde-about__photo-frame-image img,
.terraverde-about__photo-secondary-image img {
	object-fit: cover;
}

.terraverde-about__copy--medium {
	font-weight: var(--wp--custom--typography--font-weight--medium);
}

.terraverde-about__mvv {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	flex-wrap: nowrap !important;
	align-items: start !important;
	max-width: 1300px !important;
	margin-top: var(--wp--preset--spacing--81);
	margin-bottom: 100px;
	margin-inline: auto;
	gap: var(--wp--preset--spacing--166);
}

.terraverde-about__mvv-item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--20);
}

.terraverde-about__mvv-item .wp-block-heading {
	margin-inline: 0 !important;
	transition: color 0.2s ease;
}

.terraverde-about__mvv-item p, .terraverde-about__mvv-item ul {
	margin-inline: 0 !important;
	transition: color 0.2s ease;
}

.terraverde-about__mvv-item ul {
	margin-top: 0;
}

.terraverde-about__mvv-item:hover .wp-block-heading {
	color: var(--wp--preset--color--laranja) !important;
}

.terraverde-about__mvv-item:hover p, .terraverde-about__mvv-item:hover ul li {
	color: var(--wp--preset--color--branco) !important;
}

.terraverde-about__cta {
	box-sizing: border-box;
	max-width: 1600px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--60);
	border-radius: var(--wp--custom--border--radius--md);
}

.terraverde-about__cta-inner {
	box-sizing: border-box;
	width: 100%;
	max-width: 1063px;
	margin-inline: auto;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
}

.terraverde-about__cta-copy {
	max-width: 602px;
	gap: var(--wp--preset--spacing--8);
}

.terraverde-about__cta .wp-block-button__link {
	padding: var(--wp--preset--spacing--16) var(--wp--preset--spacing--30);
	text-transform: uppercase;
	letter-spacing: var(--wp--custom--typography--letter-spacing--normal);
}

.terraverde-products {
	padding-bottom: 0 !important;
}

.terraverde-differential {
	width: auto;
	margin-top: 100px !important;
	margin-right: var(--wp--preset--spacing--40) !important;
	margin-left: var(--wp--preset--spacing--40) !important;
	border-radius: var(--wp--custom--border--radius--lg);
}

.terraverde-differential__layout {
	max-width: 1080px !important;
	margin-inline: auto !important;
	gap: var(--wp--preset--spacing--60);
}

.terraverde-differential__intro {
	position: sticky;
	top: var(--terraverde-header-offset, var(--wp--preset--spacing--110));
	align-self: flex-start;
}

.terraverde-differential__intro .wp-block-heading {
	max-width: 306px;
}

.terraverde-differential__intro .wp-block-buttons {
	margin-top: var(--wp--preset--spacing--30);
}

.terraverde-differential__intro .wp-block-button__link {
	padding: var(--wp--preset--spacing--16) var(--wp--preset--spacing--30);
	text-transform: uppercase;
	letter-spacing: var(--wp--custom--typography--letter-spacing--normal);
}

.terraverde-differential__features {
	display: flex;
	flex: 1.6;
	flex-direction: column;
	gap: var(--wp--preset--spacing--54);
}

.terraverde-feature {
	align-items: center;
	gap: var(--wp--preset--spacing--40);
}

.terraverde-feature__icon {
	flex: 0 0 var(--wp--preset--spacing--54);
	width: var(--wp--preset--spacing--54);
}

.terraverde-feature__icon img {
	display: block;
	width: 100%;
	border-radius: 0;
}

.terraverde-feature .wp-block-heading,
.terraverde-essence-card p {
	font-weight: var(--wp--custom--typography--font-weight--bold);
	letter-spacing: var(--wp--custom--typography--letter-spacing--wider);
	line-height: var(--wp--custom--typography--line-height--body);
	text-transform: uppercase;
}

.terraverde-essence {
	box-sizing: border-box;
	padding-top: calc(var(--wp--preset--spacing--40) + (var(--wp--preset--spacing--8) / 2));
	padding-bottom: calc(var(--wp--preset--spacing--40) + (var(--wp--preset--spacing--8) / 4));
}

.terraverde-essence__block {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	width: auto;
	min-height: calc((var(--wp--preset--spacing--110) * 6) + var(--wp--preset--spacing--16));
	margin-inline: var(--wp--preset--spacing--40) !important;
	overflow: hidden;
	border-radius: var(--wp--custom--border--radius--lg);
}

body .terraverde-essence__layout {
	display: grid;
	grid-template-columns:
		calc((var(--wp--preset--spacing--120) * 2) + var(--wp--preset--spacing--41) + var(--wp--preset--spacing--16))
		calc((var(--wp--preset--spacing--110) * 5) + (var(--wp--preset--spacing--8) * 2));
	align-items: stretch;
	gap: calc(var(--wp--preset--spacing--81) + var(--wp--preset--spacing--26));
	width: 100%;
	max-width: calc((var(--wp--preset--spacing--110) * 8) + var(--wp--preset--spacing--54) + var(--wp--preset--spacing--20) + var(--wp--preset--spacing--16)) !important;
	height: calc((var(--wp--preset--spacing--110) * 4) + var(--wp--preset--spacing--20) + var(--wp--preset--spacing--16));
	margin-inline: auto !important;
}

.terraverde-essence__layout > * {
	margin-block: 0 !important;
}

.terraverde-essence__intro {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.terraverde-essence__title {
	position: relative;
	top: calc(var(--wp--preset--spacing--8) - var(--wp--preset--spacing--14));
	margin: 0;
	line-height: var(--wp--custom--typography--line-height--display-tight);
}

.terraverde-essence__conversion {
	width: 100%;
	margin-top: auto !important;
}

.terraverde-essence__copy {
	position: relative;
	top: var(--wp--preset--spacing--8);
	width: calc((var(--wp--preset--spacing--120) * 2) + var(--wp--preset--spacing--60));
	margin: 0;
	line-height: var(--wp--custom--typography--line-height--body);
}

.terraverde-essence__copy strong {
	font-weight: var(--wp--custom--typography--font-weight--bold);
}

.terraverde-essence__intro .wp-block-buttons {
	margin-top: calc(var(--wp--preset--spacing--40) - (var(--wp--preset--spacing--8) / 4));
}

.terraverde-essence__intro .wp-block-button,
.terraverde-essence__intro .wp-block-button__link {
	width: 100%;
}

.terraverde-essence__intro .wp-block-button__link {
	box-sizing: border-box;
	padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30);
	font-weight: var(--wp--custom--typography--font-weight--bold);
	letter-spacing: var(--wp--custom--typography--letter-spacing--normal);
	text-transform: uppercase;
}

.terraverde-essence__cards {
	position: relative;
	left: calc(var(--wp--preset--spacing--8) / 4);
	display: grid;
	grid-template-columns: repeat(2, calc((var(--wp--preset--spacing--110) * 2) + (var(--wp--preset--spacing--26) * 2)));
	grid-template-rows: repeat(2, calc((var(--wp--preset--spacing--110) * 2) + var(--wp--preset--spacing--8)));
	gap: var(--wp--preset--spacing--20);
}

.terraverde-essence__cards > * {
	margin: 0 !important;
}

.terraverde-partners__title {
	max-width: 908px;
	margin-inline: auto;
	line-height: var(--wp--custom--typography--line-height--display);
}

.terraverde-partners__carousel {
	max-width: 1301px !important;
	margin-top: var(--wp--preset--spacing--81) !important;
	margin-inline: auto !important;
}

.terraverde-partners__media {
	width: 100%;
	max-width: 1357px !important;
	min-height: 0;
	margin-top: var(--wp--preset--spacing--110) !important;
	margin-inline: auto !important;
	aspect-ratio: 1357 / 455;
	overflow: hidden;
	border-radius: var(--wp--custom--border--radius--md);
}

/*
 * Legibility scrim. The reference keeps the copy in verde-escuro over the light
 * side of the photo, so the overlay is cream — a dark overlay would kill the
 * contrast of the dark green text instead of improving it.
 */
.terraverde-partners__media > .wp-block-cover__background {
	background: linear-gradient(
		90deg,
		var(--wp--preset--color--creme) 0%,
		var(--wp--preset--color--creme) 28%,
		color-mix(in srgb, var(--wp--preset--color--creme) 82%, transparent) 46%,
		transparent 68%
	);
	opacity: 1;
}

body .terraverde-partners__media > .wp-block-cover__inner-container {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	min-height: inherit;
	padding-left: var(--wp--preset--spacing--120);
}

.terraverde-partners__intro {
	box-sizing: border-box;
	width: 100%;
	max-width: 461px;
	line-height: var(--wp--custom--typography--line-height--body);
}

body .terraverde-partners__media > .wp-block-cover__inner-container > .terraverde-partners__intro {
	margin-inline: 0 !important;
}

.terraverde-partners__intro > p {
	margin-block: 0;
}

.terraverde-partners__intro > p + p {
	margin-top: var(--wp--preset--spacing--30);
}

.terraverde-partners__intro .wp-block-buttons {
	margin-top: var(--wp--preset--spacing--40);
}

.terraverde-partners__intro .wp-block-button__link {
	padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30);
	text-transform: uppercase;
	letter-spacing: var(--wp--custom--typography--letter-spacing--normal);
}

.terraverde-partners__stats {
	width: calc((var(--wp--preset--spacing--120) * 10) + var(--wp--preset--spacing--30));
	max-width: none !important;
	gap: var(--wp--preset--spacing--30);
	margin-top: var(--wp--preset--spacing--81) !important;
	justify-content: space-between;
}

/*
 * Each stat sizes to its own content. A fixed flex-basis used to be narrower
 * than the wider labels, which have a fixed width and do not shrink, so their
 * text escaped the box and pushed the page past the viewport.
 */
.terraverde-partners__stat {
	flex: 0 0 auto;
	min-width: 0;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
}

.terraverde-partners__stat-value,
.terraverde-partners__stat-label {
	margin: 0;
}

.terraverde-partners__stat-value {
	font-weight: var(--wp--custom--typography--font-weight--bold);
	line-height: var(--wp--custom--typography--line-height--display);
	white-space: nowrap;
}

.terraverde-partners__stat-value.is-fade-ready {
	opacity: 0;
	transition: opacity 600ms ease-out;
}

.terraverde-partners__stat-value.is-fade-ready.is-fade-visible {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.terraverde-partners__stat-value.is-fade-ready {
		opacity: 1;
		transition: none;
	}
}

.terraverde-partners__stat-label {
	flex-shrink: 0;
	width: var(--wp--preset--spacing--110);
	font-weight: var(--wp--custom--typography--font-weight--medium);
	letter-spacing: var(--wp--custom--typography--letter-spacing--wider);
	line-height: var(--wp--custom--typography--line-height--body);
	text-transform: uppercase;
}

/*
 * Safari measures letter-spaced uppercase text slightly wider than Chrome,
 * tripping the global ".terraverde-section p { overflow-wrap: break-word }"
 * rule and splitting single words like "CLIENTES" mid-word. The selector
 * below must match that rule's specificity (class + element) to win, since
 * source order alone isn't enough.
 */
.terraverde-section p.terraverde-partners__stat-label {
	overflow-wrap: normal;
	word-break: keep-all;
}

.terraverde-partners__stat:nth-child(2) .terraverde-partners__stat-label {
	width: calc(var(--wp--preset--spacing--110) + var(--wp--preset--spacing--40));
}

.terraverde-partners__stat:nth-child(3) .terraverde-partners__stat-label {
	width: calc(var(--wp--preset--spacing--110) * 2);
}

@media (max-width: 1399px) {
	.terraverde-partners__stats {
		width: 100%;
		max-width: 100% !important;
		justify-content: space-between;
	}
}

.terraverde-essence-card {
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
	height: calc((var(--wp--preset--spacing--110) * 2) + var(--wp--preset--spacing--8));
	padding: var(--wp--preset--spacing--54) calc(var(--wp--preset--spacing--40) + (var(--wp--preset--spacing--8) / 2));
	border-radius: var(--wp--custom--border--radius--md);
}

.terraverde-essence-card--respect {
	border-bottom-right-radius: 0;
}

.terraverde-essence-card--commitment {
	border-bottom-left-radius: 0;
}

.terraverde-essence-card--knowledge {
	border-top-right-radius: 0;
}

.terraverde-essence-card--work {
	border-top-left-radius: 0;
}

.terraverde-essence-card__icon {
	position: relative;
	top: calc(var(--wp--preset--spacing--8) - (var(--wp--preset--spacing--8) / 4));
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	width: calc(var(--wp--preset--spacing--41) + (var(--wp--preset--spacing--8) / 2));
	height: calc(var(--wp--preset--spacing--40) + var(--wp--preset--spacing--8));
	margin: 0 0 var(--wp--preset--spacing--30) !important;
}

.terraverde-essence-card__icon img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	border-radius: 0;
}

.terraverde-essence-card p {
	max-width: calc(var(--wp--preset--spacing--110) * 2);
	margin: 0;
}

.terraverde-manifesto {
	box-sizing: border-box;
	min-height: calc((var(--wp--preset--spacing--110) * 6) + var(--wp--preset--spacing--10) - (var(--wp--preset--spacing--8) / 8));
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--60);
}

body .terraverde-manifesto__inner {
	display: grid;
	grid-template-columns:
		calc((var(--wp--preset--spacing--110) * 4) + var(--wp--preset--spacing--30) + (var(--wp--preset--spacing--10) / 2))
		calc((var(--wp--preset--spacing--110) * 5) + var(--wp--preset--spacing--30) + (var(--wp--preset--spacing--8) / 2));
	column-gap: calc(var(--wp--preset--spacing--81) + var(--wp--preset--spacing--16) - (var(--wp--preset--spacing--8) / 8));
	width: 100%;
	max-width: calc((var(--wp--preset--spacing--110) * 11) + var(--wp--preset--spacing--60) + var(--wp--preset--spacing--30)) !important;
	margin: 0 auto;
}

.terraverde-manifesto__media {
	display: flex;
	flex-direction: column;
	gap: calc(var(--wp--preset--spacing--60) + (var(--wp--preset--spacing--8) / 4));
}

.terraverde-manifesto__title {
	margin: 0 0 0 var(--wp--preset--spacing--166);
	letter-spacing: normal;
	line-height: var(--wp--custom--typography--line-height--display-tight);
}

.terraverde-manifesto__image {
	width: calc((var(--wp--preset--spacing--110) * 4) + var(--wp--preset--spacing--30) + (var(--wp--preset--spacing--10) / 2));
	height: calc((var(--wp--preset--spacing--110) * 4) - (var(--wp--preset--spacing--8) / 2));
	margin: 0;
}

.terraverde-manifesto__image img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	border-radius: var(--wp--custom--border--radius--lg);
}

.terraverde-manifesto__copy {
	display: flex;
	flex-direction: column;
	gap: calc(var(--wp--preset--spacing--30) + (var(--wp--preset--spacing--8) / 4));
	margin: var(--wp--preset--spacing--10) 0 0 !important;
	font-weight: var(--wp--custom--typography--font-weight--medium);
}

.terraverde-manifesto__copy p {
	margin: 0;
}

.terraverde-manifesto__copy strong {
	font-weight: var(--wp--custom--typography--font-weight--bold);
}

.terraverde-essence__banner {
	max-width: 1600px!important;
}

/*
 * The two fixed grid tracks need roughly 1155px side by side. Below that the
 * manifesto stacks, so the section never forces the page wider than the
 * viewport on tablets and small laptops.
 */
@media (max-width: 1199px) {
	body .terraverde-manifesto__inner {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--60);
		width: calc(100% - (var(--wp--preset--spacing--40) * 2));
		max-width: calc(100% - (var(--wp--preset--spacing--40) * 2)) !important;
	}

	.terraverde-manifesto__media {
		align-items: center;
	}

	.terraverde-manifesto__title {
		margin-left: 0;
	}
}

@media (max-width: 960px) {
	.terraverde-hero__card::after {
		left: 25%;
		width: 65%;
	}

	.terraverde-hero__content {
		width: 60%;
		margin-left: 28% !important;
	}

	.terraverde-differential__layout,
	.terraverde-essence__layout {
		flex-wrap: wrap !important;
	}

	.terraverde-differential__layout > .wp-block-column,
	.terraverde-essence__layout > .wp-block-column {
		flex-basis: 100% !important;
	}

	.terraverde-differential__intro {
		position: static;
	}

	.terraverde-essence__block {
		min-height: 0;
		padding-block: var(--wp--preset--spacing--60);
	}

	body .terraverde-essence__layout {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--60);
		width: calc((var(--wp--preset--spacing--110) * 5) + (var(--wp--preset--spacing--8) * 2));
		max-width: calc((var(--wp--preset--spacing--110) * 5) + (var(--wp--preset--spacing--8) * 2)) !important;
		height: auto;
	}

	.terraverde-essence__intro {
		min-height: calc(var(--wp--preset--spacing--110) * 3);
	}

	.terraverde-about__pillars {
		grid-template-columns: 1fr;
		grid-template-areas:
			"intro"
			"photo"
			"card-ceasa"
			"photo-veggies"
			"card-hortifruti";
	}

	/* The desktop side padding leaves ~130px of copy width once stacked. */
	.terraverde-about__card--ceasa,
	.terraverde-about__card--hortifruti {
		padding-right: var(--wp--preset--spacing--40);
		padding-left: var(--wp--preset--spacing--40);
	}

	.terraverde-about__intro-copy {
		max-width: 100%;
	}

	/*
	 * Stacked, the cream block's inner edge is the alignment reference: the MVV
	 * items and the closing CTA share it so the column reads as one gutter.
	 * Block margin (40) + block padding (40) = 80 of inset to match.
	 */
	.terraverde-about__block {
		padding-right: var(--wp--preset--spacing--40) !important;
		padding-left: var(--wp--preset--spacing--40) !important;
	}

	.terraverde-about__mvv {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--54);
		margin-top: var(--wp--preset--spacing--60);
		margin-bottom: var(--wp--preset--spacing--60);
		padding-inline: calc(var(--wp--preset--spacing--40) * 2);
	}

	.terraverde-about__cta {
		box-sizing: border-box;
		margin-inline: calc(var(--wp--preset--spacing--40) * 2) !important;
	}

	/* The 1357/455 ratio clips the stacked copy once the card is phone-wide. */
	.terraverde-partners__media {
		aspect-ratio: auto;
		margin-top: var(--wp--preset--spacing--60) !important;
	}

	.terraverde-partners__media > .wp-block-cover__background {
		background: color-mix(in srgb, var(--wp--preset--color--creme) 88%, transparent);
	}

	body .terraverde-partners__media > .wp-block-cover__inner-container {
		padding: var(--wp--preset--spacing--40);
	}

	.terraverde-partners__carousel,
	.terraverde-partners__stats {
		margin-top: var(--wp--preset--spacing--60) !important;
	}

	.terraverde-partners__stats {
		gap: var(--wp--preset--spacing--40);
	}
}

@media (max-width: 599px) {
	.terraverde-hero__card,
	.terraverde-differential {
		margin-right: var(--wp--preset--spacing--20) !important;
		margin-left: var(--wp--preset--spacing--20) !important;
	}

	.terraverde-hero__card {
		min-height: calc(var(--wp--preset--spacing--166) * 3);
	}

	.terraverde-hero__card::after {
		inset: 0;
		width: auto;
		opacity: 0.86;
	}

	.terraverde-hero__content {
		width: auto;
		max-width: none;
		margin-right: var(--wp--preset--spacing--20) !important;
		margin-left: var(--wp--preset--spacing--20) !important;
		padding-block: var(--wp--preset--spacing--54);
	}

	/* Desktop bleeds the lead paragraph 20px past the column; not on phones. */
	.terraverde-hero__content h1 + p {
		width: 100%;
	}

	.terraverde-hero__marquee {
		display: none;
	}

	/*
	 * Shared phone gutter: block margin (20) + block padding (20) puts the
	 * pillar cards at 40, which the MVV items and the closing CTA also use.
	 */
	.terraverde-about__block {
		margin-right: var(--wp--preset--spacing--20) !important;
		margin-left: var(--wp--preset--spacing--20) !important;
	}

	.terraverde-about__block,
	.terraverde-differential {
		padding-right: var(--wp--preset--spacing--20) !important;
		padding-left: var(--wp--preset--spacing--20) !important;
	}

	body .terraverde-manifesto__inner {
		width: calc(100% - (var(--wp--preset--spacing--20) * 2));
		max-width: calc(100% - (var(--wp--preset--spacing--20) * 2)) !important;
	}

	.terraverde-manifesto__image {
		width: 100%;
		height: auto;
		aspect-ratio: 475 / 436;
	}

	.terraverde-essence {
		padding: var(--wp--preset--spacing--20) !important;
	}

	.terraverde-essence__block {
		margin-inline: 0 !important;
		padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20);
	}

	body .terraverde-essence__layout {
		width: 100%;
		max-width: 100% !important;
	}

	.terraverde-essence__intro {
		min-height: 0;
	}

	.terraverde-essence__copy {
		width: 100%;
	}

	/* The desktop card box leaves ~160px of dead space under the stacked labels. */
	.terraverde-essence-card {
		height: auto;
		padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20);
	}

	.terraverde-essence-card p {
		max-width: none;
	}

	.terraverde-about__block {
		padding-top: var(--wp--preset--spacing--40) !important;
		padding-bottom: var(--wp--preset--spacing--40) !important;
	}

	.terraverde-about__card--ceasa,
	.terraverde-about__card--hortifruti {
		padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20);
	}

	.terraverde-about__mvv {
		gap: var(--wp--preset--spacing--40);
		margin-top: var(--wp--preset--spacing--40);
		margin-bottom: var(--wp--preset--spacing--40);
		padding-inline: var(--wp--preset--spacing--40);
	}

	.terraverde-about__cta {
		margin-inline: var(--wp--preset--spacing--40) !important;
		padding: var(--wp--preset--spacing--20);
	}

	.terraverde-products__cta {
		min-height: 0;
		gap: var(--wp--preset--spacing--20);
		padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20) !important;
	}

	.terraverde-products__cta-text {
		max-width: none;
	}

	.terraverde-differential {
		margin-top: var(--wp--preset--spacing--40) !important;
		padding-top: var(--wp--preset--spacing--40) !important;
		padding-bottom: var(--wp--preset--spacing--40) !important;
	}

	.terraverde-differential__layout {
		gap: var(--wp--preset--spacing--40);
	}

	.terraverde-feature {
		align-items: flex-start;
		gap: var(--wp--preset--spacing--20);
	}

	.terraverde-essence__cards {
		grid-template-columns: 1fr;
		grid-template-rows: repeat(4, auto);
	}

	.terraverde-essence-card {
		width: 100%;
	}

	.terraverde-partners {
		padding-top: var(--wp--preset--spacing--40) !important;
		padding-right: var(--wp--preset--spacing--20) !important;
		padding-left: var(--wp--preset--spacing--20) !important;
	}

	.terraverde-partners__carousel,
	.terraverde-partners__media,
	.terraverde-partners__stats {
		margin-top: var(--wp--preset--spacing--40) !important;
	}

	.terraverde-partners__stats {
		align-items: flex-start;
		flex-direction: column;
		gap: var(--wp--preset--spacing--30);
	}

	/* Stacked stats: the fixed desktop widths force one word per line. */
	.terraverde-partners__stat {
		flex: 0 0 auto;
		width: 100%;
		gap: var(--wp--preset--spacing--16);
	}

	.terraverde-partners__stat-label,
	.terraverde-partners__stat:nth-child(2) .terraverde-partners__stat-label,
	.terraverde-partners__stat:nth-child(3) .terraverde-partners__stat-label {
		flex: 1 1 auto;
		width: auto;
	}

	body .terraverde-partners__media > .wp-block-cover__inner-container {
		padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20);
	}
}

/*
 * Mobile type scale. The 60px display-lg headings dwarf the 22px body copy on a
 * phone; this rescales the section titles fluidly between display-sm and
 * display-md so the hierarchy holds at 375px and at 430px alike. The preset
 * font-size classes ship with !important, so these have to match it.
 */
@media (max-width: 767px) {
	.terraverde-hero__content h1,
	.terraverde-about__title,
	.terraverde-differential__intro .wp-block-heading,
	.terraverde-partners__title,
	.terraverde-essence__title,
	.terraverde-manifesto__title {
		font-size: clamp(
			var(--wp--preset--font-size--display-sm),
			8.5vw,
			var(--wp--preset--font-size--display-md)
		) !important;
	}

	.terraverde-differential__intro .wp-block-heading {
		max-width: none;
	}

	/* Subheads and the stat numbers step down with them. */
	.terraverde-about__mvv-item .wp-block-heading {
		font-size: var(--wp--preset--font-size--display-sm) !important;
	}

	.terraverde-partners__stat-value {
		font-size: var(--wp--preset--font-size--display-md) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.terraverde-hero__marquee-track {
		animation: none;
		will-change: auto;
	}

	.terraverde-hero__marquee-group[aria-hidden="true"] {
		display: none;
	}
}
