/*!
 * partner-form — the partner registration form.
 *
 * Styled as a document to complete rather than a lead-capture box: full-width
 * fields, visible labels, grouped sections. The audience is a business owner
 * deciding whether to commit a team, not a visitor being nudged into a demo.
 */

.partner-form {
  margin: 34px 0;
  padding: 32px;
  background: #fff;
  border: 1px solid #e0e9ed;
  border-radius: 18px;
}

.partner-form h3 {
  margin: 0 0 4px;
  font-size: 21px;
  color: #10283b;
}
.partner-form .partner-form-intro {
  margin: 0 0 24px;
  font-size: 15.5px;
  color: #5c7183;
}

.partner-fieldset {
  margin: 0 0 26px;
  padding: 0;
  border: 0;
}
.partner-fieldset legend {
  padding: 0;
  margin-bottom: 14px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #0f5c4a;
}

.partner-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}

.partner-form label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #24384a;
}
.partner-form label .req { color: #b3261e; }

.partner-form input[type="text"],
.partner-form input[type="email"],
.partner-form input[type="tel"],
.partner-form input[type="url"],
.partner-form select,
.partner-form textarea {
  width: 100%;
  margin-top: 6px;
  padding: 11px 13px;
  font: inherit;
  font-size: 15px;
  font-weight: 400;
  color: #14232f;
  background: #fbfdfd;
  border: 1px solid #d9e4e9;
  border-radius: 10px;
}
.partner-form textarea { min-height: 110px; resize: vertical; }

.partner-form input:focus,
.partner-form select:focus,
.partner-form textarea:focus {
  outline: none;
  border-color: #0f5c4a;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(15, 92, 74, .12);
}

/* Modules: a set of choices, not a dropdown to hunt through. */
.partner-modules {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 8px;
}
.partner-modules label {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 13px;
  font-weight: 500;
  background: #f7fafb;
  border: 1px solid #e3ebee;
  border-radius: 10px;
  cursor: pointer;
}
.partner-modules label:hover { background: #f0f7f5; border-color: #cfe4dc; }
.partner-modules input { accent-color: #0f5c4a; }

.partner-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 6px 0 20px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.55;
  color: #4a5f70;
}
.partner-consent input { margin-top: 3px; accent-color: #0f5c4a; }

.partner-form button[type="submit"] {
  padding: 14px 30px;
  font: inherit;
  font-size: 16px;
  font-weight: 650;
  color: #fff;
  background: #0f5c4a;
  border: 0;
  border-radius: 12px;
  cursor: pointer;
}
.partner-form button[type="submit"]:hover:not(:disabled) { background: #0c4b3c; }
.partner-form button[type="submit"]:disabled { opacity: .6; cursor: default; }

.partner-status {
  margin-top: 16px;
  padding: 14px 16px;
  font-size: 15px;
  background: #eef7f3;
  border-radius: 10px;
  color: #14503f;
}
.partner-status.is-error { background: #fdecea; color: #a3241c; }

/* The honeypot must be reachable by a bot and invisible to a person. */
.partner-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

@media (max-width: 640px) {
  .partner-form { padding: 22px; }
}
