:root{
  --g1:#227e3e; --g2:#066b25; --dk:#064a1b; --dk2:#043814; --lt:#a0e6b5;
  --txt:#000; --gutter:clamp(16px,4vw,48px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;font-family:'Poppins',system-ui,sans-serif;color:var(--txt);background:#fff;line-height:1.3;overflow-x:clip;max-width:100%;-webkit-text-size-adjust:100%}
img{max-width:100%;display:block}
main>section,.stats-wrap,.footer,.header{overflow-x:clip}
a{color:inherit}
h1,h2,h3,p{margin:0}
.container{width:100%;max-width:1280px;margin-inline:auto;padding-inline:var(--gutter)}
.green{color:var(--g1)} .dark{color:var(--dk)} .light{color:var(--lt)}

/* Botão */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;text-align:center;text-decoration:none;color:#fff;
  background:linear-gradient(#227e3e,#066b25);border-radius:10px;padding:18px 44px;font-weight:500;font-size:clamp(15px,1.4vw,19px);
  min-height:56px;transition:filter .2s,transform .2s}
.btn:hover{filter:brightness(1.1);transform:translateY(-2px)}
.btn:focus-visible{outline:3px solid var(--lt);outline-offset:3px}
.btn img,.btn svg{width:36px;height:36px;flex:none}
.btn--lg{padding:24px 70px;font-size:clamp(16px,1.6vw,23px);border-radius:12px}

/* Header */
.header{position:sticky;top:0;z-index:50;padding:12px 0;background:linear-gradient(#fff 70%,rgba(255,255,255,0))}
.menu{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(#227e3e,#066b25);
  border-bottom:9px solid var(--dk);border-radius:18px;padding:14px clamp(16px,3vw,58px);color:#fff}
.logo{width:clamp(110px,12vw,195px);flex:none;display:block}
.logo img{width:100%;height:auto}
.menu__addr{font-size:clamp(14px,1.35vw,20px);text-align:center}
.menu__btn{text-decoration:none;color:#fff;font:600 13px Inter,sans-serif;padding:9px 28px;border:1px solid #fff;border-radius:7px;background:var(--dk);white-space:nowrap}
.menu__btn:hover{background:#fff;color:var(--dk)}

/* Hero */
.hero{--hero-img-w:min(59.7vw,1146px);position:relative;padding-block:clamp(24px,4vw,60px) 0;
  min-height:calc(var(--hero-img-w)*1080/1146 - 70px - 5vw)}
.hero__grid{display:flex;align-items:center;min-height:inherit}
.hero__text{position:relative;z-index:2;max-width:clamp(400px,38vw,676px);padding-bottom:clamp(24px,5vw,80px)}
.hero h1{font-size:clamp(2rem,4.5vw,4.5rem);font-weight:500;line-height:1.05;letter-spacing:-.01em}
.hero p.lead{font-size:clamp(1rem,1.5vw,1.5rem);line-height:1.57;margin-top:clamp(16px,2vw,30px);max-width:600px}
.hero__cta{margin-top:clamp(24px,3vw,44px);display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.hero__phone{font:600 clamp(16px,1.6vw,22px) Inter,sans-serif;color:var(--dk)}
.hero__img{position:absolute;right:0;top:-70px;width:var(--hero-img-w);z-index:0;pointer-events:none}
.hero__mascot{width:100%;height:auto;display:block}

/* Números */
.stats-wrap{position:relative;z-index:1;background:linear-gradient(#fff 50%,var(--dk) 50%)}
.stats{max-width:1464px;margin-inline:auto;background:var(--g1);border:9px solid var(--g2);border-radius:39px;color:#fff;
  display:flex;align-items:center;justify-content:center;gap:clamp(20px,5vw,95px);padding:clamp(20px,2.5vw,40px) clamp(16px,3vw,40px);width:calc(100% - 2*var(--gutter))}
.stat strong{display:block;font-size:clamp(2rem,4vw,4.8rem);font-weight:700;line-height:1.05}
.stat > span{display:block;font-size:clamp(.9rem,1.7vw,2.05rem);font-weight:500;line-height:1.1}
.stats i{width:1px;align-self:stretch;background:#fff;flex:none}

/* Diferenciais */
.perks{background:var(--dk);padding:clamp(32px,4vw,56px) 0 clamp(48px,6vw,90px)}
.perks__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.5vw,24px)}
.perk{position:relative;aspect-ratio:354/394;border-radius:16px;overflow:hidden;background:var(--g1);border:1px solid var(--dk2);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:2px}
.perk>img{position:absolute;left:2%;top:1.5%;width:96%;height:auto}
.perk div{position:relative;z-index:1;padding:clamp(28px,3.4vw,52px) clamp(14px,1.6vw,24px) clamp(14px,1.6vw,24px);background:linear-gradient(to top,rgba(6,75,27,.9) 55%,rgba(6,75,27,0));text-shadow:0 1px 6px rgba(0,0,0,.35)}
.perk h3{font-size:clamp(1.1rem,1.7vw,2.05rem);line-height:1.05;font-weight:700}
.perk p{margin-top:10px;font-size:clamp(.85rem,1.2vw,1.35rem);line-height:1.1}

/* Seções genéricas */
.section{padding-block:clamp(48px,7vw,110px)}
.title{font-size:clamp(1.9rem,4vw,3.9rem);font-weight:400;line-height:1.05;text-align:center}
.title b{font-weight:700}

/* Como funciona */
.steps{margin-top:clamp(28px,4vw,56px);background:linear-gradient(90deg,#f4f4f4,#d9fee4);border-radius:21px;padding:clamp(24px,3vw,48px) clamp(20px,2.7vw,34px)}
.steps__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px)}
.step__head{display:flex;align-items:center;gap:0}
.step__num{width:31px;height:31px;border-radius:50%;background:#fff;color:var(--dk);font-weight:700;font-size:14px;display:grid;place-items:center;flex:none}
.step__head::after{content:"";flex:1;height:1px;background:var(--dk)}
.step h3{margin-top:clamp(16px,2vw,50px);font-size:clamp(1.1rem,1.6vw,1.5rem);font-weight:600;line-height:1.23}
.step p{margin-top:12px;font-size:clamp(1rem,1.6vw,1.5rem);line-height:1.23}
.center{display:flex;justify-content:center;margin-top:clamp(24px,3vw,40px)}

/* Conheça */
.about{background:linear-gradient(270deg,#f4f4f4,#d9fee4);border-radius:21px;padding:clamp(24px,5vw,112px) clamp(20px,5vw,100px);
  display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,60px);align-items:center}
.about h2{font-size:clamp(2.2rem,5.2vw,4.9rem);font-weight:400;line-height:1.14}
.about h2 b{color:var(--g1);display:block}
.about p{margin-top:clamp(16px,3vw,45px);font-size:clamp(1rem,1.7vw,1.8rem);line-height:1.3}
.about__imgs{position:relative;aspect-ratio:1/1.05;width:100%;max-width:520px;margin-inline:auto}
.about__imgs img{position:absolute;height:auto}
.about__imgs .a1{top:0;right:0;width:68%}
.about__imgs .a2{bottom:0;left:0;width:75%}

/* Depoimentos */
.reviews{background:linear-gradient(90deg,var(--dk),var(--g1));color:#fff;padding-block:clamp(40px,6vw,88px)}
.reviews .title{color:#fff}
.reviews__grid{margin-top:clamp(28px,4vw,60px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px)}
.review{display:flex;flex-direction:column;gap:14px;font-family:Rubik,sans-serif}
.review__head{display:flex;align-items:center;gap:16px}
.review__avatar{width:72px;height:72px;border-radius:50%;background:#fff;color:var(--dk);display:grid;place-items:center;font:600 1.6rem Rubik,sans-serif;flex:none}
.review__name{font-weight:600;font-size:clamp(1rem,1.4vw,1.2rem)}
.review__handle{font-weight:600;font-size:.97rem;color:var(--lt)}
.review blockquote{margin:0;font-style:italic;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.6}

/* Categorias */
.cats{background:linear-gradient(#fff,#e9fff0 40%,#fff)}
.cats__bar{width:min(325px,60%);height:4px;background:var(--g1);margin:0 auto clamp(20px,3vw,32px);border-radius:2px}
.cats__grid{margin-top:clamp(28px,4vw,56px);display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(12px,1.5vw,20px)}
.cat{background:#fff;border:1px solid #dedbd4;border-radius:17px;padding:27px 16px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.cat__icon{width:64px;height:64px;border-radius:50%;background:#173c2d;display:grid;place-items:center;flex:none}
.cat__icon img{width:28px;height:28px}
.cat h3{font:800 clamp(1rem,1.3vw,1.16rem)/1.1 Inter,sans-serif;color:#173c2d;letter-spacing:-.015em}
.cat p{font:400 clamp(.9rem,1.1vw,1.04rem)/1.35 Inter,sans-serif;color:#5b5b56}

/* Conhecer de perto */
.visit{text-align:center}
.visit .title b{color:var(--g1)}
.visit__lead{margin:clamp(14px,2vw,23px) auto 0;max-width:975px;font-weight:300;font-size:clamp(1.05rem,2.3vw,2.2rem);line-height:1.25}
.video{margin:clamp(28px,4vw,56px) auto 0;max-width:1099px;aspect-ratio:1099/533;background:#d9d9d9;border:4px solid #c3e1cd;border-radius:30px;display:grid;place-items:center;overflow:hidden;position:relative}
.video iframe,.video video{position:absolute;inset:0;width:100%;height:100%;border:0}
.video__play{width:clamp(64px,12.5%,138px);aspect-ratio:1;border-radius:50%;background:var(--g1);display:grid;place-items:center;border:0}
.video__play::before{content:"";margin-left:8%;border-left:min(3.2vw,36px) solid #fff;border-top:min(2vw,22px) solid transparent;border-bottom:min(2vw,22px) solid transparent}
.gallery{margin-top:clamp(24px,3vw,44px);display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.5vw,20px)}
.gallery img{width:100%;height:auto}
.visit__addr{margin-top:clamp(20px,3vw,40px);font-weight:300;font-size:clamp(1.05rem,2.3vw,2.2rem)}

/* Rodapé / CTA final */
.footer{padding:0 clamp(8px,2.5vw,49px) clamp(24px,3vw,40px)}
.footer__box{max-width:1822px;margin-inline:auto;background:var(--dk2);border-radius:clamp(28px,3.3vw,63px);color:#fff;
  padding:clamp(28px,5vw,100px) clamp(20px,6vw,271px);display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,4vw,60px);align-items:center}
.footer h2{font-size:clamp(1.8rem,3.5vw,3.5rem);font-weight:700;line-height:1.3}
.footer h2 span{font-weight:400}
.footer .sub{margin-top:16px;font-size:clamp(1.1rem,2.3vw,2.3rem);line-height:1.3}
.footer .btn{margin-top:clamp(24px,3vw,40px)}
.footer__side{display:flex;flex-direction:column;gap:20px;align-items:center;text-align:center}
.footer__addr{font-weight:700;font-size:clamp(1.05rem,1.55vw,1.55rem);line-height:1.5}
.footer__addr span{font-weight:400}
.map{width:100%;max-width:522px;aspect-ratio:522/272;border:0;border-radius:12px;background:#d9d9d9}
.social{display:flex;gap:18px;align-self:flex-end}
.social a{display:block;width:52px;height:52px}
.social img{width:100%;height:100%}

/* ---------- Responsivo ---------- */
@media (max-width:1100px){
  .cats__grid{grid-template-columns:repeat(3,1fr)}
  .perks__grid{grid-template-columns:repeat(2,1fr)}
  .perk{aspect-ratio:354/394}
}
@media (max-width:900px){
  .menu__addr{display:none}
  .hero{min-height:0;padding-bottom:clamp(40px,6vw,90px)}
  .hero__grid{flex-direction:column;gap:16px}
  .hero__text{max-width:none;padding-bottom:0}
  .hero__img{position:relative;right:auto;top:auto;order:-1;width:min(420px,100%);margin-inline:auto}
  .hero__cta{align-items:center}
  .hero__text{text-align:center}
  .hero p.lead{margin-inline:auto}
  .about{grid-template-columns:1fr}
  .steps__grid{grid-template-columns:1fr}
  .reviews__grid{grid-template-columns:1fr;max-width:520px;margin-inline:auto}
  .footer__box{grid-template-columns:1fr;text-align:center}
  .footer .btn{margin-inline:auto}
  .social{align-self:center}
  .gallery{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:700px){
  .stats{flex-direction:column;border-width:6px;border-radius:28px;gap:16px}
  .stats i{width:60%;height:1px;align-self:center}
  .stat{text-align:center}
  .cats__grid{grid-template-columns:repeat(2,1fr)}
  .btn--lg{padding:20px 28px}
}
@media (max-width:520px){
  .perks__grid{grid-template-columns:1fr}
  .perk{max-width:420px;width:100%;margin-inline:auto}
  .cat{padding:20px 10px}
  .cat__icon{width:52px;height:52px}
  .cat__icon img{width:24px;height:24px}
  .btn{padding:16px 24px;width:100%}
  .menu{border-bottom-width:6px;border-radius:14px}
}
@media (max-width:360px){
  .cats__grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}

/* ================= EFEITOS ================= */
.progress{position:fixed;top:0;left:0;height:4px;width:100%;z-index:100;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,var(--g1),var(--lt));pointer-events:none}

/* header encolhe e ganha sombra ao rolar */
.header{transition:padding .3s}
.menu{transition:padding .3s,box-shadow .3s,border-bottom-width .3s}
.is-scrolled .header{padding:6px 0}
.is-scrolled .menu{padding-block:8px;border-bottom-width:5px;box-shadow:0 10px 30px rgba(6,75,27,.28)}
.logo{transition:width .3s}
.is-scrolled .logo{width:clamp(96px,9.5vw,150px)}

/* hero: halos de fundo + mascote flutuando */
.hero{position:relative}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;filter:blur(70px);z-index:-1;pointer-events:none}
.hero::before{width:520px;height:520px;right:-120px;top:-60px;background:rgba(34,126,62,.18)}
.hero::after{width:380px;height:380px;left:-140px;bottom:-80px;background:rgba(160,230,181,.35)}
.hero__float{animation:float 5s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

/* botões: pulso (hero) + brilho ao passar o mouse */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .6s}
.btn:hover::after{left:130%}
.hero .btn--lg{animation:pulse 2.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,126,62,.55)}70%{box-shadow:0 0 0 18px rgba(34,126,62,0)}100%{box-shadow:0 0 0 0 rgba(34,126,62,0)}}

/* cards de diferenciais */
.perk{transition:transform .35s,box-shadow .35s}
.perk>img{transition:transform .6s}
.perk:hover{transform:translateY(-8px);box-shadow:0 18px 36px rgba(0,0,0,.35)}
.perk:hover>img{transform:scale(1.06)}

/* passos: linha que "desenha" */
.step__head::after{transform:scaleX(var(--p,1));transform-origin:left center}

/* categorias */
.cat{transition:transform .3s,box-shadow .3s,border-color .3s}
.cat__icon{transition:transform .4s,background .3s}
.cat:hover{transform:translateY(-6px);box-shadow:0 14px 30px rgba(6,75,27,.14);border-color:var(--g1)}
.cat:hover .cat__icon{transform:rotate(-8deg) scale(1.1);background:var(--g1)}

/* galeria e vídeo */
.gallery img{transition:transform .5s,box-shadow .5s}
.gallery img:hover{transform:scale(1.04) rotate(-.6deg);box-shadow:0 16px 30px rgba(0,0,0,.25)}
.video__play{transition:transform .3s;animation:pulse 2.6s infinite}
.video__play:hover{transform:scale(1.1)}

/* depoimentos */
.review{transition:transform .3s}
.review:hover{transform:translateY(-4px)}
.review__avatar{transition:transform .4s}
.review:hover .review__avatar{transform:scale(1.08) rotate(6deg)}

/* botão flutuante do WhatsApp */
.fab{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:60;width:60px;height:60px;border-radius:50%;
  background:linear-gradient(#25d366,#128c7e);display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.3);
  opacity:0;transform:translateY(20px) scale(.8);pointer-events:none;transition:opacity .35s,transform .35s;animation:pulseWa 2.4s infinite}
.fab img{width:34px;height:34px}
.fab.is-visible{opacity:1;transform:none;pointer-events:auto}
.fab:hover{filter:brightness(1.08)}
@keyframes pulseWa{0%{box-shadow:0 8px 24px rgba(0,0,0,.3),0 0 0 0 rgba(37,211,102,.55)}70%{box-shadow:0 8px 24px rgba(0,0,0,.3),0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 8px 24px rgba(0,0,0,.3),0 0 0 0 rgba(37,211,102,0)}}

@media (prefers-reduced-motion:reduce){
  .hero__float,.hero .btn--lg,.video__play,.fab{animation:none!important}
  .btn::after{display:none}
}
