.story-intro {
	text-align: center; margin-bottom: 70px;
}
.story-heading {
	font-size: 24px; font-weight: bold; color: #CC0000; margin-bottom: 20px;
}
.story-text {
	font-size: 16px; color: #555; max-width: 800px; margin: 0 auto; text-align: center; text-justify: inter-ideograph;
}

.dept-card {
	background: #fff;
	border: 1px solid #eee;
	border-top: 4px solid #F57C00;
	border-radius: 6px;
	box-shadow: 0 4px 10px rgba(0,0,0,0.03);
	margin-bottom: 50px;
	overflow: hidden;
}

.dept-header {
	background: #FFF8E1; padding: 15px 20px;
	display: flex; align-items: center; border-bottom: 1px solid #fae8c8;
}
.dept-name {
	color: #E65100; font-size: 16px; font-weight: bold; letter-spacing: 0.05em;
}
.dept-name::before {
	content: "■"; margin-right: 8px; font-size: 12px; color: #F57C00;
}

.dept-body { padding: 30px; }

.dept-img-area {
	background: #f9f9f9;
	border-radius: 4px; height: 100%; min-height: 200px;
	display: flex; align-items: center; justify-content: center;
	flex-direction: column; color: #aaa; font-weight: bold;
	text-align: center; border: 1px solid #eee;
}

.concept-title {
	color: #333; font-size: 20px; font-weight: bold;
	margin-bottom: 15px; border-bottom: 2px solid #F57C00; display: block; padding-bottom: 5px;
}
.concept-desc { font-size: 15px; margin-bottom: 25px; color: #555; text-align: justify; }

.point-list { list-style: none; padding: 0; margin: 0; }
.point-list li {
	margin-bottom: 10px; font-size: 15px; color: #333;
	position: relative; padding-left: 24px;
}
.point-list li::before {
	content: "\2714\FE0E";; position: absolute; left: 0; top: 0; color: #F57C00; font-weight: bold;
}
.bold-list li { font-weight: bold; }

.ticket-list li {
	margin-bottom: 15px; border-bottom: 1px dashed #ddd; padding-bottom: 10px;
	font-weight: normal;
}
.ticket-list li:last-child { border: none; }

.ticket-h {
	color: #333;
	display: block; margin-bottom: 3px; font-weight: bold; font-size: 15px;
}

.related-link-area {
	background: #f9f9f9; padding: 50px 0; text-align: center; border-top: 1px solid #eee; margin-top: 20px;
}
.related-btn {
	display: inline-block; background: #fff; border: 1px solid #ccc; color: #333;
	padding: 15px 40px; border-radius: 50px; font-weight: bold; transition: 0.3s;
	box-shadow: 0 3px 5px rgba(0,0,0,0.05);
}
.related-btn:hover {
	background: #333; color: #fff; border-color: #333; text-decoration: none;
}

.ransomware-wrapper {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 6px;
	padding: 40px 30px;
	box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.ransomware-title {
	color: #CC0000;
	font-size: 22px;
	font-weight: bold;
	margin-bottom: 15px;
}

.ransomware-intro {
	font-size: 15px;
	color: #555;
	text-align: center;
	margin: 0 auto;
	max-width: 100%;
}

/* 3つのカラムカード */
.ransomware-card {
	background: #fdfdfd;
	border: 1px solid #eaeaea;
	border-top: 4px solid #F57C00;
	border-radius: 4px;
	padding: 20px;
	height: 100%;
}

.ransomware-card i {
	color: #F57C00;
}

.ransomware-card h4 {
	font-size: 15px;
	font-weight: bold;
	color: #333;
	text-align: center;
	margin-bottom: 10px;
}

.ransomware-card .sub-copy {
	font-size: 13px;
	font-weight: bold;
	color: #F57C00;
	text-align: center;
	margin-bottom: 15px;
	border-bottom: 1px dashed #ccc;
	padding-bottom: 10px;
	line-height: 1.4;
}

.ransomware-card .desc-text {
	font-size: 13px;
	color: #555;
	margin: 0;
	line-height: 1.6;
	text-align: justify;
}

.pc-only-br {
	display: inline !important;
}

.sp-only-br {
	display: none !important;
}

.pl-custom {
	padding-left: 15px !important;
}

.pr-custom {
	padding-right: 15px !important;
}

.cert-wrapper {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 8px;
	padding: 40px;
	box-shadow: 0 4px 15px rgba(0,0,0,0.02);
}

.security-card {
	background: #fff;
	border: 1px solid #eee;
	border-left: 5px solid #F57C00;
	padding: 20px;
	height: 100%;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.security-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 5px 15px rgba(0,0,0,0.08);
}

.security-card .card-head {
	display: flex;
	align-items: center;
	margin-bottom: 12px;
}

.security-card .card-head img {
	width: 40px;
	height: 40px;
	margin-right: 15px;
	object-fit: contain;
}

.security-card h4 {
	font-size: 16px;
	font-weight: bold;
	color: #E65100;
	margin: 0;
}

.security-card p {
	font-size: 14px;
	color: #555;
	margin: 0;
	line-height: 1.6;
}

.modern-sub-heading {
	font-size: 20px;
	font-weight: bold;
	color: #333;
	position: relative;
	padding-bottom: 10px;
}



@media screen and (max-width: 767px) {
	.underlayer .bread_area {
		margin-bottom: 20px;
	}

	.story-intro {
		margin-top: 20px !important;
		margin-bottom: 40px !important;
	}

	.story-heading span {
		display: inline !important;
	}

	.story-heading {
		font-size: 17px !important;
		line-height: 1.5 !important;
		text-align: center !important;
		word-break: keep-all !important;
		overflow-wrap: break-word !important;
	}

	.story-text {
		font-size: 14px !important;
		line-height: 1.8 !important;
		text-align: left !important;
		margin-top: 15px !important;
	}

	.related-link-area p {
		font-size: 14px !important;
		padding: 0 10px;
	}

	.related-btn {
		width: 90%;
		padding: 12px 20px !important;
		font-size: 15px !important;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		white-space: nowrap;
	}

	.related-btn i {
		font-size: 14px !important;
		margin-left: 8px !important;
	}

	.dept-body {
		padding: 20px 10px !important;
	}

	.dept-img-area {
		min-height: 150px !important;
		margin-bottom: 15px;
	}

	.point-list li {
		font-size: 14px !important;
		padding-left: 20px !important;
	}

	.concept-title {
		font-size: 17px !important;
		line-height: 1.4 !important;
		margin-bottom: 10px !important;
		display: block !important;
	}

	.concept-desc {
		font-size: 13px !important;
		margin-bottom: 20px !important;
	}

	.bold-list {
		margin-top: 10px !important;
	}

	.bold-list li {
		font-size: 14px !important;
		line-height: 1.6 !important;
		margin-bottom: 12px !important;
		padding-left: 25px !important;
		font-weight: bold !important;
		word-break: break-all !important;
	}

	.bold-list li::before {
		top: 2px !important;
	}

	.ticket-list li {
		margin-bottom: 12px !important;
		padding-bottom: 8px !important;
		padding-left: 20px !important;
	}

	.ticket-h {
		font-size: 14px !important;
		color: #E65100 !important;
		margin-bottom: 2px !important;
	}

	.ticket-d {
		font-size: 13px !important;
		color: #666 !important;
		display: block !important;
	}

	.ransomware-wrapper {
		padding: 30px 15px !important;
	}

	.ransomware-title {
		font-size: 17px !important;
	}

	.ransomware-intro {
		font-size: 14px !important;
		text-align: justify;
		text-justify: inter-ideograph;
	}

	.ransomware-card {
		padding: 15px !important;
	}

	.pc-only-br {
		display: none !important;
	}

	.sp-only-br {
		display: inline !important;
	}

	.pl-custom {
		padding-left: 5px !important;
	}

	.pr-custom {
		padding-right: 5px !important;
	}

	.cert-wrapper {
		padding: 30px 15px;
	}

	.security-card {
		padding: 15px;
	}

	.security-card h4 {
		font-size: 15px;
	}

	.modern-sub-heading {
		font-size: 18px;
	}

}