.ke-report-success,
.ke-report-warning,
.ke-report-limited,
.ke-report-error {

	max-width: 700px;
	margin: 30px auto;
	padding: 30px;

	background: #f7fff6;

	border: 2px solid #8bc34a;
	border-radius: 12px;

	text-align: center;

	box-shadow: 0 4px 12px rgba(0,0,0,.08);

}

.ke-report-success h3 {

	margin-top: 0;

	font-size: 28px;

	color: #2e7d32;

}

.ke-report-success p {

	font-size: 18px;

	line-height: 2;

	margin: 18px 0;

}

.ke-report-warning {

	background: #fff8e5;

	border-color: #f0c36d;

}

.ke-report-warning h3 {

	color: #9a6700;

}

.ke-report-error {

	background: #fdeaea;

	border-color: #e26d6d;

}

.ke-report-error h3 {

	color: #b42318;

}

.ke-report-limited {

	background: #fffdf4;

	border-color: #fbc02d;

}

.ke-report-limited strong {

	color: #c17900;

}

.ke-report-form {

	max-width: 900px;

	margin: auto;

}

/* 必須・任意ラベル */

.ke-required {

	display: inline-block;

	margin-left: 8px;

	padding: 2px 8px;

	background: #d32f2f;

	color: #fff;

	font-size: 12px;

	font-weight: 700;

	border-radius: 999px;

	vertical-align: middle;

}

.ke-optional {

	display: inline-block;

	margin-left: 8px;

	padding: 2px 8px;

	background: #9e9e9e;

	color: #fff;

	font-size: 12px;

	font-weight: 700;

	border-radius: 999px;

	vertical-align: middle;

}

/* ボタンデザイン */

.ke-get-location,
button[name="ke_front_report_submit"] {

	display: block;

	width: 100%;

	max-width: 420px;

	margin: 15px auto;

	padding: 16px 24px;

	font-size: 18px;

	font-weight: 700;

	border: none;

	border-radius: 10px;

	cursor: pointer;

	transition: .2s;

}

/* 現在地取得 */

.ke-get-location {

	background: #1976d2;

	color: #fff;

}

.ke-get-location:hover {

	background: #1565c0;

}

/* 報告する */

button[name="ke_front_report_submit"] {

	background: #2e7d32;

	color: #fff;

}

button[name="ke_front_report_submit"]:hover {

	background: #1b5e20;

}

button[name="ke_front_report_submit"]:disabled {

	background: #9e9e9e;

	cursor: not-allowed;

}

/* 報告フォームの主要ボタン */

.ke-get-location,
button[name="ke_front_report_submit"] {

	display: block;
	width: 100%;
	max-width: 420px;

	margin: 15px auto;
	padding: 16px 24px;

	font-size: 18px;
	font-weight: 700;

	border: none;
	border-radius: 10px;

	cursor: pointer;
	transition:
		background-color 0.2s,
		transform 0.2s,
		opacity 0.2s;
}

/* 現在地取得ボタン */

.ke-get-location {

	background: #1976d2;
	color: #fff;
}

.ke-get-location:hover {

	background: #1565c0;
	transform: translateY(-1px);
}

/* 報告ボタン */

button[name="ke_front_report_submit"] {

	background: #2e7d32;
	color: #fff;
}

button[name="ke_front_report_submit"]:hover {

	background: #1b5e20;
	transform: translateY(-1px);
}

/* 送信中 */

button[name="ke_front_report_submit"]:disabled {

	background: #9e9e9e;
	color: #fff;

	cursor: not-allowed;
	transform: none;
	opacity: 0.8;
}

/* Report Header */

.ke-report-header{

	text-align:center;

	margin-bottom:35px;

}

.ke-report-logo{

	max-width:520px;

	width:100%;

	height:auto;

	margin-bottom:15px;

}

.ke-report-header h2{

	margin-bottom:10px;

}

.ke-report-subtitle{

	font-size:18px;

	color:#666;

	margin:0;

}

/* 現在地取得完了ダイアログ */

.ke-location-dialog[hidden] {

	display: none;
}

.ke-location-dialog {

	position: fixed;
	inset: 0;
	z-index: 99999;

	display: flex;
	align-items: center;
	justify-content: center;

	padding: 20px;
}

.ke-location-dialog__overlay {

	position: absolute;
	inset: 0;

	background: rgba(0, 0, 0, 0.58);
}

.ke-location-dialog__panel {

	position: relative;
	z-index: 1;

	width: 100%;
	max-width: 430px;

	padding: 28px 24px;

	background: #fff;
	border-radius: 18px;

	text-align: center;

	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
}

.ke-location-dialog__logo {

	display: block;

	width: 100%;
	max-width: 260px;
	height: auto;

	margin: 0 auto 16px;
}

.ke-location-dialog__panel h3 {

	margin: 0 0 14px;

	font-size: 26px;
	line-height: 1.4;

	color: #1f5f3f;
}

.ke-location-dialog__panel p {

	margin: 0 0 22px;

	font-size: 17px;
	line-height: 1.8;

	color: #444;
}

.ke-location-dialog__close {

	display: block;

	width: 100%;
	max-width: 220px;

	margin: 0 auto;
	padding: 14px 24px;

	background: #2e7d32;
	color: #fff;

	border: none;
	border-radius: 10px;

	font-size: 18px;
	font-weight: 700;

	cursor: pointer;
}

.ke-location-dialog__close:hover {

	background: #1b5e20;
}

.ke-location-dialog__close:focus-visible {

	outline: 3px solid rgba(46, 125, 50, 0.35);
	outline-offset: 3px;
}

@media (max-width: 480px) {

	.ke-location-dialog {

		padding: 16px;
	}

	.ke-location-dialog__panel {

		padding: 24px 18px;
		border-radius: 16px;
	}

	.ke-location-dialog__logo {

		max-width: 220px;
	}

	.ke-location-dialog__panel h3 {

		font-size: 24px;
	}

	.ke-location-dialog__panel p {

		font-size: 16px;
	}
}