/* Base compartilhada: reset, acessibilidade, botões e lightbox. */
/* Fontes auto-hospedadas (licença OFL, arquivos em assets/fonts). */
@font-face { font-family: "Bricolage Grotesque"; font-style: normal; font-weight: 200 800; font-display: swap; src: url("fonts/bricolage-grotesque-latin-var.woff2") format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/instrument-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/instrument-sans-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-style: normal; font-weight: 600 700; font-display: swap; src: url("fonts/instrument-sans-latin-600-normal.woff2") format("woff2"); }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 84px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
html.sem-rolagem { overflow: hidden; }
body { margin: 0; font-family: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 1.0625rem; line-height: 1.6; color: var(--tinta); background: var(--fundo); overflow-x: clip; }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
picture { display: block; }
h1, h2, h3 { font-family: "Bricolage Grotesque", "Instrument Sans", system-ui, sans-serif; font-weight: 500; line-height: 1.05; letter-spacing: -0.02em; margin: 0; text-wrap: balance; }
p { margin: 0; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; list-style: none; }
a { color: inherit; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 3px; border-radius: 2px; }
.pular { position: absolute; left: 12px; top: -60px; z-index: 100; background: #fff; color: #000; padding: 10px 16px; border-radius: 6px; }
.pular:focus { top: 12px; }
[hidden] { display: none !important; }

.botao { display: inline-flex; align-items: center; justify-content: center; gap: .55em; min-height: 48px; padding: .7em 1.35em; border-radius: 999px; font-weight: 600; font-size: 1rem; line-height: 1.2; text-decoration: none; text-align: center; transition: background-color .2s, color .2s, border-color .2s; }
.botao svg { width: 1.25em; height: 1.25em; flex: none; }

/* ---------- Lightbox ---------- */
.lightbox { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(18, 20, 13, .97); color: #fff; overflow: hidden; }
.lightbox::backdrop { background: rgba(18, 20, 13, .9); }
.lightbox[open] { display: grid; grid-template-rows: 1fr auto; }
.lb-palco { display: flex; align-items: center; justify-content: center; padding: 64px 72px 8px; min-height: 0; overflow: hidden; touch-action: pan-y pinch-zoom; }
.lb-palco img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; user-select: none; -webkit-user-drag: none; cursor: default; }
.lb-palco img[data-pode-zoom] { cursor: zoom-in; }
.lb-palco.zoom { display: block; overflow: auto; touch-action: auto; padding: 64px 16px 8px; cursor: grab; }
.lb-palco.zoom img { max-width: none; max-height: none; margin: 0 auto; cursor: zoom-out; background: #fff; }
.lb-video { max-height: 100%; max-width: 100%; background: #000; }
.lb-video--vertical { aspect-ratio: 9 / 16; height: 100%; width: auto; }
.lb-video--horizontal { width: min(100%, 1280px); aspect-ratio: 16 / 9; height: auto; }
.lb-legenda { padding: 12px 72px 18px; font-size: .95rem; color: rgba(255, 255, 255, .85); text-align: center; min-height: 3.2em; }
.lb-contador { color: rgba(255, 255, 255, .55); margin-left: .5em; white-space: nowrap; }
.lb-btn { position: absolute; z-index: 2; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: rgba(28, 31, 20, .82); box-shadow: 0 0 0 1px rgba(255, 255, 255, .18); color: #fff; transition: background-color .2s; }
.lb-btn:hover { background: rgba(60, 66, 44, .95); }
.lb-btn svg { width: 24px; height: 24px; }
.lb-fechar { top: 12px; right: 12px; }
.lb-ant { left: 12px; top: 50%; transform: translateY(-50%); }
.lb-prox { right: 12px; top: 50%; transform: translateY(-50%); }
.lb-zoom { top: 12px; left: 12px; width: auto; padding: 0 16px 0 12px; border-radius: 999px; gap: 8px; display: inline-flex; align-items: center; font-weight: 600; }
.lb-zoom[hidden] { display: none; }
.lb-zoom svg { width: 20px; height: 20px; }
@media (max-width: 700px) {
  .lb-palco { padding: 64px 8px 8px; }
  .lb-ant, .lb-prox { top: auto; bottom: 8px; transform: none; }
  .lb-legenda { padding: 12px 64px 18px; font-size: .875rem; }
}

/* Landing page Tree Residence. Paleta tirada da identidade oficial (logo SVG). */
:root {
  --musgo: #2f351d;      /* verde escuro do logo */
  --musgo-2: #262b17;
  --salvia: #7a8262;     /* verde do logo */
  --salmao: #f2c0a9;     /* salmão do logo */
  --folha: #eef0e7;      /* fundo claro esverdeado */
  --papel: #fbfbf8;
  --tinta: #1f2318;
  --tinta-2: #4b5040;
  --fundo: var(--papel);
  --foco: #e58f66;
  --borda: rgba(47, 53, 29, .16);
  --largura: 1240px;
  --margem: clamp(16px, 4vw, 48px);
  --secao: clamp(72px, 10vw, 140px);
}
.tree { color-scheme: light; }

/* ---------- Tipografia ---------- */
.tree h1 { font-size: clamp(2.5rem, 6vw, 5.2rem); font-weight: 500; letter-spacing: -0.025em; line-height: 1.02; }
.tree h2 { font-size: clamp(2rem, 4.2vw, 3.5rem); }
.tree h3 { font-size: clamp(1.15rem, 1.6vw, 1.35rem); font-weight: 600; letter-spacing: -0.01em; line-height: 1.2; }
.secao { padding: var(--secao) var(--margem); }
.secao > * { max-width: var(--largura); margin-left: auto; margin-right: auto; }
.legenda { display: block; font-size: .8125rem; line-height: 1.4; color: var(--tinta-2); padding-top: .6em; text-align: left; }

/* ---------- Botões ---------- */
.botao--salmao { background: var(--salmao); color: var(--musgo); }
.botao--salmao:hover { background: #f7d3c2; }
.botao--vazado { border: 1.5px solid rgba(255, 255, 255, .7); color: #fff; }
.botao--vazado:hover { background: rgba(255, 255, 255, .12); border-color: #fff; }
.botao--musgo { background: var(--musgo); color: #fff; }
.botao--musgo:hover { background: var(--salvia); }

/* ---------- Cabeçalho ---------- */
.topo { position: fixed; inset: 0 0 auto; z-index: 50; color: #fff; transition: background-color .3s, color .3s, box-shadow .3s; }
.topo-in { display: flex; align-items: center; gap: 24px; max-width: calc(var(--largura) + 2 * var(--margem)); margin: 0 auto; padding: 14px var(--margem); }
.topo-logo { flex: none; display: block; width: 92px; }
.topo-logo img { width: 100%; height: auto; }
.logo-escuro { display: none !important; }
.topo--solido { background: rgba(251, 251, 248, .96); color: var(--musgo); box-shadow: 0 1px 0 var(--borda); backdrop-filter: blur(8px); }
.topo--solido .logo-claro { display: none; }
.topo--solido .logo-escuro { display: block !important; }
.menu { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.menu ul { display: flex; gap: 22px; }
.menu ul a { text-decoration: none; font-weight: 500; font-size: .95rem; padding: 6px 0; border-bottom: 1.5px solid transparent; }
.menu ul a:hover { border-bottom-color: currentColor; }
.menu .botao { min-height: 42px; padding: .55em 1.1em; font-size: .9rem; }
.menu-botao { display: none; margin-left: auto; min-height: 44px; padding: 0 18px; border: 1.5px solid currentColor; border-radius: 999px; font-weight: 600; }
@media (max-width: 1080px) {
  .menu-botao { display: inline-flex; align-items: center; }
  .menu { position: fixed; inset: 0; flex-direction: column; align-items: flex-start; justify-content: center; gap: 32px; padding: 96px var(--margem) 40px; background: var(--musgo); color: #fff; transform: translateY(-100%); visibility: hidden; transition: transform .35s ease, visibility 0s .35s; }
  .menu ul { flex-direction: column; gap: 6px; }
  .menu ul a { font-family: "Bricolage Grotesque", sans-serif; font-size: 2rem; }
  .menu-aberto .menu { transform: none; visibility: visible; transition: transform .35s ease; }
  .menu-aberto .topo { color: #fff; background: transparent; box-shadow: none; backdrop-filter: none; }
  .menu-aberto .topo .logo-claro { display: block; }
  .menu-aberto .topo .logo-escuro { display: none !important; }
  .menu-botao, .topo-logo { position: relative; z-index: 2; }
}

/* ---------- Hero ---------- */
.hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; color: #fff; overflow: hidden; isolation: isolate; }
.hero-img, .hero-img img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-img img { object-fit: cover; object-position: 58% 62%; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: 0; background:
  linear-gradient(to top, rgba(26, 30, 16, .86) 0%, rgba(26, 30, 16, .45) 34%, rgba(26, 30, 16, 0) 62%),
  linear-gradient(to right, rgba(26, 30, 16, .72) 0%, rgba(26, 30, 16, .38) 38%, rgba(26, 30, 16, 0) 62%),
  linear-gradient(to bottom, rgba(26, 30, 16, .5) 0%, rgba(26, 30, 16, 0) 22%); }
.hero-texto { position: relative; z-index: 2; width: 100%; max-width: calc(var(--largura) + 2 * var(--margem)); margin: 0 auto; padding: 0 var(--margem) clamp(56px, 9vh, 110px); }
.hero h1 { max-width: 13ch; }
.hero-status { font-weight: 600; color: var(--salmao); margin-bottom: 18px; font-size: 1rem; }
.hero-sub { max-width: 44ch; margin-top: 22px; font-size: clamp(1.05rem, 1.4vw, 1.25rem); color: rgba(255, 255, 255, .9); }
.hero-preco { margin-top: 14px; font-size: 1rem; color: rgba(255, 255, 255, .9); }
.hero-preco strong { color: var(--salmao); font-weight: 600; }
.hero-acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.hero-credito { position: absolute; z-index: 2; right: var(--margem); bottom: 18px; font-size: .75rem; color: rgba(255, 255, 255, .7); }

/* Anéis de crescimento: o único elemento gráfico autoral da página */
.aneis { position: absolute; pointer-events: none; overflow: visible; }
.aneis path { fill: none; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.aneis--hero { z-index: 1; width: min(78vw, 980px); top: -18%; right: -16%; opacity: .55; }
.aneis--hero path { stroke: var(--salmao); stroke-dasharray: 1; stroke-dashoffset: 1; animation: crescer 2.6s cubic-bezier(.3, .6, .2, 1) forwards; animation-delay: calc(.25s + var(--i) * 110ms); }
@keyframes crescer { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .aneis--hero path { animation: none; stroke-dashoffset: 0; } }
@media (max-width: 700px) {
  .hero { min-height: 92svh; }
  .hero-img img { object-position: 50% 40%; }
  .aneis--hero { width: 130vw; top: -12%; right: -55%; opacity: .55; }
  .hero-credito { left: var(--margem); right: auto; bottom: 10px; }
  .hero-acoes .botao { width: 100%; }
}

/* ---------- Números ---------- */
.numeros { background: var(--musgo); color: #fff; padding: 0 var(--margem); }
.numeros ul { max-width: var(--largura); margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); }
.numeros li { padding: 30px 20px 30px 0; display: flex; flex-direction: column; gap: 4px; }
.numeros li + li { padding-left: 24px; border-left: 1px solid rgba(242, 192, 169, .25); }
.numeros strong { font-family: "Bricolage Grotesque", sans-serif; font-weight: 500; font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1; color: var(--salmao); letter-spacing: -0.02em; }
.numeros span { font-size: .9rem; color: rgba(255, 255, 255, .78); }
@media (max-width: 760px) {
  .numeros ul { grid-template-columns: 1fr 1fr; }
  .numeros li, .numeros li + li { padding: 22px 12px; border-left: 0; }
  .numeros li:nth-child(even) { border-left: 1px solid rgba(242, 192, 169, .25); padding-left: 18px; }
  .numeros li:nth-child(n+3) { border-top: 1px solid rgba(242, 192, 169, .25); }
}

/* ---------- O Tree ---------- */
.o-tree { background: var(--folha); }
.o-tree-grid { display: grid; grid-template-columns: 5fr 6fr; gap: clamp(32px, 6vw, 96px); align-items: end; }
.o-tree-texto h2 { max-width: 12ch; margin-bottom: 32px; }
.o-tree-texto p + p { margin-top: 1.1em; }
.destaque { font-size: clamp(1.15rem, 1.5vw, 1.3rem); line-height: 1.55; color: var(--musgo); }
.o-tree-texto p:not(.destaque) { color: var(--tinta-2); max-width: 58ch; }
.citacao { margin: 40px 0 0; padding-left: 20px; border-left: 2px solid var(--salvia); font-size: 1rem; color: var(--tinta-2); max-width: 54ch; }
.citacao p::before { content: "“"; } .citacao p::after { content: "”"; }
.citacao footer { margin-top: 10px; font-weight: 600; color: var(--musgo); font-size: .9rem; }
.o-tree-img, .o-tree-aerea, .lazer-aerea, .loc-img, .seguranca-img { display: block; width: 100%; text-align: left; cursor: zoom-in; }
.o-tree-img img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.o-tree-aerea { margin-top: clamp(48px, 7vw, 96px); }
.o-tree-aerea img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }
.ficha { margin-top: 40px; border-top: 1px solid var(--borda); border-bottom: 1px solid var(--borda); }
.ficha summary { cursor: pointer; padding: 20px 0; font-weight: 600; color: var(--musgo); list-style: none; display: flex; justify-content: space-between; align-items: center; }
.ficha summary::-webkit-details-marker { display: none; }
.ficha summary::after { content: "+"; font-size: 1.6rem; font-weight: 400; line-height: 1; }
.ficha[open] summary::after { content: "−"; }
.ficha dl { margin: 0 0 28px; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px 40px; }
.ficha dt { font-size: .85rem; color: var(--tinta-2); }
.ficha dd { margin: 2px 0 0; font-weight: 600; color: var(--musgo); }
@media (max-width: 860px) {
  .o-tree-grid { grid-template-columns: 1fr; }
  .o-tree-img img { aspect-ratio: 4 / 3; }
  .o-tree-aerea img { aspect-ratio: 16 / 9; }
}

/* ---------- Casas ---------- */
.casas { position: relative; background: var(--musgo); color: #fff; overflow: hidden; isolation: isolate; }
.casas .legenda, .casas .faixa p { color: rgba(255, 255, 255, .72); }
.aneis--casas { z-index: -1; width: 900px; left: -380px; top: -260px; opacity: .3; }
.aneis--casas path, .aneis--contato path { stroke: var(--salvia); }
.casas-topo { display: grid; grid-template-columns: 7fr 5fr; gap: 40px; align-items: end; margin-bottom: clamp(40px, 5vw, 64px); }
.casas-topo h2 { max-width: 15ch; }
.casas-topo p { color: rgba(255, 255, 255, .8); max-width: 46ch; }
.mosaico { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: clamp(150px, 17vw, 250px); gap: 14px; }
.mosaico-item { position: relative; overflow: hidden; cursor: zoom-in; display: block; }
.mosaico-item picture, .mosaico-item img { width: 100%; height: 100%; }
.mosaico-item img { object-fit: cover; transition: transform .6s ease; }
.mosaico-item:hover img { transform: scale(1.03); }
.mosaico-item .legenda { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px 14px 10px; background: linear-gradient(to top, rgba(20, 23, 12, .75), transparent); color: #fff; }
.m-a { grid-column: 1 / 8; grid-row: 1 / 3; }
.m-b { grid-column: 8 / 13; grid-row: 1 / 2; }
.m-c { grid-column: 8 / 10; grid-row: 2 / 4; }
.m-d { grid-column: 10 / 13; grid-row: 2 / 3; }
.m-e { grid-column: 10 / 13; grid-row: 3 / 4; }
.casas-detalhe { grid-column: 1 / 8; grid-row: 3 / 4; align-self: center; padding: 8px clamp(0px, 3vw, 40px) 8px 0; }
.casas-detalhe h3 { color: var(--salmao); margin-bottom: 14px; }
.lista-check { display: grid; gap: 10px 32px; grid-template-columns: 1fr 1fr; }
.lista-check li { position: relative; padding-left: 26px; line-height: 1.4; }
.lista-check li::before { content: ""; position: absolute; left: 0; top: .32em; width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid var(--salmao); box-shadow: inset 0 0 0 2.5px var(--musgo), inset 0 0 0 6px var(--salmao); }
.faixa-titulo { margin-top: clamp(64px, 8vw, 104px); margin-bottom: 20px; }
.faixa { --recuo: max(0px, (100vw - var(--largura)) / 2 - var(--margem)); display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: var(--recuo); padding: 0 var(--margem) 14px var(--recuo); scrollbar-color: var(--salvia) transparent; max-width: none; margin-left: 0; margin-right: calc(-1 * var(--margem)); }
.faixa li { flex: 0 0 min(80vw, 460px); scroll-snap-align: start; }
.faixa-item { display: block; width: 100%; cursor: zoom-in; }
.faixa-item img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.faixa p { font-size: .85rem; margin-top: 10px; }
@media (max-width: 760px) {
  .casas-topo { grid-template-columns: 1fr; gap: 20px; }
  .mosaico { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; gap: 10px; }
  .m-a, .m-b { grid-column: 1 / 3; grid-row: auto; aspect-ratio: 3 / 2; }
  .m-c { grid-column: 1 / 2; grid-row: span 2; }
  .m-d, .m-e { grid-column: 2 / 3; grid-row: span 1; aspect-ratio: 1 / 1; }
  .casas-detalhe { grid-column: 1 / 3; grid-row: auto; padding: 24px 0 0; }
  .lista-check { grid-template-columns: 1fr; }
}

/* ---------- Lazer ---------- */
.lazer { background: var(--papel); }
.lazer-topo { display: grid; grid-template-columns: 6fr 5fr; gap: 40px; align-items: end; margin-bottom: clamp(36px, 5vw, 56px); }
.lazer-topo h2 { max-width: 13ch; color: var(--musgo); }
.lazer-topo p { color: var(--tinta-2); }
.lazer-aerea img { width: 100%; aspect-ratio: 2.3 / 1; object-fit: cover; }
.lazer-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 18px; }
.lazer-item button { display: block; width: 100%; cursor: zoom-in; overflow: hidden; }
.lazer-item img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .6s ease; }
.lazer-item button:hover img { transform: scale(1.03); }
.lazer-item h3 { margin-top: 12px; color: var(--musgo); font-size: 1.05rem; }
.lazer-item--grande { grid-column: span 2; grid-row: span 2; display: flex; flex-direction: column; }
.lazer-item--grande button { flex: 1; }
.lazer-item--grande picture, .lazer-item--grande img { height: 100%; aspect-ratio: auto; }
.lazer-lista { margin-top: 40px; color: var(--tinta-2); }
.lazer-lista span { font-weight: 600; color: var(--musgo); }
@media (max-width: 860px) {
  .lazer-topo { grid-template-columns: 1fr; gap: 16px; }
  .lazer-aerea img { aspect-ratio: 4 / 3; }
  .lazer-grid { grid-template-columns: 1fr 1fr; gap: 24px 12px; }
  .lazer-item--grande { grid-column: span 2; grid-row: auto; }
  .lazer-item--grande img { aspect-ratio: 16 / 10; }
}

/* ---------- Segurança ---------- */
.seguranca { background: var(--folha); display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
.seguranca > * { max-width: none; margin: 0; }
.seguranca-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 60% 50%; }
.seguranca-texto { max-width: 520px; }
.seguranca-texto h2 { color: var(--musgo); margin-bottom: 32px; }
.seguranca .lista-check { grid-template-columns: 1fr; }
.seguranca .lista-check li::before { border-color: var(--salvia); box-shadow: inset 0 0 0 2.5px var(--folha), inset 0 0 0 6px var(--salvia); }
@media (min-width: 1340px) { .seguranca { padding-left: calc((100vw - var(--largura)) / 2); } }
@media (max-width: 860px) { .seguranca { grid-template-columns: 1fr; } }

/* ---------- Plantas ---------- */
.plantas { background: #fff; }
.plantas-topo { display: grid; grid-template-columns: 5fr 6fr; gap: 40px; align-items: end; margin-bottom: 40px; }
.plantas-topo h2 { color: var(--musgo); }
.plantas-topo p { color: var(--tinta-2); }
.plantas-hum { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.planta-hum button, .implantacao button { position: relative; display: block; width: 100%; cursor: zoom-in; background: var(--folha); }
.planta-hum img { width: 100%; aspect-ratio: 2168 / 2250; object-fit: contain; }
.planta-hum figcaption, .implantacao figcaption { margin-top: 10px; font-size: .85rem; color: var(--tinta-2); }
.planta-hum, .implantacao { margin: 0; }
.zoom-dica { position: absolute; right: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px 7px 9px; border-radius: 999px; background: rgba(255, 255, 255, .94); color: var(--musgo); font-size: .82rem; font-weight: 600; box-shadow: 0 1px 2px rgba(0, 0, 0, .12); }
.zoom-dica svg { width: 18px; height: 18px; }
.plantas-sub { margin-top: clamp(56px, 7vw, 88px); margin-bottom: 18px; color: var(--musgo); }
.tabs { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid var(--borda); margin-bottom: 28px; }
.tabs [role="tab"] { flex: none; white-space: nowrap; padding: 12px 16px; font-weight: 600; color: var(--tinta-2); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.tabs [role="tab"][aria-selected="true"] { color: var(--musgo); border-bottom-color: var(--salvia); }
.painel-planta { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 48px); }
.planta-variante h3 { font-size: 1.05rem; margin-bottom: 14px; color: var(--musgo); }
.planta-paginas { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.planta-pg { display: block; width: 100%; cursor: zoom-in; border: 1px solid var(--borda); background: #fff; padding: 8px; text-align: left; transition: border-color .2s; }
.planta-pg:hover { border-color: var(--salvia); }
.planta-pg img { width: 100%; aspect-ratio: 0.72; object-fit: contain; }
.planta-pg span { display: block; font-size: .85rem; font-weight: 600; margin-top: 6px; color: var(--musgo); }
.link-pdf { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font-weight: 600; color: var(--musgo); text-underline-offset: 3px; min-height: 44px; }
.link-pdf svg { width: 20px; height: 20px; }
.implantacoes { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.implantacao--geral { grid-column: 1 / -1; }
.implantacao img { width: 100%; aspect-ratio: 16 / 9; object-fit: contain; }
@media (max-width: 760px) {
  .plantas-topo, .plantas-hum, .painel-planta, .implantacoes { grid-template-columns: 1fr; }
  .plantas-topo { gap: 14px; }
}

/* ---------- Vídeos ---------- */
.videos { background: var(--musgo-2); color: #fff; }
.videos-topo { display: flex; justify-content: space-between; align-items: end; gap: 20px; flex-wrap: wrap; margin-bottom: 32px; }
.videos-topo p { color: rgba(255, 255, 255, .7); }
.video-destaque { margin: 0 auto; }
.video-destaque video { width: 100%; height: auto; aspect-ratio: 16 / 9; background: #000; }
.video-destaque figcaption { margin-top: 12px; color: rgba(255, 255, 255, .78); font-size: .95rem; }
.video-destaque figcaption strong { color: #fff; margin-right: .4em; }
.reels { margin-top: clamp(40px, 5vw, 64px); display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.reel { position: relative; display: block; width: 100%; overflow: hidden; text-align: left; }
.reel img { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; transition: transform .6s ease, opacity .3s; }
.reel:hover img { transform: scale(1.03); }
.reel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(15, 17, 9, .82) 0%, rgba(15, 17, 9, 0) 45%); }
.reel-play { position: absolute; z-index: 1; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 60px; height: 60px; border-radius: 50%; background: var(--salmao); color: var(--musgo); display: grid; place-items: center; }
.reel-play svg { width: 26px; height: 26px; margin-left: 3px; }
.reel-info { position: absolute; z-index: 1; left: 14px; right: 14px; bottom: 12px; display: flex; justify-content: space-between; gap: 10px; align-items: end; }
.reel-info strong { font-family: "Bricolage Grotesque", sans-serif; font-weight: 500; font-size: 1.1rem; line-height: 1.15; }
.reel-info span { font-size: .8rem; color: rgba(255, 255, 255, .8); }
.reels p { margin-top: 10px; font-size: .88rem; color: rgba(255, 255, 255, .7); }
@media (max-width: 860px) { .reels { grid-template-columns: 1fr 1fr; gap: 24px 12px; } }

/* ---------- Galeria ---------- */
.galeria { background: var(--papel); }
.galeria-topo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 28px; }
.galeria-topo h2 { color: var(--musgo); }
.filtros { display: flex; flex-wrap: wrap; gap: 8px; }
.filtros button { min-height: 44px; padding: 8px 16px; border-radius: 999px; border: 1.5px solid var(--borda); font-weight: 600; font-size: .92rem; color: var(--musgo); }
.filtros button span { font-weight: 400; color: var(--tinta-2); margin-left: 2px; }
.filtros button:hover { border-color: var(--salvia); }
.filtros button[aria-pressed="true"] { background: var(--musgo); border-color: var(--musgo); color: #fff; }
.filtros button[aria-pressed="true"] span { color: var(--salmao); }
.g-grid { display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: clamp(90px, 10vw, 150px); grid-auto-flow: dense; gap: 10px; }
.g-item button { display: block; width: 100%; height: 100%; overflow: hidden; position: relative; cursor: zoom-in; }
.g-item picture, .g-item img { width: 100%; height: 100%; }
.g-item img { object-fit: cover; transition: transform .6s ease; }
.g-item button:hover img { transform: scale(1.04); }
.g-item[data-cat="plantas"] button { background: #fff; outline: 1px solid var(--borda); outline-offset: -1px; }
.g-item[data-cat="plantas"] img { object-fit: contain; padding: 6px; }
.g-video button { cursor: pointer; }
.g-video .reel-play { width: 48px; height: 48px; }
.g-l { grid-column: span 4; grid-row: span 3; }
.g-w { grid-column: span 4; grid-row: span 2; }
.g-m, .g-s, .g-q { grid-column: span 2; grid-row: span 2; }
.g-v { grid-column: span 2; grid-row: span 3; }
.aviso-galeria { margin-top: 12px; font-size: .85rem; color: var(--tinta-2); min-height: 1.4em; }
@media (max-width: 760px) {
  .g-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 30vw; gap: 8px; }
  .g-l, .g-w { grid-column: span 2; grid-row: span 2; }
  .g-m, .g-s, .g-q { grid-column: span 1; grid-row: span 1; }
  .g-v { grid-column: span 1; grid-row: span 2; }
}

/* ---------- Localização ---------- */
.localizacao { background: var(--folha); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
.localizacao > * { max-width: none; margin: 0; }
@media (min-width: 1340px) { .localizacao { padding-left: calc((100vw - var(--largura)) / 2); padding-right: 0; } }
.loc-texto h2 { color: var(--musgo); margin-bottom: 20px; max-width: 14ch; }
.loc-endereco { display: flex; gap: 8px; align-items: center; font-weight: 600; color: var(--musgo); margin-bottom: 24px; }
.loc-endereco svg { width: 22px; height: 22px; flex: none; }
.loc-lista { border-top: 1px solid var(--borda); margin-bottom: 12px; }
.loc-lista li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--borda); }
.loc-lista strong { font-weight: 600; color: var(--musgo); white-space: nowrap; font-variant-numeric: tabular-nums; }
.loc-fonte { font-size: .8rem; color: var(--tinta-2); margin-bottom: 24px; }
.loc-mapa { position: relative; aspect-ratio: 5 / 4; background: #dfe3d6; }
.loc-mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 860px) { .localizacao { grid-template-columns: 1fr; } .loc-mapa { aspect-ratio: 4 / 3; } }

/* ---------- Contato ---------- */
.contato { position: relative; background: var(--musgo); color: #fff; padding: var(--secao) var(--margem); overflow: hidden; isolation: isolate; }
.aneis--contato { z-index: -1; width: 820px; right: -300px; bottom: -380px; opacity: .35; }
.contato-in { max-width: var(--largura); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
.contato h2 { max-width: 13ch; margin-bottom: 20px; }
.contato p { color: rgba(255, 255, 255, .82); max-width: 44ch; }
.contato-canais { margin-top: 32px; display: grid; gap: 4px; }
.contato-canais a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 1.1rem; text-decoration: none; border-bottom: 1px solid transparent; }
.contato-canais a:hover { border-bottom-color: var(--salmao); }
.contato-canais svg { width: 22px; height: 22px; color: var(--salmao); }
.form-pergunta { background: rgba(255, 255, 255, .06); border: 1px solid rgba(242, 192, 169, .25); padding: clamp(22px, 3vw, 36px); display: grid; gap: 18px; }
.campo { display: grid; gap: 6px; }
.campo label { font-weight: 600; font-size: .95rem; }
.campo label span { font-weight: 400; color: rgba(255, 255, 255, .65); }
.campo input, .campo select, .campo textarea { font: inherit; color: var(--tinta); background: #fff; border: 1.5px solid transparent; border-radius: 6px; min-height: 48px; padding: 10px 12px; width: 100%; }
.campo input:focus-visible, .campo select:focus-visible, .campo textarea:focus-visible { outline: 3px solid var(--salmao); outline-offset: 1px; }
.campo [aria-invalid="true"] { border-color: #f08a6a; box-shadow: 0 0 0 2px #f08a6a; }
.campo textarea { resize: vertical; min-height: 120px; }
.campo-duplo { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.campo-armadilha { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-status { min-height: 1.4em; font-weight: 600; }
.form-status.erro { color: var(--salmao); }
.form-status a { color: #fff; }
.contato-end { display: flex; gap: 10px; align-items: center; min-height: 44px; color: rgba(255, 255, 255, .82); }
.contato-end svg { width: 22px; height: 22px; color: var(--salmao); flex: none; }
.form-pergunta .botao { justify-self: start; }
@media (max-width: 860px) { .contato-in { grid-template-columns: 1fr; } .form-pergunta .botao { justify-self: stretch; } }
@media (max-width: 520px) { .campo-duplo { grid-template-columns: 1fr; } }

/* ---------- Rodapé ---------- */
.rodape { background: var(--musgo-2); color: rgba(255, 255, 255, .78); padding: 48px var(--margem) 96px; }
.rodape-in { max-width: var(--largura); margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 32px 56px; }
.rodape-in > img { width: 96px; }
.rodape-ficha { display: flex; flex-wrap: wrap; gap: 16px 40px; margin: 0; flex: 1; }
.rodape-ficha dt { font-size: .8rem; color: rgba(255, 255, 255, .55); }
.rodape-ficha dd { margin: 0; font-weight: 600; color: #fff; }
.rodape-macc img { width: 132px; }
.rodape-legal { max-width: var(--largura); margin: 32px auto 0; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .78rem; line-height: 1.55; }
@media (min-width: 761px) { .rodape { padding-bottom: 48px; } }

/* ---------- CTA fixo no mobile ---------- */
.cta-movel { display: none; }
@media (max-width: 760px) {
  .cta-movel { position: fixed; z-index: 40; left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; border-radius: 999px; background: var(--salmao); color: var(--musgo); font-weight: 700; text-decoration: none; box-shadow: 0 6px 20px rgba(20, 23, 12, .3); }
  .cta-movel svg { width: 22px; height: 22px; }
  .menu-aberto .cta-movel { display: none; }
}
