:root {
  --dark:    #0E1C14;
  --green:   #1A3A28;
  --green2:  #245235;
  --green3:  #2E6642;
  --mint:    #4A9B6F;
  --gold:    #C8972A;
  --gold2:   #E8B84B;
  --cream:   #FBF8F2;
  --offwhite:#F3EFE6;
  --text:    #1A1A1A;
  --muted:   #5E6E60;
  --wa:      #25D366;
  --wa2:     #128C7E;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Nunito',sans-serif; background:var(--cream); color:var(--text); overflow-x:hidden; }
h1,h2,h3,h4 { font-family:'Playfair Display',serif; }

/* ── NAV ── */
#navbar {
  position:fixed; top:0; left:0; right:0; z-index:300;
  padding:18px 48px;
  display:flex; align-items:center; justify-content:space-between;
  transition:all .4s;
}
#navbar.scrolled {
  background:rgba(14,28,20,.97);
  backdrop-filter:blur(10px);
  padding:13px 48px;
  box-shadow:0 2px 24px rgba(0,0,0,.3);
}
.nav-logo { font-family:'Playfair Display',serif; font-size:21px; color:#fff; text-decoration:none; font-weight:800; letter-spacing:.5px; }
.nav-links { display:flex; align-items:center; gap:28px; }
.nav-links a { font-size:14px; color:rgba(255,255,255,.78); text-decoration:none; font-weight:700; transition:color .2s; }
.nav-links a:hover { color:var(--gold2); }

#hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
#hamburger span { display:block; width:25px; height:2px; background:#fff; border-radius:2px; transition:all .3s; }
#hamburger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
#hamburger.open span:nth-child(2){ opacity:0; }
#hamburger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

#mobile-menu {
  display:none; position:fixed; inset:0; z-index:290;
  background:var(--dark); flex-direction:column; align-items:center; justify-content:center; gap:32px;
}
#mobile-menu.open { display:flex; }
#mobile-menu a { font-family:'Playfair Display',serif; font-size:32px; color:#fff; text-decoration:none; font-weight:700; }
#mobile-menu .mm-cta { font-family:'Nunito',sans-serif; font-size:16px; background:var(--wa); color:#fff !important; padding:13px 32px; border-radius:50px; font-weight:800; }

/* ── WA BUTTON ── */
@keyframes pulse-wa {
  0%   { box-shadow:0 0 0 0 rgba(37,211,102,.6); }
  70%  { box-shadow:0 0 0 14px rgba(37,211,102,0); }
  100% { box-shadow:0 0 0 0 rgba(37,211,102,0); }
}
.wa-btn {
  display:inline-flex; align-items:center; gap:10px;
  background:var(--wa); color:#fff;
  padding:15px 32px; border-radius:50px;
  font-family:'Nunito',sans-serif; font-size:15px; font-weight:800;
  text-decoration:none; letter-spacing:.3px;
  animation:pulse-wa 2s infinite;
  transition:transform .25s, background .25s;
  border:none; cursor:pointer;
}
.wa-btn:hover { background:var(--wa2); transform:translateY(-2px); }

/* ── FAB ── */
#wa-fab {
  position:fixed; bottom:26px; right:26px; z-index:1000;
  width:58px; height:58px; border-radius:50%;
  background:var(--wa); display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 20px rgba(37,211,102,.5);
  text-decoration:none; animation:pulse-wa 2s infinite; transition:transform .25s;
}
#wa-fab:hover { transform:scale(1.1); }

/* ── REVEAL ── */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── SECTION HELPERS ── */
.section-tag {
  display:inline-flex; align-items:center; gap:8px;
  font-size:12px; font-weight:800; color:var(--mint);
  letter-spacing:2px; text-transform:uppercase; margin-bottom:14px;
}
.section-tag::before { content:''; width:24px; height:2px; background:var(--mint); border-radius:2px; }
.section-h2 { font-size:clamp(28px,4.5vw,50px); font-weight:900; color:var(--dark); line-height:1.1; margin-bottom:14px; }
.section-sub { font-size:15px; color:var(--muted); line-height:1.85; max-width:520px; }

/* ══════════════════════════════
   1. CAPA
══════════════════════════════ */
#hero {
  min-height:100vh; position:relative;
  display:flex; align-items:center;
  padding:120px 48px 80px; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0;
  background:linear-gradient(145deg, #071009 0%, #0E1C14 40%, #1A3A28 100%);
}
.hero-bg::after {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 55% 70% at 75% 50%, rgba(74,155,111,.22) 0%, transparent 65%),
    radial-gradient(ellipse 30% 40% at 90% 10%, rgba(200,151,42,.12) 0%, transparent 60%);
}
.hero-bg::before {
  content:''; position:absolute; inset:0;
  background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:60px 60px;
}
.hero-deco {
  position:absolute; top:10%; right:5%; width:440px; height:440px;
  border-radius:50%; border:1px solid rgba(200,151,42,.15); pointer-events:none;
}
.hero-deco::before {
  content:''; position:absolute; inset:28px; border-radius:50%;
  border:1px solid rgba(200,151,42,.08);
}
.hero-content { position:relative; z-index:2; max-width:1100px; margin:0 auto; width:100%; }
.hero-title { font-size:clamp(44px,7vw,90px); font-weight:900; color:#fff; line-height:1.0; margin-bottom:10px; }
.hero-title span { color:var(--gold2); }
.hero-subtitle {
  font-family:'Playfair Display',serif;
  font-size:clamp(18px,2.8vw,30px); color:rgba(255,255,255,.55);
  font-weight:700; font-style:italic; margin-bottom:26px; line-height:1.3;
}
.hero-desc { font-size:16px; color:rgba(255,255,255,.68); line-height:1.9; font-weight:400; max-width:500px; margin-bottom:42px; }

/* ══════════════════════════════
   2. SERVIÇOS
══════════════════════════════ */
#servicos { background:var(--offwhite); padding:88px 48px; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:52px; }

.sc {
  background:#fff; border-radius:16px; padding:34px 28px 30px;
  border:1px solid rgba(26,58,40,.08);
  position:relative; overflow:hidden;
  transition:all .35s cubic-bezier(.22,1,.36,1);
}
.sc::after {
  content:''; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg, var(--green3), var(--mint));
  transform:scaleX(0); transform-origin:left; transition:transform .35s;
}
.sc:hover { transform:translateY(-6px); box-shadow:0 20px 56px rgba(26,58,40,.1); }
.sc:hover::after { transform:scaleX(1); }
.sc-icon {
  width:50px; height:50px; border-radius:12px;
  background:linear-gradient(135deg, var(--green2), var(--green3));
  display:flex; align-items:center; justify-content:center;
  margin-bottom:18px; box-shadow:0 6px 18px rgba(26,58,40,.25);
}
.sc-title { font-size:19px; font-weight:800; color:var(--dark); margin-bottom:9px; line-height:1.2; }
.sc-desc { font-size:13px; color:var(--muted); line-height:1.75; margin-bottom:22px; }
.sc-wa {
  display:inline-flex; align-items:center; gap:7px;
  background:var(--wa); color:#fff; padding:10px 20px; border-radius:50px;
  font-size:13px; font-weight:800; text-decoration:none;
  animation:pulse-wa 2s infinite; transition:background .2s;
}
.sc-wa:hover { background:var(--wa2); }
.servicos-cta { text-align:center; margin-top:52px; }

/* ══════════════════════════════
   3. SOBRE
══════════════════════════════ */
#sobre {
  background:linear-gradient(160deg, var(--dark) 0%, var(--green) 100%);
  padding:88px 48px; position:relative; overflow:hidden;
}
#sobre::before {
  content:''; position:absolute; top:-80px; right:-80px;
  width:350px; height:350px; border-radius:50%;
  background:radial-gradient(circle, rgba(200,151,42,.1) 0%, transparent 70%); pointer-events:none;
}
#sobre::after {
  content:''; position:absolute; bottom:-60px; left:-60px;
  width:260px; height:260px; border-radius:50%;
  background:radial-gradient(circle, rgba(74,155,111,.08) 0%, transparent 70%); pointer-events:none;
}
.sobre-inner {
  max-width:820px; margin:0 auto; position:relative; z-index:1;
  display:flex; flex-direction:column; align-items:center; text-align:center;
}
.sobre-photo-wrap { position:relative; margin-bottom:32px; }
.sobre-photo {
  width:180px; height:180px; border-radius:50%; overflow:hidden;
  border:4px solid rgba(200,151,42,.55);
  box-shadow:0 0 0 10px rgba(200,151,42,.1), 0 20px 60px rgba(0,0,0,.4);
  object-fit:cover; display:block;
}
.sobre-photo-badge {
  position:absolute; bottom:4px; right:4px;
  background:var(--wa); border-radius:50%;
  width:36px; height:36px; display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px rgba(37,211,102,.5);
  border:2px solid var(--dark);
}
.sobre-name { font-size:clamp(26px,4vw,40px); font-weight:900; color:#fff; margin-bottom:6px; }
.sobre-crp {
  display:inline-block; background:rgba(200,151,42,.14);
  border:1px solid rgba(200,151,42,.32); color:var(--gold2);
  font-size:13px; font-weight:700; padding:5px 16px; border-radius:50px;
  margin-bottom:24px; letter-spacing:1px;
}
.sobre-text { font-size:15px; color:rgba(255,255,255,.7); line-height:1.95; margin-bottom:34px; max-width:660px; }

/* ══════════════════════════════
   4. DEPOIMENTOS
══════════════════════════════ */
#depoimentos { background:var(--cream); padding:88px 48px; }
.carousel-wrap { position:relative; overflow:hidden; margin-top:52px; }
.carousel-track { display:flex; transition:transform .5s cubic-bezier(.22,1,.36,1); }
.tslide { flex:0 0 100%; padding:0 6px; }
.tcard {
  background:#fff; border-radius:20px; padding:44px 52px;
  max-width:720px; margin:0 auto; text-align:center;
  border:1px solid rgba(26,58,40,.07);
  box-shadow:0 8px 40px rgba(0,0,0,.07);
  position:relative;
}
.tcard::before {
  content:'"'; position:absolute; top:16px; left:32px;
  font-family:'Playfair Display',serif; font-size:110px; line-height:1;
  color:rgba(26,58,40,.06); pointer-events:none;
}
.tstar { display:flex; justify-content:center; gap:4px; margin-bottom:20px; color:var(--gold); }
.tquote { font-family:'Poppins',sans-serif; font-size:clamp(15px,2vw,17px); font-style:italic; color:var(--dark); line-height:1.8; font-weight:400; margin-bottom:28px; }
.tname  { font-family:'Poppins',sans-serif; font-size:14px; font-weight:700; color:var(--dark); }
.trole  { font-family:'Poppins',sans-serif; font-size:12px; color:var(--muted); margin-top:3px; font-weight:500; }
.carousel-ctrl { display:flex; justify-content:center; align-items:center; gap:16px; margin-top:34px; }
.c-btn {
  width:46px; height:46px; border-radius:50%;
  border:2px solid var(--green3); background:#fff; color:var(--green3);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all .25s; flex-shrink:0;
}
.c-btn:hover { background:var(--green3); color:#fff; }
.c-dots { display:flex; gap:8px; }
.c-dot { width:8px; height:8px; border-radius:50%; background:rgba(26,58,40,.2); cursor:pointer; transition:all .3s; }
.c-dot.active { background:var(--green3); width:24px; border-radius:4px; }

/* ══════════════════════════════
   5. RODAPÉ
══════════════════════════════ */
footer { background:var(--dark); padding:64px 48px 28px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.2fr; gap:44px; margin-bottom:44px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.09); }
.footer-logo { font-family:'Playfair Display',serif; font-size:21px; color:#fff; font-weight:800; margin-bottom:12px; }
.footer-desc { font-size:13px; color:rgba(255,255,255,.38); line-height:1.9; max-width:240px; }
.footer-col-title { font-size:11px; font-weight:800; color:rgba(255,255,255,.28); letter-spacing:2px; text-transform:uppercase; margin-bottom:18px; }
.flink { display:block; font-size:13px; color:rgba(255,255,255,.46); text-decoration:none; margin-bottom:11px; font-weight:600; transition:color .2s; }
.flink:hover { color:var(--gold2); }
.fcontact { display:flex; align-items:flex-start; gap:9px; margin-bottom:12px; font-size:13px; color:rgba(255,255,255,.46); font-weight:600; }
.fcontact svg { flex-shrink:0; margin-top:1px; color:var(--mint); }
.footer-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.footer-copy { font-size:12px; color:rgba(255,255,255,.18); }
.footer-crp  { font-size:12px; color:var(--gold); font-weight:700; }

/* ══════════════════════════════
   RESPONSIVE
══════════════════════════════ */
@media(max-width:1000px){
  .services-grid { grid-template-columns:1fr 1fr; }
  .footer-grid   { grid-template-columns:1fr 1fr; }
}
@media(max-width:768px){
  #navbar        { padding:15px 22px; }
  #navbar.scrolled { padding:12px 22px; }
  .nav-links     { display:none; }
  #hamburger     { display:flex; }
  #hero          { padding:100px 22px 68px; }
  #servicos, #sobre, #depoimentos { padding:68px 22px; }
  footer         { padding:52px 22px 24px; }
  .services-grid { grid-template-columns:1fr; }
  .footer-grid   { grid-template-columns:1fr 1fr; }
  .tcard         { padding:32px 24px; }
}
@media(max-width:520px){
  .hero-title    { font-size:38px; }
  .footer-grid   { grid-template-columns:1fr; }
  #wa-fab        { bottom:18px; right:18px; width:52px; height:52px; }
  .tcard         { padding:28px 18px; }
  .sobre-photo   { width:150px; height:150px; }
}