:root{
  --g:#fc8620;
  --soft:#f5f6f7;
}

#navbar{
  background-color: #343a40;
}

.fw-black{font-weight:900}
.text-green{color:var(--g)!important}
.btn-green{background:var(--g)!important;color:#fff!important;border-color:var(--g)!important}
.btn-green:hover{filter:brightness(.95)}
.bg-soft{background:var(--soft)!important}

.letter-wide{letter-spacing:.12em}

/* Topbar */
.topbar{background:var(--g)}
.topsep{width:1px;height:14px;background:rgba(255,255,255,.35);display:inline-block}
.iconbtn{
  width:36px;height:36px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.18);
  color:#fff;
  flex:0 0 auto;
  text-decoration:none;
}
.iconbtn:hover{background:rgba(255,255,255,.26);color:#fff}

/* Hero */
.hero{
  min-height:72vh;
  background:
    linear-gradient(rgba(0,0,0,.35),rgba(0,0,0,.35)),
    url("../img/foto-17.jpeg");
  background-size:cover;
  background-position:center;
}
.hero-overlay{display:none}
.hero-box{border-radius:0} /* demo é bem reto */

/* Zig zag */
.zig{
  width:46px;height:10px;
  background:
    linear-gradient(135deg, transparent 75%, var(--g) 75%) 0 0/10px 10px,
    linear-gradient(225deg, transparent 75%, var(--g) 75%) 0 0/10px 10px;
}

/* Serviços em círculo */
.circle-img{
  width:210px;height:210px;
  border-radius:50%;
  overflow:hidden;
  border:7px solid var(--g);
  background:#fff;
}
.circle-img img{width:100%;height:100%;object-fit:cover}

/* CTA verde */
.cta-green{background:var(--g)}
.cta-brush{position:relative;overflow:hidden}
.cta-brush::after{
  content:"";
  position:absolute;
  width:520px;height:520px;border-radius:50%;
  right:-160px;bottom:-220px;
  background:rgba(255,255,255,.16);
  transform:rotate(10deg);
}

/* Projetos */
.tile{aspect-ratio:16/10}
.proj-img{transition:transform .25s ease}
.tile:hover .proj-img{transform:scale(1.04)}

/* Botões de filtro */
.tabbtn.active{
  background:var(--g)!important;
  border-color:var(--g)!important;
  color:#fff!important;
}

/* Check dots */
.checkdot{
  width:34px;height:34px;border-radius:50%;
  background:var(--g);
  color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 auto;
}

/* WhatsApp float */
.wa-float{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:1050;
}

/* CTA verde mais atrativa */
.cta-green--pro{
  position:relative;
  overflow:hidden;
}

.cta-green--pro::before{
  content:"";
  position:absolute;
  inset:-60px -120px auto auto;
  width:360px;height:360px;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  filter:blur(0px);
  transform:rotate(8deg);
}

.cta-green--pro::after{
  content:"";
  position:absolute;
  left:-140px;bottom:-180px;
  width:520px;height:520px;
  border-radius:50%;
  background:rgba(0,0,0,.10);
  filter:blur(0px);
  transform:rotate(-6deg);
}

.cta-badge{
  width:52px;height:52px;
  border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  font-size:22px;
  flex:0 0 auto;
}

.cta-highlight{
  display:inline-block;
  padding:0 .35rem;
  border-radius:.5rem;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
}

.cta-pill{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.38rem .6rem;
  border-radius:999px;
  font-weight:700;
  font-size:.9rem;
  color:rgba(255,255,255,.92);
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);
}

.cta-btn{
  box-shadow:0 18px 40px rgba(0,0,0,.20);
}

.cta-note{
  font-size:.92rem;
}

/* garante que conteúdo fique acima dos efeitos */
.cta-green--pro .container{
  position:relative;
  z-index:1;
}

/* CTA FINAL mais premium */
.cta-final{
  position:relative;
  overflow:hidden;
}

.cta-final::before{
  content:"";
  position:absolute;
  right:-140px; top:-180px;
  width:520px;height:520px;
  border-radius:50%;
  background:rgba(255,255,255,.14);
  transform:rotate(10deg);
}

.cta-final::after{
  content:"";
  position:absolute;
  left:-220px; bottom:-260px;
  width:680px;height:680px;
  border-radius:50%;
  background:rgba(0,0,0,.10);
  transform:rotate(-8deg);
}

.cta-final .container{z-index:1}

.cta-tag{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.45rem .75rem;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.92);
  font-weight:800;
  font-size:.95rem;
}

.cta-underline{
  position:relative;
  display:inline-block;
}
.cta-underline::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-6px;
  height:10px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  z-index:-1;
}

.cta-points{
  display:grid;
  gap:.55rem;
  max-width:520px;
}
.cta-point{
  display:flex;
  align-items:center;
  gap:.55rem;
  color:rgba(255,255,255,.92);
  font-weight:700;
}
.cta-point i{font-size:1.1rem}

.cta-card{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  border-radius:16px;
  padding:18px 18px 16px;
  box-shadow:0 22px 60px rgba(0,0,0,.18);
  backdrop-filter: blur(6px);
}

.cta-card__title{
  color:#fff;
  font-weight:900;
  margin-bottom:10px;
}

.cta-mini{
  display:flex;
  align-items:center;
  gap:.6rem;
  color:rgba(255,255,255,.9);
  font-weight:700;
  padding:.35rem 0;
}

.cta-mini__dot{
  width:10px;height:10px;border-radius:50%;
  background:rgba(255,255,255,.75);
  box-shadow:0 0 0 6px rgba(255,255,255,.10);
}

.cta2-btn{
  box-shadow:0 18px 40px rgba(0,0,0,.20);
}

.cta-small{
  font-size:.92rem;
}

/* Projetos: garante que o <a> ocupe tudo */
.proj-link{
  display:block;
  width:100%;
  height:100%;
}

/* Lightbox */
.lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.82);
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index:2000;
}

.lightbox.is-open{ display:flex; }

.lightbox-img{
  max-width:min(1100px, 96vw);
  max-height:88vh;
  width:auto;
  height:auto;
  border-radius:14px;
  box-shadow:0 26px 80px rgba(0,0,0,.45);
}

.lightbox-close{
  position:fixed;
  top:14px;
  right:16px;
  width:46px;
  height:46px;
  border-radius:999px;
  border:0;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:34px;
  line-height:1;
  cursor:pointer;
}

.lightbox-close:hover{ background:rgba(255,255,255,.22); }

/* Mobile: 2 colunas já vem com col-6, mas aqui garante altura agradável */
@media (max-width: 575.98px){
  .tile{ aspect-ratio: 1 / 1; } /* mais “quadrado” no celular */
}

/* =========================
   MOBILE: TOPBAR 3 LINHAS CENTRALIZADAS
   ========================= */
@media (max-width: 575.98px){

  /* container vira coluna e centraliza tudo */
  .topbar .container{
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .35rem !important;
    text-align: center;
  }

  /* 1) Telefone centralizado em linha própria */
  .topbar .container > .d-flex:first-child{
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .35rem !important;
    width: 100%;
  }

  /* some o separador */
  .topbar .topsep{
    display: none !important;
  }

  /* deixa telefone e região centralizados */
  .topbar a.toplink,
  .topbar .text-white-75{
    justify-content: center !important;
    text-align: center !important;
    width: 100%;
  }

  /* 2) Ícones centralizados na 3ª linha */
  .topbar .container > .d-flex:last-child{
    margin-left: 0 !important;
    justify-content: center !important;
    width: 100%;
  }
}


/* =========================
   MOBILE: CTA "ORÇAMENTO GRÁTIS..." CENTRALIZADO
   (seção cta-green--pro)
   ========================= */
@media (max-width: 575.98px){

  .cta-green--pro .row{
    text-align: center;
  }

  .cta-green--pro .col-lg-8 .d-flex{
    flex-direction: column !important;
    align-items: center !important;
    text-align: center;
  }

  .cta-green--pro .cta-badge{
    margin: 0 auto .25rem;
  }

  .cta-green--pro .cta-pill{
    justify-content: center;
  }

  .cta-green--pro .col-lg-4{
    text-align: center !important;
  }

  .cta-green--pro .cta-btn{
    width: 100%;
    max-width: 360px;
  }

  .cta-green--pro .cta-note{
    text-align: center;
  }
}


/* =========================
   MOBILE: SOBRE NÓS CENTRALIZADO
   ========================= */
@media (max-width: 575.98px){

  #sobre{
    text-align: center;
  }

  /* título + zig central */
  #sobre .zig{
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* lista centralizada e com largura boa */
  #sobre ul.list-unstyled{
    width: 100%;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
    text-align: left; /* mantém leitura boa */
  }

  /* items da lista */
  #sobre ul.list-unstyled li{
    justify-content: flex-start;
  }

  /* botão central */
  #sobre .btn{
    display: inline-flex;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
  }

  /* imagem central */
  #sobre img{
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Projetos: card bonito + altura consistente */
.proj-card{
  position: relative;
  display: block;
  border-radius: 16px;
  overflow: hidden;
  background: #111;
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
  transform: translateZ(0);
}

.proj-card::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0) 55%);
  opacity: .9;
  pointer-events:none;
}

.proj-img{
  width:100%;
  height:220px;
  object-fit: cover;
  display:block;
  transition: transform .25s ease, filter .25s ease;
}

.proj-card:hover .proj-img{
  transform: scale(1.04);
  filter: contrast(1.05) saturate(1.05);
}

.proj-badge{
  position:absolute;
  left:12px;
  bottom:12px;
  z-index:2;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: .5px;
  text-transform: uppercase;
  background: rgba(255,255,255,.14);
  color: #fff;
  backdrop-filter: blur(8px);
}

/* Mobile: mantém 2 por linha e deixa altura legal */
@media (max-width: 575.98px){
  .proj-img{ height: 160px; }
}

/* Desktop maior: sobe altura */
@media (min-width: 992px){
  .proj-img{ height: 240px; }
}

