/* service stylesheet */
#page-service {
	padding-bottom: 0;
}

/* ---------- hero ---------- */
.service_hero {
	position: relative;
	height: 320px;
	overflow: hidden;
	background: #F4F4F4;
}
.service_hero::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 75%;
	height: 100%;
	background: linear-gradient(135deg, #5B93D1 0%, #1D76C4 100%);
	clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%);
}
.service_hero .container {
	position: relative;
	height: 100%;
	display: flex;
	align-items: center;
	z-index: 1;
}
.service_hero h1 {
	background: #fff;
	display: inline-block;
	padding: 0.6em 1.2em;
	font-size: 28px;
	font-weight: bold;
	margin: 0;
}

/* ---------- intro / lead ---------- */
.service_intro {
	padding: 60px 0 0;
}
.service_intro .container {
	text-align: center;
}
.service_intro_ttl {
	display: inline-block;
	background: #fff;
	color: #1D76C4;
	font-size: 24px;
	font-weight: bold;
	border: solid 1px #EFEFEF;
	padding: 0.5em 1.5em;
	margin-bottom: 0;
	position: relative;
	z-index: 1;
}
.service_intro_box {
	background: #F7FAFD;
	border-radius: 12px;
	max-width: 900px;
	margin: -1.5em auto 0;
	padding: 3em 2em 2em;
}
.service_intro_box p {
	line-height: 1.75;
	margin-bottom: 0;
}

/* ---------- section common ---------- */
.service_section {
	padding: 60px 0;
}
.service_section.is-gray {
	background: #F8F8F8;
}
.service_section h2 {
	text-align: center;
	font-size: 28px;
	font-weight: bold;
	line-height: 1.5;
	margin-bottom: 2rem;
}
.service_section h2 span {
	color: #1D76C4;
}
.service_section p {
	line-height: 1.75;
	margin-bottom: 0;
}
.service_flex {
	display: flex;
	align-items: center;
	gap: 70px;
}
.service_flex.is-reverse {
	flex-direction: row-reverse;
}
.service_flex .img,
.service_flex .text {
	width: 50%;
}
.service_flex .img img {
	border: solid 8px #EFEFEF;
	width: 100%;
}

/* ---------- approach ---------- */
.service_approach {
	padding: 60px 0;
	background: #F8F8F8;
}
.service_approach h2 {
	text-align: center;
	font-size: 28px;
	font-weight: bold;
	line-height: 1.5;
	margin-bottom: 1.5rem;
}
.service_approach h2 span {
	color: #1D76C4;
}
.service_approach_lead {
	text-align: center;
	line-height: 1.75;
	max-width: 900px;
	margin: 0 auto 3rem;
}
.service_approach_icons {
	display: flex;
	justify-content: center;
	gap: 60px;
	list-style: none;
	padding: 0;
	margin: 0 0 3rem;
}
.service_approach_icons li {
	text-align: center;
	width: 220px;
	min-width: 0;
}
.service_approach_icons .circle {
	width: 160px;
	height: 160px;
	border-radius: 50%;
	overflow: hidden;
	margin: 0 auto 1em;
	border: solid 8px #fff;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.service_approach_icons .circle img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.service_approach_icons p {
	font-weight: bold;
	color: #1D76C4;
	margin-bottom: 0;
	line-height: 1.5;
	overflow-wrap: break-word;
}
.service_approach_icons p span {
	font-weight: normal;
	color: #333;
	font-size: 0.85em;
}

.service_point {
	display: flex;
	align-items: center;
	gap: 50px;
	background: #fff;
	padding: 2em;
	border-radius: 8px;
}
.service_point:not(:last-child) {
	margin-bottom: 30px;
}
.service_point.is-reverse {
	flex-direction: row-reverse;
}
.service_point .img {
	width: 320px;
	flex: none;
}
.service_point .img img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.service_point .text {
	flex: 1;
}
.point_badge {
	display: inline-block;
	background: #1D76C4;
	color: #fff;
	font-size: 14px;
	font-weight: bold;
	padding: 0.4em 1.2em;
	border-radius: 4px;
	margin-bottom: 0.75em;
}
.service_point h3 {
	font-size: 22px;
	font-weight: bold;
	margin-bottom: 0.75em;
}
.service_point h3 span {
	font-size: 0.75em;
	font-weight: normal;
}
.service_point p {
	line-height: 1.75;
	margin-bottom: 1.25em;
}
.point_list {
	list-style: none;
	padding: 1em 1.5em;
	margin: 0;
	background: #F8F8F8;
	border-radius: 8px;
}
.point_list li {
	position: relative;
	padding-left: 1.25em;
	line-height: 1.8;
}
.point_list li::before {
	content: "・";
	position: absolute;
	left: 0;
}

/* ---------- pricing ---------- */
.service_plan {
	padding: 60px 0;
}
.service_plan h2 {
	text-align: center;
	font-size: 28px;
	font-weight: bold;
	margin-bottom: 1rem;
	color: #1D76C4;
}
.service_plan_lead {
	text-align: center;
	line-height: 1.75;
	margin-bottom: 2.5rem;
}
.service_plan_flex {
	display: flex;
	gap: 20px;
	margin-bottom: 40px;
}
.plan_card {
	width: calc(100% / 3);
	border: solid 1px #EFEFEF;
}
.plan_head {
	text-align: center;
	color: #fff;
	padding: 1.25em 0;
}
.plan_head h3 {
	font-size: 20px;
	font-weight: bold;
	margin-bottom: 0.5em;
	padding-bottom: 0.5em;
	border-bottom: solid 1px rgba(255, 255, 255, 0.5);
	display: inline-block;
}
.plan_head p {
	margin-bottom: 0;
	font-weight: bold;
}
.plan_card.is-spot .plan_head {
	background: #91CCFA;
}
.plan_card.is-active .plan_head {
	background: #1D76C4;
}
.plan_card.is-maintenance .plan_head {
	background: #EE8036;
}
.plan_body {
	text-align: center;
	padding: 2em 1em;
	min-height: 140px;
}
.plan_body p {
	line-height: 1.75;
}
.plan_note {
	color: #EB4726;
	font-size: 13px;
	font-weight: bold;
	margin-top: 1em;
}
.plan_price {
	text-align: center;
	background: #F8F8F8;
	padding: 1em;
}
.plan_price p {
	font-size: 26px;
	font-weight: bold;
	color: #EB4726;
	margin-bottom: 0.25em;
}
.plan_price p span {
	font-size: 16px;
}
.plan_price small {
	font-size: 13px;
}

.service_plan_banner {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	border: solid 2px #1D76C4;
}
.banner_label {
	width: 30%;
	background: #1D76C4;
	color: #fff;
	text-align: center;
	padding: 1.5em 1em;
	position: relative;
	clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%);
}
.banner_label p {
	margin-bottom: 0.5em;
	font-weight: bold;
}
.banner_label p.highlight {
	background: linear-gradient(transparent 60%, #FFF176 60%);
	display: inline-block;
	font-size: 18px;
	margin-bottom: 0;
}
.banner_detail {
	flex: 1;
	padding: 1em 2em;
}
.banner_detail p {
	text-align: center;
	font-weight: bold;
	margin-bottom: 0.5em;
}
.banner_detail p span {
	color: #1D76C4;
	margin-right: 1em;
}
.banner_price {
	width: 100%;
	text-align: center;
	border-top: solid 2px #1D76C4;
	padding: 1em;
}
.banner_price p {
	font-size: 30px;
	font-weight: bold;
	color: #EB4726;
	margin-bottom: 0;
}
.banner_price p span {
	font-size: 16px;
}

@media screen and (max-width: 768px) {
	.service_hero {
		height: 200px;
	}
	.service_hero::before {
		width: 85%;
		clip-path: polygon(25% 0, 100% 0, 100% 100%, 0 100%);
	}
	.service_hero h1 {
		font-size: 22px;
		padding: 0.5em 1em;
	}
	.service_intro {
		padding: 40px 0 0;
	}
	.service_intro_box {
		margin-top: -1em;
		padding: 2em 1.25em 1.5em;
	}
	.service_section {
		padding: 40px 0;
	}
	.service_section h2 {
		font-size: 22px;
	}
	.service_flex,
	.service_flex.is-reverse {
		flex-direction: column;
		gap: 20px;
	}
	.service_flex .img,
	.service_flex .text {
		width: 100%;
	}
	.service_approach {
		padding: 40px 0;
	}
	.service_approach h2 {
		font-size: 22px;
	}
	.service_approach_icons {
		flex-wrap: wrap;
		justify-content: center;
		gap: 24px 16px;
		margin-bottom: 2rem;
	}
	.service_approach_icons li {
		width: calc(50% - 8px);
	}
	.service_approach_icons .circle {
		width: 100px;
		height: 100px;
	}
	.service_point,
	.service_point.is-reverse {
		flex-direction: column;
		padding: 1.5em;
	}
	.service_point .img {
		width: 100%;
	}
	.service_point h3 {
		font-size: 19px;
	}
	.service_plan {
		padding: 40px 0;
	}
	.service_plan h2 {
		font-size: 22px;
	}
	.service_plan_flex {
		flex-direction: column;
		gap: 20px;
		margin-bottom: 30px;
	}
	.plan_card {
		width: 100%;
	}
	.plan_body {
		min-height: 0;
	}
	.service_plan_banner {
		flex-direction: column;
	}
	.banner_label {
		width: 100%;
		clip-path: none;
	}
	.banner_detail p {
		font-size: 14px;
	}
	.banner_price p {
		font-size: 24px;
	}
}
