/* Componentes do funil extraídos do sistema existente.
   Carregar depois de system-BqAOc40I.css e antes dos estilos de página e tema.
   Os seletores, valores e estados mantêm o contrato HTML atual. */

.ctrl-btn {
  cursor:pointer;
  min-height:50px;
  font-family:var(--ctrl-mono);
  letter-spacing:.06em;
  text-transform:uppercase;
  border:1px solid #0000;
  border-radius:10px;
  justify-content:center;
  align-items:center;
  gap:10px;
  padding:0 20px;
  font-size:.76rem;
  font-weight:800;
  text-decoration:none;
  transition:transform .2s,background .2s,border-color .2s,color .2s;
  display:inline-flex;
}

.ctrl-btn:hover {
  transform:translateY(-2px);
}

.ctrl-btn:active {
  transform:translateY(0);
}

.ctrl-btn--primary {
  color:var(--ctrl-bg);
  background:var(--ctrl-lime);
}

.ctrl-btn--primary:hover {
  background:var(--ctrl-lime-hover);
}

.ctrl-btn--secondary {
  color:var(--ctrl-text);
  border-color:var(--ctrl-line-strong);
  background:#ffffff0e;
}

.ctrl-btn--secondary:hover {
  border-color:var(--ctrl-cyan);
  background:var(--ctrl-cyan-soft);
}

.ctrl-btn--small {
  min-height:44px;
  padding:0 14px;
  font-size:.68rem;
}

.ctrl-panel {
  border:1px solid var(--ctrl-line-strong);
  background:var(--ctrl-surface);
  box-shadow:var(--ctrl-shadow);
  border-radius:17px;
}

.ctrl-panel__head {
  border-bottom:1px solid var(--ctrl-line);
  min-height:51px;
  color:var(--ctrl-muted);
  font-family:var(--ctrl-mono);
  letter-spacing:.07em;
  text-transform:uppercase;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:0 18px;
  font-size:.61rem;
  display:flex;
}

.ctrl-panel__body {
  padding:clamp(22px,3.5vw,32px);
}

.ctrl-field {
  gap:8px;
  display:grid;
}

.ctrl-field label {
  color:var(--ctrl-muted);
  font-family:var(--ctrl-mono);
  letter-spacing:.07em;
  text-transform:uppercase;
  font-size:.61rem;
  font-weight:700;
}

.ctrl-field input,
.ctrl-field select {
  border:1px solid var(--ctrl-line);
  width:100%;
  min-width:0;
  min-height:50px;
  color:var(--ctrl-text);
  background:var(--ctrl-bg);
  font-family:var(--ctrl-sans);
  border-radius:10px;
  padding:0 14px;
  font-size:1rem;
  transition:border-color .2s,background .2s;
}

.ctrl-field input::placeholder {
  color:var(--ctrl-muted);
}

.ctrl-field input:hover,
.ctrl-field select:hover {
  border-color:var(--ctrl-cyan);
}

.ctrl-field input[aria-invalid=true] {
  border-color:var(--ctrl-coral);
}

.ctrl-field input:disabled,
.ctrl-field select:disabled {
  cursor:wait;
  opacity:.62;
}

.ctrl-phone {
  grid-template-columns:122px minmax(0,1fr);
  display:grid;
}

.ctrl-phone select {
  background:var(--ctrl-surface);
  cursor:pointer;
  font-family:var(--ctrl-mono);
  border-right:0;
  border-radius:10px 0 0 10px;
  font-size:.78rem;
}

.ctrl-phone input {
  border-radius:0 10px 10px 0;
}

.ctrl-field__hint {
  color:var(--ctrl-muted);
  margin:0;
  font-size:.8rem;
  line-height:1.4;
}

.ctrl-field__error {
  color:var(--ctrl-coral);
  margin:0;
  font-size:.8rem;
  line-height:1.35;
}

.ctrl-form__submit {
  width:100%;
  min-height:54px;
  margin-top:26px;
}

@media (width <= 560px) {
  .ctrl-phone {
    grid-template-columns: 104px minmax(0,1fr);
  }
}
