/* AI Week: peças comuns aos formulários do site (inscrição no evento, hackathon e patrocínio). Seção 10 do kit:
   rótulo sempre visível, ajuda e erro em texto (com ícone), foco com anel duplo, alvo mínimo de 44px.
   O comportamento (validação, blocos condicionais, envio) está em formulario.js. */
.fm{padding:clamp(24px,calc(3*var(--vw)),44px);background:#141414;border:1px solid rgba(255,255,255,.08)}
.fm-obrig{font-size:13px;color:#B3B3B3}
.fm fieldset{margin:0;padding:0;border:0;min-width:0}
.fm fieldset + fieldset{margin-top:36px}
.fm [data-se] + [data-se]{margin-top:0}
.fm legend{margin-top:28px;padding:0;font-family:var(--f-titulo);font-weight:800;font-size:22px;letter-spacing:.02em;text-transform:uppercase;color:#fff}
/* subtítulo de um bloco dentro de outro (ex.: "Onde você estuda") */
.fm legend.fm-sub{margin-top:28px;font:500 12px/1.4 var(--f-texto);letter-spacing:.18em;color:#B3B3B3}
.fm-grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;margin-top:16px}
.fm-grade .campo--largo{grid-column:1/-1}
.campo{display:grid;gap:8px;align-content:start}
.fm fieldset > .campo{margin-top:20px}
.campo label,.campo-rotulo{font-size:14px;font-weight:500;color:#fff}
.campo input,.campo select,.campo textarea{width:100%;min-height:46px;padding:12px 14px;border:1px solid #666;border-radius:4px;background:#000;color:#fff;font:400 16px/1.4 var(--f-texto);transition:border-color .16s}
.campo textarea{min-height:120px;resize:vertical}
.campo select{appearance:none;-webkit-appearance:none;padding-right:40px;background:#000 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23FF6A1A' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat right 14px center}
.campo input::placeholder{color:#666}
.campo input:hover,.campo select:hover,.campo textarea:hover{border-color:#B3B3B3}
.fm :focus-visible,.fm-sucesso :focus-visible{outline:2px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px #000}
.campo [aria-invalid="true"]{border-width:2px;border-color:var(--laranja)}
.campo-ajuda{font-size:13px;color:#B3B3B3}
.campo-erro{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--laranja)}
.campo-erro::before{content:"!";flex:none;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--laranja);color:#000;font-size:12px;font-weight:700}
.campo-erro[hidden]{display:none}
/* opções em "pílulas": o input fica escondido mas continua focável; marcado = laranja com texto preto */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid #666;border-radius:999px;font-size:14px;font-weight:500;color:#fff;transition:background-color .16s,border-color .16s,color .16s}
.chip:hover span{border-color:#B3B3B3}
.chip input:checked + span{background:var(--laranja);border-color:var(--laranja);color:#000}
.chip input:focus-visible + span{outline:2px solid #fff;outline-offset:3px}
.campo[data-invalido] .chip span{border-color:var(--laranja)}
/* aceites: caixas próprias, desmarcadas por padrão */
.campo-aceite{margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}
.campo-aceite + .campo-aceite{margin-top:16px;padding-top:0;border-top:0}
.aceite{display:flex;gap:14px;align-items:flex-start;cursor:pointer;font-size:14px;font-weight:400;line-height:1.5;color:rgba(255,255,255,.88)}
.aceite input{flex:none;width:22px;height:22px;min-height:0;margin:1px 0 0;padding:0;accent-color:var(--laranja)}
.aceite b{font-weight:600;color:#fff}
.fm-lnk{text-decoration:underline;text-underline-offset:.2em}
.fm-enviar{margin-top:28px;width:100%}
.fm-enviar[aria-busy="true"]{cursor:progress;opacity:.7}
.fm-retorno{margin-top:20px;padding:16px 18px;border:1px solid #666;border-left:3px solid var(--laranja);font-size:15px;line-height:1.5;color:#fff}
/* aviso de que o envio ainda não está ligado (some quando o action do form existir) */
.fm-pendente{padding:14px 16px;border:1px dashed #666;font-size:14px;line-height:1.5;color:#B3B3B3}

/* telas estreitas: só encaminhado (a adaptação mobile vem depois) */
@media (max-width:1000px){
  .fm-grade{grid-template-columns:1fr}
}
