/* NgolaGest: página inicial pública. Folha própria, sem o design system da aplicação. */
:root {
  --az-900: #081C3D; --az-800: #0C2A57; --az-700: #123E7A; --az-600: #1A54A0; --az-500: #1E62B8; --az-400: #2F7DE1; --az-200: #9CC7FF; --az-100: #D3E3F7; --az-50: #EEF4FC;
  --fundo: #ffffff; --fundo-alt: #F3F7FC; --cartao: #ffffff; --texto: #0F1E36; --texto-2: #4A5A72; --borda: #DCE5F1; --real: var(--az-500);
  --sombra: 0 18px 50px rgba(12, 42, 87, .14);
}
:root[data-theme="dark"] {
  --fundo: #0B1526; --fundo-alt: #101D32; --cartao: #15243C; --texto: #EDF3FB; --texto-2: #A9B8CD; --borda: #24364F; --real: var(--az-200);
  --sombra: 0 18px 50px rgba(0, 0, 0, .45);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; background: var(--fundo); color: var(--texto); font-family: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif; font-size: 16px; line-height: 1.55; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3 { line-height: 1.15; margin: 0; letter-spacing: -.015em; }
h2 { font-size: clamp(27px, 3.4vw, 40px); font-weight: 750; }
h3 { font-size: 18px; font-weight: 700; }
:focus-visible { outline: 3px solid var(--az-400); outline-offset: 2px; border-radius: 4px; }

.h-in { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.h-estreito { max-width: 780px; }
.h-centro { text-align: center; }
.h-seccao { padding: 84px 0; }
.h-alt { background: var(--fundo-alt); }
.h-lead { color: var(--texto-2); font-size: 18px; margin: 14px 0 0; }

/* Botões */
.h-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 42px; padding: 9px 18px; border-radius: 10px; border: 1.5px solid transparent; font-weight: 650; font-size: 15px; text-decoration: none; transition: transform .15s, background .15s, border-color .15s; white-space: nowrap; }
.h-btn:hover { transform: translateY(-1px); }
.h-btn-claro { background: #fff; color: var(--az-700); }
.h-btn-claro:hover { background: var(--az-50); }
.h-btn-fantasma { color: #fff; border-color: rgba(255, 255, 255, .42); }
.h-btn-fantasma:hover { background: rgba(255, 255, 255, .1); border-color: #fff; }
.h-btn-grande { min-height: 52px; padding: 13px 26px; font-size: 16px; }

/* Barra do topo */
.h-nav { position: sticky; top: 0; z-index: 50; background: var(--az-900); color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.h-nav-in { max-width: 1160px; margin: 0 auto; padding: 12px 24px; display: flex; align-items: center; gap: 28px; }
.h-marca { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; font-size: 20px; font-weight: 650; }
.h-marca b { color: var(--az-200); font-weight: 800; }
.h-links { display: flex; gap: 24px; font-size: 15px; }
.h-links a { color: #D3E3F7; text-decoration: none; }
.h-links a:hover { color: #fff; }
.h-nav-accoes { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.h-tema, .h-menu { width: 42px; height: 42px; border-radius: 10px; border: 1.5px solid rgba(255, 255, 255, .25); background: transparent; color: #fff; cursor: pointer; font-size: 15px; }
.h-tema:hover, .h-menu:hover { background: rgba(255, 255, 255, .1); }
.h-menu { display: none; }

/* Destaque */
.h-hero { position: relative; overflow: hidden; color: #fff; background: radial-gradient(900px 520px at 88% 8%, rgba(47, 125, 225, .5), transparent 65%), linear-gradient(160deg, var(--az-900) 0%, var(--az-800) 58%, var(--az-700) 100%); }
.h-hero::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px); background-size: 44px 44px; pointer-events: none; }
.h-hero-in { position: relative; z-index: 1; max-width: 1160px; margin: 0 auto; padding: 76px 24px 88px; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.h-hero h1 { font-size: clamp(38px, 5.4vw, 64px); font-weight: 800; }
.h-hero h1 em { display: block; font-style: normal; color: var(--az-200); }
.h-hero-texto > p { font-size: 19px; color: var(--az-100); margin: 22px 0 30px; max-width: 34em; }
.h-hero-accoes { display: flex; flex-wrap: wrap; gap: 12px; }
.h-hero-factos { list-style: none; margin: 32px 0 0; padding: 0; display: grid; gap: 9px; color: var(--az-100); font-size: 15px; }
.h-hero-factos i { width: 24px; color: var(--az-200); }

/* Factura viva: é papel, por isso fica clara também no tema escuro */
.h-factura { transform: rotate(1.2deg); transition: transform .3s; }
.h-factura:hover, .h-factura:focus-within { transform: rotate(0); }
.h-factura-papel { background: #fff; color: #0F1E36; border-radius: 6px; padding: 26px; box-shadow: 0 30px 70px rgba(0, 0, 0, .42); position: relative; }
.h-factura-papel::after { content: ""; position: absolute; left: 0; right: 0; bottom: -9px; height: 10px; background: radial-gradient(circle at 8px 0, #fff 8px, transparent 8.5px) repeat-x; background-size: 16px 10px; }
.h-factura-cab { display: flex; justify-content: space-between; gap: 14px; padding-bottom: 14px; border-bottom: 2px solid #0F1E36; }
.h-factura-cab small { display: block; color: #5A6A82; font-size: 13px; }
.h-factura-num { text-align: right; }
.h-factura-num span { display: block; color: #5A6A82; font-size: 13px; }
.h-linha { display: grid; grid-template-columns: minmax(0, 1fr) auto 118px; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid #E6EBF2; }
.h-linha-nome { font-weight: 600; font-size: 15px; }
.h-linha-nome small { display: block; color: #5A6A82; font-weight: 400; font-size: 12.5px; }
.h-linha-val { white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; font-size: 14.5px; font-weight: 600; }
.h-qtd { display: inline-flex; align-items: center; gap: 2px; }
.h-qtd button { width: 32px; height: 32px; border-radius: 8px; border: 1px solid #CBD6E5; background: #F5F8FC; color: #123E7A; font-size: 18px; line-height: 1; cursor: pointer; }
.h-qtd button:hover { background: #E3EDFA; border-color: #2F7DE1; }
.h-qtd output { min-width: 28px; text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }
.h-factura-tot { margin: 14px 0 0; }
.h-factura-tot div { display: flex; justify-content: space-between; padding: 3px 0; font-size: 14.5px; color: #4A5A72; }
.h-factura-tot dt, .h-factura-tot dd { margin: 0; font-variant-numeric: tabular-nums; }
.h-factura-tot .h-tot-final { color: #0F1E36; font-size: 23px; font-weight: 800; padding-top: 9px; margin-top: 6px; border-top: 2px solid #0F1E36; }
.h-factura-nota { margin: 22px 0 0; text-align: center; color: var(--az-100); font-size: 14px; }
.h-factura-nota i { margin-right: 7px; color: var(--az-200); }

/* Recibos soltos */
.h-duas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.h-foto { width: 100%; border-radius: 16px; box-shadow: var(--sombra); }
.h-numeros { list-style: none; margin: 26px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; color: var(--texto-2); font-size: 15px; }
.h-numeros li { display: flex; gap: 13px; }
.h-numeros i { color: var(--real); font-size: 19px; width: 24px; margin-top: 3px; }
.h-numeros b { display: block; color: var(--texto); }

/* Passos */
.h-passos { list-style: none; margin: 48px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; counter-reset: none; }
.h-passos li { position: relative; background: var(--cartao); border: 1px solid var(--borda); border-radius: 14px; padding: 28px; }
.h-passos span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; margin-bottom: 16px; background: var(--az-500); color: #fff; font-weight: 800; font-size: 18px; }
.h-passos p { margin: 8px 0 0; color: var(--texto-2); }

/* Abas */
.h-abas { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 34px 0 30px; }
.h-abas button { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 9px 20px; border-radius: 99px; border: 1.5px solid var(--borda); background: var(--cartao); color: var(--texto); font: inherit; font-weight: 650; cursor: pointer; }
.h-abas button:hover { border-color: var(--az-400); }
.h-abas button.activa { background: var(--az-500); border-color: var(--az-500); color: #fff; }
.h-lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.h-lista li { position: relative; padding: 19px 20px 19px 62px; background: var(--cartao); border: 1px solid var(--borda); border-radius: 12px; color: var(--texto-2); }
.h-lista i { position: absolute; left: 21px; top: 22px; font-size: 19px; width: 24px; text-align: center; color: var(--real); }
.h-lista b { color: var(--texto); margin-right: 5px; }

/* Ecrãs */
.h-mostra { position: relative; padding-right: 92px; }
.h-janela { margin: 0; background: var(--cartao); border: 1px solid var(--borda); border-radius: 12px; overflow: hidden; box-shadow: var(--sombra); }
.h-janela-barra { display: flex; gap: 7px; padding: 11px 14px; background: var(--az-800); }
.h-janela-barra i { width: 11px; height: 11px; border-radius: 50%; background: rgba(255, 255, 255, .3); }
.h-telefone { position: absolute; right: 0; bottom: -28px; width: 190px; margin: 0; padding: 7px; background: #081C3D; border-radius: 26px; box-shadow: var(--sombra); }
.h-telefone img { border-radius: 20px; width: 100%; }

/* Rigor */
.h-rigor { background: linear-gradient(160deg, var(--az-900), var(--az-700)); color: #fff; }
.h-rigor-grelha { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 34px; margin-top: 50px; }
.h-rigor i { font-size: 23px; color: var(--az-200); margin-bottom: 13px; display: block; }
.h-rigor p { margin: 7px 0 0; color: var(--az-100); font-size: 15.5px; }

/* Formatos: as folhas estão à escala entre si */
.h-formatos { list-style: none; margin: 44px 0 0; padding: 0; display: flex; justify-content: center; align-items: flex-end; flex-wrap: wrap; gap: 38px; font-weight: 650; text-align: center; }
.h-folha { display: block; margin: 0 auto 12px; background: repeating-linear-gradient(#fff 0 9px, #E8EEF6 9px 10px); border: 1px solid var(--borda); border-radius: 3px; box-shadow: 0 8px 22px rgba(12, 42, 87, .13); }
.h-a4 { width: 147px; height: 208px; } .h-a5 { width: 104px; height: 147px; } .h-a6 { width: 74px; height: 104px; } .h-rolo { width: 56px; height: 190px; }

/* Perguntas */
details { background: var(--cartao); border: 1px solid var(--borda); border-radius: 12px; margin-top: 11px; }
details:first-of-type { margin-top: 34px; }
summary { padding: 16px 44px 16px 20px; font-weight: 650; cursor: pointer; list-style: none; position: relative; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; position: absolute; right: 19px; top: 11px; font-size: 24px; color: var(--real); font-weight: 500; }
details[open] summary::after { content: "−"; }
details p { margin: 0; padding: 0 20px 18px; color: var(--texto-2); }

/* Fim */
.h-final { padding: 76px 0; color: #fff; background: radial-gradient(700px 300px at 50% 0, rgba(47, 125, 225, .55), transparent 70%), var(--az-900); }
.h-final h2 { margin-bottom: 26px; }
.h-rodape { background: var(--az-900); color: var(--az-100); border-top: 1px solid rgba(255, 255, 255, .09); padding: 26px 0; }
.h-rodape-in { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.h-rodape nav { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 14.5px; }
.h-rodape nav a { text-decoration: none; }
.h-rodape nav a:hover { color: #fff; text-decoration: underline; }
.h-rodape small { margin-left: auto; }

/* Entrada suave: só com JS activo, para o texto nunca ficar escondido sem ele */
.h-js .h-revela { opacity: 0; transform: translateY(16px); transition: opacity .55s ease, transform .55s ease; }
.h-js .h-revela.visivel { opacity: 1; transform: none; }

@media (max-width: 980px) {
  .h-hero-in { grid-template-columns: minmax(0, 1fr); gap: 44px; padding: 52px 24px 64px; }
  .h-factura { max-width: 520px; width: 100%; margin: 0 auto; }
  .h-duas { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .h-rigor-grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .h-telefone { width: 150px; }
  .h-mostra { padding-right: 62px; }
  .h-links { display: none; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; gap: 0; background: var(--az-900); border-top: 1px solid rgba(255, 255, 255, .1); padding: 6px 24px 14px; }
  .h-links.aberto { display: flex; }
  .h-links a { padding: 12px 0; }
  .h-menu { display: block; }
}
@media (max-width: 720px) {
  .h-in { padding: 0 16px; }
  .h-nav-in { padding: 10px 16px; gap: 10px; }
  .h-links { padding: 6px 16px 14px; }
  .h-hero-in { padding: 42px 16px 54px; }
  .h-seccao { padding: 58px 0; }
  .h-so-largo { display: none; }
  .h-passos, .h-lista { grid-template-columns: minmax(0, 1fr); }
  .h-passos { margin-top: 32px; }
  .h-numeros { grid-template-columns: minmax(0, 1fr); }
  .h-rigor-grelha { grid-template-columns: minmax(0, 1fr); gap: 28px; margin-top: 34px; }
  .h-hero-accoes .h-btn { width: 100%; }
  .h-factura { transform: none; }
  .h-factura-papel { padding: 18px; }
  .h-linha { grid-template-columns: minmax(0, 1fr) auto; }
  .h-linha-val { grid-column: 1 / -1; }
  .h-mostra { padding: 0; }
  .h-telefone { position: static; width: 210px; margin: 26px auto 0; }
  .h-formatos { gap: 24px; }
  .h-a4 { width: 110px; height: 156px; } .h-a5 { width: 78px; height: 110px; } .h-a6 { width: 55px; height: 78px; } .h-rolo { width: 42px; height: 142px; }
  .h-rodape small { margin-left: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .h-factura { transform: none; }
  .h-js .h-revela { opacity: 1; transform: none; }
}
@media (max-width: 400px) {
  .h-tema { display: none; }
  .h-marca { font-size: 18px; gap: 8px; }
  .h-nav-accoes .h-btn { padding: 8px 12px; }
}
