/* Equipe Seguros — identidade visual
   Elemento assinatura: o "arco de asa" — uma curva fina que ecoa as asas do
   logotipo, usada como divisor estrutural entre seções (não decoração solta). */

.es-arco {
  position: relative;
}
.es-arco::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(90%, 960px);
  height: 60px;
  border-top: 1px solid rgba(169, 133, 47, 0.35);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

.es-input {
  width: 100%;
  border: 1px solid rgba(21, 23, 28, 0.15);
  background: #fff;
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
  font-size: 0.95rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.es-input:focus {
  outline: none;
  border-color: #A9852F;
  box-shadow: 0 0 0 3px rgba(169, 133, 47, 0.18);
}

.es-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: #15171C;
  color: #F6F4EF;
  padding: 0.85rem 1.75rem;
  border-radius: 999px;
  font-weight: 500;
  letter-spacing: 0.01em;
  transition: background-color 0.15s ease;
}
.es-btn-primary:hover { background: #A9852F; }

.es-numero {
  font-family: "IBM Plex Mono", monospace;
  font-variant-numeric: tabular-nums;
}

.es-planos-track {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.es-planos-track::-webkit-scrollbar {
  display: none;
}

/* Fundo decorativo discreto (emblema fixo, atrás do conteúdo) */
body {
  background-color: #F6F4EF;
  background-image:
    radial-gradient(ellipse 900px 550px at 75% -5%, rgba(31, 42, 61, 0.05), transparent 60%),
    radial-gradient(ellipse 700px 500px at 100% 25%, rgba(169, 133, 47, 0.04), transparent 65%);
  background-attachment: fixed;
}
.es-bg-emblema {
  position: fixed;
  left: -60px;
  bottom: -60px;
  width: min(46vw, 460px);
  opacity: 0.35;
  pointer-events: none;
  z-index: 0;
}
.es-bg-emblema img {
  width: 100%;
  height: auto;
  display: block;
}
header, main, footer {
  position: relative;
  z-index: 1;
}
@media (max-width: 640px) {
  .es-bg-emblema { width: 70vw; opacity: 0.22; }
}

/* Slider do simulador */
.es-slider {
  width: 100%;
  height: 6px;
  border-radius: 999px;
  background: linear-gradient(to right, #A9852F 0%, #A9852F var(--es-slider-fill, 50%), rgba(21,23,28,0.1) var(--es-slider-fill, 50%), rgba(21,23,28,0.1) 100%);
  appearance: none;
  -webkit-appearance: none;
  outline: none;
}
.es-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #A9852F;
  border: 3px solid #fff;
  box-shadow: 0 1px 4px rgba(21,23,28,0.3);
  cursor: pointer;
}
.es-slider::-moz-range-thumb {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #A9852F;
  border: 3px solid #fff;
  box-shadow: 0 1px 4px rgba(21,23,28,0.3);
  cursor: pointer;
  border: none;
}
.es-slider::-moz-range-progress {
  background: #A9852F;
  height: 6px;
  border-radius: 999px;
}
.es-slider::-moz-range-track {
  background: rgba(21,23,28,0.1);
  height: 6px;
  border-radius: 999px;
}

/* Reduced motion respeitado — sem animações forçadas */
@media (prefers-reduced-motion: no-preference) {
  .es-reveal { animation: es-fade-up 0.5s ease-out both; }
}
@keyframes es-fade-up {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
