/* ==========================================================================
   Móveis Teixeira — tema-filho do blueprint Valente
   Tokens e regras em sites/teixeira/DESIGN.md. Nada de hex fora deste bloco.
   Movimento: só transform / opacity / clip-path (CLS 0). Celular primeiro nas
   decisões; efeito de rolagem só ≥ 900 px e sem "reduzir movimento".
   ========================================================================== */

:root {
	--tx-cal: #F3F2EE;
	--tx-branco: #FFFFFF;
	--tx-salvia: #DCE4DD;
	--tx-grafite: #171A18;
	--tx-verde: #33613C;
	--tx-mata: #1D3524;
	--tx-vermelho: #AA2C2D;
	--tx-vermelho-fundo: #8E2223;
	--tx-aco: #5C625E;
	--tx-aco-claro: #A7ADA9;
	--tx-wa: #1F8F4E;

	--tx-fio: rgba(23, 26, 24, .14);
	--tx-fio-claro: rgba(243, 242, 238, .18);
	--tx-fonte: 'Archivo', 'Archivo Reserva', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--tx-gutter: clamp(16px, 4vw, 48px);
	--tx-largo: 1320px;
	--tx-secao: clamp(72px, 9vw, 144px);
	--tx-topo-h: 76px;
	--tx-dobra-raio: clamp(48px, 7vw, 120px);
	--tx-entra: cubic-bezier(.2, .7, .1, 1);
	--tx-troca: cubic-bezier(.6, 0, .2, 1);

	/* tokens do pai apontando para os nossos (formulários, consent, breadcrumb do blueprint) */
	--vl-primaria: var(--tx-verde);
	--vl-primaria-escura: var(--tx-mata);
	--vl-acento: var(--tx-verde);
	--vl-escuro: var(--tx-grafite);
	--vl-cinza: var(--tx-aco);
	--vl-claro: var(--tx-cal);
	--vl-raio: 0;
	--vl-sombra: none;
}

/* ---------------------------------------------------------------- base -- */

html { scroll-padding-top: calc(var(--tx-topo-h) + 16px); }
body.teixeira { background: var(--tx-cal); color: var(--tx-grafite); font-family: var(--tx-fonte); font-size: 1.0625rem; line-height: 1.6; font-variant-numeric: lining-nums; -webkit-font-smoothing: antialiased; }
.teixeira h1, .teixeira h2, .teixeira h3, .teixeira h4 { font-family: var(--tx-fonte); color: inherit; font-weight: 600; text-wrap: balance; }
.teixeira h1 { font-stretch: 118%; letter-spacing: -.025em; line-height: 1; }
.teixeira h2 { font-stretch: 112%; letter-spacing: -.02em; line-height: 1.06; font-size: clamp(1.75rem, 1.3rem + 1.9vw, 3rem); }
.teixeira h3 { font-stretch: 106%; letter-spacing: -.01em; line-height: 1.18; font-size: clamp(1.25rem, 1.1rem + .6vw, 1.625rem); }
.teixeira p { text-wrap: pretty; }
.teixeira a { color: var(--tx-verde); text-underline-offset: .18em; }
.teixeira a:hover { color: var(--tx-grafite); }
.teixeira img { max-width: 100%; height: auto; }
.teixeira :focus-visible { outline: 2px solid var(--tx-verde); outline-offset: 2px; }
.tx-escuro :focus-visible { outline-color: var(--tx-cal); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.tx-container { width: min(100% - 2 * var(--tx-gutter), var(--tx-largo)); margin-inline: auto; }
.tx-main { display: block; }

/* WordPress põe margem entre filhos de grupo "flow"; aqui o espaço é do desenho. */
.tx-pagina :where(.is-layout-flow) > *, .tx-pagina :where(.wp-block-group) > * { margin-block: 0; }

/* Seção: grade com sangria — filho comum fica no miolo de 1320 px. */
.tx-secao, .tx-topo-pagina, .tx-abertura {
	display: grid;
	grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, var(--tx-largo)) minmax(var(--tx-gutter), 1fr);
	position: relative;
}
.tx-secao > *, .tx-topo-pagina > *, .tx-abertura > * { grid-column: 2; }
.tx-secao { padding-block: var(--tx-secao); }
.tx-escuro { background: var(--tx-mata); color: var(--tx-cal); }
.tx-escuro a { color: var(--tx-cal); }
.tx-salvia { background: var(--tx-salvia); }

/* Sobretítulo com a marca da dobra (três traços: vermelho, verde, aço). */
.tx-sobre { display: flex; align-items: center; gap: 12px; font-size: .75rem; font-weight: 600; font-stretch: 125%; letter-spacing: .14em; text-transform: uppercase; color: var(--tx-aco); margin: 0 0 18px; }
.tx-escuro .tx-sobre { color: var(--tx-aco-claro); }
.tx-sobre::before, .tx-marca-dobra { content: ""; flex: none; width: 22px; height: 11px; background: linear-gradient(var(--tx-vermelho) 0 3px, transparent 3px 4px, var(--tx-verde) 4px 7px, transparent 7px 8px, var(--tx-aco-claro) 8px 11px); }
.tx-sobre .tx-marca-dobra { display: none; }
.tx-marca-dobra { display: inline-block; }
.tx-lead { font-size: clamp(1.0625rem, 1rem + .35vw, 1.3125rem); line-height: 1.55; color: var(--tx-aco); max-width: 58ch; }
.tx-escuro .tx-lead { color: var(--tx-salvia); }
.tx-h-gigante { font-size: clamp(2.75rem, 1.5rem + 4.4vw, 5.5rem) !important; line-height: .94 !important; letter-spacing: -.035em !important; }
.tx-h-enorme { font-size: clamp(2.25rem, 1.5rem + 3.2vw, 4.5rem) !important; }
.tx-titulo-pagina { font-size: clamp(2.25rem, 1.5rem + 3.2vw, 4.5rem); margin: 0; }

/* ------------------------------------------------------------ botões -- */

.tx-btn, .tx-pagina .wp-block-button__link, .teixeira .vl-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px;
	font-family: var(--tx-fonte); font-size: .8125rem; font-weight: 600; font-stretch: 125%; letter-spacing: .1em; text-transform: uppercase; line-height: 1.2;
	border-radius: 0; border: 1px solid transparent; text-decoration: none !important; cursor: pointer; position: relative; overflow: hidden; isolation: isolate;
	transition: background-color .25s var(--tx-entra), color .25s var(--tx-entra), border-color .25s var(--tx-entra);
}
.tx-btn .tx-ico { transition: transform .3s var(--tx-entra); }
.tx-btn:hover .tx-ico:last-child { transform: translateX(4px); }
.tx-btn-principal, .tx-pagina .tx-btn-principal .wp-block-button__link, .teixeira .vl-btn-primario, .teixeira .vl-form button[type=submit] {
	background: var(--tx-vermelho) !important; color: var(--tx-branco) !important; border-color: var(--tx-vermelho) !important;
}
.tx-btn-principal:hover, .tx-pagina .tx-btn-principal .wp-block-button__link:hover, .teixeira .vl-btn-primario:hover, .teixeira .vl-form button[type=submit]:hover { background: var(--tx-vermelho-fundo) !important; border-color: var(--tx-vermelho-fundo) !important; color: var(--tx-branco) !important; }
/* o brilho que passa uma vez no hover */
.tx-btn-principal::after, .tx-pagina .tx-btn-principal .wp-block-button__link::after, .teixeira .vl-form button[type=submit]::after {
	content: ""; position: absolute; inset: 0 auto 0 -60%; width: 45%; z-index: -1;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .28), transparent); transform: skewX(-18deg); transition: none;
}
.tx-btn-principal:hover::after, .tx-pagina .tx-btn-principal .wp-block-button__link:hover::after, .teixeira .vl-form button[type=submit]:hover::after { left: 120%; transition: left .7s var(--tx-entra); }
.tx-btn-contorno, .tx-pagina .tx-btn-contorno .wp-block-button__link, .teixeira .vl-btn-secundario { background: transparent !important; color: var(--tx-grafite) !important; border-color: var(--tx-grafite) !important; }
.tx-btn-contorno:hover, .tx-pagina .tx-btn-contorno .wp-block-button__link:hover, .teixeira .vl-btn-secundario:hover { background: var(--tx-grafite) !important; color: var(--tx-cal) !important; }
.tx-escuro .tx-btn-contorno .wp-block-button__link, .tx-btn-contorno-claro { background: transparent !important; color: var(--tx-cal) !important; border: 1px solid var(--tx-cal) !important; }
.tx-escuro .tx-btn-contorno .wp-block-button__link:hover, .tx-btn-contorno-claro:hover { background: var(--tx-cal) !important; color: var(--tx-mata) !important; }
.tx-pagina .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.tx-acoes { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; margin-top: 32px !important; }
.tx-acoes .wp-block-button { flex: none; width: auto; margin: 0; }

/* link de ação: rótulo + seta, sublinhado que cresce */
.tx-link-acao, .tx-link-acao a { display: inline-flex; align-items: center; gap: 10px; font-size: .8125rem; font-weight: 600; font-stretch: 125%; letter-spacing: .1em; text-transform: uppercase; color: var(--tx-grafite); text-decoration: none; }
.tx-link-acao a, a.tx-link-acao { background: linear-gradient(currentColor, currentColor) 0 100% / 30% 1px no-repeat; padding-bottom: 4px; transition: background-size .35s var(--tx-entra); }
.tx-link-acao a::after { content: "→"; font-stretch: 100%; transition: transform .3s var(--tx-entra); }
.tx-link-acao a:hover, a.tx-link-acao:hover { background-size: 100% 1px; color: var(--tx-grafite); }
.tx-link-acao a:hover::after { transform: translateX(4px); }
.tx-escuro .tx-link-acao a { color: var(--tx-cal); }

/* ---------------------------------------------------------------- topo -- */

.tx-topo { position: sticky; top: 0; z-index: 100; background: color-mix(in srgb, var(--tx-cal) 92%, transparent); -webkit-backdrop-filter: saturate(140%) blur(12px); backdrop-filter: saturate(140%) blur(12px); border-bottom: 1px solid var(--tx-fio); }
.admin-bar .tx-topo { top: 32px; }
.tx-topo-inner { width: min(100% - 2 * var(--tx-gutter), 1440px); margin-inline: auto; height: var(--tx-topo-h); display: grid; grid-template-columns: auto 1fr auto; align-items: stretch; gap: 0; transition: height .3s var(--tx-entra); }
.tx-rolado .tx-topo-inner { height: 64px; }
.tx-topo-logo { display: flex; align-items: center; padding-right: 28px; border-right: 1px solid var(--tx-fio); }
.tx-topo-logo .custom-logo-link { display: block; flex: none; }
.tx-topo-logo img { height: 44px; width: auto; max-width: none; display: block; transition: height .3s var(--tx-entra); }
.tx-rolado .tx-topo-logo img { height: 38px; }
.tx-logo-texto { font-weight: 700; font-stretch: 118%; color: var(--tx-vermelho); text-decoration: none; }
.tx-nav { display: flex; align-items: stretch; justify-content: center; }
.tx-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: stretch; }
.tx-menu > li { position: relative; display: flex; }
.tx-menu > li > a { white-space: nowrap; display: flex; align-items: center; padding: 0 clamp(12px, 1.25vw, 20px); font-size: .75rem; font-weight: 600; font-stretch: 118%; letter-spacing: .1em; text-transform: uppercase; color: var(--tx-grafite); text-decoration: none; position: relative; border-right: 1px solid var(--tx-fio); background: none; border-radius: 0; }
.tx-menu > li:first-child > a { border-left: 1px solid var(--tx-fio); }
.tx-menu > li > a::after { content: ""; position: absolute; left: clamp(12px, 1.3vw, 22px); right: clamp(12px, 1.3vw, 22px); bottom: 14px; height: 7px; background: linear-gradient(var(--tx-vermelho) 0 2px, transparent 2px 3px, var(--tx-verde) 3px 5px, transparent 5px); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--tx-entra); }
.tx-menu > li > a:hover::after, .tx-menu > .current-menu-item > a::after, .tx-menu > .current-menu-ancestor > a::after, .tx-menu > .current-page-ancestor > a::after { transform: scaleX(1); }
.tx-menu > li > a:hover { color: var(--tx-grafite); background: none; }
.tx-menu .sub-menu { list-style: none; position: absolute; top: 100%; left: -1px; min-width: 240px; margin: 0; padding: 8px 0; background: var(--tx-cal); border: 1px solid var(--tx-fio); display: none; z-index: 5; box-shadow: none; border-radius: 0; }
.tx-menu li:hover > .sub-menu, .tx-menu li:focus-within > .sub-menu { display: block; }
.tx-menu .sub-menu a { display: block; padding: 12px 20px; font-size: .9375rem; color: var(--tx-grafite); text-decoration: none; border-radius: 0; }
.tx-menu .sub-menu a:hover { background: var(--tx-salvia); }
.tx-nav-extra { display: none; }
.tx-topo-acoes { display: flex; align-items: center; gap: 20px; padding-left: 24px; }
.tx-topo-pedidos, .tx-topo-rep, .tx-topo-cta { white-space: nowrap; }
.tx-topo-pedidos, .tx-topo-rep { font-size: .75rem; font-weight: 600; font-stretch: 125%; letter-spacing: .1em; text-transform: uppercase; color: var(--tx-grafite) !important; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.tx-topo-pedidos { color: var(--tx-aco) !important; }
.tx-topo-rep { display: none !important; }
.tx-topo-rep:hover { background-size: 100% 1px; }
.tx-topo-cta { min-height: 44px; padding: 0 18px; }
.tx-menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--tx-fio); background: transparent; cursor: pointer; padding: 0; position: relative; }
.tx-menu-toggle span { position: absolute; left: 12px; right: 12px; height: 2px; background: var(--tx-grafite); transition: transform .3s var(--tx-troca), top .3s var(--tx-troca); margin: 0; width: auto; border-radius: 0; }
.tx-menu-toggle span:first-child { top: 17px; }
.tx-menu-toggle span:last-child { top: 25px; }
.tx-menu-toggle[aria-expanded="true"] span:first-child { top: 21px; transform: rotate(45deg); }
.tx-menu-toggle[aria-expanded="true"] span:last-child { top: 21px; transform: rotate(-45deg); }

@media (max-width: 1279px) {
	.tx-topo-pedidos { display: none; }
	.tx-menu > li > a { padding: 0 12px; letter-spacing: .08em; }
}
@media (max-width: 1023px) {
	:root { --tx-topo-h: 64px; }
	.tx-topo-inner { grid-template-columns: 1fr auto; }
	.tx-topo-logo { border-right: 0; padding-right: 0; }
	.tx-topo-logo img, .tx-rolado .tx-topo-logo img { height: 34px; }
	.tx-topo-rep { display: none; }
	.tx-topo-acoes { gap: 10px; padding-left: 0; }
	.tx-topo-cta { min-height: 44px; padding: 0 14px; font-size: .75rem; letter-spacing: .06em; }
	.tx-menu-toggle { display: block; }
	.tx-nav { position: fixed; inset: var(--tx-topo-h) 0 0 0; z-index: 99; background: var(--tx-cal); display: flex; flex-direction: column; justify-content: flex-start; padding: 8px var(--tx-gutter) 32px; overflow-y: auto; visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity .3s var(--tx-entra), transform .3s var(--tx-entra), visibility 0s .3s; box-shadow: none; gap: 0; }
	.tx-nav.is-aberto { visibility: visible; opacity: 1; transform: none; transition: opacity .3s var(--tx-entra), transform .3s var(--tx-entra); }
	.tx-menu { flex-direction: column; }
	.tx-menu > li { flex-direction: column; border-bottom: 1px solid var(--tx-fio); }
	.tx-menu > li > a, .tx-menu > li:first-child > a { border: 0; padding: 16px 0; font-size: clamp(1.5rem, 1rem + 2.6vw, 2rem); font-weight: 600; font-stretch: 112%; letter-spacing: -.01em; text-transform: none; min-height: 44px; }
	.tx-menu > li > a::after { display: none; }
	.tx-menu .sub-menu { position: static; display: block; border: 0; background: none; padding: 0 0 12px; min-width: 0; }
	.tx-menu .sub-menu a { padding: 10px 0; font-size: 1.0625rem; color: var(--tx-aco); }
	.tx-nav-extra { display: flex; flex-direction: column; gap: 16px; padding-top: 28px; }
	.tx-nav-extra .tx-btn { width: 100%; }
	.tx-nav-pedidos { font-size: .8125rem; font-weight: 600; font-stretch: 125%; letter-spacing: .1em; text-transform: uppercase; color: var(--tx-grafite) !important; text-decoration: none; display: inline-flex; gap: 6px; align-items: center; min-height: 44px; }
	.tx-nav-contato { display: flex; flex-direction: column; gap: 4px; margin: 0; color: var(--tx-aco); }
	.tx-nav-contato a { color: var(--tx-aco); text-decoration: none; min-height: 32px; display: inline-flex; align-items: center; }
	html:has(.tx-nav.is-aberto) { overflow: hidden; }
}
@media (max-width: 380px) { .tx-topo-cta .tx-ico { display: none; } }

/* ------------------------------------------------------------- o fio --- */

@property --p-fio { syntax: '<number>'; inherits: true; initial-value: 1; }
.tx-fio { --s: 3px; --g: 3px; --r: clamp(36px, 4vw, 64px); --p-fio: 1; position: absolute; pointer-events: none; z-index: 0; grid-column: 1 / -1 !important;
	--fv: clamp(0, calc(var(--p-fio) * 1.8), 1); --fh: clamp(0, calc(var(--p-fio) * 1.8 - .8), 1);
	clip-path: inset(0 calc((1 - var(--fh)) * (100% - var(--r) - 12px)) calc((1 - var(--fv)) * 100%) 0);
	transition: --p-fio 2.2s var(--tx-troca); }
.tx-fio i { position: absolute; display: block; border-left: var(--s) solid; border-bottom: var(--s) solid; }
.tx-fio i:nth-child(1) { inset: 0 0 0 0; border-color: var(--tx-vermelho); border-bottom-left-radius: var(--r); }
.tx-fio i:nth-child(2) { inset: 0 0 calc(var(--s) + var(--g)) calc(var(--s) + var(--g)); border-color: var(--tx-verde); border-bottom-left-radius: calc(var(--r) - var(--s) - var(--g)); }
.tx-fio i:nth-child(3) { inset: 0 0 calc(2 * (var(--s) + var(--g))) calc(2 * (var(--s) + var(--g))); border-color: var(--tx-aco-claro); border-bottom-left-radius: calc(var(--r) - 2 * (var(--s) + var(--g))); }
.tx-escuro .tx-fio i:nth-child(3), .tx-rodape .tx-fio i:nth-child(3) { border-color: var(--tx-aco); }
.tx-fio-direita { transform: scaleX(-1); }
.tx-anima .tx-fio { --p-fio: 0; }
.tx-anima .tx-fio.is-visto, .tx-anima-fim .tx-fio { --p-fio: 1; }
@media (max-width: 599px) { .tx-fio { --s: 2px; --g: 2px; --r: 28px; } }

/* ----------------------------------------------------------- abertura -- */

.tx-abertura { min-height: calc(100svh - var(--tx-topo-h)); padding-block: clamp(32px, 5vw, 72px) clamp(56px, 7vw, 112px); overflow: clip; align-content: center; background: var(--tx-cal); }
.tx-abertura::before { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0; opacity: 0; transition: opacity .6s; background: radial-gradient(520px circle at var(--vl-mx, 50%) var(--vl-my, 50%), rgba(255, 255, 255, .85), transparent 65%); }
.tx-abertura.is-perto::before { opacity: 1; }
.tx-abertura > .tx-fio { top: 0; bottom: 24px; left: max(6px, calc((100vw - var(--tx-largo)) / 2 - 36px)); right: 0; }
.tx-abertura-grade, .tx-abertura > .tx-abertura-texto, .tx-abertura > .tx-abertura-camadas { position: relative; z-index: 1; }
.tx-abertura { grid-template-rows: auto; }
.tx-abertura-texto { grid-row: 1; align-self: center; max-width: min(620px, 45%); padding-block: 24px; }
.tx-abertura-texto h1 { margin: 0 0 24px; }
.tx-abertura-texto .tx-lead { margin: 0; }
.tx-abertura-camadas { grid-row: 1; justify-self: end; width: 51%; aspect-ratio: 1 / .96; position: relative; }
.tx-camada-fundo { position: absolute !important; inset: 0 0 12% 0; margin: 0 !important; overflow: hidden; border-radius: 0 0 0 var(--tx-dobra-raio); transform: translate3d(0, calc(var(--p, .5) * -6%), 0); will-change: transform; }
.tx-camada-fundo img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08) translate3d(0, calc((var(--p, .5) - .5) * 5%), 0); }
.tx-camada-frente { position: absolute !important; right: -4%; bottom: 0; width: 34%; margin: 0 !important; border: 10px solid var(--tx-cal); background: var(--tx-cal); transform: translate3d(0, calc((var(--p, .5) - .5) * -18%), 0); will-change: transform; }
.tx-camada-frente img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; display: block; }
.tx-abertura-camadas figcaption, .tx-legenda { font-size: .6875rem !important; font-weight: 600; font-stretch: 125%; letter-spacing: .12em; text-transform: uppercase; color: var(--tx-aco); margin: 10px 0 0 !important; text-align: left; }
.tx-camada-fundo figcaption { position: absolute; left: calc(var(--tx-dobra-raio) * .7); bottom: 14px; margin: 0 !important; background: var(--tx-cal); padding: 6px 10px; color: var(--tx-grafite); }
.tx-camada-frente figcaption { margin: 8px 0 0 !important; text-align: right; }
.tx-portas { display: flex; flex-wrap: wrap; gap: 0; margin: 40px 0 0 !important; border-top: 1px solid var(--tx-fio); max-width: 520px; }
.tx-portas a { flex: 1 1 200px; display: flex; flex-direction: column; gap: 2px; padding: 16px 20px 16px 0; text-decoration: none; color: var(--tx-aco); font-size: .9375rem; min-height: 44px; position: relative; }
.tx-portas a + a { padding-left: 20px; border-left: 1px solid var(--tx-fio); }
.tx-portas strong { color: var(--tx-grafite); font-size: .75rem; font-weight: 600; font-stretch: 125%; letter-spacing: .12em; text-transform: uppercase; }
.tx-portas a::after { content: "→"; position: absolute; right: 16px; top: 16px; color: var(--tx-vermelho); transition: transform .3s var(--tx-entra); }
.tx-portas a:hover::after { transform: translateX(4px); }
.tx-portas a:hover strong { color: var(--tx-vermelho); }
.tx-aviso-venda { display: flex; align-items: center; gap: 10px; font-size: .875rem; color: var(--tx-aco); margin: 18px 0 0 !important; }
.tx-aviso-venda::before { content: ""; width: 8px; height: 8px; background: var(--tx-vermelho); flex: none; }

@media (max-width: 899px) {
	.tx-abertura { min-height: 0; padding-block: 28px 64px; }
	.tx-abertura-texto { max-width: none; grid-row: 1; padding-block: 0; }
	.tx-abertura-camadas { grid-row: 2; width: 100%; justify-self: stretch; aspect-ratio: auto; margin-top: 40px; padding-bottom: 28%; }
	.tx-camada-fundo { position: relative !important; inset: auto; aspect-ratio: 4 / 3; transform: none; }
	.tx-camada-fundo img { transform: none; }
	.tx-camada-frente { left: auto; right: 0; bottom: 0; width: 42%; transform: none; border-width: 6px; }
	.tx-camada-fundo figcaption { left: 56px; right: auto; bottom: 10px; }
	.tx-portas { margin-top: 28px !important; }
}

/* ------------------------------------------------- revelação de texto -- */

.tx-w { display: inline-block; overflow: clip; overflow-clip-margin: .12em; vertical-align: bottom; padding-bottom: .04em; margin-bottom: -.04em; }
.tx-w > span { display: inline-block; }
.tx-anima .tx-revela .tx-w > span { transform: translate3d(0, 105%, 0); transition: transform .9s var(--tx-entra); transition-delay: calc(var(--i, 0) * 45ms); }
.tx-anima .tx-revela.is-visto .tx-w > span, .tx-anima-fim .tx-revela .tx-w > span { transform: none; }

/* frase grande: as palavras acendem conforme a seção rola */
.tx-frase { font-size: clamp(1.625rem, 1rem + 2.8vw, 3.5rem); font-weight: 500; font-stretch: 106%; letter-spacing: -.02em; line-height: 1.14; margin: 0; max-width: 26ch; }
@media (min-width: 900px) { .tx-manifesto > .tx-frase { margin-left: calc(var(--tx-largo) * .25) !important; } .tx-manifesto { padding-top: clamp(56px, 7vw, 112px); } }
.tx-frase .tx-w { overflow: visible; }
.tx-anima .tx-frase .tx-w > span { transform: none; transition: opacity .25s linear; opacity: clamp(.16, calc(var(--p-frase, 1) * (var(--n, 20) + 4) - var(--i, 0)), 1); }
.tx-anima-fim .tx-frase .tx-w > span { opacity: clamp(.16, calc(var(--p-frase, 1) * (var(--n, 20) + 4) - var(--i, 0)), 1); }

/* imagens que se abrem ao entrar (scroll-driven quando o navegador tem; senão o JS) */
.tx-anima .tx-revela-img .tx-card-img img, .tx-anima .tx-dobra-revela img { clip-path: inset(0 0 100% 0); transition: clip-path 1.1s var(--tx-entra); }
.tx-anima .tx-revela-img.is-visto .tx-card-img img, .tx-anima-fim .tx-revela-img .tx-card-img img { clip-path: inset(0 0 0 0); }

/* ---------------------------------------------------------- manifesto -- */

.tx-manifesto { row-gap: 0; }
.tx-manifesto > .tx-sobre { margin-bottom: 28px; }
.tx-manifesto .tx-numeros { margin-top: clamp(56px, 7vw, 104px) !important; }
.tx-numeros { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--tx-fio); }
.tx-numero { padding: 24px 20px 0 0; }
.tx-numero + .tx-numero { padding-left: 20px; border-left: 1px solid var(--tx-fio); }
.tx-numero dt { font-size: clamp(2.5rem, 1.6rem + 3vw, 4.5rem); font-weight: 600; font-stretch: 118%; letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; display: flex; align-items: baseline; gap: 6px; }
.tx-numero dt small { font-size: .9rem; font-weight: 600; font-stretch: 125%; letter-spacing: .1em; text-transform: uppercase; color: var(--tx-vermelho); }
.tx-numero dd { margin: 10px 0 0; color: var(--tx-aco); font-size: .9375rem; line-height: 1.4; }
.tx-numero:first-child dt { color: var(--tx-vermelho); }
.tx-escuro .tx-numeros { border-color: var(--tx-fio-claro); }
.tx-escuro .tx-numero + .tx-numero { border-color: var(--tx-fio-claro); }
.tx-escuro .tx-numero dd { color: var(--tx-salvia); }
.tx-so-numeros { padding-block: 0 var(--tx-secao); }
@media (max-width: 899px) {
	.tx-numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tx-numero, .tx-numero + .tx-numero { padding: 20px 12px 20px 0; border-left: 0; border-bottom: 1px solid var(--tx-fio); }
	.tx-numero:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--tx-fio); }
	.tx-numero:first-child { grid-column: 1 / -1; }
	.tx-numero:first-child + .tx-numero { padding-left: 0; border-left: 0; }
	.tx-numero:nth-child(3) { padding-left: 16px; border-left: 1px solid var(--tx-fio); }
	.tx-numero:nth-child(4) { padding-left: 0; border-left: 0; }
	.tx-numero:nth-child(5) { padding-left: 16px; border-left: 1px solid var(--tx-fio); }
}

/* ---------------------------------------------------- do tubo à mesa --- */

.tx-passos { background: var(--tx-branco); }
.tx-passos-cab { margin-bottom: clamp(40px, 5vw, 72px) !important; max-width: 760px; }
.tx-passos-cab h2 { margin: 0; }
.tx-passos-palco { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 96px); align-items: start; }
.tx-passos-fotos { position: sticky; top: calc(var(--tx-topo-h) + 32px); aspect-ratio: 4 / 3.3; max-height: calc(100svh - var(--tx-topo-h) - 64px); overflow: hidden; border-radius: 0 0 0 var(--tx-dobra-raio); background: var(--tx-cal); }
.tx-passo-foto { position: absolute !important; inset: 0; margin: 0 !important; opacity: 0; clip-path: inset(100% 0 0 0); transition: clip-path 1s var(--tx-troca), opacity 0s 1s; }
.tx-passo-foto img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 1.6s var(--tx-entra); }
.tx-passo-desenho { background: var(--tx-salvia); }
.tx-passo-desenho img { object-fit: contain; padding: 8%; mix-blend-mode: multiply; }
.tx-passos[data-ativo="0"] .tx-passo-foto:nth-child(1), .tx-passos[data-ativo="1"] .tx-passo-foto:nth-child(2), .tx-passos[data-ativo="2"] .tx-passo-foto:nth-child(3), .tx-passos[data-ativo="3"] .tx-passo-foto:nth-child(4) { opacity: 1; clip-path: inset(0 0 0 0); transition: clip-path 1s var(--tx-troca), opacity 0s; z-index: 2; }
.tx-passos[data-ativo="0"] .tx-passo-foto:nth-child(1) img, .tx-passos[data-ativo="1"] .tx-passo-foto:nth-child(2) img, .tx-passos[data-ativo="2"] .tx-passo-foto:nth-child(3) img, .tx-passos[data-ativo="3"] .tx-passo-foto:nth-child(4) img { transform: scale(1); }
.tx-passos:not([data-ativo]) .tx-passo-foto:first-child { opacity: 1; clip-path: none; }
.tx-passos-textos { position: relative; padding-left: 40px; }
.tx-passos-textos::before { content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 11px; background: linear-gradient(90deg, var(--tx-vermelho) 0 3px, transparent 3px 4px, var(--tx-verde) 4px 7px, transparent 7px 8px, var(--tx-aco-claro) 8px 11px); transform-origin: top; transform: scaleY(var(--p-passos, 1)); }
.tx-passo { min-height: 62svh; display: flex; flex-direction: column; justify-content: center; padding-block: 32px; opacity: .3; transition: opacity .5s var(--tx-entra); }
.tx-passo.is-ativo, .tx-passos:not([data-ativo]) .tx-passo { opacity: 1; }
.tx-passo:first-child { min-height: 44svh; justify-content: flex-start; }
.tx-passo:last-child { min-height: 50svh; }
.tx-passo h3 { margin: 0 0 12px; font-size: clamp(1.75rem, 1.3rem + 1.9vw, 3rem); font-stretch: 112%; }
.tx-passo p { margin: 0; color: var(--tx-aco); max-width: 44ch; font-size: 1.125rem; }
.tx-passo-n { font-size: .8125rem !important; font-weight: 600; font-stretch: 125%; letter-spacing: .14em; color: var(--tx-vermelho) !important; margin: 0 0 14px !important; font-variant-numeric: tabular-nums; }
@media (max-width: 899px) {
	.tx-passos-palco { grid-template-columns: 1fr; gap: 28px; }
	.tx-passos-fotos { position: relative; top: auto; aspect-ratio: auto; max-height: none; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; overflow: visible; border-radius: 0; background: none; counter-reset: f; }
	.tx-passo-foto { position: relative !important; opacity: 1 !important; clip-path: none !important; aspect-ratio: 1; counter-increment: f; }
	.tx-passo-foto:first-child { border-radius: 0 0 0 48px; overflow: hidden; }
	.tx-passo-foto::before { content: "0" counter(f); position: absolute; left: 8px; top: 8px; z-index: 2; background: var(--tx-cal); font-size: .6875rem; font-weight: 600; font-stretch: 125%; letter-spacing: .1em; padding: 3px 6px; color: var(--tx-vermelho); }
	.tx-passo-foto img { transform: none !important; }
	.tx-passos-textos { padding-left: 24px; }
	.tx-passo, .tx-passo:first-child, .tx-passo:last-child { min-height: 0; opacity: 1; padding-block: 18px; }
}

/* ---------------------------------------------------------- vitrine ---- */

.tx-secao-cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: clamp(32px, 4vw, 56px) !important; }
.tx-secao-cab > .tx-sobre { flex-basis: 100%; margin: 0 0 -4px; }
.tx-secao-cab h2 { margin: 0; max-width: 18ch; }
.tx-vitrine { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); }
.tx-vitrine .tx-card:nth-child(1) { grid-column: 1 / 8; grid-row: 1 / 3; }
.tx-vitrine .tx-card:nth-child(2) { grid-column: 8 / 13; }
.tx-vitrine .tx-card:nth-child(3) { grid-column: 8 / 13; }
.tx-vitrine .tx-card:nth-child(4) { grid-column: 1 / 6; }
.tx-vitrine .tx-card:nth-child(5) { grid-column: 6 / 13; }
.tx-vitrine .tx-card:nth-child(n+6) { grid-column: span 4; }
.tx-vitrine .tx-card-destaque .tx-card-img { aspect-ratio: 4 / 4.2; border-radius: 0 0 0 var(--tx-dobra-raio); }
.tx-vitrine .tx-card:nth-child(5) .tx-card-img { aspect-ratio: 16 / 9; }
@media (max-width: 899px) {
	.tx-vitrine { grid-template-columns: 1fr; gap: 0; }
	.tx-vitrine .tx-card:nth-child(n) { grid-column: 1; grid-row: auto; }
	.tx-vitrine .tx-card:nth-child(n+2) .tx-card-link { display: grid; grid-template-columns: 38% 1fr; gap: 16px; align-items: center; padding-block: 16px; border-bottom: 1px solid var(--tx-fio); }
	.tx-vitrine .tx-card:nth-child(n+2) .tx-card-img { aspect-ratio: 1 !important; }
	.tx-vitrine .tx-card:nth-child(n+2) .tx-card-corpo { padding: 0; }
	.tx-vitrine .tx-card:nth-child(n+2) .tx-card-ver { display: none; }
	.tx-vitrine .tx-card-destaque { margin-bottom: 8px; }
	.tx-vitrine .tx-card-destaque .tx-card-img { aspect-ratio: 4 / 3.4; border-radius: 0 0 0 56px; }
}

/* cartão de produto (catálogo, vitrine, relacionados) */
.tx-card { position: relative; transition: opacity .35s var(--tx-entra); }
.tx-card-link { display: block; color: inherit !important; text-decoration: none !important; height: 100%; }
.tx-card-img { display: block; overflow: hidden; aspect-ratio: 4 / 3; background: var(--tx-salvia); }
.tx-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .9s var(--tx-entra); }
.tx-card-link:hover .tx-card-img img { transform: scale(1.045); }
.tx-card-corpo { display: flex; flex-direction: column; gap: 4px; padding: 16px 0 4px; }
.tx-card-kicker { font-size: .6875rem; font-weight: 600; font-stretch: 125%; letter-spacing: .12em; text-transform: uppercase; color: var(--tx-verde); }
.tx-card-titulo { font-size: clamp(1.0625rem, 1rem + .35vw, 1.3125rem); font-weight: 600; font-stretch: 106%; letter-spacing: -.01em; line-height: 1.2; color: var(--tx-grafite); }
.tx-card-destaque .tx-card-titulo { font-size: clamp(1.375rem, 1.1rem + 1vw, 2rem); font-stretch: 112%; }
.tx-card-meta { font-size: .875rem; color: var(--tx-aco); }
.tx-card-cod { font-size: .75rem; color: var(--tx-aco); font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.tx-card-ver { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; font-size: .75rem; font-weight: 600; font-stretch: 125%; letter-spacing: .1em; text-transform: uppercase; color: var(--tx-grafite); opacity: 0; transform: translateY(4px); transition: opacity .3s var(--tx-entra), transform .3s var(--tx-entra); }
.tx-card-link:hover .tx-card-ver, .tx-card-link:focus-visible .tx-card-ver { opacity: 1; transform: none; }
@media (hover: none) { .tx-card-ver { opacity: 1; transform: none; } }
/* o cartão sob o mouse se destaca; os outros recuam */
@media (hover: hover) and (min-width: 900px) {
	.tx-vitrine:has(.tx-card:hover) .tx-card:not(:hover), .tx-grade-produtos:has(.tx-card:hover) .tx-card:not(:hover) { opacity: .55; }
}

/* ------------------------------------------------------------ linhas --- */

.tx-linhas-secao { overflow: clip; }
.tx-linhas-cab { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px 48px; align-items: end; margin-bottom: clamp(40px, 5vw, 64px) !important; }
.tx-linhas-cab .tx-sobre { grid-column: 1 / -1; margin: 0; }
.tx-linhas-cab h2 { margin: 0; }
.tx-linhas-cab p:not(.tx-sobre) { margin: 0; color: var(--tx-salvia); }
.tx-linhas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(24px, 4vw, 72px); border-top: 1px solid var(--tx-fio-claro); position: relative; }
.tx-linha { border-bottom: 1px solid var(--tx-fio-claro); }
.tx-linha a { display: grid; grid-template-columns: 2.6em 1fr auto; grid-template-areas: "n nome seta" "n info seta"; align-items: center; column-gap: 12px; padding: 18px 0; color: var(--tx-cal) !important; text-decoration: none !important; position: relative; min-height: 44px; }
.tx-linha-n { grid-area: n; font-size: .75rem; font-weight: 600; font-stretch: 125%; letter-spacing: .1em; color: var(--tx-aco-claro); font-variant-numeric: tabular-nums; }
.tx-linha-nome { grid-area: nome; font-size: clamp(1.5rem, 1rem + 2vw, 2.5rem); font-weight: 600; font-stretch: 118%; letter-spacing: -.02em; line-height: 1.05; transition: transform .45s var(--tx-entra), color .3s; }
.tx-linha-info { grid-area: info; font-size: .875rem; color: var(--tx-aco-claro); margin-top: 4px; }
.tx-linha-seta { grid-area: seta; opacity: .4; transition: transform .35s var(--tx-entra), opacity .3s; }
.tx-linha a:hover .tx-linha-nome { transform: translateX(10px); color: var(--tx-branco); }
.tx-linha a:hover .tx-linha-seta { opacity: 1; transform: translateX(4px); }
.tx-linha-previa { position: fixed; left: 0; top: 0; width: 280px; aspect-ratio: 4 / 3; pointer-events: none; z-index: 30; opacity: 0; clip-path: inset(50% 0 50% 0); transform: translate3d(var(--mx, -999px), var(--my, -999px), 0) translate(-50%, -110%); transition: opacity .25s, clip-path .45s var(--tx-entra); border-radius: 0 0 0 40px; overflow: hidden; }
.tx-linha-previa img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (hover: hover) and (pointer: fine) {
	.tx-linha a:hover .tx-linha-previa { opacity: 1; clip-path: inset(0 0 0 0); }
}
@media (hover: none), (pointer: coarse) { .tx-linha-previa { display: none; } }
@media (max-width: 899px) {
	.tx-linhas-cab { grid-template-columns: 1fr; }
	.tx-linhas { grid-template-columns: 1fr; }
	.tx-linha a { padding: 14px 0; }
}

/* ------------------------------------------------------------ fábrica -- */

.tx-fabrica { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, calc(var(--tx-largo) * .62)) minmax(0, calc(var(--tx-largo) * .38)) minmax(var(--tx-gutter), 1fr); align-items: center; column-gap: 0; }
.tx-fabrica-fotos { grid-column: 1 / 3 !important; position: relative; padding-bottom: 14%; }
.tx-fabrica-grande { margin: 0 !important; overflow: hidden; border-radius: 0 0 0 var(--tx-dobra-raio); }
.tx-fabrica-grande img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; transform: scale(1.06) translate3d(0, calc((var(--p, .5) - .5) * -4%), 0); }
.tx-fabrica-menor { position: absolute !important; right: -8%; bottom: 0; width: 40%; margin: 0 !important; border: 10px solid var(--tx-cal); transform: translate3d(0, calc((var(--p, .5) - .5) * -22%), 0); }
.tx-fabrica-menor img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; display: block; }
.tx-fabrica-texto { grid-column: 3 !important; padding-left: clamp(48px, 9vw, 160px); position: relative; z-index: 1; }
.tx-fabrica-texto h2 { margin: 0 0 20px; }
.tx-fabrica-texto p:not(.tx-sobre):not(.tx-link-acao) { color: var(--tx-aco); margin: 0 0 28px; }
@media (max-width: 899px) {
	.tx-fabrica { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, var(--tx-largo)) minmax(var(--tx-gutter), 1fr); }
	.tx-fabrica-fotos { grid-column: 1 / 3 !important; padding-bottom: 20%; margin-right: 0; }
	.tx-fabrica-menor { right: 0; width: 46%; border-width: 6px; transform: none; }
	.tx-fabrica-grande img { transform: none; }
	.tx-fabrica-texto { grid-column: 2 !important; padding: 40px 0 0; }
}

/* ------------------------------------------------------- como comprar -- */

.tx-como-passos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); position: relative; padding-top: 40px; }
.tx-como-passos::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 11px; background: linear-gradient(var(--tx-vermelho) 0 3px, transparent 3px 4px, var(--tx-verde) 4px 7px, transparent 7px 8px, var(--tx-aco-claro) 8px 11px); transform-origin: left; transform: scaleX(var(--p-linha, 1)); }
.tx-como-passo h3 { margin: 0 0 10px; }
.tx-como-passo p:not(.tx-passo-n) { margin: 0; color: var(--tx-aco); }
.tx-como .tx-acoes { margin-top: 48px !important; }
@media (max-width: 899px) {
	.tx-como-passos { grid-template-columns: 1fr; padding-top: 0; padding-left: 28px; gap: 28px; }
	.tx-como-passos::before { right: auto; bottom: 0; width: 11px; height: auto; background: linear-gradient(90deg, var(--tx-vermelho) 0 3px, transparent 3px 4px, var(--tx-verde) 4px 7px, transparent 7px 8px, var(--tx-aco-claro) 8px 11px); transform: none; }
}

/* --------------------------------------------- representantes (mapa) -- */

.tx-rep-chamada { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, calc(var(--tx-largo) / 2)) minmax(0, calc(var(--tx-largo) / 2)) minmax(var(--tx-gutter), 1fr); align-items: center; background: var(--tx-salvia); }
.tx-rep-chamada-texto { grid-column: 2 !important; padding-right: clamp(24px, 5vw, 80px); }
.tx-rep-chamada-texto h2 { margin: 0 0 18px; }
.tx-rep-chamada-texto p:not(.tx-sobre) { color: var(--tx-grafite); margin: 0; max-width: 46ch; }
.tx-rep-chamada .tx-reps { grid-column: 3 !important; }
@media (max-width: 899px) {
	.tx-rep-chamada { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, var(--tx-largo)) minmax(var(--tx-gutter), 1fr); }
	.tx-rep-chamada-texto, .tx-rep-chamada .tx-reps { grid-column: 2 !important; padding: 0; }
	.tx-rep-chamada .tx-reps { margin-top: 32px !important; }
}

.tx-grade { --t: clamp(34px, 5.2vw, 58px); display: grid; grid-template-columns: repeat(7, var(--t)); grid-auto-rows: var(--t); gap: 4px; }
.tx-uf { grid-column: calc(var(--c) + 1); grid-row: calc(var(--l) + 1); display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: .75rem; font-weight: 600; font-stretch: 125%; letter-spacing: .06em; text-decoration: none !important; color: var(--tx-aco) !important; border: 1px solid var(--tx-fio); background: transparent; transition: background-color .25s, color .25s, transform .3s var(--tx-entra); line-height: 1; min-width: 44px; min-height: 44px; }
.tx-uf small { font-size: .625rem; font-weight: 500; letter-spacing: 0; margin-top: 3px; opacity: .8; }
.tx-uf.tem { background: var(--tx-verde); border-color: var(--tx-verde); color: var(--tx-cal) !important; }
.tx-uf:hover { transform: translateY(-3px); }
.tx-uf.tem:hover { background: var(--tx-mata); }
.tx-uf.is-ativo, .tx-uf.is-ativo:hover { background: var(--tx-vermelho); border-color: var(--tx-vermelho); color: var(--tx-branco) !important; }
.tx-reps-rotulo { font-size: .75rem; font-weight: 600; font-stretch: 125%; letter-spacing: .12em; text-transform: uppercase; color: var(--tx-aco); margin: 0 0 16px; }
.tx-reps-legenda { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; font-size: .8125rem; color: var(--tx-aco); margin: 16px 0 0; }
.tx-reps-legenda span { display: inline-block; width: 12px; height: 12px; border: 1px solid var(--tx-fio); margin-right: -10px; vertical-align: -1px; }
.tx-reps-legenda span.tem { background: var(--tx-verde); border-color: var(--tx-verde); }
.tx-reps-select { display: none; }
.tx-reps-select span { font-size: .75rem; font-weight: 600; font-stretch: 125%; letter-spacing: .12em; text-transform: uppercase; color: var(--tx-aco); }

.tx-reps:not(.is-compacto) { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.tx-reps:not(.is-compacto) .tx-reps-mapa { position: sticky; top: calc(var(--tx-topo-h) + 32px); }
.tx-reps-status { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.625rem); font-weight: 600; font-stretch: 112%; margin: 0 0 20px; padding-bottom: 16px; border-bottom: 1px solid var(--tx-fio); }
.tx-reps-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
.tx-rep { padding: 20px 0; border-bottom: 1px solid var(--tx-fio); }
.tx-rep[hidden] { display: none; }
.tx-rep-uf { font-size: .6875rem; font-weight: 600; font-stretch: 125%; letter-spacing: .1em; text-transform: uppercase; color: var(--tx-verde); margin: 0 0 6px; }
.tx-rep-nome { font-size: 1.125rem !important; margin: 0 0 2px !important; font-stretch: 106% !important; }
.tx-rep-empresa { font-size: .875rem; color: var(--tx-aco); margin: 0; }
.tx-rep-contatos { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.tx-rep-contatos a { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; color: var(--tx-grafite); text-decoration: none; font-variant-numeric: tabular-nums; }
.tx-rep-contatos a:hover { color: var(--tx-verde); }
.tx-rep-contatos .tx-rep-wa { color: var(--tx-wa); font-weight: 600; }
.tx-reps-vazio { padding: 28px; background: var(--tx-salvia); }
.tx-reps-vazio-titulo { font-size: 1.25rem; font-weight: 600; font-stretch: 112%; margin: 0 0 6px; }
.tx-reps-vazio .vl-form { background: transparent; padding: 16px 0 0; }
@media (max-width: 899px) {
	.tx-reps:not(.is-compacto) { grid-template-columns: 1fr; }
	.tx-reps:not(.is-compacto) .tx-reps-mapa { position: static; }
	.tx-reps-cards { grid-template-columns: 1fr; }
	.tx-grade { --t: clamp(38px, 10.6vw, 48px); gap: 3px; }
	.tx-reps-select { display: flex; flex-direction: column; gap: 6px; margin-top: 20px; }
	.tx-reps-select select { min-height: 48px; }
}

/* ----------------------------------------------------------- catálogo -- */

.tx-catalogo-faixa { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, calc(var(--tx-largo) * .42)) minmax(0, calc(var(--tx-largo) * .58)) minmax(var(--tx-gutter), 1fr); align-items: center; overflow: clip; }
.tx-catalogo-capa { grid-column: 2 !important; perspective: 1200px; }
.tx-catalogo-img { margin: 0 !important; transform: rotateY(calc(var(--rx, 0) * 1deg)) rotateX(calc(var(--ry, 0) * 1deg)); transition: transform .5s var(--tx-entra); }
.tx-catalogo-img img { width: 100%; max-width: 460px; display: block; margin-inline: auto; }
.tx-catalogo-texto { grid-column: 3 !important; padding-left: clamp(32px, 6vw, 112px); }
.tx-catalogo-texto h2 { margin: 0 0 16px; }
.tx-catalogo-texto > p:not(.tx-sobre) { color: var(--tx-salvia); margin: 0 0 28px; max-width: 52ch; }
.tx-catalogo-faixa .vl-catalogo-foto, .tx-catalogo-faixa .vl-catalogo-texto { display: none; }
.tx-catalogo-faixa .vl-catalogo { display: block; }
.tx-catalogo-faixa .vl-form-titulo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.tx-catalogo-img img { filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .35)); }
@media (max-width: 899px) {
	.tx-catalogo-faixa { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, var(--tx-largo)) minmax(var(--tx-gutter), 1fr); }
	.tx-catalogo-capa, .tx-catalogo-texto { grid-column: 2 !important; padding: 0; }
	.tx-catalogo-img img { max-width: 260px; }
	.tx-catalogo-texto { margin-top: 24px !important; }
}

/* ------------------------------------------------------- formulários --- */

.teixeira .vl-form { background: transparent; padding: 0; max-width: none; margin: 0; border-radius: 0; }
.teixeira .vl-form-titulo { font-size: 1.125rem; font-weight: 600; font-stretch: 112%; margin: 0 0 20px; }
.teixeira .vl-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; align-items: end; }
.teixeira .vl-form-campo { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.teixeira .vl-form-campo label { font-size: .6875rem; font-weight: 600; font-stretch: 125%; letter-spacing: .12em; text-transform: uppercase; color: var(--tx-aco); }
.teixeira .vl-req { color: var(--tx-vermelho); }
.teixeira .vl-form input[type=text], .teixeira .vl-form input[type=email], .teixeira .vl-form input[type=tel], .teixeira .vl-form textarea, .teixeira .vl-form select {
	min-height: 52px; border: 0; border-bottom: 1px solid var(--tx-grafite); border-radius: 0; background: var(--tx-branco); padding: 12px 14px; font: inherit; font-size: 1rem; color: var(--tx-grafite); box-shadow: none; width: 100%;
}
.teixeira .vl-form textarea { min-height: 120px; resize: vertical; }
.teixeira .vl-form input:focus, .teixeira .vl-form textarea:focus, .teixeira .vl-form select:focus { outline: 2px solid var(--tx-verde); outline-offset: 0; border-color: var(--tx-verde); box-shadow: none; }
.teixeira .vl-form input[type=file] { border: 1px dashed var(--tx-aco); background: var(--tx-branco); border-radius: 0; min-height: 52px; }
.teixeira .vl-form-lgpd { font-size: .875rem; color: var(--tx-aco); margin: 20px 0; }
.teixeira .vl-form-lgpd label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.teixeira .vl-form-lgpd input { width: 20px; height: 20px; margin-top: 1px; accent-color: var(--tx-verde); flex: none; }
.teixeira .vl-form-acao button { width: auto; }
.teixeira .vl-form-produto { font-size: .9375rem; }
.teixeira .vl-form-ok { background: var(--tx-salvia); border: 0; border-left: 4px solid var(--tx-verde); border-radius: 0; color: var(--tx-grafite); padding: 20px; }
.teixeira .vl-form-ok .vl-btn { margin-top: 8px; }
.teixeira .vl-form-erro { border-radius: 0; }
.tx-escuro .vl-form-titulo { color: var(--tx-cal); }
.tx-escuro .vl-form-campo label, .tx-escuro .vl-form-lgpd { color: var(--tx-salvia); }
.tx-escuro .vl-form input[type=text], .tx-escuro .vl-form input[type=email], .tx-escuro .vl-form input[type=tel], .tx-escuro .vl-form textarea, .tx-escuro .vl-form select { background: rgba(243, 242, 238, .08); color: var(--tx-cal); border-bottom-color: var(--tx-salvia); }
.tx-escuro .vl-form input:focus { outline-color: var(--tx-cal); }
.tx-escuro .vl-form-lgpd a { color: var(--tx-cal); }
.tx-escuro .vl-form-lgpd input { accent-color: var(--tx-salvia); }
.tx-escuro .vl-form-ok { color: var(--tx-grafite); }
@media (max-width: 599px) {
	.teixeira .vl-form-grid { grid-template-columns: 1fr; }
	.teixeira .vl-form-acao button { width: 100%; }
}

/* seções com formulário */
.tx-form-secao, .tx-onde, .tx-seja-rep { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, calc(var(--tx-largo) * .4)) minmax(0, calc(var(--tx-largo) * .6)) minmax(var(--tx-gutter), 1fr); align-items: start; }
.tx-form-secao > .tx-form-secao-texto, .tx-onde > .tx-onde-texto, .tx-seja-rep > .tx-seja-rep-texto { grid-column: 2 !important; padding-right: clamp(24px, 5vw, 80px); position: sticky; top: calc(var(--tx-topo-h) + 32px); }
.tx-form-secao > .vl-form, .tx-onde > .vl-form, .tx-seja-rep > .vl-form { grid-column: 3 !important; }
.tx-form-secao h2, .tx-onde h2, .tx-seja-rep h2 { margin: 0 0 16px; }
.tx-form-secao-texto p:not(.tx-sobre), .tx-onde-texto p:not(.tx-sobre), .tx-seja-rep-texto p:not(.tx-sobre) { margin: 0; color: var(--tx-grafite); }
.tx-salvia .vl-form-campo label { color: var(--tx-grafite); }
@media (max-width: 899px) {
	.tx-form-secao, .tx-onde, .tx-seja-rep { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, var(--tx-largo)) minmax(var(--tx-gutter), 1fr); }
	.tx-form-secao > *, .tx-onde > *, .tx-seja-rep > * { grid-column: 2 !important; position: static !important; padding-right: 0 !important; }
	.tx-form-secao > .vl-form, .tx-onde > .vl-form, .tx-seja-rep > .vl-form { margin-top: 32px !important; }
}

/* contato */
.tx-contato-secao { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, calc(var(--tx-largo) * .58)) minmax(0, calc(var(--tx-largo) * .42)) minmax(var(--tx-gutter), 1fr); column-gap: 0; align-items: start; padding-top: clamp(48px, 6vw, 80px); }
.tx-contato-secao > .vl-form { grid-column: 2 !important; padding-right: clamp(32px, 6vw, 96px) !important; }
.tx-contato-secao > .tx-contato { grid-column: 3 !important; }
.tx-contato-lista { margin: 0; display: grid; gap: 0; }
.tx-contato-lista > div { display: grid; grid-template-columns: 9.5em 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--tx-fio); }
.tx-contato-lista > div:first-child { border-top: 1px solid var(--tx-fio); }
.tx-contato-lista dt { display: flex; align-items: center; gap: 10px; font-size: .6875rem; font-weight: 600; font-stretch: 125%; letter-spacing: .12em; text-transform: uppercase; color: var(--tx-aco); }
.tx-contato-lista dt .tx-ico { color: var(--tx-verde); flex: none; }
.tx-contato-lista dd { margin: 0; display: flex; flex-direction: column; gap: 2px; }
.tx-contato-lista dd a { color: var(--tx-grafite); text-decoration: none; font-variant-numeric: tabular-nums; min-height: 32px; display: inline-flex; align-items: center; }
.tx-contato-lista dd a:hover { color: var(--tx-verde); }
.tx-mapa { margin-top: 24px; aspect-ratio: 4 / 3; background: var(--tx-salvia); position: relative; border-radius: 0 0 0 56px; overflow: hidden; }
.tx-mapa-capa { width: 100%; height: 100%; border: 0; background: linear-gradient(var(--tx-fio) 1px, transparent 1px) 0 0 / 32px 32px, linear-gradient(90deg, var(--tx-fio) 1px, transparent 1px) 0 0 / 32px 32px, var(--tx-salvia); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; cursor: pointer; font: inherit; color: var(--tx-grafite); }
.tx-mapa-capa span { font-weight: 600; font-stretch: 112%; font-size: 1.0625rem; }
.tx-mapa-capa small { color: var(--tx-aco); font-size: .8125rem; }
.tx-mapa-capa .tx-ico { color: var(--tx-vermelho); }
.tx-mapa-capa:hover span { text-decoration: underline; }
.tx-mapa iframe { width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 899px) {
	.tx-contato-secao { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, var(--tx-largo)) minmax(var(--tx-gutter), 1fr); }
	.tx-contato-secao > * { grid-column: 2 !important; padding-right: 0 !important; }
	.tx-contato-secao > .tx-contato { margin-top: 48px !important; }
	.tx-contato-lista > div { grid-template-columns: 1fr; gap: 6px; }
}

/* trabalhe conosco */
.tx-trabalhe { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, calc(var(--tx-largo) * .58)) minmax(0, calc(var(--tx-largo) * .42)) minmax(var(--tx-gutter), 1fr); align-items: start; padding-top: clamp(48px, 6vw, 80px); }
.tx-trabalhe > .vl-form { grid-column: 2 !important; padding-right: clamp(32px, 6vw, 96px) !important; }
.tx-trabalhe-lado { grid-column: 3 !important; }
.tx-trabalhe-lado figure { margin: 0 0 24px !important; overflow: hidden; }
.tx-trabalhe-lado .tx-mapa { display: none; }
@media (max-width: 899px) {
	.tx-trabalhe { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, var(--tx-largo)) minmax(var(--tx-gutter), 1fr); }
	.tx-trabalhe > * { grid-column: 2 !important; padding-right: 0 !important; }
	.tx-trabalhe-lado { margin-top: 48px !important; }
}

/* ----------------------------------------------------- topo de página -- */

.tx-topo-pagina { padding-block: clamp(56px, 8vw, 128px) clamp(40px, 5vw, 72px); border-bottom: 1px solid var(--tx-fio); overflow: clip; }
.tx-topo-pagina > .tx-fio { top: 0; bottom: -1px; left: 0; right: max(6px, calc((100vw - var(--tx-largo)) / 2 - 36px)); }
.tx-topo-pagina h1 { margin: 0 0 24px; max-width: 18ch; position: relative; z-index: 1; }
.tx-topo-pagina .tx-lead { margin: 0; position: relative; z-index: 1; }
.tx-topo-simples { padding-block: clamp(48px, 6vw, 96px) 32px; border-bottom: 1px solid var(--tx-fio); }
.tx-texto-longo { max-width: 760px; padding-block: 48px 96px; }
.tx-texto-longo h2 { font-size: 1.5rem; margin: 2em 0 .5em; }
.teixeira .vl-breadcrumb ol { font-size: .75rem; font-weight: 600; font-stretch: 125%; letter-spacing: .08em; text-transform: uppercase; color: var(--tx-aco); margin: 0 0 20px; }
.teixeira .vl-breadcrumb a { color: var(--tx-aco); text-decoration: none; }
.teixeira .vl-breadcrumb a:hover { color: var(--tx-grafite); }

/* sobre */
.tx-sobre-historia { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, calc(var(--tx-largo) * .56)) minmax(0, calc(var(--tx-largo) * .44)) minmax(var(--tx-gutter), 1fr); align-items: center; }
.tx-sobre-fotos { grid-column: 1 / 3 !important; position: relative; padding-bottom: 18%; }
.tx-sobre-foto-grande { margin: 0 !important; overflow: hidden; border-radius: 0 0 0 var(--tx-dobra-raio); }
.tx-sobre-foto-grande img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; transform: scale(1.06) translate3d(0, calc((var(--p, .5) - .5) * -4%), 0); }
.tx-sobre-foto-grande figcaption { position: absolute; left: calc(var(--tx-dobra-raio) + 8px); bottom: 12px; background: var(--tx-cal); padding: 6px 10px; margin: 0 !important; font-size: .6875rem; font-weight: 600; font-stretch: 125%; letter-spacing: .12em; text-transform: uppercase; }
.tx-sobre-foto-detalhe { position: absolute !important; right: 4%; bottom: 0; width: 30%; margin: 0 !important; border: 10px solid var(--tx-cal); transform: translate3d(0, calc((var(--p, .5) - .5) * -20%), 0); }
.tx-sobre-foto-detalhe img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; display: block; }
.tx-sobre-texto { grid-column: 3 !important; padding-left: clamp(32px, 6vw, 96px); }
.tx-sobre-texto h2 { margin: 0 0 20px; }
.tx-sobre-texto p:not(.tx-sobre) { color: var(--tx-aco); margin: 0 0 16px; }
@media (max-width: 899px) {
	.tx-sobre-historia { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, var(--tx-largo)) minmax(var(--tx-gutter), 1fr); }
	.tx-sobre-fotos { grid-column: 1 / 3 !important; padding-bottom: 26%; }
	.tx-sobre-foto-grande img, .tx-sobre-foto-detalhe { transform: none; }
	.tx-sobre-foto-detalhe { width: 38%; border-width: 6px; }
	.tx-sobre-texto { grid-column: 2 !important; padding: 40px 0 0; }
}

/* missão, visão, valores */
.tx-mvv { grid-template-columns: minmax(var(--tx-gutter), 1fr) repeat(3, minmax(0, calc(var(--tx-largo) / 3))) minmax(var(--tx-gutter), 1fr); }
.tx-mvv-item { grid-column: auto !important; padding: 24px 24px 0 0; border-top: 1px solid var(--tx-fio); }
.tx-mvv-item:nth-child(1) { grid-column: 2 !important; }
@media (max-width: 899px) { .tx-mvv { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, var(--tx-largo)) minmax(var(--tx-gutter), 1fr); } .tx-mvv-item { grid-column: 2 !important; } }

/* faq */
.tx-faq { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, calc(var(--tx-largo) * .36)) minmax(0, calc(var(--tx-largo) * .64)) minmax(var(--tx-gutter), 1fr); align-items: start; }
.tx-faq-cab { grid-column: 2 !important; position: sticky; top: calc(var(--tx-topo-h) + 32px); }
.tx-faq-cab h2 { margin: 0; }
.tx-faq-lista { grid-column: 3 !important; border-top: 1px solid var(--tx-fio); }
.tx-faq .wp-block-details { border-bottom: 1px solid var(--tx-fio); padding: 0; margin: 0 !important; }
.tx-faq summary { list-style: none; cursor: pointer; padding: 22px 48px 22px 0; font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); font-weight: 600; font-stretch: 106%; position: relative; min-height: 44px; }
.tx-faq summary::-webkit-details-marker { display: none; }
.tx-faq summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 16px; height: 16px; margin-top: -8px; background: linear-gradient(var(--tx-grafite), var(--tx-grafite)) center / 16px 1.5px no-repeat, linear-gradient(var(--tx-grafite), var(--tx-grafite)) center / 1.5px 16px no-repeat; transition: transform .35s var(--tx-entra); }
.tx-faq details[open] summary::after { transform: rotate(45deg); }
.tx-faq details p { margin: 0 0 24px; color: var(--tx-aco); max-width: 62ch; }
@media (max-width: 899px) {
	.tx-faq { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, var(--tx-largo)) minmax(var(--tx-gutter), 1fr); }
	.tx-faq-cab, .tx-faq-lista { grid-column: 2 !important; position: static; }
	.tx-faq-lista { margin-top: 28px !important; }
}

/* instagram */
.tx-insta { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, calc(var(--tx-largo) * .34)) minmax(0, calc(var(--tx-largo) * .66)) minmax(var(--tx-gutter), 1fr); align-items: center; padding-block: clamp(56px, 6vw, 96px); }
.tx-insta-texto { grid-column: 2 !important; padding-right: 32px; }
.tx-insta-texto h2 { margin: 0 0 12px; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem); }
.tx-insta-texto p:not(.tx-sobre):not(.tx-link-acao) { color: var(--tx-aco); margin: 0 0 20px; }
.tx-insta-fotos { grid-column: 3 !important; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; align-items: start; }
.tx-insta-fotos figure { margin: 0 !important; overflow: hidden; }
.tx-insta-fotos figure:nth-child(2) { margin-top: 48px !important; }
.tx-insta-fotos img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; display: block; transition: transform .9s var(--tx-entra); }
.tx-insta-fotos figure:hover img { transform: scale(1.05); }
@media (max-width: 899px) {
	.tx-insta { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, var(--tx-largo)) minmax(var(--tx-gutter), 1fr); }
	.tx-insta-texto, .tx-insta-fotos { grid-column: 2 !important; padding: 0; }
	.tx-insta-fotos { margin-top: 28px !important; gap: 8px; }
	.tx-insta-fotos figure:nth-child(2) { margin-top: 24px !important; }
}

/* texto + imagem genérico */
.tx-texto-imagem { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, calc(var(--tx-largo) / 2)) minmax(0, calc(var(--tx-largo) / 2)) minmax(var(--tx-gutter), 1fr); align-items: center; }
.tx-ti-texto { grid-column: 2 !important; padding-right: clamp(24px, 5vw, 80px); }
.tx-ti-foto { grid-column: 3 / 5 !important; }
.tx-ti-foto figure { margin: 0 !important; overflow: hidden; }
@media (max-width: 899px) { .tx-texto-imagem { grid-template-columns: minmax(var(--tx-gutter), 1fr) minmax(0, var(--tx-largo)) minmax(var(--tx-gutter), 1fr); } .tx-ti-texto, .tx-ti-foto { grid-column: 2 !important; padding: 0; } .tx-ti-foto { margin-top: 28px !important; } }

.tx-dobra { border-radius: 0 0 0 var(--tx-dobra-raio); overflow: hidden; }

/* ------------------------------------------------- página do catálogo -- */

.tx-topo-catalogo { padding-block: clamp(40px, 6vw, 96px) clamp(32px, 4vw, 56px); }
.tx-topo-catalogo-grade { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px 64px; align-items: end; }
.tx-topo-catalogo h1 { max-width: 16ch; }
.tx-topo-catalogo .tx-lead { margin: 0 0 20px; }
@media (max-width: 899px) { .tx-topo-catalogo-grade { grid-template-columns: 1fr; } }
.tx-filtros { position: sticky; top: var(--tx-topo-h); z-index: 50; background: color-mix(in srgb, var(--tx-cal) 94%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-block: 1px solid var(--tx-fio); }
.admin-bar .tx-filtros { top: calc(var(--tx-topo-h) + 32px); }
.tx-rolado .tx-filtros { top: 64px; }
.tx-filtros-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding-block: 12px; }
.tx-filtro-busca { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; background: var(--tx-branco); border-bottom: 1px solid var(--tx-grafite); flex: 0 1 260px; }
.tx-filtro-busca input { border: 0; background: none; font: inherit; font-size: .9375rem; min-width: 0; width: 100%; height: 42px; outline: none; }
.tx-filtro-busca:focus-within { outline: 2px solid var(--tx-verde); }
.tx-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.tx-chip { min-height: 44px; padding: 0 16px; border: 1px solid var(--tx-fio); background: transparent; font: inherit; font-size: .75rem; font-weight: 600; font-stretch: 125%; letter-spacing: .08em; text-transform: uppercase; color: var(--tx-grafite); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; transition: background-color .2s, color .2s, border-color .2s; }
.tx-chip small { font-weight: 500; color: var(--tx-aco); letter-spacing: 0; }
.tx-chip:hover { border-color: var(--tx-grafite); }
.tx-chip[aria-pressed="true"] { background: var(--tx-grafite); color: var(--tx-cal); border-color: var(--tx-grafite); }
.tx-chip[aria-pressed="true"] small { color: var(--tx-aco-claro); }
.tx-filtros-extra { display: flex; gap: 10px; flex-wrap: wrap; }
.tx-select { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding-left: 12px; border: 1px solid var(--tx-fio); background: var(--tx-branco); }
.tx-select span { font-size: .6875rem; font-weight: 600; font-stretch: 125%; letter-spacing: .1em; text-transform: uppercase; color: var(--tx-aco); }
.tx-select select { border: 0; background: transparent; font: inherit; font-size: .9375rem; min-height: 42px; padding: 0 10px 0 2px; color: var(--tx-grafite); cursor: pointer; }
.tx-filtros-mais { display: none; min-height: 44px; padding: 0 14px; border: 1px solid var(--tx-fio); background: transparent; font: inherit; font-size: .75rem; font-weight: 600; font-stretch: 125%; letter-spacing: .08em; text-transform: uppercase; align-items: center; gap: 8px; cursor: pointer; color: var(--tx-grafite); }
.tx-filtros-status { margin: 0 0 0 auto; font-size: .875rem; color: var(--tx-aco); font-variant-numeric: tabular-nums; }
.tx-grade-produtos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 3vw, 44px) clamp(16px, 2vw, 28px); padding-block: clamp(32px, 4vw, 56px) clamp(72px, 8vw, 120px); }
.tx-grade-produtos .tx-card[hidden] { display: none; }
.tx-grade-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); padding-block: 0; }
.tx-vazio { padding: 48px 0 96px; max-width: 560px; }
.tx-vazio-titulo { font-size: 1.5rem; font-weight: 600; font-stretch: 112%; margin: 0 0 8px; }
.tx-faixa-rep { background: var(--tx-mata); color: var(--tx-cal); }
.tx-faixa-rep-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; padding-block: 36px; }
.tx-faixa-rep-texto { margin: 0; font-size: clamp(1.0625rem, 1rem + .4vw, 1.375rem); }
.tx-faixa-rep-texto strong { font-weight: 600; font-stretch: 112%; display: block; font-size: 1.25em; }
@media (max-width: 1099px) { .tx-grade-produtos, .tx-grade-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 899px) {
	.tx-filtros-inner { gap: 10px; }
	.tx-filtro-busca { flex: 1 1 100%; }
	.tx-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--tx-gutter) * -1); padding-inline: var(--tx-gutter); flex: 1 1 100%; }
	.tx-chips::-webkit-scrollbar { display: none; }
	.tx-chip { flex: none; }
	.tx-filtros-mais { display: inline-flex; }
	.tx-filtros-extra { display: none; flex: 1 1 100%; }
	.tx-filtros-extra.is-aberto { display: flex; }
	.tx-select { flex: 1 1 100%; }
	.tx-select select { flex: 1; }
	.tx-filtros { position: static; }
}
@media (max-width: 599px) {
	.tx-grade-produtos, .tx-grade-4 { gap: 28px 12px; }
	.tx-card-titulo { font-size: 1rem; }
	.tx-card-cod { display: none; }
}

/* ---------------------------------------------------- página do produto */

.tx-trilha-produto { padding-top: 28px; }
.tx-produto { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 88px); align-items: start; padding-bottom: clamp(72px, 8vw, 120px); }
.tx-produto-principal { margin: 0; aspect-ratio: 4 / 3; background: var(--tx-salvia); overflow: hidden; }
.tx-produto-principal img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s var(--tx-entra), opacity .3s; }
.tx-produto-principal:hover img { transform: scale(1.06); }
.tx-produto-miniaturas { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 8px; }
.tx-produto-miniaturas button { display: block; width: 100%; aspect-ratio: 1; padding: 0; border: 1px solid transparent; background: var(--tx-salvia); cursor: pointer; overflow: hidden; opacity: .7; transition: opacity .2s, border-color .2s; }
.tx-produto-miniaturas button img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tx-produto-miniaturas button:hover, .tx-produto-miniaturas button.is-ativo { opacity: 1; border-color: var(--tx-grafite); }
.tx-produto-ficha { position: sticky; top: calc(var(--tx-topo-h) + 32px); }
.tx-produto-ficha .tx-sobre a { color: var(--tx-aco); text-decoration: none; }
.tx-produto-ficha .tx-sobre a:hover { color: var(--tx-grafite); }
.tx-produto-titulo { font-size: clamp(2rem, 1.4rem + 2.2vw, 3.25rem) !important; margin: 0 0 8px; }
.tx-produto-base { font-size: 1.125rem; color: var(--tx-aco); margin: 0 0 28px; }
.tx-variacoes { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; margin: 0 0 12px; }
.tx-variacoes caption { text-align: left; font-size: .6875rem; font-weight: 600; font-stretch: 125%; letter-spacing: .12em; text-transform: uppercase; color: var(--tx-aco); padding-bottom: 10px; }
.tx-variacoes th { text-align: left; font-size: .6875rem; font-weight: 600; font-stretch: 125%; letter-spacing: .1em; text-transform: uppercase; color: var(--tx-aco); padding: 10px 8px 10px 0; border-bottom: 1px solid var(--tx-grafite); }
.tx-variacoes td { padding: 14px 8px 14px 0; border-bottom: 1px solid var(--tx-fio); font-size: 1rem; }
.tx-variacoes .tx-cod { font-weight: 600; }
.tx-variacoes tbody tr { transition: background-color .2s; }
.tx-variacoes tbody tr:hover { background: var(--tx-branco); }
.tx-variacoes-texto { font-size: .8125rem; color: var(--tx-aco); margin: 0 0 24px; }
.tx-variacoes-texto summary { cursor: pointer; min-height: 32px; display: inline-flex; align-items: center; }
.tx-variacoes-texto ul { margin: 8px 0 0; padding-left: 18px; }
.tx-ficha { margin: 0 0 24px; display: grid; }
.tx-ficha > div { display: grid; grid-template-columns: 9em 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--tx-fio); }
.tx-ficha dt { font-size: .6875rem; font-weight: 600; font-stretch: 125%; letter-spacing: .1em; text-transform: uppercase; color: var(--tx-aco); }
.tx-ficha dd { margin: 0; }
.tx-produto-cod { margin: 0 0 24px; }
.tx-produto-acoes { display: flex; flex-direction: column; gap: 10px; margin: 28px 0 16px; }
.tx-produto-acoes .tx-btn { width: 100%; justify-content: space-between; }
.tx-produto-aviso { font-size: .875rem; color: var(--tx-aco); margin: 0; }
.tx-relacionados { background: var(--tx-branco); }
.tx-relacionados .tx-secao-cab h2 { max-width: none; }
.teixeira .vl-produto-midia { width: min(100% - 2 * var(--tx-gutter), var(--tx-largo)); margin-inline: auto; }
.teixeira .vl-video-leve .vl-video-capa, .teixeira .vl-video-leve iframe { border-radius: 0; }
@media (max-width: 899px) {
	.tx-produto { grid-template-columns: 1fr; }
	.tx-produto-ficha { position: static; }
	.tx-produto-principal { border-radius: 0 0 0 56px; }
	.tx-produto-miniaturas { grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); }
}

/* ------------------------------------------------------------ rodapé --- */

.tx-rodape { background: var(--tx-mata); color: var(--tx-salvia); position: relative; overflow: clip; padding-top: clamp(72px, 8vw, 128px); }
.tx-rodape > .tx-fio { left: max(6px, calc((100vw - var(--tx-largo)) / 2 - 36px)); right: 0; top: 0; height: clamp(40px, 5vw, 72px); }
.tx-rodape a { color: var(--tx-cal); text-decoration: none; }
.tx-rodape a:hover { color: var(--tx-branco); text-decoration: underline; }
.tx-rodape-inner { width: min(100% - 2 * var(--tx-gutter), var(--tx-largo)); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 4fr) repeat(3, minmax(0, 2.6fr)); gap: 40px; padding-bottom: 64px; position: relative; z-index: 1; }
.tx-rodape-logo { display: inline-block; }
.tx-rodape-logo img { width: clamp(180px, 18vw, 240px); height: auto; display: block; }
.tx-rodape-slogan { font-size: 1.375rem; font-weight: 600; font-stretch: 112%; color: var(--tx-cal); margin: 24px 0 8px; letter-spacing: -.01em; }
.tx-rodape-venda { margin: 0; font-size: .9375rem; max-width: 34ch; }
.tx-rodape-titulo { font-size: .6875rem; font-weight: 600; font-stretch: 125%; letter-spacing: .14em; text-transform: uppercase; color: var(--tx-aco-claro); margin: 0 0 16px; }
.tx-rodape-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.tx-rodape-col li { font-size: .9375rem; line-height: 1.5; }
.tx-rodape-col li a { display: inline-flex; min-height: 32px; align-items: center; }
.tx-rodape-redes { margin-top: 16px !important; flex-direction: row !important; flex-wrap: wrap; gap: 4px 16px !important; }
.tx-rodape-base { width: min(100% - 2 * var(--tx-gutter), var(--tx-largo)); margin-inline: auto; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 32px; padding: 24px 0 32px; border-top: 1px solid var(--tx-fio-claro); font-size: .8125rem; position: relative; z-index: 1; }
.tx-rodape-base p { margin: 0; }
.tx-rodape-base .vl-link-botao { background: none; border: 0; padding: 0; font: inherit; color: var(--tx-cal); cursor: pointer; text-decoration: underline; min-height: 32px; }
.tx-rodape .vl-credito a { color: var(--tx-aco-claro); }
@media (max-width: 1023px) { .tx-rodape-inner { grid-template-columns: 1fr 1fr; } .tx-rodape-marca { grid-column: 1 / -1; } }
@media (max-width: 599px) { .tx-rodape-inner { grid-template-columns: 1fr; gap: 32px; } }

/* --------------------------------------- aba do catálogo, WhatsApp, barra */

.tx-aba-catalogo { position: fixed; right: 0; top: 50%; z-index: 80; display: flex; align-items: center; gap: 10px; writing-mode: vertical-rl; transform: translate3d(100%, -50%, 0) rotate(180deg); padding: 18px 12px; background: var(--tx-vermelho); color: var(--tx-branco) !important; text-decoration: none !important; font-size: .6875rem; font-weight: 600; font-stretch: 125%; letter-spacing: .14em; text-transform: uppercase; transition: transform .45s var(--tx-entra), background-color .2s; }
.tx-aba-catalogo .tx-ico { transform: rotate(90deg); }
.tx-passou .tx-aba-catalogo { transform: translate3d(0, -50%, 0) rotate(180deg); }
.tx-aba-catalogo:hover { background: var(--tx-vermelho-fundo); color: var(--tx-branco); }
.tx-no-catalogo .tx-aba-catalogo { transform: translate3d(100%, -50%, 0) rotate(180deg); }
.teixeira .tx-wa { width: 56px; height: 56px; border-radius: 0; background: var(--tx-wa); color: var(--tx-branco); box-shadow: none; right: 20px; bottom: 20px; }
.teixeira .tx-wa:hover { transform: translateY(-3px); color: var(--tx-branco); }
.tx-barra { display: none; }
@media (max-width: 899px) {
	.tx-aba-catalogo, .teixeira .tx-wa { display: none; }
	.tx-barra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: grid; grid-template-columns: repeat(3, 1fr); background: var(--tx-cal); border-top: 1px solid var(--tx-fio); padding-bottom: env(safe-area-inset-bottom); transform: translate3d(0, 110%, 0); transition: transform .4s var(--tx-entra); }
	.tx-passou .tx-barra { transform: none; }
	.tx-barra a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 58px; color: var(--tx-grafite); text-decoration: none; font-size: .625rem; font-weight: 600; font-stretch: 125%; letter-spacing: .08em; text-transform: uppercase; }
	.tx-barra a + a { border-left: 1px solid var(--tx-fio); }
	.tx-barra a:first-child { background: var(--tx-vermelho); color: var(--tx-branco); }
	.tx-barra .tx-barra-wa { color: var(--tx-wa); }
	body.teixeira { padding-bottom: calc(58px + env(safe-area-inset-bottom)); }
}

/* ------------------------------------------------ consentimento (LGPD) -- */

.teixeira .vl-consent { justify-content: flex-start; right: auto; max-width: min(440px, calc(100vw - 32px)); }
.teixeira .vl-consent-caixa { border-radius: 0 !important; background: var(--tx-branco) !important; border: 1px solid var(--tx-fio); border-top: 3px solid var(--tx-verde); box-shadow: 0 18px 40px rgba(23, 26, 24, .14) !important; font-family: var(--tx-fonte); font-size: .875rem; padding: 18px 20px; }
.teixeira .vl-consent-titulo { font-family: var(--tx-fonte); font-weight: 600; font-stretch: 112%; font-size: 1rem; }
.teixeira .vl-consent-txt a, .teixeira .vl-consent-link { color: var(--tx-verde); }
.teixeira .vl-consent .vl-btn { min-height: 44px; padding: 0 16px; font-size: .75rem; }
.teixeira .vl-consent-flutuante { border-radius: 0; box-shadow: none; border-color: var(--tx-fio); }
@media (max-width: 899px) { .teixeira .vl-consent { left: 8px; bottom: calc(66px + env(safe-area-inset-bottom)); max-width: calc(100vw - 16px); } .teixeira .vl-consent-flutuante { bottom: calc(66px + env(safe-area-inset-bottom)); } }

/* ----------------------------------------------- barra de leitura (pai) */
.teixeira .vl-progresso { height: 3px; background: var(--tx-vermelho); }

/* --------------------------------------------------- 404 */
.tx-404 { padding-block: clamp(80px, 12vw, 180px); }
.tx-404 .tx-acoes { display: flex; }

/* ------------------------------------------------- menos movimento ---- */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.tx-camada-fundo, .tx-camada-frente, .tx-camada-fundo img, .tx-fabrica-grande img, .tx-fabrica-menor, .tx-sobre-foto-grande img, .tx-sobre-foto-detalhe, .tx-catalogo-img { transform: none !important; }
	.tx-fio path { stroke-dashoffset: 0 !important; }
	.tx-passo { opacity: 1 !important; }
}

/* ---- rodada 1 de correções (prints 1440/768/375) ---- */
@media (max-width: 1499px) { .tx-topo-pedidos { display: none; } }
.teixeira .vl-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.teixeira .vl-form input, .teixeira .vl-form select, .teixeira .vl-form textarea { min-width: 0; max-width: 100%; }
@media (max-width: 899px) {
	.tx-contato-secao > .vl-form, .tx-contato-secao > .tx-contato, .tx-form-secao > .vl-form, .tx-form-secao > .tx-form-secao-texto,
	.tx-onde > .vl-form, .tx-onde > .tx-onde-texto, .tx-seja-rep > .vl-form, .tx-seja-rep > .tx-seja-rep-texto,
	.tx-trabalhe > .vl-form, .tx-trabalhe > .tx-trabalhe-lado { grid-column: 2 !important; padding-right: 0 !important; position: static !important; }
}
@media (max-width: 599px) {
	.teixeira .vl-form-grid { grid-template-columns: minmax(0, 1fr); }
	.tx-acoes .wp-block-button, .tx-acoes .wp-block-button__link { width: 100%; }
	.tx-pagina .wp-block-button__link { white-space: normal; text-align: center; }
}
