/* ── DEFION LP — Shared form modal ── */
:root {
  --lpf-marine:#070033;
  --lpf-blue:#3351FF;
  --lpf-blue-hover:#2841E6;
  --lpf-grey:#595f6b;
  --lpf-grey-light:#e5e7eb;
  --lpf-red:#ef4444;
  --lpf-green:#22c55e;
  --lpf-white:#ffffff;
  --lpf-font:'ABCDiatype', ui-sans-serif, system-ui, sans-serif;
}

/* ── Backdrop ── */
.lpf-overlay {
  position:fixed; inset:0; z-index:9999;
  background:rgba(7,0,51,.85); backdrop-filter:blur(8px);
  display:none; align-items:center; justify-content:center;
  padding:1.5rem; overflow-y:auto;
  animation:lpfFadeIn .18s ease-out;
}
.lpf-overlay.lpf-visible { display:flex; }
@keyframes lpfFadeIn { from{opacity:0} to{opacity:1} }

/* ── Card ── */
.lpf-card {
  background:var(--lpf-white); border-radius:1rem;
  max-width:520px; width:100%;
  padding:2rem 1.75rem; position:relative;
  box-shadow:0 24px 80px rgba(7,0,51,.3);
  font-family:var(--lpf-font); color:var(--lpf-marine);
  margin:auto;
}
.lpf-close {
  position:absolute; top:.75rem; right:.75rem;
  background:none; border:none; font-size:1.5rem;
  cursor:pointer; color:#9ca3af; line-height:1;
  padding:.4rem; width:2rem; height:2rem;
  display:flex; align-items:center; justify-content:center;
  border-radius:.4rem; transition:background .15s;
}
.lpf-close:hover { background:#f3f4f6; color:var(--lpf-marine); }

.lpf-title { font-size:1.25rem; font-weight:700; margin-bottom:.35rem; }
.lpf-sub { font-size:.875rem; color:var(--lpf-grey); margin-bottom:1.5rem; }

/* ── Form ── */
.lpf-form { display:flex; flex-direction:column; gap:1rem; }
.lpf-row { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
@media (max-width:480px) { .lpf-row { grid-template-columns:1fr; } }

.lpf-field label {
  display:block; font-size:.72rem; font-weight:600;
  color:var(--lpf-marine); text-transform:uppercase;
  letter-spacing:.04em; margin-bottom:.35rem;
}
.lpf-field label .lpf-req { color:var(--lpf-red); }
.lpf-field input, .lpf-field textarea {
  width:100%; padding:.65rem .9rem;
  border:1.5px solid var(--lpf-grey-light); border-radius:.5rem;
  font-size:.9rem; color:var(--lpf-marine); background:var(--lpf-white);
  font-family:inherit; outline:none;
  transition:border-color .15s; box-sizing:border-box;
}
.lpf-field input:focus, .lpf-field textarea:focus { border-color:var(--lpf-blue); }
.lpf-field input::placeholder, .lpf-field textarea::placeholder { color:#9ca3af; }
.lpf-field textarea { resize:vertical; min-height:90px; }
.lpf-field.lpf-error input, .lpf-field.lpf-error textarea { border-color:var(--lpf-red); }

.lpf-submit {
  width:100%; padding:.95rem 1.25rem;
  background:var(--lpf-blue); color:var(--lpf-white);
  border:none; border-radius:.55rem;
  font-size:.9rem; font-weight:600; cursor:pointer;
  font-family:inherit; transition:background .15s, transform .1s;
  display:flex; align-items:center; justify-content:center; gap:.5rem;
}
.lpf-submit:hover:not(:disabled) { background:var(--lpf-blue-hover); }
.lpf-submit:active:not(:disabled) { transform:translateY(1px); }
.lpf-submit:disabled { opacity:.65; cursor:not-allowed; }

.lpf-privacy { font-size:.72rem; color:var(--lpf-grey); text-align:center; line-height:1.5; }
.lpf-privacy a { color:var(--lpf-grey); text-decoration:underline; }

.lpf-error-msg {
  display:none; background:#fef2f2; border:1.5px solid #fca5a5;
  border-radius:.5rem; padding:.7rem .9rem;
  font-size:.8rem; color:#991b1b;
}

/* ── Honeypot (hidden) ── */
.lpf-hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }

/* ── Success ── */
.lpf-success { display:none; text-align:center; padding:1rem 0; }
.lpf-success-icon {
  width:64px; height:64px; background:#f0fdf4; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 1.25rem;
}
.lpf-success h3 { font-size:1.15rem; font-weight:700; margin-bottom:.5rem; }
.lpf-success p { font-size:.9rem; color:var(--lpf-grey); line-height:1.6; margin-bottom:1.5rem; }
.lpf-success-actions { display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap; }
.lpf-success-actions button, .lpf-success-actions a {
  padding:.65rem 1.25rem; border-radius:.5rem;
  font-size:.82rem; font-weight:500; cursor:pointer;
  font-family:inherit; text-decoration:none;
  display:inline-flex; align-items:center; justify-content:center;
  border:1.5px solid var(--lpf-grey-light); background:var(--lpf-white); color:var(--lpf-marine);
  transition:background .15s;
}
.lpf-success-actions a.lpf-btn-primary {
  background:var(--lpf-blue); color:var(--lpf-white); border-color:var(--lpf-blue);
}
.lpf-success-actions button:hover { background:#f9fafb; }
.lpf-success-actions a.lpf-btn-primary:hover { background:var(--lpf-blue-hover); }
