/* «Onde é o serviço» e «Entrega» — blocos comuns dos formulários (spec euromoveis-campos-20261001).
   Telemóvel primeiro: opções e sugestões com 44 px de altura, uma coluna até 640 px. */
.em-onde {
  border: 1px solid #e3ded3;
  border-radius: 8px;
  padding: 16px 16px 4px;
  margin: 0 0 20px;
  background: #fbfaf7;
  min-width: 0;
}
.em-onde__titulo {
  float: left;            /* legend dentro da caixa, como um título de grupo */
  width: 100%;
  margin: 0 0 4px;
  padding: 0;
  border: 0;
  /* título de secção (Nelson, 03/10): o mesmo nível dos títulos da página («Horários»: 16px/600) — era 1.05rem = 10,5px */
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  color: #1c2021;
}
.em-onde__titulo + * { clear: both; }
.em-onde__ajuda { margin: 0 0 12px; font-size: 13px; color: #6b6b6b; }
.em-onde__linha { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.em-onde__campo { margin-bottom: 14px; min-width: 0; }
.em-onde__rotulo { display: block; margin-bottom: 6px; font-weight: 600; font-size: 14px; color: #333; }
.em-onde__rotulo small { font-weight: 400; color: #777; }
.em-onde__erro { font-size: 13px; margin-top: 4px; }
.em-onde .form-control { min-height: 44px; font-size: 16px; }   /* 16 px: o iPhone não faz zoom ao escrever */

.em-onde__opcoes { display: flex; flex-wrap: wrap; gap: 8px; }
.em-onde__opcao { position: relative; margin: 0; font-weight: 400; cursor: pointer; }
.em-onde__opcao input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.em-onde__opcao span {
  display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px;
  border: 2px solid #cfc8bb; border-radius: 22px; background: #fff; color: #333; font-size: 15px;
}
.em-onde__opcao input:checked + span { border-color: #2c5f4e; background: #e8f1ed; font-weight: 600; color: #1f4a3c; }
.em-onde__opcao input:checked + span::before { content: '✓'; margin-right: 6px; }
.em-onde__opcao input:focus-visible + span { outline: 3px solid #2c5f4e; outline-offset: 2px; }
.em-onde .has-error .em-onde__opcao span { border-color: #c0392b; }

/* condicionais: escondidos só quando o JavaScript está activo (sem ele ficam visíveis) */
.em-js [data-em-se].em-onde--oculto { display: none; }

/* concelho com pesquisa — o <select> original fica escondido (o .form-control do Bootstrap anulava o hidden) */
.em-onde select.em-onde__concelho[hidden] { display: none !important; }
.em-cb { position: relative; }
.em-cb__lista {
  position: absolute; z-index: 60; left: 0; right: 0; top: 100%; margin: 2px 0 0; padding: 4px 0;
  list-style: none; max-height: 290px; overflow-y: auto; background: #fff;
  border: 1px solid #cfc8bb; border-radius: 6px; box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
.em-cb__lista[hidden] { display: none; }
.em-cb__op { min-height: 44px; padding: 10px 14px; cursor: pointer; line-height: 1.25; }
.em-cb__op small { display: block; color: #777; font-size: 12px; }
.em-cb__op[aria-selected="true"], .em-cb__op:hover { background: #e8f1ed; }
.em-cb__vazio { padding: 10px 14px; color: #777; font-size: 14px; }
.em-cb__aviso { font-size: 13px; color: #a15c00; margin-top: 4px; }

.em-tel-obrigatorio-marca { color: #c0392b; margin-right: 2px; }

@media (max-width: 640px) {
  .em-onde__linha { grid-template-columns: 1fr; }
  .em-onde { padding: 14px 12px 2px; }
}
.em-onde__nota { display: block; margin-top: 4px; font-size: 12px; color: #777; }
