/* ============================ SIMULATOR ============================
   Fluxo: 1) escolhe o plano -> 2) escolhe o serviço liberado pra
   aquele plano -> 3) preenche os campos daquele serviço -> 4) vê o
   resultado em tempo real. Reaproveita os tokens visuais do projeto
   (cores, glow, cards, sliders) já usados em outras seções.
   ==================================================================== */
.simulator {
  background: var(--bg-secondary);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding-block: 45px clamp(40px, 6vw, 60px);
}

.simulator__head {
  text-align: left;
}

.simulator__wrap {
  margin-top: clamp(36px, 5vw, 56px);
  max-width: 1160px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(380px, 1.6fr) minmax(300px, 1fr);
  gap: clamp(32px, 5vw, 64px);
  align-items: start;
}

.simulator__left {
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 4vw, 40px);
}

.simulator__left .simulator__step {
  margin-bottom: 0;
}

.simulator__step {
  margin-bottom: clamp(24px, 3.5vw, 34px);
}

.simulator__step-label {
  display: block;
  margin-bottom: 14px;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}

/* ---------- Etapa 1: planos ---------- */
.simulator__plans {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 6px;
  border-radius: 100px;
  background: var(--surface);
  border: 1px solid var(--border);
}

.simulator__plan-btn {
  padding: clamp(8px, 1.2vw, 10px) clamp(18px, 2.5vw, 26px);
  border-radius: 100px;
  font-size: clamp(0.82rem, 1vw, 0.92rem);
  font-weight: 600;
  color: var(--text-muted);
  transition:
    color 0.25s ease,
    background 0.25s ease;
}

.simulator__plan-btn.is-active {
  background: var(--brand);
  color: #062b13;
}

/* ---------- Etapa 2: serviços ---------- */
.simulator__services {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.simulator__service-btn {
  padding: 10px 18px;
  border-radius: 100px;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--text-muted);
  background: var(--surface);
  border: 1px solid var(--border);
  transition:
    color 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease,
    opacity 0.2s ease;
}

.simulator__service-btn.is-active {
  background: var(--brand);
  color: #062b13;
  border-color: var(--brand);
}

.simulator__service-btn[hidden] {
  display: none;
}

/* ---------- Painel: total acumulado dos simuladores ---------- */
.simulator__total-panel {
  padding: clamp(20px, 3vw, 26px);
  border-radius: var(--radius);
  background: var(--surface-2);
  border: 1px solid var(--border);
}

.simulator__total-title {
  display: block;
  margin-bottom: 16px;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.simulator__total-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.simulator__total-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.88rem;
}

.simulator__total-row.is-current .simulator__total-row-label {
  color: var(--text);
}

.simulator__total-row.is-current .simulator__total-row-value {
  color: var(--brand);
}

.simulator__total-row-label {
  color: var(--text-muted);
}

.simulator__total-row-value {
  font-weight: 600;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}

.simulator__total-geral {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

.simulator__total-geral-label {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text);
}

.simulator__total-geral-value {
  font-size: clamp(1.3rem, 2.4vw, 1.6rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--brand);
  font-variant-numeric: tabular-nums;
}

/* ---------- Painel do serviço selecionado ---------- */
.simulator__panel-wrap {
  margin-top: 0;
}

.simulator__panel {
  position: relative;
  padding: clamp(26px, 4vw, 40px);
  border-radius: var(--radius-lg);
  background: linear-gradient(160deg, #202024, #17171a);
  border: 1px solid var(--border-strong);
  overflow: hidden;
  box-shadow: var(--shadow-soft);
}

.simulator__panel-glow {
  position: absolute;
  top: -80px;
  right: -80px;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--brand-glow), transparent 70%);
  filter: blur(30px);
  pointer-events: none;
}

/* Logo do serviço, no topo de cada painel do simulador — mesma imagem
   usada no card correspondente da seção Services. */
.simulator__panel-logo {
  position: relative;
  z-index: 1;
  display: block;
  height: 60px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  border-radius: 8px;
  margin-bottom: 20px;
  margin-inline: auto;
}

.simulator__field {
  position: relative;
  margin-bottom: clamp(20px, 3vw, 28px);
}
.loovi__field {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.simulator__field-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.simulator__field-head label,
.simulator__field-label {
  font-size: 0.85rem;
  color: var(--text-muted);
}

.simulator__field-value {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--brand);
}

/* slider (reaproveita o estilo já usado no projeto) */
.simulator__range {
  position: relative;
  z-index: 1;
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  border-radius: 100px;
  background: var(--surface);
  outline: none;
  cursor: pointer;
}

.simulator__range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--brand);
  border: 3px solid var(--bg-primary);
  box-shadow: 0 0 0 1px var(--brand);
  transition: transform 0.2s ease;
}

.simulator__range::-webkit-slider-thumb:hover {
  transform: scale(1.1);
}

.simulator__range::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--brand);
  border: 3px solid var(--bg-primary);
  box-shadow: 0 0 0 1px var(--brand);
  cursor: pointer;
  transition: transform 0.2s ease;
}

.simulator__range::-moz-range-track {
  height: 6px;
  border-radius: 100px;
  background: var(--surface);
}

.simulator__slider-scale {
  display: flex;
  justify-content: space-between;
  margin-top: 6px;
  font-size: 0.72rem;
  color: var(--text-dim);
}

/* prazos do CLT */
.simulator__terms {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.simulator__term-btn {
  flex: 1;
  min-width: 56px;
  padding: 10px 8px;
  border-radius: var(--radius-sm);
  font-size: 0.85rem;
  font-weight: 600;
  text-align: center;
  color: var(--text-muted);
  background: var(--surface);
  border: 1px solid var(--border);
  transition:
    color 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease;
}

.simulator__term-btn.is-active {
  background: var(--brand);
  color: #062b13;
  border-color: var(--brand);
}

/* stepper (Universo AGV) */
.simulator__stepper {
  display: inline-flex;
  align-items: center;
  gap: 0;
  border-radius: var(--radius-sm);
  background: var(--surface);
  border: 1px solid var(--border);
  overflow: hidden;
}

.simulator__stepper-btn {
  width: 44px;
  height: 44px;
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--text);
  transition:
    background 0.2s ease,
    color 0.2s ease;
}

.simulator__stepper-btn:hover {
  background: rgba(34, 197, 94, 0.12);
  color: var(--brand);
}

.simulator__stepper-input {
  width: 64px;
  height: 44px;
  text-align: center;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
  background: transparent;
  border: none;
  border-inline: 1px solid var(--border);
  -moz-appearance: textfield;
}

.simulator__stepper-input::-webkit-outer-spin-button,
.simulator__stepper-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* variante não-editável do stepper (ex: valor cobrado da Loovi, que só
   muda em incrementos fixos via +/-, nunca digitado à mão) */
.simulator__stepper-value {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 84px;
  height: 44px;
  padding-inline: 12px;
  text-align: center;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
  border-inline: 1px solid var(--border);
}

/* campos numéricos simples (iGreen) */
.simulator__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.simulator__field--inline label {
  display: block;
  margin-bottom: 10px;
}

.simulator__input-prefix {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  border-radius: var(--radius-sm);
  background: var(--surface);
  border: 1px solid var(--border);
}

.simulator__input-prefix span {
  font-size: 0.9rem;
  color: var(--text-dim);
}

.simulator__input-prefix input,
.simulator__input-plain {
  width: 100%;
  height: 46px;
  border: none;
  background: transparent;
  color: var(--text);
  font-size: 1rem;
  font-weight: 600;
}

.simulator__input-plain {
  padding: 0 14px;
  border-radius: var(--radius-sm);
  background: var(--surface);
  border: 1px solid var(--border);
}

.simulator__input-prefix input:focus,
.simulator__input-plain:focus,
.simulator__stepper-input:focus {
  outline: none;
}

/* mini métricas auxiliares (percentual aplicado, etc.) */
.simulator__mini-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 16px;
  margin-bottom: clamp(20px, 3vw, 28px);
}

.simulator__mini-metric {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 16px;
  border-radius: var(--radius-sm);
  background: var(--surface);
  border: 1px solid var(--border);
}

.simulator__mini-metric-label {
  font-size: 0.74rem;
  color: var(--text-dim);
}

.simulator__mini-metric-value {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
}

/* resultado destacado */
.simulator__result {
  position: relative;
  padding-top: clamp(20px, 3vw, 26px);
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.simulator__result-label {
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-dim);
}

.simulator__result-value {
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--brand);
  line-height: 1.1;
}

.simulator__result-caption {
  font-size: 0.78rem;
  color: var(--text-dim);
  max-width: 48ch;
}

/* Loovi: simulação de evolução de nível (vendas/contratos -> nível
   potencial). Reaproveita os mesmos sliders e tokens visuais dos
   outros serviços; só os blocos abaixo são específicos da Loovi. */
.simulator__panel--loovi {
  text-align: center;
}

.simulator__panel--loovi .simulator__field {
  text-align: left;
}

.simulator__loovi-text {
  max-width: 46ch;
  margin-inline: auto;
  margin-bottom: clamp(24px, 3.5vw, 32px);
  color: var(--text-muted);
  font-size: 0.98rem;
  line-height: 1.6;
}

.simulator__cta {
  margin-top: 28px;
  min-width: 220px;
}

/* --------- Responsivo --------- */
@media (max-width: 560px) {
  .simulator__row {
    grid-template-columns: 1fr;
  }

  .simulator__terms {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
  }

  .simulator__term-btn {
    min-width: 0;
    padding: 10px 6px;
    font-size: 0.78rem;
  }

  .simulator__panel {
    padding: 22px 18px;
  }
}

@media (max-width: 380px) {
  .simulator__plans,
  .simulator__services {
    width: 100%;
  }

  .simulator__plan-btn {
    flex: 1;
    text-align: center;
  }
}

@media (min-width: 1440px) {
  .simulator__wrap {
    max-width: 1280px;
  }
}

/* ---------- Layout de 2 colunas só cabe a partir daqui ---------- */
@media (max-width: 920px) {
  .simulator__wrap {
    grid-template-columns: 1fr;
    max-width: 720px;
    gap: 0;
  }

  .simulator__left {
    margin-bottom: clamp(24px, 3.5vw, 34px);
  }

  .simulator__head {
    text-align: center;
    max-width: 620px;
    margin-inline: auto;
  }

  .simulator__step {
    text-align: center;
  }

  .simulator__plans,
  .simulator__services {
    justify-content: center;
  }

  .simulator__total-title,
  .simulator__total-geral {
    text-align: center;
  }

  .simulator__total-geral {
    flex-direction: column;
    gap: 4px;
  }
}
