/* ============================================================
   Ideias Impressas – Estilos Gerais (Bootstrap 5 custom)
   ============================================================ */

/* ——  Paleta  —— */
:root{
  --bs-primary:#43B02A;   /* verde principal (botões / destaques) */
  --bs-secondary:#01133D; /* azul logótipo (topbar, ícones, divisórias) */
  --bs-success:#86D957;   /* verde claro (fundos suaves, ícones footer) */
  --bs-dark:#001A33;      /* azul ainda mais escuro                */
}

/* ——  Global  —— */
body{
  scroll-behavior:smooth;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

/* ——  Topbar —— */
.topbar{
  background:var(--bs-secondary);
  color:#fff;
  font-size:.9rem;
}
.topbar a{color:#fff;text-decoration:none;}
.topbar a:hover{color:var(--bs-success);}
.topbar .bi{color:#fff;}

/* ——  Ícones globais —— */
.bi{color:var(--bs-secondary);}      /* azul logótipo por defeito */
.serv-icon{color:var(--bs-secondary)!important;} /* ícones serviços */

/* ——  Secções —— */
.section-padding {padding: 5rem 1rem;}
@media (min-width: 768px) {.section-padding {padding: 5rem 3rem;} }
.shadow-hover:hover{box-shadow:0 0.75rem 1.5rem rgba(0,0,0,.12)!important;transform:translateY(-4px);transition:.3s;}
.portfolio img{object-fit:cover;height:220px;cursor:pointer;border-radius:.5rem;}

/* ——  Botão “topo” —— */
.btn-top{
  position:fixed;bottom:20px;right:20px;z-index:1055;
  width:48px;height:48px;border-radius:50%;
  display:none;align-items:center;justify-content:center;
  background:var(--bs-primary);color:#fff;border:none;
  box-shadow:0 4px 6px rgba(0,0,0,.2);
}
.btn-top.show{display:flex;}
.btn-top:hover{background:#359021;}

/* ============================================================
   Navegação
   ============================================================ */
.nav-link{color:#000;font-weight:500;transition:color .2s;}
.nav-link:hover,.nav-link.active{color:var(--bs-primary);}

/* —— Divisórias verticais | (tablet / desktop ≥768 px) —— */
@media (min-width:768px){
  .navbar-nav li + li{
    border-left:1px solid var(--bs-secondary);  /* barra azul */
    padding-left:1rem; margin-left:1rem;
  }
  .navbar-nav .nav-link{padding:0 .5rem;}
}
/* Off‑canvas mobile: sem barras */
@media (max-width:767.98px){
  .offcanvas .navbar-nav li + li{border-left:none;padding-left:.75rem;margin-left:0;}
  .offcanvas .navbar-nav .nav-link{margin:0;padding:.75rem 1rem;}
}
/* Largura do off‑canvas */
.offcanvas.offcanvas-end{width:260px;}

/* ============================================================
   Botões
   ============================================================ */
.btn-primary,
.btn-outline-primary:hover{
  background:var(--bs-primary);
  border-color:var(--bs-primary);
}
.btn-primary:hover{background:#359021;border-color:#359021;}
.btn-outline-primary{color:var(--bs-primary);border-color:var(--bs-primary);}
.btn-outline-primary:hover{color:#fff;}

/* ============================================================
   Formulário / Toast
   ============================================================ */
.was-validated .form-control:invalid,
.form-control.is-invalid{border-color:#dc3545;}
.was-validated .form-control:valid,
.form-control.is-valid{border-color:var(--bs-primary);}
.toast.text-bg-success{background:var(--bs-primary)!important;}

/* ============================================================
   Footer
   ============================================================ */
footer{
  background:var(--bs-secondary);
  color:#fff;
  padding:3rem 0;
}
footer a{color:#fff;text-decoration:none;}
footer a:hover{color:var(--bs-success);text-decoration:underline;}

/* Contacto alinhado */
.footer-list li{
  display:flex;
  gap:.5rem;
  align-items:flex-start;
  line-height:1.5;
  margin-bottom:.5rem;
}
.footer-list i{
  color:var(--bs-success);           /* ícones verdes claros */
  font-size:1rem;
  margin-top:.2rem;
}

/* ============================================================
   Responsividade extra
   ============================================================ */
@media (min-width:992px){
  .navbar-nav .nav-link{padding:.5rem 1rem;}
}

/* ============================================================
   Estilos para a secção “Como Trabalhamos
   ============================================================ */
.step-circle {
  width: 60px;
  height: 60px;
  background: var(--bs-primary);
  color: #fff;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 1.25rem;
  margin-bottom: 1rem;
}
.process-card {
  border: none;
  background: #fff;
  transition: transform .3s, box-shadow .3s;
}
.process-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 0.75rem 1.5rem rgba(0,0,0,.12);
}

/* ———————————————————————————————
   Testemunhos – cards fixos melhorados
   ——————————————————————————————— */
.testimonial-card {
  background: #fff;
  border: none;
  border-radius: .75rem;
  box-shadow: 0 0.5rem 1rem rgba(0,0,0,.05);
  padding: 2rem 1.5rem;
  text-align: center;
  transition: all .3s ease;
}
.testimonial-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 1rem 2rem rgba(0,0,0,.1);
}

.testimonial-quote {
  font-style: italic;
  color: #324A6D;
  position: relative;
  padding-top: 1rem;
  margin-bottom: 1.5rem;
}
.testimonial-quote::before {
  content: '“';
  font-size: 3.5rem;
  color: var(--bs-success);
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  opacity: .3;
}

.testimonial-author {
  font-weight: 600;
  color: var(--bs-success);
  margin-bottom: .25rem;
}
.testimonial-role {
  font-size: .9rem;
  color: #6c757d;
}

/* Espaço entre imagens em todos os ecrãs */
.portfolio .col-6,
.portfolio .col-md-4 {
  padding: 0.5rem;
}

/* Tamanho uniforme das imagens */
.portfolio-img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  object-position: center;
}

/* Garantir espaçamento em mobile */
@media (max-width: 767.98px) {
  .portfolio .col-6 {
    margin-bottom: 1rem;
  }
}

}