/* Standalone accessibility essentials; the theme supplies the visual language. */
.ct-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.ct-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.ct-field{display:flex;flex-direction:column;gap:.65rem;min-width:0}.ct-field--full{grid-column:1/-1}.ct-field input,.ct-field select,.ct-field textarea{box-sizing:border-box;width:100%;font:inherit}.ct-field textarea{resize:vertical}.ct-checkbox{display:flex;align-items:flex-start;gap:.75rem;margin:1.5rem 0}.ct-checkbox input{flex:0 0 auto;width:1.15rem;height:1.15rem;margin-top:.2rem}.ct-field-error{color:#9c2c22;font-size:.85rem}.ct-field-help,.ct-form-data-note,.ct-form-intro{font-size:.875rem}.ct-form-notice{padding:1rem;border:1px solid currentColor}.ct-form-notice.is-error{color:#9c2c22}.ct-form-notice.is-success{color:#246544}.ct-field [aria-invalid=true]{outline:2px solid #9c2c22;outline-offset:3px}.ct-project-facts{margin-block:2rem}.ct-project-fact{display:grid;grid-template-columns:minmax(8rem,1fr) 3fr;gap:2rem;padding:1rem 0;border-top:1px solid #89939e55}.ct-project-fact dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.ct-project-fact dd{margin:0}.ct-contact-form :focus-visible{outline:2px solid #276bff;outline-offset:4px}.ct-form-status:empty{display:none}@media(max-width:640px){.ct-form-grid{grid-template-columns:1fr}.ct-project-fact{grid-template-columns:1fr;gap:.5rem}}

/* Readable, touch-friendly form controls without restricting browser zoom. */
.ct-contact-form .ct-field label,
.ct-contact-form .ct-field input,
.ct-contact-form .ct-field select,
.ct-contact-form .ct-field textarea,
.ct-contact-form .ct-field-help,
.ct-contact-form .ct-field-error,
.ct-contact-form .ct-form-intro,
.ct-contact-form .ct-form-data-note,
.ct-contact-form .ct-form-notice,
.ct-contact-form .ct-checkbox,
.ct-contact-form button[type="submit"] {
  font-size: max(16px, 1rem);
  line-height: 1.5;
}
.ct-contact-form .ct-field input,
.ct-contact-form .ct-field select {
  min-height: 48px;
  padding-block: 12px;
}
.ct-contact-form .ct-field textarea {
  min-height: 152px;
  padding-block: 12px;
}
.ct-contact-form .ct-checkbox {
  min-height: 44px;
  align-items: flex-start;
  padding-block: 8px;
  cursor: pointer;
}
.ct-contact-form .ct-checkbox input {
  width: 20px;
  height: 20px;
  flex-basis: 20px;
  margin-top: 2px;
}
.ct-contact-form .ct-form-data-note a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  min-width: 44px;
  margin-inline-start: .25rem;
  text-underline-offset: .2em;
}
.ct-contact-form button[type="submit"] {
  min-height: 48px;
  min-width: 44px;
  white-space: normal;
}
.ct-contact-form .ct-form-status {
  scroll-margin-top: 7rem;
}
.ct-contact-form .ct-form-data-note,
.ct-contact-form .ct-form-notice {
  overflow-wrap: anywhere;
}
@media (max-width: 640px) {
  .ct-contact-form .ct-form-grid { grid-template-columns: minmax(0, 1fr); }
  .ct-contact-form button[type="submit"] { width: 100%; }
}

/* Three-field first step with native, keyboard-operable optional details. */
.ct-contact-form .ct-form-status[hidden] { display: none !important; }
.ct-contact-form .ct-form-primary { display: grid; gap: 24px; }
.ct-contact-form .ct-form-optional { margin-block: 16px 24px; }
.ct-contact-form .ct-form-optional > summary {
  box-sizing: border-box;
  min-height: 44px;
  padding-block: 10px;
  cursor: pointer;
  font-size: max(16px, 1rem);
  line-height: 1.5;
}
.ct-contact-form .ct-form-optional[open] > summary { margin-bottom: 16px; }
