.form-overlay{
  position:fixed;inset:0;z-index:80;
  background:rgba(11,18,32,0.58);
  display:flex;align-items:center;justify-content:center;
  padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .2s ease,visibility .2s ease;
}
.form-overlay.is-open{
  opacity:1;visibility:visible;pointer-events:auto;
}
body.form-open{overflow:hidden;}
.form-modal{
  background:var(--white);
  border-radius:10px;
  width:min(560px, 100%);
  max-height:min(92vh, 760px);
  max-height:min(92dvh, 760px);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding:36px 36px 32px;
  position:relative;
  box-shadow:0 30px 60px -20px rgba(11,18,32,0.45);
  transform:translateY(12px);
  transition:transform .2s ease;
}
.form-overlay.is-open .form-modal{transform:translateY(0);}
.form-close{
  position:absolute;top:16px;right:16px;
  width:40px;height:40px;border-radius:3px;
  color:var(--ink-soft);font-size:22px;line-height:1;
  display:flex;align-items:center;justify-content:center;
}
.form-close:hover{background:var(--paper-dim);color:var(--ink);}
.form-modal .kicker{margin-bottom:8px;}
.form-modal h2{
  font-size:clamp(22px,4vw,30px);
  margin-bottom:10px;
  padding-right:40px;
}
.form-lead{color:var(--ink-soft);font-size:15px;margin-bottom:26px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.form-field.full{grid-column:1 / -1;}
.form-field label{font-size:13px;font-weight:600;color:var(--ink);}
.form-field input,.form-field select,.form-field textarea{
  width:100%;
  max-width:100%;
  border:1px solid var(--line);
  background:var(--paper);
  border-radius:3px;
  padding:12px 14px;
  font:inherit;
  font-size:16px;
  color:var(--ink);
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.form-field textarea{min-height:120px;resize:vertical;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  border-color:var(--blue);
  box-shadow:0 0 0 3px var(--blue-pale);
  background:var(--white);
}
.form-honeypot{position:absolute;left:-9999px;height:0;overflow:hidden;}
.form-actions{margin-top:8px;display:flex;flex-direction:column;gap:10px;}
.form-actions .btn-primary{
  width:100%;text-align:center;border:0;
}
.form-actions .btn-primary:disabled{opacity:0.65;cursor:wait;transform:none;box-shadow:none;}
.form-note{font-size:13px;color:var(--ink-soft);text-align:center;}
.form-status{
  display:none;margin-top:4px;padding:12px 14px;border-radius:3px;font-size:14px;
}
.form-status.is-error{display:block;background:#FDECEA;color:#8A2216;}
.form-success{
  display:none;text-align:center;padding:28px 8px 12px;
}
.form-success.is-visible{display:block;}
.form-success-icon{
  width:52px;height:52px;border-radius:50%;
  background:var(--blue-pale);color:var(--blue-deep);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 18px;font-size:22px;
}
.form-success h3{font-size:clamp(20px,4vw,24px);margin-bottom:10px;}
.form-success p{color:var(--ink-soft);font-size:15.5px;}
.form-success .btn-ghost{margin-top:24px;display:inline-block;}

@media (max-width:860px){
  .form-grid{grid-template-columns:1fr;}
  .form-modal{padding:28px 22px 24px;}
}

@media (max-width:640px){
  .form-overlay{
    padding:0;
    align-items:stretch;
  }
  .form-modal{
    width:100%;
    max-width:none;
    height:100vh;
    height:100dvh;
    max-height:none;
    border-radius:0;
    padding:20px 16px calc(20px + env(safe-area-inset-bottom));
    box-shadow:none;
  }
  .form-close{top:10px;right:10px;}
  .form-lead{margin-bottom:20px;}
  .form-field textarea{min-height:96px;}
}

@media (max-width:380px){
  .form-modal{padding:18px 14px calc(16px + env(safe-area-inset-bottom));}
  .form-modal h2{font-size:22px;}
}
