:root {
  --bg:          #f8f4ee;
  --bg2:         #fdfaf5;
  --white:       #ffffff;
  --green:       #8fbf9f;
  --green-d:     #6da080;
  --green-md:    #b8d8c3;
  --green-lt:    #daeee2;
  --green-pale:  #eef7f1;
  --yellow:      #f5d060;
  --yellow-lt:   #fdf3cc;
  --yellow-pale: #fffae9;
  --rose:        #e8b4ac;
  --rose-lt:     #f8e2de;
  --rose-pale:   #fdf1ee;
  --text:        #362e26;
  --muted:       #7a6e62;
  --light:       #b0a090;
  --r:           16px;
  --r-lg:        24px;
  --sh:          0 4px 20px rgba(54,46,38,.08);
  --sh-md:       0 10px 36px rgba(54,46,38,.11);
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Quicksand',sans-serif;background:var(--bg);color:var(--text);line-height:1.65;overflow-x:hidden;}
a{text-decoration:none;color:inherit;}
img{display:block;width:100%;height:100%;object-fit:cover;}

/* ── NAV ── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:300;
  height:66px;display:flex;align-items:center;justify-content:space-between;
  padding:0 52px;
  background:rgba(253,250,245,.94);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--green-lt);
}
.logo{display:flex;align-items:center;gap:10px;}
.logo-icon{width:36px;height:36px;border-radius:10px;background:var(--green-pale);border:1.5px solid var(--green-md);display:flex;align-items:center;justify-content:center;font-size:1rem;}
.logo b{font-size:.95rem;font-weight:700;color:var(--text);}
.logo small{display:block;font-size:.65rem;font-weight:500;color:var(--light);letter-spacing:.07em;text-transform:uppercase;}
nav ul{list-style:none;display:flex;align-items:center;gap:32px;}
nav ul a{font-size:.87rem;font-weight:600;color:var(--muted);transition:color .2s;}
nav ul a:hover{color:var(--green-d);}
.nav-cta{background:var(--green);color:var(--white)!important;padding:9px 22px;border-radius:50px;font-weight:700!important;font-size:.84rem!important;box-shadow:0 3px 14px rgba(143,191,159,.4);transition:background .2s,transform .2s!important;}
.nav-cta:hover{background:var(--green-d)!important;transform:translateY(-1px);}

/* ── SECTION HELPERS ── */
.slbl{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green-d);margin-bottom:10px;}
.slbl::before{content:'';width:18px;height:2px;background:var(--green);border-radius:2px;}
.sh{font-family:'Lora',serif;font-size:clamp(1.8rem,2.5vw,2.5rem);font-weight:400;line-height:1.22;color:var(--text);margin-bottom:14px;}
.sh em{font-style:italic;color:var(--green-d);}
.sp{font-size:.97rem;font-weight:500;line-height:1.75;color:var(--muted);}

/* ═══════════════════════════════════════
   HERO — foto principal grande à direita,
   texto + chips à esquerda
═══════════════════════════════════════ */
.hero{
  min-height:100vh;
  display:grid;
  grid-template-columns:1fr 480px;
  gap:0;
  padding-top:66px;
  background:var(--bg2);
  overflow:hidden;
}

/* lado esquerdo: texto */
.hero-content{
  padding:80px 56px 80px 56px;
  display:flex;flex-direction:column;justify-content:center;
  position:relative;
}
.hero-content::before{
  content:'';position:absolute;bottom:-60px;left:-60px;
  width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,var(--yellow-pale) 0%,transparent 65%);
  z-index:0;pointer-events:none;
}
.hero-content > *{position:relative;z-index:1;}

.hero-tag{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--green-pale);color:var(--green-d);
  border:1px solid var(--green-md);
  padding:7px 18px;border-radius:50px;
  font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  margin-bottom:22px;width:fit-content;
}
.hero-tag .dot{width:7px;height:7px;border-radius:50%;background:var(--green);}

.hero-content h1{
  font-family:'Lora',serif;
  font-size:clamp(2.4rem,3.2vw,3.4rem);
  font-weight:400;line-height:1.18;
  color:var(--text);margin-bottom:18px;
}
.hero-content h1 em{font-style:italic;color:var(--green-d);}

.hero-content p{
  font-size:1.03rem;font-weight:500;line-height:1.75;
  color:var(--muted);max-width:480px;margin-bottom:32px;
}

.hero-btns{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:36px;}
.btn-main{display:inline-flex;align-items:center;gap:9px;background:var(--green);color:#fff;padding:13px 28px;border-radius:50px;font-size:.94rem;font-weight:700;box-shadow:0 5px 20px rgba(143,191,159,.4);transition:all .25s;}
.btn-main:hover{background:var(--green-d);transform:translateY(-2px);}
.btn-sec{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--green-md);color:var(--green-d);padding:12px 24px;border-radius:50px;font-size:.94rem;font-weight:600;transition:all .25s;}
.btn-sec:hover{background:var(--green-pale);transform:translateY(-2px);}

/* chips de especialidades */
.hero-chips{display:flex;flex-wrap:wrap;gap:8px;}
.hchip{padding:6px 14px;border-radius:50px;font-size:.76rem;font-weight:600;border:1.5px solid;}
.hchip.g{background:var(--green-pale);color:#4a8060;border-color:var(--green-md);}
.hchip.y{background:var(--yellow-pale);color:#806020;border-color:var(--yellow-lt);}
.hchip.r{background:var(--rose-pale);color:#a06060;border-color:var(--rose-lt);}

/* lado direito: foto full-height */
.hero-photo{
  position:relative;
  overflow:hidden;
}
.hero-photo img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:top center;
  border-radius:24px;
  box-shadow:-16px 16px 48px rgba(54,46,38,.25);
}
/* overlay suave na base */
.hero-photo::after{
  content:'';
  position:absolute;bottom:0;left:0;right:0;height:180px;
  background:linear-gradient(to top,rgba(248,244,238,.6),transparent);
}
/* badge flutuante CRP */
.badge-crp{
  position:absolute;top:24px;left:24px;z-index:10;
  background:var(--white);border-radius:50px;
  padding:8px 16px;
  box-shadow:var(--sh-md);
  font-size:.74rem;font-weight:700;color:#806020;
  border:1.5px solid var(--yellow-lt);
}
/* badge flutuante atendimento */
.badge-atend{
  position:absolute;bottom:28px;left:24px;z-index:10;
  background:var(--white);border-radius:var(--r);
  padding:12px 16px;
  box-shadow:var(--sh-md);
  display:flex;align-items:center;gap:10px;
  border:1px solid var(--green-lt);
}
.badge-atend .bdot{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0;box-shadow:0 0 0 3px var(--green-lt);animation:pulse 2s infinite;}
.badge-atend p{font-size:.8rem;font-weight:700;color:var(--text);}
.badge-atend small{font-size:.71rem;color:var(--light);font-weight:500;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* ═══════════════════════════════════════
   SOBRE — foto lateral com altura total,
   conteúdo + formações à direita
═══════════════════════════════════════ */
.sobre{
  display:grid;
  grid-template-columns:400px 1fr;
  gap:0;
  background:var(--white);
}

/* coluna da foto */
.sobre-foto{
  position:relative;
  overflow:hidden;
  min-height:600px;
}
.sobre-foto img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:center top;
}
/* overlay verde claro na lateral direita para transição suave */
.sobre-foto::after{
  content:'';
  position:absolute;top:0;right:0;bottom:0;width:60px;
  background:linear-gradient(to right,transparent,var(--white));
}

/* badges flutuantes sobre a foto */
.sobre-foto-badges{
  position:absolute;bottom:24px;left:16px;right:16px;z-index:10;
  display:flex;flex-direction:column;gap:8px;
}
.sbfbadge{
  background:rgba(255,255,255,.92);backdrop-filter:blur(8px);
  border-radius:12px;padding:10px 14px;
  display:flex;align-items:center;gap:10px;
  border:1px solid var(--green-lt);
  box-shadow:var(--sh);
}
.sbfbadge .bi{font-size:1.1rem;}
.sbfbadge b{display:block;font-size:.83rem;font-weight:700;color:var(--text);}
.sbfbadge small{font-size:.71rem;color:var(--light);font-weight:500;}

/* coluna do texto */
.sobre-content{
  padding:72px 56px 72px 48px;
  display:flex;flex-direction:column;justify-content:center;
}
.sobre-content .sp{max-width:520px;margin-bottom:12px;}

.fc-list{margin-top:24px;display:flex;flex-direction:column;gap:9px;}
.fc{display:flex;align-items:flex-start;gap:12px;background:var(--bg);border-radius:12px;padding:14px 16px;border-left:3px solid var(--green-md);transition:border-color .2s,box-shadow .2s;}
.fc:hover{border-color:var(--green);box-shadow:var(--sh);}
.fc.am{border-color:var(--yellow-lt);}.fc.am:hover{border-color:var(--yellow);}
.fc.ro{border-color:var(--rose-lt);}.fc.ro:hover{border-color:var(--rose);}
.fc .fi{font-size:1.15rem;flex-shrink:0;margin-top:1px;}
.fc b{display:block;font-size:.88rem;font-weight:700;color:var(--text);margin-bottom:2px;}
.fc span{font-size:.77rem;color:var(--light);font-weight:500;}

/* ═══════════════════════════════════════
   INDICAÇÕES
═══════════════════════════════════════ */
.indicacoes{padding:96px 52px;background:var(--bg);}
.ind-head{max-width:580px;margin-bottom:48px;}
.ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.ic{background:var(--white);border-radius:var(--r);padding:20px 16px;display:flex;flex-direction:column;gap:10px;border:1.5px solid #ede8e0;border-bottom:3px solid #ede8e0;transition:transform .25s,box-shadow .25s,border-color .25s;cursor:default;}
.ic:hover{transform:translateY(-4px);box-shadow:var(--sh-md);}
.ic.g{border-bottom-color:var(--green-md);}.ic.g:hover{border-color:var(--green-md);border-bottom-color:var(--green);}
.ic.y{border-bottom-color:var(--yellow-lt);}.ic.y:hover{border-color:var(--yellow-lt);border-bottom-color:var(--yellow);}
.ic.r{border-bottom-color:var(--rose-lt);}.ic.r:hover{border-color:var(--rose-lt);border-bottom-color:var(--rose);}
.ic-box{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;transition:transform .25s;}
.ic:hover .ic-box{transform:scale(1.1);}
.ic-box.g{background:var(--green-pale);}
.ic-box.y{background:var(--yellow-pale);}
.ic-box.r{background:var(--rose-pale);}
.ic h4{font-size:.84rem;font-weight:700;color:var(--text);line-height:1.4;}

/* ═══════════════════════════════════════
   COMO FUNCIONA
═══════════════════════════════════════ */
.como{padding:96px 52px;background:var(--white);}
.como-inner{display:grid;grid-template-columns:1fr 1fr;gap:68px;align-items:start;margin-top:48px;}

.steps{display:flex;flex-direction:column;}
.step{display:flex;gap:18px;padding-bottom:28px;position:relative;}
.step:not(:last-child)::after{content:'';position:absolute;left:19px;top:44px;bottom:0;width:2px;background:linear-gradient(to bottom,var(--green-md),transparent);}
.sn{width:40px;height:40px;border-radius:11px;background:var(--green-pale);border:1.5px solid var(--green-md);display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:700;color:var(--green-d);flex-shrink:0;transition:background .2s,color .2s,border-color .2s;}
.step:hover .sn{background:var(--green);color:#fff;border-color:var(--green);}
.sb{padding-top:8px;}
.sb h4{font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:5px;}
.sb p{font-size:.86rem;font-weight:500;color:var(--muted);line-height:1.7;}

.como-r{display:flex;flex-direction:column;gap:12px;}
.mod-card{border-radius:var(--r);overflow:hidden;border:1.5px solid var(--green-lt);box-shadow:var(--sh);}
.mod-head{background:var(--green-pale);padding:22px 24px;border-bottom:1.5px solid var(--green-lt);}
.mod-head h3{font-family:'Lora',serif;font-size:1.1rem;font-weight:600;color:var(--text);margin-bottom:4px;}
.mod-head p{font-size:.83rem;font-weight:500;color:var(--muted);line-height:1.6;}
.mod-body{background:var(--white);padding:18px 24px;display:flex;gap:10px;flex-wrap:wrap;}
.mpill{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:50px;font-size:.83rem;font-weight:600;}
.mpill.f{background:var(--green);color:#fff;}
.mpill.o{border:2px solid var(--green);color:var(--green-d);}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.fi2{background:var(--bg);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:7px;border:1.5px solid #ede8e0;transition:border-color .2s,box-shadow .2s;}
.fi2:hover{border-color:var(--green-md);box-shadow:var(--sh);}
.fi2 .fe{font-size:1.3rem;}
.fi2 p{font-size:.79rem;font-weight:500;color:var(--muted);line-height:1.55;}
.addr{background:var(--bg);border-radius:var(--r);padding:16px 20px;display:flex;align-items:center;gap:12px;border:1.5px solid var(--green-lt);}
.addr .ai{font-size:1.3rem;}
.addr .al{font-size:.67rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green-d);margin-bottom:2px;}
.addr .av{font-size:.82rem;font-weight:500;color:var(--muted);line-height:1.55;}

/* mapa */
.map-card{margin-top:12px;border-radius:var(--r);overflow:hidden;border:1.5px solid var(--green-lt);box-shadow:var(--sh);}
.map-card iframe{display:block;width:100%;border:none;}

/* ═══════════════════════════════════════
   CONTATO — foto da Esther à direita
═══════════════════════════════════════ */
.contato{
  background:var(--bg);
  padding:96px 52px;
}
.ct-inner{
  background:var(--bg2);
  border-radius:28px;
  border:1.5px solid #ede8e0;
  box-shadow:var(--sh-md);
  overflow:hidden;
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:480px;
}

/* texto + cards lado esquerdo */
.ct-left{
  padding:56px 48px;
  display:flex;flex-direction:column;justify-content:center;
  position:relative;overflow:hidden;
}
.ct-left::before{
  content:'';position:absolute;top:-60px;left:-60px;
  width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,var(--green-pale) 0%,transparent 65%);
}
.ct-left::after{
  content:'';position:absolute;bottom:-40px;right:-40px;
  width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle,var(--rose-pale) 0%,transparent 65%);
}
.ct-left > *{position:relative;z-index:1;}
.ct-left .sp{max-width:360px;margin-bottom:0;}
.ct-btn{margin-top:24px;display:inline-flex;align-items:center;gap:9px;background:var(--green);color:#fff;padding:13px 28px;border-radius:50px;font-size:.94rem;font-weight:700;box-shadow:0 5px 18px rgba(143,191,159,.4);transition:all .25s;width:fit-content;}
.ct-btn:hover{background:var(--green-d);transform:translateY(-2px);}

.ct-cards{margin-top:20px;display:flex;flex-direction:column;gap:9px;}
.cc{background:var(--white);border-radius:var(--r);padding:14px 18px;display:flex;align-items:center;gap:12px;border:1.5px solid #ede8e0;transition:border-color .25s,box-shadow .25s,transform .25s;}
.cc:hover{border-color:var(--green-md);box-shadow:var(--sh);transform:translateX(4px);}
.cc .ci{font-size:1.3rem;}
.cc .cl{font-size:.67rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green-d);margin-bottom:1px;}
.cc .cv{font-size:.86rem;font-weight:600;color:var(--text);}

/* card com mapa */
.cc-map{flex-direction:column;gap:10px;align-items:stretch;padding:0;}
.cc-map .cc-content{display:flex;align-items:center;gap:12px;padding:14px 18px;}
.cc-map .cc-map-embed{overflow:hidden;border-radius:0 0 var(--r) var(--r);}

/* foto lado direito — encaixada sem padding */
.ct-foto{
  position:relative;
  overflow:hidden;
  min-height:420px;
}
.ct-foto img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:center top;
}
/* overlay suave à esquerda para transição com o card */
.ct-foto::before{
  content:'';
  position:absolute;top:0;left:0;bottom:0;width:80px;
  background:linear-gradient(to right,var(--bg2),transparent);
  z-index:1;
}

/* ── FOOTER ── */
footer{background:var(--text);padding:24px 52px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
footer p{font-size:.75rem;color:rgba(255,255,255,.3);}
.crp-f{color:var(--green-md)!important;opacity:.65;}

/* ── FLOATING BUTTONS ── */
.float-whatsapp,
.float-instagram {
  position: fixed;
  z-index: 1000;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--green);
  color: white;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  transition: all 0.3s ease;
  right: 30px;
  bottom: 30px;
  margin: 0;
  padding: 0;
  border: none;
  cursor: pointer;
}

.float-whatsapp {
  bottom: 30px;
}

.float-instagram {
  bottom: 96px;
}

.float-whatsapp:hover,
.float-instagram:hover {
  transform: scale(1.1);
  background: var(--green-d);
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}

.float-whatsapp svg,
.float-instagram svg {
  width: 24px;
  height: 24px;
  display: block;
}

/* ── REVEAL ── */
.rv{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease;}
.rv.in{opacity:1;transform:none;}
.rv.d1{transition-delay:.07s;}.rv.d2{transition-delay:.14s;}
.rv.d3{transition-delay:.21s;}.rv.d4{transition-delay:.28s;}
@keyframes up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.a1{animation:up .6s .1s both}.a2{animation:up .6s .22s both}
.a3{animation:up .6s .36s both}.a4{animation:up .6s .5s both}
.a5{animation:up .6s .28s both}

/* ── RESPONSIVE ── */
@media(max-width:1060px){.ind-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:900px){
  nav{padding:0 20px;}nav ul{display:none;}
  .hero{grid-template-columns:1fr;}
  .hero-content{order:2;}
  .hero-photo{order:1;height:420px;}
  .sobre{grid-template-columns:1fr;}
  .sobre-foto{min-height:360px;max-height:420px;}
  .sobre-foto::after{display:none;}
  .sobre-content{padding:40px 24px;}
  .hero-content{padding:48px 24px 40px;}
  .indicacoes,.como,.contato{padding:72px 20px;}
  .como-inner{grid-template-columns:1fr;gap:40px;}
  .ct-inner{grid-template-columns:1fr;}
  .ct-foto{min-height:300px;max-height:340px;}
  .ct-foto::before{display:none;}
  .ct-left{padding:36px 24px;}
  .ind-grid{grid-template-columns:repeat(2,1fr);}
  .float-whatsapp, .float-instagram {
    width: 48px;
    height: 48px;
    bottom: 20px;
    right: 20px;
  }
  .float-instagram {
    bottom: 76px;
  }
  footer{padding:20px;flex-direction:column;text-align:center;}
}
@media(max-width:520px){
  .hero-content h1{font-size:2.1rem;}
  .hero-btns{flex-direction:column;align-items:flex-start;}
  .feat{grid-template-columns:1fr;}
  .ind-grid{grid-template-columns:repeat(2,1fr);}
  .float-whatsapp, .float-instagram {
    width: 48px;
    height: 48px;
    bottom: 16px;
    right: 16px;
  }
  .float-instagram {
    bottom: 72px;
  }
}
