/* LuaNet Angola v3 — style.css | Layout Claro Galcorr */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;800;900&family=Open+Sans:wght@400;500;600&display=swap');

:root {
  --azul:       #0d6ebc;
  --azul2:      #1a8fd1;
  --azul-dark:  #094e8a;
  --azul-bg:    #e8f4fd;
  --laranja:    #f5a623;
  --laranja2:   #e8921a;
  --branco:     #ffffff;
  --fundo:      #f5f7fa;
  --borda:      #dde4ed;
  --cinza-m:    #8a96a8;
  --cinza-d:    #3d4a5a;
  --escuro:     #1a2332;
  --verde:      #16a34a;
  --vermelho:   #dc2626;
  --sombra:     0 2px 16px rgba(13,110,188,0.10);
  --sombra2:    0 6px 28px rgba(13,110,188,0.18);
  --raio:       6px;
  --fd:         'Montserrat', sans-serif;
  --fb:         'Open Sans', sans-serif;
}

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:15px; }
body { font-family:var(--fb); color:var(--cinza-d); background:#fff; overflow-x:hidden; }
a    { text-decoration:none; color:inherit; }
ul   { list-style:none; }
img  { display:block; max-width:100%; }
button { cursor:pointer; font-family:var(--fb); }
input, select, textarea { font-family:var(--fb); }

/* ── TOPBAR ── */
/* ── TOPBAR RESPONSIVA (CORRIGIDA) ── */
.topbar {
  background: var(--azul-dark); 
  padding: 7px 40px;
  display: flex; 
  align-items: center; 
  justify-content: space-between;
  font-size: 12px;
  flex-wrap: wrap; /* Permite que a barra quebre em duas linhas se necessário */
  gap: 10px;
}
.tb-left { 
  display: flex; 
  align-items: center;
  flex-wrap: wrap; /* ESSENCIAL: Permite que os contactos quebrem para a linha seguinte no telemóvel */
  gap: 15px; 
}
.tb-left a { 
  color: rgba(255,255,255,.8); 
  display: flex; 
  align-items: center; 
  gap: 5px; 
  transition: color .2s; 
  white-space: nowrap; /* Impede que o número de telefone ou o ecrã partam a meio da palavra */
}
.tb-left a:hover { color: var(--laranja); }
.tb-left span { color: rgba(255,255,255,.4); }
.tb-social { display: flex; gap: 6px; }
.tb-social a { width: 26px; height: 26px; background: rgba(255,255,255,.12); border-radius: 3px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 12px; font-weight: 700; transition: background .2s; }
.tb-social a:hover { background: var(--laranja); }
.tb-left a:hover { color:var(--laranja); }
.tb-left span { color:rgba(255,255,255,.6); }
.tb-social { display:flex; gap:6px; }
.tb-social a { width:26px; height:26px; background:rgba(255,255,255,.12); border-radius:3px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:12px; font-weight:700; transition:background .2s; }
.tb-social a:hover { background:var(--laranja); }

/* ── NAVBAR ── */
#navbar {
  background:#fff; height:72px;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 40px;
  box-shadow:0 2px 12px rgba(0,0,0,.08);
  position:sticky; top:0; z-index:999; transition:box-shadow .3s;
}
#navbar.scrolled { box-shadow:0 4px 20px rgba(0,0,0,.13); }
.nav-logo img { height:60px; width:auto; transition:transform .2s; }
.nav-logo img:hover { transform:scale(1.04); }
.nav-logo-txt { font-family:var(--fd); font-size:20px; font-weight:900; color:var(--azul); display:none; }
.nav-logo-txt span { color:var(--laranja2); }
.nav-links { display:flex; align-items:center; }
.nav-links a { padding:0 16px; height:72px; display:flex; align-items:center; font-family:var(--fd); font-size:13px; font-weight:700; color:var(--cinza-d); text-transform:uppercase; letter-spacing:.3px; border-bottom:3px solid transparent; transition:color .2s, border-color .2s; }
.nav-links a:hover  { color:var(--azul); border-bottom-color:var(--azul); }
.nav-links a.active { color:var(--azul); border-bottom-color:var(--laranja); }
.btn-nav { padding:9px 20px; border-radius:4px; font-family:var(--fd); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; transition:all .2s; }
.btn-nav.outline { border:2px solid var(--azul); color:var(--azul); background:transparent; }
.btn-nav.outline:hover { background:var(--azul); color:#fff; }
.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; padding:4px; }
.hamburger span { width:24px; height:2px; background:var(--escuro); border-radius:2px; display:block; 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); }
.mob-nav { display:none; position:fixed; top:72px; left:0; right:0; background:#fff; z-index:998; border-top:3px solid var(--laranja); box-shadow:0 8px 24px rgba(0,0,0,.12); padding:16px 24px 24px; flex-direction:column; gap:0; }
.mob-nav.open { display:flex; }
.mob-nav a { padding:12px 0; font-family:var(--fd); font-size:13px; font-weight:700; color:var(--cinza-d); border-bottom:1px solid var(--borda); text-transform:uppercase; transition:color .2s; }
.mob-nav a:hover { color:var(--azul); }
.mob-nav .btn-mob { margin-top:14px; background:var(--laranja); color:#fff; border:none; border-radius:4px; padding:12px; font-family:var(--fd); font-size:13px; font-weight:700; text-align:center; text-transform:uppercase; }

/* ══════════════════════════════════════
   HERO CARROSSEL — Dinâmico
   ══════════════════════════════════════ */
.hero-carousel {
  position:relative;
  width:100%;
  min-height:480px;
  overflow:hidden;
  background:var(--azul-dark);
}

/* Cada slide ocupa 100% e é posicionado absolutamente */
.hc-slide {
  position:absolute; inset:0;
  display:flex; align-items:center;
  opacity:0;
  z-index:1;
  transition:opacity .9s ease, transform .9s ease;
  transform:scale(1.04);
  pointer-events:none;
}
.hc-slide.active {
  opacity:1; z-index:3;
  transform:scale(1);
  pointer-events:auto;
}
.hc-slide.leaving {
  opacity:0; z-index:2;
  transform:scale(.97);
}

/* Imagem de fundo */
.hc-bg {
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
/* Overlay gradiente sobre a imagem */
.hc-overlay {
  position:absolute; inset:0;
  background:linear-gradient(
    105deg,
    rgba(9,78,138,.82) 0%,
    rgba(13,110,188,.60) 50%,
    rgba(0,0,0,.30) 100%
  );
}
/* Padrão geométrico decorativo (lado direito) */
.hc-pattern {
  position:absolute; right:0; top:0; bottom:0;
  width:42%;
  overflow:hidden;
  pointer-events:none;
}
.hc-pattern-inner {
  position:absolute; inset:0;
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:10px;
  padding:30px 20px;
  align-content:center;
  opacity:.55;
}
.hc-tri {
  width:0; height:0;
  border-left:16px solid transparent;
  border-right:16px solid transparent;
  border-bottom:28px solid rgba(255,255,255,.18);
  transition:border-bottom-color .3s;
}
.hc-tri.o { border-bottom-color:rgba(245,166,35,.55); }
.hc-tri.w { border-bottom-color:rgba(255,255,255,.3); }
.hc-tri.b { border-bottom-color:rgba(26,143,209,.45); }

/* Conteúdo do slide */
.hc-content {
  position:relative; z-index:4;
  padding:72px 40px 72px 56px;
  max-width:620px;
  /* Animação do conteúdo ao entrar */
  opacity:0;
  transform:translateX(-30px);
  transition:opacity .7s .25s ease, transform .7s .25s ease;
}
.hc-slide.active .hc-content {
  opacity:1;
  transform:translateX(0);
}

.hc-tag {
  display:inline-flex; align-items:center; gap:7px;
  background:var(--laranja); color:#fff;
  font-family:var(--fd); font-size:11px; font-weight:800;
  letter-spacing:2px; text-transform:uppercase;
  padding:5px 15px; border-radius:3px;
  margin-bottom:20px;
}
.hc-tag::before {
  content:''; width:7px; height:7px;
  background:rgba(255,255,255,.7); border-radius:50%;
  animation:blink 1.8s infinite;
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.3} }

.hc-title {
  font-family:var(--fd);
  font-size:clamp(26px,4.5vw,48px);
  font-weight:900; color:#fff;
  text-transform:uppercase;
  line-height:1.08; letter-spacing:-.5px;
  margin-bottom:16px;
  text-shadow:0 2px 12px rgba(0,0,0,.3);
}
.hc-title em { color:var(--laranja); font-style:normal; }

.hc-sub {
  font-size:15px; color:rgba(255,255,255,.85);
  line-height:1.75; margin-bottom:30px;
  max-width:480px;
  text-shadow:0 1px 6px rgba(0,0,0,.25);
}

.hc-btns { display:flex; gap:12px; flex-wrap:wrap; }
.hc-btn-s {
  padding:13px 30px; background:var(--laranja); color:#fff;
  border-radius:4px; font-family:var(--fd); font-size:12px;
  font-weight:800; text-transform:uppercase; letter-spacing:.5px;
  transition:all .2s; display:inline-flex; align-items:center; gap:7px;
}
.hc-btn-s:hover { background:var(--laranja2); transform:translateY(-2px); box-shadow:0 4px 16px rgba(245,166,35,.4); }
.hc-btn-o {
  padding:13px 30px; border:2px solid rgba(255,255,255,.55); color:#fff;
  border-radius:4px; font-family:var(--fd); font-size:12px;
  font-weight:700; text-transform:uppercase; letter-spacing:.5px;
  transition:all .2s;
}
.hc-btn-o:hover { border-color:#fff; background:rgba(255,255,255,.12); }

/* ── CONTROLES DE NAVEGAÇÃO ── */
.hc-prev, .hc-next {
  position:absolute; top:50%; transform:translateY(-50%);
  width:46px; height:46px; border-radius:50%;
  background:rgba(255,255,255,.15);
  border:2px solid rgba(255,255,255,.35);
  color:#fff; font-size:20px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; z-index:10;
  transition:background .2s, transform .2s;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.hc-prev { left:18px; }
.hc-next { right:18px; }
.hc-prev:hover { background:rgba(255,255,255,.28); transform:translateY(-50%) scale(1.08); }
.hc-next:hover { background:rgba(255,255,255,.28); transform:translateY(-50%) scale(1.08); }

/* ── BARRA INFERIOR: dots + progresso ── */
.hc-bar {
  position:absolute; bottom:0; left:0; right:0; z-index:10;
  background:rgba(9,78,138,.55);
  backdrop-filter:blur(4px);
  display:flex; align-items:center;
  padding:0 56px; height:52px; gap:0;
}

/* Thumbnails / tabs dos slides */
.hc-tabs { display:flex; gap:0; flex:1; height:100%; }
.hc-tab {
  flex:1; display:flex; align-items:center; gap:10px;
  padding:0 16px; cursor:pointer;
  border-top:3px solid transparent;
  transition:background .2s, border-color .2s;
  position:relative; overflow:hidden;
}
.hc-tab::before {
  content:'';
  position:absolute; bottom:0; left:0; right:0; height:0;
  background:rgba(255,255,255,.07);
  transition:height .2s;
}
.hc-tab:hover::before { height:100%; }
.hc-tab.active { border-top-color:var(--laranja); background:rgba(255,255,255,.08); }
.hc-tab-num {
  font-family:var(--fd); font-size:13px; font-weight:800;
  color:rgba(255,255,255,.5); min-width:20px;
}
.hc-tab.active .hc-tab-num { color:var(--laranja); }
.hc-tab-title {
  font-family:var(--fd); font-size:11px; font-weight:600;
  color:rgba(255,255,255,.6); text-transform:uppercase;
  letter-spacing:.4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.hc-tab.active .hc-tab-title { color:#fff; }

/* Barra de progresso */
.hc-progress {
  position:absolute; bottom:0; left:0; height:3px;
  background:var(--laranja);
  animation:progress var(--dur,4s) linear;
  transform-origin:left;
}
@keyframes progress { from{width:0} to{width:100%} }

/* Contador de slides */
.hc-counter {
  font-family:var(--fd); font-size:12px; font-weight:700;
  color:rgba(255,255,255,.6); white-space:nowrap; padding-left:16px;
  border-left:1px solid rgba(255,255,255,.2);
}
.hc-counter span { color:#fff; }

/* ── RESPONSIVE ── */
@media(max-width:900px) {
  .hc-content { padding:48px 24px 80px; }
  .hc-pattern { display:none; }
  .hc-bar { padding:0 16px; }
  .hc-tab-title { display:none; }
  .hc-tab { padding:0 12px; flex:none; }
  .hero-carousel { min-height:400px; }
}
@media(max-width:480px) {
  .hc-title { font-size:24px; }
  .hc-sub   { font-size:13px; }
  .hc-btns  { flex-direction:column; gap:8px; }
}

/* ── STATS BAR ── */
.statsbar { background:var(--azul-dark); border-top:3px solid var(--laranja); display:flex; justify-content:center; flex-wrap:wrap; }
.sb-item { padding:18px 48px; text-align:center; color:#fff; border-right:1px solid rgba(255,255,255,.1); transition:background .2s; }
.sb-item:last-child { border-right:none; }
.sb-item:hover { background:rgba(255,255,255,.05); }
.sb-num { font-family:var(--fd); font-size:28px; font-weight:900; color:var(--laranja); line-height:1; }
.sb-lbl { font-size:11px; color:rgba(255,255,255,.55); margin-top:3px; text-transform:uppercase; letter-spacing:1px; }

/* ── STRIP 3 COLS ── */
.strip { background:#fff; border-bottom:2px solid var(--borda); }
.strip-grid { display:grid; grid-template-columns:repeat(3,1fr); max-width:1100px; margin:0 auto; }
.strip-item { padding:28px 24px; border-right:1px solid var(--borda); display:flex; gap:14px; align-items:flex-start; transition:background .2s; cursor:pointer; }
.strip-item:last-child { border-right:none; }
.strip-item:hover { background:var(--fundo); }
.strip-ico { width:48px; height:48px; flex-shrink:0; border-radius:var(--raio); background:var(--azul-bg); display:flex; align-items:center; justify-content:center; font-size:22px; overflow:hidden; transition:background .2s; }
.strip-ico img { width:100%; height:100%; object-fit:cover; border-radius:var(--raio); }
.strip-item:hover .strip-ico { background:var(--azul); width:64px; height:64px; }
.strip-title { font-family:var(--fd); font-size:12px; font-weight:800; color:var(--azul); text-transform:uppercase; letter-spacing:.5px; margin-bottom:5px; }
.strip-desc { font-size:13px; color:var(--cinza-m); line-height:1.55; }
.strip-more { font-family:var(--fd); font-size:11px; font-weight:700; color:var(--laranja); text-transform:uppercase; margin-top:7px; }

/* ── SECÇÃO ── */
.pad { padding:64px 40px; }
.bg-f { background:var(--fundo); }
.bg-w { background:#fff; }
.bg-azul { background:var(--azul-dark); }
.sec-sup { font-family:var(--fd); font-size:11px; font-weight:700; color:var(--laranja2); letter-spacing:3px; text-transform:uppercase; display:block; margin-bottom:7px; }
.sec-title { font-family:var(--fd); font-size:clamp(22px,3.5vw,34px); font-weight:900; color:var(--escuro); line-height:1.2; }
.sec-title em { color:var(--azul); font-style:normal; }
.sec-title.wh { color:#fff; }
.sec-title.wh em { color:var(--laranja); }
.sec-sub { font-size:14px; color:var(--cinza-m); line-height:1.75; max-width:560px; }

/* ── SERVIÇOS CARDS ── */
.srv-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:18px; max-width:1100px; margin:0 auto; }
.srv-card { background:#fff; border:1px solid var(--borda); border-radius:var(--raio); box-shadow:var(--sombra); overflow:hidden; transition:transform .3s, box-shadow .3s; }
.srv-card:hover { transform:translateY(-6px); box-shadow:var(--sombra2); }
.srv-card-top { height:5px; background:linear-gradient(90deg,var(--azul),var(--laranja)); }
.srv-card-img { height:140px; background:var(--azul-bg); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.srv-card-img img { width:100%; height:100%; object-fit:cover; }
.srv-card-img .emoji { font-size:52px; }
.srv-card-body { padding:20px 18px; }
.srv-card-title { font-family:var(--fd); font-size:15px; font-weight:800; color:var(--escuro); margin-bottom:7px; }
.srv-card-desc  { font-size:13px; color:var(--cinza-m); line-height:1.65; margin-bottom:12px; }
.srv-list li { font-size:13px; color:var(--cinza-d); padding:4px 0; border-bottom:1px solid var(--borda); display:flex; align-items:center; gap:7px; }
.srv-list li:last-child { border-bottom:none; }
.srv-list li::before { content:'▶'; font-size:7px; color:var(--azul); flex-shrink:0; }

/* ── DIFERENCIAIS ── */
.why-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:16px; max-width:1100px; margin:0 auto; }
.why-card { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); border-radius:var(--raio); padding:24px 18px; text-align:center; transition:background .3s, transform .3s; }
.why-card:hover { background:rgba(255,255,255,.14); transform:translateY(-4px); }
.why-ico { font-size:32px; margin-bottom:12px; }
.why-title { font-family:var(--fd); font-size:14px; font-weight:700; color:#fff; margin-bottom:7px; }
.why-desc  { font-size:13px; color:rgba(255,255,255,.62); line-height:1.55; }

/* ── DESTAQUES ── */
.news-grid { display:grid; grid-template-columns:repeat(3,1fr) 256px; gap:14px; max-width:1100px; margin:0 auto; }
.nc { background:#fff; border:1px solid var(--borda); border-radius:var(--raio); overflow:hidden; box-shadow:var(--sombra); transition:transform .3s, box-shadow .3s; }
.nc:hover { transform:translateY(-3px); box-shadow:var(--sombra2); }
.nc-img { height:140px; background:var(--azul-bg); display:flex; align-items:center; justify-content:center; font-size:40px; overflow:hidden; }
.nc-img img { width:100%; height:100%; object-fit:cover; }
.nc-body { padding:14px; }
.nc-tag { font-family:var(--fd); font-size:10px; font-weight:700; color:var(--azul); text-transform:uppercase; letter-spacing:1px; margin-bottom:5px; }
.nc-title { font-family:var(--fd); font-size:13px; font-weight:800; color:var(--escuro); line-height:1.35; margin-bottom:5px; }
.nc-text  { font-size:12px; color:var(--cinza-m); line-height:1.55; }
.nc-featured { background:linear-gradient(135deg,var(--azul-dark),var(--azul)); border-radius:var(--raio); padding:24px 20px; display:flex; flex-direction:column; justify-content:space-between; color:#fff; }
.ncf-lbl  { font-family:var(--fd); font-size:10px; font-weight:700; color:var(--laranja); text-transform:uppercase; letter-spacing:2px; margin-bottom:9px; }
.ncf-title{ font-family:var(--fd); font-size:20px; font-weight:900; text-transform:uppercase; line-height:1.2; margin-bottom:12px; }
.btn-ncf  { display:inline-flex; align-items:center; gap:6px; background:var(--laranja); color:#fff; padding:9px 16px; border-radius:3px; font-family:var(--fd); font-size:12px; font-weight:700; text-transform:uppercase; transition:background .2s; width:fit-content; }
.btn-ncf:hover { background:var(--laranja2); }

/* ── EQUIPA ── */
.eq-card { background:#fff; border:1px solid var(--borda); border-radius:var(--raio); overflow:hidden; box-shadow:var(--sombra); transition:transform .3s, box-shadow .3s; }
.eq-card:hover { transform:translateY(-5px); box-shadow:var(--sombra2); }
.eq-foto { height:160px; background:var(--azul-bg); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.eq-foto img { width:100%; height:100%; object-fit:cover; object-position:top; }
.eq-foto .emoji { font-size:64px; }
.eq-body { padding:16px; text-align:center; }
.eq-nome  { font-family:var(--fd); font-size:15px; font-weight:800; color:var(--escuro); margin-bottom:4px; }
.eq-cargo { font-size:11px; color:var(--azul); font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin-bottom:8px; }
.eq-bio   { font-size:13px; color:var(--cinza-m); line-height:1.55; }

/* ── CONTACTO ── */
.contact-split { display:grid; grid-template-columns:1fr 1.3fr; gap:52px; max-width:1100px; margin:0 auto; }
.ci { display:flex; gap:12px; align-items:flex-start; padding:12px 16px; background:var(--fundo); border:1px solid var(--borda); border-radius:4px; border-left:4px solid var(--azul); margin-bottom:10px; transition:border-left-color .2s; }
.ci:hover { border-left-color:var(--laranja); }
.ci-ico { font-size:18px; flex-shrink:0; margin-top:2px; }
.ci-lbl { font-size:11px; color:var(--cinza-m); font-weight:600; text-transform:uppercase; letter-spacing:.4px; }
.ci-val { font-size:13px; font-weight:700; color:var(--escuro); margin-top:2px; }
.form-box { background:var(--fundo); border:1px solid var(--borda); border-radius:var(--raio); padding:32px; }
.form-box h3 { font-family:var(--fd); font-size:18px; font-weight:800; color:var(--escuro); margin-bottom:20px; padding-bottom:12px; border-bottom:3px solid var(--laranja); }
.f-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
.f-g { display:flex; flex-direction:column; gap:5px; margin-bottom:12px; }
.f-g label { font-size:11px; font-weight:700; color:var(--cinza-d); text-transform:uppercase; letter-spacing:.3px; }
.f-c { padding:10px 13px; border:1.5px solid var(--borda); border-radius:4px; font-family:var(--fb); font-size:13px; color:var(--escuro); background:#fff; outline:none; transition:border-color .2s; width:100%; }
.f-c:focus { border-color:var(--azul); }
.f-c::placeholder { color:rgba(138,150,168,.5); }
textarea.f-c { resize:vertical; min-height:90px; }
select.f-c option { background:#fff; }
.btn-submit { width:100%; padding:12px; background:var(--azul); color:#fff; border:none; border-radius:4px; font-family:var(--fd); font-size:13px; font-weight:800; text-transform:uppercase; cursor:pointer; transition:background .2s, transform .2s; }
.btn-submit:hover { background:var(--azul2); transform:translateY(-1px); }
.btn-submit.ok { background:var(--verde); }
.alert-ok { background:#f0fdf4; border:1.5px solid #22c55e; color:#15803d; border-radius:4px; padding:12px 14px; font-size:13px; font-weight:600; margin-bottom:14px; display:none; }

/* ── PAGE HEADER ── */
.pg-hdr { background:linear-gradient(135deg,var(--azul-dark),var(--azul)); min-height:220px; display:flex; align-items:flex-end; padding:40px; position:relative; overflow:hidden; }
.pg-hdr::before { content:''; position:absolute; right:-60px; top:-60px; width:320px; height:320px; border-radius:50%; background:radial-gradient(circle,rgba(245,166,35,.15) 0%,transparent 70%); }
.pg-hdr-c { position:relative; z-index:1; }
.pg-hdr h1 { font-family:var(--fd); font-size:clamp(26px,5vw,44px); font-weight:900; color:#fff; margin-bottom:6px; }
.pg-hdr p  { font-size:14px; color:rgba(255,255,255,.75); }

/* ── FAQ ── */
.faq-item { background:#fff; border:1.5px solid var(--borda); border-radius:4px; overflow:hidden; margin-bottom:8px; transition:border-color .2s; }
.faq-item.open { border-color:var(--azul); }
.faq-q { display:flex; justify-content:space-between; align-items:center; padding:14px 18px; cursor:pointer; font-family:var(--fd); font-size:13px; font-weight:700; color:var(--escuro); user-select:none; transition:background .2s; }
.faq-q:hover { background:var(--fundo); }
.faq-arr { color:var(--cinza-m); font-size:11px; transition:transform .3s; }
.faq-a { max-height:0; overflow:hidden; transition:max-height .35s ease; font-size:13px; color:var(--cinza-m); line-height:1.7; padding:0 18px; }
.faq-item.open .faq-a { padding-bottom:14px; }

/* ── TIMELINE ── */
.tl { position:relative; }
.tl::before { content:''; position:absolute; left:18px; top:8px; bottom:8px; width:2px; background:var(--borda); }
.tl-item { display:grid; grid-template-columns:38px 64px 1fr; gap:0 12px; padding-bottom:22px; }
.tl-dot { width:12px; height:12px; border-radius:50%; background:#fff; border:2.5px solid var(--azul); margin-top:4px; justify-self:center; z-index:1; }
.tl-dot.a { background:var(--laranja); border-color:var(--laranja2); }
.tl-yr { font-family:var(--fd); font-size:12px; font-weight:700; color:var(--azul); }
.tl-c h4 { font-size:13px; font-weight:700; margin-bottom:2px; }
.tl-c p  { font-size:12px; color:var(--cinza-m); line-height:1.55; }

/* ── PROCESSO ── */
.proc-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; max-width:1100px; margin:0 auto; }
.proc-step { text-align:center; padding:24px 18px; position:relative; }
.proc-step:not(:last-child)::after { content:'→'; position:absolute; right:-12px; top:38px; font-size:22px; color:var(--azul); }
.proc-num { width:56px; height:56px; border-radius:50%; background:var(--azul); color:#fff; font-family:var(--fd); font-size:20px; font-weight:900; display:flex; align-items:center; justify-content:center; margin:0 auto 12px; }
.proc-title { font-family:var(--fd); font-size:14px; font-weight:700; color:var(--escuro); margin-bottom:5px; }
.proc-desc  { font-size:12px; color:var(--cinza-m); line-height:1.55; }

/* ── MISSÃO/VISÃO ── */
.mv-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:1100px; margin:0 auto; }
.mv-card { background:#fff; border:1px solid var(--borda); border-radius:var(--raio); padding:28px 22px; box-shadow:var(--sombra); transition:transform .3s, box-shadow .3s; }
.mv-card:hover { transform:translateY(-5px); box-shadow:var(--sombra2); }
.mv-card.bl { border-top:4px solid var(--azul); } .mv-card.go { border-top:4px solid var(--laranja); } .mv-card.re { border-top:4px solid #e53935; }
.mv-ico { font-size:32px; margin-bottom:12px; }
.mv-title { font-family:var(--fd); font-size:17px; font-weight:800; color:var(--escuro); margin-bottom:8px; }
.mv-desc  { font-size:14px; color:var(--cinza-m); line-height:1.7; }

/* ── SOBRE GRID ── */
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; max-width:1100px; margin:0 auto; }
.about-img { border-radius:8px; overflow:hidden; background:linear-gradient(135deg,var(--azul-dark),var(--azul)); height:300px; display:flex; align-items:center; justify-content:center; font-size:80px; position:relative; }
.about-img img { width:100%; height:100%; object-fit:cover; }
.about-badge { position:absolute; bottom:-16px; right:-16px; background:var(--laranja); color:#fff; border-radius:6px; padding:14px 18px; text-align:center; box-shadow:0 4px 16px rgba(245,166,35,.4); }
.ab-num { font-family:var(--fd); font-size:26px; font-weight:900; line-height:1; }
.ab-lbl { font-size:11px; text-transform:uppercase; letter-spacing:1px; margin-top:2px; }
.vals { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:20px; }
.val { background:var(--fundo); border:1px solid var(--borda); border-radius:4px; padding:12px 14px; border-left:4px solid var(--azul); }
.val-t { font-family:var(--fd); font-size:12px; font-weight:700; color:var(--escuro); margin-bottom:3px; }
.val-d { font-size:12px; color:var(--cinza-m); }

/* ── CTA ── */
.cta-sec { padding:56px 40px; background:var(--azul-bg); border-top:3px solid var(--borda); text-align:center; }
.cta-sec h2 { font-family:var(--fd); font-size:clamp(22px,3.5vw,34px); font-weight:900; color:var(--escuro); margin-bottom:10px; }
.cta-sec p  { font-size:14px; color:var(--cinza-m); margin-bottom:24px; }
.btn-cta { display:inline-flex; align-items:center; gap:8px; padding:13px 32px; background:var(--azul); color:#fff; border-radius:4px; font-family:var(--fd); font-size:13px; font-weight:700; text-transform:uppercase; transition:all .2s; }
.btn-cta:hover { background:var(--azul2); transform:translateY(-2px); }

/* ── URGÊNCIA ── */
.urgency { background:#fffbeb; border:1px solid #fcd34d; border-radius:4px; padding:14px 16px; display:flex; gap:12px; align-items:flex-start; margin-top:16px; }
.urg-ico { font-size:22px; flex-shrink:0; }
.urg-title { font-family:var(--fd); font-size:12px; font-weight:700; color:#92400e; margin-bottom:3px; }
.urg-desc  { font-size:12px; color:#78350f; line-height:1.55; }

/* ── FOOTER ── */
footer { background:var(--escuro); color:rgba(255,255,255,.6); }
.ft-top { padding:52px 40px 32px; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; border-bottom:1px solid rgba(255,255,255,.08); }
.ft-logo img { height:52px; width:auto; margin-bottom:12px; filter:drop-shadow(0 2px 6px rgba(0,0,0,.4)); }
.ft-logo-txt { font-family:var(--fd); font-size:18px; font-weight:900; color:#fff; margin-bottom:10px; }
.ft-logo-txt span { color:var(--laranja); }
.ft-desc { font-size:13px; line-height:1.7; color:rgba(255,255,255,.5); }
.ft-col h4 { font-family:var(--fd); font-size:12px; font-weight:800; color:#fff; text-transform:uppercase; letter-spacing:1.5px; margin-bottom:14px; padding-bottom:7px; border-bottom:2px solid var(--laranja); display:inline-block; }
.ft-col ul { display:flex; flex-direction:column; gap:9px; }
.ft-col ul li a { font-size:13px; color:rgba(255,255,255,.5); transition:color .2s; display:flex; align-items:center; gap:5px; }
.ft-col ul li a::before { content:'▸'; color:var(--laranja2); font-size:10px; }
.ft-col ul li a:hover { color:var(--laranja); }
.ft-bottom { padding:15px 40px; display:flex; justify-content:space-between; align-items:center; font-size:12px; color:rgba(255,255,255,.35); flex-wrap:wrap; gap:8px; }
.ft-bottom strong { color:var(--laranja); }

/* ── FADE UP ── */
.fu { opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease; }
.fu.v { opacity:1; transform:translateY(0); }

/* ── RESPONSIVE ── */
@media(max-width:1024px) {
  .topbar,.ft-top,.ft-bottom,.pg-hdr,.cta-sec { padding-left:24px; padding-right:24px; }
  .news-grid { grid-template-columns:1fr 1fr; }
  .nc-featured { grid-column:1/-1; }
  .ft-top { grid-template-columns:1fr 1fr; }
}
@media(max-width:900px) {
  #navbar, .pad, .pg-hdr { padding-left:24px; padding-right:24px; }
  .nav-links, .nav-right { display:none; }
  .hamburger { display:flex; }
  .about-grid, .contact-split { grid-template-columns:1fr; gap:32px; }
  .f-row { grid-template-columns:1fr; }
  .strip-grid { grid-template-columns:1fr; }
  .proc-grid { grid-template-columns:1fr 1fr; }
  .proc-step::after { display:none; }
  .vals { grid-template-columns:1fr; }
  .mv-grid { grid-template-columns:1fr; }
  .statsbar .sb-item { flex:1 1 50%; }
  .carousel .slide-content { padding:48px 24px; }
}
@media(max-width:600px) {
  .news-grid { grid-template-columns:1fr; }
  .proc-grid { grid-template-columns:1fr; }
  .ft-top { grid-template-columns:1fr; padding:32px 24px 24px; }
}

/* ── PARCEIROS ── */
.parc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px;max-width:1100px;margin:0 auto;}
.parc-card{background:var(--wh,#fff);border:1px solid var(--borda);border-radius:var(--raio);padding:28px 20px;text-align:center;transition:transform .3s,box-shadow .3s;box-shadow:var(--sombra);}
.parc-card:hover{transform:translateY(-5px);box-shadow:var(--sombra2);border-color:var(--azul);}
.parc-logo{height:60px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
.parc-logo img{max-width:120px;max-height:50px;object-fit:contain;}
.parc-name{font-family:var(--fd);font-size:15px;font-weight:800;color:var(--escuro);margin-bottom:4px;}
.parc-link{font-size:11px;font-weight:700;color:var(--azul);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;}

/* ── PARTNERS STRIP ── */
.partners-strip.ps-hidden { display: none !important; }
.partners-strip {
  background: #f0f4fa;
  border-bottom: 2px solid var(--borda);
  padding: 10px 40px;
  display: flex;
  align-items: center;
  gap: 18px;
  overflow: hidden;
}
.ps-label {
  font-family: var(--fd);
  font-size: 10px;
  font-weight: 800;
  color: var(--azul-dark);
  text-transform: uppercase;
  letter-spacing: 2px;
  white-space: nowrap;
  flex-shrink: 0;
  padding-right: 12px;
  border-right: 2px solid var(--borda);
}
.ps-scroll {
  overflow: hidden;
  flex: 1;
  position: relative;
}
.ps-track {
  display: flex;
  gap: 40px;
  align-items: center;
  width: max-content;
  animation: ps-scroll 25s linear infinite;
}
.ps-track:hover { animation-play-state: paused; }
.ps-item {
  display: flex;
  align-items: center;
  gap: 8px;
  opacity: .6;
  transition: opacity .2s;
  flex-shrink: 0;
}
.ps-item:hover { opacity: 1; }
.ps-item img { height: 26px; max-width: 80px; object-fit: contain; }
.ps-item span {
  font-family: var(--fd);
  font-size: 13px;
  font-weight: 700;
  color: var(--azul-dark);
  white-space: nowrap;
  letter-spacing: .3px;
}
@keyframes ps-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-33.333%); }
}
@media (max-width: 600px) {
  .partners-strip { padding: 8px 16px; }

}

/* Strip parceiros com imagem full */
#strip-parceiros .strip-item { padding: 0; overflow: hidden; }
#strip-parceiros .strip-ico {
  width: 100%;
  height: 120px;
  border-radius: var(--raio) var(--raio) 0 0;
  overflow: hidden;
  background: #f0f4fa;
  display: flex;
  align-items: center;
  justify-content: center;
}
#strip-parceiros .strip-ico img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 16px;
}
#strip-parceiros .strip-info {
  padding: 12px 16px;
}
#strip-parceiros .strip-title { margin-bottom: 4px; }

.parceiro-hover {
  position: relative;
  display: inline-block;
  margin-top: 8px;
  cursor: pointer;
}

.ver-info {
  font-family: var(--fd);
  font-size: 11px;
  font-weight: 700;
  color: var(--azul);
  text-transform: uppercase;
  letter-spacing: .5px;
}

/* Tooltip escondido */
.descricao {
  position: absolute;
  bottom: -45px;
  left: 50%;
  transform: translateX(-50%);
  background: #000;
  color: #fff;
  padding: 6px 10px;
  font-size: 12px;
  border-radius: 6px;
  opacity: 0;
  transition: 0.3s;
  white-space: nowrap;
  pointer-events: none;
}

/* Mostrar ao passar o mouse */
.parceiro-hover:hover .descricao {
  opacity: 1;
}


/* ═══════════════════════════════════════════════════════════
   CORRECÇÕES DE SEGURANÇA E RESPONSIVIDADE — LuaNet Angola
   ═══════════════════════════════════════════════════════════ */

/* ── Font-size base corrigido para 16px (WCAG 2.1) ───────── */
html { font-size: 16px; }

/* ── Topbar — padding corrigido para mobile ──────────────── */
@media (max-width: 480px) {
  .topbar       { padding: 6px 16px; }
  .cta-sec      { padding: 40px 16px; }
  .pg-hdr       { padding: 40px 16px; }
  .ft-bottom    { padding: 12px 16px; }
}

/* ── Breakpoint tablet 768px (novo) ─────────────────────── */
@media (max-width: 768px) {
  .statsbar .sb-item { flex: 1 1 50%; }
  .srv-grid          { grid-template-columns: 1fr 1fr; }
  .news-grid         { grid-template-columns: 1fr; }
  .parc-grid         { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
  .about-grid        { grid-template-columns: 1fr; gap: 24px; }
  .proc-grid         { grid-template-columns: 1fr 1fr; }
  .ft-top            { grid-template-columns: 1fr 1fr; }
  .strip-grid        { grid-template-columns: 1fr; }
  .contact-split     { grid-template-columns: 1fr; }
}

/* ── Imagens com dimensões explícitas (evitar CLS) ───────── */
.ft-logo img,
.nav-logo img { width: auto; height: auto; max-height: 52px; }

/* ── Dashboard admin — responsivo ────────────────────────── */
@media (max-width: 900px) {
  .app   { flex-direction: column; }
  .sb    { width: 100%; height: auto; position: static; }
  .main  { width: 100%; padding: 16px; }
  .sb-nav { display: flex; flex-wrap: wrap; gap: 4px; padding: 8px; }
  .ni   { flex: 1 1 auto; min-width: 100px; text-align: center; }
}

/* ── Acessibilidade — foco visível (WCAG 2.1 SC 2.4.7) ───── */
:focus-visible {
  outline: 3px solid #f5a623;
  outline-offset: 2px;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid #f5a623;
  outline-offset: 2px;
}

/* ── Respeitar preferência de movimento reduzido ─────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:   0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration:  0.01ms !important;
    scroll-behavior:      auto !important;
  }
  .fu { opacity: 1; transform: none; }
}

/* ── Lazy loading — placeholder enquanto carrega ─────────── */
img[loading="lazy"] {
  background: #f0f4fa;
  min-height: 40px;
}

/* ── Skip link de acessibilidade ─────────────────────────── */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 8px;
  z-index: 9999;
  padding: 8px 16px;
  background: #094e8a;
  color: #fff;
  font-size: 14px;
  border-radius: 4px;
  text-decoration: none;
}
.skip-link:focus {
  left: 8px;
}

/* ── Modal política de privacidade ───────────────────────── */
.priv-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 9000;
  align-items: center;
  justify-content: center;
}
.priv-overlay.open { display: flex; }
.priv-box {
  background: #fff;
  border-radius: 8px;
  padding: 32px;
  max-width: 560px;
  width: calc(100% - 32px);
  max-height: 80vh;
  overflow-y: auto;
  position: relative;
  box-shadow: 0 20px 60px rgba(0,0,0,.3);
}
.priv-box h2 { font-family: var(--fd); font-size: 18px; margin: 0 0 12px; color: var(--azul); }
.priv-box p  { font-size: 13px; line-height: 1.7; color: var(--cinza-m); margin-bottom: 10px; }
.priv-close {
  position: absolute;
  top: 12px; right: 16px;
  background: none; border: none;
  font-size: 22px; cursor: pointer; color: var(--cinza-m);
}
.priv-close:hover { color: var(--escuro); }

/* ── Consentimento RGPD no formulário ────────────────────── */
.rgpd-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 8px;
  font-size: 12px;
  color: var(--cinza-m);
  line-height: 1.5;
}
.rgpd-row input[type="checkbox"] {
  margin-top: 2px;
  flex-shrink: 0;
  width: 16px; height: 16px;
  accent-color: var(--azul);
}
.rgpd-row a { color: var(--azul); text-decoration: underline; cursor: pointer; }

/* ══════════════════════════════════════
   MEDIA QUERIES — RESPONSIVIDADE LUANET
   ══════════════════════════════════════ */

/* 💻 Ecrãs Grandes e Médios (Ajuste fino para Portáteis) */
@media (max-width: 1200px) {
  .hc-pattern { display: none; } /* Esconde o padrão geométrico para dar espaço ao texto */
  .hc-content { max-width: 80%; }
}

/* 🩺 Tablets (Ecrãs até 992px) */
@media (max-width: 992px) {
  /* Navbar: Esconde os links normais e ativa o botão hambúrguer */
  .nav-links { display: none; }
  .hamburger { display: flex; }
  
  /* Ajuste do conteúdo do Carrossel */
  .hc-content { max-width: 90%; padding: 60px 30px; }
  .hc-sub { max-width: 100%; }
}

/* 📱 Telemóveis (Ecrãs até 768px) */
@media (max-width: 768px) {
  /* Topbar: Esconde as redes sociais e centra os contactos */
  .topbar { 
    padding: 8px 16px; 
    flex-direction: column; 
    justify-content: center; 
  }
  .tb-left { 
    justify-content: center;
    gap: 12px;
  }
  .tb-left span { display: none; } /* Esconde a barra separadora "|" */
  .tb-social { display: none; }

  /* Navbar */
  #navbar { padding: 0 16px; height: 64px; }
  .nav-logo img { height: 48px; }
  .mob-nav { top: 64px; } /* Ajusta a posição do menu móvel */

  /* Hero Carrossel */
  .hero-carousel { min-height: 420px; }
  .hc-content { 
    padding: 40px 20px; 
    text-align: center; 
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .hc-tag { margin-bottom: 14px; }
  
  /* Botões do Carrossel ocupam a largura total ou alinham ao centro */
  .hc-btns { 
    justify-content: center; 
    width: 100%; 
    gap: 10px; 
  }
  .hc-btn-s, .hc-btn-o { 
    width: 100%; 
    text-align: center; 
    justify-content: center; 
    padding: 12px 20px;
  }
}

/* 📱 Telemóveis Muito Pequenos (Até 480px) */
@media (max-width: 480px) {
  .hero-carousel { min-height: 460px; } /* Dá mais altura para o texto quebrado */
  .hc-sub { font-size: 14px; line-height: 1.6; }
}