/*===============================================================================
フォーム全体
================================================================================*/
/*===============================
input要素
=================================*/
/* input要素の親 */
.wpcf7-form-control-wrap {
	display: inline-block;
	width: 100%;
}
/* 各input要素 */
.wpcf7
	:is(.wpcf7-text, .wpcf7-textarea, .wpcf7-select, .wpcf7-number, .wpcf7-date) {
	width: 100%;
	padding: .75rem clamp(.5rem, .38vw + .41rem, .75rem);
	vertical-align: middle; /* 要素下の余白削除 */
	border: 1px solid var(--c-blue);
	border-radius: 4px;
	overflow: hidden;
	background: var(--c-light);
}
/* プレースホルダー内のテキストカラー */
:is(input, textarea)::placeholder,
input.wpcf7-date {
	color: #333;
	opacity: .2;
}


/*===============================
ラジオボタン＆チェックボックス
=================================*/
.wpcf7-radio,
.wpcf7-checkbox,
.wpcf7-acceptance {
	--label-size: 1rem;
	display: flex;
	justify-content: center;
	margin-bottom: clamp(2.5rem, 1.786rem + 1.9vw, 3.5rem);
}
.wpcf7-acceptance label {
	display: flex;
    gap: .5rem;
    align-items: center;
}

/* ラベル, テキスト部分 */
:is(.wpcf7-radio, .wpcf7-checkbox, .wpcf7-acceptance) label,
:is(.wpcf7-radio, .wpcf7-checkbox, .wpcf7-acceptance) input {
	cursor: pointer;
}
/* ラベル */
:is(.wpcf7-radio, .wpcf7-checkbox, .wpcf7-acceptance) input {
	flex: 1;
	width: var(--label-size);
	min-width: var(--label-size);
	height: var(--label-size);
	border-radius: 2px;
	border: 1px solid var(--c-blue);
}
/* テキスト */
.wpcf7-list-item {
	margin: unset !important;
}
.wpcf7
	:is(.wpcf7-radio, .wpcf7-checkbox, .wpcf7-acceptance)
	.wpcf7-list-item
	label
	span {
	font-weight: var(--fw-lg);
}


/*===============================================================================
テーブル
================================================================================*/
.cf-table {
	width: 100%;
	margin-bottom: clamp(2.5rem, 1.786rem + 1.9vw, 3.5rem);
}
.cf-table tr {
	display: flex;
	flex-direction: column;
	gap: clamp(.5rem, .38vw + .41rem, .75rem);
}
.cf-table tr:not(:last-of-type) {
	margin-bottom: clamp(1.25rem, .76vw + 1.06rem, 1.75rem);
}
/* 郵便番号 */
.cf-address {
	display: flex;
	gap: .5rem;
	align-items: center;
	font-weight: var(--fw-lg);
}
.cf-address span {
	flex: 1;
    max-width: 5.25rem;
}

/*===============================================================================
ラベル
================================================================================*/
.cfLabel {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: clamp(.5rem, .38vw + .41rem, .75rem);
}
.cfLabel::before {
	min-width: fit-content;
	padding: 0 .5rem;
	line-height: normal;
	color: var(--c-light);
	border-radius: 4px;
	font-weight: var(--fw-lg);
}
.cfLabel.--required::before {
	content: "必須";
	background: var(--c-act02);
}
.cfLabel.--any::before {
	content: "任意";
	background: var(--c-blue--dark);
}


/*===============================================================================
ボタンのスタイル
================================================================================*/
.cfBtn-content {
	text-align: center;
}
.wpcf7-submit {
    border: unset;
}
.wpcf7-spinner {
	display: none;
}


/*===============================================================================
失敗・完了メッセージ
================================================================================*/
.wpcf7 form.invalid .wpcf7-response-output {
	background: var(--c-act02);
    padding: 2.5rem 1rem;
	margin: 2rem 0;
    text-align: center;
    color: var(--c-light);
    font-size: 1.25rem;
    font-weight: var(--fw-md);
	border-radius: 8px;
	border: unset;
}

.wpcf7 form.sent .wpcf7-response-output {
	background: var(--c-blue--dark);
    padding: 2.5rem 1rem;
    margin: 2rem 0;
    text-align: center;
    color: var(--c-light);
    font-size: 1.25rem;
    font-weight: var(--fw-md);
    border-radius: 8px;
	border: unset;
}