/* ---------- Ficheiros: card de descarga, com acordeão opcional ---------- */
.files__grid {
  display: grid;
  grid-template-columns: repeat(var(--files-columns), minmax(0, 1fr));
  gap: var(--space-4) var(--space-6);
  align-items: start;
  margin: 0;
  padding: 0;
  list-style: none;
}
.files__grid { --files-columns: 1; }
/* Colunas escolhidas no bloco (2, 3 ou 4) a partir de 1024px. Por omissão 3: um card não ocupa mais
   de um terço da largura (com 1 ou 2 cards, a terceira coluna fica vazia). 2 colunas só quando escolhidas
   (revisto no lab 9: pisos do lab 6, 2 a 2). 2 no máximo entre 768 e 1023px; 1 em telemóvel */
@media (min-width: 48em) { .files__grid--2, .files__grid--3, .files__grid--4 { --files-columns: 2; } }
@media (min-width: 64em) { .files__grid { --files-columns: 3; } .files__grid--2 { --files-columns: 2; } .files__grid--4 { --files-columns: 4; } }
.file-card { display: grid; background: var(--color-surface); }
.file-card__heading { max-width: none; margin: 0; font: inherit; }
.file-card__toggle {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  width: 100%;
  min-height: var(--target-min);
  padding: var(--space-4);
  border: 0;
  color: var(--color-text);
  background: none;
  font-family: var(--font-body);
  text-align: start;
  cursor: pointer;
}
.file-card__toggle:focus-visible { outline-offset: calc(-1 * var(--focus-width)); box-shadow: none; }
.file-card__text { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-4); min-width: 0; }
/* O círculo é a caixa e o SVG fica a 24px exatos dentro dele (chat 15, como em cards-content.css): com o SVG a ocupar o círculo e espaço interior ficava a 22px e desfocado */
.file-card__icon { display: flex; flex: none; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: var(--border-width) solid currentColor; border-radius: var(--radius-round); }
.file-card__icon svg { display: block; width: 1.5rem; height: 1.5rem; }
.file-card__toggle[aria-expanded="true"] .file-card__icon { transform: rotate(45deg); }
@media (prefers-reduced-motion: no-preference) { .file-card__icon { transition: transform var(--duration-motion) var(--ease); } }
.file-card__title {
  font-size: var(--text-body-xl);
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-body);   /* chat 18: sem maiúsculas, espaçamento do texto */
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: transparent;
  text-underline-offset: 0.3em;
  transition: color var(--duration-fade) var(--ease), text-decoration-color var(--duration-fade) var(--ease);
}
.file-card__toggle:hover .file-card__title { color: var(--color-link-hover); text-decoration-color: currentColor; }
.file-card__subtitle { font-size: var(--text-body-md); letter-spacing: var(--ls-body); color: var(--color-text-muted); }
.file-card__panel { overflow: hidden; }
.file-card__body { padding: 0 var(--space-4) var(--space-4); }
.file-card__download {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-height: var(--target-min);
  padding: var(--space-3) var(--space-4);
  color: var(--color-text);
  text-decoration: none;
}
.file-card__heading + .file-card__panel + .file-card__download { border-top: var(--border-width) solid var(--color-divider); }
.file-card__download:focus-visible { outline-offset: calc(-1 * var(--focus-width)); box-shadow: none; }
.file-card__file { display: grid; gap: var(--space-1); }
.file-card__name {
  color: var(--color-link);
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.3em;
  transition: color var(--duration-fade) var(--ease), text-decoration-thickness var(--duration-fade) var(--ease);
}
.file-card__download-icon { flex: none; }
@media (prefers-reduced-motion: no-preference) {
  .file-card__download-icon { transition: transform var(--duration-fade) var(--ease); }
  .file-card__download:hover .file-card__download-icon { transform: scale(1.2); }
}
.file-card__download:hover .file-card__name { color: var(--color-link-hover); }
.file-card__meta { font-size: var(--text-body-md); color: var(--color-text-muted); }

/* Dentro do card a lista é de primeiro nível: o card já é um item de lista */
.file-card__body ul { list-style-type: disc; }

/* Acordeão isolado (decisões 2.29): itens uns por baixo dos outros, uma coluna em todas as
   larguras (tema, chat 24) */
@media (min-width: 64em) { .files__grid--1 { --files-columns: 1; } }

/* Documentos no Archives (chat 29): a referência do documento por baixo do nome, como o
   tipo e o tamanho (só quando o campo tem valor, intranet) */
.file-card__reference { font-size: var(--text-body-md); color: var(--color-text-muted); }
/* FAQ no Archives: os blocos da pergunta por baixo da resposta, dentro do painel */
.file-card__blocks > * + *, .file-card__body > p + .file-card__blocks { margin-top: var(--space-4); }
