/* APM — componentes partilhados do UI kit.
   Campos: instancias de «APM UI Kit Campos». Nada literal de cor aqui. */

/* ── Acordeao (FAQ) ──────────────────────────────────────────── */
details{transition:border-color .18s ease-out}
details:hover{border-color:var(--color-primary-700)}
details[open]{border-color:var(--color-primary-600)}
details summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;list-style:none;min-height:44px}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"";flex:none;width:.55rem;height:.55rem;margin-right:.25rem;border-right:2px solid var(--color-primary-700);border-bottom:2px solid var(--color-primary-700);transform:translateY(-25%) rotate(45deg);transition:transform .3s cubic-bezier(.33,1,.68,1)}
details[open] summary::after{transform:translateY(15%) rotate(-135deg)}
details::details-content{block-size:0;overflow:hidden;transition:block-size 200ms ease-out,content-visibility 200ms allow-discrete}
details[open]::details-content{block-size:auto}
@media (prefers-reduced-motion:reduce){
  details,details summary::after,details::details-content{transition:none!important;animation:none!important}
}

/* ── Campos ──────────────────────────────────────────────────── */
.cand-form{min-width:0;display:flex;flex-direction:column;gap:1rem;background:var(--color-white);color:var(--color-neutral-900);border-radius:1.25rem;padding:1.75rem}
.fld{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.fld > label.leg{font-size:.88rem;font-weight:600;color:var(--color-neutral-900)}
.fld input,.fld select,.fld textarea{width:100%;min-height:48px;padding:0 .9rem;border:1px solid var(--color-neutral-500);border-radius:.5rem;background:var(--color-white);font:inherit;font-size:1rem;color:var(--color-neutral-900);transition:border-color .12s ease-out}
.fld textarea{padding:.75rem .9rem;line-height:var(--lh-body);resize:vertical;min-height:7rem}
.fld input:hover,.fld select:hover,.fld textarea:hover{border-color:var(--color-neutral-700)}
.fld input:disabled,.fld select:disabled,.fld textarea:disabled{background:var(--color-neutral-200);border-color:var(--color-neutral-500);color:var(--color-neutral-700);cursor:not-allowed}
.fld input[aria-invalid="true"],.fld select[aria-invalid="true"],.fld textarea[aria-invalid="true"]{border-color:var(--color-red-700);border-width:2px}

.sel{position:relative;display:flex;align-items:center}
.sel select{appearance:none;-webkit-appearance:none;padding-right:2.5rem;cursor:pointer}
.sel::after{content:"";position:absolute;right:.9rem;width:.45rem;height:.45rem;border-right:2px solid var(--color-neutral-700);border-bottom:2px solid var(--color-neutral-700);transform:translateY(-25%) rotate(45deg);pointer-events:none}

#newsletter-email::placeholder{color:var(--color-brand-200);opacity:1}

/* ── Nota e opcional de um campo ─────────────────────────────────
   A nota explica o campo e é ligada por aria-describedby; o «(opcional)»
   vive no rótulo, para quem lê o rótulo saber sem procurar o asterisco. */
.fld-nota{
  margin:.1rem 0 0;
  font-size:.85rem;line-height:1.5;color:var(--color-neutral-600);
}
.apm-opt{font-weight:400;color:var(--color-neutral-600)}

/* ── Escolha (caixa de verificação) ──────────────────────────────
   O alvo é o rótulo inteiro e não só a caixa: 44px de altura para o
   dedo, e a caixa alinha com a primeira linha do texto. */
.choice{
  display:flex;align-items:flex-start;gap:.65rem;margin:0;
  font-size:.95rem;color:var(--color-neutral-900);
}
.choice input{
  width:1.15rem;height:1.15rem;margin-top:.8rem;flex:none;
  accent-color:var(--color-primary-600);
}
.choice label{padding:.65rem 0;min-height:44px}

/* ── Formulário (apm/form-contacto e afins) ──────────────────── */
.apm-form__campos{display:grid;gap:1.5rem}
.apm-form__campos > p{margin:0}
.apm-form__par{display:grid;gap:1.5rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:40em){
  .apm-form__par{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* O indicativo é uma lista curta ao lado do número, não um campo livre. */
.apm-form__tel{display:flex;gap:.6rem}
.apm-form__tel .sel{flex:0 0 8rem}
.apm-form__tel input{min-width:0}

.apm-form__enviar{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:var(--h-btn-md);padding:0 1.75rem;
  border:1px solid var(--color-primary-600);border-radius:999px;
  background:var(--color-primary-600);color:var(--color-white);
  font:inherit;font-size:var(--f-btn);font-weight:var(--w-btn);
  line-height:var(--lh-btn);letter-spacing:var(--tk-btn);
  cursor:pointer;
}
.apm-form__enviar:hover:not(:disabled){
  background:var(--color-primary-700);border-color:var(--color-primary-700);
}
/* Desactivado enquanto o destino do envio não estiver decidido: um botão
   que parece premível e não envia nada é pior do que um desactivado. */
.apm-form__enviar:disabled{
  background:var(--color-neutral-300);border-color:var(--color-neutral-300);
  color:var(--color-neutral-700);cursor:not-allowed;
}
@media (max-width:47.999em){.apm-form__enviar{width:100%}}
