/* =======================
   Contact Form 7
======================= */

/*-- CF7 main container */
.mpx-cf7-container {
   font-family: var(--mpx-ff-a);
   display: -webkit-flex;
   display: flex;
   -webkit-flex-direction: column;
   flex-direction: column;
   -webkit-justify-content: flex-start;
   justify-content: flex-start;
   -webkit-align-items: flex-start;
   align-items: flex-start;
   width: 100%;
   gap: var(--mpx-pad-lg, 1.25rem);
   margin: 0;
   padding: 0;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
}

/*-- Responsive row */
.mpx-responsive-row {
   display: -webkit-flex;
   display: flex;
   -webkit-flex-direction: row;
   flex-direction: row;
   -webkit-justify-content: flex-start;
   justify-content: flex-start;
   -webkit-align-items: flex-start;
   align-items: flex-start;
   width: 100%;
   gap: var(--mpx-pad-lg, 1.25rem);
   margin: 0;
   padding: 0;
}

/*-- Container for submit btn and recaptcha */
.mpx-submit-container {
   display: -webkit-flex;
   display: flex;
   -webkit-flex-direction: column;
   flex-direction: column;
   -webkit-justify-content: flex-start;
   justify-content: flex-start;
   width: 100%;
   gap: var(--mpx-pad-md, 0.75rem);
   margin: 0;
   padding: 0;
}

/* Hide field label from screen only */
.sr-only {
   position: absolute;
   width: 1px;
   height: 1px;
   padding: 0;
   margin: -1px;
   overflow: hidden;
   clip: rect(0, 0, 0, 0);
   white-space: nowrap;
   border: 0;
}

/* Field group container */
.mpx-field-group {
   position: relative;
   display: -webkit-flex !important;
   display: flex !important;
   -webkit-flex-direction: row !important;
   flex-direction: row !important;
   -webkit-justify-content: flex-start !important;
   justify-content: flex-start !important;
   -webkit-align-items: center !important;
   align-items: center !important;
   gap: 1rem !important;
   width: 100% !important;
   min-width: 0;
   padding: 0 1rem !important;
   border: 1px solid var(--mpx-brd-l) !important;
   border-radius: var(--mpx-brd-sm) !important;
   background-color: var(--mpx-clr-wh) !important;
   box-sizing: border-box;
   -webkit-transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
   transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
}

.mpx-field-group:hover {
   border-color: var(--mpx-clr-sec) !important;
   box-shadow: var(--mpx-shd-hov) !important;
}

/* Focus state belongs to the outer field container */
.mpx-field-group:focus-within {
   border-color: var(--mpx-clr-acc-a) !important;
   box-shadow: var(--mpx-shd-hov) !important;
}

/* Field icon */
.mpx-form-icon {
   position: relative;
   flex: 0 0 auto;
   width: 1.25rem;
   height: 1.25rem;
   color: var(--mpx-clr-gray-l) !important;
}

/* Field */
.mpx-form-field {
   font-family: inherit;
   font-size: var(--mpx-fs-sm);
   font-weight: var(--mpx-fw-n);
   background-color: transparent !important;
   border: none !important;
   outline: none !important;
   box-shadow: none !important;
   width: 100%;
   max-width: 100%;
   min-width: 0;
   padding: var(--mpx-pad-md, 0.75rem) 0 !important;
   color: var(--mpx-clr-blk) !important;
   box-sizing: border-box;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
}

/* Remove browser / Elementor / CF7 focus styling */
.mpx-cf7-container .mpx-form-field:focus,
.mpx-cf7-container .mpx-form-field:focus-visible,
.mpx-cf7-container input.mpx-form-field:focus,
.mpx-cf7-container textarea.mpx-form-field:focus,
.mpx-cf7-container select.mpx-form-field:focus {
   background-color: transparent !important;
   border: none !important;
   outline: none !important;
   box-shadow: none !important;
}

/* Select field */
.mpx-form-field select,
select.mpx-form-field {
   -webkit-appearance: none;
   -moz-appearance: none;
   appearance: none;
   background-color: transparent !important;
   border: none !important;
   outline: none !important;
   box-shadow: none !important;
   width: 100%;
   max-width: 100%;
   min-width: 0;
   padding: var(--mpx-pad-md, 0.75rem) 0.35rem !important;
   font-family: inherit;
   font-size: var(--mpx-fs-sm);
   color: var(--mpx-clr-blk) !important;
   line-height: var(--mpx-lh-sm);
   box-sizing: border-box;
}

/* Textarea */
.mpx-cf7-container textarea.mpx-form-field {
   display: block;
   width: 100%;
   max-width: 100%;
   min-width: 0;
   box-sizing: border-box;
   resize: vertical;
}

/* Field placeholder text */
.mpx-form-field::placeholder {
   color: var(--mpx-clr-gray-l) !important;
}

.mpx-form-field::-webkit-input-placeholder {
   color: var(--mpx-clr-gray-l) !important;
}

.mpx-form-field::-moz-placeholder {
   color: var(--mpx-clr-gray-l) !important;
}

.mpx-form-field:-ms-input-placeholder {
   color: var(--mpx-clr-gray-l) !important;
}

/* Autofill override */
.mpx-field-group input:-webkit-autofill,
.mpx-field-group textarea:-webkit-autofill,
.mpx-field-group select:-webkit-autofill {
   -webkit-box-shadow: 0 0 0 1000px var(--mpx-clr-wh) inset !important;
   box-shadow: 0 0 0 1000px var(--mpx-clr-wh) inset !important;
   -webkit-text-fill-color: var(--mpx-clr-blk) !important;
   -webkit-background-clip: text;
   font-family: var(--mpx-ff-a) !important;
   transition: background-color 5000s ease-in-out 0s;
}

/* Firefox support */
.mpx-field-group input:-moz-autofill,
.mpx-field-group textarea:-moz-autofill,
.mpx-field-group select:-moz-autofill {
   box-shadow: 0 0 0 1000px var(--mpx-clr-wh) inset !important;
   color: var(--mpx-clr-blk) !important;
   font-family: var(--mpx-ff-a) !important;
}

/* Submit button */
.mpx-form-btn {
   cursor: pointer;
   border: none !important;
   outline: none !important;
   box-shadow: none !important;
   font-family: var(--mpx-ff-a) !important;
   font-size: var(--mpx-fs-sm) !important;
   line-height: var(--mpx-lh-sm) !important;
   font-weight: var(--mpx-fw-md) !important;
   width: 100% !important;
   padding: var(--mpx-btn-pad-md) !important;
   border-radius: var(--mpx-brd-sm) !important;
   background-color: var(--mpx-clr-acc-a) !important;
   color: var(--mpx-clr-wh) !important;
   box-sizing: border-box;
   transition: background-color 0.3s ease, color 0.3s ease;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
}

.mpx-form-btn:hover {
   background-color: #204A5B !important;
   color: var(--mpx-clr-wh) !important;
}

.mpx-form-btn:focus {
   background-color: var(--mpx-clr-acc-a) !important;
   color: var(--mpx-clr-wh) !important;
}

.mpx-form-btn:focus-visible {
   outline: 2px solid var(--mpx-clr-acc-a) !important;
   outline-offset: 2px;
}

/* Disabled submit button */
.mpx-form-btn:disabled,
.mpx-form-btn[disabled] {
   cursor: not-allowed !important;
   background-color: var(--mpx-clr-disabled-l) !important;
   color: var(--mpx-clr-wh) !important;
   box-shadow: none !important;
   opacity: 1;
}

.mpx-form-btn:disabled:hover,
.mpx-form-btn[disabled]:hover {
   background-color: var(--mpx-clr-disabled-l) !important;
   color: var(--mpx-clr-wh) !important;
}

/*-- Make field-group p tags horizontal --*/
.mpx-cf7-container .mpx-field-group p {
   display: -webkit-flex;
   display: flex;
   -webkit-align-items: center;
   align-items: center;
   gap: 1rem;
   margin: 0;
   width: 100% !important;
   min-width: 0;
}

/*-- Remove unwanted line breaks from CF7 --*/
.mpx-cf7-container br {
   display: none;
}

/*-- Make CF7 input wrapper expand --*/
.mpx-cf7-container .mpx-field-group .wpcf7-form-control-wrap {
   display: -webkit-flex;
   display: flex;
   -webkit-flex: 1 1 auto;
   flex: 1 1 auto;
   width: 100%;
   min-width: 0;
   max-width: 100%;
}

/*-- Error message --*/
.mpx-cf7-container .wpcf7-not-valid-tip {
   position: absolute;
   top: 100%;
   left: 0;
   transform: translateY(0.35rem);
   display: inline-block;
   width: auto !important;
   max-width: 100%;
   color: var(--mpx-clr-err-l) !important;
   font-size: var(--mpx-fs-xxs) !important;
   font-weight: var(--mpx-fw-md) !important;
   line-height: var(--mpx-lh-sm);
   padding: 0;
   margin: 0 !important;
   z-index: 10;
   white-space: nowrap !important;
   overflow: visible !important;
}

/* Reserve space below fields that contain an inline error. */
.mpx-field-group:has(.wpcf7-not-valid-tip) {
   margin-bottom: 1rem;
}

/* Consent errors flow below the consent content in either form. */
.mpx-cf7-container .mpx-consent-grp .wpcf7-not-valid-tip {
   position: static;
   top: auto;
   left: auto;
   transform: none;
   display: block;
   margin: calc(var(--mpx-pad-sm, 0.5rem) / 2) 0 0 !important;
   white-space: normal !important;
   overflow-wrap: anywhere;
}

.wpcf7 form .wpcf7-response-output {
   margin: var(--mpx-pad-sm, 0.5rem) 0 0 !important;
   padding: var(--mpx-pad-md, 0.75rem) !important;
   color: var(--mpx-clr-err-l);
   font-family: var(--mpx-ff-a) !important;
   font-size: var(--mpx-fs-xxs) !important;
   font-weight: var(--mpx-fw-md) !important;
   background-color: rgba(165, 44, 69, 0.08);
   border-radius: var(--mpx-brd-sm) !important;
   border: 1px solid var(--mpx-clr-err-l) !important;
}

.wpcf7 form .wpcf7-response-output:empty {
   display: none !important;
}

.wpcf7-spinner {
   display: none;
   background-color: var(--mpx-clr-succ-l);
   opacity: 0.75;
   width: 24px;
   height: 24px;
   border: none;
   border-radius: 100%;
   padding: 0;
   margin: var(--mpx-pad-md, 0.75rem) auto 0 !important;
   position: relative;
}

.wpcf7 form.submitting .wpcf7-spinner {
   display: inline-block;
}

/* Consent checkbox */
.mpx-consent-grp {
   display: -webkit-flex;
   display: flex;
   -webkit-flex-direction: row;
   flex-direction: row;
   -webkit-justify-content: flex-start;
   justify-content: flex-start;
   -webkit-align-items: center;
   align-items: center;
   gap: 1ch;
}

.mpx-consent-grp p,
.mpx-consent-grp .consent-text {
   color: var(--mpx-clr-gray-d);
   font-size: var(--mpx-fs-xs);
   font-weight: var(--mpx-fw-md);
}

.mpx-consent-grp a {
   color: var(--mpx-clr-gray-d);
   font-size: var(--mpx-fs-xs);
   font-weight: var(--mpx-fw-md);
   text-decoration: underline;
   -webkit-transition: color 0.3s ease;
   transition: color 0.3s ease;
}

.mpx-consent-grp a:hover {
   color: var(--mpx-clr-sec);
   font-size: var(--mpx-fs-xs);
   font-weight: var(--mpx-fw-md);
}

/* Startup form only: compact native checkbox choices. */
.mpx-startup-help {
   width: 100%;
   min-width: 0;
   margin: 0;
   padding: 0;
   border: 0;
}

.mpx-startup-help legend {
   padding: 0;
   margin-bottom: var(--mpx-pad-sm, 0.5rem);
   color: var(--mpx-clr-acc-a, #0D0D0D);
   font-size: var(--mpx-fs-sm, 0.9375rem);
   font-weight: var(--mpx-fw-sb, 600);
   line-height: var(--mpx-lh-sm, 1.4rem);
}

.mpx-startup-help p {
   margin: 0;
   width: 100%;
}

.mpx-startup-help .wpcf7-form-control-wrap {
   display: block;
   min-width: 0;
}

.mpx-startup-help .mpx-startup-choices {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   column-gap: var(--mpx-pad-md, 0.75rem);
   width: 100%;
}

.mpx-startup-help .wpcf7-list-item {
   min-width: 0;
   margin: 0;
}

.mpx-startup-help label {
   display: flex;
   box-sizing: border-box;
   align-items: flex-start;
   gap: var(--mpx-pad-sm, 0.5rem);
   min-height: 44px;
   padding: var(--mpx-pad-sm, 0.5rem) 0;
   color: var(--mpx-clr-gray-d, #636363);
   font-size: var(--mpx-fs-sm, 0.9375rem);
   line-height: var(--mpx-lh-sm, 1.4rem);
   cursor: pointer;
}

.mpx-startup-help input[type="checkbox"] {
   flex: 0 0 auto;
   width: 1rem;
   height: 1rem;
   margin: calc(var(--mpx-pad-sm, 0.5rem) / 2) 0 0;
   accent-color: var(--mpx-clr-succ-l, #2C8724);
}

.mpx-startup-help input[type="checkbox"]:focus-visible {
   outline: 2px solid var(--mpx-clr-pri, #2A7FFF);
   outline-offset: 2px;
}

.mpx-startup-help .wpcf7-list-item-label {
   min-width: 0;
   overflow-wrap: anywhere;
}

/* Group errors flow below startup choices; shared field errors stay unchanged. */
.mpx-cf7-container .mpx-startup-help .wpcf7-not-valid-tip {
   position: static;
   top: auto;
   left: auto;
   transform: none;
   display: block;
   margin: calc(var(--mpx-pad-sm, 0.5rem) / 2) 0 0 !important;
   white-space: normal !important;
   overflow-wrap: anywhere;
}

/*-- Responsiveness */
@media (max-width: 768px) {
   .mpx-responsive-row {
      -webkit-flex-direction: column;
      flex-direction: column;
   }
}

@media (max-width: 480px) {
   .mpx-startup-help .mpx-startup-choices {
      grid-template-columns: minmax(0, 1fr);
   }

   .mpx-form-field {
      font-size: 16px;
   }
}

/* iOS-specific safeguard */
@supports (-webkit-touch-callout: none) {
   .mpx-form-field {
      font-size: 16px !important;
   }
}

/* Remove Honeypot wrapper from layout */
.mpx-submit-container>p:has(.cf7apps-honeypot-wrap) {
   display: none !important;
   margin: 0 !important;
   padding: 0 !important;
}

/*---- Contact Form 7 CSS END ---------------------- */
