  :root{
    --verde-floresta:#355E3B;
    --verde-claro:#6B8E62;
    --bege-areia:#F4EFE6;
    --marrom-madeira:#6E4F3A;
    --branco:#FFFFFF;
    --cinza-claro:#F5F5F5;
    --verde-escuro:#233F27;
    --bege-linha: rgba(110,79,58,0.18);
    --sombra: 0 20px 50px rgba(35,63,39,0.18);
    --easing: cubic-bezier(.22,.68,.2,1);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Montserrat',sans-serif;
    color:var(--verde-escuro);
    background:var(--bege-areia);
    overflow-x:hidden;
    line-height:1.6;
  }
  img{max-width:100%;display:block;}
  a{text-decoration:none;color:inherit;}
  ul{list-style:none;}
  h1,h2,h3,h4{font-family:'Playfair Display',serif;font-weight:600;line-height:1.15;color:var(--verde-escuro);}
  .eyebrow{
    font-family:'Montserrat',sans-serif;
    font-weight:600;
    letter-spacing:.22em;
    text-transform:uppercase;
    font-size:.72rem;
    color:var(--verde-floresta);
    display:flex;align-items:center;gap:.6rem;
    margin-bottom:1rem;
  }
  .eyebrow::before{content:"";width:28px;height:1px;background:var(--marrom-madeira);display:inline-block;}
  .container {
    max-width: 1280px;
    margin:0 auto;
    padding:0 6vw;
  }
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:.82rem;
    letter-spacing:.06em;text-transform:uppercase;
    padding:1.05rem 2.1rem;border-radius:2px;
    cursor:pointer;border:1px solid transparent;
    transition:transform .45s var(--easing), background .3s ease, color .3s ease, border-color .3s ease;
  }
  .btn:hover{transform:translateY(-3px);}
  .btn-primary{background:var(--verde-floresta);color:var(--branco);}
  .btn-primary:hover{background:var(--verde-escuro);}
  .btn-outline{background:transparent;color:var(--verde-claro);border-color:var(--verde-escuro);}
  .btn-outline:hover{background:rgba(255,255,255,.12);border-color:var(--branco);}
  .btn-dark-outline{background:transparent;color:var(--verde-floresta);border-color:var(--verde-floresta);}
  .btn-dark-outline:hover{background:var(--verde-floresta);color:var(--branco);}
  .btn-whats{background:#3f6b3f;color:var(--branco);}

  /* ---------- reveal on scroll ---------- */
  .reveal{opacity:0;transform:translateY(34px);transition:opacity 1s var(--easing), transform 1s var(--easing);}
  .reveal.in{opacity:1;transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
  }

  /* ---------- NAV ---------- */
  header.nav{
    position:fixed;top:0;left:0;right:0;z-index:900;
    display:flex;align-items:center;justify-content:space-between;
    padding:1.6rem 6vw;
    transition:background .5s var(--easing), padding .5s var(--easing), box-shadow .5s var(--easing);
  }
  header.nav.solid{
    background:rgba(244,239,230,0.96);
    padding:1rem 6vw;
    box-shadow:0 8px 30px rgba(53,94,59,.08);
    backdrop-filter:blur(6px);
  }
  .logo{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:700;color:var(--branco);letter-spacing:.02em;transition:color .5s var(--easing);}
  .logo span{display:block;font-family:'Montserrat',sans-serif;font-size:.6rem;letter-spacing:.28em;font-weight:500;color:var(--bege-areia);text-transform:uppercase;opacity:.85;}
  header.nav.solid .logo{color:var(--verde-floresta);}
  header.nav.solid .logo span{color:var(--marrom-madeira);}
  nav.menu{display:flex;align-items:center; gap:20px;}
  nav.menu a{
    color:var(--branco);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
    position:relative;padding-bottom:4px;transition:color .5s var(--easing);
  }
  nav.menu a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .35s var(--easing);}
  nav.menu a:hover::after{width:100%;}
  header.nav.solid nav.menu a{color:var(--verde-escuro);}
  .nav-cta{display:flex;align-items:center;gap:1rem;}
  .nav-cta .btn{padding:.85rem 1.6rem;font-size:.72rem;}
  header.nav .btn-primary{background:var(--branco);color:var(--verde-floresta);}
  header.nav.solid .btn-primary{background:var(--verde-floresta);color:var(--branco);}
  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:950;}
  .burger span{width:26px;height:2px;background:var(--branco);transition:.3s;}
  header.nav.solid .burger span{background:var(--verde-floresta);}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;min-height:100vh;display:flex;align-items:flex-end;
    background:linear-gradient(180deg, rgba(35,63,39,.35) 0%, rgba(35,63,39,.25) 40%, rgba(20,32,22,.78) 100%),
      url('casagrande.jpg') center/cover no-repeat;
    color:var(--branco);padding-bottom:5.5rem;
  }
  .hero-inner{max-width:820px;}
  .hero .eyebrow{color:var(--bege-areia);}
  .hero .eyebrow::before{background:var(--bege-areia);}
  .hero h1{
    font-size:clamp(2.6rem,6vw,4.6rem);
    color:var(--branco);
    margin-bottom:1.2rem;
    letter-spacing:.01em;
  }
  .hero p.sub{
    font-size:1.08rem;max-width:560px;color:rgba(255,255,255,.92);
    margin-bottom:2.3rem;font-weight:400;
  }
  .hero-btns{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:3.2rem;}
  .diferenciais{
    display:flex;
    flex-wrap:wrap;
    gap:1.8rem 2.4rem;
    border-top:1px solid rgba(255,255,255,.25);
    padding-top:1.6rem;
    width: 720px;
  }
  .diferenciais li{display:flex;align-items:center;gap:.55rem;font-size:.8rem;letter-spacing:.03em;color:rgba(255,255,255,.92);font-weight:500;}
  .diferenciais li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--verde-claro);display:inline-block;}
  .scroll-hint{
    position:absolute;right:6vw;bottom:2.4rem;color:rgba(255,255,255,.75);
    display:flex;flex-direction:column;align-items:center;gap:.6rem;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  }
  .scroll-hint .line{width:1px;height:46px;background:rgba(255,255,255,.5);position:relative;overflow:hidden;}
  .scroll-hint .line::after{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--branco);animation:scrollLine 2.2s infinite ease-in-out;}
  @keyframes scrollLine{0%{top:-100%;}50%{top:0;}100%{top:100%;}}

  /* ---------- organic divider (signature) ---------- */
  .divider{position:relative;height:70px;background:var(--bege-areia);margin-top:-1px;}
  .divider svg{width:100%;height:100%;display:block;}
  .divider.flip{transform:scaleY(-1);}
  .divider-dark{background:var(--verde-floresta);}

  /* ---------- SECTION generic ---------- */
  section{position:relative;padding:7.5rem 0;}
  .section-head{max-width:640px;margin-bottom:3.2rem;}
  .section-head h2{font-size:clamp(2rem,3.4vw,2.8rem);}
  .section-head p{color:#4b5c46;margin-top:1rem;font-size:1rem;max-width:520px;}
  .bg-white{background:var(--branco);}
  .bg-cinza{background:var(--cinza-claro);}
  .bg-verde{background:var(--verde-floresta);color:var(--bege-areia);}
  .bg-verde h2, .bg-verde h3, .bg-verde h4{color:var(--branco);}
  .bg-verde .section-head p{color:rgba(244,239,230,.82);}

  /* ---------- SOBRE ---------- */
  .sobre-grid{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center;}
  .sobre-imgwrap{position:relative;}
  .sobre-imgwrap img{border-radius:2px;box-shadow:var(--sombra);}
  .sobre-imgwrap .tag{
    position:absolute;bottom:-1.6rem;left:-1.6rem;background:var(--verde-floresta);color:var(--branco);
    padding:1.4rem 1.8rem;max-width:230px;font-family:'Playfair Display',serif;font-style:italic;font-size:1rem;
    box-shadow:var(--sombra);
  }
  .sobre-text p{color:#4b5c46;margin-bottom:1.1rem;font-size:.98rem;}
  .sobre-text p:last-of-type{margin-bottom:1.8rem;}

  /* ---------- NUMEROS ---------- */
  .numeros{background:var(--verde-floresta);color:var(--branco);}
  .numeros-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;text-align:center;}
  .num-card{padding:2.2rem 1rem;border-left:1px solid rgba(244,239,230,.25);}
  .num-card:first-child{border-left:none;}
  .num-card .num{font-family:'Playfair Display',serif;font-size:2.7rem;font-weight:600;color:var(--bege-areia);}
  .num-card .lbl{font-size:.78rem;letter-spacing:.05em;color:rgba(244,239,230,.85);margin-top:.5rem;}

  /* ---------- LOCALIZAÇÃO ---------- */
  .local-grid{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center;}
  .local-list{margin:1.6rem 0 2.2rem;display:flex;flex-direction:column;gap:.9rem;}
  .local-list li{display:flex;gap:.8rem;align-items:baseline;font-size:.95rem;color:#4b5c46;}
  .local-list b{font-family:'Playfair Display',serif;color:var(--verde-floresta);font-size:1.15rem;min-width:80px;}
  .map-frame{border-radius:2px;overflow:hidden;box-shadow:var(--sombra);border:8px solid var(--branco);}
  .map-frame iframe{width:100%;height:400px;border:0;display:block;filter:grayscale(15%);}

  /* ---------- CARDS (Estrutura) ---------- */
  .card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;}
  .lazer-card{background:var(--branco);box-shadow:0 10px 34px rgba(53,94,59,.09);position:relative;overflow:hidden;transition:transform .5s var(--easing), box-shadow .5s var(--easing);}
  .lazer-card:hover{transform:translateY(-8px);box-shadow:0 22px 44px rgba(53,94,59,.16);}
  .lazer-card .imgbox{height:220px;overflow:hidden;}
  .lazer-card .imgbox img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--easing);}
  .lazer-card:hover .imgbox img{transform:scale(1.08);}
  .lazer-card .body{padding:1.7rem 1.7rem 2rem;}
  .lazer-card h4{font-size:1.25rem;margin-bottom:.6rem;}
  .lazer-card p{font-size:.9rem;color:#556653;margin-bottom:1rem;}
  .chip-row{display:flex;flex-wrap:wrap;gap:.5rem;}
  .chip{font-size:.7rem;letter-spacing:.03em;background:var(--cinza-claro);color:var(--marrom-madeira);padding:.4rem .8rem;border-radius:20px;font-weight:600;}

  /* two-col feature (quadras / cozinha) */
  .feature-split{display:grid;grid-template-columns:1fr 1fr;}
  .feature-split .imgcol{min-height:520px;background-size:cover;background-position:center;}
  .feature-split .txtcol{padding:6vw;display:flex;flex-direction:column;justify-content:center;}
  .feature-split .txtcol ul{margin:1.4rem 0 1.8rem;display:flex;flex-direction:column;gap:.6rem;}
  .feature-split .txtcol ul li{font-size:.95rem;color:#4b5c46;display:flex;align-items:center;gap:.7rem;}
  .feature-split .txtcol ul li::before{content:"";width:5px;height:5px;background:var(--verde-claro);border-radius:50%;}
  .feature-split.reverse{direction:rtl;}
  .feature-split.reverse > *{direction:ltr;}

  /* ---------- indoor duo (TV / jogos) ---------- */
  .duo-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;}
  .duo-card{position:relative;height:460px;border-radius:2px;overflow:hidden;color:var(--branco);}
  .duo-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--easing);}
  .duo-card:hover img{transform:scale(1.06);}
  .duo-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(35,63,39,0) 30%, rgba(20,32,22,.86) 100%);}
  .duo-content{position:absolute;left:0;right:0;bottom:0;padding:2.2rem;z-index:2;}
  .duo-content h4{color:var(--branco);font-size:1.5rem;margin-bottom:.6rem;}
  .duo-content ul{display:flex;flex-wrap:wrap;gap:.5rem;}
  .duo-content ul li{font-size:.72rem;letter-spacing:.03em;border:1px solid rgba(255,255,255,.5);padding:.35rem .8rem;border-radius:20px;}

  /* ---------- EXPERIENCIAS ---------- */
  .exp-head{text-align:center;max-width:600px;margin:0 auto 3.5rem;}
  .exp-head .eyebrow{justify-content:center;}
  .exp-head .eyebrow::before{display:none;}
  .passeios-row{display:grid;grid-template-columns:repeat(5,1fr);gap:1.2rem;margin-bottom:6rem;}
  .passeio-item{position:relative;height:340px;border-radius:2px;overflow:hidden;}
  .passeio-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--easing);}
  .passeio-item:hover img{transform:scale(1.1);}
  .passeio-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(35,63,39,0) 45%,rgba(20,32,22,.85) 100%);}
  .passeio-item span{position:absolute;left:1rem;right:1rem;bottom:1rem;color:var(--branco);font-family:'Playfair Display',serif;font-size:1.02rem;z-index:2;font-style:italic;}

  .animais-mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:.9rem;}
  .animais-mosaic .m1{grid-column:span 2;grid-row:span 2;}
  .animais-mosaic .m4{grid-column:span 2;}
  .animais-mosaic div{position:relative;border-radius:2px;overflow:hidden;}
  .animais-mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--easing);}
  .animais-mosaic div:hover img{transform:scale(1.08);}
  .animais-caption{margin-top:2rem;text-align:center;font-family:'Playfair Display',serif;font-style:italic;color:var(--bege-areia);font-size:1.1rem;}

  /* ---------- PAISAGENS lightbox grid ---------- */
  .paisagens-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:170px;gap:.8rem;}
  .paisagens-grid .p-a{grid-column:span 3;grid-row:span 2;}
  .paisagens-grid .p-b{grid-column:span 3;}
  .paisagens-grid .p-c{grid-column:span 2;}
  .paisagens-grid figure{position:relative;margin:0;overflow:hidden;cursor:pointer;border-radius:2px;}
  .paisagens-grid img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--easing);}
  .paisagens-grid figure:hover img{transform:scale(1.08);}
  .paisagens-grid figure::before{content:"+";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    font-size:2.4rem;color:var(--branco);background:rgba(53,94,59,0);opacity:0;transition:.4s;font-family:'Playfair Display',serif;}
  .paisagens-grid figure:hover::before{opacity:1;background:rgba(35,63,39,.4);}

  /* ---------- GALERIA com filtros ---------- */
  .filtros{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:2.6rem;}
  .filtro-btn{
    font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;
    padding:.7rem 1.3rem;border:1px solid var(--verde-floresta);color:var(--verde-floresta);
    background:transparent;cursor:pointer;transition:.35s var(--easing);border-radius:20px;
  }
  .filtro-btn.active,.filtro-btn:hover{background:var(--verde-floresta);color:var(--branco);}
  .galeria-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
  .galeria-grid figure{margin:0;height:230px;overflow:hidden;border-radius:2px;position:relative;cursor:pointer;transition:opacity .4s, transform .4s;}
  .galeria-grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--easing);}
  .galeria-grid figure:hover img{transform:scale(1.09);}
  .galeria-grid figure.hidden{display:none;}

  /* lightbox */
  .lightbox{position:fixed;inset:0;background:rgba(20,32,22,.94);z-index:2000;display:none;align-items:center;justify-content:center;padding:5vw;}
  .lightbox.open{display:flex;}
  .lightbox img{max-width:90vw;max-height:82vh;box-shadow:0 30px 60px rgba(0,0,0,.5);border-radius:2px;}
  .lightbox-close{position:absolute;top:2rem;right:2.4rem;color:var(--branco);font-size:1.6rem;cursor:pointer;font-family:'Playfair Display',serif;}
  .lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);color:var(--branco);font-size:2rem;cursor:pointer;padding:1rem;opacity:.7;transition:.3s;}
  .lightbox-nav:hover{opacity:1;}
  .lightbox-prev{left:2vw;}
  .lightbox-next{right:2vw;}

  /* ---------- CHAMADA FINAL ---------- */
  .cta-final{
    position:relative;min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;
    background:linear-gradient(180deg, rgba(20,32,22,.55), rgba(20,32,22,.78)),
      url('casagrande.jpg') center/cover no-repeat;
    color:var(--branco);
  }
  .cta-final h2{color:var(--branco);font-size:clamp(2.1rem,4vw,3.2rem);max-width:720px;margin:0 auto 1.2rem;}
  .cta-final p{max-width:560px;margin:0 auto 2.4rem;color:rgba(255,255,255,.9);}
  .cta-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--verde-escuro);color:rgba(244,239,230,.85);padding:5rem 0 2rem;}
  .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3.5rem;}
  .footer-logo{font-family:'Playfair Display',serif;color:var(--branco);font-size:1.4rem;margin-bottom:1rem;}
  .footer-grid p{font-size:.88rem;line-height:1.8;color:rgba(244,239,230,.72);}
  .footer-grid h5{color:var(--branco);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.2rem;font-family:'Montserrat',sans-serif;font-weight:600;}
  .footer-grid ul li{margin-bottom:.7rem;font-size:.88rem;}
  .footer-grid ul li a{color:rgba(244,239,230,.75);transition:.3s;}
  .footer-grid ul li a:hover{color:var(--branco);}
  .footer-bottom{border-top:1px solid rgba(244,239,230,.15);padding-top:1.8rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.78rem;color:rgba(244,239,230,.6);}

  /* ---------- floating buttons ---------- */
  .fab-whats{
    position:fixed;bottom:1.6rem;right:1.6rem;z-index:800;width:60px;height:60px;border-radius:50%;
    background:#3f6b3f;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.28);
    transition:transform .35s var(--easing);
  }
  .fab-whats:hover{transform:scale(1.08);}
  .fab-whats svg{width:28px;height:28px;fill:var(--branco);}

  .mobile-reserve{
    display:none;position:fixed;left:0;right:0;bottom:0;z-index:790;
    background:var(--verde-floresta);color:var(--branco);text-align:center;padding:1rem;
    font-weight:600;font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;
  }

  /* ---------- responsive ---------- */
  @media (max-width:1080px){
    .numeros-grid{grid-template-columns:repeat(2,1fr);}
    .num-card:nth-child(3){border-left:none;}
    .card-grid{grid-template-columns:repeat(2,1fr);}
    .passeios-row{grid-template-columns:repeat(3,1fr);}
    .passeios-row .passeio-item:nth-child(4),.passeios-row .passeio-item:nth-child(5){display:none;}
    .galeria-grid{grid-template-columns:repeat(3,1fr);}
    .footer-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:860px){
    nav.menu, .nav-cta .btn-outline{display:none;}
    .burger{display:flex;}
    .sobre-grid,.local-grid,.feature-split,.duo-grid{grid-template-columns:1fr;}
    .feature-split .imgcol{min-height:320px;order:-1;}
    .feature-split.reverse{direction:ltr;}
    .card-grid{grid-template-columns:1fr;}
    .passeios-row{grid-template-columns:repeat(2,1fr);}
    .animais-mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px;}
    .animais-mosaic .m1{grid-column:span 2;}
    .paisagens-grid{grid-template-columns:repeat(2,1fr);}
    .paisagens-grid .p-a,.paisagens-grid .p-b,.paisagens-grid .p-c{grid-column:span 2;grid-row:span 1;}
    .galeria-grid{grid-template-columns:repeat(2,1fr);}
    .mobile-reserve{display:block;}
    .fab-whats{bottom:4.4rem;}
    section{padding:4.6rem 0;}
    .sobre-imgwrap .tag{left:0;bottom:-1.2rem;padding:1.1rem 1.3rem;font-size:.85rem;}
  }
  @media (max-width:520px){
    .diferenciais{gap:1rem 1.4rem;}
    .hero-btns{flex-direction:column;align-items:flex-start;}
  }