/*--------------------------------------------------
フォーム基本スタイル
ver.20250318
--------------------------------------------------*/
:root {
	--form_border_radius: 7px;
	--form_box_shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
	--form_error_color: #d14836;
}

/* フォームコンテナ */
.post_content .snow-monkey-form {
	max-width: 700px;
	margin: 40px auto;
	background: white;
	padding: 30px;
	border-radius: var(--form_border_radius);
	box-shadow: var(--form_box_shadow);
	position: relative;
}

.post_content .snow-monkey-form .smf-form > h2 {
	margin-top: 0;
}

/* フォーカスポイント（非表示） */
.post_content .smf-focus-point {
	display: none;
}

/* フォーム全体 */
.post_content .smf-form {
	margin-bottom: 30px;
}

/* フォーム項目 */
.post_content .smf-item {
	margin-bottom: 2em;
	/* display: flex; */
	flex-wrap: wrap;
}

/* 区切り線のある項目 */
.post_content .smf-item--divider {
	border-top: 1px solid #eee;
	padding-top: 20px;
	margin-top: 20px;
}

/* ラベルスタイル */
.post_content .smf-item__label {
	font-weight: bold;
	color: var(--color_text);
	margin-top: 10px;
}

.post_content
	.smf-item:has([data-validations~="required"])
	.smf-item__label__text::after {
	content: "*";
	color: var(--form_error_color);
	margin-left: 4px;
}

/* コントロール共通スタイル */
.post_content .smf-text-control,
.post_content .smf-textarea-control,
.post_content .smf-checkboxes-control {
	width: 100%;
}

/* 入力フィールド */
.post_content .smf-form .smf-text-control__control,
.post_content .smf-textarea-control__control,
.post_content .smf-select-control select {
	/* width: 100%; */
	padding: 12px 15px !important;
	border: 1px solid #898989;
	border-radius: 7px;
	transition: border-color 0.3s, box-shadow 0.3s;
}

.post_content .smf-form .smf-text-control__control:focus,
.post_content .smf-textarea-control__control:focus {
	outline: none;
	border-color: var(--color_main);
	box-shadow: 0 0 0 3px rgba(75, 106, 136, 0.2);
}

/* テキストエリア */
.post_content .smf-textarea-control__control {
	min-height: 120px;
	resize: vertical;
}

/* チェックボックス */
.post_content .smf-checkboxes-control__control {
	padding: 15px;
	background-color: #e9e9e9;
	border-radius: 7px;
}

.post_content .smf-checkbox-control {
	display: flex;
	align-items: center;
}

/* ボタン */
.post_content .smf-action {
	text-align: center;
	margin-top: 30px;
}

.post_content .smf-button-control__control {
	display: inline-block;
	min-width: 200px;
	padding: 14px 20px;
	background: unset;
	background-color: var(--color_main);
	color: white;
	border: none;
	border-radius: 7px;
	font-weight: bold;
	cursor: pointer;
	transition: background-color 0.3s, transform 0.2s;
}

.post_content .smf-button-control__control[data-action="back"] {
	background-color: unset;
	color: var(--color_text);
	border: 1px solid var(--my-border-color);
}

.post_content .smf-button-control__control[data-action="back"]:hover {
	background-color: var(--color_gray);
}

.post_content .smf-button-control__control:hover {
	background-color: var(--color_main_dark);
	transform: translateY(-2px);
}

.post_content .smf-button-control__control:active {
	transform: translateY(0);
}

/* 確認フォーム */
.post_content
	.snow-monkey-form[data-screen="confirm"]
	div[data-name="poricy-check"] {
	display: none;
}

/* 送信中アイコン */
.post_content .smf-sending {
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 3px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	border-top-color: white;
	animation: spin 1s ease-in-out infinite;
	margin-left: 10px;
	vertical-align: middle;
	display: none;
}

@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}

/* エラーメッセージ */
.post_content .smf-system-error-content-ready {
	display: none;
	color: var(--form_error_color);
	padding: 10px;
	margin-top: 15px;
	border: 1px solid var(--form_error_color);
	border-radius: var(--form_border_radius);
	background-color: rgba(209, 72, 54, 0.1);
}

/* レスポンシブスタイル */
@media (max-width: 768px) {
	.post_content .smf-item__col--label,
	.post_content .smf-item__col--controls {
		flex: 0 0 100%;
	}

	.post_content .smf-item__col--label {
		margin-bottom: 8px;
	}

	.post_content .snow-monkey-form {
		padding: 20px;
	}
}
