@charset "UTF-8";

/* --- Base Styles --- */
html {
	margin: 0;
	padding: 0;
	background-color: #f8fafc;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	font-family:
		'Noto Sans JP', 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Meiryo',
		sans-serif;
	letter-spacing: 0.04em;
	line-height: 1.8;
	color: #333;
	font-size: 16px;
	background-color: #ffffff;
	max-width: 840px;
	margin: 0 auto;
	box-shadow: 0 0 40px rgba(0, 0, 0, 0.05);
	min-height: 100vh;
	-webkit-tap-highlight-color: transparent;
}

.container {
	padding: 40px 30px;
	width: 100% !important;
}

/* --- Header --- */
header h1 {
	margin-top: 0;
	margin-bottom: 40px !important;
}

header img {
	margin: 0 auto;
	transition: opacity 0.3s ease;
	max-width: 100%;
	height: auto;
	display: block;
}

header img:hover {
	opacity: 0.8;
}

/* --- Main Content --- */
.toplead {
	font-size: 1.2em;
	font-weight: 700;
	line-height: 1.65;
	color: #003d81;
	margin: 40px 0;
	padding: 26px 24px;
	border: 2px solid #003d81;
	outline: 1px solid #b0c8e8;
	outline-offset: -6px;
	text-align: center;
	background-color: #ffffff;
	text-shadow: none;
	overflow-wrap: break-word;
	word-break: break-word;
}

.toplead span {
	font-size: 0.85em;
	display: block;
	margin-bottom: 5px;
	font-weight: 400;
	color: #555;
}

p.lead {
	font-size: 1.05em;
	margin-bottom: 25px;
	color: #444;
	text-align: center;
	overflow-wrap: break-word;
	word-break: break-word;
}

/* 強調箇所の色の調整 */
p.lead span[style*='color: #0000ff'] {
	color: #0056b3 !important;
	font-weight: bold;
}

p.lead span[style*='color: #ff0000'] {
	color: #d93025 !important;
	font-weight: bold;
	background: linear-gradient(transparent 80%, #ffdad6 80%);
}

/* --- Alert Box --- */
.alert-info {
	background-color: #ffffff;
	border: 2px solid #003d81;
	outline: 1px solid #b0c8e8;
	outline-offset: -6px;
	border-radius: 0;
	padding: 20px 24px;
	margin-bottom: 30px;
	color: #333;
}

.alert-info p {
	margin-bottom: 8px;
	font-size: 0.95em;
	line-height: 1.75;
}

.marker {
	background: linear-gradient(transparent 70%, yellow 70%);
	font-weight: bold;
}
.comment-description {
	list-style: none;
	font-size: 0.9em;
}

.alert-info p:last-child {
	margin-bottom: 0;
}

.alert-info strong {
	color: #003d81;
}

/* 必須マーク */
.required-input-sign-color {
	color: #d93025;
	font-weight: bold;
	margin-left: 2px;
}

/* --- Form --- */
.form-group {
	margin-bottom: 22px;
}

.form-group label {
	font-weight: bold;
	font-size: 0.95em;
	color: #333;
	margin-bottom: 6px;
	display: block;
}

.form-control {
	border: 1px solid #ccc;
	border-radius: 6px;
	padding: 10px 14px;
	font-size: 1em;
	color: #333;
	width: 100%;
	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease;
	-webkit-appearance: none;
	appearance: none;
}

.form-control:focus {
	border-color: #003d81;
	box-shadow: 0 0 0 3px rgba(0, 61, 129, 0.1);
	outline: none;
}

textarea.form-control {
	resize: vertical;
	min-height: 120px;
}

input[type='file'].form-control {
	padding: 8px 12px;
	cursor: pointer;
}

/* --- Button Customization --- */
.btn-primary {
	background-color: #003d81;
	border: none;
	padding: 18px 40px;
	font-weight: bold;
	font-size: 1.2em;
	border-radius: 50px;
	transition: all 0.3s ease;
	box-shadow: 0 4px 15px rgba(0, 61, 129, 0.2);
	margin-top: 20px;
	white-space: nowrap;
}

.btn-primary:hover,
.btn-primary:focus {
	background-color: #002a5a !important;
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(0, 61, 129, 0.3);
}

/* --- Footer --- */
hr {
	margin: 50px 0 30px;
	border-top: 1px solid #eee;
}

.rsk-banner {
	text-align: center;
}

.rsk-banner a {
	color: #003d81;
	text-decoration: none;
	font-weight: bold;
	padding: 5px 15px;
	border: 1px solid #003d81;
	border-radius: 4px;
	transition: background 0.2s;
}

.rsk-banner a:hover {
	background-color: #f0f7ff;
}

.copyright {
	margin-top: 30px;
	font-size: 0.8em;
	color: #888;
	text-align: center;
}

/* ============================================
   Responsive — 768px Breakpoint
   ============================================ */
@media (max-width: 768px) {
	/* --- Base --- */
	body {
		box-shadow: none;
		font-size: 15px;
	}

	.container {
		padding: 24px 16px 36px !important;
	}

	/* --- Header --- */
	header h1 {
		margin-bottom: 28px !important;
	}

	header img {
		max-height: 100px;
		width: auto;
	}

	/* --- Toplead --- */
	.toplead {
		font-size: 1.05em;
		line-height: 1.65;
		padding: 20px 14px;
		margin: 28px 0;
		outline-offset: -5px;
	}

	.toplead span {
		font-size: 0.88em;
	}

	/* --- Lead --- */
	p.lead {
		font-size: 0.97em;
		text-align: left;
		margin-bottom: 20px;
		line-height: 1.85;
	}

	/* --- Button --- */
	.text-center {
		padding: 0 4px;
	}

	.btn-primary {
		display: block;
		width: 100%;
		padding: 16px 20px !important;
		font-size: 1.05em;
		border-radius: 50px;
		white-space: normal;
		word-break: break-word;
		margin-top: 12px;
	}

	.btn-primary:hover {
		transform: none;
	}

	/* --- Alert --- */
	.alert-info {
		padding: 16px;
		margin-bottom: 24px;
		outline-offset: -5px;
	}

	.alert-info p {
		font-size: 0.9em;
	}

	/* --- Form --- */
	.form-control {
		font-size: 16px; /* iOS自動ズーム防止（16px未満だとズームされる） */
		padding: 12px 14px;
	}

	.form-group {
		margin-bottom: 18px;
	}

	/* --- HR --- */
	hr {
		margin: 36px 0 24px;
	}

	/* --- Footer --- */
	.rsk-banner {
		text-align: center;
	}

	.rsk-banner a {
		display: inline-block;
		padding: 8px 20px;
		font-size: 0.9em;
	}

	.copyright {
		margin-top: 20px;
		font-size: 0.75em;
		text-align: center;
		line-height: 1.7;
	}
}
