Adicao do texto por que investir em Moz e ajuste dos elementos

This commit is contained in:
2026-10-26 11:01:35 +02:00
parent 8f1ab24b22
commit 17d633c99c
4 changed files with 225 additions and 98 deletions
@@ -2782,3 +2782,20 @@ Guia: na barra, abrir Descoberta e seleccionar o item; na página inicial, os ci
Verificação local do delta: seis testes existentes de navegação passaram; ordem dos cinco destinos e preservação do contexto/rascunho fiscal conferidas com e sem contexto. `npm run types:check`, `npm run build` e `git diff --check` passaram. Traduções dos novos rótulos do menu acrescentadas em inglês, francês e espanhol. Sem nova conferência visual no navegador ou publicação no destino. Critérios transversais da matriz permanecem no estado anterior; esta reorganização não os encerra.
Correcção expressa da Tempo, 26/10/2026: acrescentar interrogação a **Porquê investir em Moçambique?**, uniformizada no atalho, menu, caminho de navegação, título da página e traduções. Compactar os cinco atalhos iniciais: margens internas horizontais de 20 para 12 px por lado e verticais de 12 para 6 px; intervalo de 12 para 8 px; margem superior de 24 para 16 px; altura mínima de 36 px a partir de 640 px de largura, mantendo 44 px no telemóvel. São escolhas de apresentação para executar este pedido. Inventário preservado: cinco destinos, ordem, contexto fiscal e acessos anteriores; sem funcionalidade desaparecida confirmada neste delta. Verificação desta correcção: `npm run build` e `git diff --check` passaram. Sem nova conferência visual no navegador ou publicação no destino.
### Página Porquê investir — reestruturação de 26/10/2026
Origem: pedido expresso e texto editorial fornecidos pela Tempo no anexo desta conversa. Inventário anterior: introdução de orientação, sete cartões temáticos, condições/documentação e apoio, todos conservados com os seus links; nenhuma perda confirmada neste delta. Texto fornecido reproduzido nos cinco parágrafos, com destaque final preservado, sem criar regras ou parâmetros fiscais.
Organização: texto à esquerda sob o título; introdução e cartões anteriores à direita. Os cartões acompanham a altura natural do texto, regressando à largura disponível abaixo, sem corte fixo por número de cartões nem espaço vazio reservado à coluna. A partir de 1024 px, texto ocupa dois terços e cartões um terço; abaixo do texto os cartões ocupam até três posições horizontais. Tablet: texto seguido da orientação e cartões em duas posições; telemóvel: leitura sequencial numa coluna. Condições/documentação e apoio continuam em largura integral depois dos cartões. Guia: Descoberta → Porquê investir em Moçambique?; os atalhos e todos os destinos existentes mantêm-se.
Só muda a apresentação desta página, sem schema, dados, configuração, permissões ou activação de cálculos. Cobertura anotada em V2-01 na matriz existente; não encerra requisitos globais. Verificação local concluída: TypeScript, compilação e diff passaram; cinco parágrafos fornecidos conferidos integralmente e os 12 parágrafos/15 links anteriores preservados. Prévia isolada do componente real com CSS compilado, substituindo apenas o Frame exterior e o Link por elementos HTML: 1440, 1024, 820 e 390 px, sem transbordo horizontal. Conferidos alinhamento em linhas, continuação abaixo do texto e leitura móvel. Capturas e recibo em outputs/why-invest-layout-20261026/. Não é uma prova do ambiente activo; sem publicação no destino.
### Página Porquê investir — compactação de 26/10/2026
Origem: pedido expresso da Tempo para rever os espaços em branco e compactar a organização. Inventário do delta: mantidos os cinco parágrafos editoriais, 12 parágrafos anteriores, sete cartões e 15 links, com leitura lateral e continuação horizontal anteriormente entregues; sem perda funcional confirmada. Reutilizam-se as provas anteriores, conferindo somente o delta visual.
Compactação local: margens verticais da página de 36 para 24 px, intervalos entre secções de 24 para 16 px, separação entre cartões de 24 para 16 px e preenchimento dos cartões de 20 para 16 px. Texto editorial mantém 16 px, com entrelinha de 24 px e intervalos entre parágrafos de 12 px; títulos e botões ajustados à densidade dos cartões. O Frame existente recebe uma opção de classe no conteúdo principal, usada apenas nesta página, conservando os estilos por omissão das restantes. Origem das medidas: escolha de apresentação para executar o pedido; sem nova regra organizacional. Não se alteram schema, dados, configuração, permissões ou cálculos.
Verificação desta compactação concluída: TypeScript, build e diff passaram. Comparação isolada com o componente e Frame reais, CSS compilado e navegação/cabeçalho substituídos, em 1440, 1024, 820, 390 e 320 px: conteúdo integral, 17 parágrafos, sete cartões e 15 links preservados; corpo do texto com 16 px, sem transbordo horizontal. Altura do conteúdo em 1440 px passou de 1932 para 1634,75 px (cerca de 15%); em 390 px, de 5240 para 4386,5 px (cerca de 16%). Inspecção visual das capturas de computador e telemóvel concluída. Recibo e imagens antes/depois: outputs/why-invest-spacing-20261026/. Prova de apresentação isolada, sem consulta da base ou publicação no destino.
File diff suppressed because one or more lines are too long
+9 -1
View File
@@ -1,6 +1,7 @@
import { Head, Link, usePage } from '@inertiajs/react';
import type { ReactNode } from 'react';
import { PortalMenu } from '@/layouts/portal-navigation';
import { cn } from '@/lib/utils';
import type { TerritorialSourceEvidence } from '@/components/territorial-source-evidence';
import type {
StructureGeography,
@@ -101,9 +102,11 @@ export const card = 'rounded-xl border border-slate-200 bg-white p-5 shadow-sm';
export function Frame({
title,
children,
mainClassName,
}: {
title: string;
children: ReactNode;
mainClassName?: string;
}) {
const { flash } = usePage<{
flash?: { success?: string; warning?: string };
@@ -112,7 +115,12 @@ export function Frame({
<div className="min-h-screen bg-slate-50 text-slate-900">
<Head title={title} />
<PortalMenu />
<main className="mx-auto max-w-7xl space-y-6 px-5 py-9">
<main
className={cn(
'mx-auto max-w-7xl space-y-6 px-5 py-9',
mainClassName,
)}
>
<h1 className="text-3xl font-bold">{title}</h1>
{flash?.warning && (
<p
+198 -96
View File
@@ -1,99 +1,201 @@
import { Link } from '@inertiajs/react';
import { Frame, card, button } from '@/pages/investment/shared';
import { cn } from '@/lib/utils';
const compactCard = cn(card, 'p-4');
const compactButton = cn(button, 'min-h-11 px-3 py-1.5 text-sm sm:min-h-9');
export default function WhyInvest() {
return (
<Frame title="Porquê investir em Moçambique?">
<section className={card + ' space-y-4'}>
<h2 className="text-2xl font-bold">
Encontrar possibilidades e avaliar as condições
</h2>
<p>
Investir começa por identificar uma necessidade, um mercado
e uma forma de criar valor. Em Moçambique, explore as
possibilidades de produção, transformação, logística,
turismo e serviços e compare as condições de cada projecto.
Este percurso destina-se a investidores nacionais e
estrangeiros, em todo o território nacional.
</p>
<p>
A informação do portal ajuda a comparar possibilidades e a
organizar os elementos do dossier. Uma página setorial ou
artigo educativo não representa uma oportunidade concreta
nem uma recomendação de retorno.
</p>
<div className="flex flex-wrap gap-3">
<Link className={button} href="/oportunidades">
Explorar oportunidades publicadas
</Link>
<Link className={button} href="/investimentos/iniciar">
Iniciar ou continuar uma ideia
</Link>
<Frame
title="Porquê investir em Moçambique?"
mainClassName="space-y-4 py-6"
>
<div className="flow-root">
<div className="-mx-2 flow-root">
<article
aria-label="Investir em Moçambique"
className="p-2 lg:float-left lg:w-2/3"
>
<div className="space-y-3 text-base leading-6 text-slate-700">
<p>
Investir em Moçambique é escolher um mercado em
forte expansão, estrategicamente posicionado na
África Austral e integrado na SADC, com acesso
directo a seis países vizinhos e a um dos
maiores blocos económicos da região. A
estabilidade política, a segurança e um ambiente
regulatório cada vez mais favorável tornam o
país um destino confiável e competitivo para
investidores nacionais e estrangeiros.
</p>
<p>
A localização privilegiada faz de Moçambique uma
plataforma logística natural. Os portos de
Maputo, Beira e Nacala — este último, o porto
natural mais profundo da costa oriental africana
— funcionam como corredores eficientes para
economias sem litoral como as de Malawi, Zâmbia
e Zimbabué. Esta infraestrutura sólida consolida
o país como um hub regional de comércio,
transporte e distribuição.
</p>
<p>
Moçambique reforça a confiança dos investidores
por meio de acordos bilaterais de investimento e
de tratados de dupla tributação com economias
estratégicas, garantindo estabilidade jurídica e
protecção aos investimentos. Além disso, oferece
incentivos fiscais e aduaneiros competitivos,
aliados ao acesso preferencial a grandes
mercados internacionais via AGOA (EUA), EBA
(União Europeia), preferências comerciais com a
China e parcerias com a Índia. Estes mecanismos
aumentam a competitividade das empresas que se
instalam no país e ampliam o seu alcance global.
</p>
<p>
O país oferece garantias essenciais, como
protecção da propriedade, repatriação livre de
lucros e incentivos específicos, incluindo
isenção de direitos aduaneiros para
equipamentos, crédito fiscal, depreciação
acelerada e benefícios para tecnologias,
formação, inovação e infraestruturas. Sectores
prioritários — agricultura, pescas, indústrias
rurais, turismo, mineração, petróleo e gás — bem
como zonas francas e zonas económicas especiais
dispõem de regimes particularmente vantajosos.
</p>
<p>
<strong>
Investir em Moçambique é integrar um país em
transformação
</strong>
, rico em recursos, com enorme potencial
energético, agricultura fértil, projectos
estruturantes em curso e uma visão clara de
industrialização. Com reformas consistentes,
vantagens logísticas e acesso preferencial a
mercados internacionais, o país destaca-se como
um dos destinos mais promissores para
investidores que buscam crescimento sustentável,
estabilidade e oportunidades concretas na África
Austral.
</p>
</div>
</article>
<div className="p-2 lg:inline-block lg:w-1/3 lg:align-top">
<section className={compactCard + ' space-y-3'}>
<h2 className="text-xl leading-snug font-bold">
Encontrar possibilidades e avaliar as condições
</h2>
<p>
Investir começa por identificar uma necessidade,
um mercado e uma forma de criar valor. Em
Moçambique, explore as possibilidades de
produção, transformação, logística, turismo e
serviços e compare as condições de cada
projecto. Este percurso destina-se a
investidores nacionais e estrangeiros, em todo o
território nacional.
</p>
<p>
A informação do portal ajuda a comparar
possibilidades e a organizar os elementos do
dossier. Uma página setorial ou artigo educativo
não representa uma oportunidade concreta nem uma
recomendação de retorno.
</p>
<div className="flex flex-wrap gap-2">
<Link
className={compactButton}
href="/oportunidades"
>
Explorar oportunidades publicadas
</Link>
<Link
className={compactButton}
href="/investimentos/iniciar"
>
Iniciar ou continuar uma ideia
</Link>
</div>
</section>
</div>
{[
[
'Produção e transformação',
'Compare fornecimento, processamento e comercialização. Avalie matérias-primas, fornecedores, energia, água e procura antes de escolher a escala do projecto.',
'/sectores',
],
[
'Território e ligações',
'Compare localizações, corredores e parques com o mercado que pretende servir. Confira acessos, logística, infra-estruturas e as condições documentadas de cada ficha.',
'/oportunidades?view=map',
],
[
'Serviços e parcerias',
'Explore necessidades de empresas e comunidades e possibilidades de cooperação. Distinga uma ideia a desenvolver de uma oportunidade publicada ou de uma parceria formalizada.',
'/parcerias',
],
].map(([title, text, href]) => (
<div
className="p-2 md:inline-block md:w-1/2 md:align-top lg:w-1/3"
key={title}
>
<article className={compactCard + ' space-y-2'}>
<h2 className="text-lg leading-snug font-bold">
{title}
</h2>
<p>{text}</p>
<Link className="underline" href={href}>
Explorar {title.toLowerCase()}
</Link>
</article>
</div>
))}
{[
[
'Sectores e modelos de negócio',
'Consulte o conteúdo educativo e as oportunidades cadastradas. Pode iniciar uma ideia mesmo sem um anúncio publicado.',
'/sectores',
],
[
'Localizações e enquadramentos',
'Explore o mapa e as fichas de corredores, clusters, zonas, parques e projectos. Cada referência conserva a natureza e o fundamento que lhe estão associados.',
'/oportunidades?view=map',
],
[
'Fontes para decidir',
'Consulte documentos e legislação do acervo publicado. Confirme o âmbito e o período aplicável antes de usar uma informação no seu processo.',
'/documentos',
],
[
'Um dossier para desenvolver a ideia',
'A oportunidade, o sector e a localização convergem num dossier com cinco fases e 19 etapas. A orientação permite preparar etapas em paralelo e respeita a aplicabilidade de terra e licenciamento.',
'/como-investir',
],
].map(([title, text, href]) => (
<div
className="p-2 md:inline-block md:w-1/2 md:align-top lg:w-1/3"
key={title}
>
<article className={compactCard + ' space-y-2'}>
<h2 className="text-lg leading-snug font-bold">
{title}
</h2>
<p>{text}</p>
<Link className="underline" href={href}>
Consultar {title.toLowerCase()}
</Link>
</article>
</div>
))}
</div>
</section>
<section
aria-label="Perspectivas para avaliar o investimento"
className="grid gap-4 md:grid-cols-3"
>
{[
[
'Produção e transformação',
'Compare fornecimento, processamento e comercialização. Avalie matérias-primas, fornecedores, energia, água e procura antes de escolher a escala do projecto.',
'/sectores',
],
[
'Território e ligações',
'Compare localizações, corredores e parques com o mercado que pretende servir. Confira acessos, logística, infra-estruturas e as condições documentadas de cada ficha.',
'/oportunidades?view=map',
],
[
'Serviços e parcerias',
'Explore necessidades de empresas e comunidades e possibilidades de cooperação. Distinga uma ideia a desenvolver de uma oportunidade publicada ou de uma parceria formalizada.',
'/parcerias',
],
].map(([title, text, href]) => (
<article className={card + ' space-y-3'} key={title}>
<h2 className="text-xl font-bold">{title}</h2>
<p>{text}</p>
<Link className="underline" href={href}>
Explorar {title.toLowerCase()}
</Link>
</article>
))}
</section>
<section className="grid gap-4 md:grid-cols-2">
{[
[
'Sectores e modelos de negócio',
'Consulte o conteúdo educativo e as oportunidades cadastradas. Pode iniciar uma ideia mesmo sem um anúncio publicado.',
'/sectores',
],
[
'Localizações e enquadramentos',
'Explore o mapa e as fichas de corredores, clusters, zonas, parques e projectos. Cada referência conserva a natureza e o fundamento que lhe estão associados.',
'/oportunidades?view=map',
],
[
'Fontes para decidir',
'Consulte documentos e legislação do acervo publicado. Confirme o âmbito e o período aplicável antes de usar uma informação no seu processo.',
'/documentos',
],
[
'Um dossier para desenvolver a ideia',
'A oportunidade, o sector e a localização convergem num dossier com cinco fases e 19 etapas. A orientação permite preparar etapas em paralelo e respeita a aplicabilidade de terra e licenciamento.',
'/como-investir',
],
].map(([title, text, href]) => (
<article className={card + ' space-y-3'} key={title}>
<h2 className="text-xl font-bold">{title}</h2>
<p>{text}</p>
<Link className="underline" href={href}>
Consultar {title.toLowerCase()}
</Link>
</article>
))}
</section>
<section className={card + ' space-y-3'}>
<h2 className="text-xl font-bold">
</div>
<section className={compactCard + ' space-y-2'}>
<h2 className="text-lg leading-snug font-bold">
Preparar condições, documentação e apoio
</h2>
<p>
@@ -109,7 +211,7 @@ export default function WhyInvest() {
retorno do investimento. Informação desconhecida deve
continuar identificada como tal.
</p>
<div className="flex flex-wrap gap-4">
<div className="flex flex-wrap gap-x-3 gap-y-2">
<Link className="underline" href="/legislacao">
Legislação e enquadramento
</Link>
@@ -121,8 +223,8 @@ export default function WhyInvest() {
</Link>
</div>
</section>
<section className={card + ' space-y-3'}>
<h2 className="text-xl font-bold">
<section className={compactCard + ' space-y-2'}>
<h2 className="text-lg leading-snug font-bold">
Apoio ao longo do percurso
</h2>
<p>
@@ -131,8 +233,8 @@ export default function WhyInvest() {
distinto de submeter um pedido; uma comunicação interna não
equivale a uma decisão oficial.
</p>
<div className="flex flex-wrap gap-4">
<Link className={button} href="/balcao-virtual">
<div className="flex flex-wrap gap-x-3 gap-y-2">
<Link className={compactButton} href="/balcao-virtual">
Serviços ao investidor
</Link>
<Link className="underline" href="/apoio">