/* =====================================================================
   MODAL DE CAPTURA UNIFICADO — NeuroVox
   Visual idêntico ao popup original (navy + dourado, Playfair),
   textos centralizados, sem o campo de perfil.
   ===================================================================== */
@font-face {
  font-family: 'Playfair Display'; font-style: normal; font-weight: 700; font-display: swap;
  src: url(../fonts/nuFiD-vYSZviVYUb_rj3ij__anPXDTzYgEM86xQ.woff2) format('woff2');
}

#nvx-modal, #nvx-modal * { box-sizing: border-box; }
#nvx-modal {
  position: fixed; inset: 0; z-index: 99999;
  display: none; align-items: flex-start; justify-content: center;
  overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
  padding: 24px 16px;
}
#nvx-modal.is-open { display: flex; }

.nvx-scrim {
  position: fixed; inset: 0;
  background: rgba(3, 7, 15, .78);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  opacity: 0; transition: opacity .24s ease;
}
#nvx-modal.is-open .nvx-scrim { opacity: 1; }

.nvx-card {
  position: relative; z-index: 1; width: 100%; max-width: 440px; margin: auto;
  background: linear-gradient(170deg, #0c1830, #070e1c);
  border: 1px solid rgba(232, 193, 97, .30); border-radius: 22px;
  padding: 38px 32px 30px; box-shadow: 0 40px 100px rgba(0, 0, 0, .65);
  text-align: center;
  transform: translateY(14px) scale(.98); opacity: 0;
  transition: transform .26s cubic-bezier(.22,1,.36,1), opacity .26s ease;
}
#nvx-modal.is-open .nvx-card { transform: none; opacity: 1; }

.nvx-close {
  position: absolute; top: 14px; right: 18px;
  background: none; border: none; color: #9fb0c8; cursor: pointer; z-index: 2;
  width: 32px; height: 32px; display: grid; place-items: center; line-height: 1;
  transition: color .2s ease;
}
.nvx-close:hover { color: #fff; }
.nvx-close svg { width: 22px; height: 22px; }

.nvx-title {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 700;
  font-size: 26px; line-height: 1.15; text-align: center;
  color: #f3f6fb; margin: 0 0 22px; text-transform: none; letter-spacing: 0;
}
.nvx-sub {
  font-family: 'Inter', system-ui, -apple-system, "Segoe UI", sans-serif; font-weight: 400;
  text-align: center; color: #9aabc4; font-size: 14.5px; line-height: 1.5; margin: 0 0 22px;
}

.nvx-form {
  font-family: 'Inter', system-ui, -apple-system, "Segoe UI", sans-serif;
  display: flex; flex-direction: column; gap: 14px; text-align: center;
}
.nvx-field { display: flex; flex-direction: column; gap: 6px; }
.nvx-field label {
  font-size: 10.5px; font-weight: 600; color: #e8c161;
  text-transform: uppercase; letter-spacing: .6px; text-align: center;
}
.nvx-field input {
  width: 100%; padding: 14px 16px; border-radius: 11px; font-size: 16px; font-family: inherit;
  background: rgba(255, 255, 255, .05); border: 1.5px solid rgba(255, 255, 255, .10); color: #fff;
  text-align: left;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.nvx-field input::placeholder { color: #7e90ab; }
.nvx-field input:focus { outline: none; border-color: #e8c161; box-shadow: 0 0 0 3px rgba(232, 193, 97, .22); }
.nvx-field.is-valid input { border-color: #25d366; }
.nvx-field.is-invalid input { border-color: #ff6b6b; box-shadow: 0 0 0 3px rgba(255, 107, 107, .2); }
.nvx-err { color: #ffb4b4; font-size: 11.5px; font-weight: 500; display: none; }
.nvx-field.is-invalid .nvx-err { display: block; }

/* logo */
.nvx-logo { display: block; height: 50px; width: auto; max-width: 78%; margin: 0 auto 16px; object-fit: contain; }

/* seletor de país DENTRO do mesmo input do telefone */
.nvx-tel-row {
  position: relative; display: flex; align-items: center;
  background: rgba(255, 255, 255, .05); border: 1.5px solid rgba(255, 255, 255, .10); border-radius: 11px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.nvx-tel-row:focus-within { border-color: #e8c161; box-shadow: 0 0 0 3px rgba(232, 193, 97, .22); }
.nvx-field.is-invalid .nvx-tel-row { border-color: #ff6b6b; box-shadow: 0 0 0 3px rgba(255, 107, 107, .2); }
.nvx-cc {
  flex: none; display: inline-flex; align-items: center; gap: 5px;
  padding: 0 10px 0 14px; margin-right: 8px; min-height: 48px;
  background: none; border: none; border-right: 1px solid rgba(255, 255, 255, .12);
  cursor: pointer; color: #fff; font-family: inherit;
}
.nvx-flag { display: inline-flex; }
.nvx-flag svg { width: 26px; height: 17px; border-radius: 2px; display: block; box-shadow: 0 0 0 1px rgba(255,255,255,.12); }
.nvx-cc__chev { opacity: .6; transition: transform .2s ease; }
.nvx-cc[aria-expanded="true"] .nvx-cc__chev { transform: rotate(180deg); }
.nvx-tel-row input {
  flex: 1; min-width: 0; background: none; border: none; box-shadow: none;
  padding: 14px 14px 14px 0; text-align: left; color: #fff; font-size: 16px;
}
.nvx-tel-row input:focus { outline: none; box-shadow: none; }
.nvx-cc__list {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 5;
  margin: 0; padding: 6px; list-style: none; text-align: left;
  background: #0c1830; border: 1px solid rgba(232, 193, 97, .3); border-radius: 12px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, .55); max-height: 360px; overflow-y: auto;
}
.nvx-cc__list[hidden] { display: none; }
.nvx-cc__opt {
  display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px;
  cursor: pointer; color: #dfe6f2; font-size: 14px; transition: background .12s ease;
}
.nvx-cc__opt:hover, .nvx-cc__opt:focus { background: rgba(232, 193, 97, .14); outline: none; }
.nvx-cc__name { flex: 1; }
.nvx-cc__d { color: #9aabc4; font-size: 13px; }

.nvx-submit {
  margin-top: 6px; width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: 'Inter', system-ui, -apple-system, sans-serif; font-weight: 700; font-size: 15px; letter-spacing: .2px;
  padding: 16px 30px; border: none; border-radius: 100px; cursor: pointer; color: #2a1d00; text-transform: none;
  background: linear-gradient(100deg, #f5d985, #e8c161 55%, #c2911c);
  box-shadow: 0 14px 34px rgba(232, 193, 97, .30), inset 0 1px 0 rgba(255, 255, 255, .5);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.nvx-submit:hover { transform: translateY(-2px); filter: brightness(1.04); }
.nvx-submit:active { transform: translateY(0) scale(.99); }
.nvx-submit.is-loading { opacity: .75; pointer-events: none; position: relative; color: transparent !important; }
.nvx-submit.is-loading::after {
  content: ""; position: absolute; top: 50%; left: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px;
  border: 2.5px solid rgba(42, 29, 0, .4); border-top-color: #2a1d00; border-radius: 50%;
  animation: nvx-spin .7s linear infinite;
}
@keyframes nvx-spin { to { transform: rotate(360deg); } }

.nvx-priv {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  margin-top: 16px; font-size: 11px; line-height: 1.5; color: #9aabc4; text-align: center;
}
.nvx-priv a { color: #e8c161; text-decoration: underline; }

:where(#nvx-modal) :focus-visible { outline: 3px solid #e8c161; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .nvx-scrim, .nvx-card { transition: none; }
  .nvx-submit.is-loading::after { animation: none; }
}
