/* =========================================================================
   LEGALIZACOES.COM | site público, fluxo de início e acesso (W05, W07, L01, L08)
   -------------------------------------------------------------------------
   Carrega depois de pz-legalizations.css e consome os mesmos tokens: nenhuma
   cor, raio, família ou escala tipográfica nova é definida aqui.

   L08 (D-019), a direção de arte do proprietário de 2026-10-18:
     Fotografia  três fotografias licenciadas, impressas a duas tintas (um
                 quase-preto frio e um branco frio) e cruzadas pelas duas
                 placas do símbolo: o laranja de sinal em multiplicação, o
                 ardósia claro em ecrã. As placas desenham-se aqui, vazias.
     Planos      Ink abre as páginas, mostra a área pessoal e fecha o site
                 (cabeçalho, abertura, área, rodapé); a página e uma faixa um
                 degrau abaixo alternam o ritmo; os objetos que se leem ou se
                 usam são brancos, com contorno fino e sombra curta.
     Eixo        nas composições em duas colunas, o texto ocupa cinco partes
                 em doze e o conteúdo as outras sete.
     Laranja     a ação principal (--pz-action), o sinal (--pz-signal) e a
                 placa das fotografias. Nunca um fundo, nunca uma marca
                 repetida.
     Movimento   MOTION.md: retorno de toque, foco e passagem do rato à
                 duração micro; a folha do menu entra à duração de superfície;
                 nada corre com o scroll; movimento reduzido respeitado.

   Dois cromos (L01): uma página que se percorre tem cabeçalho, rodapé e,
   abaixo de 1000px, a barra de separadores; um ecrã de tarefa tem só a barra
   da tarefa.
   ========================================================================= */

.pzln-view-public { background: var(--pz-page); }

.pzw {
  --pzw-max: var(--pz-width-public);
  --pzw-gutter: max(20px, env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px), calc((100% - var(--pzw-max)) / 2));
  --pzw-pad: clamp(56px, calc(3.2vw + 40px), 104px);
  --pzw-gap: clamp(32px, 5vw, 88px);
  --pzw-tabbar-h: 0px;
  --pzw-on-dark: var(--lz-brand-light-slate);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: var(--pz-page);
  color: var(--pz-text);
  font-size: 16px;
  line-height: 1.55;
}
/* O que recebe o foco ou é aberto por uma âncora para sempre fora das barras
   fixas: o cabeçalho em cima e, num ecrã estreito, a barra de separadores em
   baixo (WCAG 2.4.11). */
:root:has(.pzw) { scroll-padding-top: 92px; }
.pzw-main { display: block; flex: 1 0 auto; outline: none; }
.pzw-icon { flex: none; }
.pzw ::selection { background: var(--pz-orange-100); color: var(--pz-ink-900); }
.pzw :is(h1, h2, h3) { text-wrap: balance; }
.pzw p { text-wrap: pretty; }

.pzw-skip {
  position: absolute; left: 12px; top: -64px; z-index: 100;
  display: inline-flex; align-items: center; min-height: 44px;
  padding: 10px 14px; border-radius: var(--pz-r-sm);
  background: var(--pz-surface); color: var(--pz-text);
  font-weight: 600; text-decoration: none;
}
.pzw-skip:focus { top: 12px; }

/* O rótulo por cima de um título: na abertura, nas empresas e nas perguntas,
   como o proprietário o escolheu, e nos blocos que já o tinham (a
   documentação, o preço, as contas e os textos legais). Vem antes das
   superfícies Ink, que o acendem: com o mesmo peso, ganha a regra que vem
   depois, e sobre o Ink o cinzento ficava a 3,3:1. */
.pzw .pzln-kicker { display: block; color: var(--pz-text-3); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

/* Superfícies Ink: texto claro, secundário em Light Slate, foco com contorno
   (o dos botões está a seguir aos botões). */
.pzw-header, .pzw-taskbar, .pzw-hero, .pzw-intro, .pzw-pagehead, .pzw-showcase, .pzw-price__companies, .pzw-auth__aside, .pzw-track__aside, .pzw-start__aside, .pzw-footer {
  color: var(--pz-text-inv);
}
.pzw-hero .pzln-kicker, .pzw-intro .pzln-kicker, .pzw-pagehead .pzln-kicker, .pzw-price__companies .pzln-kicker, .pzw-auth__aside .pzln-kicker, .pzw-start__aside .pzln-kicker {
  color: var(--pzw-on-dark);
}
.pzw-header :focus-visible, .pzw-taskbar :focus-visible, .pzw-hero :focus-visible, .pzw-intro :focus-visible, .pzw-pagehead :focus-visible, .pzw-showcase :focus-visible, .pzw-price__companies :focus-visible,
.pzw-auth__aside :focus-visible, .pzw-track__aside :focus-visible, .pzw-start__aside :focus-visible, .pzw-footer :focus-visible {
  outline: 0;
  box-shadow: var(--pz-focus-dark);
}

/* ------------------------------------------------------------------ Botões */

/* UM BOTÃO, DUAS ALTURAS. Normal (44px) e grande (48px) para a ação de um
   bloco de decisão; o mesmo raio, o mesmo peso e o mesmo tamanho de letra em
   todo o site. Níveis: principal (laranja de ação), secundário (contorno),
   escuro (Ink) e terciário (texto). Ao toque, o botão cede um pouco: escala
   0,98 à duração micro, para se sentir premido. */
.pzw .pzln-button { min-height: var(--pz-button-h); padding: 8px var(--pz-button-pad); border-radius: var(--pz-button-radius); font-size: var(--pz-button-font); font-weight: var(--pz-button-weight); }
.pzw .pzln-button { transition: background-color var(--pz-motion-micro) var(--pz-ease), border-color var(--pz-motion-micro) var(--pz-ease), color var(--pz-motion-micro) var(--pz-ease), box-shadow var(--pz-motion-micro) var(--pz-ease), transform var(--pz-motion-micro) var(--pz-ease); }
.pzw .pzln-button:active { transform: scale(.98); }
.pzw .pzln-button--large { min-height: var(--pz-button-h-lg); font-size: var(--pz-button-font-lg); }

/* A AÇÃO PRINCIPAL DO SITE É O LARANJA DE AÇÃO, COM TEXTO BRANCO (4,81:1,
   AA). O laranja da marca (3,4:1 com branco) fica nos marcadores e placas. */
.pzw .pzln-button--primary {
  border-color: var(--pz-action);
  background: var(--pz-action);
  color: var(--pz-action-ink);
  box-shadow: none;
}
.pzw .pzln-button--primary:hover { border-color: var(--pz-action-hover); background: var(--pz-action-hover); }
.pzw-main .pzln-button--secondary { border-color: var(--pz-border-strong); background: transparent; color: var(--pz-text); }
.pzw-main .pzln-button--secondary:hover { border-color: var(--pz-ink-900); background: var(--pz-surface); }
.pzw-main .pzln-button--dark { border-color: var(--pz-ink-900); background: var(--pz-ink-900); color: var(--pz-text-inv); }
.pzw-main .pzln-button--dark:hover { border-color: var(--pz-ink-700); background: var(--pz-ink-700); }
.pzw-button--ondark { border-color: var(--lz-brand-slate); background: transparent; color: var(--pz-text-inv); }
.pzw-button--ondark:hover { border-color: var(--lz-brand-light-slate); background: rgb(var(--pz-ink-rgb) / .6); }

/* O foco de um botão vê-se sempre, também num botão cheio: o anel claro nas
   superfícies claras e o escuro nas superfícies Ink. Vem depois dos botões,
   porque o laranja cheio tira a sombra a quem vier antes (WCAG 2.4.7). */
.pzw .pzln-button:focus-visible { outline: 0; box-shadow: var(--pz-focus); }
.pzw :is(.pzw-header, .pzw-taskbar, .pzw-hero, .pzw-intro, .pzw-pagehead, .pzw-showcase, .pzw-price__companies, .pzw-auth__aside, .pzw-track__aside, .pzw-start__aside, .pzw-footer, .pzw-status-page) .pzln-button:focus-visible { box-shadow: var(--pz-focus-dark); }

/* Ligação de texto: sublinhado que se acende ao passar. */
.pzw .pzln-text-link {
  min-height: 44px; font-size: 15px; font-weight: 600;
  text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 5px;
  text-decoration-color: var(--pz-border-strong);
  transition: text-decoration-color var(--pz-motion-micro) var(--pz-ease), color var(--pz-motion-micro) var(--pz-ease);
}
.pzw .pzln-text-link:hover { text-decoration-color: currentColor; }
.pzw-hero .pzln-text-link, .pzw-intro .pzln-text-link, .pzw-pagehead .pzln-text-link, .pzw-showcase .pzln-text-link, .pzw-price__companies .pzln-text-link { color: var(--pz-text-inv); text-decoration-color: var(--lz-brand-slate); }
.pzw-hero .pzln-text-link:hover, .pzw-intro .pzln-text-link:hover, .pzw-showcase .pzln-text-link:hover, .pzw-price__companies .pzln-text-link:hover { text-decoration-color: var(--pz-text-inv); }

/* ------------------------------------------------------------------ Cabeçalho */

.pzw-header { position: sticky; top: 0; z-index: 40; background: var(--pz-ink-900); box-shadow: inset 0 -1px 0 var(--pz-ink-700); }
.pzw-header__bar { position: relative; display: flex; align-items: center; gap: 16px; min-height: 72px; padding: 0 var(--pzw-gutter); }
/* Desenho da marca com 27,5px de altura (174px de largura). */
.pzw-header__brand { display: inline-flex; flex: none; align-items: center; min-height: 44px; }
.pzw-header__brand .pzln-product-brand { --lz-logo-height: 27.48px; }
.pzw-nav { display: flex; align-items: center; gap: 4px; margin-left: 28px; }
.pzw-nav a { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: var(--pz-r-sm); color: var(--lz-brand-light-slate); font-size: 15px; font-weight: 500; text-decoration: none; white-space: nowrap; transition: color var(--pz-motion-micro) var(--pz-ease); }
.pzw-nav a::after { content: ""; position: absolute; right: 12px; bottom: 7px; left: 12px; height: 2px; border-radius: 2px; background: var(--pz-text-inv); transform: scaleX(0); transform-origin: left; transition: transform var(--pz-motion-micro) var(--pz-ease), background-color var(--pz-motion-micro) var(--pz-ease); }
.pzw-nav a:hover { color: var(--pz-text-inv); }
.pzw-nav a:hover::after { transform: scaleX(1); background: var(--lz-brand-slate); }
.pzw-nav a[aria-current="page"] { color: var(--pz-text-inv); font-weight: 600; }
.pzw-nav a[aria-current="page"]::after { transform: scaleX(1); background: var(--pz-signal); }
.pzw-header__actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.pzw-header__actions .pzln-button { min-height: var(--pz-button-h); padding: 8px 18px; font-size: 14.5px; white-space: nowrap; }

/* A conta lê-se como conta: o símbolo da pessoa e "Entrar", num contorno
   como o das referências; com sessão diz "A minha área" e, por baixo, qual. */
.pzw-header__account { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 16px 0 6px; border-radius: var(--pz-button-radius); color: var(--pz-text-inv); font-size: 14.5px; font-weight: 600; text-decoration: none; white-space: nowrap; box-shadow: inset 0 0 0 1px var(--lz-brand-slate); transition: background-color var(--pz-motion-micro) var(--pz-ease), box-shadow var(--pz-motion-micro) var(--pz-ease), transform var(--pz-motion-micro) var(--pz-ease); }
.pzw-header__account:hover { background: var(--pz-ink-800); box-shadow: inset 0 0 0 1px var(--lz-brand-light-slate); }
.pzw-header__account:active { transform: scale(.98); }
.pzw-header__account[aria-current="page"] .pzw-account__label { box-shadow: inset 0 -2px 0 var(--pz-signal); }
.pzw-account__icon { display: inline-grid; flex: none; place-items: center; width: 32px; height: 32px; border-radius: var(--pz-r-full); background: var(--pz-ink-700); color: var(--pz-text-inv); }
.pzw-account__icon svg { width: 16px; height: 16px; }
.is-signed-in .pzw-account__icon { background: var(--pz-text-inv); color: var(--pz-ink-900); }
.pzw-account__text { display: grid; text-align: left; }
.pzw-account__label { font-size: 14.5px; font-weight: 600; line-height: 1.2; }
.pzw-account__area { color: var(--lz-brand-light-slate); font-size: 12px; font-weight: 500; line-height: 1.25; }

/* ---------------------------------------------------- Barra de separadores
   A navegação de um ecrã estreito, presa ao fundo (L01). Acima de 1000px a
   navegação está no cabeçalho e esta barra não existe. */
.pzw-tabbar { display: none; }

/* ------------------------------------------------------- Barra da tarefa */

.pzw-taskbar { position: sticky; top: 0; z-index: 40; background: var(--pz-ink-900); box-shadow: inset 0 -1px 0 var(--pz-ink-700); }
.pzw-taskbar__bar { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 12px; min-height: 64px; padding: 0 var(--pzw-gutter); }
.pzw-taskbar__start { display: flex; justify-content: flex-start; min-width: 0; }
.pzw-taskbar__end { display: flex; justify-content: flex-end; min-width: 0; }
.pzw-taskbar__back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-left: -8px; padding: 0 12px 0 8px; border-radius: var(--pz-r-sm); color: var(--pz-text-inv); font-size: 14.5px; font-weight: 600; text-decoration: none; transition: background-color var(--pz-motion-micro) var(--pz-ease); }
.pzw-taskbar__back:hover { background: var(--pz-ink-800); }
.pzw-taskbar__brand { display: inline-flex; align-items: center; min-height: 44px; }
.pzw-taskbar__brand .pzln-product-brand { --lz-logo-height: 22.57px; }
.pzw-taskbar__progress { display: flex; align-items: center; gap: 10px; margin: 0; color: var(--lz-brand-light-slate); font-size: 13px; font-weight: 600; white-space: nowrap; }
.pzw-taskbar__name { color: var(--pz-text-inv); }
.pzw-taskbar__dots { display: inline-flex; gap: 4px; }
.pzw-taskbar__dots i { display: block; width: 22px; height: 3px; border-radius: 2px; background: var(--pz-ink-700); }
.pzw-taskbar__dots i.is-on { background: var(--pz-signal); }

/* --------------------------------------------------------- Texto comum */

.pzw-lead { max-width: 60ch; margin: 18px 0 0; color: var(--pz-text-2); font-size: var(--type-lead-size); line-height: 1.6; }
.pzw-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 28px; }
.pzw-amount { font-size: var(--type-title-size); font-weight: 650; line-height: 1.05; letter-spacing: var(--type-title-tracking); font-variant-numeric: tabular-nums; white-space: nowrap; }

.pzw-status { display: inline-flex; align-items: center; gap: 8px; color: var(--pz-text-2); font-size: 13px; font-weight: 600; white-space: nowrap; }
.pzw-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--pz-text-4); }
.pzw-status.is-on { color: var(--pz-text); }
.pzw-status.is-on::before { background: var(--pz-signal); box-shadow: none; }

/* Um CTA indisponível é um facto dito, não um botão que não faz nada. */
.pzw-unavailable { display: grid; gap: 2px; margin: 0; padding: 14px 18px; border-radius: var(--pz-r-md); background: var(--pz-surface-3); }
.pzw-unavailable strong { color: var(--pz-text); font-size: 15px; font-weight: 600; }
.pzw-unavailable span { color: var(--pz-text-2); font-size: 14px; line-height: 1.5; }
.pzw-unavailable-block { display: grid; gap: 18px; max-width: 680px; }
.pzw-unavailable-block > p { margin: 0; color: var(--pz-text-2); font-size: 16px; }
.pzw-unavailable-block .pzw-actions { margin-top: 0; }
/* L09 (D-020): um serviço previsto, dito uma vez e com discrição na sua
   página: o estado numa frase, o que já pode ser pedido e o caminho até lá.
   Nada com forma de botão desligado. */
.pzw-planned { display: grid; gap: 12px; max-width: 640px; }
.pzw-planned__state { margin: 0; color: var(--pz-text); font-size: 18px; font-weight: 600; line-height: 1.45; letter-spacing: -.01em; }
.pzw-planned__now { margin: 0; color: var(--pz-text-2); font-size: 16px; }
.pzw-planned .pzw-actions { margin-top: 10px; }

.pzw-mail { color: var(--pz-text); font-size: 16px; font-weight: 650; letter-spacing: -.005em; text-decoration: underline; text-decoration-color: var(--pz-border-strong); text-underline-offset: 4px; overflow-wrap: anywhere; transition: text-decoration-color var(--pz-motion-micro) var(--pz-ease); }
.pzw-mail:hover { text-decoration-color: currentColor; }

/* Endosso discreto da casa: texto, secundário, nunca um logótipo. */
.pzw-endorse { display: inline-flex; align-items: center; gap: .32em; min-height: 32px; color: var(--lz-brand-light-slate); font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-decoration: none; }
.pzw-endorse span { font-weight: 500; letter-spacing: .02em; }
.pzw-endorse:hover { color: var(--pz-text-inv); text-decoration: underline; text-underline-offset: 3px; }

/* Estado de um objeto: ponto e palavra, nunca só a cor. */
.pzw-chip { display: inline-flex; align-items: center; gap: 7px; min-height: 26px; padding: 0 10px; border: 1px solid var(--pz-border); border-radius: var(--pz-r-full); background: var(--pz-surface-2); color: var(--pz-text-2); font-size: 12.5px; font-weight: 600; line-height: 1.2; white-space: nowrap; }
.pzw-chip__dot { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--pz-text-4); }
.pzw-chip.is-signal { color: var(--pz-text); }
.pzw-chip.is-signal .pzw-chip__dot { background: var(--pz-signal); }

/* --------------------------------------------------------------- Fotografia

   A fotografia vem já a duas tintas (o ficheiro); aqui só se põem as placas.
   A laranja multiplica-se sobre a imagem e deixa-a ler-se por baixo; a
   ardósia clareia-a. Ficam no seu próprio contexto de mistura (isolation),
   para nunca tingirem o que está fora da fotografia. A inclinação e o raio
   são os do símbolo, e o espaçamento também (L09, 2026-10-20): cada lugar diz
   só a largura da laranja (--pzw-plates-w) e a altura a que o par começa
   (--pzw-plates-y). O resto vem do símbolo: a ardósia começa um quinto para
   dentro e tem quatro quintos da largura, por isso as duas acabam na mesma
   margem, um sexto da largura para lá da fotografia; as duas têm de espessura
   metade da largura da laranja e ficam a meia placa uma da outra. Tudo se
   mede pela própria fotografia (o container), para valer em qualquer largura
   e altura de ecrã. */
.pzw-photo { position: relative; isolation: isolate; overflow: hidden; margin: 0; background: var(--lz-brand-deep-ink); container-type: inline-size; }
.pzw-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pzw-plate { position: absolute; z-index: 1; top: var(--pzw-plates-y); left: calc(100cqw - var(--pzw-plates-w) * .84); width: var(--pzw-plates-w); aspect-ratio: 2; border-radius: var(--pz-plate-radius); transform: skewY(var(--pz-plate-skew)); transform-origin: 0 0; pointer-events: none; }
.pzw-plate--signal { background: var(--pz-signal); mix-blend-mode: multiply; }
/* A ardósia: um quinto para dentro, quatro quintos da largura (a mesma espessura), e o topo uma espessura e
   meia abaixo do da laranja, mais o que a inclinação desce nesse quinto. */
.pzw-plate--slate { left: calc(100cqw - var(--pzw-plates-w) * .64); width: calc(var(--pzw-plates-w) * .8); aspect-ratio: 1.6; margin-top: calc(var(--pzw-plates-w) * (.75 + .2 * tan(var(--pz-plate-skew)))); background: var(--lz-brand-light-slate); mix-blend-mode: screen; opacity: .32; }

/* -------------------------------------------------------------------- Hero

   A abertura da homepage, em Ink: o texto do lado escuro, a fotografia a
   ocupar o resto do ecrã com as duas placas a atravessar a traseira do
   carro; a frente fica limpa. Sem preço. */
.pzw-hero { position: relative; isolation: isolate; display: grid; align-items: center; min-height: clamp(560px, calc(100svh - 72px), 720px); padding: clamp(40px, 6vw, 88px) var(--pzw-gutter); overflow: hidden; background: var(--pz-ink-900); }
.pzw-hero__photo { position: absolute; inset: 0 0 0 38%; z-index: -1; }
.pzw-hero__photo img { object-position: 44% 64%; }
.pzw-hero__photo::after { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: var(--pz-scrim-opening); }
.pzw-hero__photo { container-type: size; --pzw-plates-w: min(56cqw, 68cqh); --pzw-plates-y: 6%; }
.pzw-hero__text { position: relative; z-index: 1; max-width: 600px; }
.pzw-hero h1 { margin: 18px 0 0; font-size: var(--type-hero-size); font-weight: var(--type-hero-weight); line-height: 1.02; letter-spacing: var(--type-hero-tracking); }
.pzw-hero .pzw-lead { max-width: 44ch; margin-top: 22px; color: var(--pzw-on-dark); }
.pzw-hero__actions { margin-top: 34px; }
.pzw-hero__actions .pzln-button { min-height: var(--pz-button-h-lg); padding: 10px 24px; font-size: var(--pz-button-font-lg); }
.pzw-hero__track { margin: 26px 0 0; color: var(--pzw-on-dark); font-size: 15px; }
.pzw-hero__track a { color: var(--pz-text-inv); font-weight: 600; text-decoration: underline; text-decoration-color: var(--lz-brand-slate); text-decoration-thickness: 1.5px; text-underline-offset: 5px; transition: text-decoration-color var(--pz-motion-micro) var(--pz-ease); }
.pzw-hero__track a:hover { text-decoration-color: var(--pz-text-inv); }

/* ---------------------------------------------------------------- Secções */

.pzw-section { padding: var(--pzw-pad) var(--pzw-gutter); }
.pzw-section:not(.pzw-section--band) + .pzw-section:not(.pzw-section--band) { padding-top: 0; }
.pzw-section--band { background: var(--pz-band); }
.pzw-section__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 40px; margin-bottom: clamp(28px, 3vw, 44px); }
.pzw-section__title { max-width: 760px; }
.pzw-section__title .pzln-kicker + h2 { margin-top: 12px; }
.pzw-section__head h2, .pzw-final h2 { margin: 0; font-size: var(--type-title-size); font-weight: 650; line-height: 1.1; letter-spacing: var(--type-title-tracking); }
.pzw-section__lead { max-width: 62ch; margin: 14px 0 0; color: var(--pz-text-2); font-size: 16.5px; line-height: 1.6; }
.pzw-section__head > .pzln-text-link { flex: none; }
.pzw-section > .pzw-actions { margin-top: 28px; }

/* Duas colunas no eixo: o título à esquerda (cinco partes), o conteúdo à
   direita (sete). */
.pzw-section--split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; gap: 28px var(--pzw-gap); }
.pzw-section--split > .pzw-section__head { flex-direction: column; align-items: flex-start; margin: 0; }
/* As ações de uma secção em duas colunas ficam sob o conteúdo que continuam,
   na última coluna (a única, num ecrã estreito), nunca soltas sob o título. */
.pzw-section--split > .pzw-actions { grid-column: -2; margin-top: 0; }

/* Do pedido à conclusão: quatro momentos lado a lado sobre uma régua, cada um
   com o que acontece e o que fica na área da pessoa. Sem números. */
.pzw-section--moments { background: var(--pz-page); }
.pzw-moments { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; box-shadow: inset 0 2px 0 var(--pz-ink-900); }
.pzw-moments li { display: flex; flex-direction: column; min-width: 0; padding: 30px clamp(18px, 2vw, 32px) 4px 0; }
.pzw-moments li + li { padding-left: clamp(18px, 2vw, 32px); box-shadow: inset 1px 0 0 var(--pz-border); }
.pzw-moments h3 { margin: 0; font-size: clamp(20px, calc(15px + .6vw), 24px); font-weight: 650; line-height: 1.2; letter-spacing: -.02em; }
.pzw-moments p { margin: 12px 0 0; color: var(--pz-text-2); font-size: 15.5px; line-height: 1.6; }
.pzw-moments .pzw-moments__area { display: grid; gap: 3px; margin-top: auto; padding-top: 22px; color: var(--pz-text); font-size: 15px; font-weight: 600; line-height: 1.4; }
.pzw-moments__area span { color: var(--pz-text-3); font-size: 12.5px; font-weight: 600; letter-spacing: .02em; }

/* Sequência: uma lista ordenada lida de cima para baixo, sem números. Os
   passos da tarefa dizem "Passo n", as palavras da barra da tarefa. */
.pzw-seq { display: grid; max-width: 760px; margin: 0; padding: 0; list-style: none; }
.pzw-seq li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 20px 0 22px; box-shadow: inset 0 1px 0 var(--pz-border); }
.pzw-seq li:last-child { box-shadow: inset 0 1px 0 var(--pz-border), inset 0 -1px 0 var(--pz-border); }
.pzw-seq--steps li { grid-template-columns: 84px minmax(0, 1fr); gap: 16px; }
.pzw-seq__step { padding-top: 3px; color: var(--pz-signal-ink); font-size: 13px; font-weight: 650; letter-spacing: .02em; white-space: nowrap; }
.pzw-seq h3 { margin: 0; font-size: 18px; font-weight: 650; letter-spacing: -.012em; }
.pzw-seq p { max-width: 58ch; margin: 6px 0 0; color: var(--pz-text-2); font-size: 15.5px; line-height: 1.6; }

/* Como começa e documentação: a sequência à esquerda, o que ter à mão à
   direita. */
.pzw-how { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; gap: 32px var(--pzw-gap); }
.pzw-docnote { padding: clamp(24px, 2.4vw, 32px); border: 1px solid var(--pz-card-edge); border-radius: var(--pz-card-radius); background: var(--pz-surface); box-shadow: var(--pz-shadow-card); }
.pzw-docnote .pzln-kicker { color: var(--pz-text-3); }
.pzw-docnote h3 { margin: 10px 0 0; font-size: 21px; font-weight: 650; line-height: 1.25; letter-spacing: -.016em; }
.pzw-docnote > p { margin: 10px 0 0; color: var(--pz-text-2); font-size: 15.5px; line-height: 1.6; }
.pzw-docnote__list-title { margin: 22px 0 4px; color: var(--pz-text-3); font-size: 13px; font-weight: 600; }
.pzw-docnote .pzw-checklist { grid-template-columns: minmax(0, 1fr); }
.pzw-docnote .pzw-checklist li { padding: 10px 0 10px 22px; font-size: 15px; }
.pzw-docnote .pzw-checklist li::before { top: 20px; }
.pzw-coc { margin-top: 20px; padding-top: 18px; box-shadow: inset 0 1px 0 var(--pz-border); }
.pzw-coc h4 { margin: 0 0 6px; font-size: 15.5px; font-weight: 650; }
.pzw-coc p { margin: 0; color: var(--pz-text-2); font-size: 15px; line-height: 1.6; }
.pzw-docnote .pzw-actions { margin-top: 22px; }

/* O que o serviço inclui: a lista, e ao lado quem responde pelos atos. */
.pzw-scope { display: grid; gap: 22px; }
.pzw-scope .pzw-checklist { grid-template-columns: minmax(0, 1fr); }
.pzw-scope__note { display: grid; gap: 8px; justify-items: start; padding-top: 18px; box-shadow: inset 0 1px 0 var(--pz-border); }
.pzw-scope__note p { max-width: 60ch; margin: 0; color: var(--pz-text-2); font-size: 15px; line-height: 1.6; }

/* Factos curtos: tipografia sob uma régua curta, em Ink. */
.pzw-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 32px 48px; margin: 0; padding: 0; list-style: none; }
.pzw-grid h3 { margin: 0 0 8px; font-size: 17px; font-weight: 650; letter-spacing: -.012em; }
.pzw-grid h3::before { content: ""; display: block; width: 28px; height: 2px; margin-bottom: 16px; background: var(--pz-ink-900); }
.pzw-grid p { max-width: 46ch; margin: 0; color: var(--pz-text-2); font-size: 15.5px; line-height: 1.6; }

/* Duas colunas: uma frase que situa, e o conteúdo que ela explica. */
.pzw-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; gap: 24px var(--pzw-gap); }
.pzw-split__lead { max-width: 40ch; margin: 0; color: var(--pz-text); font-size: 19px; font-weight: 600; line-height: 1.45; letter-spacing: -.01em; }
.pzw-split__body { max-width: 60ch; margin: 0; color: var(--pz-text-2); font-size: 16.5px; line-height: 1.65; }

/* Lista simples: o traço curto é a marca da lista, sem pictogramas. */
.pzw-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; margin: 0; padding: 0; list-style: none; }
.pzw-checklist li { position: relative; padding: 12px 0 12px 22px; box-shadow: inset 0 -1px 0 var(--pz-divider); font-size: 15.5px; line-height: 1.5; }
.pzw-checklist li::before { content: ""; position: absolute; top: 23px; left: 0; width: 10px; height: 2px; background: var(--lz-brand-slate); }

/* ------------------------------------------------ A área pessoal (homepage)

   Em Ink: o texto do lado esquerdo, a área pessoal real num computador do
   lado direito. As placas do símbolo vivem só nas fotografias: no Ink, um
   degrau acima do Ink lia-se como uma costura e cortava os botões. */
.pzw-showcase { position: relative; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: 40px var(--pzw-gap); padding: var(--pzw-pad) var(--pzw-gutter); overflow: hidden; background: var(--pz-ink-900); }
.pzw-showcase h2 { margin: 0; font-size: var(--type-title-size); font-weight: 650; line-height: 1.1; letter-spacing: var(--type-title-tracking); }
.pzw-showcase .pzw-lead { max-width: 42ch; color: var(--pzw-on-dark); }

/* O computador: vidro escuro com a captura, aro de alumínio escuro e base
   clara, de frente, sem perspetiva nem reflexos. A sombra é a de um objeto
   pousado: curta por baixo e longa e suave. */
.pzw-device { margin: 0; }
.pzw-device__body { margin: 0 5.5%; padding: 1.6% 1.6% 2.2%; border-radius: 16px 16px 6px 6px; background: var(--pz-device-bezel); box-shadow: var(--pz-device-shadow); }
.pzw-device__screen { overflow: hidden; aspect-ratio: 16 / 10; border-radius: 3px; background: var(--pz-surface); }
.pzw-device__screen img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: left top; }
.pzw-device__base { position: relative; height: clamp(10px, 1.3vw, 18px); margin: 7px 0 0; border-radius: 2px 2px 18px 18px / 2px 2px 10px 10px; background: var(--pz-device-base); box-shadow: var(--pz-device-base-shadow); }
.pzw-device__base::before { content: ""; position: absolute; top: 0; left: 50%; width: 16%; height: 36%; border-radius: 0 0 8px 8px; background: var(--pz-device-base-lo); transform: translateX(-50%); }
.pzw-device figcaption { margin-top: 18px; color: var(--pzw-on-dark); font-size: 13.5px; text-align: center; }

/* ---------------------------------------------------- Empresas (homepage)

   O texto à esquerda, a frota à direita até à aresta do ecrã, nas
   proporções da referência escolhida. */
.pzw-feature { display: grid; grid-template-columns: var(--pzw-gutter) minmax(0, 500px) minmax(0, 1fr); align-items: stretch; min-height: clamp(400px, 34vw, 520px); background: var(--pz-surface); }
.pzw-feature__text { grid-column: 2; display: flex; flex-direction: column; justify-content: center; padding: var(--pzw-pad) var(--pzw-gap) var(--pzw-pad) 0; }
.pzw-feature__photo { grid-column: 3; }
.pzw-keep { white-space: nowrap; }
.pzw-feature h2 { margin: 12px 0 0; font-size: var(--type-title-size); font-weight: 650; line-height: 1.1; letter-spacing: var(--type-title-tracking); }
.pzw-feature .pzw-lead { max-width: 42ch; }
.pzw-feature__photo { min-height: 320px; }
.pzw-feature__photo img { object-position: 60% 40%; }
.pzw-feature__photo { --pzw-plates-w: 46cqw; --pzw-plates-y: -5%; }

/* ------------------------------------------------- Abertura das páginas

   L08: em Ink, como a homepage. Onde se está, o título, uma frase e, numa
   página que inicia alguma coisa, as ações; no serviço e nas empresas, a
   fotografia a duas tintas ao lado. As páginas legais mantêm a sua cabeça
   (.pzw-pagehead), com a mesma superfície. */
.pzw-intro, .pzw-pagehead { position: relative; isolation: isolate; padding: clamp(28px, 4vw, 56px) var(--pzw-gutter) clamp(40px, 5vw, 72px); overflow: hidden; background: var(--pz-ink-900); }
.pzw-intro h1, .pzw-pagehead h1 { max-width: 18em; margin: 12px 0 0; font-size: var(--type-display-size); font-weight: var(--type-display-weight); line-height: 1.04; letter-spacing: var(--type-display-tracking); }
.pzw-intro .pzw-lead, .pzw-pagehead .pzw-lead { max-width: 60ch; color: var(--pzw-on-dark); }
.pzw-intro__text { position: relative; z-index: 1; }
.pzw-intro .pzw-actions .pzln-button, .pzw-pagehead__actions .pzln-button { min-height: var(--pz-button-h-lg); padding: 10px 22px; font-size: var(--pz-button-font-lg); }
.pzw-intro--photo { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); align-items: center; gap: 32px; min-height: clamp(420px, 38vw, 540px); padding-top: clamp(28px, 3vw, 44px); padding-bottom: clamp(28px, 3vw, 44px); }
.pzw-intro--photo .pzw-intro__text { padding-block: clamp(12px, 2vw, 32px); }
.pzw-intro__photo { position: absolute; inset: 0 0 0 46%; z-index: -1; }
.pzw-intro__photo::after { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: var(--pz-scrim-intro); }
.pzw-photo--detalhe.pzw-intro__photo img { object-position: 30% 50%; }
.pzw-intro__photo { container-type: size; --pzw-plates-w: min(52cqw, 68cqh); --pzw-plates-y: 6%; }
.pzw-photo--detalhe.pzw-intro__photo { --pzw-plates-w: min(46cqw, 68cqh); --pzw-plates-y: 4%; }
.pzw-photo--empresas.pzw-intro__photo img { object-position: 70% 40%; }
.pzw-pagehead__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; }
.pzw-pagehead__note { display: flex; flex-wrap: wrap; align-items: center; gap: 0 8px; margin: 12px 0 0; color: var(--pzw-on-dark); font-size: 15px; }

.pzw-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 0 0 18px; padding: 0; color: var(--pz-text-3); font-size: 13.5px; list-style: none; }
.pzw-crumbs li + li::before { content: "/"; margin-right: 8px; color: var(--pz-text-4); }
.pzw-crumbs a { display: inline-block; margin: -6px 0; padding: 6px 0; color: var(--pz-text-2); text-underline-offset: 3px; }
.pzw-crumbs [aria-current="page"] { color: var(--pz-text); font-weight: 500; }
.pzw-intro .pzw-crumbs ol, .pzw-intro .pzw-crumbs a, .pzw-pagehead .pzw-crumbs ol, .pzw-pagehead .pzw-crumbs a { color: var(--pzw-on-dark); }
.pzw-intro .pzw-crumbs li + li::before, .pzw-pagehead .pzw-crumbs li + li::before { color: var(--lz-brand-slate); }
.pzw-intro .pzw-crumbs [aria-current="page"], .pzw-pagehead .pzw-crumbs [aria-current="page"] { color: var(--pz-text-inv); }

/* ------------------------------------------------------- Preço e empresas

   O preço do serviço, uma vez e só nesta página, com quem o paga e o que
   cobre; à parte, por linhas, o que nunca faz parte dele; ao lado, em Ink, o
   facto de as empresas terem condições próprias. */
.pzw-price { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; gap: 20px; }
.pzw-price h2 { margin: 0; }
.pzw-price__service, .pzw-price__companies { padding: clamp(24px, 3vw, 44px); border-radius: var(--pz-card-radius); }
.pzw-price__service { border: 1px solid var(--pz-card-edge); background: var(--pz-surface); box-shadow: var(--pz-shadow-card); }
.pzw-price__companies { display: flex; flex-direction: column; background: var(--pz-ink-900); }
.pzw-price__amount { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin: 14px 0 0; }
.pzw-price__amount .pzw-amount { font-size: clamp(48px, calc(30px + 2.6vw), 72px); line-height: 1; letter-spacing: -.04em; }
.pzw-price__amount span { color: var(--pz-text-2); font-size: 16px; font-weight: 600; }
.pzw-price__pending { margin: 14px 0 0; font-size: 22px; font-weight: 650; line-height: 1.25; }
.pzw-price__for { margin: 12px 0 0; font-size: 16.5px; font-weight: 600; }
.pzw-price__note { max-width: 56ch; margin: 8px 0 0; color: var(--pz-text-2); font-size: 15px; line-height: 1.6; }
/* O que o preço inclui e o que fica à parte, lado a lado, nas palavras de L01
   e L07: as despesas de terceiros nunca se dizem incluídas nem excluídas
   (D-PRICING-06). */
.pzw-price__scope { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 32px; margin-top: 28px; }
.pzw-price__scope h3 { margin: 0 0 4px; color: var(--pz-text-3); font-size: 13px; font-weight: 600; }
.pzw-price__scope .pzw-checklist { grid-template-columns: minmax(0, 1fr); }
.pzw-price__service .pzw-actions { margin-top: 30px; }
.pzw-price__statement { max-width: 24ch; margin: 14px 0 0; font-size: clamp(22px, 2vw, 27px); font-weight: 650; line-height: 1.22; letter-spacing: -.018em; }
.pzw-price__text { max-width: 44ch; margin: 14px 0 0; color: var(--pzw-on-dark); font-size: 15.5px; line-height: 1.6; }
.pzw-price__companies .pzw-actions { margin-top: auto; padding-top: 28px; }

/* ------------------------------------------------------ Área da empresa

   A lista de processos de uma empresa: uma faixa de indicadores e as
   viaturas, cada uma com o estado e a próxima ação. Fictícia, e di-lo. */
.pzw-preview { min-width: 0; margin: 0; }
.pzw-preview__card { overflow: hidden; border: 1px solid var(--pz-card-edge); border-radius: var(--pz-card-radius); background: var(--pz-surface); color: var(--pz-text); box-shadow: var(--pz-shadow-raised); }
.pzw-preview figcaption { margin-top: 12px; color: var(--pz-text-3); font-size: 13.5px; }
.pzw-preview__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px 16px; padding: 20px 24px 18px; box-shadow: inset 0 -1px 0 var(--pz-divider); }
.pzw-preview__kicker { display: block; color: var(--pz-text-3); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.pzw-preview__title { display: block; margin-top: 6px; font-size: 20px; font-weight: 650; letter-spacing: -.014em; }
.pzw-preview__org { display: block; color: var(--pz-text-2); font-size: 14px; white-space: nowrap; }
.pzw-partner__strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; box-shadow: inset 0 -1px 0 var(--pz-divider); }
.pzw-partner__strip > div { padding: 14px 18px 16px; }
.pzw-partner__strip > div + div { box-shadow: inset 1px 0 0 var(--pz-divider); }
.pzw-partner__strip > .is-signal { box-shadow: inset 0 2px 0 var(--pz-signal); }
.pzw-partner__strip > .is-signal + div { box-shadow: inset 1px 0 0 var(--pz-divider); }
.pzw-partner__strip dt { color: var(--pz-text-3); font-size: 12.5px; font-weight: 600; line-height: 1.3; }
.pzw-partner__strip dd { margin: 4px 0 0; font-size: 24px; font-weight: 650; line-height: 1.1; font-variant-numeric: tabular-nums; }
.pzw-partner__head, .pzw-partner__rows li { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1.3fr); align-items: center; gap: 12px; padding: 0 24px; }
.pzw-partner__head { min-height: 38px; background: var(--pz-surface-2); color: var(--pz-text-3); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; box-shadow: inset 0 -1px 0 var(--pz-divider); }
.pzw-partner__rows { margin: 0; padding: 0; list-style: none; }
.pzw-partner__rows li { min-height: 62px; padding-top: 10px; padding-bottom: 10px; font-size: 14px; box-shadow: inset 0 -1px 0 var(--pz-divider); }
.pzw-partner__rows li:last-child { box-shadow: none; }
.pzw-partner__rows li.is-yours { box-shadow: inset 3px 0 0 var(--pz-signal), inset 0 -1px 0 var(--pz-divider); }
.pzw-partner__rows li.is-yours:last-child { box-shadow: inset 3px 0 0 var(--pz-signal); }
.pzw-partner__vehicle { display: grid; min-width: 0; }
.pzw-partner__vehicle strong { font-weight: 600; line-height: 1.3; }
.pzw-partner__vehicle span { color: var(--pz-text-3); font-size: 12.5px; }
.pzw-partner__state { min-width: 0; }
.pzw-partner__state .pzw-chip { max-width: 100%; padding-top: 3px; padding-bottom: 3px; white-space: normal; }
.pzw-partner__next { color: var(--pz-text-2); line-height: 1.45; }
.pzw-partner__label { display: none; }

/* Empresas: como a empresa trabalha, quatro afirmações curtas. */
.pzw-capabilities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 56px; margin: 0; padding: 0; list-style: none; }
.pzw-capabilities li { padding: 22px 0 24px; box-shadow: inset 0 1px 0 var(--pz-border); }
.pzw-capabilities h3 { margin: 0 0 8px; font-size: 18px; font-weight: 650; letter-spacing: -.012em; }
.pzw-capabilities p { max-width: 46ch; margin: 0; color: var(--pz-text-2); font-size: 15.5px; line-height: 1.6; }

/* Assinatura: como se assina, e a garantia dita por extenso. */
.pzw-signing > p:first-child { max-width: 62ch; margin: 0; color: var(--pz-text-2); font-size: 16.5px; line-height: 1.65; }
.pzw-guard { display: flex; align-items: flex-start; gap: 12px; max-width: 820px; margin: 20px 0 0; padding: 16px 18px; border: 1px solid var(--pz-card-edge); border-radius: var(--pz-r-md); background: var(--pz-surface); color: var(--pz-text); font-size: 15px; font-weight: 600; line-height: 1.5; }
.pzw-guard svg { margin-top: 2px; }

/* Perguntas: uma lista compacta de divulgações nativas, alinhadas à direita
   do título, sem cartões. O sinal laranja marca a pergunta aberta. */
.pzw-faq { box-shadow: inset 0 1px 0 var(--pz-border-strong); }
.pzw-faq__item { box-shadow: inset 0 -1px 0 var(--pz-border); }
.pzw-faq__item summary { position: relative; display: flex; align-items: center; min-height: 60px; padding: 16px 52px 16px 0; font-size: 16.5px; font-weight: 600; line-height: 1.4; list-style: none; cursor: pointer; transition: color var(--pz-motion-micro) var(--pz-ease); }
.pzw-faq__item summary::-webkit-details-marker { display: none; }
.pzw-faq__item summary::after { content: ""; position: absolute; top: 50%; right: 14px; width: 9px; height: 9px; border-right: 2px solid var(--pz-text-2); border-bottom: 2px solid var(--pz-text-2); transform: translateY(-70%) rotate(45deg); transition: transform var(--pz-motion-micro) var(--pz-ease), border-color var(--pz-motion-micro) var(--pz-ease); }
.pzw-faq__item summary:hover { color: var(--pz-ink-900); }
.pzw-faq__item summary:hover::after { border-color: var(--pz-ink-900); }
.pzw-faq__item[open] summary::after { border-color: var(--pz-signal); transform: translateY(-25%) rotate(-135deg); }
.pzw-faq__item summary:focus-visible { outline: 0; box-shadow: var(--pz-focus); border-radius: var(--pz-r-xs); }
.pzw-faq__item p { max-width: 66ch; margin: 0; padding: 0 52px 22px 0; color: var(--pz-text-2); font-size: 16px; line-height: 1.65; }

/* Ajuda: o índice dos assuntos ao lado das respostas. */
.pzw-help-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); align-items: start; gap: 32px var(--pzw-gap); }
.pzw-help__index ul { display: grid; gap: 2px; margin: 0 0 0 -14px; padding: 0; list-style: none; }
.pzw-help__index a { display: flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: var(--pz-r-sm); color: var(--pz-text-2); font-size: 15px; font-weight: 600; text-decoration: none; transition: background-color var(--pz-motion-micro) var(--pz-ease), color var(--pz-motion-micro) var(--pz-ease); }
.pzw-help__index a:hover { background: var(--pz-band); color: var(--pz-text); }
.pzw-help { display: grid; gap: clamp(40px, 4vw, 56px); max-width: 860px; }
.pzw-help__group h2 { margin: 0 0 14px; font-size: 22px; font-weight: 650; letter-spacing: -.018em; }

/* Fecho: a próxima ação real da página, numa faixa um degrau abaixo da
   página. O Ink fecha o site só no rodapé: duas faixas escuras seguidas
   liam-se como uma só. */
.pzw-final { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 22px 48px; margin: 0; padding: clamp(44px, 5vw, 72px) var(--pzw-gutter); background: var(--pz-band); color: var(--pz-text); }
.pzw-final__text { max-width: 640px; }
.pzw-final p { margin: 12px 0 0; color: var(--pz-text-2); font-size: 17px; }
.pzw-final .pzw-actions { flex: none; margin-top: 0; }
.pzw-final .pzw-actions .pzln-button { min-height: var(--pz-button-h-lg); font-size: var(--pz-button-font-lg); }

/* Contactos: o formulário e, ao lado, o endereço geral, o processo em curso
   e a proteção de dados. */
.pzw-contact-layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; gap: 32px var(--pzw-gap); }
.pzw-contact-layout__title { margin: 0 0 4px; color: var(--pz-text-3); font-size: 13px; font-weight: 600; }
.pzw-channels { display: grid; margin: 0; }
.pzw-channels > div { padding: 14px 0 18px; box-shadow: inset 0 -1px 0 var(--pz-border); }
.pzw-channels dt { color: var(--pz-text-3); font-size: 13px; font-weight: 600; }
.pzw-channels dd { display: grid; gap: 2px; margin: 4px 0 0; }
.pzw-channels dd span { color: var(--pz-text-2); font-size: 14.5px; line-height: 1.5; }
.pzw-channels .pzw-mail { font-size: 18px; }
.pzw-contacts { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.pzw-contacts li { padding: 22px 0 24px; box-shadow: inset 0 -1px 0 var(--pz-border); }
.pzw-contacts li:last-child { box-shadow: none; }
.pzw-contacts h3 { margin: 0 0 6px; font-size: 16.5px; font-weight: 650; }
.pzw-contacts p { max-width: 42ch; margin: 0 0 14px; color: var(--pz-text-2); font-size: 15px; line-height: 1.55; }
.pzw-contacts .pzw-mail { font-size: 16px; }

/* ---------------------------------------------------------------- Contacto -
   Uma pessoa escreve uma vez e diz sobre o que é. O formulário nunca leva um
   endereço: o assunto é a única coisa a escolher. */
.pzw-contact { display: grid; gap: 24px; padding: clamp(22px, 2.8vw, 36px); border: 1px solid var(--pz-card-edge); border-radius: var(--pz-card-radius); background: var(--pz-surface); box-shadow: var(--pz-shadow-card); }
.pzw-contact > .pzln-notice { margin: 0; }
.pzw-contact__subjects { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.pzw-contact__subjects legend { grid-column: 1 / -1; padding: 0 0 12px; font-size: 16.5px; font-weight: 650; letter-spacing: -.01em; }
.pzw-contact__subject { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; padding: 13px 14px; border: 1px solid var(--pz-border); border-radius: var(--pz-r-md); background: var(--pz-surface); cursor: pointer; transition: background-color var(--pz-motion-micro) var(--pz-ease), border-color var(--pz-motion-micro) var(--pz-ease), box-shadow var(--pz-motion-micro) var(--pz-ease); }
.pzw-contact__subject:hover { border-color: var(--pz-border-strong); background: var(--pz-surface-2); }
.pzw-contact__subject input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--pz-orange-600); }
.pzw-contact__subject strong { display: block; font-size: 15px; font-weight: 650; }
.pzw-contact__subject small { display: block; margin-top: 3px; color: var(--pz-text-2); font-size: 13.5px; line-height: 1.45; }
.pzw-contact__subject:has(input:checked) { border-color: var(--pz-ink-900); background: var(--pz-surface-2); box-shadow: inset 3px 0 0 var(--pz-signal); }
.pzw-contact__subject:has(input:focus-visible) { box-shadow: var(--pz-focus); }

.pzw-contact__who { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.pzw-contact__field { display: grid; gap: 6px; min-width: 0; }
.pzw-contact__field > span { color: var(--pz-text); font-size: 14px; font-weight: 600; }
.pzw-contact__field input, .pzw-contact__field select, .pzw-contact__field textarea { width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid var(--pz-border-strong); border-radius: var(--pz-r-md); background: var(--pz-surface); color: var(--pz-text); font: inherit; font-size: 16px; transition: border-color var(--pz-motion-micro) var(--pz-ease), box-shadow var(--pz-motion-micro) var(--pz-ease); }
.pzw-contact__field input:hover, .pzw-contact__field select:hover, .pzw-contact__field textarea:hover { border-color: var(--pz-text-2); }
.pzw-contact__field textarea { min-height: 160px; resize: vertical; line-height: 1.55; }
.pzw-contact__field input:focus-visible, .pzw-contact__field select:focus-visible, .pzw-contact__field textarea:focus-visible { outline: 0; border-color: var(--pz-ink-900); box-shadow: var(--pz-focus); }
.pzw-contact__field input[readonly] { background: var(--pz-surface-3); color: var(--pz-text-2); }
.pzw-contact__note { margin: -12px 0 0; color: var(--pz-text-3); font-size: 13.5px; }
.pzw-contact__send { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.pzw-contact__send p { max-width: 46ch; margin: 0; color: var(--pz-text-3); font-size: 13.5px; }
.pzw-contact__done { padding: clamp(24px, 3vw, 40px); border: 1px solid var(--pz-card-edge); border-radius: var(--pz-card-radius); background: var(--pz-surface); box-shadow: var(--pz-shadow-card); }
.pzw-contact__done h3 { margin: 0 0 10px; font-size: clamp(20px, 2vw, 24px); font-weight: 650; letter-spacing: -.018em; }
.pzw-contact__done p { max-width: 62ch; margin: 0; color: var(--pz-text-2); font-size: 15.5px; }

.pzw-table-wrap { overflow-x: auto; border: 1px solid var(--pz-card-edge); border-radius: var(--pz-r-lg); background: var(--pz-surface); }
.pzw-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.pzw-table th, .pzw-table td { padding: 14px 20px; text-align: left; vertical-align: top; }
.pzw-table thead th { color: var(--pz-text-3); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.pzw-table tbody tr > * { box-shadow: inset 0 1px 0 var(--pz-divider); }
.pzw-table tbody th { font-weight: 600; }
.pzw-table code { font-size: 13.5px; }

/* ------------------------------------------------------------------ Legal

   Um documento para ler: medida de leitura, títulos com ar por cima, o
   estado do documento à cabeça e as marcas "Em validação" como factos. A
   marcação destas páginas não muda (a impressão de um consentimento é tirada
   sobre ela); muda só a forma. */
.pzw-legal { padding: var(--pzw-pad) var(--pzw-gutter); }
.pzw-legal__updated { max-width: 820px; margin: 0 0 16px; color: var(--pz-text-3); font-size: 13.5px; }
.pzw-callout { display: grid; gap: 6px; max-width: 820px; padding: 18px 22px; border: 1px solid var(--pz-card-edge); border-radius: var(--pz-r-lg); background: var(--pz-surface); box-shadow: inset 3px 0 0 var(--pz-text-4); }
.pzw-callout--pending { box-shadow: inset 3px 0 0 var(--pz-ink-900); }
.pzw-callout strong { font-size: 15.5px; font-weight: 650; }
.pzw-callout p { margin: 0; color: var(--pz-text-2); font-size: 15px; line-height: 1.6; }
.pzw-legal .pzw-callout { margin-bottom: 20px; }
.pzw-legal__doc { max-width: 820px; padding: clamp(26px, 4vw, 56px); border: 1px solid var(--pz-card-edge); border-radius: var(--pz-card-radius); background: var(--pz-surface); box-shadow: var(--pz-shadow-card); }
.pzw-legal__section + .pzw-legal__section { margin-top: 36px; padding-top: 32px; box-shadow: inset 0 1px 0 var(--pz-divider); }
.pzw-legal__section h2 { margin: 0 0 12px; font-size: 20px; font-weight: 650; letter-spacing: -.014em; }
.pzw-legal__section p, .pzw-legal__section li { color: var(--pz-text-2); font-size: 16px; line-height: 1.7; }
.pzw-legal__section p { max-width: 62ch; margin: 0 0 10px; }
.pzw-legal__section ul { max-width: 62ch; margin: 0; padding-left: 20px; }
.pzw-legal__section li + li { margin-top: 6px; }
.pzw-legal__section .pzw-table-wrap { border: 0; background: var(--pz-bg); }
.pzw-pending { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.pzw-pending span { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border: 1px solid var(--pz-border); border-radius: var(--pz-r-full); background: var(--pz-surface-2); color: var(--pz-text-2); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }

/* ----------------------------------------------------------------- Estado */

.pzw-status-page { min-height: 56vh; padding: clamp(48px, 8vw, 112px) var(--pzw-gutter); background: var(--pz-ink-900); color: var(--pz-text-inv); }
.pzw-status-page .pzln-kicker { color: var(--pzw-on-dark); }
.pzw-status-page h1 { max-width: 22ch; margin: 14px 0 0; font-size: var(--type-display-size); font-weight: var(--type-display-weight); line-height: 1.05; letter-spacing: var(--type-display-tracking); }
.pzw-status-page .pzw-lead { color: var(--pzw-on-dark); }
.pzw-status-page__links { display: flex; flex-wrap: wrap; gap: 10px; margin: 32px 0 0; padding: 0; list-style: none; }
.pzw-status-page__links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: var(--pz-button-radius); box-shadow: inset 0 0 0 1px var(--lz-brand-slate); color: var(--pz-text-inv); font-weight: 600; text-decoration: none; transition: background-color var(--pz-motion-micro) var(--pz-ease), box-shadow var(--pz-motion-micro) var(--pz-ease); }
.pzw-status-page__links a:hover { background: var(--pz-ink-800); box-shadow: inset 0 0 0 1px var(--lz-brand-light-slate); }
.pzw-status-page :focus-visible { outline: 0; box-shadow: var(--pz-focus-dark); }

/* ------------------------------------------------- Iniciar serviço (fluxo) */

.pzw-flow { padding: clamp(28px, 5vw, 64px) var(--pzw-gutter) var(--pzw-pad); }
.pzw-gate { max-width: 1040px; margin: 0 auto; }
.pzw-start__head { max-width: 700px; }
.pzw-start__head h1 { margin: 12px 0 0; font-size: var(--type-title-size); font-weight: 650; line-height: 1.08; letter-spacing: var(--type-title-tracking); }
.pzw-start__foot { margin: 24px 0 0; color: var(--pz-text-2); font-size: 15px; }
.pzw-start__foot a { color: var(--pz-text); font-weight: 600; text-underline-offset: 4px; }

/* A decisão na composição das contas: a pergunta em Ink, os serviços no
   painel da tarefa, cada um com o seu estado, o começo e a ação. */
.pzw-start { display: grid; grid-template-columns: minmax(0, .74fr) minmax(0, 1.6fr); max-width: 1200px; margin: 0 auto; overflow: hidden; border-radius: var(--pz-card-radius); background: var(--pz-surface); }
.pzw-start__aside { display: flex; flex-direction: column; padding: clamp(28px, 3.6vw, 48px); background: var(--pz-ink-900); }
.pzw-start__aside h1 { max-width: 12ch; margin: 14px 0 0; font-size: var(--type-title-size); font-weight: 650; line-height: 1.06; letter-spacing: var(--type-title-tracking); }
.pzw-start__aside .pzw-lead { max-width: 30ch; color: var(--pzw-on-dark); font-size: 16px; }
.pzw-start__aside .pzw-start__foot { margin-top: auto; padding-top: 40px; color: var(--pzw-on-dark); line-height: 2.2; }
.pzw-start__aside .pzw-start__foot a { color: var(--pz-text-inv); }
.pzw-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 12px; list-style: none; }
.pzw-choice { display: flex; flex-direction: column; padding: clamp(22px, 2.6vw, 34px); border-radius: var(--pz-r-xl); background: var(--pz-surface); }
.pzw-choice.is-reserved { background: var(--pz-bg); }
.pzw-choice h2 { margin: 0; font-size: 21px; font-weight: 650; letter-spacing: -.02em; }
.pzw-choice__main p { max-width: 40ch; margin: 10px 0 0; color: var(--pz-text-2); font-size: 15.5px; }
.pzw-choice__facts { display: grid; gap: 10px; margin: 22px 0 0; }
.pzw-choice__facts > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; }
.pzw-choice__facts dt { color: var(--pz-text-3); font-size: 14px; font-weight: 500; }
.pzw-choice__facts dd { margin: 0; font-size: 15px; font-weight: 600; }
.pzw-choice__action { margin-top: auto; padding-top: 26px; }
.pzw-choice__action .pzln-button { width: 100%; min-height: var(--pz-button-h-lg); font-size: var(--pz-button-font-lg); }
/* Sem início possível, a ação é conhecer o serviço: texto, no lugar do botão. */
.pzw-choice__action .pzln-text-link { display: flex; align-items: center; justify-content: center; min-height: var(--pz-button-h-lg); font-size: 15px; }
/* L09 (D-020): com um só serviço que pode ser pedido, a escolha é esse
   serviço, a toda a largura do painel, e um serviço previsto é uma linha por
   baixo, nunca um cartão ao lado com o mesmo peso. */
.pzw-start__options { display: flex; flex-direction: column; min-width: 0; }
.pzw-choices--one { grid-template-columns: minmax(0, 1fr); }
.pzw-choices--one .pzw-choice__facts { max-width: 420px; }
.pzw-choices--one .pzw-choice__action .pzln-button { width: auto; min-width: 240px; }
.pzw-start__later { display: grid; gap: 4px; justify-items: start; margin: 0; padding: 6px clamp(34px, 3.8vw, 46px) clamp(26px, 3vw, 38px); color: var(--pz-text-2); font-size: 15px; line-height: 1.55; }
.pzw-start__later strong { color: var(--pz-text-3); font-size: 12px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.pzw-start__later .pzln-text-link { margin-top: 6px; font-size: 15px; }

.pzw-gate__paths { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.pzw-gate__path { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(22px, 3vw, 34px); border-radius: var(--pz-card-radius); background: var(--pz-surface); }
.pzw-gate__path h2 { margin: 0; font-size: 21px; font-weight: 650; letter-spacing: -.016em; }
.pzw-gate__path p { flex-grow: 1; margin: 8px 0 0; color: var(--pz-text-2); font-size: 15.5px; }
.pzw-gate__path .pzln-button { min-width: 200px; margin-top: 22px; }
.pzw-gate--unavailable .pzw-unavailable { max-width: 620px; margin-top: 28px; }

.pzw-panel { max-width: 640px; margin-top: 32px; padding: clamp(24px, 3vw, 38px); border-radius: var(--pz-card-radius); background: var(--pz-surface); }
.pzw-form__fact { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin: 0 0 4px; padding: 12px 16px; border-radius: var(--pz-r-md); background: var(--pz-bg); }
.pzw-form__fact span { color: var(--pz-text-2); font-size: 14px; }
.pzw-form__hint, .pzw-auth__hint { margin: 6px 0 0; color: var(--pz-text-3); font-size: 13.5px; }

/* -------------------------------------------------------------- Formulários */

.pzw-auth__form, .pzw-form { display: grid; }
.pzw-auth__form > label:not(.pzln-check), .pzw-form > label:not(.pzln-check) { display: block; margin: 20px 0 6px; color: var(--pz-text); font-size: 14px; font-weight: 600; }
.pzw-auth__form > label:not(.pzln-check):first-of-type, .pzw-form > label:not(.pzln-check):first-of-type { margin-top: 0; }
.pzw-form .pzw-form__fact + label { margin-top: 18px; }
.pzw-auth__form input:not([type="checkbox"]):not([type="hidden"]),
.pzw-form input:not([type="checkbox"]):not([type="hidden"]),
.pzw-form select {
  width: 100%; min-height: 48px; padding: 11px 14px;
  border: 1px solid var(--pz-border-strong); border-radius: var(--pz-r-md);
  background: var(--pz-surface); color: var(--pz-text); font-size: 16px;
  transition: border-color var(--pz-motion-micro) var(--pz-ease), box-shadow var(--pz-motion-micro) var(--pz-ease);
}
.pzw-auth__form input:not([type="checkbox"]):not([type="hidden"]):hover, .pzw-form input:not([type="checkbox"]):not([type="hidden"]):hover, .pzw-form select:hover { border-color: var(--pz-text-2); }
.pzw-auth__form input:focus, .pzw-form input:focus, .pzw-form select:focus { outline: none; border-color: var(--pz-ink-900); box-shadow: var(--pz-focus); }
.pzw-auth__form input:disabled { background: var(--pz-surface-3); color: var(--pz-text-2); }
.pzw-auth__form .pzln-check, .pzw-form .pzln-check { align-items: flex-start; margin-top: 18px; }
.pzw-auth__form .pzln-check input, .pzw-form .pzln-check input { margin-top: 2px; }
.pzw-auth__form .pzln-check span, .pzw-form .pzln-check span { font-size: 14.5px !important; line-height: 1.5; }
.pzw-auth__form .pzln-check a, .pzw-form .pzln-check a { font-weight: 600; text-underline-offset: 3px; }
.pzw-auth__form > .pzln-button, .pzw-form > .pzln-button { min-height: var(--pz-button-h-lg); margin-top: 26px; font-size: var(--pz-button-font-lg); }
.pzw-form .pzln-notice { margin-bottom: 18px; }

/* Mostrar palavra-passe: só existe quando o script a pode cumprir. */
.pzln-password { position: relative; display: block; }
.pzln-password__toggle { display: none; }
.pzln-password:not(.is-enhanced) input { padding-right: 14px !important; }
.pzln-password.is-enhanced input { padding-right: 96px !important; }
.pzln-password.is-enhanced .pzln-password__toggle { position: absolute; top: 2px; right: 2px; bottom: 2px; display: inline-flex; align-items: center; min-width: 76px; padding: 0 12px; border: 0; border-radius: var(--pz-r-sm); background: transparent; color: var(--pz-text-2); font-size: 13.5px; font-weight: 600; cursor: pointer; transition: background-color var(--pz-motion-micro) var(--pz-ease), color var(--pz-motion-micro) var(--pz-ease); }
.pzln-password.is-enhanced .pzln-password__toggle:hover { background: var(--pz-surface-3); color: var(--pz-text); }

/* ------------------------------------------------------------------- Acesso

   As contas são o mesmo produto: o lado Ink diz quem entra, o lado claro é a
   tarefa. */
.pzw-flow--auth { padding-top: clamp(24px, 4vw, 56px); }
.pzw-auth { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); max-width: 1080px; margin: 0 auto; overflow: hidden; border-radius: var(--pz-card-radius); background: var(--pz-surface); }
.pzw-auth__aside { display: flex; flex-direction: column; padding: clamp(28px, 4vw, 52px); background: var(--pz-ink-900); }
.pzw-auth__claim { max-width: 18ch; margin: 14px 0 0; font-size: clamp(24px, 2.5vw, 32px); font-weight: 650; line-height: 1.14; letter-spacing: -.024em; }
.pzw-auth__facts { display: grid; gap: 22px; margin: 40px 0 0; }
.pzw-auth__facts dt { font-size: 15px; font-weight: 650; }
.pzw-auth__facts dd { margin: 4px 0 0; color: var(--pzw-on-dark); font-size: 14.5px; line-height: 1.55; }
.pzw-auth__endorse { display: flex; flex-wrap: wrap; align-items: center; gap: 0 10px; margin: auto 0 0; padding-top: 40px; color: var(--pz-text-inv); font-size: 12.5px; font-weight: 600; letter-spacing: .06em; }
.pzw-auth__panel { padding: clamp(28px, 4vw, 56px); }
.pzw-auth__panel .pzln-kicker { color: var(--pz-text-3); }
.pzw-auth__panel h1 { margin: 12px 0 24px; font-size: var(--type-title-size); font-weight: 650; line-height: 1.1; letter-spacing: var(--type-title-tracking); }
.pzw-auth__text { margin: 0 0 20px; color: var(--pz-text-2); font-size: 15.5px; }
.pzw-auth__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 16px; margin-top: 14px; }
.pzw-auth__row .pzln-check { margin-top: 0; }
.pzw-auth__recover { display: inline-flex; align-items: center; min-height: 44px; color: var(--pz-text); font-size: 14.5px; font-weight: 600; text-underline-offset: 4px; }
.pzw-auth__alt { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; margin-top: 28px; padding: 18px 20px; border-radius: var(--pz-r-lg); background: var(--pz-bg); }
.pzw-auth__alt p { max-width: 36ch; margin: 0; color: var(--pz-text-2); font-size: 14.5px; }
.pzw-auth__alt strong { display: block; color: var(--pz-text); }
.pzw-auth__links { margin: 22px 0 0; color: var(--pz-text-2); font-size: 15px; }
.pzw-auth__links a { color: var(--pz-text); font-weight: 600; text-underline-offset: 4px; }
.pzw-auth .pzln-notice { margin-bottom: 18px; }

/* Acompanhar: a entrada primeiro, quem entra ao lado. */
.pzw-track { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); max-width: 1080px; margin: clamp(24px, 4vw, 56px) auto var(--pzw-pad); overflow: hidden; border-radius: var(--pz-card-radius); background: var(--pz-surface); }
.pzw-track__panel { padding: clamp(28px, 4vw, 56px); }
.pzw-track__panel .pzln-kicker { color: var(--pz-text-3); }
.pzw-track__panel .pzw-crumbs ol { margin-bottom: 18px; }
.pzw-track__panel h1 { margin: 12px 0 12px; font-size: var(--type-title-size); font-weight: 650; line-height: 1.1; letter-spacing: var(--type-title-tracking); }
.pzw-track__aside { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 4vw, 52px); background: var(--pz-ink-900); }
.pzw-track__aside .pzw-auth__facts { margin: 0; }
.pzw-track__aside a { color: var(--pz-text-inv); font-weight: 600; text-underline-offset: 3px; }

/* ----------------------------------------------------------------- Rodapé

   Compacto e escuro, como o proprietário o escolheu: a marca com o endosso e
   o descritor; o serviço, a área de quem já é cliente, os textos legais e o
   endereço geral; e a linha de quem explora o serviço. */
.pzw-footer { padding: clamp(44px, 5vw, 72px) var(--pzw-gutter) 28px; background: var(--lz-brand-deep-ink); color: var(--lz-brand-light-slate); box-shadow: inset 0 1px 0 var(--pz-ink-700); }
.pzw-footer__top { display: grid; grid-template-columns: minmax(200px, 3fr) minmax(0, 9fr); gap: 32px var(--pzw-gap); }
.pzw-footer__nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(200px, 1.3fr); gap: 28px 32px; }
.pzw-footer__lockup { display: grid; justify-items: start; }
.pzw-footer__brand .pzln-product-brand { --lz-logo-height: 21.59px; min-height: 44px; }
.pzw-footer__lockup .pzw-endorse { margin-top: -4px; }
.pzw-footer__brand p { max-width: 30ch; margin: 10px 0 0; font-size: 14.5px; }
.pzw-footer__group h2 { margin: 10px 0 12px; color: var(--pz-text-inv); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.pzw-footer__group ul { display: grid; margin: 0; padding: 0; list-style: none; }
.pzw-footer__group a { display: inline-flex; align-items: center; min-height: 36px; color: var(--lz-brand-light-slate); font-size: 14.5px; text-decoration: none; transition: color var(--pz-motion-micro) var(--pz-ease); }
.pzw-footer__group a:hover { color: var(--pz-text-inv); text-decoration: underline; text-underline-offset: 3px; }
.pzw-footer__contact .pzw-footer__mail { color: var(--pz-text-inv); font-weight: 600; white-space: nowrap; }
.pzw-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 32px; margin-top: clamp(32px, 4vw, 48px); padding-top: 20px; box-shadow: inset 0 1px 0 var(--pz-ink-700); font-size: 13px; line-height: 1.55; }
.pzw-footer__legal p { margin: 0; }
/* L10 final (D-024): the Livro de Reclamações Eletrónico in sight, set apart from the legal line (DL 156/2005, artigo 5.º-B, n.º 2). */
.pzw-footer__complaints { display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px; border: 1px solid var(--lz-brand-light-slate); border-radius: var(--pz-r-sm); color: var(--pz-text-inv); font-weight: 600; text-decoration: none; transition: border-color var(--pz-motion-micro) var(--pz-ease); }
.pzw-footer__complaints:hover { border-color: var(--pz-text-inv); }

/* O rodapé de uma tarefa: quem explora o serviço e as ligações de apoio. */
.pzw-footer--task { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 24px; padding: 12px var(--pzw-gutter) calc(12px + env(safe-area-inset-bottom, 0px)); font-size: 13.5px; }
.pzw-footer--task p { display: flex; flex-wrap: wrap; align-items: center; gap: 0 8px; margin: 0; color: var(--pz-text-inv); font-size: 12.5px; font-weight: 600; letter-spacing: .06em; }
.pzw-footer--task nav { display: flex; flex-wrap: wrap; gap: 0 20px; }
.pzw-footer--task nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--lz-brand-light-slate); text-decoration: none; }
.pzw-footer--task nav a:hover { color: var(--pz-text-inv); text-decoration: underline; text-underline-offset: 3px; }

/* ---------------------------------------------------------- Planos: o objeto

   Os painéis com metade em Ink ficam só com a sombra: um contorno claro à
   volta do Ink desenhava uma moldura. */
.pzw-gate__path, .pzw-panel { border: 1px solid var(--pz-card-edge); box-shadow: var(--pz-shadow-card); }
.pzw-auth, .pzw-track, .pzw-start { box-shadow: var(--pz-shadow-card); }

/* ------------------------------------------------------------- Responsivo */

@media (max-width: 1180px) {
  .pzw-nav { margin-left: 14px; }
  .pzw-nav a { padding: 0 10px; font-size: 14.5px; }
  .pzw-nav a::after { right: 10px; left: 10px; }
  .pzw-header__account { gap: 8px; padding: 0 12px 0 4px; font-size: 14px; }
  .pzw-header__actions .pzln-button { padding: 8px 14px; font-size: 14px; }
  .pzw-moments { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pzw-moments li:nth-child(3) { padding-left: 0; box-shadow: inset 0 1px 0 var(--pz-border); }
  .pzw-moments li:nth-child(4) { box-shadow: inset 1px 0 0 var(--pz-border), inset 0 1px 0 var(--pz-border); }
  .pzw-moments li:nth-child(n+3) { margin-top: 8px; }
  .pzw-footer__top { grid-template-columns: minmax(0, 1fr); }
}

/* A abertura empilha antes de o texto tocar no carro: a fotografia a toda a
   largura, logo sob o cabeçalho, a desfazer-se no Ink, e o texto por baixo. */
@media (max-width: 1100px) {
  .pzw-hero { display: flex; flex-direction: column; align-items: stretch; min-height: 0; padding-top: 0; padding-bottom: clamp(40px, 6vw, 64px); }
  .pzw-hero__text { max-width: 640px; padding-top: 4px; }
  /* A altura também segue a do ecrã, para a ação ficar no primeiro ecrã de
     um tablet deitado (1024×768). */
  .pzw-hero__photo { position: relative; inset: auto; z-index: 0; height: clamp(240px, min(52vw, 42svh), 480px); margin: 0 calc(-1 * var(--pzw-gutter)) 0; }
  .pzw-hero__photo::after { background: var(--pz-scrim-opening-stacked); }
  .pzw-hero__photo img { object-position: 36% 66%; }
  .pzw-hero__photo { --pzw-plates-w: min(56cqw, 72cqh); }
  .pzw-intro__photo, .pzw-photo--detalhe.pzw-intro__photo { --pzw-plates-w: min(52cqw, 72cqh); }
  .pzw-intro--photo { display: flex; flex-direction: column; align-items: stretch; min-height: 0; padding-bottom: 0; }
  .pzw-intro__photo { position: relative; inset: auto; z-index: 0; height: clamp(240px, 42vw, 400px); margin: 32px calc(-1 * var(--pzw-gutter)) 0; }
  .pzw-intro__photo::after { background: var(--pz-scrim-intro-stacked); }
}

@media (max-width: 1000px) {
  /* A navegação passa para a barra do fundo; o cabeçalho fica com a marca e
     com a conta, que se lê pelo símbolo (o nome continua no markup). */
  .pzw-nav, .pzw-header__actions .pzln-button { display: none; }
  .pzw-header__bar { min-height: 64px; }
  .pzw-header__account { gap: 0; padding: 0 6px; box-shadow: none; }
  .pzw-header__account.is-signed-in { padding-right: 6px; }
  .pzw-header__account .pzw-account__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

  .pzw--browse { --pzw-tabbar-h: 64px; padding-bottom: calc(var(--pzw-tabbar-h) + env(safe-area-inset-bottom, 0px)); }
  :root:has(.pzw) { scroll-padding-top: 84px; }
  :root:has(.pzw--browse) { scroll-padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
  .pzw-tabbar { position: fixed; right: 0; bottom: 0; left: 0; z-index: 50; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); height: calc(var(--pzw-tabbar-h) + env(safe-area-inset-bottom, 0px)); padding: 0 max(4px, env(safe-area-inset-right, 0px)) env(safe-area-inset-bottom, 0px) max(4px, env(safe-area-inset-left, 0px)); background: var(--pz-surface); box-shadow: 0 -1px 0 var(--pz-border), 0 -10px 24px -18px rgb(var(--pz-ink-rgb) / .35); }
  .pzw-tabbar__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 0; height: var(--pzw-tabbar-h); color: var(--pz-text-2); font-size: 11.5px; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: color var(--pz-motion-micro) var(--pz-ease); }
  .pzw-tabbar__item:active .pzw-tabbar__icon { transform: scale(.92); }
  .pzw-tabbar__icon { display: grid; place-items: center; width: 44px; height: 28px; border-radius: var(--pz-r-md); transition: transform var(--pz-motion-micro) var(--pz-ease), background-color var(--pz-motion-micro) var(--pz-ease); }
  .pzw-tabbar__item[aria-current="page"] { color: var(--pz-text); }
  .pzw-tabbar__item[aria-current="page"] .pzw-tabbar__icon { box-shadow: inset 0 -2px 0 var(--pz-signal); border-radius: 0; }
  /* A legalização é a ação: laranja de ação, ao centro, sem relevo. */
  .pzw-tabbar__item--start { color: var(--pz-text); }
  .pzw-tabbar__item--start .pzw-tabbar__icon { height: 30px; background: var(--pz-action); color: var(--pz-action-ink); }
  .pzw-tabbar .pzln-public-menu { min-width: 0; }
  .pzw-tabbar .pzln-public-menu > summary { list-style: none; }
  .pzw-tabbar .pzln-public-menu > summary::-webkit-details-marker { display: none; }
  .pzw-tabbar .pzln-public-menu[open] > summary { color: var(--pz-text); }
  .pzw-tabbar .pzln-public-menu > summary:focus-visible { outline: 0; box-shadow: inset var(--pz-focus); }
  /* O véu é do próprio controlo: tocar fora da folha é tocar no controlo, e
     por isso fecha-a, com ou sem script. */
  .pzw-tabbar .pzln-public-menu[open] > summary::before { content: ""; position: fixed; top: 0; right: 0; bottom: calc(var(--pzw-tabbar-h) + env(safe-area-inset-bottom, 0px)); left: 0; background: rgb(var(--pz-ink-rgb) / .55); cursor: default; animation: pzw-veil-in var(--pz-motion-surface) var(--pz-ease-enter); }
  .pzw-sheet { position: fixed; right: 0; bottom: calc(var(--pzw-tabbar-h) + env(safe-area-inset-bottom, 0px)); left: 0; max-height: calc(100vh - var(--pzw-tabbar-h) - 88px); overflow-y: auto; overscroll-behavior: contain; padding: 10px max(16px, env(safe-area-inset-right, 0px)) 16px max(16px, env(safe-area-inset-left, 0px)); border-radius: var(--pz-card-radius) var(--pz-card-radius) 0 0; background: var(--pz-surface); box-shadow: 0 -16px 40px -20px rgb(var(--pz-ink-rgb) / .5); }
  .pzln-public-menu[open] .pzw-sheet { animation: pzw-sheet-in var(--pz-motion-surface) var(--pz-ease-enter); }
  .pzw-sheet::before { content: ""; display: block; width: 36px; height: 4px; margin: 0 auto 10px; border-radius: 2px; background: var(--pz-border); }
  .pzw-sheet a:not(.pzln-button) { display: flex; align-items: center; min-height: 48px; padding: 0 12px; border-radius: var(--pz-r-sm); color: var(--pz-text); font-size: 17px; font-weight: 600; text-decoration: none; transition: background-color var(--pz-motion-micro) var(--pz-ease); }
  .pzw-sheet a:not(.pzln-button):hover { background: var(--pz-surface-3); }
  .pzw-sheet a[aria-current="page"] { box-shadow: inset 3px 0 0 var(--pz-signal); }
  .pzw-sheet__more, .pzw-sheet__account { margin-top: 8px; padding-top: 8px; box-shadow: inset 0 1px 0 var(--pz-divider); }
  .pzw-sheet__more a:not(.pzln-button) { min-height: 44px; color: var(--pz-text-2); font-size: 15.5px; font-weight: 500; }
  .pzw-sheet__account { padding-top: 12px; }
  .pzw-sheet__account .pzln-button { justify-content: flex-start; gap: 10px; width: 100%; min-height: var(--pz-button-h-lg); border-color: var(--pz-border-strong); background: transparent; color: var(--pz-text); }
  .pzw-sheet__account.is-signed-in .pzln-button { min-height: 60px; padding: 8px 16px 8px 10px; }
  .pzw-sheet__account .pzw-account__icon { width: 30px; height: 30px; }
  .pzw-sheet__account .pzw-account__area { color: var(--pz-text-3); }
  /* Com a folha aberta a página não rola por trás dela; com um campo em
     foco a barra dá lugar ao teclado. */
  body:has(.pzw-tabbar .pzln-public-menu[open]) { overflow: hidden; }
  .pzw--browse:has(.pzw-main :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select):focus) .pzw-tabbar { display: none; }

  .pzw-how, .pzw-price, .pzw-split, .pzw-contact-layout, .pzw-section--split, .pzw-start, .pzw-track, .pzw-footer__top, .pzw-showcase, .pzw-feature, .pzw-help-layout { grid-template-columns: minmax(0, 1fr); }
  .pzw-how .pzw-seq { max-width: none; }
  .pzw-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pzw-device { max-width: 720px; }
  .pzw-feature__text, .pzw-feature__photo { grid-column: 1; }
  .pzw-feature__text { padding: var(--pzw-pad) var(--pzw-gutter) 36px; }
  .pzw-feature__photo { height: clamp(260px, 50vw, 420px); --pzw-plates-w: 38cqw; }
  .pzw-help__index ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
  .pzw-help__index a { padding: 0 14px; box-shadow: inset 0 0 0 1px var(--pz-border); }
  .pzw-footer__nav { gap: 28px 24px; }
  .pzw-start__aside h1, .pzw-start__aside .pzw-lead { max-width: none; }
  .pzw-start__aside .pzw-start__foot { padding-top: 20px; line-height: 1.8; }
}

@media (max-width: 680px) {
  .pzw-header__bar { min-height: 60px; gap: 8px; }
  /* Desenho com 22,6px de altura e 143px de largura, acima do mínimo de
     140px do package. */
  .pzw-header__brand .pzln-product-brand { --lz-logo-height: 22.57px; }
  .pzw-taskbar__bar { min-height: 60px; gap: 8px; }
  /* Num telefone o passo lê-se pelos traços; o nome continua no markup. */
  .pzw-taskbar__count, .pzw-taskbar__name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .pzw-hero h1 { margin-top: 14px; line-height: 1.04; }
  .pzw-hero .pzw-lead { margin-top: 18px; }
  .pzw-hero__actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 28px; }
  .pzw-hero__actions .pzln-button { width: 100%; }
  .pzw-hero__track { font-size: 14.5px; }
  .pzw-hero__photo { height: clamp(250px, 72vw, 340px); }
  .pzw-hero__photo img { object-position: 30% 68%; }
  .pzw-feature__photo { --pzw-plates-w: 46cqw; }
  .pzw-actions { flex-direction: column; align-items: stretch; }
  .pzw-actions .pzln-button { width: 100%; }
  .pzw-actions .pzln-text-link { justify-content: center; }
  .pzw-section__head { margin-bottom: 24px; }
  .pzw-moments { grid-template-columns: minmax(0, 1fr); }
  .pzw-moments li, .pzw-moments li + li, .pzw-moments li:nth-child(3), .pzw-moments li:nth-child(4) { margin-top: 0; padding: 24px 0 22px; box-shadow: inset 0 1px 0 var(--pz-border); }
  .pzw-moments li:first-child { box-shadow: none; }
  .pzw-moments .pzw-moments__area { padding-top: 14px; }
  .pzw-seq--steps li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .pzw-docnote, .pzw-price__service, .pzw-price__companies { padding: 22px; }
  .pzw-price__scope { grid-template-columns: minmax(0, 1fr); }
  .pzw-grid, .pzw-checklist, .pzw-capabilities, .pzw-contact__subjects, .pzw-contact__who, .pzw-choices, .pzw-gate__paths, .pzw-auth, .pzw-partner__rows li { grid-template-columns: minmax(0, 1fr); }
  .pzw-intro, .pzw-pagehead { padding-top: 24px; }
  .pzw-intro__photo { height: clamp(220px, 60vw, 300px); }
  /* Uma tabela não encolhe até ficar ilegível: cada linha passa a um bloco. */
  .pzw-legal .pzw-table thead { display: none; }
  .pzw-legal .pzw-table, .pzw-legal .pzw-table tbody, .pzw-legal .pzw-table tr, .pzw-legal .pzw-table th, .pzw-legal .pzw-table td { display: block; width: 100%; }
  .pzw-legal .pzw-table tr { padding: 12px 16px; box-shadow: inset 0 1px 0 var(--pz-divider); }
  .pzw-legal .pzw-table tbody tr > * { padding: 2px 0; box-shadow: none; }
  .pzw-preview__head { padding-right: 16px; padding-left: 16px; }
  .pzw-partner__strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pzw-partner__strip > div:nth-child(3), .pzw-partner__strip > div:nth-child(4) { box-shadow: inset 0 1px 0 var(--pz-divider); }
  .pzw-partner__strip > div:nth-child(4) { box-shadow: inset 1px 0 0 var(--pz-divider), inset 0 1px 0 var(--pz-divider); }
  .pzw-partner__head { display: none; }
  /* Em telefone cada processo é um cartão curto: viatura, estado, próxima ação. */
  .pzw-partner__rows li { gap: 6px; padding: 14px 16px; }
  .pzw-partner__label { display: block; color: var(--pz-text-3); font-size: 12px; font-weight: 600; }
  .pzw-faq__item summary { padding-right: 40px; font-size: 16px; }
  .pzw-faq__item summary::after { right: 8px; }
  .pzw-faq__item p { padding-right: 0; }
  .pzw-final { padding-top: 44px; padding-bottom: 44px; }
  .pzw-final .pzw-actions { flex: auto; width: 100%; }
  .pzw-contact__send .pzln-button { width: 100%; }
  .pzw-device figcaption { text-align: left; }
  .pzw-footer__top { gap: 24px; }
  /* Num telefone os grupos do rodapé fazem pares e o contacto ocupa a linha. */
  .pzw-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; }
  .pzw-footer__group a, .pzw-endorse { min-height: 44px; }
  .pzw-footer__contact { grid-column: 1 / -1; }
  .pzw-footer__legal { flex-direction: column; }
  .pzw-footer--task { flex-direction: column; align-items: flex-start; }
  .pzw-auth__panel { order: -1; }
  .pzw-auth__facts { margin-top: 24px; }
  .pzw-auth__endorse { padding-top: 28px; }
  .pzw-flow--auth { padding-right: 0; padding-left: 0; }
  .pzw-auth { border-radius: 0; }
  .pzw-start, .pzw-track { border-radius: 0; }
  .pzw-flow:has(> .pzw-start) { padding-right: 0; padding-left: 0; }
  .pzw-choices { padding: 8px; }
  .pzw-gate__path .pzln-button { width: 100%; }
  .pzw-track { margin: 0 0 var(--pzw-pad); }
  .pzw-legal { padding-right: 0; padding-left: 0; }
  .pzw-legal__updated { margin-right: 20px; margin-left: 20px; }
  .pzw-legal .pzw-callout { margin: 0 20px 16px; }
  .pzw-legal__doc { border-right-width: 0; border-left-width: 0; border-radius: 0; }
}

/* ------------------------------------------------- Ferramentas e guias (L09)

   D-021. Uma ferramenta lê-se como um formulário e o seu resultado lado a
   lado: o formulário à esquerda, sete partes em doze, e o resultado à direita,
   um objeto branco com aresta fina que no telefone vem a seguir. O resultado
   do ISV lê-se como uma nota de liquidação: o total em grande, cada parcela
   com a conta e o artigo de onde vem, e o total outra vez sob um traço duplo.
   Um guia é texto para ler, a uma medida de leitura, com as fontes ao lado. */
.pzw-preview-note { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 12px var(--pzw-gutter); background: var(--pz-band); color: var(--pz-text); font-size: 14px; box-shadow: inset 0 -1px 0 var(--pz-divider); }
.pzw-preview-note p { margin: 0; color: var(--pz-text-2); }
/* L10 final (the owner's directive of 2026-10-22, Part A): one order for every
   tool, the next ones too. Before the first field, what to have at hand; the
   groups of fields under titles a step above their labels, every control and
   hint on one measure; the options as cells of one width. The result opens on
   its figure or its state, the case it is for and the day; what cannot be
   settled comes right under it, the tax apart from the fees, the conditions it
   considered, the dates folded; the price of the service is an object of its
   own, on the band, never in the card of the official amounts; every tool ends
   with the same row of actions. */
.pzw-tool__layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; gap: clamp(28px, 3.4vw, 56px); }
.pzw-tool__form { display: grid; gap: 24px; min-width: 0; }
.pzw-tool__lead { max-width: 34rem; margin: 0; padding: 14px 16px; border-radius: var(--pz-r-md); background: var(--pz-band); color: var(--pz-text); font-size: 15px; line-height: 1.5; }
.pzw-fieldset { display: grid; gap: 18px; min-width: 0; margin: 0; padding: 0 0 24px; border: 0; box-shadow: inset 0 -1px 0 var(--pz-divider); }
.pzw-fieldset > legend { padding: 0 0 14px; color: var(--pz-text); font-size: 19px; font-weight: 650; letter-spacing: -.012em; }
[data-pzw-when][hidden] { display: none; }
.pzw-field { display: grid; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.pzw-field > label, .pzw-field > legend { padding: 0; color: var(--pz-text); font-size: 15px; font-weight: 600; }
.pzw-field__unit { color: var(--pz-text-3); font-weight: 500; }
.pzw-field input:not([type="radio"]):not([type="checkbox"]), .pzw-field select { width: 100%; max-width: 34rem; min-height: 48px; padding: 11px 14px; border: 1px solid var(--pz-border-strong); border-radius: var(--pz-r-md); background: var(--pz-surface); color: var(--pz-text); font: inherit; font-size: 16px; font-variant-numeric: tabular-nums; transition: border-color var(--pz-motion-micro) var(--pz-ease), box-shadow var(--pz-motion-micro) var(--pz-ease); }
.pzw-field input:not([type="radio"]):not([type="checkbox"]):hover, .pzw-field select:hover { border-color: var(--pz-text-2); }
.pzw-field input:not([type="radio"]):not([type="checkbox"]):focus-visible, .pzw-field select:focus-visible { outline: 0; border-color: var(--pz-ink-900); box-shadow: var(--pz-focus); }
.pzw-field__hint { max-width: 34rem; margin: 0; color: var(--pz-text-3); font-size: 13.5px; line-height: 1.45; }
.pzw-field__error { max-width: 34rem; margin: 0; color: var(--pz-danger-fg); font-size: 14px; font-weight: 600; }
.pzw-field.has-error input:not([type="radio"]):not([type="checkbox"]), .pzw-field.has-error select { border-color: var(--pz-danger-ac); }
.pzw-segmented { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.5rem), 1fr)); gap: 8px; max-width: 34rem; }
.pzw-segmented label { position: relative; display: flex; }
.pzw-segmented input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.pzw-segmented span { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--pz-border-strong); border-radius: var(--pz-r-md); background: var(--pz-surface); color: var(--pz-text); font-size: 15px; font-weight: 600; line-height: 1.3; text-align: center; transition: background-color var(--pz-motion-micro) var(--pz-ease), border-color var(--pz-motion-micro) var(--pz-ease), color var(--pz-motion-micro) var(--pz-ease); }
.pzw-segmented label:hover span { border-color: var(--pz-text-2); }
.pzw-segmented input:checked + span { border-color: var(--pz-ink-900); background: var(--pz-ink-900); color: var(--pz-text-inv); }
.pzw-segmented input:focus-visible + span { box-shadow: var(--pz-focus); }
.pzw-field.has-error .pzw-segmented span { border-color: var(--pz-danger-ac); }
/* A disclosure of the tools reads as one, with the guides' chevron, never as a link. */
.pzw-tool__more { border-radius: var(--pz-r-md); }
.pzw-tool__more summary, .pzw-ledger__dates summary { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding-right: 26px; color: var(--pz-text); font-size: 15px; font-weight: 600; list-style: none; cursor: pointer; }
.pzw-tool__more summary::-webkit-details-marker, .pzw-ledger__dates summary::-webkit-details-marker { display: none; }
.pzw-tool__more summary::after, .pzw-ledger__dates summary::after { content: ""; position: absolute; top: 50%; right: 6px; width: 8px; height: 8px; border-right: 2px solid var(--pz-text-2); border-bottom: 2px solid var(--pz-text-2); transform: translateY(-70%) rotate(45deg); transition: transform var(--pz-motion-micro) var(--pz-ease); }
.pzw-tool__more[open] > summary::after, .pzw-ledger__dates[open] > summary::after { transform: translateY(-25%) rotate(-135deg); }
.pzw-tool__more summary:focus-visible, .pzw-ledger__dates summary:focus-visible { outline: 0; border-radius: var(--pz-r-sm); box-shadow: var(--pz-focus); }
.pzw-tool__more[open] summary { margin-bottom: 10px; }
.pzw-tool__submit .pzln-button { min-width: 220px; }
.pzw-tool__errors { padding: 14px 18px; border: 1px solid var(--pz-danger-bd); border-radius: var(--pz-r-md); background: var(--pz-danger-bg); box-shadow: inset 0 2px 0 var(--pz-danger-ac); color: var(--pz-danger-fg); font-size: 15px; }
.pzw-tool__errors p { margin: 0 0 6px; font-weight: 650; }
.pzw-tool__errors ul { margin: 0; padding-left: 18px; }
.pzw-tool__errors a { color: inherit; font-weight: 600; }
.pzw-tool__result { min-width: 0; transition: opacity var(--pz-motion-micro) var(--pz-ease); }
.pzw-tool__result.is-loading { opacity: .55; }
.pzw-ledger { padding: clamp(22px, 2.6vw, 34px); border: 1px solid var(--pz-card-edge); border-radius: var(--pz-card-radius); background: var(--pz-surface); box-shadow: var(--pz-shadow-card); }
.pzw-ledger__title { margin: 0; color: var(--pz-text); font-size: 19px; font-weight: 650; letter-spacing: -.01em; }
.pzw-ledger__title:focus:not(:focus-visible) { outline: 0; }
.pzw-ledger--empty p { margin: 10px 0 0; color: var(--pz-text-2); font-size: 15.5px; line-height: 1.6; }
.pzw-ledger__total { margin: 8px 0 0; color: var(--pz-text); font-size: var(--type-display-size); font-weight: var(--type-display-weight); line-height: 1.04; letter-spacing: var(--type-display-tracking); font-variant-numeric: tabular-nums; }
.pzw-ledger__state { margin: 8px 0 0; color: var(--pz-text); font-size: 24px; font-weight: 650; line-height: 1.2; letter-spacing: -.015em; }
.pzw-ledger__case { margin: 12px 0 0; color: var(--pz-text); font-size: 14.5px; font-weight: 500; line-height: 1.5; }
.pzw-ledger__for { margin: 4px 0 0; color: var(--pz-text-2); font-size: 14px; font-variant-numeric: tabular-nums; }
.pzw-ledger__what { margin: 12px 0 0; color: var(--pz-text-2); font-size: 14.5px; line-height: 1.55; }
.pzw-ledger__missing { margin: 12px 0 0; padding-left: 18px; color: var(--pz-danger-fg); font-size: 15px; line-height: 1.5; }
.pzw-ledger__missing a { color: inherit; font-weight: 600; }
/* What cannot be settled, right under the head: a note on the band with the signal's bar, never a card in the card. */
.pzw-ledger__unknown { margin-top: 20px; padding: 14px 18px 16px; border-radius: var(--pz-r-md); background: var(--pz-band); box-shadow: inset 0 2px 0 var(--pz-signal); }
.pzw-ledger__unknown .pzw-ledger__subtitle { margin: 0; color: var(--pz-signal-ink); font-size: 14.5px; }
.pzw-ledger__unknown .pzw-ledger__notes { margin-top: 6px; color: var(--pz-text); font-size: 14.5px; }
.pzw-ledger__lines { width: 100%; margin-top: 24px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.pzw-ledger__lines th, .pzw-ledger__lines td { padding: 13px 0; border-top: 1px solid var(--pz-divider); vertical-align: top; text-align: left; }
.pzw-ledger__lines th { color: var(--pz-text); font-size: 15px; font-weight: 600; }
.pzw-ledger__lines td { padding-left: 18px; color: var(--pz-text); font-size: 17px; font-weight: 650; text-align: right; white-space: nowrap; }
.pzw-ledger__lines tbody + tbody tr:first-child > * { border-top-color: var(--pz-border-strong); }
.pzw-ledger__how { display: block; margin-top: 3px; color: var(--pz-text-3); font-size: 13px; font-weight: 500; line-height: 1.45; }
.pzw-ledger__lines tfoot th, .pzw-ledger__lines tfoot td { border-top: 3px double var(--pz-text); font-size: 17px; font-weight: 650; }
.pzw-ledger__notes { margin: 18px 0 0; padding: 0 0 0 18px; color: var(--pz-text-2); font-size: 14px; line-height: 1.55; }
.pzw-ledger__notes li + li { margin-top: 6px; }
.pzw-ledger__subtitle { margin: 22px 0 0; color: var(--pz-text); font-size: 15px; font-weight: 650; letter-spacing: 0; }
.pzw-ledger__subtitle + .pzw-ledger__notes { margin-top: 8px; }
.pzw-ledger__dates { margin-top: 14px; }
.pzw-ledger__dates summary { min-height: 40px; color: var(--pz-text-2); font-size: 14px; }
.pzw-ledger__dates p { margin: 2px 0 0; color: var(--pz-text-3); font-size: 13.5px; line-height: 1.5; }
/* The price of the service: an object of its own, on the band, under the card of the official amounts. */
.pzw-tool__service { margin-top: 16px; padding: 20px clamp(20px, 2.6vw, 34px) 22px; border-radius: var(--pz-card-radius); background: var(--pz-band); }
.pzw-tool__service-title { margin: 0; color: var(--pz-text); font-size: 15px; font-weight: 650; letter-spacing: 0; }
.pzw-tool__price { margin: 6px 0 0; color: var(--pz-text-2); font-size: 15px; }
.pzw-tool__price strong { margin-right: 6px; color: var(--pz-text); font-size: 17px; font-weight: 650; font-variant-numeric: tabular-nums; }
.pzw-tool__service-what { margin: 8px 0 0; color: var(--pz-text-2); font-size: 14px; line-height: 1.55; }
.pzw-tool__service-more { margin: 10px 0 0; font-size: 15px; }
/* How every tool ends: the start, then changing the answers and starting again. */
.pzw-tool__next { display: grid; justify-items: start; gap: 12px; margin-top: 20px; }
.pzw-tool__nextlead { max-width: 40rem; margin: 0; color: var(--pz-text-2); font-size: 15px; line-height: 1.55; }
.pzw-tool__start { margin: 0; }
.pzw-tool__again { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0; font-size: 15px; }
.pzw-ledger--list h3 { margin: 22px 0 4px; font-size: 15.5px; font-weight: 650; }
.pzw-ledger--list .pzw-checklist { grid-template-columns: minmax(0, 1fr); }
.pzw-ledger--list .pzw-checklist small { display: block; margin-top: 4px; color: var(--pz-text-2); font-size: 13.5px; line-height: 1.5; }
/* L10B (D-023): the steps that come later, said apart from what to gather now, each leading to its guide. */
.pzw-ledger__later { margin: 0 0 2px; color: var(--pz-text-2); font-size: 14px; line-height: 1.55; }
.pzw-checklist--later li { color: var(--pz-text-2); font-size: 14.5px; }
.pzw-checklist--later li::before { background: var(--pz-border-strong); }
.pzw-ledger--list .pzw-checklist a { color: var(--pz-text); text-decoration: underline; text-decoration-color: var(--pz-border-strong); text-decoration-thickness: 1.5px; text-underline-offset: 4px; transition: text-decoration-color var(--pz-motion-micro) var(--pz-ease); }
.pzw-ledger--list .pzw-checklist--later a { color: inherit; }
.pzw-ledger--list .pzw-checklist a:hover { text-decoration-color: var(--pz-text); }
/* L10C (D-022): the estimate. The ISV's own calculation folded under the taxes, its parcels on the band one step down. */
.pzw-ledger__detail { margin-top: 6px; }
.pzw-ledger__detail[open] .pzw-ledger__lines { margin-top: 0; padding: 4px 14px; border-radius: var(--pz-r-md); background: var(--pz-band); }
.pzw-ledger__detail .pzw-ledger__lines th, .pzw-ledger__detail .pzw-ledger__lines td { font-size: 14px; }
.pzw-ledger__detail .pzw-ledger__lines tr:first-child > * { border-top: 0; }
.pzw-tool__sources ul { margin: 0 0 14px; padding-left: 18px; }
.pzw-tool__scope { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 56px; }
.pzw-tool__scope h3 { margin: 0 0 6px; font-size: 16.5px; font-weight: 650; }
.pzw-tool__scope .pzw-checklist { grid-template-columns: minmax(0, 1fr); }
.pzw-tool__sources { max-width: 72ch; color: var(--pz-text-2); font-size: 15.5px; line-height: 1.6; }
.pzw-tool__sources p { margin: 0 0 14px; }
.pzw-tool__articles { margin: 0 0 14px; padding: 0; list-style: none; }
.pzw-tool__articles li { padding: 9px 0; box-shadow: inset 0 -1px 0 var(--pz-divider); }
.pzw-tool__articles strong { color: var(--pz-text); font-weight: 650; }
.pzw-tool__checked { color: var(--pz-text-3); font-size: 14px; }
.pzw-toolist { max-width: 880px; margin: 0; padding: 0; list-style: none; }
.pzw-toolist li { padding: 24px 0; box-shadow: inset 0 -1px 0 var(--pz-divider); }
.pzw-toolist li:first-child { padding-top: 0; }
.pzw-toolist h3 { margin: 0; font-size: clamp(20px, 2vw, 24px); font-weight: 650; line-height: 1.25; letter-spacing: -.02em; }
.pzw-toolist h3 a { color: var(--pz-text); text-decoration: underline; text-decoration-color: var(--pz-border-strong); text-decoration-thickness: 1.5px; text-underline-offset: 5px; transition: text-decoration-color var(--pz-motion-micro) var(--pz-ease); }
.pzw-toolist h3 a:hover { text-decoration-color: var(--pz-text); }
.pzw-toolist p { max-width: 64ch; margin: 8px 0 0; color: var(--pz-text-2); font-size: 16px; }
.pzw-toolist .pzw-toolist__meta { margin-top: 6px; font-size: 14.5px; }
.pzw-toolist .pzw-toolist__state { color: var(--pz-text-3); font-size: 13.5px; font-weight: 650; }
/* L10, os guias como artigos (requisito editorial do proprietário de
   2026-10-21): a abertura diz quando foi revisto, quanto tempo leva e em que
   momento do processo serve; a resposta curta é o único objeto branco; as
   secções separam-se por uma linha fina; um guia com quatro secções ou mais
   tem índice, ao lado do texto num ecrã largo e dobrado sob a resposta num
   estreito; as referências legais ficam um tom abaixo da frase; o início do
   serviço, os relacionados e as fontes fecham a leitura. Sem movimento
   próprio. */
.pzw-guide { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: clamp(40px, 6vw, 96px); padding: clamp(40px, 5vw, 72px) var(--pzw-gutter) var(--pzw-pad); }
.pzw-guide--index { grid-template-columns: minmax(0, 42rem) minmax(200px, 248px); justify-content: start; column-gap: clamp(48px, 7vw, 120px); }
.pzw-guide__main { min-width: 0; max-width: 62ch; color: var(--pz-text); font-size: 17px; line-height: 1.7; }
.pzw-guide__body p { margin: 0 0 16px; }
.pzw-guide__body ul { margin: 0 0 18px; padding-left: 22px; }
.pzw-guide__body li { padding-left: 4px; }
.pzw-guide__body li + li { margin-top: 10px; }
.pzw-guide__body li::marker { color: var(--pz-text-4); }
.pzw-guide__body strong { font-weight: 650; }
.pzw-guide__answer { padding: clamp(20px, 2.4vw, 28px) clamp(20px, 2.6vw, 32px); border: 1px solid var(--pz-card-edge); border-radius: var(--pz-card-radius); background: var(--pz-surface); box-shadow: var(--pz-shadow-sm); }
.pzw-guide__answer h2 { margin: 0 0 8px; color: var(--pz-text-2); font-size: 15px; font-weight: 650; line-height: 1.4; }
.pzw-guide__answer p { font-size: var(--type-lead-size); line-height: 1.62; }
.pzw-guide__answer > :last-child { margin-bottom: 0; }
.pzw-guide__section { margin-top: clamp(40px, 4.5vw, 56px); padding-top: clamp(32px, 3.5vw, 44px); border-top: 1px solid var(--pz-divider); }
.pzw-guide__section h2 { margin: 0 0 14px; font-size: var(--type-read-heading-size); font-weight: 650; line-height: 1.22; letter-spacing: -.02em; text-wrap: balance; }
.pzw-guide__section > :last-child { margin-bottom: 0; }
.pzw-guide__limits h2 { font-size: 17px; letter-spacing: 0; }
.pzw-guide__limits p { color: var(--pz-text-2); font-size: 16px; }
.pzw-ref { color: var(--pz-text-2); font-size: .94em; }
.pzw-note { margin: 22px 0 24px; padding: 16px 20px 18px; border: 1px solid var(--pz-card-edge); border-radius: var(--pz-r-lg); background: var(--pz-surface); font-size: 16px; line-height: 1.6; }
.pzw-guide__body .pzw-note p { margin: 0; }
.pzw-guide__body .pzw-note .pzw-note__label { margin-bottom: 2px; color: var(--pz-text); font-size: 14px; font-weight: 650; }
.pzw-note--alert { box-shadow: inset 0 2px 0 var(--pz-signal); }
.pzw-note--alert .pzw-note__label { color: var(--pz-signal-ink); }
.pzw-note--legal { border-color: transparent; background: var(--pz-surface-3); }
.pzw-timeline, .pzw-tree { margin: 26px 0 30px; }
.pzw-guide__body .pzw-timeline__title, .pzw-guide__body .pzw-tree__title { margin: 0 0 14px; color: var(--pz-text-2); font-size: 14px; font-weight: 650; line-height: 1.4; }
.pzw-guide__body .pzw-timeline__stages { display: grid; margin: 0; padding: 0; list-style: none; }
.pzw-guide__body .pzw-timeline__stage { position: relative; margin: 0; padding: 0 0 20px 30px; }
.pzw-guide__body .pzw-timeline__stage::before { content: ""; position: absolute; top: 8px; left: 2px; width: 11px; height: 11px; border-radius: 50%; background: var(--pz-surface); box-shadow: inset 0 0 0 2px var(--lz-brand-slate); }
.pzw-guide__body .pzw-timeline__stage::after { content: ""; position: absolute; top: 23px; bottom: 4px; left: 7px; width: 1px; background: var(--pz-border); }
.pzw-guide__body .pzw-timeline__stage:last-child { padding-bottom: 0; }
.pzw-guide__body .pzw-timeline__stage:last-child::after { content: none; }
.pzw-guide__body .pzw-timeline__stage.is-key::before { background: var(--pz-signal); box-shadow: none; }
.pzw-guide__body .pzw-timeline__where { margin: 0; font-size: 16px; font-weight: 650; line-height: 1.45; }
.pzw-guide__body .pzw-timeline__what { margin: 2px 0 0; color: var(--pz-text-2); font-size: 15.5px; line-height: 1.55; }
.pzw-tree { padding: 22px 20px 20px; border: 1px solid var(--pz-card-edge); border-radius: var(--pz-r-lg); background: var(--pz-surface); }
.pzw-guide__body .pzw-tree__question { position: relative; max-width: 30em; margin: 0 auto; padding: 12px 18px; border-radius: var(--pz-r-md); background: var(--pz-ink-900); color: var(--pz-text-inv); font-size: 15.5px; font-weight: 650; line-height: 1.45; text-align: center; }
.pzw-guide__body .pzw-tree__question::after { content: ""; position: absolute; bottom: -18px; left: 50%; width: 1px; height: 18px; background: var(--pz-border-strong); }
.pzw-guide__body .pzw-tree__answers { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 36px 0 0; padding: 0; list-style: none; }
.pzw-guide__body .pzw-tree__answers::before { content: ""; position: absolute; top: -18px; right: calc(100% / 6); left: calc(100% / 6); height: 1px; background: var(--pz-border-strong); }
.pzw-guide__body .pzw-tree__answer { position: relative; display: grid; align-content: start; gap: 10px; margin: 0; padding: 0; }
.pzw-guide__body .pzw-tree__answer::before { content: ""; position: absolute; top: -18px; left: 50%; width: 1px; height: 18px; background: var(--pz-border-strong); }
.pzw-guide__body .pzw-tree__label { margin: 0; font-size: 14px; font-weight: 650; line-height: 1.4; text-align: center; }
.pzw-guide__body .pzw-tree__steps { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.pzw-guide__body .pzw-tree__steps li { position: relative; margin: 0; padding: 10px 12px; border: 1px solid var(--pz-card-edge); border-radius: var(--pz-r-md); background: var(--pz-surface-2); font-size: 14.5px; line-height: 1.45; text-align: center; }
.pzw-guide__body .pzw-tree__steps li + li::before { content: ""; position: absolute; top: -15px; left: 50%; width: 1px; height: 14px; background: var(--pz-border-strong); }
.pzw-guide__body .pzw-tree__end { margin: 22px 0 0; padding-top: 16px; border-top: 1px dashed var(--pz-border-strong); color: var(--pz-text-2); font-size: 14.5px; line-height: 1.45; text-align: center; }
.pzw-guide__tool { padding: 14px 18px; border-radius: var(--pz-r-md); background: var(--pz-surface-3); font-size: 16px; line-height: 1.55; }
.pzw-guide__tool a { color: var(--pz-text); font-weight: 650; text-decoration-color: var(--pz-border-strong); text-underline-offset: 3px; }
.pzw-guide__body .pzw-table-wrap { margin: 20px 0 24px; }
.pzw-guide__body .pzw-table-wrap--compact { max-width: 440px; }
.pzw-guide__body .pzw-table { width: 100%; border-collapse: collapse; font-size: 15.5px; line-height: 1.5; font-variant-numeric: tabular-nums; }
.pzw-guide__body .pzw-table th, .pzw-guide__body .pzw-table td { padding: 12px 18px; border-top: 1px solid var(--pz-divider); box-shadow: none; text-align: left; vertical-align: top; }
.pzw-guide__body .pzw-table thead th { padding-block: 12px 10px; border-top: 0; color: var(--pz-text-2); font-size: 13.5px; font-weight: 650; letter-spacing: 0; text-transform: none; }
.pzw-guide__body .pzw-table tbody tr:first-child > * { border-top-color: var(--pz-border); }
.pzw-guide__body .pzw-table tbody th { font-weight: 550; }
.pzw-guide__body .pzw-table td { text-align: right; }
.pzw-guide__body .pzw-table--compare { font-variant-numeric: normal; }
.pzw-guide__body .pzw-table--compare td { text-align: left; }
.pzw-guide__body .pzw-table--compare tbody th { width: 30%; }
.pzw-guide__body .pzw-guide__next { margin: clamp(40px, 4.5vw, 56px) 0 0; padding-top: clamp(28px, 3vw, 36px); border-top: 1px solid var(--pz-divider); color: var(--pz-text-2); font-size: 16.5px; line-height: 1.6; }
.pzw-guide__next .pzln-text-link { color: var(--pz-text); font-weight: 650; }
.pzw-guide__end { display: grid; gap: 28px; margin-top: clamp(32px, 3.5vw, 44px); padding-top: clamp(28px, 3vw, 36px); border-top: 1px solid var(--pz-divider); font-size: 15px; line-height: 1.55; }
.pzw-guide__end h2 { margin: 0 0 10px; font-size: 15px; font-weight: 650; letter-spacing: 0; }
.pzw-guide__end ul { display: grid; gap: 8px; margin: 0; padding-left: 18px; }
.pzw-guide__end li::marker { color: var(--pz-text-4); }
.pzw-guide__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 0; margin: 22px 0 0; color: var(--pzw-on-dark); font-size: 14px; line-height: 1.45; }
.pzw-guide__meta p { margin: 0; }
.pzw-guide__meta p + p::before { content: ""; display: inline-block; width: 1px; height: 14px; margin: 0 14px; background: var(--lz-brand-slate); vertical-align: -2px; }
.pzw-guide__meta a { color: var(--pz-text-inv); text-decoration: underline; text-decoration-color: var(--lz-brand-slate); text-underline-offset: 3px; }
.pzw-guide__checked { margin: 0; color: var(--pz-text-3); font-size: 14px; }
.pzw-intro .pzw-guide__checked { color: var(--pzw-on-dark); }
.pzw-toc { font-size: 14.5px; line-height: 1.45; }
.pzw-toc ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.pzw-toc a { display: block; padding: 5px 0; color: var(--pz-text-2); text-decoration: none; transition: color var(--pz-motion-micro) var(--pz-ease); }
.pzw-toc a:hover { color: var(--pz-text); text-decoration: underline; text-decoration-color: var(--pz-border-strong); text-underline-offset: 3px; }
.pzw-toc--side { position: sticky; top: 92px; display: grid; gap: 8px; max-height: calc(100vh - 124px); overflow-y: auto; padding-left: 18px; border-left: 1px solid var(--pz-divider); }
.pzw-toc__title { margin: 0; color: var(--pz-text); font-size: 13.5px; font-weight: 650; }
.pzw-toc--inline { display: none; }
.pzw-toc--inline summary { position: relative; display: flex; align-items: center; min-height: 52px; padding: 12px 52px 12px 18px; font-size: 15.5px; font-weight: 650; list-style: none; cursor: pointer; }
.pzw-toc--inline summary::-webkit-details-marker { display: none; }
.pzw-toc--inline summary::after { content: ""; position: absolute; top: 50%; right: 20px; width: 9px; height: 9px; border-right: 2px solid var(--pz-text-2); border-bottom: 2px solid var(--pz-text-2); transform: translateY(-70%) rotate(45deg); }
.pzw-toc--inline[open] summary::after { border-color: var(--pz-signal); transform: translateY(-25%) rotate(-135deg); }
.pzw-toc--inline summary:focus-visible { outline: 0; box-shadow: var(--pz-focus); border-radius: var(--pz-r-lg); }
.pzw-toc--inline nav { padding: 0 18px 14px; }
.pzw-toc--inline a { padding: 8px 0; }
@media (min-width: 1001px) {
  .pzw-tool__again a[href^="#"] { display: none; }
  .pzw-tool__result.is-sticky, .pzw-tool__form.is-sticky { position: sticky; top: 92px; }
}
@media (min-width: 1001px) and (max-width: 1180px) {
  .pzw-tool__layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 1000px) {
  .pzw-tool__layout, .pzw-guide, .pzw-guide--index { grid-template-columns: minmax(0, 1fr); }
  .pzw-tool__result { max-width: 44rem; }
  .pzw-toc--side { display: none; }
  .pzw-toc--inline { display: block; margin: 16px 0 0; border: 1px solid var(--pz-card-edge); border-radius: var(--pz-r-lg); background: var(--pz-surface); }
}
@media (max-width: 680px) {
  .pzw-guide { padding-top: 32px; }
  .pzw-guide__meta { display: grid; gap: 4px; }
  .pzw-guide__meta p + p::before { display: none; }
  .pzw-guide__body .pzw-table th, .pzw-guide__body .pzw-table td { padding: 10px 14px; }
  .pzw-guide__body .pzw-table--compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .pzw-guide__body .pzw-table--compare, .pzw-guide__body .pzw-table--compare tbody, .pzw-guide__body .pzw-table--compare tr, .pzw-guide__body .pzw-table--compare th, .pzw-guide__body .pzw-table--compare td { display: block; width: auto; }
  .pzw-guide__body .pzw-table--compare tr { padding: 14px 16px; border-top: 1px solid var(--pz-divider); }
  .pzw-guide__body .pzw-table--compare tbody tr:first-child { border-top: 0; }
  .pzw-guide__body .pzw-table--compare th, .pzw-guide__body .pzw-table--compare td { padding: 0; border: 0; }
  .pzw-guide__body .pzw-table--compare tbody th { width: auto; margin-bottom: 6px; font-weight: 650; }
  .pzw-guide__body .pzw-table--compare td + td { margin-top: 10px; }
  .pzw-guide__body .pzw-table--compare td::before { content: attr(data-label); display: block; color: var(--pz-text-2); font-size: 13.5px; font-weight: 650; }
  .pzw-tree { padding: 18px 16px; }
  .pzw-guide__body .pzw-tree__question { text-align: left; }
  .pzw-guide__body .pzw-tree__question::after, .pzw-guide__body .pzw-tree__answers::before, .pzw-guide__body .pzw-tree__answer::before { content: none; }
  .pzw-guide__body .pzw-tree__answers { grid-template-columns: minmax(0, 1fr); gap: 18px; margin-top: 18px; }
  .pzw-guide__body .pzw-tree__answer + .pzw-tree__answer { padding-top: 18px; border-top: 1px solid var(--pz-divider); }
  .pzw-guide__body .pzw-tree__label, .pzw-guide__body .pzw-tree__steps li, .pzw-guide__body .pzw-tree__end { text-align: left; }
  .pzw-guide__body .pzw-tree__steps li + li::before { left: 20px; }
  .pzw-tool__scope { grid-template-columns: minmax(0, 1fr); }
  .pzw-field input:not([type="radio"]):not([type="checkbox"]), .pzw-field select { max-width: none; }
  .pzw-tool__submit .pzln-button { width: 100%; }
  .pzw-ledger__lines td { padding-left: 12px; }
  /* L10 final: on a phone the form is read with a thumb, one screen at a time: the same order, a tighter rhythm. */
  .pzw-tool__form { gap: 18px; }
  .pzw-tool__lead { padding: 10px 12px; font-size: 14.5px; line-height: 1.45; }
  .pzw-fieldset { gap: 14px; padding-bottom: 18px; }
  .pzw-fieldset > legend { padding-bottom: 10px; font-size: 18px; }
  .pzw-field { gap: 6px; }
  .pzw-field__hint { line-height: 1.4; }
  .pzw-segmented span { min-height: 44px; padding: 8px 12px; }
  .pzw-segmented--stack { grid-template-columns: minmax(0, 1fr); }
  .pzw-segmented--stack span { justify-content: flex-start; text-align: left; }
}

/* ---------------------------------------------------------------- Movimento

   A folha do menu entra de baixo à duração de superfície e o véu acende-se;
   fecham de imediato (a saída nunca é mais lenta do que a entrada). */
@keyframes pzw-sheet-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes pzw-veil-in { from { opacity: 0; } to { opacity: 1; } }

/* L09 (D-020): a assinatura. A fotografia que abre uma página assenta e as
   duas placas do símbolo deslizam para o seu lugar, uma depois da outra,
   uma vez, ao carregar. A fotografia está pintada desde o primeiro instante
   (nunca transparente), por isso nada atrasa a sua leitura. As placas
   deslizam pela propriedade translate, que se compõe com a sua inclinação:
   a única regra inclinada continua a ser a da placa. */
.pzw-hero__photo img, .pzw-intro__photo img { animation: pzw-photo-settle var(--pz-motion-signature) var(--pz-ease-out-strong) both; }
.pzw-hero__photo .pzw-plate, .pzw-intro__photo .pzw-plate { animation: pzw-plate-in var(--pz-motion-signature) var(--pz-ease-out-strong) var(--pzw-plate-delay) both; }
.pzw-hero__photo .pzw-plate--signal, .pzw-intro__photo .pzw-plate--signal { --pzw-plate-delay: calc(var(--pz-motion-stagger) * 2); }
.pzw-hero__photo .pzw-plate--slate, .pzw-intro__photo .pzw-plate--slate { --pzw-plate-delay: calc(var(--pz-motion-stagger) * 4); }
@keyframes pzw-photo-settle { from { transform: scale(1.04); } }
@keyframes pzw-plate-in { from { opacity: 0; translate: 12% 0; } }

/* Uma resposta aberta chega com um esbatimento curto; a pergunta abre de
   imediato e a altura não se anima. */
.pzw-faq__item[open] > p { animation: pzw-answer-in var(--pz-motion-standard) var(--pz-ease-out-strong); }
@keyframes pzw-answer-in { from { opacity: 0; transform: translateY(-4px); } }

@media (prefers-reduced-motion: reduce) {
  .pzw *, .pzw *::before, .pzw *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  .pzw .pzln-button:active, .pzw-header__account:active, .pzw-tabbar__item:active .pzw-tabbar__icon { transform: none; }
}

/* L20 | Public finish: compact, functional landing for the real available tools.
   Extend the existing L08 brand: ink, neutral paper, signal orange and Inter.
   Nothing here opens a fiscal feature behind a validation gate. */
.pzw-toolhub {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.6vw, 22px);
  align-items: stretch;
  width: 100%;
}
.pzw-toolhub__card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 280px;
  padding: clamp(22px, 2.5vw, 32px);
  overflow: hidden;
  border: 1px solid var(--pz-card-edge);
  border-radius: var(--pz-card-radius);
  background: var(--pz-surface);
  color: var(--pz-text);
  box-shadow: var(--pz-shadow-sm);
  transition: border-color var(--pz-motion-micro) var(--pz-ease), box-shadow var(--pz-motion-micro) var(--pz-ease), transform var(--pz-motion-micro) var(--pz-ease);
}
.pzw-toolhub__card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: transparent;
}
.pzw-toolhub__card--featured::before { background: var(--pz-signal); }
.pzw-toolhub__number {
  color: var(--pz-text-3);
  font-size: 13px;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}
.pzw-toolhub__eyebrow {
  margin: 20px 0 4px;
  color: var(--pz-text-3);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.pzw-toolhub__card h3 {
  margin: 0;
  color: var(--pz-text);
  font-size: clamp(20px, 2vw, 25px);
  font-weight: 740;
  letter-spacing: -.025em;
  line-height: 1.14;
  text-wrap: balance;
}
.pzw-toolhub__card h3 a {
  color: inherit;
  text-decoration: none;
}
.pzw-toolhub__card h3 a::after {
  content: "";
  position: absolute;
  inset: 0;
}
.pzw-toolhub__card > p:not(.pzw-toolhub__eyebrow) {
  margin: 14px 0 0;
  color: var(--pz-text-2);
  font-size: 15px;
  line-height: 1.55;
}
.pzw-toolhub__action {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  margin-top: auto;
  padding-top: 26px;
  color: var(--pz-text);
  font-size: 14px;
  font-weight: 720;
}
.pzw-toolhub__card:hover,
.pzw-toolhub__card:focus-within {
  border-color: var(--pz-border-strong);
  box-shadow: var(--pz-shadow-card);
  transform: translateY(-2px);
}
.pzw-toolhub__card:focus-within { outline: 2px solid var(--pz-action); outline-offset: 3px; }
.pzw-toolhub__card h3 a:focus-visible { outline: 0; }

/* Information must look consultable, not like a wall of small print. */
.pzw-guide__body .pzw-table-wrap {
  max-width: 100%;
  border-color: var(--pz-border);
  box-shadow: 0 2px 10px rgba(0, 0, 0, .035);
}
.pzw-guide__body .pzw-table thead th {
  padding-block: 14px 12px;
  background: var(--pz-surface-2);
  color: var(--pz-text);
  font-weight: 750;
}
.pzw-guide__body .pzw-table tbody tr:nth-child(even) { background: var(--pz-surface-2); }
.pzw-guide__body .pzw-table tbody tr:first-child > * { border-top-color: var(--pz-border); }
.pzw-guide__body .pzw-table tbody th { font-weight: 650; }
.pzw-guide__body .pzw-table td {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.pzw-guide__body .pzw-table--compare td { text-align: left; white-space: normal; }
.pzw-guide__answer { border-left: 3px solid var(--pz-signal); }
.pzw-guide__body .pzw-table-wrap:focus-within { outline: 2px solid var(--pz-action); outline-offset: 2px; }

/* Dense tools without sacrificing legibility or tap targets. */
.pzw-tool__layout { gap: clamp(20px, 2.8vw, 46px); }
.pzw-fieldset > legend { font-weight: 750; }
.pzw-ledger__title { font-weight: 750; }
.pzw-tool__service-title { font-weight: 750; }
.pzw-toolist h3 a:focus-visible { outline: 2px solid var(--pz-action); outline-offset: 5px; }

@media (max-width: 1000px) {
  .pzw-toolhub { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .pzw-toolhub__card:first-child { grid-column: 1 / -1; min-height: 190px; }
}
@media (max-width: 680px) {
  .pzw-toolhub { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .pzw-toolhub__card, .pzw-toolhub__card:first-child {
    grid-column: auto;
    min-height: 0;
    padding: 20px 22px 22px;
  }
  .pzw-toolhub__eyebrow { margin-top: 12px; }
  .pzw-toolhub__card h3 { font-size: 22px; }
  .pzw-toolhub__card > p:not(.pzw-toolhub__eyebrow) { margin-top: 9px; font-size: 14.5px; }
  .pzw-toolhub__action { padding-top: 16px; }
  .pzw-guide__body .pzw-table th, .pzw-guide__body .pzw-table td { padding-inline: 12px; }
  .pzw-guide__body .pzw-table-wrap { overscroll-behavior-x: contain; }
}
@media (prefers-reduced-motion: reduce) {
  .pzw-toolhub__card { transition: none; transform: none !important; }
}

/* One curated reading path on the tools landing; the full library has its own index. */
.pzw-toolhub__more { margin: 22px 0 0; }
.pzw-toolhub__more a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 0;
  color: var(--pz-text);
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 5px;
  text-decoration-color: var(--pz-border-strong);
}
.pzw-toolhub__more a:hover { text-decoration-color: var(--pz-text); }
.pzw-toolhub__more a:focus-visible { outline: 2px solid var(--pz-action); outline-offset: 4px; }
