/*
 * Módulo CS 81: grades de Membros e de Itens da exposição e formulário
 * "Receba novidades". Herda fonte e cores do tema Anemos; o bordô é o da
 * paleta do hotsite (#be1f3f).
 */
.cv-titulo-secao { margin: 0 0 1rem; }
.cv-grade { list-style: none; margin: 0; padding: 0; display: grid; gap: 24px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.cv-card { margin: 0; background: #fff; border: 1px solid #d9d9d9; display: flex; flex-direction: column; min-width: 0; }
.cv-card-imagem img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.cv-card-membro .cv-card-imagem img { aspect-ratio: 1 / 1; }
.cv-card-texto { padding: 16px; }
.cv-card-titulo { font-size: 1.125rem; line-height: 1.3; margin: 0 0 .5rem; }
.cv-card-titulo a { color: inherit; text-decoration: underline; text-underline-offset: .15em; }
.cv-card-cargo { font-weight: 600; color: #be1f3f; margin: 0 0 .25rem; }
.cv-card-meta { font-size: .875rem; color: #555; margin: 0 0 .5rem; }
.cv-card-resumo { margin: 0; }

.cv-item .cv-voltar { margin: 1.5rem 0; }
.cv-item-titulo { margin: 0 0 .5rem; }
.cv-item-meta { color: #555; margin: 0 0 1.5rem; }
.cv-item-figura { margin: 0 0 1.5rem; }
.cv-item-figura img { display: block; max-width: 100%; height: auto; }
.cv-item-figura figcaption { font-size: .875rem; color: #555; margin-top: .5rem; }
.cv-item-texto { max-width: 72ch; margin-bottom: 3rem; }

.cv-novidades { max-width: 640px; }
.cv-form .cv-campo { margin: 0 0 1.25rem; }
.cv-form label { display: block; font-weight: 600; margin: 0 0 .375rem; }
.cv-form input[type="text"], .cv-form input[type="email"] { display: block; width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid #6b6b6b; background: #fff; color: #1a1a1a; font: inherit; box-sizing: border-box; }
.cv-form input[aria-invalid="true"] { border: 2px solid #b00020; }
.cv-campo-marcacao { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; }
.cv-campo-marcacao input { width: 22px; height: 22px; margin: 2px 0 0; }
.cv-campo-marcacao label { font-weight: 400; margin: 0; }
.cv-campo-marcacao .cv-erro { grid-column: 1 / -1; }
.cv-ajuda { font-size: .875rem; color: #555; margin: .25rem 0 0; }
.cv-erro { color: #b00020; font-weight: 600; margin: .375rem 0 0; }
.cv-erro::before { content: "Erro: "; }
.cv-obrigatorios { font-size: .875rem; color: #555; }
.cv-botao { min-height: 44px; padding: 10px 28px; border: 0; background: #be1f3f; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.cv-botao:hover { background: #8f1730; }
.cv-aviso:empty { display: none; }
.cv-aviso-sucesso, .cv-aviso-erro { padding: 16px; margin: 0 0 1.5rem; border-left: 6px solid; background: #fff; }
.cv-aviso-sucesso { border-color: #1e7a3c; }
.cv-aviso-erro { border-color: #b00020; }
.cv-aviso ul { margin: .5rem 0 0 1.25rem; }
.cv-aviso a { color: #b00020; text-decoration: underline; }

.cv-novidades a:focus-visible, .cv-novidades input:focus-visible, .cv-novidades button:focus-visible, .cv-aviso:focus-visible, .cv-grade a:focus-visible, .cv-item a:focus-visible { outline: 3px solid #1a1a1a; outline-offset: 2px; box-shadow: 0 0 0 5px #fff; }
.cv-aviso:focus { outline: 3px solid #1a1a1a; outline-offset: 2px; }

.cv-isca { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cv-leitor { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

@media (prefers-reduced-motion: reduce) { .cv-novidades * { transition: none !important; } }
