/* Contact Form 7: forms styled as a clinic intake sheet */

.wpcf7 {
	container-type: inline-size;
}

.wpcf7-form {
	display: grid;
	gap: 1.6rem;
}

.wpcf7-form p {
	margin: 0;
}

.wpcf7 label,
.wpcf7 legend {
	display: block;
	padding: 0;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-transform: uppercase;
}

.wpcf7 fieldset {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.wpcf7 legend + * {
	margin-top: 0.75rem;
}

.wpcf7 :where(input:not([type="submit"], [type="checkbox"], [type="radio"], [type="file"], [type="hidden"]), select, textarea) {
	display: block;
	box-sizing: border-box;
	width: 100%;
	margin: 0.35rem 0 0;
	padding: 0.65rem 0.15rem 0.55rem;
	border: 0;
	border-bottom: 2px solid currentColor;
	border-radius: 0;
	background-color: transparent;
	color: inherit;
	font-family: var(--wp--preset--font-family--mona-sans);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 550;
	letter-spacing: normal;
	line-height: 1.3;
	text-transform: none;
	-webkit-appearance: none;
	appearance: none;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.wpcf7 :where(input:not([type="submit"], [type="checkbox"], [type="radio"], [type="file"], [type="hidden"]), select, textarea):hover {
	background-color: color-mix(in srgb, currentColor 4%, transparent);
}

.wpcf7 :where(input:not([type="submit"], [type="checkbox"], [type="radio"], [type="file"], [type="hidden"]), select, textarea):focus-visible {
	border-bottom-color: var(--wp--preset--color--primary);
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
	background-color: color-mix(in srgb, var(--wp--preset--color--primary) 7%, transparent);
}

.wpcf7 select {
	padding-inline-end: 2rem;
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: calc(100% - 0.95rem) 52%, calc(100% - 0.6rem) 52%;
	background-size: 0.35rem 0.35rem;
	background-repeat: no-repeat;
	cursor: pointer;
}

.wpcf7 select:dir(rtl) {
	background-position: 0.6rem 52%, 0.95rem 52%;
}

.wpcf7 select option {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.wpcf7 input[type="date"] {
	min-height: calc(1.3em + 1.2rem + 2px);
}

.wpcf7 input[type="date"]::-webkit-calendar-picker-indicator {
	width: 1.1rem;
	height: 1.1rem;
	padding: 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3 5h14v12H3zM3 9h14M7 2.5v4M13 2.5v4' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3 5h14v12H3zM3 9h14M7 2.5v4M13 2.5v4' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	cursor: pointer;
}

.wpcf7 textarea {
	min-height: 8.25rem;
	padding-top: 0.25rem;
	background-image: linear-gradient(transparent calc(100% - 1px), color-mix(in srgb, currentColor 22%, transparent) 0);
	background-size: 100% 2rem;
	background-attachment: local;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 2rem;
	resize: vertical;
}

.wpcf7 .wpcf7-list-item {
	margin: 0;
}

.wpcf7 .wpcf7-list-item + .wpcf7-list-item {
	margin-inline-start: 1.5rem;
}

.wpcf7 .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 550;
	letter-spacing: normal;
	text-transform: none;
	cursor: pointer;
}

.wpcf7 .wpcf7-list-item-label::before,
.wpcf7 .wpcf7-list-item-label::after {
	content: none;
}

.wpcf7 :is(input[type="checkbox"], input[type="radio"]) {
	flex: none;
	width: 1.4rem;
	height: 1.4rem;
	margin: 0;
	accent-color: var(--wp--preset--color--primary);
	cursor: pointer;
}

.wpcf7 .wpcf7-submit {
	cursor: pointer;
}

.wpcf7 .wpcf7-submit:not(.wp-element-button) {
	padding: 0.9em 1.4em;
	border: 0;
	border-radius: 12px;
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
	font-family: var(--wp--preset--font-family--mona-sans);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 650;
	line-height: 1.1;
}

.wpcf7 .wpcf7-submit:not(.wp-element-button):hover {
	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.wpcf7 .wpcf7-spinner {
	margin: 0 1rem;
	background-color: currentColor;
	vertical-align: middle;
}

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

.wpcf7 .wpcf7-not-valid-tip {
	width: fit-content;
	max-width: 100%;
	margin-top: 0.55rem;
	padding-block: 0.35em;
	padding-inline: 0.6em 0.65em;
	border-inline-start: 3px solid var(--wp--preset--color--contrast);
	border-start-end-radius: 6px;
	border-end-end-radius: 6px;
	background-color: var(--wp--preset--color--tint-2);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	line-height: 1.35;
}

.wpcf7 :is(input, select, textarea).wpcf7-not-valid {
	background-color: color-mix(in srgb, var(--wp--preset--color--tint-2) 45%, transparent);
}

.wpcf7 form .wpcf7-response-output {
	margin: 0;
	padding: 1rem 1.25rem;
	border: 2px solid currentColor;
	border-radius: 12px;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.45;
}

.wpcf7 form:is(.invalid, .unaccepted, .payment-required) .wpcf7-response-output {
	border-color: var(--wp--preset--color--contrast);
	background-color: var(--wp--preset--color--tint-2);
	color: var(--wp--preset--color--contrast);
}

.wpcf7 form:is(.failed, .aborted, .spam) .wpcf7-response-output {
	border-color: var(--wp--preset--color--contrast);
	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--wp--preset--color--accent);
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}

/* The intake sheet layout used by the theme's demo form: short fields in pairs when there is room. */

.wpcf7 .vp-intake {
	display: grid;
	gap: 1.75rem 2rem;
}

.wpcf7 .vp-intake__optional {
	display: inline-block;
	margin-inline-start: 0.4em;
	padding: 0 0.4em;
	border: 1px solid currentColor;
	border-radius: 4px;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.5;
	text-transform: lowercase;
	vertical-align: 0.1em;
}

@container (min-width: 30rem) {
	.wpcf7 .vp-intake {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wpcf7 :is(.vp-intake__wide, .vp-intake__submit) {
		grid-column: 1 / -1;
	}
}
