/* VIOX Contact Form 7 system --------------------------------------------- */

.viox-contact-form.wpcf7,
.viox-contact-form.wpcf7-form {
  display: block !important;
  width: 100%;
  max-width: 620px;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.viox-contact-form .wpcf7-form,
.viox-contact-form.wpcf7-form {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

.viox-contact-form .viox-cf7-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 20px;
}

.viox-contact-form .viox-cf7-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 9px;
  margin: 0;
  color: var(--viox-ink, #1b2027);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.35;
  text-transform: uppercase;
}

.viox-contact-form .viox-cf7-field > br {
  display: none;
}

.viox-contact-form .viox-cf7-field--full {
  grid-column: 1 / -1;
}

.viox-contact-form .viox-cf7-field > span:not(.wpcf7-form-control-wrap) {
  display: block;
}

.viox-contact-form .viox-cf7-field em {
  color: var(--viox-red, #d71920);
  font-style: normal;
}

.viox-contact-form .viox-cf7-field .wpcf7-form-control-wrap {
  display: block;
}

.viox-contact-form .viox-cf7-field input,
.viox-contact-form .viox-cf7-field textarea {
  display: block;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  border: 1px solid var(--viox-border, #e1e6ec);
  border-radius: 5px;
  background: var(--viox-surface, #fff);
  color: var(--viox-ink, #1b2027);
  font-family: var(--viox-font, "Poppins", sans-serif) !important;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.45;
  outline: 0;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.viox-contact-form .viox-cf7-field input {
  height: 50px;
  padding: 0 16px;
}

.viox-contact-form .viox-cf7-field textarea {
  min-height: 148px;
  padding: 13px 16px;
  resize: vertical;
}

.viox-contact-form .viox-cf7-field input::placeholder,
.viox-contact-form .viox-cf7-field textarea::placeholder {
  color: #8793a1;
  opacity: 1;
}

.viox-contact-form .viox-cf7-field input:focus,
.viox-contact-form .viox-cf7-field textarea:focus {
  border-color: var(--viox-red, #d71920);
  box-shadow: 0 0 0 3px rgba(215, 25, 32, .1);
}

.viox-contact-form .wpcf7-acceptance {
  display: block;
  margin: 18px 0 16px;
  color: var(--viox-muted, #687482);
  font-size: 13px;
  line-height: 1.5;
}

.viox-contact-form .wpcf7-acceptance label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.viox-contact-form .wpcf7-acceptance input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 auto;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  accent-color: var(--viox-red, #d71920);
}

.viox-contact-form .wpcf7-form > p:has(.wpcf7-submit) {
  margin: 0;
}

.viox-contact-form input[type="submit"] {
  display: block;
  width: 100% !important;
  min-height: 54px;
  height: auto !important;
  box-sizing: border-box;
  padding: 14px 20px;
  border: 0 !important;
  border-radius: 6px;
  background: var(--viox-red, #d71920) !important;
  color: #fff !important;
  cursor: pointer;
  font-family: var(--viox-font, "Poppins", sans-serif) !important;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: none;
  transition: background-color 180ms ease, color 180ms ease;
}

.viox-contact-form input[type="submit"]:hover,
.viox-contact-form input[type="submit"]:focus-visible {
  background: var(--viox-red-hover, #b51218) !important;
}

.viox-contact-form input[type="submit"]:disabled {
  cursor: wait;
  opacity: .65;
}

.viox-contact-form .wpcf7-spinner {
  display: block;
  margin: 8px auto 0;
}

.viox-contact-form .wpcf7-not-valid-tip,
.viox-contact-form .wpcf7-response-output {
  font-size: 13px;
  line-height: 1.45;
}

.viox-contact-form .wpcf7-not-valid-tip {
  margin-top: 6px;
  color: var(--viox-red, #d71920);
}

.viox-contact-form .wpcf7-response-output {
  margin: 18px 0 0 !important;
  padding: 12px 14px !important;
  border: 1px solid var(--viox-border, #e1e6ec) !important;
  color: var(--viox-text, #3b4652);
}

.viox-contact-connect .viox-contact-form .viox-cf7-field {
  color: #fff;
}

.viox-contact-connect .viox-contact-form .wpcf7-acceptance {
  color: var(--viox-on-dark, #d7dee6);
}

.viox-contact-form .wpcf7 form.sent .wpcf7-response-output {
  border-color: #7db398 !important;
  color: #28633f;
}

.viox-contact-form .wpcf7 form.invalid .wpcf7-response-output,
.viox-contact-form .wpcf7 form.failed .wpcf7-response-output {
  border-color: rgba(215, 25, 32, .42) !important;
  color: var(--viox-red, #d71920);
}

@media (max-width: 780px) {
  .viox-contact-form .viox-cf7-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .viox-contact-form .viox-cf7-field--full {
    grid-column: auto;
  }
}
