/* ==========================================================================
   Lami Floor — Design System
   Conceito: arquitetura contemporânea, superfícies naturais, precisão.
   Paleta derivada da logomarca (#6C301E, #8C6239, #B96E2B, #BD8648).
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root {
	/* Marca */
	--lf-espresso: #6c301e;
	--lf-espresso-deep: #4f2215;
	/* Tom de texto derivado da nogueira da marca (#8C6239), escurecido para
	   contraste AA também sobre o fundo areia. */
	--lf-walnut: #7a532f;
	--lf-copper: #b96e2b;
	--lf-caramel: #bd8648;

	/* Neutros quentes */
	--lf-paper: #f7f3ee;
	--lf-paper-2: #f1ebe3;
	--lf-sand: #eee6db;
	--lf-linen: #e2d6c6;
	--lf-line: #d9ccbb;
	--lf-ink: #221d1a;
	--lf-stone: #655a52;
	--lf-night: #1b1613;
	--lf-night-2: #2a231f;
	--lf-on-night: #efe8df;
	--lf-on-night-muted: #b9ada1;
	--lf-on-brand: #fbf6f0;
	--lf-on-brand-accent: #ecd2b0;

	/* Semânticos */
	--lf-bg: var(--lf-paper);
	--lf-text: var(--lf-ink);
	--lf-muted: var(--lf-stone);
	--lf-accent: var(--lf-espresso);
	--lf-focus: #b96e2b;

	/* Tipografia */
	--lf-font-display: Fraunces, "Iowan Old Style", Georgia, serif;
	--lf-font-body: Manrope, "Segoe UI", system-ui, -apple-system, sans-serif;
	--lf-fs-xs: 0.8125rem;
	--lf-fs-sm: 0.9375rem;
	--lf-fs-base: clamp(1rem, 0.97rem + 0.15vw, 1.0625rem);
	--lf-fs-md: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
	--lf-fs-lg: clamp(1.25rem, 1.1rem + 0.6vw, 1.625rem);
	--lf-fs-xl: clamp(1.5rem, 1.25rem + 1.1vw, 2.125rem);
	--lf-fs-2xl: clamp(1.875rem, 1.4rem + 2vw, 3rem);
	--lf-fs-3xl: clamp(2.25rem, 1.55rem + 3vw, 4rem);
	--lf-fs-display: clamp(2.5rem, 1.5rem + 4.2vw, 5.25rem);

	/* Espaçamento */
	--lf-gutter: clamp(1.25rem, 0.6rem + 3vw, 3rem);
	--lf-section: clamp(4.5rem, 2.8rem + 6.5vw, 9.5rem);
	--lf-gap: clamp(1.5rem, 1rem + 2vw, 3rem);
	--lf-container: 82.5rem;
	--lf-prose: 44rem;
	--lf-header-h: 4.25rem;

	/* Detalhes */
	--lf-radius: 2px;
	--lf-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--lf-dur: 0.45s;
}

@media (min-width: 64em) {
	:root {
		--lf-header-h: 5.25rem;
	}
}

/* 2. Base ------------------------------------------------------------------ */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--lf-header-h) + 1rem);
}

body {
	margin: 0;
	background: var(--lf-bg);
	color: var(--lf-text);
	font-family: var(--lf-font-body);
	font-size: var(--lf-fs-base);
	line-height: 1.65;
	font-feature-settings: "kern", "liga";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}

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

h1,
h2,
h3,
h4 {
	margin: 0 0 0.6em;
	font-family: var(--lf-font-display);
	font-weight: 380;
	line-height: 1.08;
	letter-spacing: -0.02em;
	color: inherit;
	text-wrap: balance;
	font-variation-settings: "SOFT" 30;
}

h2 {
	font-size: var(--lf-fs-2xl);
}

h3 {
	font-size: var(--lf-fs-lg);
	line-height: 1.2;
	letter-spacing: -0.01em;
}

h4 {
	font-size: var(--lf-fs-md);
}

p {
	margin: 0 0 1.1em;
	text-wrap: pretty;
}

a {
	color: var(--lf-accent);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	transition: color 0.2s ease;
}

a:hover {
	color: var(--lf-espresso-deep);
}

:focus-visible {
	outline: 2px solid var(--lf-focus);
	outline-offset: 3px;
}

::selection {
	background: var(--lf-caramel);
	color: var(--lf-night);
}

strong {
	font-weight: 650;
}

hr,
.wp-block-separator {
	border: 0;
	border-top: 1px solid var(--lf-line);
	margin: 3rem auto;
}

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

.lf-skip {
	position: fixed;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 1000;
	padding: 0.75rem 1.25rem;
	background: var(--lf-ink);
	color: var(--lf-paper);
	transform: translateY(-200%);
	transition: transform 0.2s ease;
}

.lf-skip:focus {
	transform: none;
	color: var(--lf-paper);
}

.lf-main:focus {
	outline: none;
}

.lf-container {
	width: 100%;
	max-width: calc(var(--lf-container) + 2 * var(--lf-gutter));
	margin-inline: auto;
	padding-inline: var(--lf-gutter);
}

/* 3. Elementos de texto ---------------------------------------------------- */
.lf-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 1.25rem;
	font-family: var(--lf-font-body);
	font-size: var(--lf-fs-xs);
	font-weight: 650;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--lf-walnut);
}

.lf-eyebrow::before {
	content: "";
	width: 1.75rem;
	height: 1px;
	background: currentColor;
	flex: none;
}

.lf-eyebrow a {
	color: inherit;
	text-decoration: none;
}

.lf-statement {
	font-family: var(--lf-font-display);
	font-size: var(--lf-fs-xl);
	font-weight: 340;
	line-height: 1.3;
	letter-spacing: -0.012em;
	color: var(--lf-ink);
}

.lf-lead {
	font-size: var(--lf-fs-md);
	line-height: 1.6;
	color: var(--lf-muted);
}

.lf-note {
	margin-top: 2rem;
	font-size: var(--lf-fs-xs);
	letter-spacing: 0.02em;
	color: var(--lf-muted);
}

.lf-section-title {
	font-size: var(--lf-fs-xl);
	margin-bottom: 2rem;
}

/* 4. Botões ---------------------------------------------------------------- */
.lf-btn,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	min-height: 3.25rem;
	padding: 0.9rem 1.6rem;
	border: 1px solid var(--lf-espresso);
	border-radius: var(--lf-radius);
	background: var(--lf-espresso);
	color: var(--lf-on-brand);
	font-family: var(--lf-font-body);
	font-size: var(--lf-fs-sm);
	font-weight: 650;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s var(--lf-ease);
}

.lf-btn:hover,
.wp-block-button__link:hover {
	background: var(--lf-espresso-deep);
	border-color: var(--lf-espresso-deep);
	color: var(--lf-on-brand);
}

.lf-btn:active,
.wp-block-button__link:active {
	transform: translateY(1px);
}

.lf-btn--sm {
	min-height: 2.75rem;
	padding: 0.65rem 1.15rem;
	font-size: var(--lf-fs-xs);
	letter-spacing: 0.04em;
}

.lf-btn--secondary,
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	border-color: currentColor;
	color: var(--lf-ink);
}

.lf-btn--secondary:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--lf-ink);
	border-color: var(--lf-ink);
	color: var(--lf-paper);
}

.lf-btn--light,
.wp-block-button.is-style-lf-light > .wp-block-button__link {
	background: var(--lf-paper);
	border-color: var(--lf-paper);
	color: var(--lf-espresso);
}

.lf-btn--light:hover,
.wp-block-button.is-style-lf-light > .wp-block-button__link:hover {
	background: #fff;
	border-color: #fff;
	color: var(--lf-espresso-deep);
}

.wp-block-button.is-style-lf-link > .wp-block-button__link {
	min-height: 0;
	padding: 0.35rem 0;
	border: 0;
	border-bottom: 1px solid currentColor;
	border-radius: 0;
	background: none;
	color: var(--lf-espresso);
}

.wp-block-button.is-style-lf-link > .wp-block-button__link::after {
	content: "→";
	transition: transform 0.25s var(--lf-ease);
}

.wp-block-button.is-style-lf-link > .wp-block-button__link:hover::after {
	transform: translateX(4px);
}

.wp-block-buttons,
.lf-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
	margin: 2rem 0 0;
}

.wp-block-button {
	margin: 0;
}

.lf-icon {
	flex: none;
}

/* 5. Header ---------------------------------------------------------------- */
.lf-header-sentinel {
	position: absolute;
	top: 0;
	height: 8px;
	width: 1px;
}

.lf-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid transparent;
	transition: border-color 0.3s ease;
}

/* Fundo translúcido num pseudo-elemento: backdrop-filter no próprio header
   criaria um bloco de contenção e prenderia o painel fixo do menu mobile. */
.lf-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgb(247 243 238 / 0.94);
}

@supports (backdrop-filter: blur(1px)) {
	.lf-header::before {
		background: rgb(247 243 238 / 0.82);
		backdrop-filter: saturate(1.4) blur(14px);
	}
}

.lf-header.is-scrolled {
	border-bottom-color: var(--lf-line);
}

.admin-bar .lf-header {
	top: var(--wp-admin--admin-bar--height, 0);
}

.lf-header__inner {
	display: flex;
	align-items: center;
	gap: 1rem;
	height: var(--lf-header-h);
	max-width: calc(var(--lf-container) + 2 * var(--lf-gutter));
	margin-inline: auto;
	padding-inline: var(--lf-gutter);
}

.lf-logo {
	display: inline-flex;
	flex: none;
}

.lf-logo__img {
	width: 10.5rem;
	height: auto;
}

/* Telas muito estreitas: o rótulo "Menu" fica só para leitores de tela,
   preservando o tamanho da logo. */
@media (max-width: 22.5em) {
	.lf-menu-toggle__label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
	}
}

@media (min-width: 64em) {
	.lf-logo__img {
		width: 13rem;
	}
}

.lf-header__logo {
	margin-right: auto;
	position: relative;
	z-index: 2;
}

.lf-header__cta {
	display: none;
}

/* WhatsApp no cabeçalho fixo (celular e tablet): sempre acessível e sem cobrir conteúdo. */
.lf-header__wa {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--lf-espresso);
	border-radius: 50%;
	background: var(--lf-espresso);
	color: var(--lf-on-brand);
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.lf-header__wa:hover {
	background: var(--lf-espresso-deep);
	border-color: var(--lf-espresso-deep);
	color: #fff;
}

.lf-menu-open .lf-header__wa {
	visibility: hidden;
}

@media (max-width: 63.99em) {
	.lf-header__inner {
		gap: 0.5rem;
	}
}

@media (min-width: 64em) {
	.lf-header__wa {
		display: none;
	}
}

/* Botão do menu (mobile) */
.lf-menu-toggle {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	min-height: 2.75rem;
	padding: 0 0.25rem 0 0.75rem;
	border: 0;
	background: none;
	color: var(--lf-ink);
	font: 650 var(--lf-fs-xs) / 1 var(--lf-font-body);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
}

.lf-menu-toggle__icon {
	position: relative;
	display: inline-block;
	width: 1.5rem;
	height: 0.75rem;
}

.lf-menu-toggle__icon span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 1.5px;
	background: currentColor;
	transition: transform 0.3s var(--lf-ease), top 0.3s var(--lf-ease);
}

.lf-menu-toggle__icon span:first-child {
	top: 0;
}

.lf-menu-toggle__icon span:last-child {
	top: calc(100% - 1.5px);
}

.lf-menu-open .lf-menu-toggle__icon span:first-child {
	top: calc(50% - 0.75px);
	transform: rotate(45deg);
}

.lf-menu-open .lf-menu-toggle__icon span:last-child {
	top: calc(50% - 0.75px);
	transform: rotate(-45deg);
}

/* Navegação: painel no mobile */
.lf-nav {
	position: fixed;
	inset: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 2rem;
	padding: calc(var(--lf-header-h) + 2rem) var(--lf-gutter) calc(2rem + env(safe-area-inset-bottom));
	background: var(--lf-paper);
	overflow-y: auto;
	visibility: hidden;
	opacity: 0;
	transform: translateY(-0.75rem);
	transition: opacity 0.3s ease, transform 0.35s var(--lf-ease), visibility 0s linear 0.35s;
}

.admin-bar .lf-nav {
	top: var(--wp-admin--admin-bar--height, 0);
}

.lf-menu-open .lf-nav {
	visibility: visible;
	opacity: 1;
	transform: none;
	transition: opacity 0.3s ease, transform 0.35s var(--lf-ease), visibility 0s;
}

.lf-menu-open body {
	overflow: hidden;
}

.lf-nav__list {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: lf-nav;
}

.lf-nav__list li {
	counter-increment: lf-nav;
	border-bottom: 1px solid var(--lf-line);
}

.lf-nav__list a {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	padding: 0.9rem 0;
	color: var(--lf-ink);
	font-family: var(--lf-font-display);
	font-size: clamp(1.75rem, 1.2rem + 3vw, 2.5rem);
	font-weight: 360;
	letter-spacing: -0.02em;
	line-height: 1.1;
	text-decoration: none;
}

.lf-nav__list a::before {
	content: counter(lf-nav, decimal-leading-zero);
	font-family: var(--lf-font-body);
	font-size: var(--lf-fs-xs);
	font-weight: 600;
	letter-spacing: 0.1em;
	color: var(--lf-walnut);
}

.lf-nav__list a[aria-current] {
	color: var(--lf-espresso);
}

.lf-nav__extra {
	display: grid;
	gap: 0.25rem;
}

.lf-nav__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	color: var(--lf-ink);
	font-weight: 600;
	text-decoration: none;
	font-size: var(--lf-fs-md);
}

.lf-nav__area {
	margin: 0;
	color: var(--lf-muted);
	font-size: var(--lf-fs-sm);
}

/* 64–75em: logo + botão de orçamento + menu em painel (7 itens não cabem em linha
   com a logo ampliada). A partir de 75em, menu completo no cabeçalho. */
@media (min-width: 64em) {
	.lf-header__cta {
		display: inline-flex;
	}

	.lf-menu-toggle {
		order: 2;
	}
}

@media (min-width: 75em) {
	.lf-menu-toggle {
		display: none;
	}

	.lf-header__logo {
		margin-right: 0;
	}

	.lf-nav {
		position: static;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		flex: 1;
		padding: 0;
		background: none;
		overflow: visible;
		visibility: visible;
		opacity: 1;
		transform: none;
		transition: none;
	}

	.lf-nav__extra {
		display: none;
	}

	.lf-nav__list {
		display: flex;
		gap: clamp(1rem, 0.2rem + 1.6vw, 2.25rem);
	}

	.lf-nav__list li {
		border: 0;
	}

	.lf-nav__list a {
		position: relative;
		padding: 0.5rem 0;
		font-family: var(--lf-font-body);
		font-size: var(--lf-fs-sm);
		font-weight: 550;
		letter-spacing: 0.01em;
		white-space: nowrap;
	}

	.lf-nav__list a::before {
		content: none;
	}

	.lf-nav__list a::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0.2rem;
		height: 1px;
		background: var(--lf-copper);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.35s var(--lf-ease);
	}

	.lf-nav__list a:hover::after,
	.lf-nav__list a[aria-current]::after {
		transform: scaleX(1);
	}
}

/* 6. Layout de conteúdo ------------------------------------------------------
   .lf-content: blocos de topo ficam na largura de leitura; .lf-section ocupa a
   largura total e organiza o próprio grid interno. */
.lf-content > :where(:not(.lf-section):not(.alignfull):not(.alignwide)) {
	max-width: calc(var(--lf-prose) + 2 * var(--lf-gutter));
	margin-inline: auto;
	padding-inline: var(--lf-gutter);
}

.lf-content > .alignwide {
	max-width: calc(var(--lf-container) + 2 * var(--lf-gutter));
	margin-inline: auto;
	padding-inline: var(--lf-gutter);
}

.lf-content > .alignfull {
	max-width: none;
}

.lf-content--prose,
.lf-content:not(.lf-content--canvas):not(.lf-content--service) {
	padding-block: clamp(2.5rem, 1.5rem + 3vw, 4.5rem) var(--lf-section);
}

.lf-content:has(> .lf-section:first-child) {
	padding-top: 0;
}

.lf-content:has(> .lf-section:last-child) {
	padding-bottom: 0;
}

/* Tipografia de leitura (artigos, páginas legais) */
.lf-content > h2 {
	margin-top: 2.2em;
	font-size: var(--lf-fs-xl);
}

.lf-content > h3 {
	margin-top: 1.8em;
	font-size: var(--lf-fs-lg);
}

.lf-content > :is(ul, ol) {
	padding-left: calc(var(--lf-gutter) + 1.25rem);
	margin-bottom: 1.4em;
}

.lf-content > :is(ul, ol) li {
	margin-bottom: 0.45em;
}

.lf-content li::marker {
	color: var(--lf-copper);
}

.lf-content--prose > p:first-child {
	font-size: var(--lf-fs-md);
	line-height: 1.6;
}

.wp-block-image {
	margin: 2.5rem 0;
}

.wp-block-image img {
	width: 100%;
}

.wp-block-image figcaption,
.wp-element-caption {
	margin-top: 0.75rem;
	font-size: var(--lf-fs-xs);
	color: var(--lf-muted);
}

.wp-block-quote {
	margin: 2.5rem 0;
	padding: 0 0 0 1.5rem;
	border-left: 1px solid var(--lf-copper);
	font-family: var(--lf-font-display);
	font-size: var(--lf-fs-lg);
	line-height: 1.4;
}

.wp-block-quote cite {
	display: block;
	margin-top: 1rem;
	font-family: var(--lf-font-body);
	font-size: var(--lf-fs-sm);
	font-style: normal;
	font-weight: 600;
	color: var(--lf-muted);
}

/* Grids do tema controlam o próprio espaçamento: anula a margem automática
   que o layout "flow" do WordPress aplica entre blocos irmãos. */
.lf-content :is(.lf-hero, .lf-intro, .lf-facts, .lf-fact, .lf-cta, .lf-values, .lf-values__grid, .lf-cards, .lf-steps, .lf-quotes, .lf-gallery, .lf-notes, .lf-split, .lf-faq, .lf-section__head, .lf-faq__list) > * {
	margin-block-start: 0;
}

/* 7. Seções ---------------------------------------------------------------- */
.lf-section {
	position: relative;
	padding-block: var(--lf-section);
	padding-inline: var(--lf-gutter);
}

.lf-section > * {
	max-width: var(--lf-container);
	margin-inline: auto;
}

.lf-section.is-style-lf-sand {
	background: var(--lf-sand);
}

.lf-section.is-style-lf-night {
	background: var(--lf-night);
	color: var(--lf-on-night);
}

.lf-section.is-style-lf-night .lf-eyebrow {
	color: var(--lf-caramel);
}

.lf-section.is-style-lf-night p {
	color: var(--lf-on-night-muted);
}

.lf-section.is-style-lf-night :is(h2, h3, .lf-statement) {
	color: var(--lf-on-night);
}

.lf-section.is-style-lf-night a:not(.wp-block-button__link) {
	color: var(--lf-on-night);
}

.lf-section.is-style-lf-brand {
	background: var(--lf-espresso);
	color: var(--lf-on-brand);
}

.lf-section.is-style-lf-brand .lf-eyebrow {
	color: var(--lf-on-brand-accent);
}

.lf-section.is-style-lf-brand a:not(.wp-block-button__link) {
	color: var(--lf-on-brand);
}

.lf-section + .lf-section:not([class*="is-style-"]) {
	padding-top: 0;
}

.lf-section[class*="is-style-"] + .lf-section:not([class*="is-style-"]),
.lf-hero + .lf-section,
.lf-section:first-child:not(.lf-hero) {
	padding-top: var(--lf-section);
}

/* Cabeçalho de seção: título à esquerda, apoio à direita */
.lf-section__head {
	display: grid;
	gap: 1rem 4rem;
	margin-bottom: clamp(2.5rem, 1.5rem + 3vw, 4.5rem);
}

.lf-section__head > * {
	margin-bottom: 0;
}

.lf-section__head h2 {
	max-width: 18ch;
}

.lf-section__head p:not(.lf-eyebrow) {
	max-width: 36rem;
	color: var(--lf-muted);
	font-size: var(--lf-fs-md);
}

.is-style-lf-night .lf-section__head p:not(.lf-eyebrow) {
	color: var(--lf-on-night-muted);
}

@media (min-width: 56em) {
	.lf-section__head {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		align-items: end;
	}

	.lf-section__head .lf-eyebrow {
		grid-column: 1 / -1;
	}
}

/* 8. HOME — Hero ------------------------------------------------------------ */
.lf-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	padding: 0;
	background: var(--lf-paper);
}

.lf-hero > * {
	max-width: none;
	margin: 0;
}

.lf-hero__media {
	order: -1;
	margin: 0;
	aspect-ratio: 4 / 3.4;
	overflow: hidden;
	background: var(--lf-linen);
}

.lf-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 62%;
}

.lf-hero__content {
	padding: 2.75rem var(--lf-gutter) 2.5rem;
}

.lf-hero__title {
	margin-bottom: 1.5rem;
	font-size: var(--lf-fs-display);
	font-weight: 340;
	line-height: 1.02;
	letter-spacing: -0.03em;
}

.lf-hero__title em {
	font-style: italic;
	color: var(--lf-espresso);
}

.lf-hero__lead {
	max-width: 34rem;
	font-size: var(--lf-fs-md);
	line-height: 1.6;
	color: var(--lf-muted);
}

.lf-hero__index {
	margin: 0;
	padding: 0 var(--lf-gutter) 3rem;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	counter-reset: lf-index;
}

.lf-hero__index li {
	counter-increment: lf-index;
	margin: 0;
	border-top: 1px solid var(--lf-line);
}

.lf-hero__index li:nth-child(odd) {
	padding-right: 1rem;
}

.lf-hero__index a {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 1rem 0 0.5rem;
	color: var(--lf-ink);
	font-size: var(--lf-fs-sm);
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
}

.lf-hero__index a::before {
	content: counter(lf-index, decimal-leading-zero);
	font-size: var(--lf-fs-xs);
	font-weight: 600;
	letter-spacing: 0.1em;
	color: var(--lf-walnut);
}

.lf-hero__index a:hover {
	color: var(--lf-espresso);
}

@media (min-width: 64em) {
	.lf-hero {
		grid-template-columns:
			[full-start] minmax(var(--lf-gutter), 1fr)
			[content-start] repeat(12, minmax(0, calc(var(--lf-container) / 12)))
			[content-end] minmax(var(--lf-gutter), 1fr) [full-end];
		grid-template-rows: 1fr auto;
		min-height: min(calc(100svh - var(--lf-header-h)), 58rem);
	}

	.lf-hero__media {
		order: 0;
		grid-column: 8 / full-end;
		grid-row: 1 / span 2;
		aspect-ratio: auto;
		height: 100%;
	}

	.lf-hero__content {
		grid-column: content-start / span 6;
		grid-row: 1;
		align-self: center;
		padding: 4rem 2rem 3rem 0;
	}

	.lf-hero__index {
		grid-column: content-start / span 6;
		grid-row: 2;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		padding: 0 2rem 3.5rem 0;
	}

	.lf-hero__index li:nth-child(odd) {
		padding-right: 0;
	}

	.lf-hero__index li + li {
		padding-left: 1rem;
	}
}

/* 9. HOME — Apresentação --------------------------------------------------- */
/* Texto principal à esquerda + três pontos de execução à direita,
   com espaçamento vertical menor que o das demais seções. */
.lf-content .lf-intro {
	display: grid;
	gap: 2.25rem var(--lf-gap);
	padding-block: clamp(3.25rem, 2.25rem + 3.5vw, 5.75rem);
}

.lf-intro > * {
	margin: 0;
	max-width: none;
}

.lf-intro__title {
	max-width: 28ch;
	margin-bottom: 1.1rem;
	font-size: var(--lf-fs-xl);
	font-weight: 360;
	line-height: 1.22;
	letter-spacing: -0.015em;
}

.lf-intro__lead p:not(.lf-eyebrow) {
	max-width: 36rem;
	margin: 0;
	color: var(--lf-muted);
}

.lf-facts {
	display: grid;
	counter-reset: lf-fact;
	border-top: 1px solid var(--lf-line);
}

.lf-fact {
	counter-increment: lf-fact;
	display: grid;
	grid-template-columns: 9rem minmax(0, 1fr);
	gap: 0.25rem 1.25rem;
	align-items: baseline;
	padding: 1.05rem 0;
	border-bottom: 1px solid var(--lf-line);
}

.lf-content .lf-fact > * {
	margin: 0;
}

.lf-fact__label {
	font-size: var(--lf-fs-xs);
	font-weight: 650;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--lf-walnut);
}

.lf-fact__label::before {
	content: counter(lf-fact, decimal-leading-zero) "  ";
	white-space: pre;
	color: var(--lf-copper);
}

.lf-fact p:not(.lf-fact__label) {
	font-size: var(--lf-fs-sm);
	line-height: 1.55;
	color: var(--lf-ink);
}

@media (max-width: 30em) {
	.lf-fact {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (min-width: 56em) {
	.lf-intro {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		align-items: center;
		padding-inline: max(var(--lf-gutter), calc((100% - var(--lf-container)) / 2));
		max-width: none;
	}

	.lf-intro__lead {
		grid-column: 1 / span 7;
	}

	.lf-facts {
		grid-column: 8 / span 5;
	}
}

.lf-content > .lf-hero + .lf-intro {
	padding-top: clamp(3.25rem, 2.25rem + 3.5vw, 5.75rem);
}

/* 10. Cards de serviço ------------------------------------------------------ */
.lf-services {
	display: grid;
	gap: clamp(2.5rem, 1.5rem + 2vw, 3.5rem) var(--lf-gap);
}

.lf-service-card__link {
	display: block;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.lf-service-card__media {
	position: relative;
	margin: 0 0 1.5rem;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--lf-linen);
}

.lf-service-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.1s var(--lf-ease);
}

.lf-service-card__link:hover .lf-service-card__media img {
	transform: scale(1.04);
}

.lf-service-card__body {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 1.25rem;
	align-items: baseline;
}

.lf-service-card__num {
	grid-row: span 3;
	font-size: var(--lf-fs-xs);
	font-weight: 650;
	letter-spacing: 0.1em;
	color: var(--lf-walnut);
}

.lf-service-card__title {
	margin: 0 0 0.6rem;
	font-size: var(--lf-fs-xl);
}

.lf-service-card__text {
	max-width: 32rem;
	margin: 0 0 1.1rem;
	color: var(--lf-muted);
}

.lf-service-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: var(--lf-fs-sm);
	font-weight: 650;
	color: var(--lf-espresso);
}

.lf-service-card__cta .lf-icon {
	transition: transform 0.3s var(--lf-ease);
}

.lf-service-card__link:hover .lf-service-card__cta .lf-icon {
	transform: translateX(4px);
}

@media (min-width: 56em) {
	/* Mosaico editorial da home: proporções alternadas */
	.lf-services--home {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		row-gap: 5rem;
	}

	.lf-services--home .lf-service-card:nth-child(4n + 1) {
		grid-column: 1 / span 7;
	}

	.lf-services--home .lf-service-card:nth-child(4n + 2) {
		grid-column: 9 / span 4;
		margin-top: 7rem;
	}

	.lf-services--home .lf-service-card:nth-child(4n + 3) {
		grid-column: 1 / span 5;
	}

	.lf-services--home .lf-service-card:nth-child(4n + 4) {
		grid-column: 7 / span 6;
		margin-top: -3rem;
	}

	.lf-services--home .lf-service-card:nth-child(4n + 1) .lf-service-card__media,
	.lf-services--home .lf-service-card:nth-child(4n + 4) .lf-service-card__media {
		aspect-ratio: 16 / 11;
	}

	.lf-services--home .lf-service-card:nth-child(4n + 2) .lf-service-card__media,
	.lf-services--home .lf-service-card:nth-child(4n + 3) .lf-service-card__media {
		aspect-ratio: 4 / 5;
	}

	/* Página "Serviços": linhas alternadas */
	.lf-services--index {
		gap: 0;
	}

	.lf-services--index .lf-service-card {
		border-top: 1px solid var(--lf-line);
		padding-block: 3rem;
	}

	.lf-services--index .lf-service-card__link {
		display: grid;
		grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
		gap: var(--lf-gap);
		align-items: center;
	}

	.lf-services--index .lf-service-card:nth-child(even) .lf-service-card__media {
		order: 2;
	}

	.lf-services--index .lf-service-card__media {
		margin: 0;
		aspect-ratio: 3 / 2;
	}
}

/* Compacto (outros serviços) */
.lf-services--compact {
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
	border-top: 1px solid var(--lf-line);
}

.lf-services--compact .lf-service-card {
	border-bottom: 1px solid var(--lf-line);
}

.lf-services--compact .lf-service-card__link {
	padding: 1.5rem 0;
}

.lf-services--compact .lf-service-card__body {
	grid-template-columns: auto 1fr auto;
	align-items: center;
}

.lf-services--compact .lf-service-card__num {
	grid-row: auto;
}

.lf-services--compact .lf-service-card__title {
	margin: 0;
	font-size: var(--lf-fs-lg);
}

.lf-services--compact .lf-service-card__cta {
	font-size: 0;
}

.lf-services--compact .lf-service-card__cta .lf-icon {
	width: 1.5rem;
	height: 1.5rem;
}

@media (min-width: 56em) {
	.lf-services--compact {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		column-gap: var(--lf-gap);
		border-top: 0;
	}

	.lf-services--compact .lf-service-card {
		border-top: 1px solid var(--lf-line);
	}
}

/* 11. HOME — Diferenciais (seção grafite) ---------------------------------- */
.lf-values {
	display: grid;
	gap: var(--lf-gap);
}

.lf-values > * {
	margin: 0;
	max-width: none;
}

.lf-values__media {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.lf-values__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lf-values__intro h2 {
	max-width: 16ch;
}

.lf-values__grid {
	display: grid;
	gap: 0 var(--lf-gap);
}

.lf-value {
	padding: 1.75rem 0;
	border-top: 1px solid rgb(239 232 223 / 0.16);
}

.lf-value > * {
	margin-bottom: 0.6rem;
}

.lf-value__num {
	font-size: var(--lf-fs-xs);
	font-weight: 650;
	letter-spacing: 0.12em;
	color: var(--lf-caramel) !important;
}

.lf-value h3 {
	font-size: var(--lf-fs-lg);
}

.lf-value p:last-child {
	margin-bottom: 0;
}

@media (min-width: 56em) {
	.lf-values {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		padding-inline: max(var(--lf-gutter), calc((100% - var(--lf-container)) / 2));
		max-width: none;
		row-gap: 4rem;
	}

	.lf-values__intro {
		grid-column: 1 / span 6;
	}

	.lf-values__media {
		grid-column: 8 / span 5;
		grid-row: 1 / span 2;
		aspect-ratio: 3 / 4;
	}

	.lf-values__grid {
		grid-column: 1 / span 7;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* 12. Galeria editorial ---------------------------------------------------- */
.lf-gallery {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}

.lf-gallery .wp-block-image,
.lf-gallery__item {
	margin: 0;
	overflow: hidden;
	position: relative;
}

.lf-gallery .wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 4 / 5;
}

.lf-gallery .wp-block-image:first-child {
	grid-column: 1 / -1;
}

.lf-gallery .wp-block-image:first-child img {
	aspect-ratio: 16 / 10;
}

.lf-gallery figcaption {
	margin: 0;
	padding: 0.7rem 0 0;
	font-size: var(--lf-fs-xs);
	letter-spacing: 0.04em;
	color: var(--lf-muted);
}

@media (min-width: 56em) {
	/* Mosaico com linhas de altura fixa: as imagens se ajustam ao quadro (object-fit). */
	.lf-gallery {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		grid-auto-rows: clamp(14rem, 9rem + 10vw, 21rem);
		gap: 1.25rem;
	}

	.lf-gallery .wp-block-image {
		display: flex;
		flex-direction: column;
		min-height: 0;
	}

	.lf-gallery .wp-block-image img,
	.lf-gallery .wp-block-image:first-child img {
		flex: 1;
		min-height: 0;
		height: 100%;
		aspect-ratio: auto;
	}

	.lf-gallery .wp-block-image:nth-child(1) {
		grid-column: 1 / span 7;
		grid-row: span 2;
	}

	.lf-gallery .wp-block-image:nth-child(2),
	.lf-gallery .wp-block-image:nth-child(3) {
		grid-column: 8 / span 5;
	}

	.lf-gallery .wp-block-image:nth-child(4) {
		grid-column: 1 / span 5;
	}

	.lf-gallery .wp-block-image:nth-child(5) {
		grid-column: 6 / span 7;
	}
}

/* 13. Split (imagem + texto) ------------------------------------------------ */
.lf-split {
	display: grid;
	gap: var(--lf-gap);
	align-items: center;
}

.lf-split > * {
	margin: 0;
	max-width: none;
}

.lf-split .wp-block-image {
	margin: 0;
	overflow: hidden;
}

.lf-split .wp-block-image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.lf-split__content > *:last-child {
	margin-bottom: 0;
}

.lf-split__content p:not(.lf-eyebrow):not(.lf-statement) {
	color: var(--lf-muted);
	max-width: 36rem;
}

.is-style-lf-night .lf-split__content p:not(.lf-eyebrow) {
	color: var(--lf-on-night-muted);
}

.lf-split__content h2 {
	max-width: 18ch;
}

@media (min-width: 56em) {
	.lf-split {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		padding-inline: max(var(--lf-gutter), calc((100% - var(--lf-container)) / 2));
		max-width: none;
	}

	.lf-split > .wp-block-image {
		grid-column: 1 / span 5;
	}

	.lf-split > .lf-split__content {
		grid-column: 7 / span 6;
	}

	.lf-split--reverse > .wp-block-image {
		grid-column: 8 / span 5;
		order: 2;
	}

	.lf-split--reverse > .lf-split__content {
		grid-column: 1 / span 6;
	}

	.lf-split--landscape .wp-block-image img {
		aspect-ratio: 5 / 4;
	}

	.lf-split--landscape > .wp-block-image {
		grid-column: 1 / span 6;
	}

	.lf-split--landscape.lf-split--reverse > .wp-block-image {
		grid-column: 7 / span 6;
	}
}

/* 14. Depoimentos ---------------------------------------------------------- */
.lf-quotes {
	display: grid;
	gap: 0 var(--lf-gap);
}

.lf-quotes .wp-block-quote {
	margin: 0;
	padding: 2rem 0;
	border: 0;
	border-top: 1px solid var(--lf-line);
	font-size: var(--lf-fs-md);
	line-height: 1.5;
	font-weight: 340;
}

.lf-quotes .wp-block-quote::before {
	content: "“";
	display: block;
	height: 2.25rem;
	font-family: var(--lf-font-display);
	font-size: 4rem;
	line-height: 1;
	color: var(--lf-caramel);
}

.lf-quotes .wp-block-quote p {
	margin-bottom: 0;
}

.lf-quotes .wp-block-quote cite {
	margin-top: 1.25rem;
	letter-spacing: 0.02em;
	color: var(--lf-ink);
}

@media (min-width: 64em) {
	.lf-quotes {
		grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	}
}

/* 15. Processo ------------------------------------------------------------- */
.lf-steps {
	display: grid;
	gap: 0;
	counter-reset: lf-step;
}

.lf-step {
	position: relative;
	padding: 1.75rem 0 1.75rem 3.5rem;
	border-top: 1px solid var(--lf-line);
}

.lf-step > * {
	margin-bottom: 0.5rem;
}

.lf-step__num {
	position: absolute;
	left: 0;
	top: 1.6rem;
	font-family: var(--lf-font-display);
	font-size: var(--lf-fs-xl);
	line-height: 1;
	color: var(--lf-copper);
}

.lf-step h3 {
	font-size: var(--lf-fs-lg);
}

.lf-step p:last-child {
	margin: 0;
	color: var(--lf-muted);
}

@media (min-width: 56em) {
	.lf-steps {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: var(--lf-gap);
	}

	.lf-step {
		padding: 2.25rem 0 0;
		border-top: 1px solid var(--lf-ink);
	}

	.lf-step__num {
		position: static;
		display: block;
		margin-bottom: 2.5rem !important;
		font-size: var(--lf-fs-2xl);
	}
}

/* 16. Cards de conteúdo (benefícios, aplicações) --------------------------- */
.lf-cards {
	display: grid;
	gap: 1px;
	background: var(--lf-line);
	border: 1px solid var(--lf-line);
}

.lf-card {
	padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem);
	background: var(--lf-paper);
}

.is-style-lf-sand .lf-card {
	background: var(--lf-sand);
}

.lf-card > *:last-child {
	margin-bottom: 0;
}

.lf-card h3 {
	font-size: var(--lf-fs-lg);
	margin-bottom: 0.75rem;
}

.lf-card p {
	color: var(--lf-muted);
}

@media (min-width: 40em) {
	.lf-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64em) {
	.lf-cards--4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

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

/* Lista com marcadores lineares */
.lf-checklist {
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--lf-line);
}

.lf-checklist li {
	position: relative;
	margin: 0;
	padding: 0.95rem 0 0.95rem 2rem;
	border-bottom: 1px solid var(--lf-line);
}

.lf-checklist li::before {
	content: "";
	position: absolute;
	left: 0.15rem;
	top: 1.55rem;
	width: 0.85rem;
	height: 1px;
	background: var(--lf-copper);
}

/* Duas colunas de observações */
.lf-notes {
	display: grid;
	gap: 0 var(--lf-gap);
}

.lf-notes > .wp-block-group {
	padding: 1.75rem 0;
	border-top: 1px solid var(--lf-line);
}

.lf-notes h3 {
	font-size: var(--lf-fs-md);
	font-family: var(--lf-font-body);
	font-weight: 650;
	letter-spacing: 0;
	margin-bottom: 0.5rem;
}

.lf-notes p {
	margin: 0;
	color: var(--lf-muted);
}

@media (min-width: 56em) {
	.lf-notes {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* 17. FAQ (bloco Detalhes) ------------------------------------------------- */
.lf-faq {
	display: grid;
	gap: var(--lf-gap);
}

.lf-faq > * {
	margin: 0;
	max-width: none;
}

.lf-faq__head h2 {
	max-width: 14ch;
}

.lf-faq__head p:not(.lf-eyebrow) {
	color: var(--lf-muted);
	max-width: 26rem;
}

.wp-block-details {
	border-top: 1px solid var(--lf-line);
	margin: 0;
	padding: 0;
}

.wp-block-details:last-child {
	border-bottom: 1px solid var(--lf-line);
}

.wp-block-details summary {
	position: relative;
	display: block;
	padding: 1.4rem 3rem 1.4rem 0;
	font-family: var(--lf-font-display);
	font-size: var(--lf-fs-md);
	font-weight: 400;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after,
.wp-block-details summary::before {
	content: "";
	position: absolute;
	right: 0.35rem;
	top: 50%;
	width: 0.95rem;
	height: 1px;
	background: var(--lf-espresso);
	transition: transform 0.3s var(--lf-ease);
}

.wp-block-details summary::before {
	transform: rotate(90deg);
}

.wp-block-details[open] summary::before {
	transform: rotate(0deg);
}

.wp-block-details summary:hover {
	color: var(--lf-espresso);
}

.wp-block-details > :not(summary) {
	max-width: 42rem;
	color: var(--lf-muted);
}

.wp-block-details > p:last-child {
	padding-bottom: 1.4rem;
	margin-bottom: 0;
}

@media (min-width: 56em) {
	.lf-faq {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		padding-inline: max(var(--lf-gutter), calc((100% - var(--lf-container)) / 2));
		max-width: none;
	}

	.lf-faq__head {
		grid-column: 1 / span 4;
		position: sticky;
		top: calc(var(--lf-header-h) + 2rem);
		align-self: start;
	}

	.lf-faq__list {
		grid-column: 6 / span 7;
	}
}

/* 18. Chamada final (bloco e faixa do tema) -------------------------------- */
.lf-cta,
.lf-cta-band {
	text-align: left;
}

/* Bloco da home: chamada à esquerda + apoio "Para agilizar seu orçamento" à direita. */
.lf-content .lf-cta {
	display: grid;
	gap: 2.5rem var(--lf-gap);
	padding-block: clamp(3.5rem, 2.5rem + 4vw, 6.5rem);
}

.lf-cta > * {
	width: 100%;
	max-width: none;
	margin: 0;
}

.lf-cta__main > :last-child {
	margin-bottom: 0;
}

.lf-cta__main .wp-block-buttons {
	margin-top: 1.75rem;
}

.lf-cta h2,
.lf-cta-band__title {
	font-size: var(--lf-fs-3xl);
	font-weight: 340;
	max-width: 16ch;
	letter-spacing: -0.025em;
}

.lf-cta p:not(.lf-eyebrow),
.lf-cta-band__text {
	max-width: 36rem;
	font-size: var(--lf-fs-md);
	color: rgb(251 246 240 / 0.82);
}

.lf-cta .lf-cta__phone {
	margin-top: 1.25rem;
	font-size: var(--lf-fs-sm);
}

.lf-cta__aside {
	padding: clamp(1.5rem, 1rem + 1.5vw, 2.25rem);
	border: 1px solid rgb(251 246 240 / 0.22);
	background: rgb(27 22 19 / 0.14);
}

.lf-cta .lf-cta__aside-title {
	margin: 0 0 1rem;
	font-family: var(--lf-font-body);
	font-size: var(--lf-fs-xs);
	font-weight: 650;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--lf-on-brand-accent);
}

.lf-cta__list {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: lf-cta-item;
}

.lf-cta__list li {
	counter-increment: lf-cta-item;
	display: flex;
	align-items: baseline;
	gap: 0.9rem;
	margin: 0;
	padding: 0.85rem 0;
	border-top: 1px solid rgb(251 246 240 / 0.18);
	font-family: var(--lf-font-display);
	font-size: var(--lf-fs-lg);
	line-height: 1.25;
	color: var(--lf-on-brand);
}

.lf-cta__list li::before {
	content: counter(lf-cta-item, decimal-leading-zero);
	font-family: var(--lf-font-body);
	font-size: var(--lf-fs-xs);
	font-weight: 650;
	letter-spacing: 0.1em;
	color: var(--lf-on-brand-accent);
}

.lf-cta .lf-cta__hint {
	margin: 0.75rem 0 0;
	padding-top: 0.9rem;
	border-top: 1px solid rgb(251 246 240 / 0.18);
	font-size: var(--lf-fs-sm);
}

/* Celular: mesma estrutura em uma coluna, com espaçamentos mais curtos. */
@media (max-width: 55.99em) {
	.lf-content .lf-cta {
		gap: 1.75rem;
		padding-block: 3rem 3.25rem;
	}

	.lf-cta h2 {
		margin-bottom: 0.9rem;
		font-size: clamp(2rem, 1.6rem + 2vw, 2.5rem);
	}

	.lf-cta p:not(.lf-eyebrow) {
		font-size: var(--lf-fs-base);
	}

	.lf-cta__main .wp-block-buttons {
		margin-top: 1.25rem;
	}

	.lf-cta .lf-cta__phone {
		margin-top: 1rem;
	}

	.lf-cta__aside {
		padding: 1.25rem 1.25rem 1.1rem;
	}

	.lf-cta .lf-cta__aside-title {
		margin-bottom: 0.6rem;
	}

	.lf-cta__list li {
		padding: 0.6rem 0;
		font-size: var(--lf-fs-md);
	}

	.lf-cta .lf-cta__hint {
		margin-top: 0.4rem;
		padding-top: 0.7rem;
	}
}

@media (min-width: 56em) {
	.lf-content .lf-cta {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		align-items: center;
	}

	.lf-cta > * {
		max-width: none;
		margin: 0;
	}

	.lf-cta__main {
		grid-column: 1 / span 7;
	}

	.lf-cta__aside {
		grid-column: 8 / span 5;
	}
}

@media (min-width: 56em) {
	.lf-content .lf-cta {
		padding-inline: max(var(--lf-gutter), calc((100% - var(--lf-container)) / 2));
	}
}

.lf-cta-band {
	background: var(--lf-espresso);
	color: var(--lf-on-brand);
	padding: var(--lf-section) var(--lf-gutter);
}

.lf-cta-band__inner {
	max-width: var(--lf-container);
	margin-inline: auto;
}

.lf-cta-band .lf-eyebrow {
	color: var(--lf-on-brand-accent);
}

.lf-cta-band__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 2rem;
	margin-top: 2.25rem;
}

.lf-cta-band__phone,
.lf-cta .lf-cta__phone a {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	color: var(--lf-on-brand);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid rgb(251 246 240 / 0.4);
	padding-bottom: 0.15rem;
}

.lf-cta-band__phone:hover {
	color: #fff;
	border-color: #fff;
}

/* 19. Páginas internas ----------------------------------------------------- */
.lf-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.6rem;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
	font-size: var(--lf-fs-xs);
	color: var(--lf-muted);
}

.lf-breadcrumbs li {
	display: inline-flex;
	gap: 0.6rem;
}

.lf-breadcrumbs li + li::before {
	content: "/";
	color: var(--lf-line);
}

.lf-breadcrumbs a {
	color: var(--lf-muted);
	text-decoration: none;
}

.lf-breadcrumbs a:hover {
	color: var(--lf-espresso);
	text-decoration: underline;
}

.lf-page-hero {
	padding: clamp(2.5rem, 1.5rem + 4vw, 5.5rem) var(--lf-gutter) clamp(2.5rem, 1.5rem + 3vw, 4rem);
	border-bottom: 1px solid var(--lf-line);
}

.lf-page-hero__inner {
	max-width: var(--lf-container);
	margin-inline: auto;
}

.lf-page-hero__title {
	max-width: 20ch;
	margin-bottom: 1.25rem;
	font-size: var(--lf-fs-3xl);
	font-weight: 340;
	letter-spacing: -0.028em;
}

.lf-page-hero__lead {
	max-width: 40rem;
	margin: 0;
	font-size: var(--lf-fs-md);
	color: var(--lf-muted);
}

/* Hero dos serviços */
.lf-service-hero {
	display: grid;
	border-bottom: 1px solid var(--lf-line);
}

.lf-service-hero__text {
	padding: 2.5rem var(--lf-gutter) 3rem;
}

.lf-service-hero__title {
	max-width: 16ch;
	margin-bottom: 1.25rem;
	font-size: var(--lf-fs-3xl);
	font-weight: 340;
	letter-spacing: -0.028em;
}

.lf-service-hero__lead {
	max-width: 34rem;
	font-size: var(--lf-fs-md);
	color: var(--lf-muted);
}

.lf-service-hero__media {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--lf-linen);
}

.lf-service-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (min-width: 64em) {
	.lf-service-hero {
		grid-template-columns:
			[full-start] minmax(var(--lf-gutter), 1fr)
			[content-start] repeat(12, minmax(0, calc(var(--lf-container) / 12)))
			[content-end] minmax(var(--lf-gutter), 1fr) [full-end];
		min-height: min(calc(88svh - var(--lf-header-h)), 46rem);
	}

	.lf-service-hero__text {
		grid-column: content-start / span 6;
		align-self: center;
		padding: 4rem 3rem 4rem 0;
	}

	.lf-service-hero__media {
		grid-column: 8 / full-end;
		aspect-ratio: auto;
		height: 100%;
	}
}

/* Artigo */
.lf-article__header {
	max-width: calc(var(--lf-prose) + 12rem + 2 * var(--lf-gutter));
	margin-inline: auto;
	padding: clamp(2.5rem, 1.5rem + 4vw, 5rem) var(--lf-gutter) 2.5rem;
}

.lf-article__title {
	font-size: var(--lf-fs-3xl);
	font-weight: 340;
	letter-spacing: -0.028em;
	margin-bottom: 1.5rem;
}

.lf-article__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.5rem;
	margin: 0;
	font-size: var(--lf-fs-sm);
	color: var(--lf-muted);
}

.lf-article__meta > * + *::before {
	content: "";
	display: inline-block;
	width: 4px;
	height: 4px;
	margin-right: 1.5rem;
	border-radius: 50%;
	background: var(--lf-caramel);
	vertical-align: middle;
	position: relative;
	top: -1px;
}

.lf-article__media {
	max-width: calc(75rem + 2 * var(--lf-gutter));
	margin: 0 auto;
	padding-inline: var(--lf-gutter);
}

.lf-article__media img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.lf-article__media figcaption {
	margin-top: 0.75rem;
	font-size: var(--lf-fs-xs);
	color: var(--lf-muted);
}

.lf-article__footer {
	max-width: calc(var(--lf-prose) + 2 * var(--lf-gutter));
	margin: 0 auto;
	padding: 0 var(--lf-gutter) var(--lf-section);
}

.lf-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 2rem 0 0;
	border-top: 1px solid var(--lf-line);
	list-style: none;
}

.lf-tags li {
	padding: 0.35rem 0.8rem;
	border: 1px solid var(--lf-line);
	font-size: var(--lf-fs-xs);
	color: var(--lf-muted);
}

.lf-content--prose + .lf-article__footer {
	margin-top: calc(-1 * var(--lf-section) + 1rem);
}

/* Listagens */
.lf-listing {
	padding-block: clamp(3rem, 2rem + 3vw, 5rem) var(--lf-section);
}

.lf-post-grid {
	display: grid;
	gap: 3.5rem var(--lf-gap);
}

@media (min-width: 40em) {
	.lf-post-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64em) {
	.lf-post-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.lf-post-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.lf-post-card__media {
	margin: 0 0 1.4rem;
	overflow: hidden;
	aspect-ratio: 3 / 2;
	background: var(--lf-linen);
}

.lf-post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.1s var(--lf-ease);
}

.lf-post-card__link:hover img {
	transform: scale(1.04);
}

.lf-post-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1rem;
	margin-bottom: 0.75rem;
	font-size: var(--lf-fs-xs);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--lf-walnut);
}

.lf-post-card__meta time {
	color: var(--lf-muted);
}

.lf-post-card__title {
	margin-bottom: 0.75rem;
	font-size: var(--lf-fs-lg);
	line-height: 1.2;
	transition: color 0.2s ease;
}

.lf-post-card__link:hover .lf-post-card__title {
	color: var(--lf-espresso);
}

.lf-post-card__excerpt {
	color: var(--lf-muted);
	font-size: var(--lf-fs-sm);
}

.lf-post-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: var(--lf-fs-sm);
	font-weight: 650;
	color: var(--lf-espresso);
}

@media (min-width: 64em) {
	.lf-post-grid--blog .lf-post-card--featured {
		grid-column: 1 / -1;
	}

	.lf-post-card--featured .lf-post-card__link {
		display: grid;
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		gap: var(--lf-gap);
		align-items: center;
		padding-bottom: 3.5rem;
		border-bottom: 1px solid var(--lf-line);
	}

	.lf-post-card--featured .lf-post-card__media {
		margin: 0;
		aspect-ratio: 16 / 10;
	}

	.lf-post-card--featured .lf-post-card__title {
		font-size: var(--lf-fs-2xl);
	}

	.lf-post-card--featured .lf-post-card__excerpt {
		font-size: var(--lf-fs-base);
	}
}

.lf-related-posts,
.lf-related-services {
	padding-block: var(--lf-section);
	border-top: 1px solid var(--lf-line);
}

.lf-related-services {
	padding-block: clamp(3.5rem, 2.5rem + 3vw, 5.5rem);
}

/* Paginação */
.navigation.pagination {
	margin-top: 4rem;
}

.nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0 0.9rem;
	border: 1px solid var(--lf-line);
	color: var(--lf-ink);
	text-decoration: none;
	font-size: var(--lf-fs-sm);
}

.page-numbers.current {
	background: var(--lf-ink);
	border-color: var(--lf-ink);
	color: var(--lf-paper);
}

.lf-empty {
	padding: 2rem 0;
	color: var(--lf-muted);
}

/* Projetos reais (CPT) */
.lf-projects {
	display: grid;
	gap: 3rem var(--lf-gap);
}

@media (min-width: 40em) {
	.lf-projects {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64em) {
	.lf-projects {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.lf-project-card__link {
	color: inherit;
	text-decoration: none;
}

.lf-project-card__media {
	margin: 0 0 1rem;
	aspect-ratio: 4 / 5;
	overflow: hidden;
}

.lf-project-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lf-project-card__type {
	margin: 0 0 0.4rem;
	font-size: var(--lf-fs-xs);
	font-weight: 650;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--lf-walnut);
}

.lf-project-card__title {
	margin: 0 0 0.3rem;
	font-size: var(--lf-fs-lg);
}

.lf-project-card__place {
	margin: 0;
	color: var(--lf-muted);
	font-size: var(--lf-fs-sm);
}

/* Busca */
.lf-search {
	display: flex;
	max-width: 32rem;
	border-bottom: 1px solid var(--lf-ink);
}

.lf-search input {
	flex: 1;
	min-width: 0;
	padding: 0.9rem 0;
	border: 0;
	background: transparent;
	font: inherit;
	color: inherit;
}

.lf-search input:focus {
	outline: none;
}

.lf-search:focus-within {
	border-bottom-color: var(--lf-copper);
	box-shadow: 0 1px 0 var(--lf-copper);
}

.lf-search__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	border: 0;
	background: none;
	color: var(--lf-ink);
	cursor: pointer;
}

.lf-search-again {
	margin-bottom: 3rem;
}

.lf-search-results {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--lf-line);
}

.lf-search-results a {
	display: grid;
	gap: 0.35rem;
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--lf-line);
	color: inherit;
	text-decoration: none;
}

.lf-search-results__type {
	font-size: var(--lf-fs-xs);
	font-weight: 650;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--lf-walnut);
}

.lf-search-results__title {
	font-family: var(--lf-font-display);
	font-size: var(--lf-fs-lg);
}

.lf-search-results__excerpt {
	color: var(--lf-muted);
	font-size: var(--lf-fs-sm);
}

/* 404 */
.lf-404 {
	padding: clamp(4rem, 2rem + 8vw, 10rem) var(--lf-gutter);
}

.lf-404__inner {
	max-width: var(--lf-container);
	margin-inline: auto;
}

.lf-404__title {
	max-width: 14ch;
	font-size: var(--lf-fs-display);
	font-weight: 320;
	letter-spacing: -0.03em;
}

.lf-404__text {
	max-width: 34rem;
	font-size: var(--lf-fs-md);
	color: var(--lf-muted);
}

.lf-404__search {
	margin-top: 3.5rem;
}

/* 20. Contato ------------------------------------------------------------- */
.lf-contact {
	display: grid;
	gap: var(--lf-gap);
}

.lf-contact__list {
	margin: 0;
	border-top: 1px solid var(--lf-line);
}

.lf-contact__list > div {
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--lf-line);
}

.lf-contact__list dt {
	margin-bottom: 0.3rem;
	font-size: var(--lf-fs-xs);
	font-weight: 650;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--lf-walnut);
}

.lf-contact__list dd {
	margin: 0;
	font-family: var(--lf-font-display);
	font-size: var(--lf-fs-lg);
	line-height: 1.3;
}

.lf-contact__list dd a {
	color: var(--lf-ink);
	text-decoration: none;
}

.lf-contact__list dd a:hover {
	color: var(--lf-espresso);
}

.lf-contact__direct {
	margin-top: 2rem;
}

.lf-form {
	display: grid;
	gap: 1.25rem;
	padding: clamp(1.5rem, 1rem + 2vw, 3rem);
	background: var(--lf-sand);
}

.lf-form__intro {
	margin: 0 0 0.5rem;
	color: var(--lf-muted);
}

.lf-form__row {
	display: grid;
	gap: 0.45rem;
}

.lf-form label {
	font-size: var(--lf-fs-sm);
	font-weight: 600;
}

.lf-form input,
.lf-form select,
.lf-form textarea {
	width: 100%;
	min-height: 3.1rem;
	padding: 0.8rem 0.95rem;
	border: 1px solid var(--lf-line);
	border-radius: var(--lf-radius);
	background: var(--lf-paper);
	color: var(--lf-ink);
	font: inherit;
	font-size: 1rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.lf-form textarea {
	resize: vertical;
	min-height: 7.5rem;
}

.lf-form :is(input, select, textarea):focus {
	outline: none;
	border-color: var(--lf-copper);
	box-shadow: 0 0 0 3px rgb(185 110 43 / 0.2);
}

.lf-form [aria-invalid="true"] {
	border-color: #a3321b;
}

.lf-form .lf-btn {
	justify-self: start;
	margin-top: 0.5rem;
}

.lf-form__note {
	margin: 0;
	font-size: var(--lf-fs-xs);
	color: var(--lf-muted);
}

.lf-form__error {
	margin: 0;
	color: #a3321b;
	font-weight: 600;
	font-size: var(--lf-fs-sm);
}

@media (min-width: 56em) {
	.lf-contact {
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		align-items: start;
		gap: clamp(3rem, 2rem + 4vw, 7rem);
	}
}

/* 21. Footer --------------------------------------------------------------- */
.lf-footer {
	background: var(--lf-paper-2);
	border-top: 1px solid var(--lf-line);
	padding: clamp(3.5rem, 2.5rem + 3vw, 6rem) var(--lf-gutter) 2.5rem;
	font-size: var(--lf-fs-sm);
}

.lf-footer__inner {
	display: grid;
	gap: 2.5rem var(--lf-gap);
	max-width: var(--lf-container);
	margin-inline: auto;
}

.lf-footer__logo .lf-logo__img {
	width: 10rem;
}

.lf-footer__about {
	max-width: 22rem;
	margin: 1.5rem 0 0;
	color: var(--lf-muted);
}

.lf-footer__title {
	margin: 0 0 1rem;
	font-family: var(--lf-font-body);
	font-size: var(--lf-fs-xs);
	font-weight: 650;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--lf-walnut);
}

.lf-footer__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.55rem;
}

.lf-footer__list a,
.lf-footer__area {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	color: var(--lf-ink);
	text-decoration: none;
	min-height: 1.75rem;
}

.lf-footer__list a:hover {
	color: var(--lf-espresso);
	text-decoration: underline;
}

.lf-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem 2rem;
	max-width: var(--lf-container);
	margin: clamp(3rem, 2rem + 3vw, 5rem) auto 0;
	padding-top: 1.75rem;
	border-top: 1px solid var(--lf-line);
	color: var(--lf-muted);
	font-size: var(--lf-fs-xs);
}

.lf-footer__bottom p {
	margin: 0;
}

.lf-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lf-footer__legal a {
	color: var(--lf-muted);
}

@media (min-width: 40em) {
	.lf-footer__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64em) {
	.lf-footer {
		padding-bottom: 2.5rem;
	}

	.lf-footer__inner {
		grid-template-columns: minmax(0, 4fr) repeat(3, minmax(0, 2.6fr));
	}
}

/* 22. Movimento ------------------------------------------------------------ */
.js .lf-will-reveal {
	opacity: 0;
	transform: translateY(1.5rem);
	transition: opacity 0.9s var(--lf-ease), transform 0.9s var(--lf-ease);
}

.js .lf-will-reveal.is-visible {
	opacity: 1;
	transform: none;
}

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

	html {
		scroll-behavior: auto;
	}
}

/* 23. Impressão ------------------------------------------------------------ */
@media print {
	.lf-header,
	.lf-footer,
	.lf-cta-band,
	.lf-related-posts,
	.lf-related-services {
		display: none !important;
	}
}
