/* CF7 Accessibility Fixes Companion */

.cf7afc-sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Text boxes: visible default boundary, 3:1+ (WCAG 1.4.11) - L&F B01, BD2 B12 */
.wpcf7 input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),
.wpcf7 textarea,
.wpcf7 select{
	border:1px solid var(--cf7afc-border,#6B6B6B);
	box-sizing:border-box;
	min-height:44px;
}
.wpcf7 textarea{min-height:120px}
.wpcf7 input[type=checkbox],.wpcf7 input[type=radio]{
	min-width:24px;min-height:24px;accent-color:var(--cf7afc-focus,#0B57D0);
}
.wpcf7 .wpcf7-list-item label{display:inline-flex;align-items:center;gap:.5em;min-height:24px}

/* Focus indicator for every control: two-tone ring (blue outline + white halo).
   Selector is deliberately more specific than common theme rules such as
   ".form-sec input:focus{outline:0!important}" so the ring cannot be removed. */
html body .wpcf7 form input:not([type=hidden]):focus,
html body .wpcf7 form textarea:focus,
html body .wpcf7 form select:focus,
html body .wpcf7 form button:focus,
html body .wpcf7 form input:not([type=hidden]):focus-visible,
html body .wpcf7 form textarea:focus-visible,
html body .wpcf7 form select:focus-visible,
html body .wpcf7 form button:focus-visible,
html body .wpcf7 form input:not([type=hidden]):active,
html body .wpcf7 form textarea:active,
html body .wpcf7 form select:active,
.wpcf7 a:focus-visible,
.cf7afc-summary:focus-visible,
.cf7afc-summary a:focus-visible{
	outline:3px solid var(--cf7afc-focus,#0B57D0)!important;
	outline-offset:3px!important;
	border-color:var(--cf7afc-focus,#0B57D0)!important;
	box-shadow:0 0 0 3px #fff!important;
}

/* Submit button: target size + visible focus (L&F B01, BD2 B12) */
.wpcf7 input[type=submit],.wpcf7 button[type=submit]{
	min-height:44px;min-width:44px;cursor:pointer;
}

/* Calendar icon / date picker controls: >= 24x24 (L&F B09, WCAG 2.5.8) */
.wpcf7 .ui-datepicker-trigger,
.wpcf7 .flatpickr-calendar-icon,
.wpcf7 [class*="calendar-icon"],
.ui-datepicker-trigger,
.ui-datepicker-prev,.ui-datepicker-next,
.flatpickr-prev-month,.flatpickr-next-month,
.pika-prev,.pika-next{
	min-width:24px!important;min-height:24px!important;
	display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
}
.ui-datepicker-trigger:focus-visible,.ui-datepicker-prev:focus-visible,.ui-datepicker-next:focus-visible,
.flatpickr-prev-month:focus-visible,.flatpickr-next-month:focus-visible,.pika-button:focus-visible{
	outline:3px solid var(--cf7afc-focus,#0B57D0)!important;outline-offset:2px!important;
}

/* Errors: not colour alone (border weight + bold text + icon) */
.wpcf7 .wpcf7-not-valid,
.wpcf7 [aria-invalid="true"]{
	border:2px solid var(--cf7afc-error,#B3261E)!important;
}
.wpcf7 .wpcf7-not-valid-tip{
	display:block;margin-top:.35em;font-weight:700;font-size:.95em;
	color:var(--cf7afc-error,#B3261E);
}
.wpcf7 .wpcf7-not-valid-tip::before{content:"\26A0\00a0" / "";}

/* Response / success message */
.wpcf7 form .wpcf7-response-output{
	margin:1em 0 0;padding:.75em 1em;border:2px solid #1a1a1a;font-weight:600;
}
.wpcf7 form.sent .wpcf7-response-output{border-color:#1E6B34;color:#14532D;background:#F1FAF3}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output{border-color:var(--cf7afc-error,#B3261E);color:#7A1410;background:#FDF3F2}
.wpcf7 .wpcf7-response-output:focus{outline:3px solid var(--cf7afc-focus,#0B57D0);outline-offset:3px}

/* Linked error summary */
.cf7afc-summary{
	margin:0 0 1.25em;padding:1em 1.25em;border:2px solid var(--cf7afc-error,#B3261E);
	background:#FDF3F2;color:#1a1a1a;
}
.cf7afc-summary__title{margin:0 0 .5em;font-weight:700}
.cf7afc-summary ul{margin:0;padding-left:1.25em}
.cf7afc-summary a{color:#7A1410;text-decoration:underline;font-weight:600}

@media (forced-colors:active){
	.wpcf7 input:focus-visible,.wpcf7 textarea:focus-visible,.wpcf7 button:focus-visible{outline:3px solid Highlight!important}
}
