/**
 * #Contact（お問い合わせフォーム）
 */

.p-form__turnstile {
	display: flex;
	justify-content: center;
	margin: var(--sz-4) 0 var(--sz-2);
}

.p-form__turnstile .cf-turnstile {
	display: flex;
	justify-content: center;
}

.p-recapcha-text {
	text-align: center;
}

.wpcf7-response-output {
	background-color: var(--white);
}

.p-contact {
	color: var(--text);

	.wpcf7-not-valid-tip {
		margin-top: var(--sz-1);
		font-size: var(--fz-14);
		font-weight: var(--fw-medium);
		color: var(--red);
	}

	.wpcf7-spinner {
		visibility: hidden;
	}

	.wpcf7-form.submitting .wpcf7-spinner {
		visibility: visible;
	}

	.p-submit .wpcf7-spinner {
		display: none;
	}

	.p-form__spinner {
		display: block;
		margin: var(--sz-2) auto 0;
	}

	.wpcf7-list-item {
		display: block;
		margin-left: 0;

		& + .wpcf7-list-item {
			margin-top: var(--sz-1);
		}

		label {
			display: flex;
			align-items: center;
			gap: 4px;
			cursor: pointer;
			font-size: var(--fz-16);
		}

		input[type="checkbox"],
		input[type="radio"] {
			position: relative;
			flex-shrink: 0;
			box-sizing: border-box;
			width: 20px;
			height: 20px;
			margin-right: 4px;
			border: 1px solid var(--gray);
			background-color: var(--white);
			appearance: none;

			&:focus {
				outline: none;
				box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
			}
		}

		input[type="checkbox"] {
			border-radius: var(--rd-1);

			&::after {
				content: "";
				position: absolute;
				top: calc(50% - 1.5px);
				left: 50%;
				width: 7px;
				height: 14px;
				border: 2px solid var(--black);
				border-width: 0 2px 2px 0;
				opacity: 0;
				transform: rotate(45deg);
				transition: opacity 0.1s ease;
				translate: -50% -50%;
			}

			&:checked::after {
				opacity: 1;
			}
		}

		input[type="radio"] {
			border-radius: var(--rd-999);

			&::after {
				content: "";
				position: absolute;
				top: 50%;
				left: 50%;
				width: 10px;
				height: 10px;
				border-radius: var(--rd-999);
				background-color: var(--black);
				opacity: 0;
				transition: opacity 0.1s ease;
				translate: -50% -50%;
			}

			&:checked::after {
				opacity: 1;
			}
		}
	}

	.p-submit {
		position: relative;
		display: grid;
		grid-template-columns: 1fr auto 1fr;
		column-gap: 16px;
		align-items: center;
		min-width: 200px;
		max-width: 300px;
		margin: 0 auto;
		padding: 20px 30px 20px 17px;
		border: 1px solid var(--black);
		background-color: var(--white);
		overflow: hidden;
		transition: opacity var(--duration) ease;

		&::before {
			content: "";
			grid-column: 1;
			width: 25px;
			height: 25px;
			pointer-events: none;
		}

		input[type="submit"] {
			position: absolute;
			inset: 0;
			z-index: 1;
			box-sizing: border-box;
			margin: 0;
			padding: 20px 30px 20px 17px;
			width: 100%;
			height: 100%;
			border: 0;
			background: transparent;
			color: var(--black);
			font-size: 15px;
			font-weight: 700;
			line-height: 1.2;
			text-align: center;
			cursor: pointer;
			-webkit-appearance: none;
			appearance: none;
			transition: opacity var(--duration) ease;
		}

		&::after {
			content: "";
			grid-column: 3;
			justify-self: end;
			width: 25px;
			height: 25px;
			background-color: currentColor;
			color: var(--black);
			clip-path: inset(0 -8px 0 0);
			pointer-events: none;
			mask-image: url("/wp-content/themes/edance-parent/assets/img/icon/btn-arrow.svg");
			mask-repeat: no-repeat;
			mask-position: center;
			mask-size: contain;
			-webkit-mask-image: url("/wp-content/themes/edance-parent/assets/img/icon/btn-arrow.svg");
			-webkit-mask-repeat: no-repeat;
			-webkit-mask-position: center;
			-webkit-mask-size: contain;
		}

		input[type="submit"]:disabled {
			cursor: not-allowed;
		}

		&:has(input[type="submit"]:disabled) {
			opacity: 0.2;
			pointer-events: none;
			cursor: not-allowed;
		}

		@media (any-hover: hover) {
			&:hover:not(:has(input[type="submit"]:disabled)) {
				opacity: 0.75;
			}

			&:hover:not(:has(input[type="submit"]:disabled))::after {
				animation: arrow-hover 0.6s cubic-bezier(0.18, 0.89, 0.32, 1) both;
			}
		}

		@media (prefers-reduced-motion: reduce) {
			&:hover::after {
				animation: none;
			}
		}
	}

		.p-form {
			display: grid;
			grid-template-columns: 260px minmax(0, 1fr);
			row-gap: 0;

			h2,
			h3 {
				grid-column: 1 / -1;
				margin-top: var(--sz-6);

				&:first-child {
					margin-top: 0;
				}
			}

			dl {
				display: grid;
				grid-template-columns: subgrid;
				grid-column: span 2;
				align-items: start;
				margin-bottom: var(--sz-3);
				padding-bottom: var(--sz-3);
				border-bottom: 1px dotted var(--gray);

				&:last-of-type {
					margin-bottom: 0;
					padding-bottom: 0;
					border: 0;
				}

				dt {
					display: flex;
					flex-wrap: wrap;
					align-items: center;
					gap: 6px 8px;
					margin-bottom: 0;
					padding-right: var(--sz-2);
					font-size: var(--fz-16);
					font-weight: var(--fw-medium);
					line-height: 1.4;
				}

				dd {
					min-width: 0;
					@media (max-width: 768px) {
						margin-left: 0!important;
					}
				}
			}

			.c-select {
				width: 100%;
				max-width: 350px;
			}

		.p-form__stack {
			display: flex;
			flex-direction: column;
			gap: var(--sz-1);
		}

		.p-form__zip {
			display: flex;
			align-items: center;
			gap: 8px;
		}

		.p-form__inline {
			display: flex;
			flex-wrap: wrap;
			gap: var(--sz-1);

			.c-select {
				width: auto;
				min-width: 160px;
			}
		}

		.p-form__date {
			display: flex;
			flex-wrap: wrap;
			align-items: center;
			gap: 8px 12px;

			.c-select {
				width: auto;
				min-width: 5.5em;
				max-width: none;
			}
		}

		.p-form__note {
			margin: var(--sz-1) 0 0;
			/* color: var(--gray-darker); */
			font-size: var(--fz-14);
			line-height: 1.6;
		}

		.p-form__note--before {
			margin: 0 0 var(--sz-1);
		}

		.p-form__accept-group {
			grid-column: 1 / -1;
			display: flex;
			flex-direction: column;
			gap: var(--sz-3);
			margin: 0 0 var(--sz-3);
		}

		.p-form__accept {
			.wpcf7-list-item {
				margin-top: 0;
			}
		}

		.p-form__accept--rules.is-locked input[name="agreement-terms"] {
			cursor: not-allowed;
			opacity: 0.45;
		}

		.p-form__accept--rules.is-locked .wpcf7-list-item label {
			cursor: not-allowed;
		}

		.p-form__rules-hint {
			margin: var(--sz-1) 0 0;
			padding-left: 26px;
			color: var(--red);
			font-size: var(--fz-14);
			line-height: 1.6;

			&[hidden] {
				display: none;
			}
		}

		.p-course-cards {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 12px;
			margin-bottom: var(--sz-2);

			.p-course-card {
				min-width: 0;
			}

			.wpcf7-not-valid-tip {
				display: none;
			}

			&:has(.wpcf7-not-valid-tip)::after {
				content: "入力してください。";
				grid-column: 1 / -1;
				color: var(--red);
				font-size: var(--fz-14);
			}

			.p-course-card__label {
				position: relative;
				display: block;
				box-sizing: border-box;
				height: 100%;
				padding: 16px 16px 16px 48px;
				border: 2px solid #ddd;
				border-radius: 10px;
				background-color: var(--white);
				cursor: pointer;
				transition: border-color var(--duration) ease, background-color var(--duration) ease;

				&:has(input:checked) {
					border-color: var(--color-accent);
					background-color: color-mix(in srgb, var(--color-accent) 22%, white);

					.p-course-card__desc {
						color: var(--gray-dark);
					}
				}
			}

			.p-course-card__field {
				position: absolute;
				top: 16px;
				left: 16px;
				width: 20px;
				height: 20px;

				.wpcf7-form-control-wrap,
				.wpcf7-radio,
				.wpcf7-list-item {
					display: block;
					margin: 0;
					width: 20px;
					height: 20px;
				}

				.wpcf7-list-item-label {
					display: none;
				}

				input[type="radio"] {
					position: relative;
					flex-shrink: 0;
					box-sizing: border-box;
					width: 20px;
					height: 20px;
					margin: 0;
					border: 1px solid var(--gray);
					border-radius: var(--rd-999);
					background-color: var(--white);
					appearance: none;

					&:focus {
						outline: none;
						box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
					}

					&::after {
						content: "";
						position: absolute;
						top: 50%;
						left: 50%;
						width: 10px;
						height: 10px;
						border-radius: var(--rd-999);
						background-color: var(--black);
						opacity: 0;
						transition: opacity 0.1s ease;
						translate: -50% -50%;
					}

					&:checked::after {
						opacity: 1;
					}
				}
			}

			.p-course-card__title {
				display: block;
				margin-bottom: 8px;
				color: var(--black);
				font-size: var(--fz-18);
				font-weight: var(--fw-bold);
				line-height: 1.3;
			}

			.p-course-card__desc {
				display: block;
				color: var(--gray-darker);
				font-size: var(--fz-14);
				font-weight: var(--fw-normal);
				line-height: 1.6;
			}
		}

		.p-course-concurrent {
			.wpcf7-list-item {
				margin-top: 0;
			}

			label {
				align-items: flex-start;
				font-size: var(--fz-14);
				line-height: 1.6;
			}
		}
	}

	.p-form__note--after-submit {
		margin-top: var(--sz-1);
		text-align: center;
	}

	.p-form__accept-group--center {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: var(--sz-3);
		margin: var(--sz-4) 0 var(--sz-3);
		text-align: center;

		.p-form__accept .wpcf7-list-item label {
			justify-content: center;
		}
	}

	.p-button-group {
		display: flex;
		flex-wrap: wrap;
		gap: var(--sz-2);
		margin-top: var(--sz-4);

		.p-button {
			cursor: pointer;
			width: auto;
			min-width: 200px;

			&.p-button--gray {
				width: fit-content;
				min-width: 120px;
				background-color: var(--gray);
				color: var(--white);

				&:hover {
					color: var(--white);
				}
			}
		}
	}

	@media (max-width: 768px) {
		.p-form {
			display: block;

			h2,
			h3 {
				margin-top: var(--sz-4);
			}

			dl {
				margin-bottom: var(--sz-2);
				padding-bottom: var(--sz-2);
				border-bottom: 1px dotted var(--gray);

				&:last-of-type {
					margin-bottom: 0;
					padding-bottom: 0;
					border: 0;
				}

				dt {
					margin-bottom: 10px;
				}
			}

			.c-select {
				max-width: none;
			}

			.p-course-cards {
				grid-template-columns: 1fr;
			}
		}

		.p-button-group {
			margin-top: var(--sz-2);
			flex-direction: column-reverse;
		}
	}
}
