/* CF 7 Form */
/* Styles configuration */
:root {
  --cf7-font: inherit;
  --cf7-font-size: var(--wp--preset--font-size--regular);
  --cf7-font-weight: normal;
  --cf7-labels: var(--wp--preset--color--body);
  --cf7-input-text: var(--wp--preset--color--placeholder-text);
  --cf7-accent: var(--wp--preset--color--accent);
  --cf7-accent-hover: var(--wp--preset--color--accent);
  --cf7-accent-outline: #b9d9ff;
  --cf7-accent-text: var(--wp--preset--color--white);
  --cf7-warning: var(--wp--preset--color--error);
  --cf7-warning-bg: #FFEDEC;
  --cf7-success: var(--wp--preset--color--success);
  --cf7-success-bg: #E6FFF0;
}


/* General Settings */
.wpcf7,
.wpcf7 * {
  font-family: var(--cf7-font);
  font-weight: var(--cf7-font-weight);
}

.wpcf7 .screen-reader-response,
.wpcf7-form .hidden-fields-container {
  display: none;
}

.wpcf7-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
}

.wpcf7-form-control-wrap {
  display: flex;
  flex-direction: column;
}

br + .wpcf7-form-control-wrap,
.wpcf7-form-control-wrap + .wpcf7-form-control-wrap, {
	margin-top: 12px;
}

.wpcf7 label {
  color: var(--cf7-labels);
}

.wpcf7-form p {
  position: relative;
}

.wpcf7-form>p:last-of-type {
  margin-bottom: 0;
  margin-top: 24px;
  width: max-content;
}

.wpcf7-form p br {
  display: none;
}

.wpcf7-form p > label {
  margin-bottom: 8px;
  display: block;
  margin-top: 24px;
}

.wpcf7-form p label>span {
  margin-top: 8px;
  display: block;
  margin-bottom: 24px;
}

.wpcf7-list-item,
.wpcf7-form-control {
  margin: unset !important;
  display: flex;
  width: 100%;
  align-items: center;
  gap: var(--wp--preset--spacing--small) !important;
}

.wpcf7 a {
  color: var(--cf7-accent) !important;
  text-decoration: none;
}

.wpcf7 a:hover {
  color: var(--wp--preset--color--accent) !important;
}

/* General Inputs */
.wpcf7 input[type=color],
.wpcf7 input[type=date],
.wpcf7 input[type=datetime-local],
.wpcf7 input[type=datetime],
.wpcf7 input[type=email],
.wpcf7 input[type=month],
.wpcf7 input[type=number],
.wpcf7 input[type=search],
.wpcf7 input[type=tel],
.wpcf7 input[type=text],
.wpcf7 input[type=time],
.wpcf7 input[type=url],
.wpcf7 input[type=week],
.wpcf7 textarea,
.wpcf7 input[type="file"]::file-selector-button,
.wpcf7 select {
  min-height: 48px !important;
  border-radius: 6px;
  padding: var(--wp--preset--spacing--medium) var(--wp--preset--spacing--large);
  background: var(--wp--preset--color--white);
  font-size: var(--wp--preset--font-size--regular);
  border: 1px solid var(--wp--preset--color--secondar-border);
}

.wpcf7 select {
  min-height: 48px !important;
  width: 100% !important;
  padding: 0 15px !important
}

.wpcf7 input[type=tel] {
  min-height: 48px !important;
  width: 100% !important;
}


.wpcf7 textarea {
  min-height: 120px;
  max-height: 150px;
}

.wpcf7 input[type=submit] {
  min-height: 48px;
  border-radius: 8px;
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--white);
  font-size: var(--wp--preset--font-size--regular);
  font-weight: 600;
  padding: 12px var(--wp--preset--spacing--xx-large);
  position: relative;
  cursor: pointer;
  border: none !important;
  width: max-content;
}

/* .wpcf7 input:hover[type=submit],
.wpcf7 input:focus[type=submit] {
  background: linear-gradient(180deg, #484848, var(--wp--preset--color--primary));
  border: 1px solid var(--wp--preset--color--accent);
  ;
  color: var(--wp--preset--color--white);
  transition: .2s linear;
  cursor: pointer;
} */

.wpcf7 input[type=file] {
  color: var(--cf7-input-text);
  font-size: var(--cf7-font-size);
  font-weight: var(--cf7-font-weight);
  font-family: var(--cf7-font);
}

.wpcf7 input:focus[type=file] {
  outline: none;
  border: 0;
}

/* .wpcf7 input[type=file]::file-selector-button,
.wpcf7 select
{
  border: 1px solid #D5E0EB;
  background-color: #ffffff;
  border-radius: 6px;
  line-height: 1.3;
  padding: 0.7rem 1rem;
  color: var(--cf7-input-text);
  min-height: 35px;
  font-size: var(--cf7-font-size);
  font-weight: var(--cf7-font-weight);
  font-family: var(--cf7-font);
} */
.wpcf7 input[type=file]::file-selector-button {
  cursor: pointer;
  margin-right: 20px;
}

/* Custom Checkbox */
.wpcf7 input[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border: 2px solid var(--cf7-accent);
  border-radius: 6px;
  margin: 0;
  display: grid;
  place-content: center;
  cursor: pointer;
}

.wpcf7 input[type="checkbox"]:before {
  content: "\f147";
  font-family: 'dashicons';
  font-weight: 300;
  font-size: 15px;
  line-height: 17px;
  width: 18px;
  height: 18px;
  color: white;
  text-align: center;
  border-radius: 6px;
  transform: scale(0);
  transition: 120ms transform ease-in-out;
  box-shadow: inset 20px 20px var(--cf7-accent);
}

.wpcf7 input[type="checkbox"]:checked::before {
  transform: scale(1);
}

.wpcf7-checkbox label,
.wpcf7-acceptance label,
.wpcf7-radio label {
  display: flex;
  align-items: center;
  gap: 0.325rem;
  line-height: 1;
}

/* Custom Radio */
.wpcf7 input[type="radio"] {
  -webkit-appearance: none;
  appearance: none;
  background-color: transparent;
  margin: 0;
  font: inherit;
  color: var(--cf7-accent);
  width: 18px;
  height: 18px;
  border: 2px solid var(--cf7-accent);
  border-radius: 100%;
  display: grid;
  place-content: center;
  cursor: pointer;
}

.wpcf7 input[type="radio"]::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 100%;
  transform: scale(0);
  transition: 120ms transform ease-in-out;
  box-shadow: inset 1em 1em var(--cf7-accent);
}

.wpcf7 input[type="radio"]:checked::before {
  transform: scale(1);
}

/* Other States */
/* .wpcf7 input:hover[type=color],
.wpcf7 input:hover[type=date],
.wpcf7 input:hover[type=datetime-local],
.wpcf7 input:hover[type=datetime],
.wpcf7 input:hover[type=email],
.wpcf7 input:hover[type=month],
.wpcf7 input:hover[type=number],
.wpcf7 input:hover[type=search],
.wpcf7 input:hover[type=tel],
.wpcf7 input:hover[type=text],
.wpcf7 input:hover[type=time],
.wpcf7 input:hover[type=url],
.wpcf7 input:hover[type=week],
.wpcf7 input:hover[type=file]::file-selector-button,
.wpcf7 textarea:hover,
.wpcf7 select:hover
{
  border: 1px solid #92ACC7;
  outline: none;
  background-color: #ffffff;
  font-size: var(--cf7-font-size);
}
.wpcf7 input:focus[type=color],
.wpcf7 input:focus[type=date],
.wpcf7 input:focus[type=datetime-local],
.wpcf7 input:focus[type=datetime],
.wpcf7 input:focus[type=email],
.wpcf7 input:focus[type=month],
.wpcf7 input:focus[type=number],
.wpcf7 input:focus[type=search],
.wpcf7 input:focus[type=tel],
.wpcf7 input:focus[type=text],
.wpcf7 input:focus[type=time],
.wpcf7 input:focus[type=url],
.wpcf7 input:focus[type=week],
.wpcf7 input:focus[type="checkbox"],
.wpcf7 textarea:focus,
.wpcf7 select:focus,
.wpcf7 a:focus
{
  border: 1px solid #92ACC7;
  outline:none;
  box-shadow: 0 0 0 3px var(--cf7-accent-outline);
  background-color: #ffffff;
} */
/* Invalid Fields */
.wpcf7-not-valid-tip {
  color: var(--cf7-warning) !important;
  font-size: var(--cf7-font-size) !important;
  font-weight: var(--cf7-font-weight) !important;
}

/* .wpcf7-not-valid:not(input[type=file]):not(span) {
  border-color: #FFBAB6 !important;
  background-color: #FFFAFA !important;
} */

.wpcf7 input:disabled[type=submit],
.wpcf7 input:disabled[type=submit]:hover {
  color: #ffffff;
  background-color: var(--cf7-warning);
  border: 0;
  cursor: not-allowed;
}

/* Response Messages */
.wpcf7 form.init .wpcf7-response-output {
  display: none;
}

.wpcf7 form .wpcf7-response-output {
  /* Default */
  margin: 15px 0 0 !important;
  padding: 10px 20px !important;
  border: 0 !important;
  border-radius: 6px !important;
}

.wpcf7 form.sent .wpcf7-response-output {
  /* Success */
  background-color: var(--cf7-success-bg) !important;
  color: var(--cf7-success) !important;
  border: 0 !important;
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
  /* Failed */
  background-color: var(--cf7-warning-bg) !important;
  color: var(--cf7-warning) !important;
  border: 0 !important;
  line-height: 1.8;
}

.wpcf7-spinner {
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  background-color: var(--wp--preset--color--black) !important;
  margin: 0;
  left: 175px;
}

.wpcf7-spinner::before {
  background-color: var(--wp--preset--color--white) !important;
}


/* Custom CSS */
.wpcf7-form .home-address p label > span {
  margin-bottom: 0px !important;
}

.wpcf7-form .rounded-pill {
  flex-wrap: wrap;
}

.wpcf7-form .rounded-pill .wpcf7-list-item, .wpcf7-form .rounded-pill .wpcf7-form-control {
	width: auto;
}

.wpcf7-form .rounded-pill label>input {
  display: none;
}

.wpcf7-form .rounded-pill .wpcf7-list-item label>span {
  display: flex;
  font-size: 14px;
  cursor: pointer;
  flex-wrap: wrap;
  padding: 8px 16px;
  justify-content: center;
  margin: unset !important;
  background: var(--wp--preset--color--white);
  border: 1px solid var(--wp--preset--color--secondar-border);
  border-radius: 999px;
}

.wp-block-cloudcatch-light-modal-block__content .rounded-pill .wpcf7-list-item label>span {
	background: var(--wp--preset--color--secondary-background);
}

.wpcf7-form .wpcf7-radio .wpcf7-list-item label>span:hover,
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item label>span:hover {
  background: var(--wp--preset--color--secondar-border);
}

.wpcf7-form .rounded-pill .wpcf7-list-item input[type="radio"]:checked+span,
.wpcf7-form .rounded-pill .wpcf7-list-item input[type="checkbox"]:checked+span {
  background: var(--wp--preset--color--primary);
  border: 1px solid var(--wp--preset--color--primary);
  color: var(--wp--preset--color--white);
}

/* Multi File Upload CSS */
.codedropz-upload-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.wpcf7-form-control-wrap .codedropz-upload-container {
  padding: unset;
  height: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

.codedropz-upload-inner::before {
  content: '\F220';
  font-family: "Bootstrap-icons";
  font-size: 32px;
  color: var(--wp--preset--color--light-grey);
}

.wpcf7-form-control-wrap .codedropz-upload-inner h3,
.wpcf7-form-control-wrap .codedropz-upload-inner span,
.dnd-upload-status .dnd-upload-details .name em,
.codedropz-btn-wrap,
.wpcf7-form-control-wrap .dnd-upload-status .dnd-upload-details .dnd-progress-bar {
  display: none;
}


.wpcf7-form-control-wrap .dnd-upload-status {
  padding: unset;
  align-items: center;
  position: relative;
  flex-direction: column;
  width: max-content;
}

.dnd-upload-status .dnd-upload-details {
  padding-left: 0;
  font-size: 14px;
  width: auto;
}

.dnd-upload-status .dnd-upload-details .name {
  padding: unset !important;
}

.wpcf7-form-control-wrap .dnd-upload-status .dnd-upload-details .name span {
	color: var(--wp--preset--color--grey);
	padding: unset;
	max-width: 120px;
}

.codedropz-upload-handler {
	order: 999;
}

.codedropz-upload-handler,
.codedropz-upload-container,
.wpcf7-form-control-wrap .dnd-upload-status .dnd-upload-image {
  width: 120px;
  min-height: 120px;
  border-radius: 8px;
  border: none;
  margin: 0;
}

.dnd-upload-status .dnd-upload-image span.file {
	top: 10px;
  left: 7px;
  border-radius: 8px;
	background-image: none;
}

.dnd-upload-counter {
	position: unset;
}

.codedropz-upload-container,
.wpcf7-form-control-wrap .dnd-upload-status .dnd-upload-image {
  border: 1px solid var(--wp--preset--color--secondar-border);
}

.dnd-upload-status .dnd-upload-details span.has-error {
	position: absolute;
  width: max-content;
}

.dnd-upload-status .dnd-upload-details .remove-file {
	right: 6px;
  top: 6px;
}

.dnd-upload-status .dnd-upload-details .remove-file span::after {
  content: '\F62A';
  width: 16px;
  height: 16px;
  display: flex;
  background-repeat: no-repeat;
  background-size: 100%;
  background-image: none;
  color: var(--wp--preset--color--grey);
  background-color: var(--wp--preset--color--secondar-border);
  font-family: "Bootstrap-icons";
  border-radius: 999px;
  justify-content: center;
  align-items: center;
}

.codedropz-upload-wrapper span.has-error-msg {
	order: 999;
  display: block;
  width: 100%;
	font-style: normal;
}

.upload-photos label::after {
  content: "Photos help us give a more accurate quote. Phone photos work perfectly. If you prefer not to upload images, you can book a free home survey.";
  display: block;
  font-size: var(--wp--preset--font-size--small);
  padding-left: 8px;
  border-left: 2px solid var(--wp--preset--color--primary);
}


/* -------------------------------------------------------- *//* CF7 Date Field Fix for Mobile (iOS + Android) */
.wpcf7-form-control-wrap {
    display: block;
    width: 100%;
    min-width: 0;
}

.wpcf7 input[type="date"] {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 12px;
    font-size: 16px;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}

/* Fix internal iOS date text overflow */
.wpcf7 input[type="date"]::-webkit-date-and-time-value {
    text-align: left;
}

/* Prevent flex/grid overflow issues */
.wpcf7-form {
    width: 100%;
}

.wpcf7-form * {
    min-width: 0;
}