/* com_cfae360 :: parte pública
   Herda tipografia e cores do template do site; só define o que é próprio.
   As cores saem de variáveis, para o template as poder substituir. */

.cfae360-site {
    --cfae-azul: var(--cfae-primary, #1b4a9c);
    --cfae-amarelo: var(--cfae-accent, #f2b705);
    --cfae-linha: rgba(127, 137, 155, .28);
    --cfae-suave: #667085;
}

.cfae360-site .cfae-oferta-filtros {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.cfae360-site .cfae-oferta-filtros input,
.cfae360-site .cfae-oferta-filtros select,
.cfae360-site .cfae-oferta-filtros button {
    padding: .45rem .7rem;
    border: 1px solid var(--cfae-linha);
    border-radius: 8px;
    font: inherit;
}

.cfae360-site .cfae-oferta-filtros button {
    background: var(--cfae-azul);
    color: #fff;
    border-color: var(--cfae-azul);
    font-weight: 600;
    cursor: pointer;
}

.cfae360-site .cfae-cartoes-acoes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
}

.cfae360-site .cfae-cartao-acao {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--cfae-linha);
    border-radius: 12px;
    padding: 1rem 1.1rem;
    background: rgba(127, 137, 155, .04);
}

.cfae360-site .cfae-cartao-acao.cfae-destaque {
    border-color: var(--cfae-amarelo);
    box-shadow: 0 0 0 2px rgba(242, 183, 5, .25);
}

.cfae360-site .cfae-cartao-acao header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .5rem;
    margin-bottom: .4rem;
}

.cfae360-site .cfae-ref {
    font-weight: 700;
    color: var(--cfae-azul);
    letter-spacing: .03em;
}

.cfae360-site .cfae-cartao-acao h3 {
    margin: 0 0 .6rem;
    font-size: 1.05rem;
    line-height: 1.35;
}

.cfae360-site .cfae-cartao-acao h3 a {
    text-decoration: none;
}

.cfae360-site .cfae-cartao-acao dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .15rem .6rem;
    margin: 0 0 .9rem;
    font-size: .85rem;
}

.cfae360-site .cfae-cartao-acao dt {
    color: var(--cfae-suave);
    font-weight: 600;
}

.cfae360-site .cfae-cartao-acao dd {
    margin: 0;
}

.cfae360-site .cfae-cartao-acao footer {
    margin-top: auto;
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
}

.cfae360-site .cfae-btn {
    display: inline-block;
    padding: .4rem .8rem;
    border: 1px solid var(--cfae-linha);
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: .85rem;
}

.cfae360-site .cfae-btn-principal {
    background: var(--cfae-azul);
    border-color: var(--cfae-azul);
    color: #fff;
}

.cfae360-site .cfae-badge {
    display: inline-block;
    padding: .1rem .5rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    background: rgba(127, 137, 155, .16);
}

.cfae360-site .cfae-b-verde { background: #d9f2e2; color: #14683c; }
.cfae360-site .cfae-b-azul { background: #dfe9fd; color: #17408a; }
.cfae360-site .cfae-b-ambar { background: #fdefcf; color: #7a5300; }
.cfae360-site .cfae-b-vermelho { background: #fbe0e0; color: #8b1f1f; }
.cfae360-site .cfae-b-cinza { background: #eceef2; color: #4b5565; }

html[data-theme="dark"] .cfae360-site .cfae-badge,
html[data-theme="dark"] .cfae360-site .cfae-b-verde,
html[data-theme="dark"] .cfae360-site .cfae-b-azul,
html[data-theme="dark"] .cfae360-site .cfae-b-ambar,
html[data-theme="dark"] .cfae360-site .cfae-b-vermelho,
html[data-theme="dark"] .cfae360-site .cfae-b-cinza {
    background: rgba(255, 255, 255, .1);
    color: #cdd3f8;
}

.cfae360-site .cfae-ficha-dados {
    display: grid;
    grid-template-columns: minmax(120px, auto) 1fr;
    gap: .3rem .9rem;
    margin: 1rem 0 1.5rem;
}

.cfae360-site .cfae-ficha-dados dt {
    color: var(--cfae-suave);
    font-weight: 600;
}

.cfae360-site .cfae-ficha-dados dd {
    margin: 0;
}

.cfae360-site .cfae-tabela-site {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1.25rem;
}

.cfae360-site .cfae-tabela-site th,
.cfae360-site .cfae-tabela-site td {
    text-align: left;
    padding: .4rem .5rem;
    border-bottom: 1px solid var(--cfae-linha);
}

.cfae360-site .cfae-lista-simples {
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem;
}

.cfae360-site .cfae-lista-simples li {
    padding: .25rem 0;
    border-bottom: 1px solid var(--cfae-linha);
}

.cfae360-site .cfae-agenda {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
}

.cfae360-site .cfae-agenda li {
    display: grid;
    grid-template-columns: 6.5rem 4rem 1fr auto;
    gap: .6rem;
    align-items: baseline;
    padding: .4rem 0;
    border-bottom: 1px solid var(--cfae-linha);
}

@media (max-width: 640px) {
    .cfae360-site .cfae-agenda li {
        grid-template-columns: 6.5rem 1fr;
    }

    .cfae360-site .cfae-agenda .cfae-local {
        grid-column: 1 / -1;
        color: var(--cfae-suave);
    }
}

.cfae360-site .cfae-agenda time {
    font-variant-numeric: tabular-nums;
    color: var(--cfae-suave);
}

.cfae360-site .cfae-mes h3 {
    margin: 1.25rem 0 .5rem;
    text-transform: capitalize;
}

.cfae360-site .cfae-ficha-botoes {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin-top: 1.25rem;
}

.cfae360-site .cfae-paginacao-site {
    display: flex;
    gap: .25rem;
    flex-wrap: wrap;
    margin: 1.25rem 0;
}

.cfae360-site .cfae-paginacao-site a {
    padding: .25rem .6rem;
    border: 1px solid var(--cfae-linha);
    border-radius: 6px;
    text-decoration: none;
}

.cfae360-site .cfae-paginacao-site a.ativo {
    background: var(--cfae-azul);
    border-color: var(--cfae-azul);
    color: #fff;
}

.cfae360-site .cfae-vazio {
    color: var(--cfae-suave);
    font-style: italic;
}

/* -------------------------------------- 1.4.0 formulários e presenças */

.cfae360-site .cfae-cartao-mensagem,
.cfae360-site .cfae-formulario {
    max-width: 720px;
    margin: 0 auto;
    padding: clamp(20px, 4vw, 36px);
    background: #fff;
    border: 1px solid var(--cfae-linha);
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 12px 32px -12px rgba(16, 24, 40, .14);
}

.cfae360-site .cfae-cartao-mensagem h1,
.cfae360-site .cfae-formulario h1 {
    margin: 0 0 14px;
    font-size: clamp(1.35rem, 1.1rem + 1vw, 1.7rem);
    line-height: 1.25;
}

/* Um traço da cor do centro por baixo do título: dá começo ao formulário
   sem precisar de mais nada. */
.cfae360-site .cfae-formulario h1::after {
    content: "";
    display: block;
    width: 52px;
    height: 4px;
    margin-top: 12px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--cfae-azul), var(--cfae-amarelo));
}

.cfae360-site .cfae-ok { color: #1a7f47; }
.cfae360-site .cfae-erro { color: #b42318; }

.cfae360-site .cfae-intro { margin-bottom: 18px; }

/* Cada pergunta é um bloco com ar à volta: num questionário de 25 perguntas
   é o espaçamento que evita que se responda à linha errada. */
.cfae360-site .cfae-campo-publico {
    margin: 0 0 6px;
    padding: 14px 0 16px;
    border-bottom: 1px solid var(--cfae-linha);
}

.cfae360-site .cfae-campo-publico:last-of-type { border-bottom: 0; }

.cfae360-site .cfae-campo-publico > label {
    display: block;
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 8px;
}

.cfae360-site .cfae-campo-publico abbr {
    margin-left: 2px;
    color: #b42318;
    text-decoration: none;
    border: 0;
}

.cfae360-site .cfae-campo-publico input[type="text"],
.cfae360-site .cfae-campo-publico input[type="email"],
.cfae360-site .cfae-campo-publico input[type="tel"],
.cfae360-site .cfae-campo-publico input[type="number"],
.cfae360-site .cfae-campo-publico input[type="date"],
.cfae360-site .cfae-campo-publico input[type="time"],
.cfae360-site .cfae-campo-publico input[type="file"],
.cfae360-site .cfae-campo-publico select,
.cfae360-site .cfae-campo-publico textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 11px 13px;
    border: 1px solid #cbd2dd;
    border-radius: 10px;
    background: #fff;
    font: inherit;
    color: inherit;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.cfae360-site .cfae-campo-publico input:hover,
.cfae360-site .cfae-campo-publico select:hover,
.cfae360-site .cfae-campo-publico textarea:hover { border-color: #9aa5b6; }

.cfae360-site .cfae-campo-publico input:focus,
.cfae360-site .cfae-campo-publico select:focus,
.cfae360-site .cfae-campo-publico textarea:focus {
    outline: 0;
    border-color: var(--cfae-azul);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--cfae-azul) 18%, transparent);
}

.cfae360-site .cfae-campo-publico input[type="checkbox"] { width: auto; }

/* Escolhas em linha: a escala 1..5/NA cabe numa linha e lê-se de uma vez;
   listas de opções longas passam para a linha seguinte. */
/* Escolhas como botões: a escala 1..5/NA vê-se toda de uma vez e acerta-se
   nela com o dedo. A caixa continua lá para quem navega por teclado ou usa
   leitor de ecrã — está escondida à vista, não removida. */
.cfae360-site .cfae-escolhas {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 2px 0;
}

.cfae360-site .cfae-escolhas .cfae-escolha {
    position: relative;
    margin: 0;
    font-weight: 400;
    cursor: pointer;
}

.cfae360-site .cfae-escolhas input[type="radio"],
.cfae360-site .cfae-escolhas input[type="checkbox"] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    margin: 0;
    pointer-events: none;
}

.cfae360-site .cfae-escolhas .cfae-escolha > span {
    display: inline-block;
    min-width: 2.75rem;
    padding: 9px 15px;
    border: 1px solid #cbd2dd;
    border-radius: 999px;
    background: #fff;
    text-align: center;
    line-height: 1.2;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .1s ease;
}

.cfae360-site .cfae-escolhas .cfae-escolha:hover > span {
    border-color: var(--cfae-azul);
    color: var(--cfae-azul);
}

.cfae360-site .cfae-escolhas .cfae-escolha:active > span { transform: scale(.97); }

.cfae360-site .cfae-escolhas input:checked + span {
    background: var(--cfae-azul);
    border-color: var(--cfae-azul);
    color: #fff;
    font-weight: 600;
}

.cfae360-site .cfae-escolhas input:focus-visible + span {
    outline: 0;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--cfae-azul) 30%, transparent);
}

@media (prefers-reduced-motion: reduce) {
    .cfae360-site .cfae-escolhas .cfae-escolha > span,
    .cfae360-site .cfae-campo-publico input,
    .cfae360-site .cfae-campo-publico select,
    .cfae360-site .cfae-campo-publico textarea { transition: none; }
}

.cfae360-site .cfae-campo-publico small {
    display: block;
    margin-top: 4px;
    color: #667085;
}

.cfae360-site .cfae-com-erro {
    border-left: 3px solid #b42318;
    margin-left: -14px;
    padding-left: 11px;
    border-radius: 0 0 4px 0;
}

.cfae360-site .cfae-com-erro input,
.cfae360-site .cfae-com-erro select,
.cfae360-site .cfae-com-erro textarea,
.cfae360-site .cfae-com-erro .cfae-escolha > span { border-color: #b42318; }

/* O botão de enviar de um formulário não é um botão qualquer da página:
   é o fim do trabalho de quem respondeu. */
.cfae360-site .cfae-formulario button[type="submit"] {
    padding: 12px 28px;
    border-radius: 10px;
    font-size: 1rem;
    cursor: pointer;
    transition: filter .15s ease, transform .1s ease, box-shadow .15s ease;
    box-shadow: 0 1px 2px rgba(16, 24, 40, .06);
}

.cfae360-site .cfae-formulario button[type="submit"]:hover {
    filter: brightness(1.08);
    box-shadow: 0 6px 16px -6px color-mix(in srgb, var(--cfae-azul) 60%, transparent);
}

.cfae360-site .cfae-formulario button[type="submit"]:active { transform: translateY(1px); }

.cfae360-site .cfae-formulario button[type="submit"]:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--cfae-azul) 35%, transparent);
}

@media (max-width: 520px) {
    .cfae360-site .cfae-formulario button[type="submit"] { width: 100%; }
    .cfae360-site .cfae-escolhas .cfae-escolha > span { padding: 10px 14px; }
}

.cfae360-site .cfae-nota-privacidade {
    margin: 18px 0;
    font-size: 0.85rem;
    color: #667085;
}

/* Campo-isco: fica fora do ecrã e sem foco. Quem o preencher é um robô. */
.cfae360-site .cfae-mel {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.cfae360-site .cfae-previsualizacao {
    margin: 0 0 16px;
    padding: 9px 13px;
    background: #fff6e5;
    border: 1px solid #f0c473;
    border-radius: 6px;
    font-size: 0.9rem;
    color: #7a4b00;
}

/* 1.34: grupos e grelhas preservados na importação do Google Forms. */
.cfae360-site .cfae-formulario.cfae-layout-grupos { max-width: 960px; }
.cfae360-site .cfae-seccao-formulario { margin: 28px 0 16px; padding: 16px; background: #f4f5fb; border-left: 4px solid #5145b5; }
.cfae360-site .cfae-seccao-formulario h2 { font-size: 1.15rem; margin: 0 0 8px; }
.cfae360-site .cfae-grelha-avaliacao { min-width: 0; margin: 24px 0; padding: 0; border: 0; }
.cfae360-site .cfae-grelha-avaliacao legend { float: none; width: 100%; font-weight: 700; font-size: 1.1rem; padding: 12px 0; }
.cfae360-site .cfae-grelha-scroll { overflow-x: auto; max-width: 100%; }
.cfae360-site .cfae-grelha-avaliacao table { width: 100%; min-width: 580px; border-collapse: collapse; font-size: .95rem; }
.cfae360-site .cfae-grelha-avaliacao th, .cfae360-site .cfae-grelha-avaliacao td { padding: 12px 8px; border-bottom: 1px solid #e1e4ee; text-align: center; }
.cfae360-site .cfae-grelha-avaliacao th:first-child { text-align: left; width: 42%; }
.cfae360-site .cfae-grelha-avaliacao tbody tr:nth-child(odd) { background: #f7f8fc; }
.cfae360-site .cfae-grelha-avaliacao th small { display: block; font-weight: normal; }
.cfae360-site .cfae-grelha-opcao { display: flex; align-items: center; justify-content: center; min-width: 36px; min-height: 36px; cursor: pointer; }
.cfae360-site .cfae-grelha-opcao input { width: 18px; height: 18px; accent-color: #5145b5; }
.cfae360-site .cfae-visualmente-oculto { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
