/* CSS Custom Properties for Easy Customization */
.wpcf7 {
  /* Colors */
  --form-bg-color: #ffffff;
  --form-border-color: #999999;
  --form-text-color: #111111;
  --form-label-color: #111111;
  --form-placeholder-color: #999999;
  --form-focus-color: var(--wp--preset--color--accent-3);
  --form-error-color: #ee2864;
  --form-success-color: #10b981;
  --form-button-bg: var(--wp--preset--color--accent-1);
  --form-button-text: var(--wp--preset--color--accent-3);
  --form-button-hover-bg: var(--wp--preset--color--accent-3);
  --form-button-hover-text: var(--wp--preset--color--accent-1);
  --form-button-font-family: var(--wp--preset--font-family--raleway)
  --form-shadow-color: rgba(0, 0, 0, 0.1);
  
  /* Spacing */
  --form-padding: 1rem;
  --form-field-spacing: .5rem;
  --form-input-padding: 0.75rem .75rem;
  --form-border-radius: 0.5rem;
  --form-input-border-radius: 0.375rem;
  --form-button-border-radius: 9999px;
  
  /* Typography */
  --form-font-family: inherit;
  --form-font-size: var(--wp--preset--font-size--small);
  --form-label-font-size: var(--wp--preset--font-size--small);
  --form-label-font-weight: 600;
  --form-input-font-size: 1rem;
  
  /* Transitions */
  --form-transition: all 0.2s ease-in-out;
  
  /* Borders */
  --form-border-width: 1px;
  --form-focus-border-width: 1px;
}

/* Form Container */
.wpcf7-form {
  font-family: var(--form-font-family);
  color: var(--form-text-color);
}



/* Form paragraph wrapper */
.wpcf7-form > p {
  margin: 0;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
}


/* Labels */
.wpcf7-form label {
  display: block;
  font-size: var(--form-label-font-size);
  font-weight: var(--form-label-font-weight);
  color: var(--form-label-color);
  margin-bottom: 0 !important;
  line-height: 1.8;
}

.wpcf7-form label:focus-within {
    color: var(--wp--preset--color--accent-3)
}

.wpcf7-form label:first-of-type {
	margin-top: -.3rem;
}

/* Input field containers */
.wpcf7-form-control-wrap {
  display: block;
  margin-bottom: var(--form-field-spacing);
}

/* Text inputs, email, tel */
.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-email,
.wpcf7-form-control.wpcf7-tel {
  width: 100%;
  padding: var(--form-input-padding);
  font-size: var(--form-input-font-size);
  border: var(--form-border-width) solid var(--form-border-color);
  border-radius: var(--form-input-border-radius);
  background-color: var(--form-bg-color);
  color: var(--form-text-color);
  transition: var(--form-transition);
  box-sizing: border-box;
}

/* Textarea */
.wpcf7-form-control.wpcf7-textarea {
    width: 100%;
    padding: var(--form-input-padding);
    font-size: var(--form-input-font-size);
    font-family: var(--form-font-family);
    border: var(--form-border-width) solid var(--form-border-color);
    border-radius: var(--form-input-border-radius);
    background-color: var(--form-bg-color);
    color: var(--form-text-color);
    transition: var(--form-transition);
    resize: vertical;
    min-height: 100px;
    box-sizing: border-box;
    /* min-height: 2rem; */

}

/* Input focus states */
.wpcf7-form-control.wpcf7-text:focus-visible,
.wpcf7-form-control.wpcf7-email:focus-visible,
.wpcf7-form-control.wpcf7-tel:focus-visible,
.wpcf7-form-control.wpcf7-textarea:focus-visible {
  outline: none;
  border-color: var(--form-focus-color);
  border-width: var(--form-focus-border-width);
	  box-shadow: 0 0 0 3px #5e20d31a;
}

/* Placeholder styles */
.wpcf7-form-control::placeholder {
  color: var(--form-placeholder-color);
  opacity: 1;
}

/* Radio button container */
.wpcf7-form-control.wpcf7-radio {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    row-gap: .5rem;
    margin-top: 0.5rem;

}

/* Radio button items */
.wpcf7-list-item {
  display: flex;
  align-items: center;
}

.wpcf7-list-item label {
  display: flex;
  align-items: center;
  cursor: pointer;
  margin-bottom: 0;
  font-weight: normal;
}

.wpcf7-list-item input[type="radio"] {
  margin-right: 0.5rem;
  accent-color: var(--form-focus-color);

}

span.wpcf7-list-item-label,
.wpcf7-list-item input[type="radio"]:checked ~ span.wpcf7-list-item-label {
	transition: color 0.1s ease-in-out;
}

.wpcf7-list-item input[type="radio"]:checked ~ span.wpcf7-list-item-label{
	color: var(--form-focus-color) !important;
}

.wpcf7-list-item input[type="radio"]:focus {
outline: 2px solid #5e20d34d;

}

.wpcf7-list-item-label {
  font-size: var(--form-font-size);
  color: var(--form-text-color);
}

/* Submit button */
.wpcf7-form-control.wpcf7-submit {
  background-color: var(--form-button-bg);
  color: var(--form-button-text);
  border: none;
  padding: 0.75rem 2rem;
  font-size: var(--form-input-font-size);
  font-weight: 600;
  border-radius: var(--form-button-border-radius);
  cursor: pointer;
  transition: var(--form-transition);
margin-bottom: .55rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
	flex-grow: 1;
}

.wpcf7-form-control.wpcf7-submit:hover,
.wpcf7-form-control.wpcf7-submit:focus-visible {
  background-color: var(--form-button-hover-bg);
  color: var(--form-button-hover-text);
  transform: translateY(-1px);
  box-shadow: 3px 4px 10px #5e20d34d;
}

.wpcf7-form-control.wpcf7-submit:active {
  transform: translateY(0);
}

/* Spinner */
.wpcf7 .wpcf7-spinner {
  display: none;
}

.wpcf7-form.submitting .wpcf7-spinner {
display: none;
}

/* Response output */
.wpcf7 form.wpcf7-form .wpcf7-response-output {
  margin-top: 1rem;
  margin-bottom: 0;
  padding: 0.75rem;
  border-radius: var(--form-input-border-radius);
  border-width: 2px;
  font-weight: 500;
  font-size: var(--form-font-size);
}

.wpcf7 form.wpcf7-form.invalid .wpcf7-response-output {
  border-color: var(--form-error-color)
}

.wpcf7 form.wpcf7-form .wpcf7-response-output.wpcf7-mail-sent-ok {
  display: block;
  background-color: #dcfce7;
  color: var(--form-success-color);
  border: 1px solid #bbf7d0;
}

.wpcf7 form.wpcf7-form .wpcf7-response-output.wpcf7-validation-errors {
  display: block;
  background-color: #fef2f2;
  color: var(--form-error-color);
  border: 1px solid #fecaca;
	
}

/* Error states for invalid fields */
.wpcf7-form-control.wpcf7-not-valid {
    border-color: var(--form-error-color);
    border-style: solid;

}

.wpcf7-form-control.wpcf7-not-valid:focus-visible {
  border-color: var(--wp--preset--color--accent-3);
  /*box-shadow: 0 0 0 3px #d320ac1a;*/
	color: var(--form-text-color)
}



.wpcf7-not-valid-tip {
    color: var(--form-error-color);
    color: #d60044;
    font-size: 95%;
    transition: color 0.2s ease-in-out;

}

.wpcf7-form-control.wpcf7-not-valid:focus-visible  ~ .wpcf7-not-valid-tip {
    color: var(--form-focus-color);
}

/* Break tags - add proper spacing */
.wpcf7-form br {
  display: none;
}

@media screen and (min-width: 1000px) {
  .wpcf7 form p > label:first-of-type,
    .wpcf7 form p > label:nth-of-type(2),
      .wpcf7 form p > label:nth-of-type(3),
    .wpcf7 form p > label:nth-of-type(4){
  flex-basis: calc(50% - .5rem);
      	margin-top: -.3rem;
  }
  .wpcf7-form > p {
  margin: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
    justify-content: space-between;
}
      .wpcf7-form label {
    width: 100%;
  }
    .wpcf7-form input[type="submit"] {
flex-grow: 1;
  }

}

@media screen and (max-width: 781px) and (min-width: 450px) {
  .wpcf7 form p > label:first-of-type,
    .wpcf7 form p > label:nth-of-type(2),
      .wpcf7 form p > label:nth-of-type(3),
    .wpcf7 form p > label:nth-of-type(4){
  flex-basis: calc(50% - .5rem);
      	margin-top: -.3rem;
  }
  .wpcf7-form > p {
  margin: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
    justify-content: space-between;
}
    .wpcf7-form label {
    width: 100%;
  }
    .wpcf7-form input[type="submit"] {
flex-grow: 1;
  }
}

.wpcf7 .privacy-text {
	font-size: .75rem;
	display: block;
}

.wpcf7 .privacy-text a {
	text-decoration-color: transparent;
	font-size: .75rem;
	color: var(--wp--preset--color--accent-3);
	font-weight: 400;
}

.wpcf7-form.submitting .wpcf7-submit {
	position: relative;
}
/* relies on js converting wpcf7 input[type=submit] into a button */
.wpcf7-form.submitting .wpcf7-form-control.wpcf7-submit:after {
	content: "";
	display: block;
	width: 1.25em;
	height: 1.25em;
	position: absolute;
	right: 1em;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%235e20d3' viewBox='0 0 640 640'%3E%3Cpath d='M320 180C291.3 180 268 156.7 268 128C268 99.3 291.3 76 320 76C348.7 76 372 99.3 372 128C372 156.7 348.7 180 320 180zM320 480C337.7 480 352 494.3 352 512C352 529.7 337.7 544 320 544C302.3 544 288 529.7 288 512C288 494.3 302.3 480 320 480zM512 352C494.3 352 480 337.7 480 320C480 302.3 494.3 288 512 288C529.7 288 544 302.3 544 320C544 337.7 529.7 352 512 352zM96 320C96 302.3 110.3 288 128 288C145.7 288 160 302.3 160 320C160 337.7 145.7 352 128 352C110.3 352 96 337.7 96 320zM495.4 223.8C473.5 245.7 438.1 245.7 416.2 223.8C394.3 201.9 394.3 166.5 416.2 144.6C438.1 122.7 473.5 122.7 495.4 144.6C517.3 166.5 517.3 201.9 495.4 223.8zM161.6 478.4C149.1 465.9 149.1 445.6 161.6 433.1C174.1 420.6 194.4 420.6 206.9 433.1C219.4 445.6 219.4 465.9 206.9 478.4C194.4 490.9 174.1 490.9 161.6 478.4zM433.1 478.4C420.6 465.9 420.6 445.6 433.1 433.1C445.6 420.6 465.9 420.6 478.4 433.1C490.9 445.6 490.9 465.9 478.4 478.4C465.9 490.9 445.6 490.9 433.1 478.4zM150.3 150.3C169.1 131.5 199.4 131.5 218.2 150.3C237 169.1 237 199.4 218.2 218.2C199.4 237 169.1 237 150.3 218.2C131.5 199.4 131.5 169.1 150.3 150.3z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  animation: spin 1s cubic-bezier(0, 0, 0.31, 1) infinite;
transform-origin: center center;
}

@keyframes form-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.wpcf7-form.submitting .wpcf7-form-control.wpcf7-submit:hover:after {
	filter: hue-rotate(160deg) brightness(2.75);
} 