/* ONESEA Solutions — shared form styles (.cf-form), used both inline
   (Contact page) and inside the Onboard Life "Apply Now" modal. */
.cf-form { padding: 0; }
.cf-form .cf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
.cf-form .cf-field { display: flex; flex-direction: column; gap: 8px; }
.cf-form .cf-field.cf-full { grid-column: 1 / -1; }
.cf-form label { font-family: var(--font-sans); font-weight: 600; font-size: 14px; color: var(--onesea-navy); }
.cf-form .cf-req { color: var(--onesea-pink); }
.cf-form input:not([type="submit"]), .cf-form select, .cf-form textarea {
  font-family: var(--font-sans); font-size: 15px; color: var(--onesea-navy);
  padding: 14px 16px; border: 1px solid #E5E7EB; border-radius: 12px;
  background: #fff; outline: none; width: 100%; box-sizing: border-box;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.cf-form textarea { resize: vertical; min-height: 120px; }
.cf-form input:not([type="submit"]):focus, .cf-form select:focus, .cf-form textarea:focus {
  border-color: var(--onesea-pink); box-shadow: 0 0 0 3px rgba(239,0,138,0.14);
}
.cf-form .cf-error { font-family: var(--font-sans); font-size: 13px; color: #d11d30; display: none; }
.cf-form .cf-field.cf-invalid input, .cf-form .cf-field.cf-invalid select, .cf-form .cf-field.cf-invalid textarea { border-color: #d11d30; }
.cf-form .cf-field.cf-invalid .cf-error { display: block; }
.cf-form .cf-note { font-family: var(--font-sans); font-size: 13px; line-height: 1.6; color: #8a949c; margin: 18px 0 0; }
.cf-form .cf-actions { display: flex; align-items: center; gap: 20px; margin-top: 24px; flex-wrap: wrap; }
.cf-form .cf-success { font-family: var(--font-sans); font-weight: 600; font-size: 15px; color: #1f8a5b; display: none; }
.cf-form .cf-success.is-visible { display: inline; }

/* Consent checkbox row (Contact form) */
.cf-form .cf-consent { display: flex; align-items: flex-start; gap: 12px; margin-top: 24px; font-family: var(--font-sans); font-size: 14.5px; line-height: 1.5; color: var(--onesea-ink); cursor: pointer; }
.cf-form .cf-consent input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--onesea-pink); flex-shrink: 0; }
.cf-form .cf-consent.cf-invalid input { outline: 2px solid #d11d30; }
.cf-form .cf-consent span { flex: 1; min-width: 0; }

@media (max-width: 640px) {
  .cf-form .cf-grid { grid-template-columns: 1fr !important; }
}

/* ===== Contact Form 7 (wp-admin > Contact) — CF7 renders its own markup
   inside our .cf-form/.cf-grid/.cf-field wrapper; style CF7's own generated
   bits (validation tips, the response-output banner, the submit spinner).
   Shared by the Contact page form and the Onboard Life apply-modal form. ===== */
.cf-form .wpcf7-form-control-wrap { display: block; }
.cf-form input.wpcf7-not-valid,
.cf-form select.wpcf7-not-valid,
.cf-form textarea.wpcf7-not-valid { border-color: #d11d30; }
.cf-form .wpcf7-not-valid-tip {
  font-family: var(--font-sans); font-size: 12.5px; color: #d11d30; margin-top: 6px;
}

/* .wpcf7-response-output is a SIBLING of .cf-form (both children of the
   <form> CF7 wraps around our template), not a descendant — target the
   form's own class instead. */
.wpcf7-form .wpcf7-response-output {
  font-family: var(--font-sans); font-size: 14.5px; line-height: 1.5;
  margin: 20px 0 0; padding: 14px 18px; border-radius: 12px; border: 1px solid rgba(0,45,87,0.14);
}
.wpcf7-form.sent .wpcf7-response-output { color: #1f8a5b; border-color: #1f8a5b; background: rgba(31,138,91,0.06); }
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output,
.wpcf7-form.failed .wpcf7-response-output { color: #d11d30; border-color: #d11d30; background: rgba(209,29,48,0.05); }

.cf-form .wpcf7-spinner { margin-left: 12px; }
