/* ========================================
   法人ITお悩み診断
======================================== */

.it-shindan-app {
	max-width: 900px;
	margin: 0 auto;
	color: #1f2937;
	line-height: 1.7;
}


/* 診断ヘッダー
---------------------------------------- */

.it-shindan-hero {
	padding: 45px 30px;
	text-align: center;
	background: linear-gradient(
		135deg,
		#0d3b78,
		#1769e0
	);
	color: #fff;
	border-radius: 20px 20px 0 0;
}

.it-shindan-label {
	display: inline-block;
	margin: 0 0 10px;
	padding: 5px 12px;
	background: rgba(255,255,255,0.15);
	border-radius: 30px;
	font-size: 14px;
	font-weight: bold;
}

.it-shindan-hero h2 {
	margin: 0 0 12px;
	color: #fff;
	font-size: 36px;
	line-height: 1.4;
}

.it-shindan-hero > p:not(.it-shindan-label) {
	margin: 0;
	font-size: 17px;
}

.it-shindan-badges {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 20px;
}

.it-shindan-badges span {
	padding: 6px 12px;
	background: rgba(255,255,255,0.15);
	border-radius: 30px;
	font-size: 13px;
}


/* 診断パネル
---------------------------------------- */

.it-shindan-panel {
	padding: 35px;
	background: #fff;
	border: 1px solid #e1e6ed;
	border-radius: 0 0 20px 20px;
	box-shadow: 0 15px 40px rgba(0,0,0,0.08);
}


/* 進捗
---------------------------------------- */

.it-shindan-progress-info {
	display: flex;
	justify-content: space-between;
	margin-bottom: 8px;
	color: #667085;
	font-size: 14px;
	font-weight: bold;
}

.it-shindan-progress {
	height: 9px;
	margin-bottom: 35px;
	background: #e8edf3;
	border-radius: 20px;
	overflow: hidden;
}

#it-shindan-progress-bar {
	width: 0;
	height: 100%;
	background: linear-gradient(
		90deg,
		#1769e0,
		#65b0ff
	);
	border-radius: 20px;
	transition: width 0.3s ease;
}


/* 質問
---------------------------------------- */

#it-shindan-question h3 {
	margin: 0 0 8px;
	font-size: 26px;
	line-height: 1.5;
}

#it-shindan-question p {
	margin: 0 0 20px;
	color: #667085;
}


/* 選択肢
---------------------------------------- */

.it-shindan-options {
	display: grid;
	gap: 12px;
	margin-top: 25px;
}

.it-shindan-option {
	width: 100%;
	padding: 16px 18px;
	background: #fff;
	border: 1px solid #dce3eb;
	border-radius: 12px;
	color: #1f2937;
	font-size: 16px;
	text-align: left;
	cursor: pointer;
	transition: 0.2s;
}

.it-shindan-option:hover {
	border-color: #1769e0;
	background: #f7faff;
}

.it-shindan-option.is-selected {
	border-color: #1769e0;
	background: #edf5ff;
	box-shadow: 0 0 0 2px rgba(23,105,224,0.08);
}


/* 自由入力
---------------------------------------- */

.it-shindan-textarea {
	width: 100%;
	min-height: 130px;
	padding: 15px;
	border: 1px solid #dce3eb;
	border-radius: 12px;
	font-size: 16px;
	line-height: 1.7;
	resize: vertical;
}


/* 戻る・次へ
---------------------------------------- */

.it-shindan-buttons {
	display: flex;
	justify-content: space-between;
	gap: 15px;
	margin-top: 35px;
}

#it-shindan-back,
#it-shindan-next,
#it-shindan-restart {
	padding: 13px 25px;
	border: none;
	border-radius: 10px;
	font-size: 16px;
	font-weight: bold;
	cursor: pointer;
}

#it-shindan-back,
#it-shindan-restart {
	background: #edf1f5;
	color: #344054;
}

#it-shindan-next {
	background: #1769e0;
	color: #fff;
}


/* 診断結果
---------------------------------------- */

.it-shindan-result-label {
	margin: 0;
	color: #1769e0;
	font-weight: bold;
}

#it-shindan-result > h2 {
	margin-top: 5px;
	font-size: 34px;
}

.it-shindan-total-score {
	margin: 25px 0;
	padding: 25px;
	text-align: center;
	background: #f4f8fd;
	border-radius: 15px;
}

#it-shindan-score {
	font-size: 52px;
	font-weight: bold;
	color: #1769e0;
}

.it-shindan-result-section {
	margin-top: 30px;
}

.it-shindan-result-section h3 {
	margin-bottom: 15px;
	font-size: 22px;
}


/* 相談エリア
---------------------------------------- */

.it-shindan-consultation {
	margin-top: 35px;
	padding: 30px;
	text-align: center;
	background: linear-gradient(
		135deg,
		#0d3b78,
		#1769e0
	);
	color: #fff;
	border-radius: 16px;
}

.it-shindan-consultation h3 {
	margin-top: 0;
	color: #fff;
	font-size: 25px;
}

.it-shindan-consultation-buttons {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 20px;
}

#it-shindan-mail-consultation,
#it-shindan-phone-consultation {
	padding: 14px 20px;
	border: none;
	border-radius: 10px;
	font-size: 15px;
	font-weight: bold;
	cursor: pointer;
}

#it-shindan-mail-consultation {
	background: #fff;
	color: #1769e0;
}

#it-shindan-phone-consultation {
	background: rgba(255,255,255,0.15);
	border: 1px solid rgba(255,255,255,0.5);
	color: #fff;
}

#it-shindan-restart {
	display: block;
	margin: 30px auto 0;
}

.it-shindan-note {
	margin-top: 30px;
	color: #777;
	font-size: 13px;
}


/* スマートフォン
---------------------------------------- */

@media screen and (max-width: 600px) {

	.it-shindan-hero {
		padding: 35px 20px;
	}

	.it-shindan-hero h2 {
		font-size: 28px;
	}

	.it-shindan-panel {
		padding: 25px 18px;
	}

	#it-shindan-question h3 {
		font-size: 21px;
	}

	.it-shindan-buttons {
		flex-direction: column-reverse;
	}

	#it-shindan-back,
	#it-shindan-next {
		width: 100%;
	}

	.it-shindan-consultation {
		padding: 25px 18px;
	}

	.it-shindan-consultation-buttons {
		flex-direction: column;
	}

	#it-shindan-mail-consultation,
	#it-shindan-phone-consultation {
		width: 100%;
	}
}

/* ========================================
   メール相談フォーム モーダル
======================================== */

.it-shindan-form-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 99999;
	padding: 30px 15px;
	background: rgba(0, 0, 0, 0.65);
	overflow-y: auto;
}

.it-shindan-form-modal.is-open {
	display: block;
}


/* フォーム本体 */

.it-shindan-form-modal .snow-monkey-form {
	position: relative;
	width: min(700px, 100%);
	margin: 0 auto;
	padding: 35px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}


/* 閉じるボタン */

.it-shindan-modal-close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 10;
	width: 42px;
	height: 42px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: #f1f3f5;
	color: #333;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}

.it-shindan-modal-close:hover {
	background: #e2e6ea;
}


/* スマートフォン */

@media screen and (max-width: 600px) {

	.it-shindan-form-modal {
		padding: 15px 10px;
	}

	.it-shindan-form-modal .snow-monkey-form {
		padding: 25px 18px;
	}

}

/* 診断結果の自動送信用データを非表示 */
.it-shindan-hidden-data {
	display: none !important;
}

/* ========================================
   電話相談モーダル
======================================== */

.it-shindan-phone-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(0, 0, 0, 0.6);
}

.it-shindan-phone-modal[hidden] {
	display: none !important;
}

.it-shindan-phone-modal-box {
	position: relative;
	width: min(480px, 100%);
	overflow: hidden;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.it-shindan-phone-modal-header {
	padding: 20px 24px;
	background: #12b886;
	color: #fff;
}

.it-shindan-phone-modal-header h3 {
	margin: 0 0 4px;
	color: #fff;
	font-size: 20px;
}

.it-shindan-phone-modal-header p {
	margin: 0;
	font-size: 14px;
}

.it-shindan-phone-modal-close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	width: 36px;
	height: 36px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: rgba(255,255,255,0.25);
	color: #fff;
	font-size: 26px;
	cursor: pointer;
}

.it-shindan-phone-modal-body {
	padding: 32px 24px 24px;
	text-align: center;
}

.it-shindan-phone-number {
	display: block;
	margin: 15px 0;
	color: #0ca678;
	font-size: 34px;
	font-weight: bold;
	text-decoration: none;
}

.it-shindan-phone-hours {
	color: #98a2b3;
}

.it-shindan-phone-bottom-close {
	width: 100%;
	margin-top: 20px;
	padding: 13px;
	border: 1px solid #777;
	background: #f5f5f5;
	font-weight: bold;
	cursor: pointer;
}

/* ========================================
   診断結果：カテゴリー別スコア
======================================== */

#it-shindan-category-result {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.it-shindan-category-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	padding: 18px 20px;
	background: #f7f9fc;
	border: 1px solid #e1e6ed;
	border-radius: 12px;
}

.it-shindan-category-item strong {
	font-size: 16px;
}

.it-shindan-category-item span {
	color: #1769e0;
	font-size: 17px;
	font-weight: bold;
	white-space: nowrap;
}


/* ========================================
   優先改善項目
======================================== */

#it-shindan-priority-result ol {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: priority;
}

#it-shindan-priority-result li {
	position: relative;
	margin-bottom: 10px;
	padding: 16px 18px 16px 55px;
	background: #fff7ed;
	border: 1px solid #fed7aa;
	border-radius: 12px;
	font-weight: bold;
	counter-increment: priority;
}

#it-shindan-priority-result li::before {
	content: counter(priority);
	position: absolute;
	top: 50%;
	left: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	transform: translateY(-50%);
	background: #f97316;
	border-radius: 50%;
	color: #fff;
	font-size: 14px;
	font-weight: bold;
}


/* スマートフォン */

@media screen and (max-width: 600px) {

	#it-shindan-category-result {
		grid-template-columns: 1fr;
	}

}

/* ========================================
   カテゴリー別スコア（バー表示版）
======================================== */

#it-shindan-category-result {
	display: grid;
	gap: 18px;
}

.it-shindan-category-item {
	padding: 0;
	background: transparent;
	border: none;
	border-radius: 0;
}

.it-shindan-category-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	margin-bottom: 8px;
}

.it-shindan-category-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 16px;
	font-weight: bold;
	color: #1f2937;
	line-height: 1.4;
}

.it-shindan-category-icon {
	font-size: 16px;
	line-height: 1;
}

.it-shindan-category-score {
	font-size: 16px;
	font-weight: bold;
	color: #4b5563;
	white-space: nowrap;
}

.it-shindan-category-bar {
	width: 100%;
	height: 9px;
	background: #e5e7eb;
	border-radius: 999px;
	overflow: hidden;
}

.it-shindan-category-bar-fill {
	height: 100%;
	border-radius: 999px;
}

/* 色分け */
.it-shindan-category-bar-fill.is-blue {
	background: #5b8def;
}

.it-shindan-category-bar-fill.is-orange {
	background: #f2b01e;
}

/* ========================================
   カテゴリー別スコア（添付デザイン風）
======================================== */

#it-shindan-category-result {
	display: grid;
	gap: 18px;
}

.it-shindan-category-item {
	padding: 0;
	background: transparent;
	border: none;
	border-radius: 0;
}

.it-shindan-category-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	margin-bottom: 8px;
}

.it-shindan-category-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 16px;
	font-weight: 700;
	color: #1f2937;
	line-height: 1.4;
}

.it-shindan-category-icon {
	font-size: 16px;
	line-height: 1;
}

.it-shindan-category-score {
	font-size: 16px;
	font-weight: 700;
	color: #475467;
	white-space: nowrap;
}

.it-shindan-category-bar {
	width: 100%;
	height: 8px;
	background: #e6ebf2;
	border-radius: 999px;
	overflow: hidden;
}

.it-shindan-category-bar-fill {
	height: 100%;
	border-radius: 999px;
	transition: width 0.3s ease;
}

/* 色判定 */
.it-shindan-category-bar-fill.is-green {
	background: #37c978;
}

.it-shindan-category-bar-fill.is-blue {
	background: #5b8def;
}

.it-shindan-category-bar-fill.is-yellow {
	background: #f2b01e;
}

.it-shindan-category-bar-fill.is-red {
	background: #e5485d;
}

/* ========================================
   カテゴリー別スコア 最終レイアウト調整
======================================== */

#it-shindan-category-result {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 18px !important;
}

.it-shindan-category-item {
	display: block !important;
	width: 100% !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
}

.it-shindan-category-head {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	width: 100% !important;
	margin-bottom: 7px !important;
}

.it-shindan-category-label {
	display: flex !important;
	align-items: center !important;
	gap: 7px !important;
}

.it-shindan-category-score {
	margin-left: auto !important;
}

.it-shindan-category-bar {
	display: block !important;
	width: 100% !important;
	height: 8px !important;
}

/* ========================================
   診断結果サマリー
======================================== */

.it-shindan-result-summary {
	text-align: center;
	padding: 10px 0 28px;
	border-bottom: 1px solid #e8edf3;
}

.it-shindan-result-summary .it-shindan-result-label {
	margin: 0 0 15px;
	color: #667085;
	font-size: 14px;
	font-weight: 700;
}

.it-shindan-rank-icon {
	margin-bottom: 12px;
	font-size: 48px;
	line-height: 1.2;
}

#it-shindan-rank-message {
	margin: 0 0 15px;
	color: #182230;
	font-size: 29px;
	font-weight: 800;
	line-height: 1.5;
}

.it-shindan-rank-badge {
	display: inline-block;
	padding: 7px 17px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 800;
}


/* Aランク */

.it-shindan-rank-badge.is-rank-a {
	background: #e8f8ef;
	color: #168653;
}


/* Bランク */

.it-shindan-rank-badge.is-rank-b {
	background: #eaf2ff;
	color: #1769e0;
}


/* Cランク */

.it-shindan-rank-badge.is-rank-c {
	background: #fff3cd;
	color: #9a6400;
}


/* Dランク */

.it-shindan-rank-badge.is-rank-d {
	background: #ffe9ec;
	color: #c62f48;
}


/* ========================================
   円形スコア
======================================== */

.it-shindan-score-area {
	display: flex;
	justify-content: center;
	padding: 34px 0;
}

.it-shindan-score-circle {
	--score-color: #f59e0b;

	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 132px;
	height: 132px;
	border-radius: 50%;

	background:
		conic-gradient(
			var(--score-color) var(--score-percent),
			#e8edf3 0
		);
}

.it-shindan-score-circle::before {
	content: "";
	position: absolute;
	width: 108px;
	height: 108px;
	background: #fff;
	border-radius: 50%;
}

.it-shindan-score-inner {
	position: relative;
	z-index: 1;
	text-align: center;
	line-height: 1.1;
}

#it-shindan-score {
	display: block;
	color: #182230;
	font-size: 38px;
	font-weight: 800;
}

.it-shindan-score-inner small {
	display: block;
	margin-top: 4px;
	color: #98a2b3;
	font-size: 13px;
	font-weight: 700;
}


/* Aランク：緑 */

.it-shindan-score-circle.is-rank-a {
	--score-color: #35c97a;
}


/* Bランク：青 */

.it-shindan-score-circle.is-rank-b {
	--score-color: #5b8def;
}


/* Cランク：オレンジ */

.it-shindan-score-circle.is-rank-c {
	--score-color: #f59e0b;
}


/* Dランク：赤 */

.it-shindan-score-circle.is-rank-d {
	--score-color: #e5485d;
}


/* ========================================
   スマートフォン
======================================== */

@media screen and (max-width: 600px) {

	#it-shindan-rank-message {
		font-size: 23px;
	}

	.it-shindan-rank-icon {
		font-size: 42px;
	}

	.it-shindan-score-circle {
		width: 120px;
		height: 120px;
	}

	.it-shindan-score-circle::before {
		width: 98px;
		height: 98px;
	}

	#it-shindan-score {
		font-size: 34px;
	}

}

/* ========================================
   優先改善項目なし
======================================== */

.it-shindan-no-priority {
	padding: 25px 20px;
	text-align: center;
	background: #eefaf4;
	border: 1px solid #bce8d0;
	border-radius: 12px;
}

.it-shindan-no-priority > span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	margin: 0 auto 12px;
	background: #35c97a;
	border-radius: 50%;
	color: #fff;
	font-size: 24px;
	font-weight: bold;
}

.it-shindan-no-priority strong {
	display: block;
	color: #176c48;
	font-size: 17px;
}

.it-shindan-no-priority p {
	margin: 7px 0 0;
	color: #667085;
	font-size: 14px;
}

/* ========================================
   次へボタン 未回答時
======================================== */

#it-shindan-next:disabled {
	background: #d8dee8 !important;
	color: #98a2b3 !important;
	cursor: not-allowed !important;
	opacity: 1 !important;
	box-shadow: none !important;
}

#it-shindan-next:not(:disabled) {
	cursor: pointer;
}


/* ========================================
   改善優先度とアドバイス 最終デザイン
======================================== */

#it-shindan-priority-result {
	display: grid !important;
	gap: 16px !important;
}


/* カード */

.it-shindan-advice-item {
	display: grid !important;
	grid-template-columns: 44px minmax(0, 1fr) !important;
	gap: 16px !important;
	padding: 20px !important;
	border-radius: 14px !important;
}


/* 要注意・要改善 */

.it-shindan-advice-item.is-improvement {
	background: #fffaf3 !important;
	border: 1px solid #f5c978 !important;
	border-left: 4px solid #f59e0b !important;
}


/* 良好 */

.it-shindan-advice-item.is-good {
	background: #f3fbf7 !important;
	border: 1px solid #b9e7ce !important;
	border-left: 4px solid #35c97a !important;
}


/* 左側の番号・チェック */

.it-shindan-advice-marker {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 38px !important;
	height: 38px !important;
	margin: 0 !important;
	border-radius: 50% !important;
	font-size: 16px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
}


/* 優先順位 */

.it-shindan-advice-item.is-improvement
.it-shindan-advice-marker {
	background: #f59e0b !important;
	color: #fff !important;
}


/* 良好チェック */

.it-shindan-advice-item.is-good
.it-shindan-advice-marker {
	background: #35c97a !important;
	color: #fff !important;
	font-size: 21px !important;
}


/* 内容 */

.it-shindan-advice-content {
	min-width: 0 !important;
}


/* カテゴリーと点数 */

.it-shindan-advice-head {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 15px !important;
	margin: 0 0 9px !important;
}

.it-shindan-advice-category {
	display: flex !important;
	align-items: center !important;
	gap: 7px !important;
	color: #182230 !important;
}

.it-shindan-advice-category strong {
	font-size: 17px !important;
	font-weight: 700 !important;
}

.it-shindan-advice-score {
	color: #667085 !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	white-space: nowrap !important;
}


/* 判定ラベル */

.it-shindan-advice-level {
	display: inline-block !important;
	margin: 0 0 8px !important;
	padding: 3px 10px !important;
	border-radius: 999px !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
}


/* 要注意 */

.it-shindan-advice-level.is-danger {
	background: #ffe8ec !important;
	color: #c62f48 !important;
}


/* 要改善 */

.it-shindan-advice-level.is-improve {
	background: #fff0d5 !important;
	color: #a75b00 !important;
}


/* 良好 */

.it-shindan-advice-level.is-good {
	background: #dff6e9 !important;
	color: #168653 !important;
}


/* アドバイスタイトル */

.it-shindan-advice-content h4 {
	margin: 0 0 6px !important;
	color: #182230 !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	line-height: 1.5 !important;
}


/* 説明 */

.it-shindan-advice-content p {
	margin: 0 !important;
	color: #596579 !important;
	font-size: 14px !important;
	line-height: 1.75 !important;
}


/* ========================================
   スマートフォン
======================================== */

@media screen and (max-width: 600px) {

	.it-shindan-advice-item {
		grid-template-columns: 36px minmax(0, 1fr) !important;
		gap: 11px !important;
		padding: 16px 14px !important;
	}

	.it-shindan-advice-marker {
		width: 34px !important;
		height: 34px !important;
	}

	.it-shindan-advice-head {
		align-items: flex-start !important;
		flex-direction: column !important;
		gap: 3px !important;
	}

	.it-shindan-advice-category strong {
		font-size: 16px !important;
	}

	.it-shindan-advice-score {
		font-size: 13px !important;
	}

	.it-shindan-advice-content h4 {
		font-size: 16px !important;
	}

}

/* ========================================
   IT診断 メール相談フォーム
======================================== */

.it-shindan-form-modal .snow-monkey-form {
	width: min(680px, 100%) !important;
	padding: 38px 40px 40px !important;
	background: #fff !important;
	border-radius: 18px !important;
}


/* ========================================
   フォーム全体
======================================== */

.it-shindan-form-modal .smf-form {
	margin: 0 !important;
}


/* テーブル型レイアウトを解除 */

.it-shindan-form-modal table,
.it-shindan-form-modal tbody,
.it-shindan-form-modal tr,
.it-shindan-form-modal th,
.it-shindan-form-modal td {
	display: block !important;
	width: 100% !important;
}


/* テーブル線を消す */

.it-shindan-form-modal table,
.it-shindan-form-modal tr,
.it-shindan-form-modal th,
.it-shindan-form-modal td {
	border: none !important;
}


/* 1項目 */

.it-shindan-form-modal tr,
.it-shindan-form-modal .smf-item {
	margin: 0 0 22px !important;
	padding: 0 !important;
	background: transparent !important;
}


/* ========================================
   ラベル
======================================== */

.it-shindan-form-modal th,
.it-shindan-form-modal .smf-item__col--label {
	margin: 0 0 8px !important;
	padding: 0 !important;
	background: transparent !important;
	color: #182230 !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	text-align: left !important;
}


/* 入力エリア */

.it-shindan-form-modal td,
.it-shindan-form-modal .smf-item__col--controls {
	padding: 0 !important;
	background: transparent !important;
}


/* ========================================
   必須表示
======================================== */

.it-shindan-form-modal .smf-item__required,
.it-shindan-form-modal .smf-item__label__required {
	display: inline-block !important;
	margin-left: 6px !important;
	padding: 2px 7px !important;
	background: #ffe8ec !important;
	border-radius: 999px !important;
	color: #d92d48 !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	line-height: 1.5 !important;
}


/* デフォルトの※ */

.it-shindan-form-modal abbr {
	color: #e5485d !important;
	text-decoration: none !important;
}


/* ========================================
   入力欄
======================================== */

.it-shindan-form-modal input[type="text"],
.it-shindan-form-modal input[type="email"],
.it-shindan-form-modal input[type="tel"],
.it-shindan-form-modal input[type="number"],
.it-shindan-form-modal textarea,
.it-shindan-form-modal select {
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: none !important;
	min-height: 52px !important;
	margin: 0 !important;
	padding: 13px 15px !important;
	background: #fff !important;
	border: 1px solid #d5dde8 !important;
	border-radius: 10px !important;
	color: #182230 !important;
	font-size: 16px !important;
	line-height: 1.5 !important;
	box-shadow: none !important;
	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease !important;
}


/* テキストエリア */

.it-shindan-form-modal textarea {
	min-height: 130px !important;
	resize: vertical !important;
}


/* フォーカス */

.it-shindan-form-modal input:focus,
.it-shindan-form-modal textarea:focus,
.it-shindan-form-modal select:focus {
	outline: none !important;
	border-color: #1769e0 !important;
	box-shadow:
		0 0 0 3px rgba(23, 105, 224, 0.12) !important;
}


/* ========================================
   エラー表示
======================================== */

.it-shindan-form-modal .smf-error-messages {
	margin-top: 7px !important;
	color: #d92d48 !important;
	font-size: 13px !important;
	font-weight: 600 !important;
}


/* ========================================
   確認・送信ボタン
======================================== */

.it-shindan-form-modal .smf-action {
	margin-top: 30px !important;
	text-align: center !important;
}


.it-shindan-form-modal .smf-button-control__control,
.it-shindan-form-modal button[type="submit"],
.it-shindan-form-modal input[type="submit"] {
	min-width: 220px !important;
	padding: 15px 28px !important;
	background: #1769e0 !important;
	border: none !important;
	border-radius: 10px !important;
	color: #fff !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	cursor: pointer !important;
	box-shadow:
		0 7px 18px rgba(23, 105, 224, 0.2) !important;
	transition:
		transform 0.2s ease,
		background 0.2s ease !important;
}


.it-shindan-form-modal .smf-button-control__control:hover,
.it-shindan-form-modal button[type="submit"]:hover,
.it-shindan-form-modal input[type="submit"]:hover {
	background: #0d5ac7 !important;
	transform: translateY(-1px) !important;
}


/* ========================================
   戻るボタン
======================================== */

.it-shindan-form-modal .smf-button-control__control[data-action="back"] {
	background: #edf1f5 !important;
	color: #344054 !important;
	box-shadow: none !important;
}


/* ========================================
   確認画面
======================================== */

.it-shindan-form-modal .smf-form--confirm input,
.it-shindan-form-modal .smf-form--confirm textarea {
	background: #f7f9fc !important;
}


/* ========================================
   スマートフォン
======================================== */

@media screen and (max-width: 600px) {

	.it-shindan-form-modal .snow-monkey-form {
		padding: 30px 20px 25px !important;
		border-radius: 14px !important;
	}


	.it-shindan-form-modal tr,
	.it-shindan-form-modal .smf-item {
		margin-bottom: 20px !important;
	}


	.it-shindan-form-modal input[type="text"],
	.it-shindan-form-modal input[type="email"],
	.it-shindan-form-modal input[type="tel"],
	.it-shindan-form-modal input[type="number"],
	.it-shindan-form-modal textarea,
	.it-shindan-form-modal select {
		min-height: 50px !important;
		font-size: 16px !important;
	}


	.it-shindan-form-modal .smf-button-control__control,
	.it-shindan-form-modal button[type="submit"],
	.it-shindan-form-modal input[type="submit"] {
		width: 100% !important;
		min-width: 0 !important;
	}

}

/* ========================================
   Snow Monkey Forms 横並びを完全解除
======================================== */

.it-shindan-form-modal .smf-item {
	display: block !important;
	width: 100% !important;
	margin: 0 0 24px !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
}


/* ラベル側 */

.it-shindan-form-modal .smf-item__col--label {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	flex: none !important;
	margin: 0 0 8px !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
}


/* 入力欄側 */

.it-shindan-form-modal .smf-item__col--controls {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	flex: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
}


/* ラベル */

.it-shindan-form-modal .smf-item__label {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	color: #182230 !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.5 !important;
}


/* 入力コントロール全体 */

.it-shindan-form-modal .smf-text-control,
.it-shindan-form-modal .smf-email-control,
.it-shindan-form-modal .smf-tel-control,
.it-shindan-form-modal .smf-textarea-control {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
}


/* 入力欄 */

.it-shindan-form-modal .smf-text-control__control,
.it-shindan-form-modal .smf-email-control__control,
.it-shindan-form-modal .smf-tel-control__control,
.it-shindan-form-modal .smf-textarea-control__control {
	box-sizing: border-box !important;
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	min-height: 52px !important;
	margin: 0 !important;
	padding: 13px 15px !important;
	background: #fff !important;
	border: 1px solid #d5dde8 !important;
	border-radius: 10px !important;
	color: #182230 !important;
	font-size: 16px !important;
	box-shadow: none !important;
}


/* フォーカス */

.it-shindan-form-modal .smf-text-control__control:focus,
.it-shindan-form-modal .smf-email-control__control:focus,
.it-shindan-form-modal .smf-tel-control__control:focus,
.it-shindan-form-modal .smf-textarea-control__control:focus {
	outline: none !important;
	border-color: #1769e0 !important;
	box-shadow: 0 0 0 3px rgba(23, 105, 224, 0.12) !important;
}


/* 確認ボタン */

.it-shindan-form-modal .smf-action {
	display: flex !important;
	justify-content: center !important;
	margin-top: 30px !important;
}


/* スマホ */

@media screen and (max-width: 600px) {

	.it-shindan-form-modal .smf-item {
		margin-bottom: 20px !important;
	}

}

/* ========================================
   診断データ用フォーム項目を非表示
======================================== */

.it-shindan-form-modal .it-shindan-hidden-data {
	display: none !important;
}