/* LOOM Studio — contact/lead form modal, opened from any
   "Talk to Us" / "Book a Call" button across the site. */
.loom-cf-overlay{
  position:fixed; inset:0; z-index:9999;
  display:flex; align-items:center; justify-content:center;
  padding:5dvh 5dvw;
  background:#050409e6;
  backdrop-filter:blur(10px);
  opacity:0; pointer-events:none;
  transition:opacity .32s ease;
  font-family:"neuehaasdisplayroman","Helvetica Neue",Arial,sans-serif;
}
.loom-cf-overlay.open{ opacity:1; pointer-events:auto; }

.loom-cf-modal{
  position:relative; width:min(480px,100%); max-height:90dvh; overflow-y:auto;
  background:linear-gradient(165deg,#17141fee,#0a0912ee 65%);
  border:1px solid #ffffff1f; border-radius:20px;
  padding:40px 36px 36px;
  box-shadow:0 40px 120px -30px #5328ff55, 0 2px 4px #000;
  transform:translateY(18px) scale(.97); transition:transform .38s cubic-bezier(.2,.8,.25,1);
}
.loom-cf-overlay.open .loom-cf-modal{ transform:none; }

.loom-cf-close{
  position:absolute; top:18px; right:18px; width:34px; height:34px;
  border-radius:50%; border:1px solid #ffffff26; background:#ffffff0d;
  color:#fff; font-size:16px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease, transform .2s ease;
}
.loom-cf-close:hover{ background:#ffffff1f; transform:rotate(90deg); }

.loom-cf-eyebrow{ color:#a99cff; letter-spacing:3px; font-size:11.5px; text-transform:uppercase; margin-bottom:10px; display:block; }
.loom-cf-title{ color:#fff; font-size:clamp(24px,3dvw,32px); line-height:1.08; letter-spacing:-.5px; margin:0 0 8px; font-weight:400; }
.loom-cf-sub{ color:#ffffff80; font-size:14.5px; font-family:"neuehaasdisplaylight"; margin:0 0 28px; }

.loom-cf-field{ margin-bottom:16px; display:flex; flex-direction:column; gap:8px; }
.loom-cf-field label{ color:#ffffff99; font-size:12.5px; letter-spacing:.4px; text-transform:uppercase; }
.loom-cf-field input, .loom-cf-field textarea{
  width:100%; background:#ffffff0a; border:1px solid #ffffff26; border-radius:10px;
  padding:12px 14px; color:#fff; font-size:14.5px; font-family:inherit;
  outline:none; transition:border-color .2s ease, background .2s ease;
  resize:none;
}
.loom-cf-field input::placeholder, .loom-cf-field textarea::placeholder{ color:#ffffff4d; }
.loom-cf-field input:focus, .loom-cf-field textarea:focus{ border-color:#a99cff99; background:#ffffff12; }
.loom-cf-field textarea{ min-height:96px; line-height:1.4; }
.loom-cf-row{ display:flex; gap:12px; }
.loom-cf-row .loom-cf-field{ flex:1 1 0; min-width:0; }

.loom-cf-error{ color:#ff9d9d; font-size:12px; margin-top:-6px; margin-bottom:14px; min-height:14px; }

.loom-cf-submit{
  width:100%; margin-top:6px; padding:14px 20px; border:none; border-radius:10px; cursor:pointer;
  background:#fff; color:#0a0912; font-size:14.5px; font-weight:600; letter-spacing:.2px;
  transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.loom-cf-submit:hover{ transform:translateY(-1px); box-shadow:0 10px 30px -10px #ffffff66; }
.loom-cf-submit:active{ transform:translateY(0); }
.loom-cf-submit:disabled{ opacity:.6; cursor:default; transform:none; box-shadow:none; }

.loom-cf-success{ display:none; text-align:center; padding:20px 0 6px; }
.loom-cf-success.show{ display:block; }
.loom-cf-success .tick{
  width:56px; height:56px; margin:0 auto 18px; border-radius:50%;
  background:#a99cff22; border:1px solid #a99cff55;
  display:flex; align-items:center; justify-content:center; font-size:24px; color:#a99cff;
}
.loom-cf-success h3{ color:#fff; font-size:20px; font-weight:400; margin:0 0 8px; }
.loom-cf-success p{ color:#ffffff80; font-size:14px; margin:0; font-family:"neuehaasdisplaylight"; }
.loom-cf-form.hide, .loom-cf-head.hide{ display:none; }

@media (max-width:520px){
  .loom-cf-modal{ padding:32px 22px 28px; border-radius:16px; }
  .loom-cf-row{ flex-direction:column; gap:0; }
}
