/**
 * Contact Form 7 ? ????????
 */

.sanpuku-cf7 {
	max-width: 40rem;
	margin-inline: auto;
}

.sanpuku-cf7__required-note {
	font-size: 0.875rem;
	margin-bottom: 1.5rem;
}

.sanpuku-cf7__note {
	margin: 0 0 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: color-mix(in srgb, var(--sanpuku-text, #333) 82%, transparent);
}

.sanpuku-cf7 .required {
	color: #7d2e2e;
}

.sanpuku-cf7__heading {
	margin: 2rem 0 1rem;
	padding-bottom: 0.35rem;
	border-bottom: 2px solid #7d2e2e;
	color: #7d2e2e;
	font-size: 1.1rem;
}

.sanpuku-cf7__heading:first-of-type {
	margin-top: 0;
}

/* 学校遠足（先生方）予約フォーム */
.sanpuku-cf7.sanpuku-cf7--school-teachers {
	box-sizing: border-box;
	max-width: var(--sanpuku-width-lead);
	width: min(100%, var(--sanpuku-width-lead));
	margin-inline: auto;
	padding: 1.5rem 1.25rem;
	border: 1px solid var(--sanpuku-accent, #7d2e2e);
	border-radius: var(--sanpuku-radius);
}

main.sanpuku-content .sanpuku-cf7--school-teachers h3.sanpuku-cf7__heading,
main.sanpuku-content .wp-block-post-content .sanpuku-cf7--school-teachers .sanpuku-cf7__heading {
	margin: 1.75rem 0 0.85rem;
	padding: 0;
	border-bottom: none;
	color: var(--sanpuku-accent, #7d2e2e);
	font-family: var(--sanpuku-font-sans);
	font-size: inherit;
	font-weight: 600;
	line-height: 1.5;
	text-align: left;
}

main.sanpuku-content .sanpuku-cf7--school-teachers h3.sanpuku-cf7__heading:first-of-type,
main.sanpuku-content .wp-block-post-content .sanpuku-cf7--school-teachers .sanpuku-cf7__heading:first-of-type {
	margin-top: 0;
}

.sanpuku-cf7 label {
	display: block;
	margin-bottom: 1.25rem;
	font-weight: 600;
	line-height: 1.5;
}

.sanpuku-cf7 input[type="text"],
.sanpuku-cf7 input[type="email"],
.sanpuku-cf7 input[type="tel"],
.sanpuku-cf7 input[type="date"],
.sanpuku-cf7 input[type="number"],
.sanpuku-cf7 select,
.sanpuku-cf7 textarea {
	display: block;
	width: 100%;
	margin-top: 0.35rem;
	padding: 0.6rem 0.75rem;
	border: 1px solid #ccc;
	border-radius: var(--sanpuku-radius);
	font-weight: 400;
	box-sizing: border-box;
}

.sanpuku-cf7 textarea {
	min-height: 10rem;
}

.sanpuku-cf7__privacy {
	font-size: 0.9rem;
	margin-bottom: 0.75rem;
}

.sanpuku-cf7 .wpcf7-form-control-wrap:has(> .wpcf7-acceptance) {
	display: block;
	margin-bottom: 1rem;
}

.sanpuku-cf7 .wpcf7-form-control-wrap:has(> .wpcf7-acceptance) + .wpcf7-form-control-wrap:has(> .wpcf7-acceptance) {
	margin-top: 0.5rem;
}

.sanpuku-cf7 .wpcf7-acceptance {
	display: block;
	margin-bottom: 0;
	font-weight: 400;
}

.sanpuku-cf7 .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.sanpuku-cf7 .wpcf7-acceptance label {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
	font-weight: 400;
}

.sanpuku-cf7 .wpcf7-acceptance input {
	margin: 0;
	flex-shrink: 0;
}

.sanpuku-cf7 .wpcf7-acceptance .wpcf7-list-item-label {
	display: inline;
}

.sanpuku-cf7__submit {
	margin-top: 1rem;
}

.sanpuku-cf7 input[type="submit"],
.sanpuku-cf7 .wpcf7-submit {
	background: #7d2e2e;
	color: #fff;
	border: none;
	padding: 0.75rem 2.5rem;
	border-radius: var(--sanpuku-radius-pill);
	cursor: pointer;
	font-size: 1rem;
}

.sanpuku-cf7 input[type="submit"]:hover,
.sanpuku-cf7 .wpcf7-submit:hover {
	background: #5c2222;
}

/* ???????????????? */
.sanpuku-cf7 .wpcf7-checkbox {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-top: 0.35rem;
	font-weight: 400;
}

.sanpuku-cf7 .wpcf7-checkbox .wpcf7-list-item {
	margin: 0;
}

.sanpuku-cf7--press .sanpuku-cf7__required-note {
	line-height: 1.7;
}

.wpcf7-not-valid-tip {
	color: #b32d2e;
	font-size: 0.85rem;
	margin-top: 0.25rem;
}

.wpcf7-response-output {
	margin: 1.5rem 0 0;
	padding: 1rem;
	border-radius: var(--sanpuku-radius);
}

@media (min-width: 901px) {
	.sanpuku-cf7,
	.sanpuku-cf7__required-note,
	.sanpuku-cf7__heading,
	.sanpuku-cf7 label,
	.sanpuku-cf7 input[type="text"],
	.sanpuku-cf7 input[type="email"],
	.sanpuku-cf7 input[type="tel"],
	.sanpuku-cf7 input[type="date"],
	.sanpuku-cf7 input[type="number"],
	.sanpuku-cf7 select,
	.sanpuku-cf7 textarea,
	.sanpuku-cf7__privacy,
	.sanpuku-cf7 .wpcf7-acceptance,
	.sanpuku-cf7 .wpcf7-checkbox,
	.sanpuku-cf7 input[type="submit"],
	.sanpuku-cf7 .wpcf7-submit {
		font-size: var(--sanpuku-font-size-body-pc);
	}

	/* 学校遠足（先生方）— ラベルと入力を横並び */
	.sanpuku-cf7--school-teachers label.sanpuku-cf7__field:not(.sanpuku-cf7__field--stack) {
		display: grid;
		grid-template-columns: 11rem minmax(0, 1fr);
		column-gap: 1rem;
		row-gap: 0.25rem;
		align-items: center;
	}

	.sanpuku-cf7--school-teachers .sanpuku-cf7__label {
		grid-column: 1;
		grid-row: 1;
		margin: 0;
		white-space: nowrap;
	}

	.sanpuku-cf7--school-teachers .sanpuku-cf7__label .required {
		white-space: nowrap;
	}

	.sanpuku-cf7--school-teachers label.sanpuku-cf7__field .wpcf7-form-control-wrap {
		grid-column: 2;
		grid-row: 1;
		width: 100%;
		min-width: 0;
		margin-top: 0;
	}

	.sanpuku-cf7--school-teachers label.sanpuku-cf7__field .wpcf7-form-control-wrap input,
	.sanpuku-cf7--school-teachers label.sanpuku-cf7__field .wpcf7-form-control-wrap select,
	.sanpuku-cf7--school-teachers label.sanpuku-cf7__field .wpcf7-form-control-wrap textarea {
		margin-top: 0;
	}

	.sanpuku-cf7--school-teachers .wpcf7-not-valid-tip {
		grid-column: 2;
		margin-top: 0.25rem;
		padding-inline-start: 0;
	}
}

.sanpuku-cf7--school-teachers label.sanpuku-cf7__field .sanpuku-cf7__label {
	display: block;
	font-weight: 600;
}

.sanpuku-cf7--school-teachers label.sanpuku-cf7__field .wpcf7-form-control-wrap {
	display: block;
	margin-top: 0.35rem;
}

.sanpuku-cf7--school-teachers label.sanpuku-cf7__field--stack .wpcf7-form-control-wrap {
	margin-top: 0.35rem;
}
