@charset "UTF-8";

/* ========== Vars ========= */
:root{
  --bg:#ffffff;
  --fg:#111111;
  --muted:#555555;
  --accent:#82ffb3;
  --maxw:1200px;

  --menu-idle:#bdbdbd;
  --menu-hover:#000000;

  /* Nav (cinza + glow branco) */
  --nav-grey:#aaaaaa;
  --nav-hover:#ffffff;
  --nav-glow:0 0 8px rgba(255,255,255,.85);
}

/* ========== Base ========= */
html,body{height:100%}
body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;
  color:var(--fg);
  background:var(--bg);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* ========== Header ========= */
header{
  position:sticky; top:0; z-index:30;
  background:rgba(255,255,255,0.7);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(0,0,0,0.06);
  padding-bottom:1rem;
}
.nav{
  position:relative;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:1rem;
  max-width:var(--maxw); margin:0 auto; padding:.6rem 1rem;
}
.brand{ display:flex; align-items:center; gap:.75rem; text-decoration:none; color:var(--fg) }
.brand img{ height:64px; width:auto; display:block }
.brand span{ display:none }
@media (max-width:720px){ .brand img{ height:40px } }

/* menu hambúrguer à esquerda */
.menu-container{
  position:absolute; left:0; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; gap:.5rem; z-index:40;
}
.menu-icon{
  width:32px; height:24px; cursor:pointer;
  display:flex; flex-direction:column; justify-content:space-between;
  padding:6px 2px; border:0; background:transparent;
}
.menu-icon span{
  display:block; height:3px; border-radius:2px;
  background:var(--menu-idle); transition:background .2s ease;
}
.menu-label{
  font-weight:700; letter-spacing:.08em; font-size:.78rem;
  color:var(--menu-idle); opacity:0; pointer-events:none;
  transition:opacity .2s ease, color .2s ease;
}
.dropdown{
  position:absolute; top:calc(100% + 10px); left:0;
  background:#fff; border:1px solid rgba(0,0,0,.1);
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
  border-radius:8px; list-style:none; padding:.5rem 0; margin:0; min-width:170px;
  visibility:hidden; opacity:0; transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s step-end;
  pointer-events:none;
}
.dropdown li{ margin:0; padding:0; }
.dropdown a{
  display:block; padding:.6rem 1rem; text-decoration:none;
  color:var(--menu-idle); font-weight:700; font-size:.9rem; letter-spacing:.06em;
  transition:color .2s ease, background .2s ease;
}
.dropdown a:hover{ color:var(--menu-hover); background:#f4f4f4; }
.menu-container:hover .menu-icon span{ background:var(--menu-hover); }
.menu-container:hover .menu-label{ opacity:1; color:var(--menu-hover); }
.menu-container.open .dropdown{ visibility:visible; opacity:1; transform:translateY(0); pointer-events:auto; }
.menu-container.open .menu-icon span{ background:var(--menu-hover); }
.menu-container.open .menu-label{ opacity:1; color:var(--menu-hover); }

/* ========== HERO — Flickity ========= */
.hero{
  position:relative;
  width:100%;
  max-width:var(--maxw);
  height:clamp(340px,60vh,600px);
  margin:0 auto;
  overflow:hidden;
}

/* mostrar vizinhos (Flickity define overflow hidden no viewport) */
.hero .flickity-viewport{ overflow:visible; }

/* track */
.carousel{
  height:100%;
}
/* cada célula < 100% p/ vizinhos visíveis */
.carousel-cell{
  width:98%;
  height:100%;
}
.carousel-cell img{
  width:100%; height:100%;
  object-fit:cover; display:block;
}

/* gradiente cinza clean atrás */
.hero::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(200,200,200,0.00) 0%,rgba(200,200,200,0.04) 65%,rgba(200,200,200,0.12) 85%,rgba(200,200,200,0.24) 100%);}

/* texto (sempre dentro do central) */
.hero-copy{position:absolute;z-index:5;left:50%;transform:translateX(-50%);bottom:84px;width:min(70%,860px);text-align:center;}
.tagline{
  font-size:clamp(1.3rem,3.2vw,2.2rem);
  font-weight:800;
  letter-spacing:.06em;               /* + épico */
  text-transform:uppercase;
  color:#fff;
  text-shadow:0 2px 18px rgba(0,0,0,.35); /* soft glow cinematográfico */
}

.sub{
  color:#fff;                          /* um pouco mais forte */
  margin-top:.6rem;
  font-size:clamp(.92rem,1.5vw,1.02rem);
  text-shadow:0 1px 12px rgba(0,0,0,.28); /* glow suave */
  opacity:1;
}

/* Navegador (<  .  .  –  .  .  >) */
.hero-controls{position:absolute;left:0;right:0;bottom:24px;display:flex;align-items:center;justify-content:center;gap:18px;z-index:6;user-select:none;}
.nav-arrow{
  appearance:none; border:none; background:transparent;
  width:36px; text-align:center; cursor:pointer;
  font:700 20px/1 system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;
  color:var(--nav-grey);
  transition:transform .2s ease, color .2s ease, text-shadow .2s ease;
}
.nav-arrow:hover, .nav-arrow:focus-visible{
  transform:scale(1.12); color:var(--nav-hover); text-shadow:var(--nav-glow);
}

.nav-dots{ display:flex; align-items:center; gap:16px; }
.nav-dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--nav-grey); opacity:.95;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.nav-dot:hover, .nav-dot:focus-visible{
  transform:scale(1.2); background:var(--nav-hover); box-shadow:var(--nav-glow);
}
.nav-dash{
  width:44px; height:4px; border-radius:2px;
  background:var(--nav-grey); opacity:1;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.nav-dash:hover, .nav-dash:focus-visible{
  background:var(--nav-hover); transform:scale(1.08); box-shadow:0 0 10px rgba(255,255,255,.9);
}

/* ========== Secções / Cards / Footer ========= */
section{ padding:64px 16px }
.container{ max-width:var(--maxw); margin:0 auto }
.grid{ display:grid; gap:24px }
@media (min-width:900px){ .grid-2{ grid-template-columns:1.1fr 1fr } }
h2{ font-size:clamp(1.2rem,2.4vw,1.6rem); margin:0 0 .75rem; letter-spacing:.02em }
p{ margin:0 0 1rem; color:var(--muted) }

.card{
  border:1px solid rgba(0,0,0,0.08);
  background:linear-gradient(180deg, rgba(0,0,0,0.02), rgba(0,0,0,0));
  border-radius:14px; padding:20px;
}
.btn{
  display:inline-block; padding:.7rem 1rem;
  border:1px solid rgba(0,0,0,.15); border-radius:999px;
  text-decoration:none; color:var(--fg); font-weight:600; letter-spacing:.03em;
}
.btn:hover{ border-color:var(--accent); color:var(--accent) }

/* ===== FOOTER MINIMAL ===== */
.footer-minimal {
  background: #000; /* fundo preto elegante */
  padding: 48px 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.footer-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
}
.footer-inner img {
  height: 60px;
  width: auto;
  display: block;
  filter: brightness(1.05); /* leve realce se necessário */
}
/* Footer branco com logo centrado */
.simple-footer {
  background: #ffffff;
  padding: 48px 16px;
}
.simple-footer .footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
}
.simple-footer img {
  height: 60px;
  width: auto;
  display: inline-block;
}



/* Acessibilidade */
@media (prefers-reduced-motion: reduce){ .carousel{ transition:none } }

/* Garante sempre 2 linhas na tagline */
.tagline{
  overflow: hidden;            /* evita aparecer 3ª linha por qualquer motivo */
  line-height: 1.15;
}
.tagline .line{
  display: block;
  white-space: nowrap;         /* cada linha NÃO quebra internamente */
}

/* Ajustes responsivos mínimos para evitar overflow em ecrãs pequenos */
@media (max-width: 560px){
  .tagline{ line-height: 1.1; }
}




/* ===== HEADER (restored) ===== */
header{
  position:sticky; top:0; z-index:30;
  background:rgba(255,255,255,.7);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(0,0,0,.06);
  padding-bottom:1rem;
}
.nav{
  position:relative;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:1rem; max-width:1200px; margin:0 auto; padding:.6rem 1rem;
}
.brand img{height:64px; width:auto; display:block}
@media (max-width:720px){ .brand img{height:40px} }

/* ===== MENU (left) ===== */
.menu-container{
  position:absolute; left:0; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; gap:.5rem; z-index:40;
}
.menu-icon{
  width:32px; height:24px; cursor:pointer;
  display:flex; flex-direction:column; justify-content:space-between;
  padding:6px 2px; border:0; background:transparent;
}
.menu-icon span{
  display:block; height:3px; border-radius:2px;
  background:#bdbdbd; transition:background .2s ease;
}
.menu-label{
  font-weight:700; letter-spacing:.08em; font-size:.78rem;
  color:#bdbdbd; opacity:0; pointer-events:none;
  transition:opacity .2s ease, color .2s ease;
}
.menu-container:hover .menu-icon span{ background:#000; }
.menu-container:hover .menu-label{ opacity:1; color:#000; }
.dropdown{
  position:absolute; top:calc(100% + 10px); left:0;
  background:#fff; border:1px solid rgba(0,0,0,.1);
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
  border-radius:8px; list-style:none; padding:.5rem 0; margin:0; min-width:170px;
  visibility:hidden; opacity:0; transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s step-end;
  pointer-events:none;
}
.dropdown a{
  display:block; padding:.6rem 1rem; text-decoration:none;
  color:#bdbdbd; font-weight:700; font-size:.9rem; letter-spacing:.06em;
  transition:color .2s ease, background .2s ease;
}
.dropdown a:hover{ color:#000; background:#f4f4f4; }
.menu-container.open .dropdown{ visibility:visible; opacity:1; transform:translateY(0); pointer-events:auto; }
.menu-container.open .menu-icon span{ background:#000; }
.menu-container.open .menu-label{ opacity:1; color:#000; }


/* ===== SECTIONS / GRID (restored) ===== */
section{ padding:64px 16px }
.container{ max-width:1200px; margin:0 auto }
.grid{ display:grid; gap:24px }
@media (min-width:900px){ .grid-2{ grid-template-columns:1.1fr 1fr } }
h2{ font-size:clamp(1.2rem,2.4vw,1.6rem); margin:0 0 .75rem; letter-spacing:.02em }
p{ margin:0 0 1rem; color:#555 }
.card{ border:1px solid rgba(0,0,0,.08); background:linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,0)); border-radius:14px; padding:20px; }


/* ===== HERO baseline (fix-only) ===== */
.hero{ position:relative; width:100%; max-width:1200px; height:clamp(340px,60vh,600px); margin:0 auto; overflow:hidden; z-index:1; }
.carousel{ height:100%; }
.hero .flickity-viewport{ height:100% !important; overflow:visible; }
.hero .flickity-slider{ height:100%; }
.carousel-cell{ width:94%; margin:0; height:100%; }
.carousel-cell img{ width:100%; height:100%; object-fit:cover; display:block; }

.hero::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(200,200,200,0.00) 0%,rgba(200,200,200,0.04) 65%,rgba(200,200,200,0.12) 85%,rgba(200,200,200,0.24) 100%);}

.hero-copy{position:absolute;z-index:5;left:50%;transform:translateX(-50%);bottom:84px;width:min(70%,860px);text-align:center;}
.tagline{ margin:0; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:#fff; line-height:1.15; transition:opacity .18s ease; display:flex; flex-direction:column; gap:.35rem; }
.tagline .line{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:clamp(1.1rem,3.1vw,2.1rem); }
.sub{ color:rgba(255,255,255,.88); margin-top:.6rem; font-size:clamp(.92rem,1.5vw,1.02rem); }

.hero-controls{position:absolute;left:0;right:0;bottom:24px;display:flex;align-items:center;justify-content:center;gap:18px;z-index:6;user-select:none;}
.nav-arrow{ appearance:none; border:none; background:transparent; width:36px; text-align:center; cursor:pointer; font:700 20px/1 system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif; color:#aaa; transition:transform .2s ease, color .2s ease, text-shadow .2s ease; }
.nav-arrow:hover,.nav-arrow:focus-visible{ transform:scale(1.12); color:#fff; text-shadow:0 0 6px rgba(255,255,255,.7); }
.nav-dots{ display:flex; align-items:center; gap:16px; }
.nav-dot{ width:8px; height:8px; border-radius:50%; background:#aaa; opacity:.95; transition:transform .2s ease, box-shadow .2s ease, background .2s ease; }
.nav-dot:hover,.nav-dot:focus-visible{ transform:scale(1.2); background:#fff; box-shadow:0 0 8px rgba(255,255,255,.85); }
.nav-dash{ width:44px; height:4px; border-radius:2px; background:#aaa; opacity:1; transition:transform .2s ease, box-shadow .2s ease, background .2s ease; }
.nav-dash:hover,.nav-dash:focus-visible{ background:#fff; transform:scale(1.08); box-shadow:0 0 10px rgba(255,255,255,.9); }
/* --- REMOVER o degradé do HERO e encostar a imagem ao fundo --- */

/* 1) Desliga o overlay do hero (o degradé) */
.hero::after{
  content: none !important;   /* some completamente */
  background: none !important;
}

/* 2) Garante que a imagem ocupa 100% da altura do slide */
.carousel .carousel-cell img{
  height: 100% !important;
  width: 100%;
  object-fit: cover;
  display: block;
}

/* 3) Evita qualquer “acolchoamento” vertical do viewport do Flickity */
.flickity-viewport{
  height: 100% !important;
}
/* --- MOVER NAVEGADOR para cima da imagem (abaixo do texto) --- */
.hero-controls {
  bottom: 6vh !important;  /* sobe o navegador para perto do texto */
  position: absolute;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  z-index: 3;
  user-select: none;

}
/* RED HOVER OVERRIDE */
.btn:hover,
.btn:focus {
  background: #d00 !important;
  color: #000 !important; /* black text */
  border-color: #d00 !important;
  box-shadow: 0 0 0 3px rgba(221, 0, 0, 0.35) !important;
}

/* ==== HERO: Single-slide mode (no neighbors) ==== */
.hero .flickity-viewport{ overflow:hidden !important; }  /* hide neighbor images */
.carousel-cell{ width:100% !important; }                 /* each slide fills full width */

/* ==== HERO: Side arrows inside image (white translucent) ==== */
.hero .nav-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.35); color:#000;
  border:0; padding:10px 16px; border-radius:8px;
  cursor:pointer; z-index:7;
}
.hero .nav-arrow.prev{ left:18px; }
.hero .nav-arrow.next{ right:18px; }
.hero .nav-arrow:hover{ background:rgba(255,255,255,.55); }

/* === CTA invertida — full width, encostada ao footer === */
.section-cta.inverse {
  background: #fff;
  color: #000;
  padding: 90px 0;
  margin: 0;                      /* remove margens */
  border: none;
  width: 100vw;                   /* ocupa toda a largura da janela */
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;             /* remove limites do container */
  margin-right: -50vw;
  box-sizing: border-box;
}

/* bloco central igual ao index */
.section-cta.inverse .cta-wrap {
  background: #fff;
  max-width: 960px;
  margin: 0 auto;
  padding: 50px 60px;
  border-radius: 16px;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
  border: 1px solid #e5e5e5;
}

/* botão igual ao index */
.section-cta.inverse .btn.btn-inverse {
  background: #fff;
  color: #000 !important;
  border: 2px solid #dcdcdc;
  font-weight: 800;
  padding: 14px 32px;
  border-radius: 50px;
  transition: all .25s ease;
}

.section-cta.inverse .btn.btn-inverse:hover {
  background: #f7f7f7;
  border-color: #c6c6c6;
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0,0,0,.1);
}
/* Espaço extra abaixo do bloco ABOUT / PERMITS */
.grid.single-cards {
  margin-bottom: 90px;   /* aumenta o fundo preto visível */
}
/* === Ajuste final: elimina margem preta entre CTA e footer === */
.section-cta.inverse {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
}

.section-cta.inverse + footer,
.section-cta.inverse + .footer {
  margin-top: 0 !important;
}
/* CTA encostada ao footer, sem “linha” entre ambos */
.section-cta.inverse{
  padding-bottom: 0 !important;  /* sem acolchoamento no fundo da CTA */
  margin-bottom: -1px !important; /* sobrepõe 1px para eliminar qualquer fenda */
  border-bottom: none !important;
}

/* Espaço extra abaixo do bloco preto (ABOUT / PERMITS) — já tens esta */
.grid.single-cards{ margin-bottom: 90px; }

/* === Corrige transição CTA ↔ Footer apenas na página Service === */
body.service main {
  padding-bottom: 0 !important;
}
/* Quando a CTA invertida é o último elemento do <main>,
   remove o padding inferior do main só nesta página */
main:has(> .section-cta.inverse:last-child){
  padding-bottom: 0 !important;
}

/* Garante que a própria CTA não cria espaço extra */
.section-cta.inverse{
  margin-bottom: 0 !important;
}

/* Se o footer vier logo a seguir ao main, não deixa margem no topo */
main + footer{
  margin-top: 0 !important;
}

body.service .section-cta.inverse {
  background: #fff;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  border: none !important;
}

body.service footer {
  margin-top: 0 !important;
}


/* Responsivo */
@media (max-width: 640px) {
  .section-cta.inverse .cta-wrap {
    padding: 36px 26px;
    border-radius: 12px;
  }
}




/* Consulting cards – subtle hover like other pages */
.consulting .section-mission .process-cards > div{
  transition: color .2s ease, border-color .2s ease, transform .12s ease, box-shadow .2s ease;
}
.consulting .section-mission .process-cards > div:hover{
  border-color:#2a2a2a;
  box-shadow:0 10px 26px rgba(0,0,0,.28);
  transform:translateY(-1px);
}
.consulting .section-mission .process-cards > div:hover h3{
  color:#ffffff;
}
.consulting .section-mission .process-cards > div:hover p{
  color:#bdbdbd;
}



/* consulting-cards-hover */
.consulting .section-mission .process-cards > div{
  transition: color .2s ease, border-color .2s ease, transform .12s ease, box-shadow .2s ease;
}
.consulting .section-mission .process-cards > div:hover{
  border-color:#2a2a2a;
  box-shadow:0 10px 26px rgba(0,0,0,.28);
  transform:translateY(-1px);
}
.consulting .section-mission .process-cards > div:hover h3{
  color:#ffffff;
}
.consulting .section-mission .process-cards > div:hover p{
  color:#bdbdbd;
}
/* ===== Fixes isolados para a página Consulting ===== */

/* Hero: garantir texto branco por cima do slideshow */
.consulting .hero-simple h1,
.consulting .hero-simple p { color:#fff !important; }

/* Cartões: layout, cor e hover (só nesta página) */
.consulting .section-mission{
  background:#111; color:#fff;
  padding:70px 8%;
}
.consulting .section-mission .grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr));
  gap:26px;
}
.consulting .section-mission .process-cards > div{
  background:#161616;
  border:1px solid #222;
  border-radius:16px;
  padding:18px 18px 16px;
  box-shadow:0 6px 20px rgba(0,0,0,.25);
  transition: color .2s ease, border-color .2s ease, transform .12s ease, box-shadow .2s ease;
}
.consulting .section-mission .step-title{ margin:0 0 8px; font-weight:800; }
.consulting .section-mission .process-cards > div p{ color:#bdbdbd; line-height:1.7; }

.consulting .section-mission .process-cards > div:hover{
  border-color:#2a2a2a;
  box-shadow:0 10px 26px rgba(0,0,0,.28);
  transform:translateY(-1px);
}
.consulting .section-mission .process-cards > div:hover h3{ color:#fff; }

/* CTA final: título/texto centrados e botão no formato “pill” (sem esticar) */
.consulting .section-cta.inverse .cta-wrap{ text-align:center; }
.consulting .section-cta.inverse h2{ margin:0 0 12px; }
.consulting .section-cta.inverse p{
  margin:0 auto 22px; max-width:760px; line-height:1.7; color:#333;
}
.consulting .section-cta.inverse .btn,
.consulting .section-cta.inverse .btn.btn-inverse{
  display:inline-block;        /* impede ocupar 100% */
  margin:26px auto 0;
}
/* ===== Refinamento visual da página CONSULTING ===== */

/* Hero */
.consulting .hero-simple h1 {
  font-size: clamp(2.2rem, 4vw, 3rem);
  font-weight: 800;
  text-align: center;
  margin-bottom: 0.8rem;
}
.consulting .hero-simple p {
  text-align: center;
  max-width: 860px;
  margin: 0 auto;
  line-height: 1.6;
  white-space: pre-line; /* permite a quebra em duas linhas no HTML */
}

/* Cartões */
.consulting .section-mission .grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 28px;
}
.consulting .section-mission .process-cards > div {
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2.5rem 1.6rem;
}
.consulting .section-mission .step-title {
  margin-bottom: 1rem;
  font-size: 1.25rem;
  font-weight: 700;
}
.consulting .section-mission .process-cards > div p {
  color: #bdbdbd;
  line-height: 1.7;
  margin: 0 auto;
  max-width: 460px;
}
/* === Hover elegante com transição de cor no texto (CONSULTING) === */

.consulting .section-mission .process-cards > div {
  transition: all 0.28s ease !important;
  color: #b0b0b0 !important; /* texto mais escuro por defeito */
}

.consulting .section-mission .process-cards > div .step-title {
  color: #e0e0e0 !important; /* título um pouco mais claro que o texto */
  transition: color 0.28s ease !important;
}

.consulting .section-mission .process-cards > div:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 16px 45px rgba(0,0,0,0.45) !important;
  border-color: #3a3a3a !important;
}

.consulting .section-mission .process-cards > div:hover .step-title,
.consulting .section-mission .process-cards > div:hover p {
  color: #ffffff !important; /* texto e título brancos no hover */
}


