*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Inter,Arial,sans-serif;background:#f4f7fb;color:#0d1728}.landing{min-height:100vh;display:grid;place-items:center;padding:24px}.landing-card{width:min(100%,430px);padding:42px 31px 37px;border-radius:25px;background:#fff;box-shadow:0 24px 55px rgba(26,42,70,.13)}h1{margin:0;text-align:center;font-size:31px;line-height:1.18}h1 span{display:block;color:#24d366}.landing-card>p{margin:18px 0 30px;color:#66738a;font-size:14px;line-height:1.65}label{display:block;margin-bottom:9px;color:#53627b;font-size:12px;font-weight:700}.phone-row{display:grid;grid-template-columns:78px 1fr;gap:11px}.country,input{height:59px;border:1px solid #dfe6ef;border-radius:16px}.country{display:grid;place-items:center;background:#f6f8fb;font-weight:700}input{width:100%;padding:0 18px;font:inherit;outline:none}input:focus{border-color:#24d366;box-shadow:0 0 0 4px rgba(36,211,102,.13)}small{display:none;margin:8px 2px 0;color:#d93025}.show{display:block}button{width:100%;min-height:59px;margin-top:25px;border:0;border-radius:15px;background:#24d366;color:#fff;font:inherit;font-weight:800;cursor:pointer}.safe-note{margin-top:22px;text-align:center;color:#6b7890;font-size:11px}@media(max-width:520px){.landing-card{padding:34px 22px 30px}h1{font-size:27px}}

/* Animação do botão antes de abrir a página de carregamento */
body {
  transition: opacity .45s ease, transform .45s ease, filter .45s ease;
}

body.page-leaving {
  opacity: 0;
  transform: scale(.985);
  filter: blur(2px);
}

.landing-card {
  transition: transform .35s ease, box-shadow .35s ease;
}

.landing-card.is-processing {
  transform: translateY(-3px);
  box-shadow: 0 30px 70px rgba(26, 42, 70, .18);
}

#submitButton {
  position: relative;
  overflow: hidden;
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    background .25s ease,
    opacity .25s ease;
}

#submitButton::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    110deg,
    transparent 25%,
    rgba(255, 255, 255, .35) 50%,
    transparent 75%
  );
  transform: translateX(-130%);
}

#submitButton.is-loading {
  pointer-events: none;
  background: #19b958;
  transform: scale(.985);
  box-shadow: 0 10px 28px rgba(36, 211, 102, .34);
  animation: buttonPulse .9s ease-in-out infinite alternate;
}

#submitButton.is-loading::after {
  animation: buttonShine 1.1s linear infinite;
}

#submitButton.is-ready {
  pointer-events: none;
  background: #0fa958;
  transform: scale(1.01);
  box-shadow: 0 12px 30px rgba(15, 169, 88, .38);
}

.button-spinner {
  display: inline-block;
  width: 17px;
  height: 17px;
  margin-right: 9px;
  border: 2px solid rgba(255, 255, 255, .4);
  border-top-color: #fff;
  border-radius: 50%;
  vertical-align: -3px;
  animation: spin .7s linear infinite;
}

.button-check {
  display: inline-grid;
  place-items: center;
  width: 19px;
  height: 19px;
  margin-right: 8px;
  border-radius: 50%;
  background: #fff;
  color: #0fa958;
  font-size: 13px;
  font-weight: 900;
  vertical-align: -2px;
  animation: checkPop .35s ease both;
}

.button-label {
  position: relative;
  z-index: 1;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes buttonPulse {
  from {
    box-shadow: 0 8px 20px rgba(36, 211, 102, .24);
  }

  to {
    box-shadow: 0 12px 34px rgba(36, 211, 102, .5);
  }
}

@keyframes buttonShine {
  to {
    transform: translateX(130%);
  }
}

@keyframes checkPop {
  0% {
    opacity: 0;
    transform: scale(.3);
  }

  70% {
    transform: scale(1.18);
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  body,
  .landing-card,
  #submitButton {
    transition: none;
  }

  #submitButton.is-loading,
  #submitButton.is-loading::after,
  .button-spinner,
  .button-check {
    animation: none;
  }
}


/* ===== Ícone do botão ===== */
.eye-icon{
    display:inline-block;
    font-size:20px;
    margin-right:8px;
    vertical-align:-3px;
}

/* ===== Aviso de pagamento ===== */
.payment-box{
    margin-top:16px;
    padding:14px;
    display:flex;
    align-items:center;
    gap:12px;
    background:#edfdf4;
    border:1px solid #c7efd8;
    border-radius:16px;
}

.payment-icon{
    width:42px;
    height:42px;
    border-radius:50%;
    background:#24d366;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:20px;
    flex-shrink:0;
}

.payment-text strong{
    display:block;
    color:#15803d;
    font-size:14px;
    margin-bottom:3px;
}

.payment-text span{
    display:block;
    color:#5d6b7b;
    font-size:12px;
    line-height:1.45;
}


/* Compatibilidade com versões antigas do HTML */
.payment-info{
    margin-top:16px;
    padding:14px;
    display:flex;
    align-items:center;
    gap:12px;
    background:#edfdf4;
    border:1px solid #c7efd8;
    border-radius:16px;
}
