/* ==========================================================================
   Canedo Correia Consulting — CSS global
   Caderno de Arquitectura, Conteúdo e Implementação v1.1 · Manual de Identidade v2.0
   Mobile-first. Convenção: l- (layout) · c- (componente) · u- (utilitário)
   Produção: auto-alojar PT Serif (woff2) — ver bloco @font-face comentado.
   ========================================================================== */

/* --- Tipografia (produção: auto-alojada, sem chamadas runtime externas) ---
@font-face { font-family: "PT Serif"; src: url("/fonts/pt-serif-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "PT Serif"; src: url("/fonts/pt-serif-400i.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "PT Serif"; src: url("/fonts/pt-serif-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
*/

:root {
  /* Paleta — códigos exactos (secção 11) */
  --cc-ardosia:     #1F2D3D; /* Estrutura: marca, títulos, superfícies escuras */
  --cc-petroleo:    #247587; /* Organização: links, apoio, estados interactivos */
  --cc-carmim:      #AC2236; /* Apontamento principal / CTA pontual */
  --cc-grafite:     #252525; /* Corpo de texto */
  --cc-cinzento:    #5C656E; /* Notas, legendas, secundário */
  --cc-branco:      #FFFFFF; /* Fundo principal / texto sobre escuro */
  --cc-quase-branco:#F8F9FA; /* Alternância de secções */
  --cc-jade:        #2D7461; /* Apontamento editorial complementar */
  --cc-ocre:        #93631A; /* Apontamento editorial complementar */
  --cc-linha:       #DDE2E6; /* Divisões — nunca texto */

  /* Papéis semânticos (os componentes usam estes, nunca hex directos) */
  --color-bg: var(--cc-branco);
  --color-bg-alt: var(--cc-quase-branco);
  --color-bg-dark: var(--cc-ardosia);
  --color-text: var(--cc-grafite);
  --color-text-muted: var(--cc-cinzento);
  --color-heading: var(--cc-ardosia);
  --color-link: var(--cc-petroleo);
  --color-accent: var(--cc-carmim);
  --color-critical: var(--cc-carmim);   /* Apoio Prioritário · Situações críticas */
  --color-deadline: var(--cc-ocre);     /* Apoio Prioritário · Obrigações com prazo */
  --color-rule: var(--cc-linha);
  --color-on-dark: var(--cc-branco);
  --color-focus: var(--cc-petroleo);

  /* Tipografia — PT Serif em todos os elementos */
  --font-base: "PT Serif", Georgia, "Times New Roman", serif;
  --fs-xs: 0.8125rem;  /* 13 */
  --fs-sm: 0.9375rem;  /* 15 */
  --fs-md: 1.0625rem;  /* 17 — corpo */
  --fs-lg: 1.25rem;    /* 20 */
  --fs-xl: 1.5rem;     /* 24 */
  --fs-2xl: 1.875rem;  /* 30 */
  --fs-3xl: 2.25rem;   /* 36 */
  --fs-4xl: 2.75rem;   /* 44 */
  --lh-tight: 1.2;
  --lh-body: 1.6;

  /* Espaçamento e layout */
  --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem;
  --space-5: 1.5rem;  --space-6: 2rem;   --space-7: 3rem;    --space-8: 4rem; --space-9: 6rem;
  --gutter: 1.25rem;
  --container: 72rem;
  --measure: 38rem;
  --radius: 2px;              /* superfícies (cartões, campos): arestas quase rectas */
  --radius-control: 4px;      /* botões e CTAs: suavização controlada (iteração 2) */
  --header-h: 4.25rem;
  --tap: 2.75rem;             /* área clicável mínima (44px) */
}

@media (min-width: 48rem) {
  :root { --gutter: 2rem; --fs-3xl: 2.5rem; --fs-4xl: 3.25rem; }
}
@media (min-width: 64rem) {
  :root { --header-h: 5rem; --fs-4xl: 3.75rem; }
}

/* --- Base --- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + var(--space-4)); }
body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-base);
  font-size: var(--fs-md);
  line-height: var(--lh-body);
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4 { color: var(--color-heading); font-weight: 700; line-height: var(--lh-tight); margin: 0; text-wrap: balance; }
p { margin: 0; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--color-link); text-decoration: underline; text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
button, input, select, textarea { font: inherit; color: inherit; }

[hidden] { display: none !important; }
.u-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.c-skip-link { position: absolute; left: var(--space-4); top: -4rem; z-index: 100; background: var(--color-bg-dark); color: var(--color-on-dark); padding: var(--space-3) var(--space-4); }
.c-skip-link:focus { top: var(--space-4); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* --- Layout --- */
.l-container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.l-section { padding-block: var(--space-8); }
.l-section--alt { background: var(--color-bg-alt); }
.l-section--dark { background: var(--color-bg-dark); color: var(--color-on-dark); }
.l-section--dark h2, .l-section--dark h3 { color: var(--color-on-dark); }
@media (min-width: 64rem) { .l-section { padding-block: var(--space-9); } }

/* Cabeçalho de secção (eyebrow + título + apoio) */
.c-section-head { display: grid; gap: var(--space-3); max-width: var(--measure); margin-bottom: var(--space-6); }
.c-eyebrow { font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cc-petroleo); }
.l-section--dark .c-eyebrow { color: var(--color-on-dark); }
.c-section-head h2 { font-size: var(--fs-2xl); }
.c-section-head > p:not(.c-eyebrow) { color: var(--color-text-muted); font-size: var(--fs-lg); line-height: 1.5; }
@media (min-width: 48rem) { .c-section-head h2 { font-size: var(--fs-3xl); } }

/* --- Botões / CTAs --- */
.c-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  min-height: var(--tap); padding: 0.55rem 1.15rem;
  border: 1px solid transparent; border-radius: var(--radius-control);
  font-size: var(--fs-sm); font-weight: 700; line-height: 1.2; text-decoration: none; white-space: nowrap;
  cursor: pointer; transition: background-color .15s, color .15s, border-color .15s;
}
.c-btn--primary { background: var(--cc-ardosia); color: var(--cc-branco); }
.c-btn--primary:hover { background: var(--cc-petroleo); }
.c-btn--outline { background: transparent; color: var(--cc-ardosia); border-color: var(--cc-ardosia); }
.c-btn--outline:hover { background: var(--cc-ardosia); color: var(--cc-branco); }
/* Apoio Prioritário: carmim controlado — sem animação, pulsação ou ícones de alarme */
.c-btn--priority { background: var(--cc-carmim); color: var(--cc-branco); }
.c-btn--priority:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.c-btn--on-dark { background: var(--cc-branco); color: var(--cc-ardosia); }
.c-btn--on-dark-outline { background: transparent; color: var(--cc-branco); border-color: var(--cc-branco); }
.c-btn--on-dark-outline:hover { background: var(--cc-branco); color: var(--cc-ardosia); }

/* Obrigações com prazo (Apoio Prioritário): ocre, sempre com rótulo textual */
.c-btn--deadline { background: var(--cc-ocre); color: var(--cc-branco); }
.c-btn--deadline:hover { text-decoration: underline; text-underline-offset: 0.2em; }

/* Link de continuação ("Ver…", "Conhecer…") */
.c-more { font-weight: 700; font-size: var(--fs-sm); }
.c-more::after { content: " →"; }
.l-section--dark .c-more { color: var(--color-on-dark); }

/* --- Logótipo (ficheiro oficial via <use>; nunca redigitado) --- */
.c-logo { display: inline-flex; color: var(--cc-ardosia); padding: 0.3rem 0; }
.c-logo svg { width: 11.25rem; height: auto; aspect-ratio: 342 / 68; }
@media (min-width: 64rem) { .c-logo svg { width: 13.75rem; } } /* 220px — referência digital do manual */
.c-logo--on-dark { color: var(--cc-branco); }

/* ==========================================================================
   HEADER GLOBAL
   ========================================================================== */
.c-header {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50;
  background: var(--color-bg); border-bottom: 1px solid var(--color-rule);
}
.c-header__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; column-gap: var(--space-5); min-height: var(--header-h); }
.c-header__toggle {
  display: inline-flex; align-items: center; gap: var(--space-2);
  min-height: var(--tap); padding: 0.4rem 0.8rem;
  background: transparent; border: 1px solid var(--cc-ardosia); border-radius: var(--radius-control);
  color: var(--cc-ardosia); font-size: var(--fs-sm); font-weight: 700; cursor: pointer;
}
.c-header__toggle-icon { width: 1.1rem; height: 0.8rem; position: relative; border-block: 2px solid currentColor; }
.c-header__toggle-icon::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 2px solid currentColor; transform: translateY(-50%); }
.c-header__toggle[aria-expanded="true"] .c-header__toggle-icon { border-color: transparent; }

/* Painel mobile: 5 itens + 2 CTAs, sem botão flutuante */
.c-header__panel { flex-basis: 100%; border-top: 1px solid var(--color-rule); padding-block: var(--space-2) var(--space-6); }
.c-nav__list { list-style: none; display: grid; }
.c-nav__link {
  display: flex; align-items: center; min-height: var(--tap);
  padding-block: var(--space-2); border-bottom: 1px solid var(--color-rule);
  color: var(--cc-ardosia); font-size: var(--fs-lg); font-weight: 700; text-decoration: none;
}
.c-nav__link:hover { text-decoration: underline; }
/* Estado activo: sublinhado espesso — não apenas cor */
.c-nav__link[aria-current] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.4em; }
.c-header__ctas { display: grid; gap: var(--space-3); margin-top: var(--space-5); }

@media (min-width: 80rem) { /* v1.4.0: 7 itens + 2 acções → navegação compacta até 1280px (Caderno v3 §05) */
  .c-header__inner { flex-wrap: nowrap; }
  .c-header__toggle { display: none; }
  .c-header__panel, .c-header__panel[hidden] { display: flex !important; flex-basis: auto; align-items: center; gap: var(--space-6); border: 0; padding: 0; }
  .c-nav__list { display: flex; gap: var(--space-5); }
  .c-nav__link { border: 0; font-size: var(--fs-sm); padding: 0; }
  .c-header__ctas { display: flex; margin: 0; gap: var(--space-2); }
}

/* ==========================================================================
   FOOTER GLOBAL
   ========================================================================== */
.c-footer { background: var(--color-bg-dark); color: var(--color-on-dark); padding-block: var(--space-8) var(--space-6); font-size: var(--fs-sm); }
.c-footer a { color: var(--color-on-dark); }
.c-footer__grid { display: grid; gap: var(--space-6); }
@media (min-width: 40rem) { .c-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 64rem) { .c-footer__grid { grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: var(--space-7); } }
.c-footer__brand { display: grid; gap: var(--space-3); align-content: start; }
.c-footer__descriptor { font-weight: 700; font-size: var(--fs-md); }
.c-footer__signature { font-style: italic; opacity: .85; }
.c-footer__title { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--color-on-dark); opacity: .75; margin-bottom: var(--space-3); }
.c-footer__list { list-style: none; display: grid; gap: var(--space-1); }
.c-footer__list a { display: inline-flex; min-height: 2rem; align-items: center; text-decoration: none; }
.c-footer__list a:hover { text-decoration: underline; }
.c-footer__contacts { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6); margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid rgba(255,255,255,.18); }
.c-footer__contacts a { font-size: var(--fs-md); font-weight: 700; }
.c-footer__meta { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-4); margin-top: var(--space-5); opacity: .75; font-size: var(--fs-xs); }
.c-footer__legal-id { font-style: normal; }
.c-footer :focus-visible { outline-color: var(--cc-branco); }

/* ==========================================================================
   COMPONENTES DO TEMPLATE 01 — HOMEPAGE
   ========================================================================== */

/* 01 · Hero */
.c-hero { display: grid; background: var(--color-bg); }
.c-hero__body { display: grid; gap: var(--space-5); align-content: center; padding: var(--space-7) var(--gutter); }
.c-hero__signature { display: grid; gap: var(--space-3); font-style: italic; color: var(--color-text-muted); font-size: var(--fs-md); }
.c-hero__signature::after { content: ""; width: 3.5rem; height: 3px; background: var(--cc-ocre); order: -1; } /* régua ocre — motivo da apresentação */
.c-hero h1 { font-size: var(--fs-3xl); letter-spacing: -0.01em; }
.c-hero__lead { font-size: var(--fs-lg); line-height: 1.5; max-width: 34rem; }
.c-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.c-hero__areas { background: var(--color-bg-dark); color: var(--color-on-dark); padding: var(--space-4) var(--gutter); font-size: var(--fs-sm); }
.c-hero__areas ul { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); }
.c-hero__areas li + li::before { content: "·"; margin-right: var(--space-3); opacity: .7; }
.c-hero__media { height: 11rem; overflow: hidden; }
.c-hero__media img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 48rem) { .c-hero h1 { font-size: var(--fs-4xl); } }
@media (min-width: 64rem) {
  .c-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 0.82fr); grid-template-rows: 1fr auto; }
  .c-hero__body { padding-block: var(--space-9) var(--space-8); padding-left: max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter))); padding-right: var(--space-7); }
  .c-hero__areas { grid-column: 1; padding-block: var(--space-5); padding-left: max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter))); }
  .c-hero__media { grid-column: 2; grid-row: 1 / span 2; height: auto; min-height: 30rem; }
}

/* 02 · O que fazemos */
.c-areas { display: grid; gap: 0; border-top: 1px solid var(--color-rule); }
.c-areas__item { display: grid; gap: var(--space-2); padding-block: var(--space-5); border-bottom: 1px solid var(--color-rule); }
.c-areas__item h3 { font-size: var(--fs-xl); }
.c-areas__item p { color: var(--color-text); max-width: 34rem; }
@media (min-width: 48rem) {
  .c-areas { grid-template-columns: 1fr 1fr; column-gap: var(--space-7); }
}
.c-transversal { margin-top: var(--space-5); display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); align-items: baseline; padding: var(--space-4) var(--space-5); background: var(--color-bg-alt); border-left: 3px solid var(--cc-ardosia); }
.c-transversal strong { color: var(--cc-ardosia); }

/* 03 · Como intervimos */
.c-steps { list-style: none; display: grid; gap: var(--space-5); counter-reset: step; }
.c-steps__item { display: grid; gap: var(--space-2); align-content: start; padding-top: var(--space-4); border-top: 2px solid var(--cc-ardosia); }
.c-steps__num { font-size: var(--fs-sm); font-weight: 700; color: var(--cc-petroleo); font-variant-numeric: tabular-nums; }
.c-steps__item h3 { font-size: var(--fs-xl); }
.c-steps__output { margin-top: var(--space-2); font-size: var(--fs-sm); color: var(--color-text-muted); }
.c-steps__output b { color: var(--cc-ardosia); }
.c-steps__note { margin-top: var(--space-6); max-width: var(--measure); color: var(--color-text-muted); font-size: var(--fs-sm); }
@media (min-width: 48rem) { .c-steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64rem) { .c-steps { grid-template-columns: repeat(4, 1fr); gap: var(--space-6); } }

/* 04 · Serviços em destaque */
.c-cards { list-style: none; display: grid; gap: var(--space-4); }
@media (min-width: 48rem) { .c-cards { grid-template-columns: repeat(2, 1fr); } }
.c-card { display: grid; grid-template-rows: auto auto 1fr auto; gap: var(--space-3); padding: var(--space-5); background: var(--color-bg); border: 1px solid var(--color-rule); border-radius: var(--radius); height: 100%; }
.c-card__label { font-size: var(--fs-xs); color: var(--color-text-muted); letter-spacing: .06em; text-transform: uppercase; }
.c-card h4 { font-size: var(--fs-xl); }
.c-card h4 { color: var(--color-heading); font-weight: 700; line-height: var(--lh-tight); margin: 0; text-wrap: balance; }
.c-card h4 a { color: inherit; text-decoration: none; }
.c-card h4 a:hover { text-decoration: underline; }
.c-card__question { color: var(--color-text); font-style: italic; }
.c-card__result { font-size: var(--fs-sm); color: var(--color-text-muted); }
.c-subhead { font-size: var(--fs-lg); margin: var(--space-7) 0 var(--space-4); }
.c-cards--transversal { gap: 0; border-top: 1px solid var(--color-rule); }
.c-cards--transversal .c-card { border: 0; border-bottom: 1px solid var(--color-rule); border-radius: 0; background: transparent; padding-inline: 0; grid-template-rows: auto 1fr auto; }
@media (min-width: 64rem) {
  .c-cards--transversal { grid-template-columns: repeat(2, 1fr); column-gap: var(--space-6); }
}

/* 05 · Sectores */
.c-sectors { list-style: none; display: grid; border-top: 1px solid var(--color-rule); }
.c-sectors a { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); min-height: 3.5rem; padding-block: var(--space-3); border-bottom: 1px solid var(--color-rule); color: var(--cc-ardosia); font-size: var(--fs-lg); font-weight: 700; text-decoration: none; }
.c-sectors a::after { content: "→"; color: var(--cc-petroleo); font-weight: 400; }
.c-sectors a:hover { text-decoration: underline; }
@media (min-width: 48rem) { .c-sectors { grid-template-columns: 1fr 1fr; column-gap: var(--space-7); } }
.c-section-foot { margin-top: var(--space-6); }

/* 06 · CPLP */
.c-cplp { display: grid; gap: var(--space-5); }
.c-cplp__headline { margin: 0; font-size: var(--fs-2xl); line-height: 1.25; font-weight: 700; color: var(--color-on-dark); text-wrap: balance; max-width: 40rem; }
.c-cplp p { max-width: var(--measure); font-size: var(--fs-lg); line-height: 1.5; }
.c-cplp__geo { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.c-cplp__geo li { border: 1px solid rgba(255,255,255,.4); padding: var(--space-1) var(--space-3); font-size: var(--fs-sm); }
@media (min-width: 48rem) { .c-cplp__headline { font-size: var(--fs-3xl); } }

/* 07 · Porque Canedo Correia Consulting */
.c-proofs { list-style: none; display: grid; gap: var(--space-6); }
.c-proofs__item { display: grid; gap: var(--space-2); }
.c-proofs__item h3 { font-size: var(--fs-lg); padding-bottom: var(--space-2); border-bottom: 1px solid var(--color-rule); }
@media (min-width: 48rem) { .c-proofs { grid-template-columns: repeat(2, 1fr); column-gap: var(--space-7); } }
@media (min-width: 64rem) { .c-proofs { grid-template-columns: repeat(4, 1fr); column-gap: var(--space-6); } }

/* 08 · Fundador */
.c-founder { display: grid; gap: var(--space-6); align-items: start; }
.c-founder__photo { max-width: 20rem; aspect-ratio: 1; background: var(--color-bg-alt); }
.c-founder__photo img { width: 100%; height: 100%; object-fit: cover; }
.c-founder__body { display: grid; gap: var(--space-4); max-width: var(--measure); }
.c-founder__quote { margin: 0; padding: var(--space-4) var(--space-5); background: var(--color-bg-alt); border-left: 3px solid var(--cc-carmim); font-style: italic; font-size: var(--fs-lg); color: var(--cc-ardosia); }
.c-founder__name { font-weight: 700; color: var(--cc-ardosia); }
.c-founder__role { color: var(--color-text-muted); font-size: var(--fs-sm); }
@media (min-width: 48rem) { .c-founder { grid-template-columns: minmax(12rem, 18rem) 1fr; gap: var(--space-7); } }

/* 09 · Insights */
.c-insights { list-style: none; display: grid; gap: var(--space-4); }
@media (min-width: 48rem) { .c-insights { grid-template-columns: repeat(3, 1fr); } }
.c-insight { display: grid; gap: var(--space-3); align-content: start; padding-top: var(--space-4); border-top: 2px solid var(--cc-ardosia); height: 100%; }
.c-insight__cat { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--cc-jade); }
.c-insight h3 { font-size: var(--fs-lg); }
.c-insight h3 a { color: inherit; text-decoration: none; }
.c-insight time { font-size: var(--fs-sm); color: var(--color-text-muted); font-variant-numeric: tabular-nums; }
.c-insight--slot h3 { color: var(--color-text-muted); font-weight: 400; font-style: italic; }
.c-cms-note { display: inline-block; margin-bottom: var(--space-4); padding: var(--space-1) var(--space-3); border: 1px dashed var(--cc-cinzento); font-size: var(--fs-xs); color: var(--color-text-muted); }

/* 10 · Apoio Prioritário (compacto) */
.c-priority { display: grid; gap: var(--space-5); }
.c-priority__groups { display: grid; gap: var(--space-4); }
@media (min-width: 48rem) { .c-priority__groups { grid-template-columns: 1fr 1fr; } }
.c-priority__group { background: var(--color-bg); border: 1px solid var(--color-rule); border-top: 4px solid var(--group-color); padding: var(--space-5); display: grid; gap: var(--space-3); align-content: start; }
.c-priority__group--critical { --group-color: var(--color-critical); }
.c-priority__group--deadline { --group-color: var(--color-deadline); }
.c-priority__tag { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--group-color); }
.c-priority__list { list-style: none; display: grid; }
.c-priority__list a { display: grid; gap: 2px; padding-block: var(--space-3); border-top: 1px solid var(--color-rule); text-decoration: none; color: var(--cc-ardosia); }
.c-priority__list a strong { font-size: var(--fs-lg); }
.c-priority__list a strong::after { content: " →"; color: var(--group-color); font-weight: 400; }
.c-priority__list a:hover strong { text-decoration: underline; }
.c-priority__list span { font-size: var(--fs-sm); color: var(--color-text-muted); }

/* 11 · Newsletter */
.c-newsletter { display: grid; gap: var(--space-5); }
@media (min-width: 64rem) { .c-newsletter { grid-template-columns: 1fr 1fr; gap: var(--space-8); align-items: end; } }
.c-newsletter__form { display: grid; gap: var(--space-3); }
.c-newsletter__row { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.c-newsletter__row input { flex: 1 1 14rem; }

/* Formulários (partilhado) */
.c-field { display: grid; gap: var(--space-1); }
.c-field label { font-size: var(--fs-sm); font-weight: 700; color: var(--cc-ardosia); }
.c-field .c-field__opt { font-weight: 400; color: var(--color-text-muted); }
.c-input { width: 100%; min-height: var(--tap); padding: 0.55rem 0.75rem; background: var(--cc-branco); border: 1px solid var(--cc-cinzento); border-radius: var(--radius); }
.c-input:focus-visible { outline-offset: 1px; border-color: var(--cc-petroleo); }
textarea.c-input { min-height: 8rem; resize: vertical; }
.c-form-note { font-size: var(--fs-xs); color: var(--color-text-muted); line-height: 1.5; }
.c-form-status { font-size: var(--fs-sm); padding: var(--space-3) var(--space-4); border-left: 3px solid var(--cc-jade); background: var(--color-bg-alt); color: var(--cc-grafite); }

/* 12 · Contacto */
.c-contact { display: grid; gap: var(--space-7); }
@media (min-width: 64rem) { .c-contact { grid-template-columns: 0.9fr 1.1fr; gap: var(--space-8); } }
.c-contact__direct { list-style: none; display: grid; gap: var(--space-4); margin-top: var(--space-5); }
.c-contact__direct dt, .c-contact__label { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); }
.c-contact__direct a { font-size: var(--fs-xl); font-weight: 700; }
.c-contact__form { display: grid; gap: var(--space-4); padding: var(--space-5); background: var(--color-bg); border: 1px solid var(--color-rule); }
@media (min-width: 40rem) { .c-contact__form { grid-template-columns: 1fr 1fr; } .c-field--full { grid-column: 1 / -1; } }
.c-contact__form .c-btn { justify-self: start; }

/* Ajustes */
.c-section-head--flush { margin-bottom: 0; }
.c-founder__photo, .c-contact__direct dd { margin: 0; }
address { font-style: normal; }
.c-input[aria-invalid="true"] { border-color: var(--cc-carmim); border-width: 2px; }

/* ==========================================================================
   TEMPLATE 02 · VARIANTE APOIO PRIORITÁRIO (Caderno §10)
   Carmim = Situações críticas · Ocre = Obrigações com prazo (sempre com rótulo textual)
   ========================================================================== */
.c-triage--critical, .c-jump__link--critical, .c-need-group--critical { --group-color: var(--color-critical); }
.c-triage--deadline, .c-jump__link--deadline, .c-need-group--deadline { --group-color: var(--color-deadline); }

/* Abertura */
.c-page-hero { background: var(--color-bg); border-bottom: 1px solid var(--color-rule); }
.c-page-hero__inner { display: grid; gap: var(--space-4); padding-block: var(--space-7) var(--space-7); }
.c-page-hero h1 { font-size: var(--fs-3xl); max-width: 22ch; }
.c-page-hero__lead { font-size: var(--fs-lg); line-height: 1.5; max-width: var(--measure); }
.c-page-hero__note { font-size: var(--fs-sm); color: var(--color-text-muted); max-width: var(--measure); }
@media (min-width: 48rem) { .c-page-hero h1 { font-size: var(--fs-4xl); } .c-page-hero__inner { padding-block: var(--space-8); } }

.c-jump { display: grid; gap: var(--space-3); margin-top: var(--space-3); }
@media (min-width: 48rem) { .c-jump { grid-template-columns: 1fr 1fr; } }
.c-jump__link { display: grid; gap: var(--space-1); padding: var(--space-4) var(--space-5); border: 1px solid var(--color-rule); border-left: 4px solid var(--group-color); border-radius: var(--radius); color: var(--cc-ardosia); font-size: var(--fs-sm); text-decoration: none; }
.c-jump__link:hover { background: var(--color-bg-alt); }
.c-jump__tag { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--group-color); }

/* Grupos e percursos */
.c-triage__head { display: grid; gap: var(--space-2); max-width: var(--measure); margin-bottom: var(--space-6); padding-top: var(--space-4); border-top: 4px solid var(--group-color); }
.c-triage__head h2 { font-size: var(--fs-2xl); }
.c-triage__head p { color: var(--color-text-muted); }
@media (min-width: 48rem) { .c-triage__head h2 { font-size: var(--fs-3xl); } }
.c-paths { display: grid; gap: var(--space-4); }
@media (min-width: 64rem) { .c-paths { grid-template-columns: 1fr 1fr; gap: var(--space-5); } }
.c-path { display: grid; grid-template-rows: auto auto auto auto auto 1fr auto; gap: var(--space-3); align-content: start; padding: var(--space-5); background: var(--color-bg); border: 1px solid var(--color-rule); border-top: 3px solid var(--group-color); border-radius: var(--radius); }
.c-path:target { outline: 2px solid var(--group-color); outline-offset: 2px; }
.c-path__label { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--group-color); }
.c-path h3 { font-size: var(--fs-xl); }
.c-path__reg { display: inline-block; margin-left: var(--space-1); padding: 0 var(--space-2); border: 1px solid var(--color-rule); border-radius: var(--radius); font-size: var(--fs-xs); font-weight: 700; letter-spacing: .06em; color: var(--color-text-muted); vertical-align: middle; }
.c-path__deadline { font-weight: 700; color: var(--cc-ardosia); }
.c-path__deadline span { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--group-color); margin-right: var(--space-2); }
.c-path__lead { color: var(--color-text); }
.c-path__lead strong { color: var(--cc-ardosia); }
.c-path__subhead { font-size: var(--fs-sm); color: var(--cc-ardosia); margin-top: var(--space-2); }
.c-path__list { list-style: none; display: grid; gap: var(--space-1); font-size: var(--fs-sm); }
.c-path__list li { padding-left: var(--space-4); position: relative; }
.c-path__list li::before { content: ""; position: absolute; left: 0; top: .7em; width: .4rem; height: 1px; background: var(--cc-cinzento); }
.c-path__cta { justify-self: start; margin-top: var(--space-3); white-space: normal; text-align: left; }
.c-triage__caveat { margin-top: var(--space-5); max-width: var(--measure); font-size: var(--fs-sm); color: var(--color-text-muted); }
.c-crosslink { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-rule); font-size: var(--fs-sm); color: var(--color-text-muted); }
.c-crosslink a { font-weight: 700; }

/* Formulário de triagem */
.c-triage-form__inner { max-width: 48rem; }
.c-form { display: grid; gap: var(--space-5); padding: var(--space-5); border: 1px solid var(--color-rule); border-radius: var(--radius); background: var(--color-bg); }
@media (min-width: 48rem) { .c-form { padding: var(--space-6); } }
.c-fieldset { margin: 0; padding: 0; border: 0; min-width: 0; display: grid; gap: var(--space-4); }
.c-fieldset--conditional { padding: var(--space-4); background: var(--color-bg-alt); border-left: 3px solid var(--cc-petroleo); }
.c-fieldset__legend { padding: 0; margin-bottom: var(--space-3); font-weight: 700; font-size: var(--fs-lg); color: var(--cc-ardosia); }
.c-field__q { font-size: var(--fs-sm); font-weight: 700; color: var(--cc-ardosia); }
.c-form__grid { display: grid; gap: var(--space-4); }
@media (min-width: 40rem) { .c-form__grid { grid-template-columns: 1fr 1fr; } }
.c-input--auto { width: auto; max-width: 100%; min-width: 14rem; }
@media (max-width: 24rem) { .c-input--auto { min-width: 0; width: 100%; } }
.c-input:disabled { background: var(--color-bg-alt); color: var(--color-text-muted); }

.c-need-groups { display: grid; gap: var(--space-4); }
@media (min-width: 40rem) { .c-need-groups { grid-template-columns: 1fr 1fr; } }
.c-need-group { display: grid; gap: var(--space-2); align-content: start; }
.c-need-group__tag { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--group-color); }

.c-choice { display: flex; align-items: center; gap: var(--space-3); min-height: var(--tap); padding: var(--space-2) var(--space-3); border: 1px solid var(--color-rule); border-radius: var(--radius); background: var(--cc-branco); cursor: pointer; font-size: var(--fs-sm); }
.c-choice input { width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--cc-petroleo); flex: none; }
.c-choice:has(input:checked) { border-color: var(--cc-ardosia); box-shadow: inset 0 0 0 1px var(--cc-ardosia); font-weight: 700; }
.c-choice:has(input:focus-visible) { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.c-need-group .c-choice:has(input:checked) { border-color: var(--group-color); box-shadow: inset 3px 0 0 var(--group-color); }
.c-choice-row { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.c-choice--inline { display: inline-flex; margin-top: var(--space-2); border: 0; padding-inline: 0; background: transparent; }
.c-choice[aria-invalid], .c-field:has([aria-invalid]) > .c-field__q { color: var(--cc-carmim); }
input[type="radio"][aria-invalid="true"] { outline: 2px solid var(--cc-carmim); outline-offset: 2px; }
.c-form-hint { font-size: var(--fs-sm); padding: var(--space-3) var(--space-4); border-left: 3px solid var(--cc-ocre); background: var(--cc-branco); margin-top: var(--space-2); }

.c-security-note { font-size: var(--fs-sm); padding: var(--space-3) var(--space-4); border: 1px solid var(--cc-ardosia); border-radius: var(--radius); background: var(--color-bg-alt); color: var(--cc-grafite); }
.c-security-note__label { display: block; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cc-ardosia); margin-bottom: var(--space-1); }
.c-form__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.c-form__actions .c-btn { white-space: normal; }
.c-form-success { padding: var(--space-6); border: 1px solid var(--color-rule); border-left: 4px solid var(--cc-jade); background: var(--color-bg); display: grid; gap: var(--space-3); }
.c-form-success h3 { font-size: var(--fs-xl); }
.c-subhead--top { margin-top: 0; }

/* Barra de pré-visualização (apenas no build de pré-visualização; não integra o site) */
.c-preview-bar { background: var(--cc-grafite); color: var(--cc-branco); font-size: var(--fs-xs); }
.c-preview-bar .l-container { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); min-height: 2.25rem; padding-block: var(--space-1); }
.c-preview-bar a { color: var(--cc-branco); }
.c-preview-bar a[aria-current="page"] { font-weight: 700; text-decoration-thickness: 2px; }
.c-preview-bar :focus-visible { outline-color: var(--cc-branco); }
/* Legend dentro de caixa: evita sobreposição à margem superior do fieldset */
.c-fieldset__legend { float: left; width: 100%; }
.c-fieldset__legend + * { clear: both; }

/* ==========================================================================
   TEMPLATE 02 · PÁGINA TEMÁTICA (Serviços · Sectores · CPLP · Empresa)
   ========================================================================== */
.c-breadcrumb { padding-block: var(--space-4) 0; font-size: var(--fs-xs); color: var(--color-text-muted); }
.c-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-2); }
.c-breadcrumb li + li::before { content: "›"; margin-right: var(--space-2); color: var(--cc-cinzento); }
.c-breadcrumb a { color: var(--color-text-muted); }
.c-breadcrumb [aria-current] { color: var(--cc-ardosia); font-weight: 700; }
.c-breadcrumb--flush { padding: 0; margin-bottom: var(--space-5); }

.c-page-hero--theme { border-bottom: 0; }
.c-theme-hero { display: grid; gap: var(--space-6); padding-block: var(--space-6) var(--space-8); }
.c-theme-hero__main { display: grid; gap: var(--space-4); align-content: start; }
.c-theme-hero h1 { font-size: var(--fs-3xl); max-width: 20ch; }
@media (min-width: 48rem) { .c-theme-hero h1 { font-size: var(--fs-4xl); } }
@media (min-width: 64rem) { .c-theme-hero { grid-template-columns: 1.4fr 1fr; gap: var(--space-8); align-items: end; } }
.c-question { padding: var(--space-5) var(--space-5) var(--space-5) var(--space-6); background: var(--color-bg-dark); color: var(--color-on-dark); border-radius: var(--radius); }
.c-question__label { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: var(--space-3); opacity: .85; }
.c-question__text { font-size: var(--fs-lg); line-height: 1.45; font-style: italic; }

.c-split { display: grid; gap: var(--space-7); }
.c-split__main { display: grid; gap: var(--space-4); align-content: start; }
.c-split__main h2 { font-size: var(--fs-2xl); max-width: 24ch; }
@media (min-width: 48rem) { .c-split__main h2 { font-size: var(--fs-3xl); } }
@media (min-width: 64rem) { .c-split { grid-template-columns: 1.3fr 1fr; gap: var(--space-8); } }

/* Referenciais: prova de domínio, camada secundária (não protagonista) */
.c-frameworks { align-self: start; border-top: 1px solid var(--color-rule); padding-top: var(--space-4); }
.c-frameworks__title { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: var(--space-3); }
.c-frameworks dl { margin: 0; display: grid; }
.c-frameworks dl > div { display: grid; grid-template-columns: minmax(7.5rem, auto) 1fr; gap: var(--space-3); padding-block: var(--space-2); border-bottom: 1px solid var(--color-rule); font-size: var(--fs-sm); }
.c-frameworks dt { font-weight: 700; color: var(--cc-ardosia); }
.c-frameworks dd { margin: 0; color: var(--color-text-muted); }

.c-problems { list-style: none; display: grid; gap: var(--space-4); }
@media (min-width: 48rem) { .c-problems { grid-template-columns: repeat(2, 1fr); column-gap: var(--space-7); } }
@media (min-width: 64rem) { .c-problems { grid-template-columns: repeat(3, 1fr); } }
.c-problems li { padding-top: var(--space-3); border-top: 2px solid var(--cc-ardosia); font-size: var(--fs-lg); line-height: 1.4; color: var(--cc-ardosia); }

.c-steps__list { list-style: none; display: grid; gap: var(--space-2); font-size: var(--fs-sm); }
.c-steps__list li { padding-left: var(--space-4); position: relative; }
.c-steps__list li::before { content: ""; position: absolute; left: 0; top: .7em; width: .4rem; height: 1px; background: var(--cc-cinzento); }

.c-formats { margin-top: var(--space-7); display: grid; gap: var(--space-3); }
.c-formats__title { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); }
.c-formats ul, .c-deliverables { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.c-formats li { padding: var(--space-1) var(--space-3); border: 1px solid var(--color-rule); border-radius: var(--radius); font-size: var(--fs-sm); color: var(--cc-ardosia); }
.c-deliverables li { padding: var(--space-3) var(--space-4); background: var(--color-bg); border: 1px solid var(--color-rule); border-radius: var(--radius); font-weight: 700; color: var(--cc-ardosia); }

.c-related { list-style: none; display: grid; gap: var(--space-4); }
@media (min-width: 48rem) { .c-related { grid-template-columns: repeat(2, 1fr); } }
.c-related__link { display: grid; gap: var(--space-2); height: 100%; padding: var(--space-5); border: 1px solid var(--color-rule); border-radius: var(--radius); color: var(--color-text); text-decoration: none; }
.c-related__link strong { font-size: var(--fs-lg); color: var(--cc-ardosia); }
.c-related__link strong::after { content: " →"; color: var(--cc-petroleo); font-weight: 400; }
.c-related__link span { font-size: var(--fs-sm); color: var(--color-text-muted); }
.c-related__link:hover strong { text-decoration: underline; }

.c-cta-band { display: grid; gap: var(--space-6); }
.c-cta-band h2 { font-size: var(--fs-2xl); margin-bottom: var(--space-3); }
.c-cta-band p { max-width: var(--measure); }
.c-cta-band__actions { display: grid; gap: var(--space-4); justify-items: start; align-content: center; }
.c-cta-band__direct, .c-cta-band__direct a { color: var(--color-on-dark); font-size: var(--fs-sm); }
.l-section--dark :focus-visible { outline-color: var(--cc-branco); }
@media (min-width: 64rem) { .c-cta-band { grid-template-columns: 1.4fr 1fr; align-items: center; } .c-cta-band h2 { font-size: var(--fs-3xl); } }

/* ==========================================================================
   TEMPLATE 03 · PÁGINA EDITORIAL (Insights)
   ========================================================================== */
.c-article__measure { max-width: calc(44rem + 2 * var(--gutter)); }
.c-article__header { padding-block: var(--space-6) var(--space-6); border-bottom: 1px solid var(--color-rule); margin-bottom: var(--space-7); }
.c-article__header .c-article__measure { display: grid; gap: var(--space-4); }
.c-article__cat { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.c-article__cat a { color: var(--cc-jade); text-decoration: none; }
.c-article__cat a:hover { text-decoration: underline; }
.c-article__header h1 { font-size: var(--fs-2xl); }
@media (min-width: 48rem) { .c-article__header h1 { font-size: var(--fs-3xl); } }
.c-article__lead { font-size: var(--fs-lg); line-height: 1.5; color: var(--color-text); }
.c-article__meta { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-2); font-size: var(--fs-sm); color: var(--color-text-muted); }
.c-article__cta { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-block: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--color-rule); }

/* Corpo editorial: hierarquia H2/H3, parágrafos curtos, listas, links sublinhados em petróleo */
.c-prose { font-size: var(--fs-md); line-height: 1.7; }
.c-prose > * + * { margin-top: var(--space-4); }
.c-prose h2 { font-size: var(--fs-xl); margin-top: var(--space-7); }
.c-prose h3 { font-size: var(--fs-lg); margin-top: var(--space-6); }
.c-prose h2 + *, .c-prose h3 + * { margin-top: var(--space-3); }
.c-prose ul, .c-prose ol { padding-left: 1.4rem; display: grid; gap: var(--space-2); }
.c-prose li::marker { color: var(--cc-petroleo); font-weight: 700; }
.c-prose blockquote { margin: var(--space-5) 0; padding: var(--space-3) var(--space-5); border-left: 3px solid var(--cc-ardosia); font-style: italic; color: var(--cc-ardosia); }
.c-article__body > :first-child { margin-top: 0; }
.c-prose__sources { margin-top: var(--space-7) !important; padding-top: var(--space-4); border-top: 1px solid var(--color-rule); font-size: var(--fs-sm); }
.c-prose__sources h2 { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); margin: 0 0 var(--space-2); }
.c-prose__sources ul { list-style: none; padding: 0; }

.c-author { display: grid; grid-template-columns: auto 1fr; gap: var(--space-4); padding: var(--space-5); margin-bottom: var(--space-8); background: var(--color-bg-alt); border-radius: var(--radius); font-size: var(--fs-sm); }
.c-author__photo { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; }
.c-author__body { display: grid; gap: var(--space-2); }
.c-author__label { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); }
.c-author__name { font-size: var(--fs-lg); font-weight: 700; color: var(--cc-ardosia); }
.c-author__role { color: var(--color-text-muted); margin-top: calc(var(--space-2) * -1); }
.c-author__links { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); }
@media (max-width: 30rem) { .c-author { grid-template-columns: 1fr; } }

.c-editorial-related { display: grid; gap: var(--space-7); }
@media (min-width: 64rem) { .c-editorial-related { grid-template-columns: 2fr 1fr; gap: var(--space-8); } }
.c-insights--two { grid-template-columns: 1fr; }
@media (min-width: 48rem) { .c-insights--two { grid-template-columns: 1fr 1fr; } }
.c-card__title { font-size: var(--fs-xl); }
.c-card__title a { color: inherit; text-decoration: none; }
.c-card__title a:hover { text-decoration: underline; }

/* ==========================================================================
   PÁGINAS-MÃE (iteração 4): Serviços · Sectores · CPLP · Empresa · Contacto · Insights · Parcerias
   ========================================================================== */
.c-jump--neutral .c-jump__link { --group-color: var(--cc-ardosia); }
.c-jump--neutral .c-jump__tag { color: var(--cc-ardosia); }

/* Serviços — especializações nucleares: blocos com peso; transversais: linhas leves */
.c-offer { display: grid; gap: var(--space-5); }
@media (min-width: 64rem) { .c-offer { grid-template-columns: 1fr 1fr; gap: var(--space-6); } }
.c-offer__item { display: grid; grid-template-rows: auto auto 1fr auto auto; gap: var(--space-3); padding: var(--space-5); border: 1px solid var(--color-rule); border-top: 3px solid var(--cc-ardosia); border-radius: var(--radius); background: var(--color-bg); }
@media (min-width: 48rem) { .c-offer__item { padding: var(--space-6); } }
.c-offer__item:target { outline: 2px solid var(--cc-petroleo); outline-offset: 2px; }
.c-offer__num { font-size: var(--fs-sm); font-weight: 700; color: var(--cc-petroleo); font-variant-numeric: tabular-nums; }
.c-offer__item h3 { font-size: var(--fs-xl); }
.c-offer__pr { margin: 0; display: grid; gap: var(--space-3); }
.c-offer__pr dt { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); }
.c-offer__pr dd { margin: 0; }
.c-offer__pr div:first-child dd { font-style: italic; }
.c-offer__pr div:last-child dd { font-weight: 700; color: var(--cc-ardosia); font-size: var(--fs-lg); line-height: 1.35; }
.c-offer__scope { font-size: var(--fs-sm); color: var(--color-text-muted); padding-top: var(--space-3); border-top: 1px solid var(--color-rule); }
.c-offer__scope span { font-weight: 700; color: var(--cc-ardosia); margin-right: var(--space-2); }
.c-capabilities { display: grid; border-top: 1px solid var(--color-rule); }
@media (min-width: 48rem) { .c-capabilities { grid-template-columns: 1fr 1fr; column-gap: var(--space-7); } }
.c-capabilities__item { display: grid; gap: var(--space-2); align-content: start; padding-block: var(--space-5); border-bottom: 1px solid var(--color-rule); }
.c-capabilities__item h3 { font-size: var(--fs-lg); }
.c-capabilities__item .c-offer__scope { border: 0; padding: 0; }
.c-transversal--flat { background: var(--color-bg); }
.c-steps--three { }
@media (min-width: 64rem) { .c-steps--three { grid-template-columns: repeat(3, 1fr); } }

/* Sectores */
.c-sector-index ul { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-2); }
.c-sector-index a { display: inline-flex; align-items: center; min-height: 2.25rem; padding: var(--space-1) var(--space-3); border: 1px solid var(--color-rule); border-radius: var(--radius-control); font-size: var(--fs-sm); color: var(--cc-ardosia); text-decoration: none; }
.c-sector-index a:hover { border-color: var(--cc-ardosia); }
.c-sector-list { display: grid; gap: var(--space-5); }
.c-sector { padding: var(--space-5); background: var(--color-bg); border: 1px solid var(--color-rule); border-radius: var(--radius); }
@media (min-width: 48rem) { .c-sector { padding: var(--space-6); } }
.c-sector:target { outline: 2px solid var(--cc-petroleo); outline-offset: 2px; }
.c-sector h2 { font-size: var(--fs-xl); margin-bottom: var(--space-4); }
.c-sector__grid { display: grid; gap: var(--space-5); }
@media (min-width: 48rem) { .c-sector__grid { grid-template-columns: 1.2fr 1fr 1.2fr; gap: var(--space-6); } }
.c-sector__grid h3 { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: var(--space-2); }
.c-sector__grid ul { list-style: none; display: grid; gap: var(--space-1); font-size: var(--fs-sm); }
.c-sector__grid ul:not(.c-tags):not(.c-sector__links) li { padding-left: var(--space-4); position: relative; }
.c-sector__grid ul:not(.c-tags):not(.c-sector__links) li::before { content: ""; position: absolute; left: 0; top: .75em; width: .4rem; height: 1px; background: var(--cc-cinzento); }
.c-tags { display: flex !important; flex-wrap: wrap; gap: var(--space-2) !important; }
.c-tags li { padding: 0 var(--space-2); border: 1px solid var(--color-rule); border-radius: var(--radius); font-weight: 700; color: var(--cc-ardosia); font-size: var(--fs-xs); line-height: 1.9; }
.c-sector__links a { font-weight: 700; }
.c-sector__note { margin-top: var(--space-2); font-size: var(--fs-xs); color: var(--color-text-muted); font-style: italic; }

/* CPLP */
.c-h1-long { font-size: var(--fs-2xl) !important; max-width: 30ch !important; }
@media (min-width: 48rem) { .c-h1-long { font-size: var(--fs-3xl) !important; } }
.c-geo { margin: 0; display: grid; gap: var(--space-3); align-self: center; padding: var(--space-5); border: 1px solid var(--color-rule); border-radius: var(--radius); }
.c-geo__row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.c-geo__node { padding: var(--space-2) var(--space-3); border: 1px solid var(--cc-ardosia); border-radius: var(--radius); font-weight: 700; color: var(--cc-ardosia); font-size: var(--fs-sm); }
.c-geo__node--pt { background: var(--cc-ardosia); color: var(--cc-branco); }
.c-geo__link { color: var(--cc-cinzento); }
.c-geo figcaption { font-size: var(--fs-xs); color: var(--color-text-muted); }
.c-two-lists { display: grid; gap: var(--space-7); }
.c-two-lists h2 { font-size: var(--fs-2xl); margin: var(--space-2) 0 var(--space-4); }
@media (min-width: 48rem) { .c-two-lists { grid-template-columns: 1fr 1fr; } }
.c-checklist { list-style: none; display: grid; border-top: 1px solid var(--color-rule); }
.c-checklist li { padding-block: var(--space-3); border-bottom: 1px solid var(--color-rule); color: var(--cc-ardosia); font-weight: 700; }
.c-model { list-style: none; display: grid; gap: var(--space-3); counter-reset: m; }
@media (min-width: 64rem) { .c-model { grid-template-columns: repeat(4, 1fr); } }
.c-model li { position: relative; display: grid; gap: var(--space-1); align-content: start; padding: var(--space-4); border: 1px solid var(--color-rule); border-radius: var(--radius); color: var(--cc-ardosia); }
.c-model li + li::before { content: "+"; position: absolute; top: -1.1rem; left: var(--space-4); font-weight: 700; color: var(--cc-petroleo); }
@media (min-width: 64rem) { .c-model li + li::before { top: 50%; left: -0.9rem; transform: translateY(-50%); } }
.c-model span { font-size: var(--fs-sm); color: var(--color-text-muted); }
.c-note-block { margin-top: var(--space-6); padding: var(--space-4) var(--space-5); background: var(--color-bg-alt); border-left: 3px solid var(--cc-ardosia); display: grid; gap: var(--space-2); max-width: 48rem; }
.c-note-block h3 { font-size: var(--fs-lg); }

/* Empresa */
.c-founder--profile .c-founder__body { max-width: 44rem; }
.c-founder--profile h2 { font-size: var(--fs-2xl); }
.c-quals { display: grid; gap: var(--space-3); padding-top: var(--space-4); border-top: 1px solid var(--color-rule); }
.c-quals h3 { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); }
.c-quals dl { margin: 0; display: grid; gap: var(--space-2); }
.c-quals dl > div { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); }
.c-quals dt { font-weight: 700; color: var(--cc-ardosia); }
.c-quals dd { margin: 0; color: var(--color-text-muted); }
.c-h2-plain { font-size: var(--fs-2xl); margin: var(--space-2) 0 var(--space-5); }
.c-principles { list-style: none; display: grid; gap: var(--space-3); }
@media (min-width: 40rem) { .c-principles { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64rem) { .c-principles { grid-template-columns: repeat(3, 1fr); } }
.c-principles li { padding: var(--space-4) var(--space-5); background: var(--color-bg); border: 1px solid var(--color-rule); border-left: 3px solid var(--cc-ardosia); border-radius: var(--radius); font-weight: 700; font-size: var(--fs-lg); color: var(--cc-ardosia); }

/* Contacto (página) */
.c-contact__intro { display: grid; gap: var(--space-4); align-content: start; }
.c-contact__intro h1 { font-size: var(--fs-3xl); }
@media (min-width: 48rem) { .c-contact__intro h1 { font-size: var(--fs-4xl); } }
.c-contact__direct dd { margin: 0; }

/* Insights (landing) */
.c-filters ul { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.c-filters a { display: inline-flex; align-items: center; min-height: var(--tap); padding: var(--space-1) var(--space-4); border: 1px solid var(--color-rule); border-radius: var(--radius-control); color: var(--cc-ardosia); text-decoration: none; font-size: var(--fs-sm); }
.c-filters a[aria-current] { border-color: var(--cc-ardosia); font-weight: 700; text-decoration: underline; text-underline-offset: .3em; }
.c-feature { display: grid; gap: var(--space-3); max-width: 48rem; padding: var(--space-5) var(--space-5) var(--space-5) var(--space-6); background: var(--color-bg); border: 1px solid var(--color-rule); border-top: 3px solid var(--cc-jade); border-radius: var(--radius); }
.c-feature h2 { font-size: var(--fs-2xl); }
.c-feature h2 a { color: inherit; text-decoration: none; }
.c-feature h2 a:hover { text-decoration: underline; }
.c-insight__summary { font-size: var(--fs-sm); color: var(--color-text-muted); font-style: italic; }

/* Pré-visualização: página ainda não construída */
.c-stub { padding-block: var(--space-9); display: grid; gap: var(--space-3); max-width: var(--measure); }
.c-stub code { font-size: var(--fs-sm); background: var(--color-bg-alt); padding: 0 var(--space-2); }

/* ==========================================================================
   ITERAÇÃO 5 · Páginas de serviço (variantes) · Páginas legais
   ========================================================================== */
.c-frameworks .c-tags { margin-top: var(--space-1); }
.c-frameworks--stack dl > div { grid-template-columns: 1fr; gap: var(--space-1); }

.c-legal { padding-block: var(--space-6) var(--space-8); }
.c-legal__header { display: grid; gap: var(--space-3); padding-bottom: var(--space-5); border-bottom: 1px solid var(--color-rule); }
.c-legal__header h1 { font-size: var(--fs-2xl); }
@media (min-width: 48rem) { .c-legal__header h1 { font-size: var(--fs-3xl); } }
.c-legal__meta { font-size: var(--fs-sm); color: var(--color-text-muted); }
.c-legal__placeholder { padding: var(--space-3) var(--space-4); border: 1px dashed var(--cc-cinzento); border-radius: var(--radius); background: var(--color-bg-alt); color: var(--color-text-muted); font-size: var(--fs-sm); font-style: italic; }
.c-legal__toc { margin-block: var(--space-5); padding: var(--space-4) var(--space-5); background: var(--color-bg-alt); border-radius: var(--radius); }
.c-legal__toc-title { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: var(--space-2); }
.c-legal__toc ol { padding-left: 1.4rem; display: grid; gap: var(--space-1); font-size: var(--fs-sm); }
.c-legal__body section { scroll-margin-top: calc(var(--header-h) + var(--space-4)); }
.c-legal__body h2 { font-size: var(--fs-lg); }
.c-legal__back { margin-top: var(--space-7); font-size: var(--fs-sm); }
.c-table-wrap { overflow-x: auto; }
.c-legal__table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.c-legal__table caption { text-align: left; font-size: var(--fs-xs); color: var(--color-text-muted); padding-bottom: var(--space-2); }
.c-legal__table th, .c-legal__table td { text-align: left; padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--color-rule); }
.c-legal__table th { color: var(--cc-ardosia); }
.c-support { display: grid; gap: var(--space-4); padding: var(--space-5); border: 1px solid var(--color-rule); border-left: 3px solid var(--cc-ardosia); border-radius: var(--radius); background: var(--color-bg-alt); }
@media (min-width: 64rem) { .c-support { grid-template-columns: 1.6fr 1fr; align-items: center; column-gap: var(--space-7); padding: var(--space-6); } .c-support > .c-more { grid-column: 1; } }
.c-support h2 { font-size: var(--fs-2xl); margin: var(--space-2) 0 var(--space-3); }
.c-support p:not(.c-eyebrow) { max-width: var(--measure); }
.c-support__areas { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.c-support__areas li { padding: var(--space-1) var(--space-3); border: 1px solid var(--color-rule); border-radius: var(--radius); background: var(--color-bg); font-size: var(--fs-sm); color: var(--cc-ardosia); }
@media (min-width: 64rem) { .c-support__areas { grid-column: 2; grid-row: 1 / span 2; } }
.c-transversal .c-more { margin-left: auto; }
.c-tags { list-style: none; padding: 0; margin: 0; }

/* ==========================================================================
   ITERAÇÃO 6 · Afinação UI/UX pós-lançamento (inspecção de 24/09/2026)
   1) Header invertido (azul-ardósia, logótipo e texto a branco)
   2) Sistema de botões e campos com altura única (48px) e alinhamentos
   ========================================================================== */

/* ---------- 1. Header em azul-ardósia ---------- */
.c-header {
  background: var(--cc-ardosia);
  color: var(--cc-branco);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.c-header .c-logo { color: var(--cc-branco); }
.c-header .c-nav__link { color: var(--cc-branco); }
.c-header .c-nav__link:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.4em; }
.c-header .c-nav__link[aria-current] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.4em; }
.c-header :focus-visible { outline-color: var(--cc-branco); }

/* CTA secundário do header: contorno branco; ao passar, inverte (branco + texto ardósia) */
.c-header .c-btn--outline { background: transparent; color: var(--cc-branco); border-color: var(--cc-branco); }
.c-header .c-btn--outline:hover,
.c-header .c-btn--outline[aria-current] { background: var(--cc-branco); color: var(--cc-ardosia); }
/* Apoio Prioritário mantém o carmim (texto branco); contorno claro subtil para destacar do fundo ardósia */
.c-header .c-btn--priority { border-color: rgba(255, 255, 255, .28); }

/* Botão "Menu" (mobile) */
.c-header__toggle { color: var(--cc-branco); border-color: rgba(255, 255, 255, .6); background: transparent; }
.c-header__toggle:hover { border-color: var(--cc-branco); }

/* Ícone hambúrguer → X quando aberto (antes passava a um traço, que parecia "menos") */
.c-header__toggle-icon { display: block; position: relative; width: 1.125rem; height: 2px; border: 0; background: currentColor; transition: background-color .15s; }
.c-header__toggle-icon::before,
.c-header__toggle-icon::after { content: ""; position: absolute; left: 0; width: 100%; height: 2px; border: 0; background: currentColor; transform: none; transition: transform .15s; }
.c-header__toggle-icon::before { top: -6px; }
.c-header__toggle-icon::after { top: 6px; }
.c-header__toggle[aria-expanded="true"] .c-header__toggle-icon { background: transparent; border-color: transparent; }
.c-header__toggle[aria-expanded="true"] .c-header__toggle-icon::before { transform: translateY(6px) rotate(45deg); }
.c-header__toggle[aria-expanded="true"] .c-header__toggle-icon::after { transform: translateY(-6px) rotate(-45deg); }

/* Painel mobile sobre ardósia */
.c-header__panel { border-top-color: rgba(255, 255, 255, .14); }
@media (max-width: 79.99rem) {
  .c-header .c-nav__link { border-bottom-color: rgba(255, 255, 255, .14); }
}

/* Header desktop: o CTA ficou mais longo ("Marcar uma reunião") — espaçamento ajustado para caber a 1024px */
@media (min-width: 80rem) {
  .c-header__panel, .c-header__panel[hidden] { gap: var(--space-5); }
  .c-nav__list { gap: var(--space-4); }
}
@media (min-width: 80rem) and (max-width: 89.99rem) {
  .c-header .c-logo svg { width: 11.25rem; }
  .c-nav__list { gap: var(--space-3); }
  .c-header__panel, .c-header__panel[hidden] { gap: var(--space-4); }
  .c-header .c-btn { padding-inline: .875rem; }
}

/* ---------- 2. Botões e campos: uma só medida ---------- */
:root { --control-h: 3rem; } /* 48px: botões, inputs e selects partilham a mesma altura */

.c-btn {
  box-sizing: border-box;
  min-height: var(--control-h);
  padding: .6875rem 1.25rem;          /* 11px / 20px — simétrico */
  line-height: 1.25;
  text-align: center;
  vertical-align: middle;
  flex-shrink: 0;
}
.c-header__toggle { min-height: var(--control-h); padding: 0 .875rem; line-height: 1.25; }

.c-input { box-sizing: border-box; min-height: var(--control-h); padding: .6875rem .875rem; line-height: 1.4; }
select.c-input { padding-right: 2.25rem; }
textarea.c-input { min-height: 8rem; }

/* Linha email + "Subscrever": mesma altura, sem esticar o botão */
.c-newsletter__row { align-items: stretch; }
.c-newsletter__row .c-btn { height: auto; }

/* Cartões do Apoio Prioritário: CTA sempre no fundo do cartão, alinhado entre cartões,
   sem esticar em altura (antes o 1.º cartão tinha o botão com 70px e desalinhado) */
.c-path { display: flex; flex-direction: column; }
.c-path__cta { margin-top: auto; align-self: flex-start; }
.c-path__list { margin-bottom: var(--space-3); }

/* Chips de navegação com a mesma altura (sectores e filtros de insights) */
.c-sector-index a, .c-filters a { min-height: 2.75rem; padding: 0 var(--space-4); }

/* Telemóvel: pares de botões e botões de formulário a toda a largura (simetria) */
@media (max-width: 39.99rem) {
  .c-hero__actions > .c-btn,
  .c-article__cta > .c-btn,
  .c-form__actions > .c-btn,
  .c-contact__form > .c-btn,
  .c-cta-band__actions > .c-btn,
  .c-section-foot > .c-btn,
  .c-path__cta { flex: 1 1 100%; width: 100%; align-self: stretch; justify-self: stretch; }
  .c-newsletter__row > .c-input,
  .c-newsletter__row > .c-btn { flex: 1 1 100%; }
  .c-cta-band__actions { justify-items: stretch; }
}

/* ==========================================================================
   ITERAÇÃO 7 (v1.2.0) · Menu mobile animado · Vídeo · Aviso de cookies · Páginas legais
   ========================================================================== */

/* ---------- Menu mobile: slide-down + fade (0,3s) ---------- */
@media (max-width: 79.99rem) {
  .has-js .c-header__panel { transition: height .3s cubic-bezier(.2, .7, .2, 1), opacity .3s ease; }
  .has-js .c-header__panel:not(.is-open) { opacity: 0; }
  .has-js .c-header__panel.is-open { opacity: 1; }
  .c-header__panel.is-animating { overflow: hidden; }
}

/* ---------- Secção de vídeo (homepage) ---------- */
.c-video-section { position: relative; overflow: hidden; }
.c-video-section__grid { display: grid; gap: var(--space-6); align-items: center; }
@media (min-width: 64rem) { .c-video-section__grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); gap: var(--space-8); } }
.c-video-section__text { display: grid; gap: var(--space-4); align-content: start; }
.c-video-section__text h2 { font-size: var(--fs-2xl); color: var(--color-on-dark); }
@media (min-width: 48rem) { .c-video-section__text h2 { font-size: var(--fs-3xl); } }
.c-video-section__rule { width: 3.5rem; height: 3px; background: var(--cc-ocre); }
.c-video-section__quote { margin: 0; font-style: italic; font-size: var(--fs-lg); line-height: 1.5; color: var(--color-on-dark); opacity: .92; }
.c-video-section__meta { font-size: var(--fs-sm); color: var(--color-on-dark); opacity: .75; }

.c-video { margin: 0; }
.c-video__frame { position: relative; aspect-ratio: 16 / 9; max-width: 100%; background: #0f1720; border-radius: var(--radius); overflow: hidden; box-shadow: 0 0 0 1px rgba(255, 255, 255, .12), 0 24px 48px -24px rgba(0, 0, 0, .6); }
.c-video__frame video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #0f1720; }
.c-video.is-playing .c-video__frame video, .c-video__frame video[controls] { object-fit: contain; }
.c-video__play {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: var(--space-3);
  border: 0; padding: 0; cursor: pointer; color: var(--cc-branco); font: inherit; font-weight: 700; font-size: var(--fs-md);
  background: linear-gradient(180deg, rgba(31, 45, 61, 0) 40%, rgba(31, 45, 61, .55) 100%);
}
.c-video__play-icon { display: inline-flex; align-items: center; justify-content: center; width: 4.5rem; height: 4.5rem; border-radius: 50%; background: var(--cc-branco); color: var(--cc-ardosia); box-shadow: 0 8px 24px rgba(0, 0, 0, .35); transition: transform .2s ease; }
.c-video__play-icon svg { width: 1.5rem; height: 1.5rem; margin-left: .2rem; }
.c-video__play:hover .c-video__play-icon, .c-video__play:focus-visible .c-video__play-icon { transform: scale(1.06); }
.c-video__play-label { position: absolute; left: var(--space-5); bottom: var(--space-4); font-size: var(--fs-sm); letter-spacing: .02em; }
.c-video__play:focus-visible { outline: 3px solid var(--cc-branco); outline-offset: -6px; }
.c-video figcaption { margin-top: var(--space-3); font-size: var(--fs-xs); color: var(--color-on-dark); opacity: .7; }

/* ---------- Aviso de cookies (informativo, fixo no fundo) ---------- */
.c-cookie-notice {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  padding: var(--space-4) var(--gutter) calc(var(--space-4) + env(safe-area-inset-bottom, 0px));
  background: var(--cc-ardosia); color: var(--cc-branco);
  border-top: 1px solid rgba(255, 255, 255, .14); box-shadow: 0 -12px 32px -16px rgba(0, 0, 0, .45);
  transform: translateY(100%); opacity: 0; transition: transform .3s ease, opacity .3s ease;
}
.c-cookie-notice.is-visible { transform: none; opacity: 1; }
.c-cookie-notice__inner { max-width: var(--container); margin-inline: auto; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-6); }
.c-cookie-notice__text { flex: 1 1 28rem; margin: 0; font-size: var(--fs-sm); line-height: 1.55; }
.c-cookie-notice__text a { color: var(--cc-branco); font-weight: 700; }
.c-cookie-notice__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.c-cookie-notice :focus-visible { outline-color: var(--cc-branco); }
@media (max-width: 39.99rem) { .c-cookie-notice__actions, .c-cookie-notice__actions .c-btn { width: 100%; } }

/* ---------- Páginas legais com texto definitivo ---------- */
.c-legal__callout { margin: var(--space-5) 0; padding: var(--space-4) var(--space-5); background: var(--color-bg-alt); border-left: 3px solid var(--cc-ardosia); border-radius: var(--radius); }
.c-legal__callout > * + * { margin-top: var(--space-2); }
.c-legal__callout-title { font-size: var(--fs-xs) !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cc-ardosia); }
.c-legal__intro { margin-top: var(--space-3); }
.c-legal__body .c-table-wrap { margin-block: var(--space-4); }
.c-legal__body .c-legal__table th, .c-legal__body .c-legal__table td { vertical-align: top; }
.c-legal__body .c-legal__table thead th { background: var(--color-bg-alt); }
.c-legal__body h3 { font-size: var(--fs-md); margin-top: var(--space-5); }
.c-legal__toc-list { list-style: none; padding: 0 !important; display: grid; gap: var(--space-1); font-size: var(--fs-sm); }

/* =========================================================================
   v1.3.0 · Adenda v1.2 — Auditoria de Privacidade e Compliance de Websites
   Sem cor nova: ardósia, petróleo, carmim (apontamento), linha, quase-branco.
   ========================================================================= */

/* ---------- Produto em destaque (homepage / serviços) ---------- */
.c-product { display: grid; gap: var(--space-6); padding: var(--space-5); background: var(--color-bg); border: 1px solid var(--color-rule); border-top: 3px solid var(--cc-ardosia); border-radius: var(--radius); }
@media (min-width: 48rem) { .c-product { padding: var(--space-7); } }
@media (min-width: 64rem) { .c-product { grid-template-columns: 1.45fr 1fr; gap: var(--space-8); align-items: start; } }
.c-product__main { display: grid; gap: var(--space-4); align-content: start; }
.c-product__main h2 { font-size: var(--fs-2xl); max-width: 22ch; }
@media (min-width: 48rem) { .c-product__main h2 { font-size: var(--fs-3xl); } }
.c-product__subtitle { font-size: var(--fs-lg); font-style: italic; color: var(--cc-ardosia); }
.c-product__question { padding-left: var(--space-4); border-left: 3px solid var(--cc-carmim); font-size: var(--fs-lg); line-height: 1.45; color: var(--cc-ardosia); font-weight: 700; }
.c-product__main > p:not([class]) { max-width: var(--measure); }
.c-product__scope { font-size: var(--fs-sm); color: var(--color-text-muted); padding-top: var(--space-3); border-top: 1px solid var(--color-rule); }
.c-product__main .c-hero__actions { margin-top: var(--space-2); }
.c-product__aside { display: grid; gap: var(--space-4); align-content: start; padding: var(--space-5); background: var(--color-bg-dark); color: var(--color-on-dark); border-radius: var(--radius); }
.c-product__aside--light { background: var(--color-bg-alt); color: var(--color-text); border: 1px solid var(--color-rule); }
.c-product__aside-title { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .9; }
.c-product__result { font-size: var(--fs-sm); line-height: 1.55; padding-top: var(--space-3); border-top: 1px solid rgba(255, 255, 255, .2); }
.c-product__aside--light .c-product__result { border-top-color: var(--color-rule); color: var(--cc-ardosia); font-weight: 700; }
.c-product--compact { border-top-color: var(--cc-petroleo); }
.c-product--compact .c-product__main h2 { font-size: var(--fs-xl); }
@media (min-width: 48rem) { .c-product--compact .c-product__main h2 { font-size: var(--fs-2xl); } }
.c-product__aside--plain { background: transparent; color: var(--color-text); padding: 0; }


/* ---------- Fluxo do método (horizontal ≥ 48rem, vertical em mobile) ---------- */
.c-flow { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); --flow-arrow: var(--cc-petroleo); }
.c-product__aside:not(.c-product__aside--light):not(.c-product__aside--plain) .c-flow { --flow-arrow: rgba(255, 255, 255, .75); }
.c-flow__step { position: relative; display: flex; align-items: center; justify-content: center; padding: var(--space-2) var(--space-3); border: 1px solid currentColor; border-radius: var(--radius-control, 4px); font-size: var(--fs-sm); font-weight: 700; line-height: 1.3; text-align: center; }
.c-flow__step + .c-flow__step { margin-top: var(--space-4); }
.c-flow__step + .c-flow__step::before { content: "↓"; position: absolute; left: 50%; top: calc(-1 * var(--space-4) - var(--space-2) + 2px); transform: translateX(-50%); font-weight: 400; line-height: 1; color: var(--flow-arrow, var(--cc-petroleo)); }
.c-flow__step--key { background: var(--cc-petroleo); border-color: var(--cc-petroleo); color: var(--cc-branco); }
.c-product__aside:not(.c-product__aside--light):not(.c-product__aside--plain) .c-flow__step { border-color: rgba(255, 255, 255, .45); }
.c-product__aside:not(.c-product__aside--light):not(.c-product__aside--plain) .c-flow__step--key { background: var(--cc-branco); border-color: var(--cc-branco); color: var(--cc-ardosia); }
.c-product__aside--light .c-flow__step, .c-product__aside--plain .c-flow__step { color: var(--cc-ardosia); background: var(--color-bg); border-color: var(--color-rule); }
.c-product__aside--light .c-flow__step--key, .c-product__aside--plain .c-flow__step--key { background: var(--cc-petroleo); border-color: var(--cc-petroleo); color: var(--cc-branco); }
@media (min-width: 48rem) and (max-width: 63.99rem) {
  .c-flow { grid-template-columns: repeat(3, 1fr); gap: var(--space-5) var(--space-5); }
  .c-flow__step + .c-flow__step { margin-top: 0; }
  .c-flow__step + .c-flow__step::before { content: "→"; left: calc(-1 * var(--space-5) + 4px); top: 50%; transform: translateY(-50%); }
  .c-flow__step:nth-child(3n + 1)::before { content: none !important; }
}
@media (min-width: 64rem) {
  .c-product--compact .c-flow { grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
  .c-product--compact .c-flow__step + .c-flow__step { margin-top: 0; }
  .c-product--compact .c-flow__step + .c-flow__step::before { content: "→"; left: calc(-1 * var(--space-5) + 4px); top: 50%; transform: translateY(-50%); }
  .c-product--compact .c-flow__step:nth-child(3n + 1)::before { content: none; }
}

/* ---------- Oferta: linha "Produto especializado" no cartão de Privacidade ---------- */
.c-offer__product { font-size: var(--fs-sm); padding: var(--space-3); background: var(--color-bg-alt); border-left: 3px solid var(--cc-petroleo); border-radius: var(--radius); }
.c-offer__product span { display: block; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: var(--space-1); }
.c-offer__product a { font-weight: 700; }

/* ---------- Grelha de cartões 2×3 (âmbito / entregáveis) ---------- */
.c-cardgrid { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
@media (min-width: 40rem) { .c-cardgrid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64rem) { .c-cardgrid { grid-template-columns: repeat(3, 1fr); gap: var(--space-5); } }
.c-cardgrid > li { display: grid; gap: var(--space-2); align-content: start; padding: var(--space-5); background: var(--color-bg); border: 1px solid var(--color-rule); border-top: 2px solid var(--cc-ardosia); border-radius: var(--radius); }
.c-cardgrid h3 { font-size: var(--fs-lg); }
.c-cardgrid p { font-size: var(--fs-sm); color: var(--color-text-muted); line-height: 1.55; }

/* ---------- Método em 5 etapas ---------- */
@media (min-width: 64rem) { .c-steps--five { grid-template-columns: repeat(5, 1fr); gap: var(--space-5); } .c-steps--five .c-steps__item h3 { font-size: var(--fs-lg); } }
.c-steps--five .c-steps__item p { font-size: var(--fs-sm); line-height: 1.55; }

/* ---------- Tabela responsiva (tabela em desktop, cartões em mobile) ---------- */
.c-rtable { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); line-height: 1.55; }
.c-rtable th, .c-rtable td { text-align: left; vertical-align: top; padding: var(--space-4); border-bottom: 1px solid var(--color-rule); }
.c-rtable thead th { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); border-bottom: 2px solid var(--cc-ardosia); }
.c-rtable tbody th { color: var(--cc-ardosia); font-size: var(--fs-md); width: 30%; }
.c-rtable__num { display: block; font-size: var(--fs-xs); color: var(--cc-petroleo); font-variant-numeric: tabular-nums; margin-bottom: var(--space-1); }
.c-rtable tbody tr:nth-child(2) th { border-left: 3px solid var(--cc-petroleo); }
.c-rtable--compact th, .c-rtable--compact td { padding: var(--space-3); }
.c-rtable--compact tbody th { font-size: var(--fs-sm); width: 38%; }
.c-rtable--compact tbody tr:nth-child(2) th { border-left: 0; }
@media (max-width: 47.99rem) {
  .c-rtable, .c-rtable tbody, .c-rtable tr, .c-rtable th, .c-rtable td { display: block; width: 100% !important; }
  .c-rtable thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .c-rtable tr { margin-bottom: var(--space-4); padding: var(--space-4); background: var(--color-bg); border: 1px solid var(--color-rule); border-top: 2px solid var(--cc-ardosia); border-radius: var(--radius); }
  .c-rtable tbody tr:nth-child(2) th { border-left: 0; }
  .c-rtable th, .c-rtable td { padding: 0; border: 0; }
  .c-rtable td { margin-top: var(--space-3); }
  .c-rtable td::before { content: attr(data-label); display: block; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: var(--space-1); }
}

/* ---------- Nota de aplicação avançada (Due Diligence) ---------- */
.c-note-block--advanced { margin-top: var(--space-7); background: var(--color-bg); border: 1px solid var(--color-rule); border-left: 3px solid var(--cc-petroleo); padding: var(--space-5); }

/* ---------- FAQ (acordeão acessível; sem JS tudo visível) ---------- */
.c-faq { border-top: 1px solid var(--color-rule); }
.c-faq__item { border-bottom: 1px solid var(--color-rule); }
.c-faq__q { font-size: var(--fs-md); margin: 0; }
.c-faq__q button { all: unset; box-sizing: border-box; display: flex; width: 100%; min-height: var(--control-h, 3rem); align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) 0; cursor: pointer; font: inherit; font-weight: 700; color: var(--cc-ardosia); line-height: 1.4; }
.c-faq__q button::after { content: "+"; flex: none; width: 1.5rem; text-align: center; font-size: var(--fs-xl); font-weight: 400; color: var(--cc-petroleo); line-height: 1; }
.c-faq__q button[aria-expanded="true"]::after { content: "−"; }
.c-faq__q button:hover { color: var(--cc-petroleo); }
.c-faq__q button:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.c-faq__a { padding-bottom: var(--space-5); max-width: var(--measure); color: var(--color-text); }
.c-faq__a[hidden] { display: none; }
.c-faq + .c-crosslink { margin-top: var(--space-6); }

/* ---------- Contacto: nota contextual por tema ---------- */
.c-topic-note { padding: var(--space-3) var(--space-4); background: var(--color-bg-alt); border-left: 3px solid var(--cc-petroleo); border-radius: var(--radius); font-size: var(--fs-sm); line-height: 1.55; }
.c-btn--wrap { white-space: normal; text-align: left; line-height: 1.35; padding-block: var(--space-3); }


/* =========================================================================
   v1.4.0 · Caderno de Transposição CC-WEB-003 v3.0 — Soluções · Produtos · Sectores
   Cartões e títulos claros, sem cores novas nem cor por família.
   ========================================================================= */

/* Cartões de produto */
.c-prods { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
@media (min-width: 40rem) { .c-prods { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64rem) { .c-prods { grid-template-columns: repeat(3, 1fr); gap: var(--space-5); } .c-prods--four { grid-template-columns: repeat(4, 1fr); } }
.c-prod { display: flex; flex-direction: column; gap: var(--space-3); height: 100%; padding: var(--space-5); background: var(--color-bg); border: 1px solid var(--color-rule); border-top: 3px solid var(--cc-ardosia); border-radius: var(--radius); }
.c-prod__family { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cc-petroleo); }
.c-prod__name { font-size: var(--fs-xl); line-height: 1.25; }
.c-prod__name a { color: inherit; text-decoration: none; }
.c-prod__name a:hover { text-decoration: underline; }
.c-prod__desc { font-size: var(--fs-md); }
.c-prod__meta { font-size: var(--fs-sm); color: var(--color-text-muted); line-height: 1.55; }
.c-prod__meta span { display: block; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: var(--space-1); }
.c-prod__price { margin-top: auto; padding-top: var(--space-3); border-top: 1px solid var(--color-rule); font-weight: 700; color: var(--cc-ardosia); font-variant-numeric: tabular-nums; }
.c-prod__cta { align-self: flex-start; }

/* Necessidades (soluções) */
.c-needs { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
@media (min-width: 48rem) { .c-needs { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64rem) { .c-needs--grid { grid-template-columns: repeat(3, 1fr); } }
.c-need { position: relative; display: flex; flex-direction: column; gap: var(--space-3); height: 100%; padding: var(--space-5); background: var(--color-bg); border: 1px solid var(--color-rule); border-left: 3px solid var(--cc-petroleo); border-radius: var(--radius); }
.c-need__title { font-size: var(--fs-lg); line-height: 1.3; }
.c-need__title a { color: var(--cc-ardosia); text-decoration: none; }
.c-need__title a::after { content: ""; position: absolute; inset: 0; } /* cartão inteiro clicável, um único link */
.c-need__title a::before { content: "→ "; color: var(--cc-petroleo); font-weight: 400; }
.c-need:hover .c-need__title a, .c-need__title a:focus-visible { text-decoration: underline; }
.c-need:focus-within { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.c-need__title a:focus-visible { outline: none; }
.c-need__products { margin-top: auto; font-size: var(--fs-sm); color: var(--color-text-muted); line-height: 1.5; }

/* Ficha de produto */
.c-pricebox { display: grid; gap: var(--space-3); align-content: start; padding: var(--space-5); background: var(--color-bg-dark); color: var(--color-on-dark); border-radius: var(--radius); }
.c-pricebox__label { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .85; }
.c-pricebox__price { font-size: var(--fs-xl); font-weight: 700; line-height: 1.3; font-variant-numeric: tabular-nums; }
.c-pricebox__note { font-size: var(--fs-sm); line-height: 1.5; opacity: .9; }
.c-pricebox__alt { font-size: var(--fs-sm); }
.c-pricebox a:not(.c-btn) { color: var(--cc-branco); }
.c-pricebox :focus-visible { outline-color: var(--cc-branco); }
.c-prodsheet { display: grid; gap: var(--space-5); }
@media (min-width: 48rem) { .c-prodsheet { grid-template-columns: repeat(2, 1fr); gap: var(--space-6) var(--space-7); } }
.c-prodsheet__block { display: grid; gap: var(--space-3); align-content: start; padding-top: var(--space-4); border-top: 2px solid var(--cc-ardosia); }
.c-prodsheet__title { font-size: var(--fs-lg); }
.c-prodsheet__block--limits { border-top-color: var(--cc-petroleo); }
.c-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.c-checklist li { position: relative; padding-left: var(--space-5); }
.c-checklist li::before { content: ""; position: absolute; left: 0; top: .55em; width: .55rem; height: .3rem; border-left: 2px solid var(--cc-petroleo); border-bottom: 2px solid var(--cc-petroleo); transform: rotate(-45deg); }
.c-eyebrow__link { color: inherit; text-decoration: none; }
.c-eyebrow__link:hover { text-decoration: underline; }
.c-page-hero__title--long { font-size: var(--fs-2xl) !important; max-width: 30ch !important; }
@media (min-width: 48rem) { .c-page-hero__title--long { font-size: var(--fs-3xl) !important; } }

/* Tabelas de escolha */
.c-rtable__sub { display: block; margin-top: var(--space-1); font-size: var(--fs-sm); font-weight: 400; color: var(--color-text-muted); }
.c-rtable tbody th a { color: var(--cc-ardosia); }
.c-rtable--paths { margin-bottom: var(--space-6); }
.c-rtable--paths tbody tr:nth-child(2) th { border-left: 0; }

/* Sectores e relacionados */
.c-related--three { gap: var(--space-4); }
@media (min-width: 64rem) { .c-related--three { grid-template-columns: repeat(3, 1fr); } }
.c-related__title { font-size: var(--fs-lg); color: var(--cc-ardosia); line-height: 1.3; }
.c-related__link .c-related__title::after { content: " →"; color: var(--cc-petroleo); font-weight: 400; }
.c-related__link:hover .c-related__title { text-decoration: underline; }
.c-tags--links a { color: var(--cc-ardosia); text-decoration: none; display: inline-flex; align-items: center; min-height: 2.75rem; }
.c-tags--links a:hover { text-decoration: underline; }
.c-family__head h2 a { color: inherit; text-decoration: none; }
.c-family__head h2 a:hover { text-decoration: underline; }
.c-note-stack { display: grid; gap: var(--space-2); }
.c-note-stack .c-steps__note { margin: 0; }
.c-areas__link { color: inherit; text-decoration: none; }
.c-areas__link:hover { text-decoration: underline; }
.c-steps__title { font-size: var(--fs-xl); }

/* Homepage · bloco 07 (compacto) */
.c-compact { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
@media (min-width: 64rem) { .c-compact { grid-template-columns: repeat(3, 1fr); gap: var(--space-5); } }
.c-compact__item { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-5); background: var(--color-bg); border: 1px solid var(--color-rule); border-top: 3px solid var(--cc-ardosia); border-radius: var(--radius); }
.c-compact__item h3 { font-size: var(--fs-lg); line-height: 1.35; }
.c-compact__item h3 a { color: inherit; }
.c-compact__item > :last-child { margin-top: auto; align-self: flex-start; }
.c-compact__item--priority { border-top-color: var(--cc-carmim); }

/* CTA final: alternativa email/telefone */
.c-cta-band__actions { display: grid; gap: var(--space-3); justify-items: start; }
.c-cta-band__alt { font-size: var(--fs-sm); }
.c-cta-band__alt a { color: var(--cc-branco); }

/* Formulários (modo email) */
.c-form-status.is-mailto { display: grid; gap: var(--space-3); padding: var(--space-4); background: var(--color-bg-alt); border-left: 3px solid var(--cc-petroleo); }
.c-form-status__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.c-contact__form .c-security-note { margin: 0 0 var(--space-2); }

/* Secções de Insights sem conteúdos: ocultas (sem anunciar publicações futuras) */
.l-section:has(.c-insights-empty) { display: none; }
.c-tags--formats { margin-top: var(--space-6); }
.c-steps__item .c-more { display: inline-block; margin-top: var(--space-2); }
