/* ==========================================================================
   Lumina — folha única do tema.
   Valores 1:1 com o protótipo (design/Home Lumina.dc.html, handoff de 29/10/2026).
   Seletores globais com :where() (especificidade zero): nunca vencem as classes
   dos componentes. Desvios de propósito estão comentados com "≠ protótipo".
   ========================================================================== */

/* ---------- Fontes (auto-hospedadas: sem pedido ao Google, mais rápido e sem IP para terceiros) ---------- */
@font-face { font-family: "Marcellus"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fontes/marcellus-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 300 700; font-display: swap; src: url(../fontes/montserrat-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Montserrat"; font-style: italic; font-weight: 400 600; font-display: swap; src: url(../fontes/montserrat-italic.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---------- Tokens (design/tokens) ---------- */
:root {
	--olive-950: #2B3124; --olive-900: #343B2B; --olive-800: #3F4834; --olive-700: #4F5841; --olive-600: #5E6750;
	--sage-700: #5E6750; --sage-600: #858F6D; --sage-500: #8D9774; --sage-hover: #848E6C; --sage-mist: #A5AFA4; --sage-200: #CDD3C0; --sage-100: #E6E9DC;
	--cream-50: #FFFCF6; --cream-100: #FBF3E4; --cream-200: #F2EEDE;
	--charcoal: #231F20; --ink-700: #3C3A33; --ink-600: #57564C; --ink-400: #8A887C;
	--tinta: #1A1E15; --tinta-link: #1F2419;
	--brass-500: #A8895A;
	--libras: #6E7859;
	--wa: #25D366; --wa-hover: #1EBE5A;
	--font-display: "Marcellus", "Times New Roman", serif;
	--font-body: "Montserrat", "Helvetica Neue", Arial, sans-serif;
	--fs-h2: 50px; --ls-h2: -1.8px;
	--fs-body: 16px;
	--ease: cubic-bezier(.2, .7, .2, 1);
	--ease-fade: cubic-bezier(.4, 0, .2, 1);
	--ease-in-out: cubic-bezier(.65, 0, .35, 1);
	--sombra-card: 0 28px 50px -30px rgba(26, 30, 21, .55);
	--sombra-flutua: 0 30px 60px -30px rgba(43, 49, 36, .6);
	--arco: 1000px 1000px 8px 8px;
	--arco-mascara: radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1px));
}
@media (max-width: 1024px) { :root { --fs-h2: 40px; --ls-h2: -1.5px; --fs-body: 15px; } }
@media (max-width: 767px) { :root { --fs-h2: 35px; --ls-h2: -1.2px; } }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font-body); font-size: var(--fs-body); line-height: 1.7; font-weight: 400; color: var(--ink-600); background: var(--cream-50); overflow-x: clip; }
html.menu-aberto, html.janela-aberta { overflow: hidden; }
:where(h1, h2, h3, h4, h5, h6) { font-family: var(--font-display); font-weight: 400; color: var(--olive-800); margin: 0; line-height: 1.1; text-wrap: balance; }
:where(p) { margin: 0; text-wrap: pretty; }
:where(ul, ol, dl, dd) { margin: 0; padding: 0; list-style: none; }
:where(figure, blockquote) { margin: 0; }
:where(em) { font-style: italic; font-weight: 500; }
:where(a) { color: var(--olive-800); text-decoration: none; transition: color 160ms var(--ease); }
:where(a:hover) { color: var(--sage-700); }
:where(img, svg, video, iframe) { display: block; max-width: 100%; }
:where(button) { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
::selection { background: var(--sage-200); color: var(--olive-950); }
:focus-visible { outline: 3px solid rgba(141, 151, 116, .6); outline-offset: 2px; }
section[id] { scroll-margin-top: 90px; }
/* Sem content-visibility nas seções: com ele, a rolagem suave até uma âncora distante
   (menu › Contato) parava na altura estimada, 2 mil px antes do lugar. */
.lx-ic { flex-shrink: 0; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.lx-pular { position: absolute; left: 16px; top: -100px; z-index: 100; padding: 12px 20px; border-radius: 100px; background: var(--olive-600); color: var(--cream-100); font-size: 14px; font-weight: 600; }
.lx-pular:focus { top: 16px; color: var(--cream-100); }

.lx-container { max-width: 1400px; margin: 0 auto; padding: 0 24px; }
.lx-pilha { display: flex; flex-direction: column; gap: 22px; }
.lx-cab-centro { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 22px; }

/* Sobrancelha (eyebrow): brilho de 4 pontas + rótulo */
.lx-sobrancelha { display: inline-flex; align-items: center; gap: 12px; font-size: 12px; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: var(--sage-700); }
.lx-sobrancelha--tinta { color: var(--tinta); }
.lx-brilho { display: block; flex-shrink: 0; }

/* Títulos de seção */
.lx-h2 { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: var(--fs-h2); line-height: 1.08; letter-spacing: var(--ls-h2); color: var(--olive-800); text-wrap: balance; }
.lx-h2--tinta { color: var(--tinta); }
.lx-lead { margin: 0; font-size: 19px; line-height: 1.65; color: var(--ink-700); text-wrap: pretty; }

/* Botões em pílula com o círculo da seta */
.lx-btn { display: inline-flex; align-items: center; gap: 12px; height: 50px; padding: 0 6px 0 24px; border-radius: 100px; background: var(--olive-600); color: var(--cream-100); font-size: 13px; font-weight: 600; letter-spacing: .02em; white-space: nowrap; transition: background 320ms, color 320ms, box-shadow 320ms; }
.lx-btn:hover { background: var(--sage-hover); color: var(--cream-100); }
.lx-btn__ponto { width: 38px; height: 38px; border-radius: 50%; background: rgba(251, 243, 228, .14); color: var(--cream-100); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background 320ms, color 320ms; }
.lx-btn__ponto .lx-ic { width: 16px; height: 16px; }
.lx-btn--g { gap: 14px; height: 56px; padding: 0 7px 0 28px; font-size: 14px; }
.lx-btn--g .lx-btn__ponto { width: 42px; height: 42px; }
.lx-btn--g .lx-btn__ponto .lx-ic { width: 17px; height: 17px; }
.lx-btn--p { height: 44px; padding: 0 6px 0 20px; }
.lx-btn--p .lx-btn__ponto { width: 32px; height: 32px; background: rgba(251, 243, 228, .16); transition: background 280ms, color 280ms; }
.lx-btn--p .lx-btn__ponto .lx-ic { width: 15px; height: 15px; }
.lx-btn--p:hover { background: var(--olive-600); }
.lx-btn--p:hover .lx-btn__ponto, .lx-btn--p:focus-visible .lx-btn__ponto { background: var(--cream-100); color: var(--olive-800); }
.lx-btn--creme { background: var(--cream-100); color: var(--olive-800); }
.lx-btn--creme:hover { background: var(--cream-50); color: var(--olive-800); }
.lx-btn--creme .lx-btn__ponto { background: var(--olive-600); color: var(--cream-100); }
.lx-btn--contorno { background: transparent; box-shadow: inset 0 0 0 1px rgba(63, 72, 52, .4); color: var(--olive-800); }
.lx-btn--contorno .lx-btn__ponto { background: var(--olive-600); color: var(--cream-100); }
.lx-btn--contorno:hover { background: var(--olive-600); color: var(--cream-100); }
.lx-btn--contorno:hover .lx-btn__ponto { background: var(--cream-100); color: var(--olive-800); }
.lx-btn--janela { gap: 14px; height: 54px; padding: 0 7px 0 26px; font-size: 14px; }
.lx-btn--janela:hover { background: var(--olive-700); }
.lx-btn--janela .lx-btn__ponto { width: 40px; height: 40px; background: rgba(251, 243, 228, .16); }

/* Setas redondas (carrosséis, trajetória) */
.lx-seta { width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--olive-800); transition: background 240ms, color 240ms; }
.lx-seta .lx-ic { width: 17px; height: 17px; }
.lx-seta--clara { background: rgba(255, 252, 246, .92); }
.lx-seta--clara:hover { background: var(--cream-50); }
.lx-seta--sombra { box-shadow: 0 10px 24px -12px rgba(26, 30, 21, .45); transition: background 320ms, color 320ms; }
.lx-seta--sombra .lx-ic { width: 18px; height: 18px; }
.lx-seta--sombra:hover { background: var(--sage-500); color: var(--tinta); }
.lx-seta--linha { width: 48px; height: 48px; box-shadow: inset 0 0 0 1px rgba(63, 72, 52, .3); transition: background 320ms, color 320ms; }
.lx-seta--linha .lx-ic { width: 18px; height: 18px; }
.lx-seta--linha:hover { background: var(--olive-600); color: var(--cream-100); }

/* Arco de luz (o traço circular do símbolo) */
.lx-arco { position: absolute; border-radius: 50%; pointer-events: none; aspect-ratio: 1; -webkit-mask: var(--arco-mascara); mask: var(--arco-mascara); background: conic-gradient(from var(--arco-de, 210deg), transparent 0deg, var(--arco-cor, #8D9774) 70deg, var(--arco-cor, #8D9774) 160deg, transparent 230deg, transparent 360deg); }

/* ==========================================================================
   Cabeçalho da home (fixo: transparente sobre a foto, sólido ao rolar)
   ========================================================================== */
.lx-cab { position: fixed; top: 0; left: 0; right: 0; z-index: 40; background: transparent; border-bottom: 1px solid transparent; transition: background-color 320ms var(--ease), border-color 320ms; will-change: background-color; }
.lx-cab.is-solido { background: rgba(255, 252, 246, .92); border-bottom-color: rgba(63, 72, 52, .1); -webkit-backdrop-filter: blur(16px) saturate(130%); backdrop-filter: blur(16px) saturate(130%); }
.lx-cab__in { position: relative; max-width: 1400px; margin: 0 auto; padding: 18px 24px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.lx-cab__logo { display: grid; flex-shrink: 0; }
.lx-cab__logo .lx-logo { grid-area: 1 / 1; height: 36px; width: auto; display: block; transition: opacity 320ms; }
.lx-cab__logo-oliva { opacity: 0; }
.lx-cab.is-solido .lx-cab__logo-creme { opacity: 0; }
.lx-cab.is-solido .lx-cab__logo-oliva { opacity: 1; }
.lx-cab__nav { display: none; align-items: center; gap: 2px; padding: 5px; border-radius: 100px; background: rgba(43, 49, 36, .35); box-shadow: inset 0 0 0 1px rgba(251, 243, 228, .22); flex-wrap: nowrap; white-space: nowrap; transition: background 320ms, box-shadow 320ms; }
.lx-cab__nav a { padding: 10px 12px; border-radius: 100px; font-size: 13px; font-weight: 500; color: var(--cream-100); transition: background 160ms, color 320ms; }
.lx-cab__nav a:hover { background: rgba(141, 151, 116, .22); color: var(--cream-100); }
.lx-cab.is-solido .lx-cab__nav { background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(63, 72, 52, .1); }
.lx-cab.is-solido .lx-cab__nav a { color: var(--olive-800); }
.lx-cab__acoes { display: flex; align-items: center; gap: 8px; }
.lx-cab__cta { display: inline-flex; align-items: center; gap: 12px; height: 44px; padding: 0 6px 0 20px; border-radius: 100px; background: var(--cream-100); color: var(--olive-800); font-size: 13px; font-weight: 600; letter-spacing: .02em; white-space: nowrap; transition: background 320ms, color 320ms; }
.lx-cab__cta:hover { color: var(--olive-800); }
.lx-cab__cta-ponto { width: 32px; height: 32px; border-radius: 50%; background: var(--olive-600); color: var(--cream-100); display: flex; align-items: center; justify-content: center; transition: background 320ms; }
.lx-cab__cta-ponto .lx-ic { width: 15px; height: 15px; }
.lx-cab.is-solido .lx-cab__cta { background: var(--olive-600); color: var(--cream-100); }
.lx-cab.is-solido .lx-cab__cta-ponto { background: rgba(251, 243, 228, .22); }
/* Botão de menu (≠ protótipo: lá o menu sumia abaixo de 1140px e não havia como navegar) */
.lx-cab__menu { width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(43, 49, 36, .35); box-shadow: inset 0 0 0 1px rgba(251, 243, 228, .22); color: var(--cream-100); transition: background 320ms, color 320ms; }
.lx-cab__menu .lx-ic { width: 20px; height: 20px; }
.lx-cab.is-solido .lx-cab__menu { background: #FFFFFF; box-shadow: inset 0 0 0 1px rgba(63, 72, 52, .1); color: var(--olive-800); }
@media (min-width: 1140px) {
	.lx-cab__nav { display: flex; }
	.lx-cab__menu { display: none; }
}
@media (max-width: 599px) { .lx-cab__cta { display: none; } }

/* Menu do celular (overlay creme) */
.lx-menu { position: fixed; inset: 0; z-index: 70; display: flex; flex-direction: column; gap: 28px; padding: 18px 24px max(32px, env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; background: var(--cream-50); animation: lx-menu-entra 320ms var(--ease); }
.lx-menu[hidden] { display: none; }
@keyframes lx-menu-entra { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }
.lx-menu__topo { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lx-menu__logo .lx-logo { height: 36px; width: auto; }
.lx-menu__fechar { width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; box-shadow: inset 0 0 0 1px rgba(63, 72, 52, .3); color: var(--olive-800); }
.lx-menu__fechar .lx-ic { width: 20px; height: 20px; }
.lx-menu__nav { display: flex; flex-direction: column; border-bottom: 1px solid rgba(63, 72, 52, .14); }
.lx-menu__nav a { display: block; padding: 12px 0; border-top: 1px solid rgba(63, 72, 52, .14); font-family: var(--font-display); font-size: 28px; line-height: 1.2; letter-spacing: -.6px; color: var(--olive-800); }
.lx-menu__nav a:hover { color: var(--sage-700); }
.lx-menu__pe { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; margin-top: auto; }
.lx-menu__info { font-size: 14px; line-height: 1.6; color: var(--ink-600); }

/* ==========================================================================
   01 Início
   ========================================================================== */
.lx-hero { position: relative; min-height: min(100vh, 900px); min-height: min(100svh, 900px); display: flex; overflow: hidden; background: var(--sage-500); }
.lx-hero__fotos { position: absolute; inset: 0; overflow: hidden; }
.lx-hero__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0; transform: scale(1.015); transition: opacity 2200ms var(--ease-fade), transform 0ms linear 2300ms; will-change: opacity, transform; }
.lx-hero__foto.is-ativa { opacity: 1; }
/* Foto com enquadramento próprio no celular (o style inline traz object-position; só !important vence) */
@media (max-width: 767px) { .lx-hero__foto[data-lx-cel] { object-position: var(--pos-cel) !important; transform-origin: var(--origem-cel) !important; } }
/* Ken Burns: começa em 1.015 e o JS liga "is-pronto" no quadro seguinte (como o heroReady do protótipo). */
.lx-hero__fotos.is-pronto .lx-hero__foto.is-ativa { transform: scale(1.09) translate3d(0, -1%, 0); transition: opacity 2200ms var(--ease-fade), transform 9500ms cubic-bezier(.25, .6, .3, 1); }
.lx-hero__veu { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(36, 41, 30, .72) 0%, rgba(36, 41, 30, .55) 45%, rgba(36, 41, 30, .78) 100%); }
.lx-hero__in { position: relative; width: 100%; max-width: 1400px; margin: 0 auto; padding: 155px 24px clamp(48px, 6vw, 80px); display: flex; flex-direction: column; justify-content: flex-end; }
.lx-hero__pilha { display: flex; flex-direction: column; gap: 28px; }
.lx-hero__titulo { margin: 0; max-width: 820px; font-family: var(--font-display); font-weight: 400; font-size: clamp(44px, 5.6vw, 88px); line-height: 1; letter-spacing: -2px; color: var(--cream-50); text-wrap: balance; }
.lx-hero__linha { display: flex; justify-content: space-between; align-items: center; gap: 28px 56px; flex-wrap: wrap; }
.lx-hero__texto { margin: 0; max-width: 540px; font-size: 18px; line-height: 1.65; font-weight: 500; color: var(--cream-50); text-wrap: pretty; }
.lx-chips { flex: 0 1 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.lx-chips__fila > ul { display: flex; gap: 10px; justify-content: flex-end; }
.lx-chips__fila:last-child > ul { flex-wrap: wrap; }
.lx-chip { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 44px; padding: 0 18px 0 14px; white-space: nowrap; border-radius: 100px; background: rgba(43, 49, 36, .12); box-shadow: inset 0 0 0 1px rgba(255, 252, 246, .35); font-size: 12px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--cream-50); }
.lx-chip::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--sage-500); flex-shrink: 0; }
.lx-chip--solido { background: var(--cream-50); box-shadow: none; color: var(--olive-800); }
.lx-hero__acao { padding-top: 4px; }

/* ==========================================================================
   02 Sobre
   ========================================================================== */
.lx-sobre { padding: clamp(80px, 10vw, 150px) 0 clamp(64px, 7vw, 100px); }
.lx-sobre__in { display: flex; flex-direction: column; gap: 72px; }
.lx-sobre__linha { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 56px; align-items: start; }
.lx-sobre__linha--base { align-items: end; }
.lx-sobre__titulo { margin: 0; max-width: 640px; font-size: clamp(44px, 5.4vw, 76px); line-height: 1.04; letter-spacing: -2px; color: var(--olive-800); }
.lx-sobre__duo { display: flex; justify-content: flex-end; gap: 16px; }
.lx-sobre__alta { height: auto; width: min(48%, 300px); aspect-ratio: 3 / 3.6; object-fit: cover; border-radius: 8px; display: block; background: var(--sage-100); }
.lx-sobre__grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.lx-sobre__baixa { height: auto; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 8px; display: block; background: var(--sage-100); }
.lx-sobre__texto { display: flex; flex-direction: column; gap: 22px; width: 100%; max-width: 616px; justify-self: end; }
@media (min-width: 1140px) { .lx-sobre__grade { margin-top: -100px; } }

/* ==========================================================================
   03 Serviços
   ========================================================================== */
.lx-servicos { position: relative; overflow: hidden; background: var(--sage-500); padding: clamp(80px, 10vw, 150px) 0; }
.lx-servicos__in { display: flex; flex-direction: column; gap: 56px; }
.lx-servicos__titulo { max-width: 760px; }
.lx-servicos__texto { max-width: 560px; font-size: 16px; line-height: 1.7; color: var(--tinta); }
.lx-servicos__grade { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 640px) { .lx-servicos__grade { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .lx-servicos__grade { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.lx-servico { display: flex; flex-direction: column; border-radius: 8px; overflow: hidden; background: var(--cream-100); color: var(--tinta); cursor: pointer; transition: transform 320ms var(--ease), box-shadow 320ms; }
.lx-servico:hover { transform: translateY(-4px); box-shadow: var(--sombra-card); }
.lx-servico__fotos { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--sage-mist); }
.lx-servico__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0; transform: scale(1); transition: opacity 1200ms var(--ease-fade), transform 6000ms cubic-bezier(.2, .6, .3, 1); }
.lx-servico__foto.is-ativa { opacity: 1; transform: scale(1.06); }
/* Objeto recortado em fundo branco (Gyrotonic): inteiro, nunca cortado. */
.lx-servico__foto.is-recortada, .lx-janela__foto.is-recortada { background: #FEFEFE; object-fit: contain; }
/* Altura da foto = 88% do quadro no cartão (82% na janela): o respiro vertical é
   padding em unidade do contêiner (cqh); 4,5% da largura é a reserva para 4:3. */
.lx-servico__fotos, .lx-janela__galeria { container-type: size; }
.lx-servico__foto.is-recortada { padding: 4.5% 0; padding: 6cqh 0; }
.lx-servico__indice { position: absolute; top: 16px; left: 16px; display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: 100px; background: var(--cream-100); font-size: 11px; font-weight: 600; letter-spacing: .3em; color: var(--olive-800); }
.lx-servico__corpo { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 24px; }
.lx-servico__titulo { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: 27px; line-height: 1.1; letter-spacing: -.8px; color: var(--olive-800); text-wrap: balance; }
.lx-servico__texto { font-size: 14px; line-height: 1.6; color: var(--ink-600); text-wrap: pretty; }
.lx-servico__acao { margin-top: auto; padding-top: 10px; }


/* Janela de serviço (2.1: ficha completa).
   Até 899 px: tudo rola junto dentro do painel; o fechar fica preso no topo e o "Agendar" no pé.
   A partir de 900 px: fotos à esquerda na altura toda; ficha à direita com rolagem própria e rodapé fixo. */
.lx-janela { position: fixed; inset: 0; z-index: 60; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: clamp(10px, 3vw, 40px); border: 0; background: transparent; color: inherit; overflow: hidden; display: none; align-items: center; justify-content: center; }
.lx-janela[open] { display: flex; }
.lx-janela::backdrop { background: transparent; }
.lx-janela__fundo { position: absolute; inset: 0; background: rgba(26, 30, 21, .62); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transition: opacity 420ms var(--ease-fade); }
.lx-janela__painel { --linha: rgba(63, 72, 52, .14); position: relative; width: 100%; max-width: 1120px; max-height: calc(100vh - 20px); max-height: calc(100dvh - 20px); overflow: auto; overscroll-behavior: contain; border-radius: 12px; background: var(--cream-50); box-shadow: 0 60px 120px -40px rgba(26, 30, 21, .7); opacity: 0; transform: translateY(24px) scale(.98); transition: opacity 420ms var(--ease-fade), transform 520ms cubic-bezier(.2, .8, .2, 1); }
.lx-janela.is-visivel .lx-janela__fundo, .lx-janela.is-visivel .lx-janela__painel { opacity: 1; }
.lx-janela.is-visivel .lx-janela__painel { transform: none; }
.lx-janela__fechar { position: sticky; top: 12px; z-index: 4; display: flex; width: 44px; height: 44px; margin: 12px 12px -56px auto; border-radius: 50%; background: rgba(255, 252, 246, .94); color: var(--olive-800); box-shadow: 0 8px 20px -10px rgba(26, 30, 21, .5), inset 0 0 0 1px rgba(63, 72, 52, .14); align-items: center; justify-content: center; transition: background 240ms; }
.lx-janela__fechar:hover { background: var(--cream-200); }
.lx-janela__fechar .lx-ic { width: 18px; height: 18px; }
.lx-janela__galeria { position: relative; height: clamp(230px, 62vw, 440px); max-height: 44vh; max-height: 44dvh; background: var(--sage-mist); overflow: hidden; touch-action: pan-y; }
.lx-janela__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0; transform: scale(1.04); transition: opacity 700ms var(--ease-fade), transform 1400ms var(--ease); }
.lx-janela__foto.is-ativa { opacity: 1; transform: scale(1); }
.lx-janela__foto.is-recortada { padding: 9cqh 0; }
.lx-janela__sombra { position: absolute; inset: auto 0 0 0; height: 45%; background: linear-gradient(180deg, rgba(26, 30, 21, 0), rgba(26, 30, 21, .55)); pointer-events: none; }
.lx-janela__controles { position: absolute; left: 16px; right: 16px; bottom: 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lx-janela__controles[hidden] { display: none; }
.lx-janela__pontos { display: flex; align-items: center; gap: 8px; }
.lx-janela__ponto { position: relative; height: 6px; width: 6px; border-radius: 100px; background: rgba(255, 252, 246, .5); transition: width 420ms var(--ease), background 420ms; }
.lx-janela__ponto::after { content: ""; position: absolute; inset: -12px -2px; } /* área de toque */
.lx-janela__ponto.is-ativo { width: 28px; background: var(--cream-50); }
.lx-janela__setas { display: flex; gap: 8px; }
.lx-janela__info { position: relative; display: flex; flex-direction: column; }
.lx-janela__rolagem { display: flex; flex-direction: column; gap: 18px; padding: 28px 22px 32px; }
.lx-janela__titulo { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: clamp(34px, 3.4vw, 46px); line-height: 1.05; letter-spacing: -1.2px; color: var(--olive-800); text-wrap: balance; }
.lx-janela__corpo { display: flex; flex-direction: column; gap: 26px; }
.lx-janela__completo { margin-top: -14px; margin-bottom: -10px; font-size: 15px; font-style: italic; line-height: 1.45; color: var(--sage-700); }
.lx-janela__texto { font-size: 16px; line-height: 1.7; color: var(--ink-700); }
.lx-janela__ficha { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--linha); }
.lx-janela__ficha > div { display: flex; flex-direction: column; gap: 7px; padding: 15px 12px 15px 0; border-bottom: 1px solid var(--linha); }
.lx-janela__ficha > div:nth-child(even) { padding-left: 16px; padding-right: 0; border-left: 1px solid var(--linha); }
.lx-janela__ficha dt { display: flex; align-items: center; gap: 7px; font-size: 10.5px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--sage-700); }
.lx-janela__ficha dt .lx-ic { width: 15px; height: 15px; flex: none; stroke-width: 1.75; }
.lx-janela__ficha dd { margin: 0; font-family: var(--font-display); font-size: 18px; line-height: 1.25; color: var(--olive-800); }
.lx-janela__obs { padding: 14px 16px; border-radius: 8px; background: var(--cream-100); font-size: 14px; line-height: 1.6; color: var(--ink-700); }
.lx-janela__obs strong { font-weight: 600; color: var(--olive-800); }
.lx-janela__bloco { display: flex; flex-direction: column; gap: 12px; }
.lx-janela__rotulo { margin: 0; display: flex; align-items: center; gap: 14px; font-family: var(--font-body); font-size: 11px; font-weight: 600; line-height: 1.4; letter-spacing: .22em; text-transform: uppercase; color: var(--sage-700); }
.lx-janela__rotulo::after { content: ""; flex: 1; height: 1px; background: var(--linha); }
.lx-janela__bloco p { font-size: 15px; line-height: 1.7; color: var(--ink-700); }
.lx-janela__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 11px 24px; }
.lx-janela__lista li { display: flex; align-items: flex-start; gap: 11px; font-size: 15px; line-height: 1.5; color: var(--ink-700); }
.lx-janela__lista .lx-ic { flex: none; width: 20px; height: 20px; margin-top: 1px; padding: 4px; border-radius: 50%; background: var(--sage-100); color: var(--olive-700); stroke-width: 3; }
.lx-janela__acao { position: sticky; bottom: 0; z-index: 3; display: flex; align-items: center; gap: 12px 22px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: rgba(255, 252, 246, .95); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-top: 1px solid var(--linha); }
.lx-janela__acao .lx-btn--janela { width: 100%; justify-content: space-between; }
.lx-janela__agenda { display: none; align-items: center; gap: 8px; font-size: 13px; line-height: 1.4; color: var(--ink-600); }
.lx-janela__agenda .lx-ic { flex: none; width: 16px; height: 16px; color: var(--sage-700); stroke-width: 1.75; }

/* Tablet em pé: ainda uma coluna, com mais ar e o botão do tamanho do texto. */
@media (min-width: 600px) {
	.lx-janela__rolagem { padding: 36px 40px 40px; gap: 20px; }
	.lx-janela__acao { padding: 14px 40px; }
	.lx-janela__acao .lx-btn--janela { width: auto; }
	.lx-janela__agenda { display: flex; }
	.lx-janela__texto { font-size: 17px; }
	.lx-janela__ficha { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.lx-janela__ficha > div, .lx-janela__ficha > div:nth-child(even) { padding: 16px 14px; border-left: 1px solid var(--linha); }
	.lx-janela__ficha > div:first-child { padding-left: 0; border-left: 0; }
}

/* Computador: duas colunas, painel com altura fixa; só a ficha rola. */
@media (min-width: 900px) {
	.lx-janela__painel { display: grid; grid-template-columns: minmax(0, 46fr) minmax(0, 54fr); height: min(760px, calc(100dvh - 2 * clamp(10px, 3vw, 40px))); overflow: hidden; }
	.lx-janela__fechar { position: absolute; top: 18px; right: 18px; margin: 0; box-shadow: inset 0 0 0 1px rgba(63, 72, 52, .18); background: var(--cream-50); }
	.lx-janela__galeria { height: auto; max-height: none; min-height: 0; }
	.lx-janela__info { min-height: 0; }
	/* padding direito maior: o texto rolando nunca passa por baixo do fechar; topo esmaecido ao rolar */
	.lx-janela__rolagem { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--sage-200) transparent; padding: 48px 80px 40px 48px; -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 28px); mask-image: linear-gradient(180deg, transparent 0, #000 28px); }
	.lx-janela__acao { position: static; padding: 16px 48px; background: var(--cream-50); }
	.lx-janela__ficha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lx-janela__ficha > div { padding: 15px 14px 15px 0; border-left: 0; }
	.lx-janela__ficha > div:first-child { padding-left: 0; }
	.lx-janela__ficha > div:nth-child(even) { padding-left: 18px; border-left: 1px solid var(--linha); }
	.lx-janela__lista { grid-template-columns: 1fr; }
}
@media (min-width: 1200px) {
	.lx-janela__rolagem { padding: 56px 84px 44px 56px; }
	.lx-janela__acao { padding: 18px 56px; }
}

/* ==========================================================================
   04 Profissional + Trajetória
   ========================================================================== */
.lx-prof { position: relative; overflow: hidden; padding: clamp(80px, 10vw, 150px) 0; }
.lx-prof__in { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: clamp(48px, 6vw, 96px); align-items: center; }
.lx-prof__retrato { position: relative; display: flex; justify-content: center; padding-bottom: 48px; }
.lx-arco--prof { top: -6%; left: 50%; transform: translateX(-50%); width: min(112%, 600px); --arco-de: 210deg; }
.lx-prof__moldura { position: relative; width: min(100%, 460px); }
.lx-prof__foto { height: auto; width: 100%; aspect-ratio: 4 / 5.2; object-fit: cover; border-radius: var(--arco); display: block; background: var(--sage-100); }
.lx-prof__cartao { position: absolute; left: -24px; right: -24px; bottom: -40px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 4px; padding: 22px 24px; border-radius: 8px; background: var(--sage-500); color: var(--tinta); box-shadow: var(--sombra-flutua); }
.lx-prof__nome { font-family: var(--font-display); font-size: 24px; line-height: 1.15; letter-spacing: -.5px; }
.lx-prof__cargo { font-size: 11px; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; }
.lx-prof__crefito { margin-top: 3px; font-size: 12px; font-weight: 500; letter-spacing: .08em; opacity: .82; }
.lx-sem-quebra { white-space: nowrap; } /* registro profissional (COFFITO pede na publicidade) */
.lx-prof__texto { display: flex; flex-direction: column; gap: 36px; }
.lx-prof__titulo { margin: 0; font-size: clamp(40px, 4.6vw, 64px); line-height: 1.04; letter-spacing: -1.8px; color: var(--olive-800); }
.lx-prof__citacao { padding-left: 20px; border-left: 2px solid var(--sage-500); font-family: var(--font-display); font-size: 22px; line-height: 1.45; letter-spacing: -.3px; color: var(--olive-800); }

.lx-trajetoria { margin-top: clamp(72px, 8vw, 120px); display: flex; flex-direction: column; gap: 36px; }
.lx-trajetoria__cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.lx-trajetoria__titulos { display: flex; flex-direction: column; gap: 14px; }
.lx-trajetoria__rotulo { font-size: 12px; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: var(--sage-700); }
.lx-trajetoria__titulo { margin: 0; font-size: clamp(28px, 3vw, 40px); line-height: 1.1; letter-spacing: -1px; color: var(--olive-800); }
.lx-trajetoria__setas { display: flex; gap: 10px; }
.lx-trilho { list-style: none; margin: 0; padding: 0 0 8px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(240px, calc((100% - 72px) / 4)); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; overscroll-behavior-x: contain; }
.lx-trilho::-webkit-scrollbar { display: none; }
.lx-trilho:focus-visible { outline-offset: 6px; border-radius: 8px; }
.lx-etapa { scroll-snap-align: start; display: flex; flex-direction: column; gap: 22px; }
.lx-etapa__ano { display: flex; align-items: center; gap: 12px; height: 54px; }
.lx-etapa__ponto { position: relative; width: 15px; height: 15px; border-radius: 50%; background: var(--cream-50); box-shadow: inset 0 0 0 1.5px var(--sage-500); flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.lx-etapa__ponto::after { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--sage-500); }
.lx-etapa__numero { font-family: var(--font-display); font-size: 30px; line-height: 1; letter-spacing: -.8px; color: var(--olive-800); white-space: nowrap; }
.lx-etapa__fio { flex: 1; height: 1px; margin-left: 4px; margin-right: -24px; background: rgba(63, 72, 52, .22); }
.lx-etapa__cartao { flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; min-height: 0; padding: 22px 24px; border-radius: 8px; background: var(--cream-100); transition: background 320ms, transform 320ms var(--ease); }
.lx-etapa__cartao:hover { background: var(--cream-200); transform: translateY(-4px); }
.lx-etapa__nome { font-size: 15px; line-height: 1.55; color: var(--ink-700); }
/* ≠ protótipo (#8D9774): sálvia 500 em texto de 10,5px sobre creme não passa no contraste (2,6:1);
   o próprio manual pede a sálvia 700 para texto pequeno. */
.lx-etapa__tipo { font-size: 10.5px; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; color: var(--sage-700); }

/* ==========================================================================
   05 Equipe
   ========================================================================== */
.lx-equipe { background: var(--cream-200); padding: clamp(80px, 10vw, 150px) 0; }
.lx-equipe__in { display: flex; flex-direction: column; gap: 56px; }
.lx-equipe__titulo { margin: 0; font-size: clamp(40px, 4.6vw, 64px); line-height: 1.04; letter-spacing: -1.8px; color: var(--olive-800); }
.lx-equipe__grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(24px, 3vw, 40px); }
.lx-pessoa { display: flex; flex-direction: column; gap: 24px; }
.lx-pessoa__foto { height: auto; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--arco); display: block; background: var(--sage-100); }
.lx-pessoa__dados { display: flex; flex-direction: column; gap: 12px; }
.lx-pessoa__nome { margin: 0; font-size: 26px; line-height: 1.15; letter-spacing: -.6px; color: var(--olive-800); }
.lx-pessoa__crefito { font-size: 11px; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; color: var(--sage-700); }
.lx-pessoa__bio { font-size: 16px; line-height: 1.6; color: var(--ink-700); }

/* ==========================================================================
   06 O espaço
   ========================================================================== */
.lx-espaco { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 480px), 1fr)); background: var(--sage-mist); }
.lx-espaco__carrossel { position: relative; min-height: 560px; overflow: hidden; background: var(--sage-hover); touch-action: pan-y; }
.lx-espaco__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0; transition: opacity 900ms ease; }
.lx-espaco__foto.is-ativa { opacity: 1; }
.lx-espaco__sombra { position: absolute; inset: auto 0 0 0; height: 140px; background: linear-gradient(180deg, rgba(43, 49, 36, 0), rgba(43, 49, 36, .55)); pointer-events: none; }
.lx-espaco__controles { position: absolute; left: 24px; right: 24px; bottom: 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lx-espaco__contador { font-size: 12px; font-weight: 600; letter-spacing: .3em; color: var(--cream-50); }
.lx-espaco__setas { display: flex; gap: 10px; }
.lx-espaco__texto { position: relative; overflow: hidden; padding: clamp(48px, 7vw, 110px) clamp(24px, 6vw, 96px); display: flex; flex-direction: column; justify-content: center; gap: 28px; }
.lx-espaco__texto > :not(.lx-arco) { position: relative; }
.lx-arco--espaco { right: -180px; top: -180px; width: 520px; opacity: .6; --arco-de: 230deg; --arco-cor: #A5AFA4; }
.lx-espaco__titulo { max-width: 560px; }
.lx-espaco__frase { max-width: 500px; font-size: 16px; line-height: 1.7; color: var(--tinta); }

/* ==========================================================================
   07 Depoimentos
   ========================================================================== */
.lx-depo { padding: clamp(80px, 10vw, 150px) 0; }
.lx-depo__in { display: flex; flex-direction: column; gap: 56px; }
.lx-depo__cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }
.lx-depo__titulo { max-width: 640px; }
.lx-depo__grade:focus-visible { outline: 2px solid var(--olive-800); outline-offset: 6px; border-radius: 8px; }
.lx-depo__grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px; }
.lx-depo__cartao { margin: 0; display: flex; flex-direction: column; gap: 28px; padding: 36px; border-radius: 8px; background: var(--cream-100); }
.lx-depo__topo { display: flex; justify-content: space-between; align-items: center; }
.lx-estrelas { display: flex; gap: 3px; color: var(--brass-500); }
.lx-estrelas .lx-ic { width: 15px; height: 15px; }
.lx-depo__aspas { font-family: var(--font-display); font-size: 64px; line-height: .5; height: 24px; color: var(--sage-500); }
.lx-depo__texto { font-family: var(--font-display); font-size: 21px; line-height: 1.45; letter-spacing: -.3px; color: var(--olive-800); }
.lx-depo__autor { display: flex; align-items: center; gap: 14px; margin-top: auto; padding-top: 20px; border-top: 1px solid rgba(63, 72, 52, .12); }
.lx-depo__avatar { width: 48px; height: 48px; flex-shrink: 0; border-radius: 50%; background: var(--sage-100); color: var(--sage-700); display: flex; align-items: center; justify-content: center; }
.lx-depo__avatar .lx-ic { width: 22px; height: 22px; }
.lx-depo__quem { display: flex; flex-direction: column; gap: 2px; }
.lx-depo__nome { font-size: 15px; font-weight: 600; color: var(--olive-800); }
.lx-depo__origem { font-size: 12.5px; color: var(--ink-600); }
.lx-depo__cartao.is-longo .lx-depo__texto { font-size: 18px; line-height: 1.6; letter-spacing: -.1px; } /* avaliações longas (≠ protótipo, que só tinha frases curtas) */
.lx-aviso-editor { margin: 24px auto; padding: 20px 24px; border: 1px dashed rgba(63, 72, 52, .4); border-radius: 8px; font-size: 14px; line-height: 1.6; background: var(--cream-100); max-width: 1352px; }
.lx-aviso-editor a { text-decoration: underline; }

/* ==========================================================================
   08 Dúvidas
   ========================================================================== */
.lx-duvidas { padding: clamp(80px, 10vw, 150px) 0; background: var(--cream-200); }
.lx-duvidas__in { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: clamp(40px, 6vw, 96px); align-items: start; }
.lx-duvidas__lado { display: flex; flex-direction: column; gap: 24px; position: sticky; top: 120px; align-self: start; }
.lx-duvidas__intro { max-width: 420px; font-size: 16px; line-height: 1.7; }
@media (max-width: 860px) { .lx-duvidas__lado { position: static; } }
.lx-faq { display: flex; flex-direction: column; gap: 10px; }
.lx-faq__item { border-radius: 8px; background: var(--cream-50); transition: background 320ms; }
.lx-faq__item.is-aberta { background: var(--olive-600); }
.lx-faq__pergunta { margin: 0; font: inherit; color: inherit; line-height: inherit; }
.lx-faq__botao { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 24px; text-align: left; font-family: var(--font-display); font-size: 20px; line-height: 1.3; letter-spacing: -.4px; color: var(--olive-800); transition: color 320ms; }
.lx-faq__item.is-aberta .lx-faq__botao { color: var(--cream-100); }
.lx-faq__mais { width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%; background: transparent; color: var(--olive-800); display: flex; align-items: center; justify-content: center; }
.lx-faq__mais .lx-ic { width: 16px; height: 16px; transition: transform 320ms var(--ease-in-out); }
.lx-faq__item.is-aberta .lx-faq__mais { background: var(--sage-500); color: var(--tinta); }
.lx-faq__item.is-aberta .lx-faq__mais .lx-ic { transform: rotate(45deg); }
.lx-faq__resposta { display: grid; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows 320ms var(--ease-in-out), visibility 0s 320ms; }
.lx-faq__item.is-aberta .lx-faq__resposta { grid-template-rows: 1fr; visibility: visible; transition: grid-template-rows 320ms var(--ease-in-out), visibility 0s; }
.lx-faq__dobra { overflow: hidden; min-height: 0; }
/* ≠ protótipo (.8): com .8 o texto ficava em 4,1:1 sobre o oliva; .9 passa dos 4,5:1. */
.lx-faq__dobra p { margin: 0; padding: 0 72px 24px 24px; font-size: 15px; line-height: 1.7; color: rgba(251, 243, 228, .9); }
/* Sem JS: todas abertas, legíveis sobre o creme. */
html:not(.js) .lx-faq__resposta { grid-template-rows: 1fr; visibility: visible; }
html:not(.js) .lx-faq__item:not(.is-aberta) .lx-faq__dobra p { color: var(--ink-600); }

/* ==========================================================================
   09 Contato
   ========================================================================== */
.lx-contato { padding: clamp(80px, 10vw, 150px) 0; }
.lx-contato__in { display: flex; flex-direction: column; gap: 32px; }
.lx-contato__grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 32px; align-items: stretch; }
.lx-contato__cartao { position: relative; overflow: hidden; border-radius: 8px; background: var(--sage-500); padding: clamp(24px, 3vw, 40px); display: flex; flex-direction: column; justify-content: center; gap: 28px; min-height: 380px; }
.lx-arco--contato { right: -160px; bottom: -200px; width: 460px; --arco-de: 300deg; --arco-cor: #5E6750; }
.lx-contato__cab { position: relative; display: flex; flex-direction: column; gap: 18px; }
.lx-contato__frase { font-size: 15px; line-height: 1.7; color: var(--tinta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* ≠ protótipo: no celular a frase de uma linha só terminava em reticências. */
@media (max-width: 599px) { .lx-contato__frase { white-space: normal; } }
.lx-contato__lista { position: relative; display: flex; flex-direction: column; border-bottom: 1px solid rgba(251, 243, 228, .16); }
.lx-contato__item { display: flex; align-items: center; gap: 16px; padding: 16px 0; border-top: 1px solid rgba(251, 243, 228, .16); color: var(--tinta-link); transition: color 240ms; }
.lx-contato__item:hover { color: var(--cream-100); }
.lx-contato__icone { width: 40px; height: 40px; flex-shrink: 0; border-radius: 50%; background: var(--sage-500); color: var(--tinta); display: flex; align-items: center; justify-content: center; }
.lx-contato__icone .lx-ic { width: 18px; height: 18px; }
.lx-contato__icone .lx-ic--whatsapp { width: 19px; height: 19px; }
.lx-contato__dado { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lx-contato__rotulo { font-size: 10.5px; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; color: var(--tinta); }
.lx-contato__valor { font-family: var(--font-display); font-size: 18px; line-height: 1.3; letter-spacing: -.2px; }

.lx-form { position: relative; display: flex; flex-direction: column; gap: 20px; justify-content: center; }
.lx-form__isca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lx-campo { display: flex; flex-direction: column; gap: 8px; }
.lx-campo__rotulo { font-family: var(--font-display); font-size: 16px; color: var(--olive-800); }
.lx-campo__entrada { width: 100%; height: 46px; padding: 0 16px; border-radius: 8px; border: 1px solid rgba(63, 72, 52, .25); background: var(--cream-50); font: 400 15px var(--font-body); color: var(--charcoal); outline: none; -webkit-appearance: none; appearance: none; transition: border-color 160ms, box-shadow 160ms; }
.lx-campo__entrada::placeholder { color: var(--ink-400); opacity: 1; }
.lx-campo__entrada:focus { border-color: var(--olive-800); box-shadow: 0 0 0 4px rgba(141, 151, 116, .35); }
.lx-campo__entrada--texto { height: auto; padding: 14px 16px; resize: vertical; line-height: 1.6; }
.lx-campo__entrada.is-erro { border-color: #9B3B2E; }
/* ≠ protótipo: 16px no celular — com 15px o Safari do iPhone dá zoom ao tocar no campo. */
@media (max-width: 767px) { .lx-campo__entrada { font-size: 16px; } }
.lx-form__dupla { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 20px; }
.lx-form__aceite { display: flex; gap: 10px; align-items: flex-start; font-size: 12.5px; line-height: 1.5; color: var(--ink-600); }
.lx-form__aceite input { margin: 2px 0 0; accent-color: var(--olive-800); width: 16px; height: 16px; flex-shrink: 0; }
.lx-form__aceite a { color: var(--olive-800); text-decoration: underline; }
.lx-form__enviar { height: 52px; border-radius: 100px; background: var(--olive-600); color: var(--cream-100); display: flex; align-items: center; justify-content: center; gap: 10px; font: 600 14px var(--font-body); letter-spacing: .02em; transition: background 320ms; }
.lx-form__enviar:hover { background: var(--sage-hover); }
.lx-form__enviar .lx-ic { width: 16px; height: 16px; }
.lx-form__status { min-height: 0; font-size: 14px; line-height: 1.6; color: var(--olive-800); }
.lx-form__status:empty { display: none; }
.lx-form__status.is-erro { color: #9B3B2E; }

/* Mapa: só com permissão (conteúdo do Google). */
.lx-mapa { border-radius: 8px; overflow: hidden; min-height: clamp(260px, 32vw, 360px); background: var(--sage-100); display: flex; }
.lx-mapa iframe { flex: 1; width: 100%; min-height: clamp(260px, 32vw, 360px); border: 0; display: block; filter: grayscale(1) contrast(1.05); }
.lx-mapa__aviso { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 20px; text-align: center; }
.lx-mapa__icone { width: 44px; height: 44px; border-radius: 50%; background: var(--cream-50); color: var(--olive-800); display: flex; align-items: center; justify-content: center; }
.lx-mapa__icone .lx-ic { width: 20px; height: 20px; }
.lx-mapa__endereco { font-family: var(--font-display); font-size: 20px; line-height: 1.3; letter-spacing: -.3px; color: var(--olive-800); max-width: 520px; }
.lx-mapa__nota { font-size: 13px; color: var(--ink-600); }
.lx-mapa__acoes { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 20px; margin-top: 6px; }
.lx-mapa__abrir { font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.lx-mapa.is-carregado .lx-mapa__aviso { display: none; }
html:not(.js) [data-lx-mapa-carregar] { display: none; }

/* ==========================================================================
   10 Rodapé (todas as páginas)
   ========================================================================== */
.lx-rodape { position: relative; overflow: hidden; background: var(--sage-500); color: var(--tinta); }
.lx-rodape__in { max-width: 1400px; margin: 0 auto; padding: clamp(64px, 8vw, 110px) 24px 32px; display: flex; flex-direction: column; align-items: center; gap: 56px; text-align: center; }
.lx-rodape__marca { display: flex; flex-direction: column; align-items: center; gap: 22px; max-width: 560px; }
.lx-rodape__logo { height: 110px; width: auto; display: block; }
.lx-rodape__marca p { font-size: 15px; line-height: 1.7; color: var(--tinta); text-wrap: balance; }
.lx-rodape__contatos { width: 100%; display: flex; flex-wrap: wrap; justify-content: center; gap: 24px 48px; padding: 36px 0; border-top: 1px solid rgba(251, 243, 228, .18); border-bottom: 1px solid rgba(251, 243, 228, .18); }
.lx-rodape__contato { display: flex; gap: 14px; align-items: center; color: var(--tinta); transition: color 240ms; }
.lx-rodape__contato:hover { color: var(--cream-100); }
.lx-rodape__icone { width: 44px; height: 44px; flex-shrink: 0; border-radius: 50%; background: var(--sage-500); color: var(--tinta); display: flex; align-items: center; justify-content: center; }
.lx-rodape__icone .lx-ic { width: 18px; height: 18px; }
.lx-rodape__dado { display: flex; flex-direction: column; gap: 2px; text-align: left; }
.lx-rodape__rotulo { font-size: 10.5px; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; color: var(--tinta); }
.lx-rodape__valor { font-size: 14px; line-height: 1.45; }
.lx-quebra-cel { display: none; }
@media (max-width: 640px) { .lx-quebra-cel { display: block; } }
.lx-rodape__base { display: flex; flex-direction: column; align-items: center; gap: 14px; font-size: 12px; color: var(--tinta-link); }
.lx-assinatura { font-size: 10px; font-weight: 500; letter-spacing: .42em; text-transform: uppercase; color: var(--tinta); padding-left: .42em; text-align: center; text-wrap: balance; }
.lx-rodape__linha { display: flex; gap: 8px 12px; flex-wrap: wrap; justify-content: center; align-items: center; text-align: center; }
.lx-rodape__linha a { color: var(--tinta); transition: color 240ms; }
.lx-rodape__linha a:hover { color: var(--cream-100); }
/* ≠ protótipo: o crédito fica no meio da frase e precisa se distinguir dela. */
.lx-rodape__grupo--info a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
/* Grupos da linha legal: no computador não existem (a linha fica como no protótipo). */
.lx-rodape__grupo { display: contents; }
/* 2.2.1: com o registro do CREFITO a linha passou do tamanho — os dados da empresa descem para uma linha própria (≠ protótipo, que era uma linha só). */
@media (min-width: 768px) {
	.lx-rodape__linha > .lx-rodape__ponto { display: none; }
	/* largura limitada: as pontas nunca ficam sob o WhatsApp e o botão de cookies, que flutuam nos cantos */
	.lx-rodape__grupo--info { display: flex; flex-basis: 100%; max-width: calc(100vw - 380px); margin: 0 auto; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 30px; }
	.lx-rodape__grupo--info .lx-rodape__ponto { display: none; } /* ponto solto no fim da linha quebrada: o espaço separa */
}
.lx-rodape__cookies { display: none; font: inherit; color: var(--tinta); transition: color 240ms; }
.lx-assinatura__quebra { display: none; }
.lx-rodape__cookies:hover { color: var(--cream-100); }

/* ==========================================================================
   Páginas internas (documentos legais, 404)
   ========================================================================== */
.lx-doc-cab { position: sticky; top: 0; z-index: 10; background: rgba(255, 252, 246, .92); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(63, 72, 52, .1); }
.lx-doc-cab__in { max-width: 1100px; margin: 0 auto; padding: 18px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lx-doc-cab__logo { display: flex; }
.lx-doc-cab__logo .lx-logo { height: 32px; width: auto; }
.lx-doc-cab__voltar { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 18px; border-radius: 100px; box-shadow: inset 0 0 0 1px rgba(63, 72, 52, .3); font-size: 13px; font-weight: 600; color: var(--olive-800); transition: background 240ms, color 240ms; white-space: nowrap; }
.lx-doc-cab__voltar:hover { background: var(--olive-600); color: var(--cream-100); }
.lx-doc { max-width: 1100px; margin: 0 auto; padding: clamp(56px, 7vw, 96px) 24px clamp(80px, 10vw, 140px); display: flex; flex-wrap: wrap; gap: 40px 56px; align-items: flex-start; }
.lx-doc__lado { flex: 1 1 220px; max-width: 260px; display: flex; flex-direction: column; gap: 14px; }
.lx-doc__lado-rotulo { font-size: 11px; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: var(--sage-700); }
.lx-doc__lado a { font-family: var(--font-display); font-size: 18px; color: var(--ink-400); padding-left: 12px; border-left: 2px solid transparent; }
.lx-doc__lado a:hover { color: var(--olive-800); }
.lx-doc__lado a.is-atual { color: var(--olive-800); border-left-color: var(--olive-800); }
.lx-doc__artigo { flex: 999 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 36px; font-size: 16px; line-height: 1.75; }
.lx-doc__cab { display: flex; flex-direction: column; gap: 16px; padding-bottom: 32px; border-bottom: 1px solid rgba(63, 72, 52, .14); }
.lx-doc__rotulo { font-size: 12px; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: var(--sage-700); }
.lx-doc__titulo { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: clamp(40px, 5vw, 64px); line-height: 1.04; letter-spacing: -1.8px; color: var(--olive-800); }
.lx-doc__titulo a { color: inherit; }
.lx-doc__data { font-size: 14px; color: var(--ink-400); }
.lx-doc__conteudo > * { margin: 0; }
.lx-doc__conteudo > * + * { margin-top: 12px; }
.lx-doc__conteudo > p:first-child { font-size: 19px; line-height: 1.65; color: var(--ink-700); }
.lx-doc__conteudo > h2, .lx-doc__conteudo > .wp-block-heading { margin-top: 36px; font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.1; letter-spacing: -.6px; color: var(--olive-800); }
.lx-doc__conteudo > h3 { margin-top: 28px; font-size: 21px; letter-spacing: -.5px; }
.lx-doc__conteudo ul, .lx-doc__conteudo ol { padding-left: 20px; display: flex; flex-direction: column; gap: 6px; }
.lx-doc__conteudo ul { list-style: disc; }
.lx-doc__conteudo ol { list-style: decimal; }
.lx-doc__conteudo strong { color: var(--olive-800); font-weight: 600; }
/* ≠ protótipo: link no meio do texto sublinhado (só a cor não basta para identificar). */
.lx-doc__conteudo a { color: var(--olive-800); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.lx-doc__conteudo a:hover { color: var(--sage-700); }
.lx-doc__acoes { display: flex; flex-wrap: wrap; gap: 12px; }
.lx-doc--erro .lx-doc__conteudo > p:first-child { max-width: 640px; }
@media (max-width: 599px) { .lx-doc__lado { max-width: none; } }

/* ==========================================================================
   Elementos fixos: WhatsApp, VLibras, cookies
   ========================================================================== */
.lx-fab { position: fixed; right: 20px; bottom: max(20px, env(safe-area-inset-bottom)); z-index: 50; display: inline-flex; align-items: center; gap: 10px; height: 60px; padding: 0 22px 0 18px; border-radius: 100px; background: var(--wa); color: #FFFFFF; box-shadow: var(--sombra-flutua), 0 6px 18px -6px rgba(43, 49, 36, .35); font-size: 14px; font-weight: 600; transition: background 320ms; }
.lx-fab:hover { background: var(--wa-hover); color: #FFFFFF; }
.lx-fab .lx-ic { width: 24px; height: 24px; }

[vw] [vw-access-button] { position: fixed; right: 0; top: 50%; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; overflow: hidden !important; }
#vlibras-popup { display: none !important; }
#vlibras-app-root { --primary: #3F4834 !important; --ring: #8D9774 !important; --font-sans: "Montserrat", Arial, sans-serif !important; --default-font-family: "Montserrat", Arial, sans-serif !important; }
.lx-libras { position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 55; display: flex; align-items: center; justify-content: center; padding: 10px 8px 10px 10px; border-radius: 12px 0 0 12px; background: var(--libras); color: var(--olive-800); box-shadow: 0 20px 40px -20px rgba(0, 0, 0, .55), 0 0 0 1px rgba(251, 243, 228, .08); transition: padding 320ms var(--ease), background 320ms; }
.lx-libras:hover { padding-right: 14px; }
.lx-libras__circulo { width: 36px; height: 36px; border-radius: 50%; background: var(--sage-100); color: var(--olive-800); display: flex; align-items: center; justify-content: center; }
.lx-libras__circulo .lx-ic { width: 18px; height: 18px; }

.lx-cookies { position: fixed; left: 20px; bottom: max(20px, env(safe-area-inset-bottom)); z-index: 60; width: min(440px, calc(100vw - 40px)); padding: 24px; border-radius: 8px; background: var(--cream-50); box-shadow: 0 30px 70px -30px rgba(43, 49, 36, .55), 0 0 0 1px rgba(63, 72, 52, .1); display: none; flex-direction: column; gap: 16px; }
html.js:not(.cookies-ok) .lx-cookies, html.js .lx-cookies.is-aberto { display: flex; }
.lx-cookies__cab { display: flex; align-items: center; gap: 12px; }
.lx-cookies__icone { width: 40px; height: 40px; border-radius: 50%; background: var(--sage-100); color: var(--olive-800); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lx-cookies__icone .lx-ic { width: 18px; height: 18px; }
.lx-cookies__titulo { font-family: var(--font-display); font-size: 21px; letter-spacing: -.4px; color: var(--olive-800); }
.lx-cookies__texto { font-size: 14px; line-height: 1.6; color: var(--ink-600); }
.lx-cookies__texto a { color: var(--olive-800); text-decoration: underline; }
.lx-cookies__acoes { display: flex; gap: 10px; flex-wrap: wrap; }
.lx-cookies__btn { flex: 1 1 150px; height: 46px; border-radius: 100px; display: flex; align-items: center; justify-content: center; font: 600 13px var(--font-body); letter-spacing: .02em; transition: background 240ms; }
.lx-cookies__btn--todos { background: var(--olive-600); color: var(--cream-100); }
.lx-cookies__btn--todos:hover { background: var(--sage-hover); }
.lx-cookies__btn--necessarios { box-shadow: inset 0 0 0 1px rgba(63, 72, 52, .35); color: var(--olive-800); }
.lx-cookies__btn--necessarios:hover { background: var(--cream-200); }
.lx-cookies-reabrir { position: fixed; left: 20px; bottom: max(20px, env(safe-area-inset-bottom)); z-index: 50; width: 52px; height: 52px; border-radius: 50%; background: var(--cream-50); color: var(--olive-800); box-shadow: 0 20px 40px -20px rgba(43, 49, 36, .55), 0 0 0 1px rgba(63, 72, 52, .12); display: none; align-items: center; justify-content: center; transition: background 320ms, color 320ms; }
.lx-cookies-reabrir:hover { background: var(--olive-600); color: var(--cream-100); }
.lx-cookies-reabrir .lx-ic { width: 22px; height: 22px; }
html.js.cookies-ok .lx-cookies-reabrir { display: flex; }
html.js .lx-cookies.is-aberto ~ .lx-cookies-reabrir { display: none; }

/* Barra de administração (logado) */
.admin-bar .lx-cab { top: 32px; }
.admin-bar .lx-doc-cab { top: 32px; }
@media (max-width: 782px) { .admin-bar .lx-cab, .admin-bar .lx-doc-cab { top: 46px; } }
@media (max-width: 600px) { .admin-bar .lx-cab { top: 0; } .admin-bar .lx-doc-cab { top: 0; } }

/* Movimento reduzido: sem Ken Burns, sem zoom, sem rolagem suave */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.lx-hero__foto, .lx-hero__fotos.is-pronto .lx-hero__foto.is-ativa { transform: none; transition: opacity 2200ms var(--ease-fade); }
	.lx-servico__foto, .lx-servico__foto.is-ativa, .lx-janela__foto, .lx-janela__foto.is-ativa { transform: none; }
	.lx-servico:hover, .lx-etapa__cartao:hover { transform: none; }
	.lx-menu { animation: none; }
	.lx-faq__resposta, .lx-faq__mais .lx-ic { transition: none; }
	.lx-trilho { scroll-behavior: auto; }
}

/* ==========================================================================
   Celular e tablet — refinamento (v2.0.1)
   O protótipo só foi desenhado no computador; aqui o ritmo de espaços é próprio
   do celular: seções de 64px, blocos de 40px, grade de fotos com 12px.
   ========================================================================== */

/* Início no celular e no tablet: altura do conteúdo, não da tela. Com a altura da tela o
   texto ficava preso embaixo e sobravam 280–350px de foto escura vazia acima do título;
   agora o título vem logo abaixo do cabeçalho e o começo do Sobre aparece na primeira tela. */
@media (max-width: 1023px) {
	.lx-hero { min-height: 0; }
	.lx-hero__in { justify-content: flex-start; padding-top: 148px; padding-bottom: 64px; }
	.lx-chips { align-items: flex-start; }
	.lx-chips__fila > ul { justify-content: flex-start; }
}

/* Sobre empilhado (abaixo de 984px as duas linhas viram uma coluna): as 4 fotos
   formam uma grade 2×2 regular, com o mesmo respiro na horizontal e na vertical. */
@media (max-width: 983px) {
	.lx-sobre__in { gap: 12px; }
	.lx-sobre__linha { gap: 32px; }
	.lx-sobre__linha--base { gap: 40px; }
	.lx-sobre__duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.lx-sobre__alta, .lx-sobre__baixa { width: 100%; aspect-ratio: 4 / 5; }
	.lx-sobre__grade { gap: 12px; }
	.lx-sobre__texto { max-width: none; justify-self: stretch; }
}
@media (min-width: 600px) and (max-width: 983px) {
	.lx-sobre__alta, .lx-sobre__baixa { aspect-ratio: 4 / 3; }
}

@media (max-width: 767px) {
	section[id] { scroll-margin-top: 72px; }
	.lx-cab__in { padding-top: 14px; padding-bottom: 14px; }

	/* Ritmo vertical */
	.lx-sobre { padding: 64px 0 56px; }
	.lx-servicos, .lx-prof, .lx-equipe, .lx-depo, .lx-duvidas, .lx-contato { padding-top: 64px; padding-bottom: 64px; }
	.lx-servicos__in, .lx-equipe__in, .lx-depo__in { gap: 40px; }
	.lx-cab-centro, .lx-pilha { gap: 18px; }

	/* 01 Início: etiquetas em duas filas (3 + 2), como no computador */
	.lx-hero__in { padding-top: 108px; padding-bottom: 44px; }
	.lx-hero__pilha { gap: 24px; }
	.lx-hero__linha { gap: 22px; }
	.lx-hero__texto { font-size: 17px; }
	.lx-chips { align-items: flex-start; gap: 8px; }
	.lx-chips__fila > ul { gap: 8px; justify-content: flex-start; flex-wrap: wrap; }
	.lx-chip { height: 36px; gap: 8px; padding: 0 12px 0 10px; font-size: 10.5px; letter-spacing: .14em; }
	.lx-chip::before { width: 6px; height: 6px; }

	/* 03 Serviços: foto mais baixa, cartão mais compacto */
	.lx-servico__fotos { aspect-ratio: 16 / 10; }
	.lx-servico__corpo { gap: 10px; padding: 20px 20px 22px; }
	.lx-servico__titulo { font-size: 25px; }
	.lx-servico__acao { padding-top: 6px; }

	/* 04 Profissional e trajetória: o trilho corre até a borda da tela */
	.lx-prof__texto { gap: 28px; }
	.lx-prof__citacao { font-size: 20px; }
	.lx-prof__cartao { left: -12px; right: -12px; padding: 18px 16px; }
	.lx-prof__nome { font-size: 22px; }
	.lx-prof__cargo { font-size: 10.5px; letter-spacing: .14em; }
	.lx-trajetoria { margin-top: 64px; gap: 24px; }
	.lx-trajetoria__cab { flex-wrap: nowrap; align-items: flex-end; gap: 16px; }
	.lx-trajetoria__titulos { gap: 10px; }
	.lx-trajetoria__titulo { font-size: 28px; }
	.lx-trajetoria__setas { gap: 8px; flex-shrink: 0; }
	.lx-seta--linha { width: 44px; height: 44px; }
	.lx-trilho { margin: 0 -24px; padding: 0 24px 8px; scroll-padding-inline: 24px; grid-auto-columns: 78%; gap: 16px; }
	.lx-etapa { gap: 16px; }
	.lx-etapa__ano { height: 44px; }
	.lx-etapa__numero { font-size: 26px; }
	.lx-etapa__fio { margin-right: -16px; }
	.lx-etapa__cartao { padding: 20px; }

	/* 05 Equipe: cada pessoa bem separada da seguinte */
	.lx-equipe__grade { gap: 48px; }
	.lx-pessoa { gap: 20px; }
	.lx-pessoa__dados { gap: 10px; }
	.lx-pessoa__nome { font-size: 24px; }
	.lx-pessoa__bio { font-size: 15px; }

	/* 06 O espaço: foto em 4:5 (560px fixos cortavam demais as fotos horizontais) */
	.lx-espaco__carrossel { min-height: 0; aspect-ratio: 4 / 5; }
	.lx-espaco__controles { left: 20px; right: 20px; bottom: 20px; }
	.lx-espaco__texto { gap: 20px; padding: 48px 24px 56px; }

	/* 07 Depoimentos */
	.lx-depo__cab { gap: 24px; }
	.lx-depo__cartao { gap: 22px; padding: 28px 24px; }
	.lx-depo__texto { font-size: 19px; }
	.lx-depo__cartao.is-longo .lx-depo__texto { font-size: 15.5px; line-height: 1.55; letter-spacing: 0; }
	.lx-depo__cartao.is-longo { gap: 18px; }
	/* Celular: os cartões deslizam para o lado (o próximo aparece na borda) em vez de empilhar três textos longos. */
	.lx-depo__grade { display: flex; gap: 12px; margin: 0 -24px; padding: 0 24px 6px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 24px; scrollbar-width: none; overscroll-behavior-x: contain; }
	.lx-depo__grade::-webkit-scrollbar { display: none; }
	.lx-depo__cartao { flex: 0 0 86%; scroll-snap-align: start; }
	.lx-depo__autor { padding-top: 18px; }

	/* 08 Dúvidas: resposta na largura toda */
	.lx-duvidas__in { gap: 32px; }
	.lx-duvidas__lado { gap: 18px; }
	.lx-faq { gap: 8px; }
	.lx-faq__botao { gap: 16px; padding: 18px 16px 18px 20px; font-size: 18px; }
	.lx-faq__dobra p { padding: 0 20px 20px; }

	/* 09 Contato */
	.lx-contato__in, .lx-contato__grade { gap: 24px; }
	.lx-contato__cartao { min-height: 0; gap: 22px; padding: 28px 22px; }
	.lx-arco--contato { display: none; } /* no cartão estreito o traço cruzava o texto */
	.lx-contato__item { gap: 14px; padding: 14px 0; }
	.lx-contato__valor { font-size: 17px; }
	.lx-form, .lx-form__dupla { gap: 16px; }
	.lx-mapa, .lx-mapa iframe { min-height: 280px; }

	/* 10 Rodapé: contatos alinhados numa coluna, linha legal sem pontos soltos */
	.lx-rodape__in { gap: 36px; padding: 56px 24px 28px; }
	.lx-rodape__marca { gap: 18px; }
	.lx-rodape__logo { height: 92px; }
	.lx-rodape__marca p { font-size: 14.5px; }
	.lx-rodape__contatos { display: grid; justify-content: center; justify-items: start; gap: 18px; padding: 28px 0; }
	.lx-rodape__icone { width: 40px; height: 40px; }
	.lx-rodape__base { gap: 20px; }
	.lx-assinatura { letter-spacing: .3em; padding-left: .3em; line-height: 1.8; }
	.lx-assinatura__sep--quebra { display: none; }
	.lx-assinatura__quebra { display: block; }
	.lx-rodape__linha { flex-direction: column; gap: 14px; }
	.lx-rodape__linha .lx-rodape__ponto { display: none; }
	.lx-rodape__grupo { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; }
	.lx-rodape__grupo--info { flex-direction: column; align-items: center; gap: 4px; }
	.lx-rodape__cookies { display: inline; }

	/* Botões flutuantes: menores e recolhidos no fim do rodapé (nada de espaço morto no final) */
	.lx-fab { right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); height: 52px; padding: 0 18px 0 14px; transition: background 320ms, opacity 240ms, transform 240ms; }
	.lx-fab .lx-ic { width: 22px; height: 22px; }
	.lx-cookies-reabrir { left: 16px; bottom: max(16px, env(safe-area-inset-bottom)); width: 48px; height: 48px; transition: background 320ms, color 320ms, opacity 240ms, transform 240ms; }
	html.rodape-fim .lx-fab, html.rodape-fim .lx-cookies-reabrir, html.topo-cta .lx-fab { opacity: 0; transform: translateY(16px); pointer-events: none; }
	/* Aba do VLibras mais estreita: no meio da borda ela encostava no conteúdo */
	.lx-libras { top: auto; bottom: calc(max(16px, env(safe-area-inset-bottom)) + 64px); transform: none; padding: 6px 5px 6px 6px; border-radius: 10px 0 0 10px; }
	.lx-libras__circulo { width: 30px; height: 30px; }
	.lx-libras__circulo .lx-ic { width: 16px; height: 16px; }
	.lx-cookies { left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); width: auto; padding: 20px; gap: 14px; }

	/* Páginas legais */
	.lx-doc { padding: 40px 24px 64px; gap: 28px; }
	.lx-doc__artigo { gap: 28px; }
	.lx-doc__cab { padding-bottom: 24px; gap: 12px; }
	.lx-doc__titulo { font-size: 36px; letter-spacing: -1.2px; }
	.lx-doc__conteudo > p:first-child { font-size: 17px; }
	.lx-doc__conteudo > h2, .lx-doc__conteudo > .wp-block-heading { margin-top: 28px; font-size: 23px; }
	.lx-doc__lado { gap: 10px; }
	.lx-doc__lado a { font-size: 17px; }
	.lx-doc-cab__in { padding: 14px 24px; }
	.lx-doc-cab__voltar { height: 40px; padding: 0 16px; }
}

@media (max-width: 389px) { /* iPhone SE/mini (375) e Androids de 360 */
	.lx-container, .lx-cab__in, .lx-hero__in, .lx-rodape__in { padding-left: 20px; padding-right: 20px; }
	.lx-trilho { margin: 0 -20px; padding: 0 20px 8px; scroll-padding-inline: 20px; }
	.lx-depo__grade { margin: 0 -20px; padding: 0 20px 6px; scroll-padding: 0 20px; }
	.lx-chip { padding: 0 10px 0 9px; letter-spacing: .1em; }
	.lx-assinatura { letter-spacing: .2em; padding-left: .2em; }
	.lx-prof__cargo { letter-spacing: .1em; }
}
