/* ===================================== */
/* TOKENS / IDENTIDADE VISUAL ARBORATTO */
/* ===================================== */
:root{
  --bg-base:#f7f3f2;
  --green-deep:#3a4a3f;
  --green-soft:#92a673;
  --brown-accent:#af9061;

  --text-main:#3a4a3f;
  --text-soft:#5f675f;
  --text-light:#f7f3f2;

  --white-soft:#fffdfc;
  --border-soft:rgba(58,74,63,0.10);
  --border-strong:rgba(58,74,63,0.16);

  --shadow-soft:0 18px 45px rgba(58,74,63,0.08);
  --shadow-medium:0 20px 50px rgba(58,74,63,0.12);
  --shadow-strong:0 24px 60px rgba(58,74,63,0.16);

  --radius-sm:14px;
  --radius-md:20px;
  --radius-lg:28px;
  --radius-pill:999px;

  --container:1280px;
  --container-wide:1400px;

  --transition-fast:0.25s ease;
  --transition-base:0.4s ease;
  --transition-slow:0.7s ease;
}
/* ===== FIM TOKENS ===== */



/* ===================================== */
/* RESET GERAL */
/* ===================================== */
*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:'Inter', Arial, sans-serif;
  background:var(--bg-base);
  color:var(--text-main);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img{
  max-width:100%;
  display:block;
}

a{
  color:inherit;
}

button,
input,
textarea,
select{
  font:inherit;
}
/* ===== FIM RESET GERAL ===== */



/* ===================================== */
/* BASE TIPOGRÁFICA PREMIUM */
/* ===================================== */
h1,
h2,
h3,
.logo{
  font-family:'Cormorant Garamond', serif;
  font-weight:600;
  letter-spacing:0.02em;
}

p,
span,
a,
button{
  font-family:'Inter', Arial, sans-serif;
}

.secao h2,
.mapa-topo h2{
  font-size:clamp(2.4rem, 4vw, 3.5rem);
  line-height:0.95;
  color:var(--green-deep);
}

.secao p,
.projeto-texto p{
  color:var(--text-soft);
}
/* ===== FIM BASE TIPOGRÁFICA ===== */



/* ===================================== */
/* HELPERS / REVEAL BASE */
/* ===================================== */
.reveal{
  opacity:0;
  transform:translateY(40px);
  transition:opacity 0.8s ease, transform 0.8s ease;
}

.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
/* ===== FIM HELPERS ===== */



/* ===================================== */
/* HEADER / MENU PREMIUM */
/* ===================================== */

.menu{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  height: 88px;
  display: flex;
  align-items: center;

  background: rgba(247,243,242,0.72);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);

  border-bottom: 1px solid rgba(58,74,63,0.08);

  transition:
    height 0.35s ease,
    background 0.35s ease,
    box-shadow 0.35s ease,
    border-color 0.35s ease;
}

/* CONTAINER INTERNO */

.menu-inner{
  width: 100%;
  max-width: 1400px;
  height: 100%;
  margin: 0 auto;
  padding: 0 150px;

  display: flex;
  align-items: center;
}

/* ===================================== */
/* LOGO */
/* ===================================== */

.logo{
  display: flex;
  align-items: center;
  flex-shrink: 15;
}

.logo a{
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.logo img{
  width: auto;
  height: 150px;
  max-height: 130px;
  object-fit: contain;

  transition:
    height 0.35s ease,
    transform 0.35s ease,
    opacity 0.35s ease;
}

/* ===================================== */
/* MENU */
/* ===================================== */

.menu-nav{
  display: flex;
  align-items: center;
  gap: 34px;
  margin-left: auto;
}

.menu-nav a{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;

  text-decoration: none;
  color: var(--green-deep);
  font-family: 'Inter', sans-serif; /* força a fonte correta */
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;

  transition:
    color var(--transition-fast),
    opacity var(--transition-fast),
    transform var(--transition-fast);
}

/* LINHA ANIMADA */

.menu-nav a::after{
  content: '';
  position: absolute;
  left: 0;
  bottom: -8px;
  width: 0;
  height: 1.5px;
  background: var(--brown-accent);
  opacity: 0.95;

  transition:
    width var(--transition-fast),
    opacity var(--transition-fast);
}

.menu-nav a:hover{
  color: var(--brown-accent);
}

.menu-nav a:hover::after{
  width: 100%;
}

.menu-nav a.is-active{
  color: var(--brown-accent);
}

.menu-nav a.is-active::after{
  width: 100%;
}

/* ÍCONES */

.menu-icon{
  font-size: 16px;
  line-height: 1;
  opacity: 0.92;

  transition:
    transform var(--transition-fast),
    opacity var(--transition-fast);
}

.menu-nav a:hover .menu-icon,
.menu-nav a.is-active .menu-icon{
  transform: translateY(-1px);
  opacity: 1;
}

/* ===================================== */
/* HEADER AO ROLAR */
/* ===================================== */

body.scrolled .menu{
  height: 74px;
  background: rgba(247,243,242,0.90);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(58,74,63,0.10);
  box-shadow: 0 10px 30px rgba(58,74,63,0.08);
}

body.scrolled .logo img{
  height: 52px;
  max-height: 52px;
  transform: translateY(-1px);
}

/* ===================================== */
/* FOOTER LOGO */
/* ===================================== */

.logoFooter{
  display:flex;
  justify-content:center;
  align-items:center;
  height:60px;          
  overflow:hidden;      
}

.logoFooter a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:100%;
}

.logoFooter img{
  width:auto;
  height:150px;
  max-height:200px;
  object-fit:contain;
  display:block;
}

/* ===================================== */
/* REDES SOCIAIS */
/* ===================================== */

.redesSociaisFooter{
  display:flex;
  gap:24px;
  justify-content:center;
  align-items:center;
  margin-top:12px;
}

/* ===================================== */
/* BOTÕES SOCIAIS */
/* ===================================== */

.social-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:50%;
  transition:transform .25s ease;
}

.social-btn img{
  width:26px;
  height:26px;
  object-fit:contain;
  transition:transform .25s ease, opacity .25s ease;
}

.social-btn:hover{
  transform:translateY(-2px);
}

.social-btn:hover img{
  transform:scale(1.12);
  opacity:.85;
}


/* ===================================== */
/* DISCLAIMER LEGAL FOOTER */
/* ===================================== */

.footer-disclaimer{
  max-width:720px;
  margin:14px auto 0;
  font-size:0.68rem;
  line-height:1.55;
  color:rgba(255,255,255,0.45);
  text-align:center;
  opacity:0.75;
  letter-spacing:0.01em;
}

/* versão ainda mais discreta em telas grandes */

@media (min-width:1024px){
  .footer-disclaimer{
    font-size:0.64rem;
    opacity:0.6;
  }
}

/* ===================================== */
/* RESPONSIVO HEADER */
/* ===================================== */

@media (max-width: 1024px){
  .menu-inner{
    padding: 0 40px;
  }

  .menu-nav{
    gap: 22px;
  }

  .menu-nav a{
    font-size: 0.92rem;
  }

  .logo img{
    height: 58px;
    max-height: 58px;
  }

  body.scrolled .logo img{
    height: 48px;
    max-height: 48px;
  }
}

@media (max-width: 768px){
  .menu{
    height: auto;
    min-height: 84px;
    padding: 10px 0;
  }

  .menu-inner{
    padding: 0 20px;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
  }

  .menu-nav{
    margin-left: 0;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px 18px;
  }

  .menu-nav a{
    font-size: 0.88rem;
  }

  .logo img{
    height: 52px;
    max-height: 52px;
  }

  body.scrolled .menu{
    min-height: 78px;
  }

  body.scrolled .logo img{
    height: 46px;
    max-height: 46px;
  }
}

/* ===== FIM HEADER / MENU ===== */



/* ===================================== */
/* HERO / CAPA DO EMPREENDIMENTO */
/* ===================================== */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
  padding:140px 20px 80px;
  background:var(--green-deep);
}

.hero-video{
  position:absolute;
  inset:0;
  z-index:0;
  will-change:transform;
}

.hero-video video{
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(to bottom, rgba(58,74,63,0.18), rgba(58,74,63,0.40)),
    linear-gradient(to top, rgba(58,74,63,0.58), rgba(58,74,63,0.18));
  z-index:1;
}

.hero-content{
  position:relative;
  z-index:2;
  max-width:900px;
  color:var(--text-light);
  will-change:transform, opacity;
}

/* =============================== */
/* LOGO ARVORE */
/* =============================== */

.hero-icon{
  width:200px;
  max-width:12vw;
  margin:0 auto -240px;
  display:block;
  opacity:0.96;
  filter:drop-shadow(0 8px 24px rgba(0,0,0,0.18));
}

/* =============================== */
/* LOGO ARBORATTO */
/* =============================== */

.hero-title{
  width:min(600px,72vw);
  max-width:100%;
  margin:0 auto -200px;
  display:block;
  filter:drop-shadow(0 10px 30px rgba(0,0,0,0.16));
}

/* =============================== */
/* SUBTÍTULO HERO */
/* =============================== */

.hero-subtitle{
  max-width: 900px;
  margin: 0 auto 18px;
  font-size: clamp(1.05rem, 2vw, 1.4rem);
  line-height: 1.75;
  color: rgba(247,243,242,0.92);
  font-family: 'Inter', sans-serif;
  letter-spacing: .02em;

  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  text-align: center;
}

.word-rotator{
  position: relative;
  display: inline-block;
  height: 1.25em;
  min-width: 220px; /* reserva espaço para a maior palavra */
  text-align: left;
  vertical-align: baseline;
  top: 6px;	
}

.word{
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;

  opacity: 0;
  transform: translateY(18px);

  font-family: 'DM Serif Display', serif;
  font-size: 1.12em;
  line-height: 1.1;
  letter-spacing: .01em;
  color: var(--brown-accent);
  white-space: nowrap;

  transition:
    opacity .6s ease,
    transform .6s cubic-bezier(.22,.61,.36,1);
}

.word.active{
  opacity: 1;
  transform: translateY(0);
}

/* =============================== */
/* BOTÃO CTA */
/* =============================== */

.cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:56px;
  padding:16px 34px;
  background:var(--brown-accent);
  color:var(--white-soft);
  text-decoration:none;
  border-radius:var(--radius-pill);
  font-weight:700;
  letter-spacing:0.01em;
  box-shadow:0 14px 30px rgba(175,144,97,0.28);
  transition:
    transform var(--transition-fast),
    background var(--transition-fast),
    box-shadow var(--transition-fast);
  position:relative;
  z-index:20;
  pointer-events:auto;
  cursor:pointer;
}

.cta:hover{
  transform:translateY(-3px);
  background:var(--green-deep);
  box-shadow:0 18px 36px rgba(58,74,63,0.24);
  animation:pulseCTA 1.2s ease;
  color:var(--white-soft);
}

.cta:visited{
  color:var(--white-soft);
}

.cta:focus-visible{
  outline:none;
  box-shadow:
    0 18px 36px rgba(58,74,63,0.24),
    0 0 0 3px rgba(247,243,242,0.45),
    0 0 0 6px rgba(175,144,97,0.35);
}

/* =============================== */
/* EFEITO PULSAR CTA */
/* =============================== */

@keyframes pulseCTA{
  0%{
    box-shadow:
      0 18px 36px rgba(58,74,63,0.24),
      0 0 0 0 rgba(175,144,97,0.45);
  }

  70%{
    box-shadow:
      0 18px 36px rgba(58,74,63,0.24),
      0 0 0 18px rgba(175,144,97,0);
  }

  100%{
    box-shadow:
      0 18px 36px rgba(58,74,63,0.24),
      0 0 0 0 rgba(175,144,97,0);
  }
}

/* ===================================== */
/* CORREÇÃO DE CLIQUE NA HERO */
/* ===================================== */

.hero-video{
  pointer-events:none;
}

.hero-overlay{
  pointer-events:none;
}

.hero-icon,
.hero-title,
.hero-subtitle,
.word-rotator,
.word{
  pointer-events:none;
}

.hero-content{
  position:relative;
  z-index:10;
}
/* ===== FIM HERO ===== */


/* ===================================== */
/* SEÇÃO O PROJETO */
/* ===================================== */

.projeto-sec{
  position:relative;
  padding:140px 60px 100px;
  max-width:var(--container-wide);
  margin:0 auto;
  overflow:hidden;
}

.projeto-wrap{
  display:grid;
  grid-template-columns:minmax(420px, 620px) 1fr;
  align-items:center;
  gap:80px;
}

.projeto-visual{
  position:relative;
}

.projeto-visual img{
  width:100%;
  max-height:880px;
  object-fit:contain;
  object-position:left center;
  filter:drop-shadow(0 34px 70px rgba(58,74,63,0.16));
  transform:translateX(-20px);
  transition:transform 1s ease;
  will-change:transform;
}

.projeto-info{
  padding-top:20px;
}

.projeto-header{
  margin-bottom:34px;
}

.projeto-header h2{
  font-size:clamp(3.2rem, 5vw, 4.8rem);
  line-height:0.92;
  margin-bottom:18px;
  color:var(--green-deep);
}

.projeto-local,
.projeto-cidade{
  font-size:1.02rem;
  line-height:1.75;
  color:var(--text-soft);
}

.projeto-cidade{
  margin-top:3px;
}

.projeto-meta{
  display:grid;
  grid-template-columns:repeat(3, minmax(120px, 1fr));
  gap:24px 28px;
  padding:30px 0;
  margin:30px 0;
  border-top:1px solid var(--border-strong);
  border-bottom:1px solid var(--border-strong);
}

.meta-item{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.meta-item strong{
  font-family:'Cormorant Garamond', serif;
  font-size:2rem;
  line-height:1;
  color:var(--brown-accent);
}

.meta-item span{
  font-size:0.78rem;
  line-height:1.5;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--text-soft);
}
/* ===================================== */
/* AJUSTE ESPECIAL PARA O 5º ITEM */
/* ===================================== */

.projeto-meta .meta-item:nth-child(5){
  grid-column: span 3;
}

.projeto-meta .meta-item:nth-child(5) span{
  max-width:600px;
}

.projeto-texto p{
  font-size:1.08rem;
  line-height:1.95;
  max-width:760px;
}

.projeto-diferenciais{
  margin-top:80px;
  padding-top:10px;
}

/* ===================================== */
/* SEÇÃO DETALHES */
/* ===================================== */

.projeto-diferenciais h3{
  font-size:clamp(2rem, 3vw, 3rem);
  margin-bottom:34px;
  text-align:center;
  color:var(--green-deep);
}

.diferenciais-layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(420px, 620px);
  gap:70px;
  align-items:center;
}

/* cards independentes */

.diferenciais-grid{
  column-count:2;
  column-gap:20px;
}

.diferencial-item{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  width:100%;
  margin:0 0 18px;
  break-inside:avoid;

  padding:18px 18px;
  background:rgba(255,255,255,0.76);
  border:1px solid var(--border-soft);
  border-radius:18px;
  box-shadow:var(--shadow-soft);
  min-height:78px;

  transition:
    transform var(--transition-fast),
    box-shadow var(--transition-fast),
    border-color var(--transition-fast),
    background var(--transition-fast);

  overflow:hidden;
}

.diferencial-item:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-medium);
  border-color:rgba(146,166,115,0.28);
  background:rgba(255,255,255,0.92);
}

.diferencial-topo{
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
}

.diferencial-icone{
  font-size:18px;
  color:var(--brown-accent);
  flex-shrink:0;
}

.diferencial-texto{
  font-size:0.96rem;
  line-height:1.6;
  color:var(--green-deep);
  font-weight:600;
}

/* detalhe secreto individual */

.diferencial-detalhe{
  max-height:0;
  opacity:0;
  overflow:hidden;
  transition:
    max-height 0.35s ease,
    opacity 0.35s ease,
    margin-top 0.35s ease;

  width:100%;
  margin-top:0;
  padding-left:30px;
}

.diferencial-item:hover .diferencial-detalhe{
  max-height:140px;
  opacity:1;
  margin-top:10px;
}

.diferencial-detalhe p{
  font-size:0.9rem;
  line-height:1.65;
  color:var(--text-soft);
  max-width:100%;
}

/* imagem no mesmo estilo do bloco projeto */

.diferenciais-visual{
  position:relative;
  display:flex;
  justify-content:center;
}

.diferenciais-visual img{
  width:100%;
  max-height:860px;
  object-fit:contain;
  object-position:left center;
  filter:drop-shadow(0 30px 60px rgba(58,74,63,0.16));
  display:block;
}

/* ===================================== */
/* RESPONSIVO */
/* ===================================== */

@media (max-width:1024px){

  .diferenciais-layout{
    grid-template-columns:1fr;
    gap:40px;
  }

  .diferenciais-grid{
    column-count:2;
  }

  .diferenciais-visual{
    order:-1;
  }

  .diferenciais-visual img{
    max-height:620px;
  }

}

@media (max-width:768px){

  .diferenciais-grid{
    column-count:1;
  }

  .diferencial-item{
    min-height:72px;
  }

  .diferenciais-visual img{
    max-height:420px;
  }

}
/* ===== FIM SEÇÃO O PROJETO ===== */



/* ===================================== */
/* SEÇÕES GERAIS DO SITE */
/* ===================================== */
.secao{
  padding:120px 60px;
  max-width:var(--container);
  margin:0 auto;
}

.secao h2{
  margin-bottom:18px;
}

.secao p{
  font-size:1.05rem;
  line-height:1.85;
  max-width:760px;
}

.secao-topo{
  margin-bottom:34px;
}
/* ===== FIM SEÇÕES GERAIS ===== */



/* ===================================== */
/* GALERIA DO PROJETO */
/* ===================================== */
.galeria-sec{
  max-width:1320px;
}
/* ===== FIM GALERIA ===== */



/* ===================================== */
/* PLANTAS DO EMPREENDIMENTO */
/* ===================================== */
.plantas-sec{
  max-width:1320px;
  margin-top:20px;
}

.plantas-sec .carousel{
  background:rgba(255,255,255,0.76);
}

.plantas-sec .carousel-track{
  height:620px;
}

.plantas-sec .slide img{
  object-fit:contain;
  background:transparent;
  padding:28px;
}
/* ===== FIM PLANTAS ===== */



/* ===================================== */
/* CARROSSEL */
/* ===================================== */
.carousel{
  position:relative;
  width:100%;
  overflow:hidden;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-medium);
  background:rgba(255,255,255,0.72);
  border:1px solid rgba(58,74,63,0.08);
  backdrop-filter:blur(6px);
}

.carousel-track{
  position:relative;
  width:100%;
  height:620px;
}

.slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity 0.7s ease, visibility 0.7s ease;
}

.slide.active{
  opacity:1;
  visibility:visible;
}

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

.carousel-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:56px;
  height:56px;
  border:none;
  border-radius:50%;
  background:rgba(247,243,242,0.88);
  color:var(--green-deep);
  font-size:26px;
  cursor:pointer;
  z-index:5;
  transition:transform var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
  box-shadow:0 10px 24px rgba(58,74,63,0.14);
}

.carousel-btn:hover{
  background:var(--brown-accent);
  color:var(--white-soft);
  transform:translateY(-50%) scale(1.06);
}

.carousel-btn.prev{
  left:22px;
}

.carousel-btn.next{
  right:22px;
}

.carousel-dots{
  position:absolute;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  display:flex;
  gap:10px;
  z-index:5;
}

.dot{
  width:12px;
  height:12px;
  border:none;
  border-radius:50%;
  background:rgba(247,243,242,0.55);
  cursor:pointer;
  transition:transform var(--transition-fast), background var(--transition-fast);
}

.dot.active{
  background:var(--brown-accent);
  transform:scale(1.18);
}
/* ===== FIM CARROSSEL ===== */



/* ===================================== */
/* SEÇÃO MAPA / LOCALIZAÇÃO PREMIUM */
/* ===================================== */
.mapa-sec{
  max-width:var(--container-wide);
  margin:0 auto;
  padding:120px 60px;
}

.mapa-topo{
  margin-bottom:34px;
}

.mapa-topo h2{
  text-align:center;
  margin-bottom:28px;
}

.mapa-filtros{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:14px;
}

.mapa-filtro{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid var(--border-strong);
  padding:12px 22px;
  border-radius:var(--radius-pill);
  background:rgba(255,255,255,0.72);
  color:var(--green-deep);
  cursor:pointer;
  font-size:0.95rem;
  font-weight:600;
  transition:transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.mapa-filtro:hover{
  transform:translateY(-2px);
  border-color:var(--brown-accent);
}

.mapa-filtro.active{
  background:var(--green-deep);
  color:var(--white-soft);
  border-color:var(--green-deep);
}

#mapa-arboratto{
  width:100%;
  height:620px;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-medium);
  border:1px solid rgba(58,74,63,0.08);
}

/* POPUP MAPA */
.maplibregl-popup-content{
  border-radius:18px !important;
  padding:16px 16px 14px !important;
  box-shadow:0 18px 40px rgba(58,74,63,0.16) !important;
  border:none !important;
  background:var(--white-soft) !important;
}

.maplibregl-popup-close-button{
  font-size:18px;
  color:var(--green-deep);
}

.map-popup{
  min-width:190px;
}

.map-popup-category{
  display:inline-block;
  margin-bottom:10px;
  padding:7px 11px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.3px;
  text-transform:uppercase;
}

.map-popup-category.empreendimento{
  background:rgba(175,144,97,0.14);
  color:var(--brown-accent);
}

.map-popup-category.lazer{
  background:rgba(146,166,115,0.18);
  color:var(--green-soft);
}

.map-popup-category.gastronomia{
  background:rgba(175,144,97,0.14);
  color:var(--brown-accent);
}

.map-popup-category.demanda{
  background:rgba(58,74,63,0.10);
  color:var(--green-deep);
}

.map-popup-category.saude{
  background:rgba(146,166,115,0.16);
  color:var(--green-deep);
}

.map-popup h3{
  font-size:1.1rem;
  line-height:1.35;
  margin-bottom:6px;
  color:var(--green-deep);
}

.map-popup p{
  font-size:0.9rem;
  line-height:1.65;
  color:var(--text-soft);
}

.map-popup-distance{
  margin-top:10px;
  font-size:12px;
  font-weight:700;
  color:var(--brown-accent);
}

/* PIN DO EMPREENDIMENTO */
.map-pin-logo{
  position:relative;
  width:60px;
  height:60px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.map-pin-logo img{
  position:relative;
  z-index:2;
  width:60px;
  height:60px;
  object-fit:contain;
  filter:drop-shadow(0 10px 25px rgba(58,74,63,0.25));
}

.map-pin-pulse{
  position:absolute;
  width:86px;
  height:86px;
  border-radius:50%;
  background:rgba(146,166,115,0.20);
  animation:arborattoPulse 2.4s ease-out infinite;
}

@keyframes arborattoPulse{
  0%{
    transform:scale(0.65);
    opacity:0.85;
  }
  70%{
    transform:scale(1.25);
    opacity:0;
  }
  100%{
    transform:scale(1.25);
    opacity:0;
  }
}

/* CONTROLES DO MAPA */
.maplibregl-ctrl-group{
  border:none !important;
  border-radius:16px !important;
  overflow:hidden;
  box-shadow:0 12px 28px rgba(58,74,63,0.14) !important;
}

.maplibregl-ctrl-group button{
  width:38px !important;
  height:38px !important;
}
/* ===== FIM SEÇÃO MAPA ===== */



/* ===================================== */
/* RODAPÉ */
/* ===================================== */
.rodape{
  padding:44px 20px;
  text-align:center;
  background:var(--green-deep);
  color:var(--text-light);
  margin-top:80px;
}
/* ===== FIM RODAPÉ ===== */


/* ===================================== */
/* WHATSAPP FLOAT PREMIUM */
/* ===================================== */

.whatsapp-float{
  position:fixed;
  right:28px;
  bottom:28px;
  width:64px;
  height:64px;
  border-radius:50%;
  background:#25D366;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 16px 36px rgba(0,0,0,0.25);
  z-index:999;
  opacity:0;
  transform:translateY(30px) scale(.9);
  pointer-events:none;
  transition:
    opacity .45s ease,
    transform .45s ease,
    box-shadow .25s ease;
}

/* quando aparece */

.whatsapp-float.show{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}

/* ícone */

.whatsapp-float img{
  width:200px;
  height:200px;
  object-fit:contain;
}

/* hover elegante */

.whatsapp-float:hover{
  transform:translateY(-4px) scale(1.05);
  box-shadow:0 20px 42px rgba(0,0,0,0.3);
}

/* ===================================== */
/* PULSO AUTOMÁTICO */
/* ===================================== */

@keyframes whatsappPulse{

0%{
box-shadow:
0 16px 36px rgba(0,0,0,0.25),
0 0 0 0 rgba(37,211,102,0.45);
}

70%{
box-shadow:
0 16px 36px rgba(0,0,0,0.25),
0 0 0 18px rgba(37,211,102,0);
}

100%{
box-shadow:
0 16px 36px rgba(0,0,0,0.25),
0 0 0 0 rgba(37,211,102,0);
}

}

.whatsapp-float{
  animation:whatsappPulse 2s ease infinite;
  animation-delay:8s;
}

/* ===================================== */
/* TOOLTIP */
/* ===================================== */

.whatsapp-tooltip{
  position:absolute;
  right:74px;
  background:#2f3b33;
  color:#fff;
  font-size:0.78rem;
  padding:8px 12px;
  border-radius:8px;
  white-space:nowrap;
  opacity:0;
  transform:translateX(10px);
  transition:opacity .25s ease, transform .25s ease;
  pointer-events:none;
}

.whatsapp-tooltip::after{
  content:"";
  position:absolute;
  right:-6px;
  top:50%;
  transform:translateY(-50%);
  border-width:6px;
  border-style:solid;
  border-color:transparent transparent transparent #2f3b33;
}

.whatsapp-float:hover .whatsapp-tooltip{
  opacity:1;
  transform:translateX(0);
}

/* ===================================== */
/* CORREÇÃO RESPONSIVA FINAL - MOBILE */
/* ===================================== */

@media (max-width: 768px){

  /* =============================== */
  /* HEADER */
  /* =============================== */

  .menu{
    height:auto;
    padding:14px 16px;
  }

  .menu-inner{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:0;
  }

  .logo{
    display:flex;
    justify-content:center;
    align-items:center;
  }

  .logo img{
    width:auto;
    height:42px !important;
    max-height:42px !important;
    object-fit:contain;
  }

  .menu-nav{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:12px 18px;
    margin-left:0;
  }

  .menu-nav a{
    font-size:0.92rem;
    gap:6px;
  }

  .menu-icon{
    font-size:14px;
  }

  /* =============================== */
  /* HERO */
  /* =============================== */

  .hero{
    min-height:78vh;
    padding:170px 18px 70px;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .hero-content{
    max-width:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    gap:10px;
  }

  .hero-icon{
    width:72px !important;
    max-width:none !important;
    margin:0 auto 4px !important;
    display:block;
  }

  .hero-title{
    width:min(320px, 82vw) !important;
    max-width:82vw !important;
    margin:0 auto 4px !important;
    display:block;
  }

  .hero-subtitle{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    margin:0 auto 18px !important;
    font-size:0.96rem !important;
    line-height:1.45 !important;
    text-align:center;
    max-width:90%;
  }

  .word-rotator{
    position:relative;
    min-width:auto !important;
    height:auto !important;
    top:0 !important;
    text-align:center !important;
  }

  .word{
    position:absolute;
    left:50%;
    top:0;
    width:max-content;
    transform:translateX(-50%) translateY(18px);
    font-size:1.05em;
    white-space:nowrap;
  }

  .word.active{
    transform:translateX(-50%) translateY(0);
  }

  .cta{
    min-height:50px;
    padding:14px 24px;
    font-size:0.95rem;
    z-index:30;
  }

  /* =============================== */
  /* PROJETO */
  /* =============================== */

  .projeto-sec{
    padding:90px 18px 70px;
  }

  .projeto-sec::before{
    display:none;
  }

  .projeto-wrap{
    grid-template-columns:1fr;
    gap:34px;
  }

  .projeto-visual{
    display:flex;
    justify-content:center;
  }

  .projeto-visual img{
    width:100% !important;
    max-width:100% !important;
    max-height:520px !important;
    object-fit:contain;
    transform:none !important;
  }

  .projeto-header h2{
    font-size:clamp(2rem, 8vw, 2.8rem);
  }

  .projeto-meta{
    grid-template-columns:1fr 1fr;
    gap:18px;
    padding:22px 0;
    margin:22px 0;
  }

  .meta-item strong{
    font-size:1.7rem;
  }

  .meta-item span{
    font-size:0.72rem;
    line-height:1.45;
  }

  .projeto-meta .meta-item:nth-child(5){
    grid-column:1 / -1 !important;
  }

  .projeto-meta .meta-item:nth-child(5) span{
    white-space:normal !important;
  }

  /* =============================== */
  /* DIFERENCIAIS */
  /* =============================== */

  .diferenciais-layout{
    grid-template-columns:1fr;
    gap:32px;
  }

  .diferenciais-grid{
    column-count:1;
  }

  .diferenciais-visual{
    order:-1;
  }

  .diferenciais-visual img{
    width:100% !important;
    max-width:100%;
    max-height:420px !important;
    object-fit:contain;
  }

  .diferencial-detalhe{
    padding-left:0;
  }

  /* =============================== */
  /* CARROSSEL / SEÇÕES */
  /* =============================== */

  .secao{
    padding:80px 18px;
  }

  .secao h2{
    font-size:2rem;
  }

  .carousel-track{
    height:300px;
  }

  .plantas-sec .carousel-track{
    height:340px;
  }

  .carousel-btn{
    width:42px;
    height:42px;
    font-size:20px;
  }

  .carousel-btn.prev{
    left:10px;
  }

  .carousel-btn.next{
    right:10px;
  }

  /* =============================== */
  /* MAPA */
  /* =============================== */

  .mapa-sec{
    padding:80px 18px;
  }

  .mapa-filtros{
    gap:10px;
  }

  .mapa-filtro{
    width:100%;
    padding:12px 16px;
    justify-content:center;
  }

  #mapa-arboratto{
    height:380px;
  }

  /* =============================== */
  /* WHATSAPP FLOAT */
  /* =============================== */

  .whatsapp-float{
    right:16px !important;
    bottom:16px !important;
    width:56px !important;
    height:56px !important;
    border-radius:50%;
  }

  .whatsapp-float img{
    width:26px !important;
    height:26px !important;
    max-width:26px !important;
    max-height:26px !important;
    object-fit:contain;
  }

  .whatsapp-tooltip{
    display:none !important;
  }

  /* =============================== */
  /* FOOTER */
  /* =============================== */

  .rodape{
    padding:36px 18px;
  }

  .logoFooter{
    height:48px !important;
    overflow:hidden;
  }

  .logoFooter img{
    width:auto;
    height:70px !important;
    max-height:70px !important;
    object-fit:contain;
  }

  .redesSociaisFooter{
    gap:14px;
    margin-top:10px;
  }

  .social-btn{
    width:42px !important;
    height:42px !important;
  }

  .social-btn img{
    width:22px !important;
    height:22px !important;
    max-width:22px !important;
    max-height:22px !important;
    object-fit:contain;
    transform:none !important;
  }

  .copyright p{
    font-size:0.95rem;
    line-height:1.5;
  }

  .footer-disclaimer{
    max-width:100%;
    margin:12px auto 0;
    padding:0 8px;
    font-size:0.58rem !important;
    line-height:1.45 !important;
    color:rgba(255,255,255,0.52);
    opacity:0.72;
    text-align:center;
  }
}

/* ===================================== */
/* AJUSTE EXTRA - TELAS MUITO PEQUENAS */
/* ===================================== */

@media (max-width: 480px){

  .hero{
    padding:160px 14px 60px;
  }

  .hero-title{
    width:min(280px, 84vw) !important;
    max-width:84vw !important;
  }

  .hero-subtitle{
    font-size:0.88rem !important;
  }

  .cta{
    width:100%;
    max-width:260px;
    min-height:48px;
    padding:13px 18px;
    font-size:0.92rem;
  }

  .projeto-meta{
    grid-template-columns:1fr;
  }

  .carousel-track{
    height:250px;
  }

  .plantas-sec .carousel-track{
    height:280px;
  }

  #mapa-arboratto{
    height:330px;
  }

  .menu-nav{
    gap:10px 14px;
  }

  .menu-nav a{
    font-size:0.86rem;
  }
}