/* ============ CTA MODAL ============ */
:root{
  --modal-bg: rgba(4,4,4,.85);
  --modal-card-bg: #0C0C0C;
  --modal-border: #1A1A1A;
}

.cta-modal-overlay{
  position:fixed; inset:0;
  background:var(--modal-bg);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  z-index:10050;
  display:none;
  align-items:flex-start;
  justify-content:center;
  padding:48px 20px;
  overflow-y:auto;
  opacity:0;
  transition:opacity .25s ease;
}
.cta-modal-overlay.open{ display:flex; opacity:1; }

.cta-modal{
  position:relative;
  width:100%;
  max-width:560px;
  margin:auto 0;
  background:var(--modal-card-bg);
  border:1px solid var(--modal-border);
  border-top:3px solid #E8B84B;
  padding:40px 36px 36px;
  font-family:'DM Sans', sans-serif;
  color:#F5F5F5;
  transform:translateY(20px);
  opacity:0;
  transition:transform .35s cubic-bezier(.22,1,.36,1), opacity .35s;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
.cta-modal-overlay.open .cta-modal{
  transform:translateY(0);
  opacity:1;
}

.cta-modal-close{
  position:absolute;
  top:14px; right:14px;
  width:34px; height:34px;
  display:flex; align-items:center; justify-content:center;
  background:transparent;
  border:1px solid var(--modal-border);
  color:#888;
  cursor:pointer;
  font-size:1.4rem;
  line-height:1;
  transition:color .2s, border-color .2s, background .2s;
}
.cta-modal-close:hover{
  color:#E8B84B;
  border-color:#E8B84B;
  background:rgba(232,184,75,.05);
}

.cta-modal-eyebrow{
  display:inline-block;
  font-family:'Space Mono', monospace;
  font-size:.65rem;
  letter-spacing:3px;
  text-transform:uppercase;
  color:#E8B84B;
  margin-bottom:14px;
}
.cta-modal-title{
  font-family:'Bebas Neue', sans-serif;
  font-size:2rem;
  letter-spacing:2px;
  text-transform:uppercase;
  line-height:1.05;
  margin-bottom:8px;
  color:#F5F5F5;
}
.cta-modal-title .gold{ color:#E8B84B; }
.cta-modal-sub{
  color:#A8A8A8;
  font-size:.95rem;
  margin-bottom:28px;
  line-height:1.55;
}

.cta-modal-form{ display:flex; flex-direction:column; gap:16px; }

.cta-field{ display:flex; flex-direction:column; gap:6px; }
.cta-field label{
  font-family:'Space Mono', monospace;
  font-size:.65rem;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#888;
}
.cta-field label .req{ color:#FF2D2D; margin-left:2px; }

.cta-field input,
.cta-field textarea{
  width:100%;
  background:#070707;
  border:1px solid var(--modal-border);
  padding:13px 14px;
  font-family:'DM Sans', sans-serif;
  font-size:.95rem;
  color:#F5F5F5;
  outline:none;
  transition:border-color .2s, background .2s;
  border-radius:0;
}
.cta-field input:focus,
.cta-field textarea:focus{
  border-color:#E8B84B;
  background:#0A0A0A;
}
.cta-field textarea{
  resize:vertical;
  min-height:96px;
  font-family:'DM Sans', sans-serif;
  line-height:1.5;
}

/* Honeypot — hidden from humans */
.cta-honeypot{
  position:absolute;
  left:-9999px;
  width:1px; height:1px;
  opacity:0;
  pointer-events:none;
}

.cta-modal-submit{
  margin-top:10px;
  padding:15px 28px;
  background:#E8B84B;
  color:#040404;
  font-family:'Bebas Neue', sans-serif;
  font-size:1.05rem;
  letter-spacing:2.5px;
  text-transform:uppercase;
  border:none;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  transition:background .25s, transform .15s;
}
.cta-modal-submit:hover:not(:disabled){
  background:#F4CB69;
  transform:translateY(-1px);
}
.cta-modal-submit:disabled{
  background:#5a4a26;
  color:#2a2a2a;
  cursor:not-allowed;
}
.cta-modal-submit::after{
  content:'';
  position:absolute; top:0; left:-100%;
  width:100%; height:100%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent);
  transition:left .5s;
}
.cta-modal-submit:hover:not(:disabled)::after{ left:100%; }

.cta-modal-status{
  margin-top:14px;
  padding:12px 14px;
  font-size:.9rem;
  display:none;
  line-height:1.5;
}
.cta-modal-status.show{ display:block; }
.cta-modal-status.ok{
  border-left:3px solid #22C55E;
  background:rgba(34,197,94,.08);
  color:#E8F5E9;
}
.cta-modal-status.err{
  border-left:3px solid #FF2D2D;
  background:rgba(255,45,45,.08);
  color:#FFDADA;
}

.cta-modal-fine{
  margin-top:20px;
  font-family:'Space Mono', monospace;
  font-size:.62rem;
  letter-spacing:1px;
  color:#666;
  line-height:1.6;
}
.cta-modal-fine a{
  color:#888;
  text-decoration:underline;
  text-underline-offset:2px;
}
.cta-modal-fine a:hover{ color:#E8B84B; }

/* Spinner inside button */
.cta-spinner{
  display:inline-block;
  width:14px; height:14px;
  border:2px solid rgba(4,4,4,.3);
  border-top-color:#040404;
  border-radius:50%;
  animation:cta-spin .7s linear infinite;
  vertical-align:-2px;
  margin-right:8px;
}
@keyframes cta-spin{
  to{ transform:rotate(360deg); }
}

/* Lock body scroll when open */
body.cta-modal-lock{ overflow:hidden; }

/* Responsive */
@media (max-width: 520px){
  .cta-modal{ padding:32px 22px 26px; }
  .cta-modal-title{ font-size:1.6rem; }
  .cta-modal-overlay{ padding:20px 12px; }
}
