/* connectNPO forms — the 10A look (Instrument Sans, ink 1.5px borders, no radius, black button with ochre hover),
   matching demo-canvas/connectnpo/form-style.css, which styles the builder's forms the same way. */
.cnp-form { font-family: "Instrument Sans", "Helvetica Neue", Arial, sans-serif; color: #17150F; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 18px 20px; }
.cnp-form > * { grid-column: 1 / -1; }
/* half- and part-width fields, as the form was laid out before (width is in twelfths) */
.cnp-form > .cnp-w-3 { grid-column: span 3; } .cnp-form > .cnp-w-4 { grid-column: span 4; } .cnp-form > .cnp-w-6 { grid-column: span 6; }
.cnp-form > .cnp-w-8 { grid-column: span 8; } .cnp-form > .cnp-w-9 { grid-column: span 9; }
@media (max-width: 600px) { .cnp-form > [class*="cnp-w-"] { grid-column: 1 / -1; } }
.cnp-form .cnp-field { margin: 0; }
.cnp-form label, .cnp-form legend { display: block; font-size: 14px; font-weight: 600; color: #17150F; margin: 0 0 7px; padding: 0; }
.cnp-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.cnp-form .cnp-req { color: #C2400A; margin-left: 3px; }
.cnp-form input[type=text], .cnp-form input[type=email], .cnp-form input[type=tel], .cnp-form select, .cnp-form textarea {
  display: block; width: 100%; box-sizing: border-box; font-family: inherit; font-size: 15px; line-height: 1.4; color: #17150F;
  background: #fff; border: 1.5px solid #17150F; border-radius: 0; padding: 12px 14px; box-shadow: none; transition: box-shadow .15s ease; }
.cnp-form textarea { min-height: 140px; resize: vertical; }
.cnp-form select { appearance: auto; }
.cnp-form ::placeholder { color: #6E6A5E; opacity: 1; }
.cnp-form input:focus, .cnp-form select:focus, .cnp-form textarea:focus { outline: none; box-shadow: 0 0 0 3px #E5B84B; }
.cnp-form input[type=file] { font-family: inherit; font-size: 15px; padding: 10px 0; }
.cnp-form input[type=file]:focus-visible { outline: 3px solid #E5B84B; outline-offset: 2px; }
.cnp-form .cnp-check { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; font-size: 15px; line-height: 1.4; margin: 0 0 8px; min-height: 24px; cursor: pointer; }
.cnp-form .cnp-check input { width: 18px; height: 18px; margin: 1px 0 0; flex: 0 0 auto; accent-color: #17150F; }
.cnp-form .cnp-hint { font-size: 13px; color: #4A463B; margin: 6px 0 0; }
.cnp-form .cnp-err { font-size: 13px; color: #C2400A; margin: 6px 0 0; }
.cnp-form .cnp-has-err input, .cnp-form .cnp-has-err select, .cnp-form .cnp-has-err textarea { box-shadow: 0 0 0 3px #C2400A; }
.cnp-form .cnp-form-foot { margin-top: 6px; }
.cnp-form .cnp-form-submit { display: inline-flex; align-items: center; gap: 8px; background: #17150F; color: #fff; border: 1.5px solid #17150F;
  border-radius: 0; padding: 14px 24px; font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1; cursor: pointer;
  transition: background .18s ease, color .18s ease; min-height: 44px; }
.cnp-form .cnp-form-submit:hover, .cnp-form .cnp-form-submit:focus-visible { background: #E5B84B; color: #17150F; outline: none; }
.cnp-form .cnp-form-submit[disabled] { opacity: .6; cursor: progress; }
.cnp-form-msg { font-family: "Instrument Sans", "Helvetica Neue", Arial, sans-serif; font-size: 15px; line-height: 1.5; color: #17150F; background: #fff;
  border: 1.5px solid #17150F; border-left-width: 8px; border-radius: 0; padding: 14px 18px; margin-top: 18px; }
.cnp-form-msg.cnp-ok { border-left-color: #A7C4A0; }
.cnp-form-msg.cnp-bad { border-left-color: #C2400A; }
.cnp-form-status:empty { display: none; }
/* the honeypot: out of sight and out of the tab order, but not display:none, which some bots skip */
.cnp-form .cnp-hp { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
