/*
 * Forminator form overrides — brand styles.
 *
 * Intentionally unlayered with !important: Forminator ships unlayered CSS with
 * very high-specificity selectors that include attribute selectors like
 * [data-design=default][data-color-option=default]. Rather than mirroring every
 * permutation, we use !important to guarantee our brand tokens win.
 */

/* ─── field wrapper spacing ─────────────────────────────── */
.forminator-ui.forminator-custom-form .forminator-field {
  margin-bottom: 20px !important;
}

/* ─── labels (floating + static) ────────────────────────── */
.forminator-ui.forminator-custom-form .forminator-field .forminator-label {
  font-family: var(--body) !important;
  font-size: var(--fs-body) !important;
  font-weight: 400 !important;
  letter-spacing: -0.005em !important;
  color: var(--ink-soft) !important;
  line-height: 1.62 !important;
}

/* floating label (Material) — brand color when active */
.forminator-ui.forminator-custom-form .forminator-field .forminator-floating--input,
.forminator-ui.forminator-custom-form .forminator-field .forminator-floating--textarea {
  font-family: var(--body) !important;
  font-size: var(--fs-body) !important;
  font-weight: 400 !important;
  letter-spacing: -0.005em !important;
  color: var(--ink-muted) !important;
}

.forminator-ui.forminator-custom-form .forminator-is_active .forminator-floating--input,
.forminator-ui.forminator-custom-form .forminator-is_active .forminator-floating--textarea {
  color: var(--accent) !important;
}

.forminator-ui.forminator-custom-form .forminator-is_filled .forminator-floating--input,
.forminator-ui.forminator-custom-form .forminator-is_filled .forminator-floating--textarea {
  color: var(--ink-soft) !important;
}

/* required asterisk */
.forminator-ui.forminator-custom-form .forminator-field .forminator-label .forminator-required {
  color: var(--accent) !important;
  margin-inline-start: 2px !important;
}

/* ─── HTML fields (footer notes, custom markup) ─────────── */
.forminator-ui.forminator-custom-form .forminator-field-html {
  font-family: var(--body) !important;
  font-size: var(--fs-body) !important;
  font-weight: 400 !important;
  letter-spacing: -0.005em !important;
  color: var(--ink-soft) !important;
  line-height: 1.62 !important;
}

/* ─── text inputs, textareas, selects ───────────────────── */
.forminator-ui.forminator-custom-form .forminator-field .forminator-input,
.forminator-ui.forminator-custom-form .forminator-field .forminator-textarea,
.forminator-ui.forminator-custom-form .forminator-field .forminator-select {
  font-family: var(--sans) !important;
  font-size: var(--fs-sans-body) !important;
  line-height: 1.5 !important;
  letter-spacing: -0.005em !important;
  color: var(--ink) !important;
  border-color: var(--hairline) !important;
  outline: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

/* Default design — white fields (Forminator per-form CSS defaults to gray) */
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field .forminator-input,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field .forminator-textarea,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field .forminator-select,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field .forminator-input:hover,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field .forminator-input:focus,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field .forminator-textarea:hover,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field .forminator-textarea:focus,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field .forminator-select:hover,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field .forminator-select:focus,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field.forminator-is_hover .forminator-input,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field.forminator-is_hover .forminator-textarea,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field.forminator-is_hover .forminator-select,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field.forminator-is_active .forminator-input,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field.forminator-is_active .forminator-textarea,
.forminator-ui.forminator-custom-form:is([data-design=default], .forminator-design--default) .forminator-field.forminator-is_active .forminator-select {
  background: var(--canvas) !important;
  background-color: var(--canvas) !important;
}

/* Material design — transparent so the section color shows through */
.forminator-ui.forminator-custom-form:is([data-design=material], .forminator-design--material) .forminator-field .forminator-input,
.forminator-ui.forminator-custom-form:is([data-design=material], .forminator-design--material) .forminator-field .forminator-textarea,
.forminator-ui.forminator-custom-form:is([data-design=material], .forminator-design--material) .forminator-field .forminator-select {
  background: transparent !important;
}

.forminator-ui.forminator-custom-form .forminator-field .forminator-textarea {
  min-height: 140px !important;
  resize: vertical !important;
  padding: 14px 16px !important;
  border: 1px solid var(--hairline) !important;
  border-radius: 6px !important;
  background: var(--canvas) !important;
}

/* placeholder */
.forminator-ui.forminator-custom-form .forminator-field .forminator-input::placeholder,
.forminator-ui.forminator-custom-form .forminator-field .forminator-textarea::placeholder {
  font-family: var(--sans) !important;
  color: var(--ink-muted) !important;
}

/* hover — darken bottom border */
.forminator-ui.forminator-custom-form .forminator-field .forminator-input:hover,
.forminator-ui.forminator-custom-form .forminator-field .forminator-textarea:hover,
.forminator-ui.forminator-custom-form .forminator-field .forminator-select:hover {
  border-color: var(--ink) !important;
}

/* focus — accent bottom border */
.forminator-ui.forminator-custom-form .forminator-field .forminator-input:focus,
.forminator-ui.forminator-custom-form .forminator-field .forminator-textarea:focus,
.forminator-ui.forminator-custom-form .forminator-field .forminator-select:focus {
  border-color: var(--accent) !important;
}

/* Material underline animation (::after on input--wrap) — accent color */
.forminator-ui.forminator-custom-form .forminator-input--wrap::after {
  background-color: var(--accent) !important;
}

.forminator-ui.forminator-custom-form .forminator-is_active .forminator-input--wrap::after {
  left: 0 !important;
  right: 0 !important;
}

/* Material textarea wrap focus border */
.forminator-ui.forminator-custom-form .forminator-is_active .forminator-textarea--wrap::after {
  border-color: var(--accent) !important;
  opacity: 1 !important;
}

/* ─── description / helper text ─────────────────────────── */
.forminator-ui.forminator-custom-form .forminator-field .forminator-description {
  font-family: var(--sans) !important;
  font-size: var(--fs-micro) !important;
  color: var(--ink-muted) !important;
  margin-top: 6px !important;
  line-height: 1.4 !important;
}

/* ─── validation error state ────────────────────────────── */
.forminator-ui.forminator-custom-form .forminator-field .forminator-error-message {
  display: block !important;
  font-family: var(--sans) !important;
  font-size: var(--fs-micro) !important;
  font-weight: 400 !important;
  color: var(--accent) !important;
  margin-top: 8px !important;
  padding: 0 !important;
  line-height: 1.4 !important;
  letter-spacing: -0.005em !important;
  background: transparent !important;
  border-radius: 0 !important;
  border-left: none !important;
}

.forminator-ui.forminator-custom-form .forminator-field.forminator-has_error .forminator-input,
.forminator-ui.forminator-custom-form .forminator-field.forminator-has_error .forminator-textarea,
.forminator-ui.forminator-custom-form .forminator-field.forminator-has_error .forminator-select {
  border-color: var(--accent) !important;
}

.forminator-ui.forminator-custom-form .forminator-field.forminator-has_error .forminator-input:focus,
.forminator-ui.forminator-custom-form .forminator-field.forminator-has_error .forminator-textarea:focus,
.forminator-ui.forminator-custom-form .forminator-field.forminator-has_error .forminator-select:focus {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent) !important;
}

/* ─── checkboxes & radios ───────────────────────────────── */

/* hide native input — keep accessible */
.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox > input,
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio > input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* option wrapper */
.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox,
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio {
  position: relative !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  padding: 10px 14px !important;
  border: 1px solid var(--hairline) !important;
  border-radius: 6px !important;
  margin-bottom: 8px !important;
  cursor: pointer !important;
  background: var(--canvas) !important;
  transition:
    background-color var(--motion-standard),
    border-color var(--motion-standard),
    box-shadow var(--motion-standard) !important;
}

.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox:last-child,
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio:last-child {
  margin-bottom: 0 !important;
}

.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox:hover,
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio:hover {
  border-color: color-mix(in srgb, var(--accent) 40%, var(--hairline)) !important;
  background: var(--parchment) !important;
}

/* selected wrapper highlight */
.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox:has(input:checked),
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio:has(input:checked) {
  border-color: var(--accent) !important;
  background: color-mix(in srgb, var(--accent) 4%, var(--canvas)) !important;
  box-shadow: 0 0 0 1px var(--accent) !important;
}

/* label text */
.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox .forminator-checkbox-label,
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio .forminator-radio-label {
  font-family: var(--sans) !important;
  font-size: var(--fs-sans-body) !important;
  color: var(--ink) !important;
  line-height: 1.5 !important;
  letter-spacing: -0.005em !important;
  padding-top: 1px !important;
}

/* ── custom checkbox box ──────────────────────────────────── */
.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox .forminator-checkbox-box {
  display: block !important;
  box-sizing: border-box !important;
  position: relative !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  min-width: 22px !important;
  height: 22px !important;
  min-height: 22px !important;
  border: 2px solid #b0b8c4 !important;
  border-radius: 6px !important;
  background-color: #ffffff !important;
  margin-top: 1px !important;
  overflow: visible !important;
  visibility: visible !important;
  opacity: 1 !important;
  transition:
    background-color 0.2s cubic-bezier(0.2, 0, 0, 1),
    border-color 0.2s cubic-bezier(0.2, 0, 0, 1),
    transform 0.15s cubic-bezier(0.2, 0, 0, 1) !important;
}

/* checkmark via ::before */
.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox .forminator-checkbox-box::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 2px !important;
  left: 5px !important;
  width: 7px !important;
  height: 12px !important;
  border-style: solid !important;
  border-color: #fff !important;
  border-width: 0 2.5px 2.5px 0 !important;
  border-radius: 0 !important;
  font-family: inherit !important;
  transform: rotate(45deg) scale(0) !important;
  transform-origin: center !important;
  opacity: 1 !important;
  transition: transform 0.2s cubic-bezier(0.2, 0, 0, 1) !important;
}

.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox:hover .forminator-checkbox-box {
  border-color: var(--accent) !important;
}

/* checked */
.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox input:checked + .forminator-checkbox-box,
.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox input:checked ~ .forminator-checkbox-box {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  transform: scale(1.05) !important;
}

.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox input:checked + .forminator-checkbox-box::before,
.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox input:checked ~ .forminator-checkbox-box::before {
  transform: rotate(45deg) scale(1) !important;
}

/* ── custom radio bullet ─────────────────────────────────── */
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio .forminator-radio-bullet {
  display: block !important;
  box-sizing: border-box !important;
  position: relative !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  min-width: 22px !important;
  height: 22px !important;
  min-height: 22px !important;
  border: 2px solid #b0b8c4 !important;
  border-radius: 50% !important;
  background-color: #ffffff !important;
  margin-top: 1px !important;
  overflow: visible !important;
  visibility: visible !important;
  opacity: 1 !important;
  transition:
    border-color 0.2s cubic-bezier(0.2, 0, 0, 1),
    transform 0.15s cubic-bezier(0.2, 0, 0, 1) !important;
}

/* inner dot via ::before */
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio .forminator-radio-bullet::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 3px !important;
  left: 3px !important;
  right: 3px !important;
  bottom: 3px !important;
  width: auto !important;
  height: auto !important;
  border-radius: 50% !important;
  background-color: #267fd4 !important;
  font-family: inherit !important;
  transform: scale(0) !important;
  opacity: 1 !important;
  transition: transform 0.2s cubic-bezier(0.2, 0, 0, 1) !important;
}

.forminator-ui.forminator-custom-form .forminator-field .forminator-radio:hover .forminator-radio-bullet {
  border-color: var(--accent) !important;
}

/* selected */
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio input:checked + .forminator-radio-bullet,
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio input:checked ~ .forminator-radio-bullet {
  border-color: var(--accent) !important;
  transform: scale(1.05) !important;
}

.forminator-ui.forminator-custom-form .forminator-field .forminator-radio input:checked + .forminator-radio-bullet::before,
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio input:checked ~ .forminator-radio-bullet::before {
  transform: scale(1) !important;
}

/* ── focus-visible ring ───────────────────────────────────── */
.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox input:focus-visible + .forminator-checkbox-box,
.forminator-ui.forminator-custom-form .forminator-field .forminator-checkbox input:focus-visible ~ .forminator-checkbox-box,
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio input:focus-visible + .forminator-radio-bullet,
.forminator-ui.forminator-custom-form .forminator-field .forminator-radio input:focus-visible ~ .forminator-radio-bullet {
  outline: 2px solid var(--accent-bright) !important;
  outline-offset: 2px !important;
}

/* ─── submit button — mirrors .btn.btn--cta (hero CTA) ─── */
.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 14px 26px !important;
  border: 1px solid transparent !important;
  border-radius: var(--radius-pill) !important;
  background: var(--accent) !important;
  background-image: none !important;
  box-shadow: none !important;
  font-family: var(--sans) !important;
  font-size: var(--fs-ui) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.005em !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: none !important;
  white-space: nowrap !important;
  color: #fff !important;
  cursor: pointer !important;
  transition:
    background-color var(--motion-standard),
    border-color var(--motion-standard),
    color var(--motion-standard),
    transform var(--motion-snappy) !important;
  will-change: transform;
}

/* arrow — same SVG treatment as hero .btn--cta */
.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit::after {
  content: "" !important;
  display: inline-block !important;
  width: 1.75em !important;
  height: 0.625em !important;
  flex-shrink: 0 !important;
  background-color: currentColor !important;
  -webkit-mask-image: var(--conxious-btn-arrow-right-mask) !important;
  mask-image: var(--conxious-btn-arrow-right-mask) !important;
  -webkit-mask-repeat: no-repeat !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
  -webkit-mask-size: contain !important;
  mask-size: contain !important;
  transition: transform var(--motion-standard), color var(--motion-standard) !important;
}

.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit:hover,
.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit:focus {
  background: var(--accent-strong) !important;
  color: #fff !important;
  box-shadow: none !important;
  transform: translateY(-2px) !important;
}

.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit:hover::after,
.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit:focus::after {
  transform: translateX(3px) !important;
}

.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit:active {
  box-shadow: none !important;
  transform: scale(0.98) !important;
}

.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit:focus-visible {
  outline: 2px solid var(--accent-bright) !important;
  outline-offset: 3px !important;
}

/* loading / disabled state */
.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit[disabled],
.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit.forminator-button-loading,
.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit.forminator-onload {
  opacity: 0.6 !important;
  pointer-events: none !important;
}

.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit.forminator-button-loading::after,
.forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit.forminator-onload::after {
  display: none !important;
}

/* ─── success / error response message ──────────────────── */
.forminator-ui.forminator-custom-form .forminator-response-message {
  font-family: var(--sans) !important;
  font-size: var(--fs-sans-body) !important;
  line-height: 1.5 !important;
  letter-spacing: -0.01em !important;
  padding: clamp(24px, 3vw, 32px) clamp(28px, 3.5vw, 36px) !important;
  border-radius: 12px !important;
  margin: 0 0 clamp(32px, 4vw, 48px) !important;
  text-align: left !important;
  border-left: none !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
}

.forminator-ui.forminator-custom-form .forminator-response-message:hover,
.forminator-ui.forminator-custom-form .forminator-response-message:focus,
.forminator-ui.forminator-custom-form .forminator-response-message:active {
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
  outline: none !important;
}

.forminator-ui.forminator-custom-form .forminator-response-message p,
.forminator-ui.forminator-custom-form .forminator-response-message label {
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: 400 !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.forminator-ui.forminator-custom-form .forminator-response-message p:not(:last-child),
.forminator-ui.forminator-custom-form .forminator-response-message label:not(:last-child) {
  margin-bottom: 0.85em !important;
}

.forminator-ui.forminator-custom-form .forminator-response-message.forminator-success {
  background: color-mix(in srgb, var(--accent) 7%, var(--canvas)) !important;
  color: var(--ink-soft) !important;
  border: 1px solid var(--hairline) !important;
}

.forminator-ui.forminator-custom-form .forminator-response-message.forminator-success p,
.forminator-ui.forminator-custom-form .forminator-response-message.forminator-success label {
  color: var(--ink-soft) !important;
}

.forminator-ui.forminator-custom-form .forminator-response-message.forminator-error {
  background: color-mix(in srgb, var(--accent) 10%, var(--canvas)) !important;
  color: var(--ink-soft) !important;
  border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--hairline)) !important;
}

.forminator-ui.forminator-custom-form .forminator-response-message.forminator-error p,
.forminator-ui.forminator-custom-form .forminator-response-message.forminator-error label {
  color: var(--ink-soft) !important;
}

/* ─── row / column spacing ──────────────────────────────── */
.forminator-ui.forminator-custom-form .forminator-row {
  margin-bottom: 24px !important;
}

.forminator-ui.forminator-custom-form .forminator-row:last-child {
  margin-bottom: 0 !important;
}

/* ─── select2 overrides (Forminator uses select2 for dropdowns) ── */
.forminator-ui.forminator-custom-form .forminator-select2 .selection .select2-selection {
  border: 1px solid var(--hairline) !important;
  border-radius: 12px !important;
  padding: 10px 16px !important;
  min-height: 48px !important;
  font-family: var(--sans) !important;
  font-size: var(--fs-sans-body) !important;
  color: var(--ink) !important;
  background: var(--canvas) !important;
  transition:
    border-color var(--motion-standard),
    box-shadow var(--motion-standard) !important;
}

.forminator-ui.forminator-custom-form .forminator-select2 .selection .select2-selection:hover {
  border-color: color-mix(in srgb, var(--accent) 40%, var(--hairline)) !important;
}

.forminator-ui.forminator-custom-form .forminator-select2.select2-container--open .selection .select2-selection {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent) !important;
}
