@charset "UTF-8";

/* ------------------------------------------- */
/* root */
/* ------------------------------------------- */
:root {
	--primary-color: #0065BA;
	--secondary-color: #F0F7FF;
	--default-text-color: #000;
	--font-family-base: "Noto Sans JP", sans-serif;
}

/* --------------------------------------------------------------- */
/* reset start */
/* --------------------------------------------------------------- */
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	background: transparent;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
video {
	display: block;
}

ul,
li,
ol,
dl {
	list-style: none;
}

blockquote,
q {
	quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
	content: "";
	content: none;
}

a {
	display: inline-block;
	margin: 0;
	padding: 0;
	color: var(--default-text-color);
	text-decoration: none;
}

@media (hover: hover) and (pointer: fine) {
	a:hover {
		opacity: 0.7;
		transition: opacity 0.3s ease-out;
	}
}

del {
	text-decoration: line-through;
}

abbr[title],
dfn[title] {
	border-bottom: 0.1rem dotted;
	cursor: help;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

*,
*:after,
*:before {
	-webkit-appearance: none;
	word-break: break-all;
	box-sizing: border-box;
}

video {
	filter: contrast(1);
}

/* --------------------------------------------------------------- */
/* reset end */
/* --------------------------------------------------------------- */

/* タブレット(1081px以上)のみ非表示 */
@media print,
screen and (min-width: 1080.01px) {
	.tab-off {
		display: none !important;
	}
}

/* PC(768px以上)のみ非表示 */
@media print,
screen and (min-width: 767.01px) {
	.pc-off {
		display: none !important;
	}
}

/* スマホのみ非表示 */
@media screen and (max-width: 767px) {
	.sp-off {
		display: none !important;
	}
}

@media screen and (max-width: 767px) {
	a[href^="tel:"] {
		color: var(--default-text-color);
	}
}

@media screen and (min-width: 767.01px) {
	a[href^="tel:"] {
		pointer-events: none;
		text-decoration: none;
	}
}

html {
	font-size: 62.5%;
	letter-spacing: 0;
	font-family: var(--font-family-base);
	-webkit-text-size-adjust: none;

	@media screen and (min-width: 1080.01px) and (max-width: 1919.99px) {
		font-size: calc(10 / 1920 * 100 * 1vw);
	}

	/* あまりにも文字サイズが小さくなった場合 */
	@media screen and (min-width: 767.01px) and (max-width: 1080px) {
		font-size: calc(12 / 1920 * 100 * 1vw);
	}

	/* スマホ用（デザインサイズが375の場合） */
	@media screen and (max-width: 767px) {
		font-size: calc(10 / 375 * 100 * 1vw);
	}
}

body {
	font-size: 1.6rem;
	line-height: 1;
	overflow: auto;

	@media screen and (max-width: 767px) {
		font-size: 1.4rem;
	}
}

img {
	display: block;
	max-width: 100%;
	height: auto;
	vertical-align: top;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;

	@media screen and (max-width: 767px) {
		/* スマホ画像長押し禁止対策 */
		pointer-events: none;
	}
}

@page {
	size: A4;
	margin: 10mm;
}

/* ------------------------------------------- */
/* デバッグ用：スクロールバーを0pxに
/* ------------------------------------------- */
.deve body {
	--sb-track-color: #ddd;
	--sb-thumb-color: #000;
	--sb-size: 0;
	/* scrollbar-color: var(--sb-thumb-color) var(--sb-track-color); */
	overflow-x: hidden;
}

.deve body::-webkit-scrollbar {
	width: var(--sb-size);
}

.deve body::-webkit-scrollbar-track {
	background: var(--sb-track-color);
	border-radius: 1px;
}

.deve body::-webkit-scrollbar-thumb {
	background: var(--sb-thumb-color);
	border-radius: 1px;
}

/* --------------------------------------------------------------- */
/* wrapper */
/* --------------------------------------------------------------- */
#wrapper {
	overflow: clip;
}

.menu-active {
	overflow: hidden;
}

/* --------------------------------------------------------------- */
/* header */
/* --------------------------------------------------------------- */
#header {
	position: fixed;
	left: 0;
	top: 0;
	z-index: 999;

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

	/* メニューボタン */
	.menu-btn {
		position: absolute;
		display: none;
		top: 0;
		right: 0;
		z-index: 9999;

		@media screen and (max-width: 767px) {
			display: block;
		}

		&:after {
			/* content: "MENU"; */
			content: "";
			position: absolute;
			left: 50%;
			bottom: 1.1rem;
			color: #e90000;
			font-weight: 500;
			letter-spacing: 0.05em;
			font-size: 1.1rem;
			transform: translateX(-50%);
			white-space: nowrap;
		}

		& a {
			position: relative;
			width: 10rem;
			height: 10rem;
			vertical-align: top;
			transition: ease 0.25s all;

			@media screen and (max-width: 767px) {
				width: 6.2rem;
				height: 6.2rem;
			}

			& span {
				position: absolute;
				left: 50%;
				top: 50%;
				display: block;
				margin-left: -1.8rem;
				width: 3.4rem;
				height: 0.2rem;
				background: #e90000;
				border-radius: 0.3rem;

				@media screen and (max-width: 767px) {
					margin-left: -1.4rem;
					width: 2.8rem;
					height: 0.2rem;
				}

				&:before,
				&:after {
					content: "";
					position: absolute;
					left: 0;
					top: 0;
					width: 100%;
					height: 100%;
					background: #e90000;
					border-radius: 0.3rem;
					transition: ease 0.25s all;
				}

				&:before {
					margin-top: -1.1rem;
				}

				@media screen and (max-width: 767px) {
					&:before {
						margin-top: -0.7rem;
					}
				}

				&:after {
					margin-top: 1.1rem;
				}

				@media screen and (max-width: 767px) {
					&:after {
						margin-top: 0.7rem;
					}
				}
			}
		}
	}
}

@media screen and (max-width: 767px) {
	.nav {
		position: fixed;
		left: 100%;
		z-index: 999;
		width: 100%;
		pointer-events: none;
	}
}

.menu-active {
	#header {
		.menu-btn {

			/* position: fixed; */
			& a {
				background-color: #fff;

				& span {
					background-color: transparent;

					&:before {
						margin-top: 0;
						transform: rotate(45deg);
						-webkit-transform: rotate(45deg);
					}

					&:after {
						margin-top: 0;
						transform: rotate(-45deg);
						-webkit-transform: rotate(-45deg);
					}
				}
			}
		}

		@media screen and (max-width: 767px) {
			.nav {
				left: 0;
				pointer-events: auto;
			}
		}
	}
}

/* --------------------------------------------------------------- */
/* breadcrumbs */
/* --------------------------------------------------------------- */
#breadcrumbs {
	padding: 2.4rem 0;

	@media screen and (max-width: 767px) {
		display: none;
	}

	& ol {
		display: flex;
		flex-wrap: wrap;
	}

	& li {
		position: relative;
		margin-right: 3.7rem;
		font-weight: 500;
		font-size: 1.2rem;
		letter-spacing: 0.1em;

		&:last-child {
			margin-right: 0;

			&:after {
				display: none;
			}
		}

		&:after {
			content: "";
			position: absolute;
			right: -2.7rem;
			top: 50%;
			z-index: 0;
			display: block;
			width: 1.4rem;
			height: 1px;
			background: #bcbcbc;

			&:last-child:after {
				display: none;
			}
		}
	}

	& a {
		text-decoration: underline;
		color: #7aa3c6;

		@media (hover: hover) and (pointer: fine) {
			&:hover {
				text-decoration: none;
			}
		}
	}
}

/* --------------------------------------------------------------- */
/* container */
/* --------------------------------------------------------------- */
#container {}

/* --------------------------------------------------------------- */
/* contents */
/* --------------------------------------------------------------- */
#contents {}

/* --------------------------------------------------------------- */
/* footer */
/* --------------------------------------------------------------- */
#footer {}

/* ------------------------------------------- */
/* inner config */
/* ------------------------------------------- */
.inner {
	position: relative;
	z-index: 1;
	margin: 0 auto;

	@media screen and (max-width: 767px) {
		width: calc(100% - 3rem);
	}
}

.w960 {
	max-width: 96rem;
}

.w1080 {
	max-width: 108rem;
}

.w1200 {
	max-width: 120rem;
}

.w1440 {
	max-width: 144rem;
}

/* ------------------------------------------- */
/* align */
/* ------------------------------------------- */
.tar {
	text-align: right;
}

.tal {
	text-align: left;
}

.tac {
	text-align: center;
}

/* --------------------------------------------------------------- */
/* common parts */
/* --------------------------------------------------------------- */

/* ------------------------------------------- */
/* common-area */
/* ------------------------------------------- */
.common-area {}

/* ------------------------------------------- */
/* common-title */
/* ------------------------------------------- */
.common-title {}

/* type01 */
.common-title.type01 {
	text-align: center;
}

/* ------------------------------------------- */
/* common-btn */
/* ------------------------------------------- */
.common-btn {}

/* ------------------------------------------- */
/* common-select */
/* ------------------------------------------- */
.common-select {}

/* ------------------------------------------- */
/* common-list */
/* ------------------------------------------- */
.common-list {}

/* ------------------------------------------- */
/* common-text */
/* ------------------------------------------- */
.common-text {}

/* ------------------------------------------- */
/* common-table */
/* ------------------------------------------- */
.common-table {
	table-layout: fixed;
	width: 100%;
	border-collapse: collapse;

	& p {
		margin-bottom: 2rem;

		&:last-child {
			margin-bottom: 0;
		}
	}
}

/* table-scroll */
@media screen and (max-width: 767px) {
	.table-scroll {
		position: relative;
		padding-bottom: 2rem;
		overflow-x: scroll;

		&:after {
			content: "←";
			position: absolute;
			right: 0;
			bottom: 0;
			z-index: 1;
			margin-left: -1.5rem;
			display: flex;
			flex-wrap: wrap;
			justify-content: center;
			align-items: center;
			width: 3rem;
			height: 3rem;
			border-radius: 1.5rem;
			border: 0.1rem solid #000;
			animation: arrowtable 2s infinite forwards;
		}

		.common-table {
			width: 80rem;
		}
	}
}

@keyframes arrowtable {
	50% {
		opacity: 1;
		right: 0;
	}

	100% {
		opacity: 0;
		right: 100%;
	}
}

/* ------------------------------------------- */
/* アニメーション用 */
/* ------------------------------------------- */
/*
.moveFlag {
	position: relative;
	top: -5rem;
	opacity: 0;
	transition: ease 0.5s top, ease 0.5s opacity;
}
.moveFlag.on {
	top: 0;
	opacity: 1;
}
@media print {
	.moveFlag {
		top: 0;
		opacity: 1;
	}
}
*/

/* --------------------------------------------------------------- */
/*  margin padding */
/* --------------------------------------------------------------- */
.mb0 {
	margin-bottom: 0rem !important;
}

.mb10 {
	margin-bottom: 1rem !important;
}

.mb20 {
	margin-bottom: 2rem !important;
}

.mb30 {
	margin-bottom: 3rem !important;
}

.mb40 {
	margin-bottom: 4rem !important;
}

.mb50 {
	margin-bottom: 5rem !important;
}

.mb60 {
	margin-bottom: 6rem !important;
}

.mb70 {
	margin-bottom: 7rem !important;
}

.mb80 {
	margin-bottom: 8rem !important;
}

.mb90 {
	margin-bottom: 9rem !important;
}

.mb100 {
	margin-bottom: 10rem !important;
}

@media screen and (max-width: 767px) {
	.mb10 {
		margin-bottom: 0.5rem !important;
	}

	.mb20 {
		margin-bottom: 1rem !important;
	}

	.mb30 {
		margin-bottom: 1.5rem !important;
	}

	.mb40 {
		margin-bottom: 2rem !important;
	}

	.mb50 {
		margin-bottom: 2.5rem !important;
	}

	.mb60 {
		margin-bottom: 3rem !important;
	}

	.mb70 {
		margin-bottom: 3.5rem !important;
	}

	.mb80 {
		margin-bottom: 4rem !important;
	}

	.mb90 {
		margin-bottom: 4.5rem !important;
	}

	.mb100 {
		margin-bottom: 5rem !important;
	}
}

.mt0 {
	margin-top: 0rem !important;
}

.mt10 {
	margin-top: 1rem !important;
}

.mt20 {
	margin-top: 2rem !important;
}

.mt30 {
	margin-top: 3rem !important;
}

.mt40 {
	margin-top: 4rem !important;
}

.mt50 {
	margin-top: 5rem !important;
}

.mt60 {
	margin-top: 6rem !important;
}

.mt70 {
	margin-top: 7rem !important;
}

.mt80 {
	margin-top: 8rem !important;
}

.mt90 {
	margin-top: 9rem !important;
}

@media screen and (max-width: 767px) {
	.mt10 {
		margin-top: 0.5rem !important;
	}

	.mt20 {
		margin-top: 1rem !important;
	}

	.mt30 {
		margin-top: 1.5rem !important;
	}

	.mt40 {
		margin-top: 2rem !important;
	}

	.mt50 {
		margin-top: 2.5rem !important;
	}

	.mt60 {
		margin-top: 3rem !important;
	}

	.mt70 {
		margin-top: 3.5rem !important;
	}

	.mt80 {
		margin-top: 4rem !important;
	}

	.mt90 {
		margin-top: 4.5rem !important;
	}

	.mt100 {
		margin-top: 5rem !important;
	}
}

.pb0 {
	padding-bottom: 0 !important;
}

.pb10 {
	padding-bottom: 1rem !important;
}

.pb20 {
	padding-bottom: 2rem !important;
}

.pb30 {
	padding-bottom: 3rem !important;
}

.pb40 {
	padding-bottom: 4rem !important;
}

.pb50 {
	padding-bottom: 5rem !important;
}

.pb60 {
	padding-bottom: 6rem !important;
}

.pb70 {
	padding-bottom: 7rem !important;
}

.pb80 {
	padding-bottom: 8rem !important;
}

.pb90 {
	padding-bottom: 9rem !important;
}

.pb100 {
	padding-bottom: 10rem !important;
}

@media screen and (max-width: 767px) {
	.pb10 {
		padding-bottom: 0.5rem !important;
	}

	.pb20 {
		padding-bottom: 1rem !important;
	}

	.pb30 {
		padding-bottom: 1.5rem !important;
	}

	.pb40 {
		padding-bottom: 2rem !important;
	}

	.pb50 {
		padding-bottom: 2.5rem !important;
	}

	.pb60 {
		padding-bottom: 3rem !important;
	}

	.pb70 {
		padding-bottom: 3.5rem !important;
	}

	.pb80 {
		padding-bottom: 4rem !important;
	}

	.pb90 {
		padding-bottom: 4.5rem !important;
	}

	.pb100 {
		padding-bottom: 5rem !important;
	}
}

.pt0 {
	padding-top: 0 !important;
}

.pt10 {
	padding-top: 1rem !important;
}

.pt20 {
	padding-top: 2rem !important;
}

.pt30 {
	padding-top: 3rem !important;
}

.pt40 {
	padding-top: 4rem !important;
}

.pt50 {
	padding-top: 5rem !important;
}

.pt60 {
	padding-top: 6rem !important;
}

.pt70 {
	padding-top: 7rem !important;
}

.pt80 {
	padding-top: 8rem !important;
}

.pt90 {
	padding-top: 9rem !important;
}

.pt100 {
	padding-top: 10rem !important;
}

@media screen and (max-width: 767px) {
	.pt10 {
		padding-top: 0.5rem !important;
	}

	.pt20 {
		padding-top: 1rem !important;
	}

	.pt30 {
		padding-top: 1.5rem !important;
	}

	.pt40 {
		padding-top: 2rem !important;
	}

	.pt50 {
		padding-top: 2.5rem !important;
	}

	.pt60 {
		padding-top: 3rem !important;
	}

	.pt70 {
		padding-top: 3.5rem !important;
	}

	.pt80 {
		padding-top: 4rem !important;
	}

	.pt90 {
		padding-top: 4.5rem !important;
	}

	.pt100 {
		padding-top: 5rem !important;
	}
}

/* ------------------------------------------- */
/* pagination */
/* ------------------------------------------- */
.single-post-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	margin-top: 7rem;

	@media screen and (max-width: 767px) {
		margin-top: 3.5rem;
	}

	.back {
		margin: 0 8.3rem;

		@media screen and (max-width: 767px) {
			margin: 0 1rem;
		}
	}

	.prev,
	.next {
		width: 14rem;

		@media screen and (max-width: 767px) {
			width: 4.6rem;
		}

		& a {
			position: relative;
			display: flex;
			flex-wrap: wrap;
			align-items: center;
			width: 100%;
			height: 4.6rem;
			font-weight: 500;
			text-decoration: underline;
			letter-spacing: 0.08rem;
			color: #000;
			box-sizing: border-box;

			@media screen and (max-width: 767px) {
				padding: 0;
				font-size: 0;
				color: transparent;
			}

			@media (hover: hover) and (pointer: fine) {
				&:hover {
					text-decoration: none;
				}
			}

			&:after {
				content: "";
				position: absolute;
				top: 50%;
				margin-top: -2.3rem;
				display: block;
				width: 4.6rem;
				height: 4.6rem;
				border-radius: 2.3rem;
				background-color: #2987d9;
			}

			@media (hover: hover) and (pointer: fine) {
				&:hover:after {
					background-color: #2987d9;
				}
			}

			@media screen and (max-width: 767px) {
				&:after {
					width: 4.8rem;
					height: 4.8rem;
					margin-top: -2.4rem;
					border-radius: 0;
				}
			}

			&:before {
				content: "";
				position: absolute;
				top: 50%;
				z-index: 1;
				margin-top: -0.4rem;
				display: block;
				width: 0.8rem;
				height: 0.8rem;
				border-top: 0.2rem solid #fff;
				box-sizing: border-box;
				transition: ease 0.25s border;
			}
		}
	}

	.prev {
		& a {
			padding-left: 7.3rem;

			&:after {
				left: 0;
			}

			&:before {
				left: 2.2rem;
				border-left: 0.2rem solid #fff;
				-webkit-transform: rotate(-45deg);
				transform: rotate(-45deg);
			}

			@media (hover: hover) and (pointer: fine) {
				&:hover:before {
					border-left-color: #fff;
				}
			}
		}
	}

	.next {
		& a {
			padding-right: 7.3rem;

			&:after {
				right: 0;
			}

			&:before {
				right: 2.2rem;
				border-right: 0.2rem solid #fff;
				-webkit-transform: rotate(45deg);
				transform: rotate(45deg);
			}
		}
	}
}

/* navigation pagination */
.navigation.pagination {
	margin: 7rem 0 0;

	@media screen and (max-width: 767px) {
		margin: 3rem 0 0;
	}

	.disable {
		display: none;
	}

	.nav-links {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;

		@media screen and (max-width: 767px) {
			position: relative;
			padding-bottom: 5rem;
		}
	}

	.pager {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		margin: 0 0.8rem;
		width: 4.4rem;
		height: 5rem;
		font-family: "Roboto", sans-serif;
		font-weight: bold;
		letter-spacing: 0.08em;
		color: #2987d9;
		background: #fff;
		text-decoration: none;
		transition: ease 0.25s all;
		/* border-radius: 0.4em; */
		border: 0.1rem solid #2987d9;

		@media screen and (max-width: 767px) {
			width: 3rem;
			height: 3rem;
		}

		@media (hover: hover) and (pointer: fine) {
			&:hover {
				color: #fff;
				background: #2987d9;
				border-color: #2987d9;
			}
		}
	}

	.pager.current {
		color: #fff;
		font-weight: bold;
		background: #2987d9;
		border-color: #2987d9;
	}

	.next,
	.prev {
		@media screen and (max-width: 767px) {
			/*position: absolute;*/
			/*bottom: 0;*/
			/*width: 48%;*/
			/*height: 4rem;*/
		}

		& a {
			position: relative;
			display: flex;
			flex-wrap: wrap;
			align-items: center;
			justify-content: center;
			width: 4.4rem;
			height: 5rem;
			font-size: 0;
			font-family: "Roboto", sans-serif;
			font-weight: bold;
			letter-spacing: 0.08em;
			text-decoration: none;
			color: #000;
			background: #fff;
			border: 0.1rem solid #2987d9;
			transition: ease 0.25s background, ease 0.25s color;

			@media screen and (max-width: 767px) {
				width: 2.8rem;
				height: 2.8rem;
			}

			@media (hover: hover) and (pointer: fine) {
				&:hover {
					color: #fff;
					background-color: #2987d9;

					&:after {
						border-top-color: #fff;
					}
				}
			}

			&:after {
				content: "";
				position: absolute;
				top: 50%;
				margin-top: -0.4rem;
				display: block;
				width: 0.8rem;
				height: 0.8rem;
				border-top: 0.1rem solid #2987d9;
				box-sizing: border-box;
				transition: ease 0.25s border;
			}
		}
	}

	.prev {
		@media screen and (min-width: 767.01px) {
			margin-right: 0.8rem;
		}

		@media screen and (max-width: 767px) {
			margin-right: 1rem;
		}

		& a {
			&:after {
				left: 50%;
				margin-left: -0.2rem;
				border-left: 0.1rem solid #2987d9;
				-webkit-transform: rotate(-45deg);
				transform: rotate(-45deg);
			}

			@media (hover: hover) and (pointer: fine) {
				&:hover:after {
					border-left-color: #fff;
				}
			}
		}
	}

	.next {
		@media screen and (min-width: 767.01px) {
			margin-left: 0.8rem;
		}

		@media screen and (max-width: 767px) {
			margin-left: 1rem;
			/*right: 0;*/
		}

		& a {
			&:after {
				right: 50%;
				margin-right: -0.2rem;
				border-right: 0.1rem solid #2987d9;
				-webkit-transform: rotate(45deg);
				transform: rotate(45deg);
			}

			@media (hover: hover) and (pointer: fine) {
				&:hover:after {
					border-right-color: #fff;
				}
			}
		}
	}
}

/* ------------------------------------------- */
/* wordpress パスワードフォーム調整用 */
/* ------------------------------------------- */

.post-password-form {
	padding: 100px 30px;
	line-height: 1.8;
	text-align: center;
}

/* ------------------------------------------- */
/* header */
/* ------------------------------------------- */
#header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 3rem;
	width: 100%;
	height: 11rem;
	box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.25);
	background-color: #FFF;

	.header__left {
		display: flex;
		align-items: center;

		.header__logo {
			margin-right: 2.2rem;
			width: 30rem;
		}

		.header__brand {
			font-size: 2.1rem;
			font-weight: 500;
		}
	}

	.header__right {
		display: flex;
		align-items: center;

		.header-nav {
			margin-right: 3.5rem;
		}

		.header-nav>ul {
			display: flex;
			align-items: center;

			li {
				margin-left: 1.8rem;
				font-size: 1.8rem;
				font-weight: bold;
			}
		}

		.header-tel {
			display: flex;
			flex-direction: column;
			align-items: flex-end;
			margin-right: 4rem;

			.tel__main {
				font-family: 'Jost', sans-serif;
				font-size: 2.1rem;
				font-weight: bold;

				.tel__number {
					font-size: 3.4rem;
					font-weight: 500;
				}
			}

			.tel__hours {
				font-size: 1.6rem;
				font-weight: bold;
			}
		}

		.contact-btn {
			border-radius: 3rem;
			padding: 1.35rem 4.05rem;
			box-shadow: 0 0.5rem 0.2rem rgba(0, 0, 0, 0.25);
			background-color: #601CBF;
			line-height: 3.4rem;
			color: #FFF;
			font-size: 2rem;
			font-weight: bold;

			.contact-btn__inner::before {
				content: '';
				display: inline-block;
				width: 2.7rem;
				height: 1.8rem;
				background-image: url('/lp/moldsupport/img/contact_mail_icon.svg');
				background-size: contain;
				background-repeat: no-repeat;
				background-position: center;
				padding-right: 0.8rem;
			}

			.contact-btn__label {
				padding-left: 0.8rem;
			}
		}
	}
}

/* ------------------------------------------- */
/* main */
/* ------------------------------------------- */
#main {
	/* margin-top: 11rem; */

	#hero {
		background-color: var(--secondary-color);

		.hero__main {
			margin: 0 auto;
			max-width: 95%;
			display: flex;
			justify-content: center;

			.hero__main-left {
				padding: 15.1rem 0 14.6rem;
				position: relative;
				display: flex;
				flex-direction: column;
				justify-content: flex-start;
				flex-shrink: 0;
				align-items: center;
				width: 92.3rem;
				height: 92.3rem;
				transform: translateY(-9rem);

				@media screen and (max-width: 1080px) {
					width: 85rem;
					height: 85rem;
					transform: translateY(-12rem);
				}

				* {
					z-index: 1;
				}

				.hero__main-left-bg {
					position: absolute;
					left: 0;
					top: 0;
					width: 100%;
					height: 100%;
					background-color: #FFF;
					clip-path: circle(50%);
					z-index: 0;
				}

				.hero-logo {
					margin-bottom: 3.4rem;
					display: flex;
					gap: 3.9rem;


					.logo-wrap-mb {
						width: 12.5rem;
					}

					.logo-wrap-osg {
						width: 11.6rem;
					}
				}

				.hero-heading {
					margin-bottom: 3.7rem;
					text-align: center;
					color: #003868;
					font-size: 5.05rem;
					font-weight: 800;
					line-height: 7.84rem;
					letter-spacing: 0.3rem;

					.heading__strong {
						display: inline-flex;
						align-items: first baseline;
						justify-content: center;
						border-radius: 1.3rem;
						padding: 1rem 2.2rem 0.6rem;
						background-color: var(--primary-color);
						color: #FFF;
						font-size: 10.1rem;
						line-height: 10.1rem;
						letter-spacing: 0.06rem;

						.heading__no {
							font-size: 7.84rem;
						}
					}
				}

				.hero-desc {
					display: flex;
					gap: 2.4rem;

					.desc-wrap {
						height: 23.3rem;

						img {
							height: 100%;
						}
					}
				}
			}

			.hero__main-right {
				flex-shrink: 0;
				width: 81.8rem;
				z-index: 1;

				@media screen and (max-width: 1080px) {
					width: 75rem;
				}
			}
		}

		.hero-action {
			margin-top: -16.8rem;
			display: flex;
			justify-content: space-between;
			width: 100%;

			.action-btn {
				border-radius: 5.2rem;
				display: flex;
				align-items: center;
				justify-content: flex-start;
				width: 46.5rem;
				height: 10.4rem;

				.btn-icon {
					border-radius: 50%;
					display: flex;
					align-items: center;
					justify-content: center;
					width: 10.4rem;
					height: 10.4rem;
					background-color: #FFF;
				}

				.btn-text {
					flex: 1 1 auto;
					display: flex;
					flex-direction: column;
					align-items: center;
					justify-content: center;
					color: #FFF;
					font-size: 2.6rem;
					font-weight: 800;
					margin-right: 1.5rem;

					.text-main {
						.text-small {
							font-size: 2.2rem;
							font-weight: 700;
							line-height: 1.5;
						}
					}
				}
			}

			.btn__mail-consult {
				background: linear-gradient(to right, #F25D00 20%, #FF990A 100%);

				.btn-icon {
					border: 0.4rem solid #F25D00;

					img {
						width: 3.4rem;
					}
				}
			}

			.btn__tel-consult {
				background: linear-gradient(to right, #0065BA 20%, #00B5E6 100%);

				.btn-icon {
					border: 0.4rem solid #0065BA;

					img {
						width: 3.9rem;
					}
				}
			}

			.btn__doc-download {
				background: linear-gradient(to right, #576087 20%, #91A2BA 100%);

				.btn-icon {
					border: 0.4rem solid #576087;

					img {
						width: 3rem;
					}
				}
			}
		}

		.hero-divider {
			margin-top: 6.9rem;
			clip-path: ellipse(109.4rem 16.85rem at 50% 16.85rem);
			background-color: #FFF;
			height: 9rem;
		}
	}

	#about {
		padding-bottom: 10.9rem;

		.about-wrap {
			padding: 8.5rem 0 6.5rem;
			background-image:
				url('/lp/moldsupport/img/about_decor_bg.svg'),
				linear-gradient(to bottom, #FFF 30%, #EDEEF5 100%);
			background-repeat: no-repeat, no-repeat;
			background-position: calc(50% - 2rem) -19.5rem, 0 0;
			background-size: 85% 85%, 100% 100%;
		}

		.about__first {
			margin-bottom: 12.5rem;
			display: flex;
			justify-content: center;
			align-items: center;
			gap: 8rem;

			.about-img-wrap1 {
				width: 22.3rem;
				transform: translateY(1.5rem);
			}

			.about-img-wrap2 {
				margin-top: 5rem;
				width: 19.4rem;
			}

			.about__first-content {
				text-align: center;

				.about__first-title {
					margin-bottom: 1.7rem;
					font-size: 3.4rem;
					font-weight: 800;
					line-height: 4.6rem;
					letter-spacing: 0.08rem;
				}

				.title__highlight {
					font-size: 3.8rem;
					letter-spacing: 0.3rem;
					background: linear-gradient(transparent 60%, #FFFA6B 60%);
				}

				.about__first-text {
					font-size: 2rem;
					font-weight: 500;
					line-height: 3.6rem;
					letter-spacing: 0.03rem;
				}
			}
		}

		.about__second {
			display: flex;
			flex-direction: column;
			align-items: center;
			gap: 4.1rem;

			.about__second-title {
				display: flex;
				align-items: center;
				justify-content: center;
				border-radius: 3.15rem;
				padding-bottom: 0.5rem;
				width: 66.3rem;
				height: 6.3rem;
				background-color: #55678B;
				font-size: 3.2rem;
				font-weight: 800;
				color: #FFF;
			}

			.about__second-card-wrap {
				display: flex;
				justify-content: space-between;
				width: 100%;

				.about__second-card {
					border-radius: 1rem;
					padding: 3.6rem 4.8rem 0;
					display: flex;
					flex-direction: column;
					gap: 2.1rem;
					width: 46.2rem;
					height: 39rem;
					background-color: #FFF;
					box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);

					.card-title {
						align-self: center;
						font-size: 2.8rem;
						font-weight: bold;
						line-height: 2.4rem;
						letter-spacing: 0.08rem;

						.title__strong {
							color: #587AB9;
							font-size: 3.2rem;
							font-weight: 800;
							line-height: 2.8rem;
						}
					}

					.card-title::after {
						content: '';
						border-radius: 0.35rem;
						display: block;
						width: 6.4rem;
						height: 0.7rem;
						background-color: #587AB9;
						margin: 2.5rem auto 0;
					}

					.card-list {
						.list-item-wrap {
							margin-bottom: 1.8rem;
							border-bottom: 0.2rem dashed #C7C7C7;

							.list-item {
								position: relative;
								padding-bottom: 1.7rem;
								font-size: 2rem;
								font-weight: bold;
								line-height: 2.8rem;
								margin-left: 2.3rem;
								font-size: 2rem;
								font-weight: bold;
								line-height: 2.8rem;
								display: block;
							}

							.list-item:not(:first-child) {
								margin-top: 1.8rem;
							}
						}

						.list-item::before {
							content: '';
							position: absolute;
							top: 0.5rem;
							left: -2.4rem;
							width: 1.9rem;
							height: 1.8rem;
							background-image: url('/lp/moldsupport/img/tick_icon.svg');
							background-size: contain;
							background-repeat: no-repeat;
							background-position: center;
						}
					}
				}
			}
		}

		.about-divider-wrap {
			margin-bottom: 1rem;

			.inner {
				display: flex;
				justify-content: center;
				align-items: center;
				gap: 5.5rem;
			}

			.divider-img-wrap1 {
				width: 20.9rem;
			}

			.divider-img-wrap2 {
				width: 18.6rem;
			}

			.divider-heading {
				margin-top: -4.5rem;
				text-align: center;
				font-size: 5.35rem;
				font-weight: 800;
				line-height: 8rem;
				letter-spacing: 0.14rem;

				.heading__strong {
					display: inline-flex;
					align-items: center;
					justify-content: center;
					border-radius: 0.4rem;
					padding: 0 1rem 0.6rem;
					height: 7.2rem;
					background-color: var(--primary-color);
					color: #FFF;
					font-size: 6rem;
					letter-spacing: 0.5rem;
				}

				.heading__typo {
					text-decoration: underline wavy #FF7926;
					text-underline-offset: 0.2em;
				}
			}
		}

		.about-divider-filter {
			/* filter: drop-shadow(0 1rem 0.5rem rgba(0, 0, 0, 0.1)); */
			filter: drop-shadow(0 1.7rem 0.6rem rgba(0, 0, 0, 0.06));
		}

		.about-divider {
			position: absolute;
			left: 0;
			right: 0;
			margin-top: -1px;
			height: 48rem;
			background-color: #EDEEF5;
			box-shadow: 0 10rem 0.4rem rgba(0, 0, 0, 0.25);
			clip-path: polygon(-10rem 0, calc(100% + 10rem) 0, 50% 50%);
		}

		.about__third {
			flex-direction: column;
			align-items: center;
			gap: 2rem;

			.about__third-title {
				margin-bottom: 2.2rem;
				display: flex;
				align-items: center;
				justify-content: center;
				gap: 4rem;
				font-size: 4.4rem;
				font-weight: 800;
				line-height: 3.4rem;
				letter-spacing: 0.08rem;
			}

			.about__third-title::before,
			.about__third-title::after {
				content: '';
				border-radius: 1.5px;
				display: block;
				width: 43rem;
				height: 3px;
				background-color: var(--primary-color);
			}

			.about__third-text {
				text-align: center;
				font-size: 2.2rem;
				font-weight: 500;
				line-height: 4.1rem;
				letter-spacing: 0.03rem;
			}

			.about__third-card-wrap {
				display: flex;
				justify-content: space-between;
				width: 100%;

				.about__third-card {
					display: flex;
					flex-direction: column;
					border-radius: 1rem;
					position: relative;
					width: 46.2rem;
					height: 75.9rem;
					background-color: var(--primary-color);

					.card-icon {
						border-radius: 50%;
						position: absolute;
						display: flex;
						align-items: center;
						justify-content: center;
						top: -5.5rem;
						left: -1.3rem;
						width: 10.1rem;
						height: 10.1rem;
						background-color: #8EC3FF;
						font-size: 2.8rem;
						font-weight: 800;
						color: #FFF;
						line-height: 4rem;
						letter-spacing: 0.08rem;

						&.small-text {
							font-size: 2.3rem;
						}
					}

					.card-title {
						display: flex;
						align-items: center;
						justify-content: center;
						text-align: center;
						height: 15.2rem;
						color: #FFF;
						font-size: 3rem;
						font-weight: 800;
						line-height: 4rem;
						letter-spacing: 0.08rem;
					}

					.card-body {
						display: flex;
						flex-direction: column;
						align-items: stretch;
						flex-grow: 1;
						background-color: var(--secondary-color);
						border: 0.4rem solid var(--primary-color);
						border-radius: 0 0 1rem 1rem;
						padding: 3.8rem 0 4.9rem;

						.body-main {
							text-align: center;
							flex-grow: 1;

							.body-title {
								font-size: 2.4rem;
								font-weight: 500;
								line-height: 3.5rem;
								letter-spacing: 0.08rem;
								margin-bottom: 2.8rem;

								.title__strong {
									color: var(--primary-color);
									font-weight: 800;
								}
							}

							.body-title::after {
								content: '';
								border-radius: 0.4rem;
								display: block;
								width: 6.7rem;
								height: 0.8rem;
								background-color: var(--primary-color);
								margin: 2.8rem auto 0;
							}

							.body-text {
								padding: 0 5.9rem;
								font-size: 1.6rem;
								font-weight: 500;
								line-height: 2.6rem;
								letter-spacing: 0.08rem;
							}
						}

						.recommend-card {
							margin: 0 auto;
							border-radius: 1rem;
							padding: 4.5rem 0 0 5.8rem;
							position: relative;
							width: 40.4rem;
							height: 22.8rem;
							background-color: #FFF;

							.card-list {
								.list-item {
									position: relative;
									font-size: 1.8rem;
									font-weight: 500;
									line-height: 2.2rem;
									letter-spacing: 0.07rem;
								}

								.list-item::before {
									content: '';
									position: absolute;
									top: 0.3rem;
									left: -2.5rem;
									display: inline-block;
									width: 1.9rem;
									height: 1.8rem;
									background-image: url('/lp/moldsupport/img/tick_icon2.svg');
									background-size: contain;
									background-repeat: no-repeat;
								}

								.list-item:not(:last-child) {
									margin-bottom: 2.8rem;
								}
							}
						}

						.recommend-card::before {
							content: 'こんな方におすすめ';
							margin-left: auto;
							margin-right: auto;
							border-radius: 1.9rem;
							display: flex;
							align-items: center;
							justify-content: center;
							position: absolute;
							top: -1.9rem;
							left: 0;
							right: 0;
							width: 20.5rem;
							height: 3.8rem;
							color: #FFF;
							font-size: 1.8rem;
							font-weight: 700;
							line-height: 1.8rem;
							letter-spacing: 0.08rem;
							background-color: var(--primary-color);
						}
					}
				}
			}
		}
	}

	#service {
		padding-top: 11.1rem;
		background-color: var(--secondary-color);

		.service-title-wrap {
			margin-bottom: 8.2rem;
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			gap: 1rem;

			.title-en {
				color: var(--primary-color);
				font-family: 'Roboto', sans-serif;
				font-size: 3.4rem;
				font-weight: 800;
				line-height: 3.4rem;
				letter-spacing: 0.08rem;
			}

			.title-ja {
				font-size: 4.8rem;
				font-weight: 800;
				line-height: 4.8rem;
				letter-spacing: 0.08rem;
			}
		}

		.service-card {
			border: 0.6rem solid var(--primary-color);
			border-radius: 2rem;
			padding: 0 12rem 7rem;
			position: relative;
			width: 100%;
			background-color: #FFF;
			box-shadow: 0 2rem 2rem rgba(0, 0, 0, 0.1);

			&:not(:last-child) {
				margin-bottom: 7rem;
			}

			.card-title {
				border-radius: 2rem 0 2rem 0;
				position: absolute;
				left: -0.6rem;
				top: -0.6rem;
				width: 49.3rem;
				height: 7.5rem;
				display: flex;
				align-items: center;
				justify-content: center;
				background-color: var(--primary-color);
				color: #FFF;
				font-size: 3.2rem;
				font-weight: 800;
				line-height: 4.8rem;
				letter-spacing: 0.08rem;
				padding: 2.4rem 3.2rem;
			}

			.card__main {
				display: grid;
				min-height: 0;

				.card__main-title {
					margin: 12rem 0 4rem;
					grid-row: 1;
					grid-column: 1;
					font-size: 4.2rem;
					font-weight: 800;
					line-height: 4.2rem;
					letter-spacing: 0.08rem;
				}

				.card__main-text {
					grid-row: 2;
					grid-column: 1;
					border-radius: 2.4rem;
					padding: 2rem 4rem;
					width: 68.5rem;
					background-color: #F4F9FF;
					font-size: 2.2rem;
					font-weight: 500;
					line-height: 3.5rem;
					letter-spacing: 0.08rem;

					.text-heading {
						display: inline-block;
						margin-bottom: 3rem;
						color: var(--primary-color);
						font-size: 2.2rem;
						font-weight: 700;
						line-height: 3.2rem;
						letter-spacing: 0.08rem;
					}

					.text-body {
						font-size: 1.6rem;
						font-weight: 500;
						line-height: 2.6rem;
						letter-spacing: 0.08rem;
					}
				}

				.service-img {
					grid-column: 2;
					grid-row: span 3;
				}

				.service-img1 {
					width: 35rem;
					transform: translate(2.6rem, 4rem);
				}

				.service-img2 {
					transform: translate(7.2rem, 6.8rem);
				}

				.service-img3 {
					transform: translate(8rem, 5.5rem);
				}
			}

			.card__bottom {
				margin-top: 6rem;
				padding: 5rem 0;
				display: flex;
				flex-direction: column;
				align-items: center;
				background-color: #F8F8F8;

				.card__bottom-context {
					position: relative;
					margin-bottom: 2.7rem;
					border-radius: 2.1rem;
					padding: 0 2rem;
					display: flex;
					align-items: center;
					justify-content: center;
					width: max-content;
					height: 4.2rem;
					color: #FFF;
					font-size: 2.4rem;
					font-weight: 700;
					line-height: 2.4rem;
					letter-spacing: 0.08rem;
					background-color: var(--primary-color);

					.context-text {
						position: relative;
						z-index: 1;
					}
				}

				.card__bottom-context::after {
					content: '';
					position: absolute;
					top: calc(100% - 1.5rem);
					left: calc(50% - 1.5rem);
					width: 3rem;
					height: 3rem;
					z-index: 0;
					background-image: url('/lp/moldsupport/img/arrow_icon.svg');
					background-size: contain;
					background-repeat: no-repeat;
					background-position: center;
				}

				.card__bottom-title {
					margin-bottom: 4rem;
					font-size: 3rem;
					font-weight: 700;
					line-height: 2.8rem;
					letter-spacing: 0.08rem;
				}

				.card__bottom-step-wrap {
					margin-bottom: 5.7rem;
					display: flex;
					justify-content: center;
					gap: 8.2rem;

					.card__bottom-step {
						position: relative;
						width: 28.1rem;
					}

					.card__bottom-step:not(:last-child)::before {
						content: '';
						position: absolute;
						top: calc(50% - 1.1rem);
						left: calc(100% + 3rem);
						width: 2.2rem;
						height: 2.2rem;
						background-image: url('/lp/moldsupport/img/arrow_icon.svg');
						background-size: contain;
						background-repeat: no-repeat;
						background-position: center;
						transform: rotate(-90deg);
					}
				}

				.card__bottom-stat {
					display: flex;
					justify-content: center;
					gap: 4.7rem;
					height: 37.2rem;

					.stat-details {
						width: 35.2rem;
						display: flex;
						flex-direction: column;
						align-items: stretch;
						gap: 2.2rem;
					}

					.stat-result {
						width: 49.8rem;
						display: flex;
						flex-direction: column;
						align-items: stretch;
						gap: 1.4rem;
					}

					.details-title,
					.result-title {
						border-radius: 1.8rem;
						display: flex;
						align-items: center;
						justify-content: center;
						height: 3.6rem;
						background-color: #6F899F;
						color: #FFF;
						font-size: 1.8rem;
						font-weight: 700;
						line-height: 1.8rem;
						letter-spacing: 0.08rem;
					}

					.details-content {
						font-size: 1.6rem;
						font-weight: 500;
						line-height: 2.1rem;
						letter-spacing: 0;

						.details-list {
							margin-bottom: 1.1rem;

							.list-item {
								list-style: disc inside;
								margin-left: 1.5rem;
							}
						}

						.details-table {
							border: 1px solid #000;
							width: 100%;
							font-size: 1.4rem;
							font-weight: 700;
							line-height: 1.9rem;

							& th,
							& td {
								padding: 1rem 1.2rem;
							}

							& th {
								border: 1px solid #000;
								text-align: left;
								width: 50%;
								color: #FFF;
								background-color: #888888;
							}

							& td {
								border: 1px solid #000;
								background-color: #FFF;
							}
						}
					}

					.result-content {
						padding: 1.4rem 3rem 1.1rem;
						display: flex;
						flex-direction: column;
						justify-content: space-between;
						align-items: center;
						height: 100%;
						font-size: 1.4rem;
						font-weight: 700;
						line-height: 1.9rem;
						background-color: #FFF;

						.result-chart-wrap {
							position: relative;
							width: 100%;
							padding-left: 3.2rem;

							.chart-legend {
								display: flex;
								justify-content: flex-end;
								gap: 1.8rem;
								margin-bottom: 1rem;
								font-size: 1.2rem;
								line-height: 1;

								& li {
									display: flex;
									align-items: center;
									gap: 0.6rem;
								}

								.swatch {
									display: inline-block;
									width: 1.2rem;
									height: 1.2rem;
									border-radius: 0.2rem;
								}

								.swatch-before {
									background-color: #D9D9D9;
								}

								.swatch-after {
									background-color: #0065BA;
								}
							}

							.chart-y-axis {
								position: absolute;
								top: 1.7rem;
								left: -1rem;
								bottom: 2.5rem;
								display: flex;
								flex-direction: column;
								justify-content: space-between;
								align-items: flex-end;
								font-size: 1.1rem;
								font-weight: 700;
								line-height: 1;
								color: #000;
								pointer-events: none;

								.chart-y-axis-title {
									position: absolute;
									top: -2rem;
									align-self: flex-start;
									transform-origin: center;
									white-space: nowrap;
									font-size: 1.1rem;
									font-weight: 700;
									letter-spacing: 0.02rem;
								}
							}

							.result-chart-sticker {
								position: absolute;
								top: 2.2rem;
								right: 0.6rem;
								border-radius: 50%;
								display: flex;
								align-items: center;
								justify-content: center;
								width: 29rem;
								height: 10rem;
								background-color: #E2EFFF;
								font-size: 2.2rem;
								font-weight: 800;
								z-index: 2;
								pointer-events: none;

								.text-alert {
									color: #D30000;
								}
							}

							.result-chart {
								width: 100%;
								height: 23.1rem;

								tbody {
									height: 100%;
								}

								.charts-css.column.multiple {
									/* bar width + spacing for grouped columns */
									--data-spacing: 0.6rem;
									--labels-size: 3rem;
								}

								.charts-css.column.multiple tbody tr td {
									width: 2rem;
									min-width: 2rem;
									max-width: 2rem;
								}

								.charts-css.column.multiple tbody tr {
									gap: 0.6rem;

									@media (max-width: 1024px) {
										padding: 0 1rem;
									}
								}

								.charts-css.column.multiple tbody tr,
								.charts-css.column.multiple tbody tr th {
									justify-content: center;
								}

								/* Match data series colors to legend swatches */
								.charts-css.column.multiple tbody tr td:nth-of-type(1) {
									--color: #D9D9D9;
								}

								.charts-css.column.multiple tbody tr td:nth-of-type(2) {
									--color: #0065BA;
								}
							}
						}

						.result-desc {
							width: 90%;
							text-align: center;
							color: var(--primary-color);
							font-size: 1.4rem;
							font-weight: 500;
							line-height: 1.9rem;
							letter-spacing: 0;
						}
					}
				}
			}
		}

		.service-divider {
			margin-top: 11rem;
			clip-path: ellipse(109.4rem 16.85rem at 50% 16.85rem);
			background-color: #FFF;
			height: 9rem;
		}
	}

	#voice {
		padding: 1rem 0;

		.voice-title-wrap {
			margin-bottom: 6rem;
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			gap: 2.6rem;

			.title-en {
				color: var(--primary-color);
				font-family: 'Roboto', sans-serif;
				font-size: 3.4rem;
				font-weight: 800;
				line-height: 3.4rem;
				letter-spacing: 0.08rem;
			}

			.title-ja {
				font-size: 4.8rem;
				font-weight: 800;
				line-height: 4.8rem;
				letter-spacing: 0.08rem;
			}
		}

		.voice-card-wrap {
			display: flex;
			justify-content: space-between;

			.card-wrap__left,
			.card-wrap__right {
				display: flex;
				flex-direction: column;
				gap: 5rem;
			}

			.card-wrap__right {
				margin-top: 5rem;
			}

			.voice-card {
				border-radius: 2rem;
				width: 57.7rem;
				height: 18.8rem;
				display: flex;
				background-color: var(--secondary-color);

				.card-img {
					width: 21rem;
					flex-shrink: 0;
					overflow: hidden;
				}

				.card-text {
					padding: 3.9rem 4.1rem 0 1.2rem;
					font-size: 2rem;
					font-weight: 500;
					line-height: 3rem;
					letter-spacing: 0.08rem;

					.text__strong {
						color: var(--primary-color);
						font-weight: 700;
					}
				}
			}
		}

	}

	#faq {
		background-color: var(--secondary-color);

		.faq-divider {
			clip-path: ellipse(109.4rem 16.85rem at 50% -7.85rem);
			background-color: #FFF;
			height: 9rem;
		}

		.inner {
			padding: 10rem 0 11rem;
		}

		.faq-title-wrap {
			margin-bottom: 5.2rem;
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			gap: 2.6rem;

			.title-en {
				color: var(--primary-color);
				font-family: 'Roboto', sans-serif;
				font-size: 3.4rem;
				font-weight: 800;
				line-height: 3.4rem;
				letter-spacing: 0.08rem;
			}

			.title-ja {
				font-size: 4.8rem;
				font-weight: 800;
				line-height: 4.8rem;
				letter-spacing: 0.08rem;
			}
		}

		.faq-card {
			padding: 4rem 7.3rem;
			background-color: #FFF;

			.card-question {
				margin-bottom: 0.9rem;
				display: flex;
				align-items: center;
				gap: 1.1rem;
				color: var(--primary-color);
				font-size: 2.4rem;
				font-weight: 700;
				line-height: 2.4rem;
				letter-spacing: 0.08rem;
			}

			.card-question::before {
				content: '';
				width: 3.5rem;
				height: 3.5rem;
				flex-shrink: 0;
				background-image: url('/lp/moldsupport/img/question_icon.svg');
				background-size: contain;
				background-repeat: no-repeat;
				background-position: center;
			}

			.card-answer {
				display: flex;
				align-items: flex-start;
				gap: 1.1rem;
				font-size: 1.8rem;
				font-weight: 500;
				line-height: 3.5rem;
				letter-spacing: 0.08rem;
			}

			.card-answer::before {
				content: '';
				display: inline-block;
				width: 3.5rem;
				height: 3.5rem;
				flex-shrink: 0;
				background-image: url('/lp/moldsupport/img/answer_icon.svg');
				background-size: contain;
				background-repeat: no-repeat;
				background-position: center;
			}
		}

		.faq-card:not(:last-child) {
			margin-bottom: 3rem;
		}
	}

	#cta {
		background-image: url('/lp/moldsupport/img/cta_bg.svg');
		background-size: cover;
		background-position: center;
		background-repeat: repeat-x;
		height: 59.9rem;

		.inner {
			display: flex;
			align-items: center;
			height: 100%;
		}

		.cta-main {
			border: 1rem solid #FFCFB1;
			border-radius: 2.9rem;
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			gap: 5rem;
			width: 100%;
			height: 42.6rem;
			background-color: #FFF;

			.cta-title {
				font-size: 5rem;
				font-weight: 700;
				line-height: 5rem;
				letter-spacing: 0.08rem;

				.title__decorated {
					position: relative;

					&::before {
						content: '・';
						position: absolute;
						left: 0;
						right: 0;
						text-align: center;
						top: -0.8em;
						font-size: 0.5em;
						color: #FF7926;
					}
				}
			}

			.cta-desc {
				text-align: center;
				font-size: 2.6rem;
				font-weight: 500;
				line-height: 4.2rem;
				letter-spacing: 0.03rem;
			}

			.cta-btn-wrap {
				display: flex;
				justify-content: center;
				gap: 4rem;

				.cta-btn {
					border-radius: 5.2rem;
					display: flex;
					align-items: center;
					justify-content: flex-start;
					width: 46.5rem;
					height: 10.4rem;

					.btn-icon {
						border-radius: 50%;
						display: flex;
						align-items: center;
						justify-content: center;
						width: 10.4rem;
						height: 10.4rem;
						background-color: #FFF;
					}

					.btn-text {
						flex: 1 1 auto;
						display: flex;
						flex-direction: column;
						align-items: center;
						justify-content: center;
						color: #FFF;
						font-size: 2.6rem;
						font-weight: 800;
						margin-right: 1.5rem;

						.text-main {
							.text-small {
								font-size: 2.2rem;
								font-weight: 700;
								line-height: 1.5;
							}
						}
					}
				}
			}

			.btn__tel-consult {
				background: linear-gradient(to right, #0065BA 20%, #00B5E6 100%);

				.btn-icon {
					border: 0.4rem solid #0065BA;

					img {
						width: 3.9rem;
					}
				}
			}

			.btn__doc-download {
				background: linear-gradient(to right, #576087 20%, #91A2BA 100%);

				.btn-icon {
					border: 0.4rem solid #576087;

					img {
						width: 3rem;
					}
				}
			}
		}
	}

	.cta-img1,
	.cta-img2 {
		position: absolute;
		bottom: 0;
	}

	.cta-img1 {
		left: -12rem;
		width: 22.3rem;
	}

	.cta-img2 {
		right: -10rem;
		width: 18.2rem;
	}
}

#contact {
	padding: 10rem 0 11rem;
	background-color: var(--secondary-color);

	.contact-title-wrap {
		margin-bottom: 8.2rem;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 1rem;

		.title-en {
			color: var(--primary-color);
			font-family: 'Roboto', sans-serif;
			font-size: 3.4rem;
			font-weight: 800;
			line-height: 3.4rem;
			letter-spacing: 0.08rem;
		}

		.title-ja {
			font-size: 4.8rem;
			font-weight: 800;
			line-height: 4.8rem;
			letter-spacing: 0.08rem;
			text-align: center;
		}
	}

	.contact-form {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;

		& *,
		& *:after,
		& *:before {
			-webkit-appearance: auto;
		}

		.mktoButtonRow {
			width: 100% !important;
		}

		.mktoButtonWrap.mktoPunch {
			width: 100% !important;
			margin-left: 0 !important;
		}

		.mktoButton {
			display: block;
			margin-left: auto !important;
			margin-right: auto !important;
		}
	}
}

#footer {
	background-color: var(--secondary-color);
	padding: 1rem 0;
	text-align: center;
	color: var(--primary-color);
	font-size: 1.2rem;
	font-weight: 400;
	line-height: 1.2rem;
	letter-spacing: 0.01rem;
}

@media screen and (max-width: 767px) {
	#main {
		#hero {
			.hero__main {
				flex-direction: column;
				align-items: center;
				max-width: 100%;

				.hero__main-left,
				.hero__main-right {
					width: 100%
				}

				.hero__main-left {
					margin-top: 26px;
					padding: 0;
					height: 545px;
					transform: none;
					justify-content: flex-start;

					.hero__main-left-bg {
						clip-path: ellipse(250px 273px at 50% 273px);
					}

					.hero-logo {
						margin-top: -5px;
						margin-bottom: 31px;
						gap: 18px;


						.logo-wrap-mb {
							width: 59px;
						}

						.logo-wrap-osg {
							width: 54px;
						}
					}

					.hero-heading {
						text-align: center;
						font-size: 24px;
						line-height: 37px;
						margin-bottom: 1.7rem;

						.heading__strong {
							border-radius: 6px;
							padding: 2px 5px;
							font-size: 48px;
							line-height: 48px;

							.heading__no {
								font-size: 37px;
							}
						}
					}
				}

				.hero__main-right {
					margin: -200px auto 0;
					max-width: 90%;
					transform: none;

					img {
						width: 100%;
					}
				}
			}

			.hero-action {
				margin-top: 24px;
				flex-direction: column;
				align-items: center;
				gap: 10px;

				.action-btn {
					width: 294px;
					height: 50px;
					border-radius: 25px;

					.btn-icon {
						width: 50px;
						height: 50px;

						img {
							width: 45%;
						}
					}

					.btn-text {
						font-size: 16px;
						text-align: left;
						padding-left: 15px;

						.text-main {
							.text-small {
								font-size: 12px;
								font-weight: 700;
								line-height: 1.5;
							}
						}
					}
				}
			}

			.hero-divider {
				margin-top: 50px;
				clip-path: ellipse(360px 200px at 50% 200px);
				height: 30px;
			}
		}

		#about {
			padding-bottom: 80px;

			.about-wrap {
				padding: 20px 0 0;
				background-size: auto 370px, 100% 100%;
				background-position: calc(50% - 20px) 28px, 0 0;
			}

			.about-divider-filter {
				filter: drop-shadow(0rem 0.5rem 0.2rem rgba(0, 0, 0, 0.08));
			}

			.about__first {
				margin-bottom: 21px;
				display: grid;
				grid-template-columns: repeat(2, 1fr);
				grid-template-rows: 1fr auto;
				gap: 17px;

				.about__first-content {
					grid-row: 1;
					grid-column: span 2;

					.about__first-title,
					.title__highlight {
						font-size: 18px;
						line-height: 26px;
					}

					.about__first-title {
						margin-bottom: 5px;
					}

					.about__first-text {
						font-size: 14px;
						text-align: left;
						line-height: 22px;
					}
				}

				.about-img-wrap1 {
					grid-row: 2;
					grid-column: 1;
					width: 92px;
					height: fit-content;
					margin: 0 0 0 auto;
					transform: none;
				}

				.about-img-wrap2 {
					grid-row: 2;
					grid-column: 2;
					width: 79px;
					height: fit-content;
					margin: 0 auto 0 0;
					transform: translateY(7px);
				}
			}

			.about__second {
				gap: 20px;

				.about__second-title {
					border-radius: 30px;
					padding: 0;
					width: 290px;
					height: 60px;
					text-align: center;
					font-size: 20px;
					line-height: 24px;
				}

				.about__second-card-wrap {
					flex-direction: column;
					align-items: center;
					gap: 20px;

					.about__second-card {
						padding: 16px 40px 16px;
						gap: 12px;
						width: 328px;
						height: fit-content;

						.card-title {
							font-size: 18px;

							.title__strong {
								font-size: 20px;
							}
						}

						.card-title::after {
							margin: 8px auto 0;
							border-radius: 2px;
							width: 43px;
							height: 4px;
						}

						.card-list {
							.list-item-wrap {
								margin-bottom: 12px;
								border-bottom: 1px dashed #C7C7C7;

								.list-item {
									padding-bottom: 12px;
									font-size: 14px;
									line-height: 18px;
								}

								.list-item::before {
									top: 3px;
									left: -25px;
									width: 13px;
									height: 12px;
								}
							}
						}
					}
				}
			}

			.about-divider-wrap {
				margin-bottom: 53px;

				.inner {
					display: grid;
					grid-template-columns: repeat(2, 1fr);
					grid-template-rows: 1fr auto;
					gap: 8px;
				}

				.divider-heading {
					margin-top: 45px;
					grid-row: 1;
					grid-column: span 2;
					font-size: 20px;
					line-height: 30px;

					.heading__strong {
						padding: 0 4px 1px;
						height: fit-content;
						font-size: 21.5px;
						letter-spacing: 0.3rem;
					}
				}

				.divider-img-wrap1 {
					grid-row: 2;
					grid-column: 1;
					margin-left: auto;
					width: 97.5px;
				}

				.divider-img-wrap2 {
					grid-row: 2;
					grid-column: 2;
					margin-right: auto;
					width: 87px;
				}
			}

			.about-divider {
				height: 150px;
			}

			.about__third {
				gap: 53px;

				.about__third-title {
					margin-bottom: 25px;
					justify-content: space-between;
					gap: 0;
					font-size: 20px;
				}

				.about__third-title::before,
				.about__third-title::after {
					width: 42px;
				}

				.about__third-text {
					text-align: left;
					font-size: 14px;
					line-height: 22px;
				}

				.about__third-card-wrap {
					flex-direction: column;
					gap: 50px;

					.about__third-card {
						border-radius: 7px;
						width: 100%;
						height: fit-content;

						.card-icon {
							margin: auto;
							width: 67px;
							height: 67px;
							left: 0;
							right: 0;
							top: -35.5px;
							font-size: 18px;

							&.small-text {
								font-size: 14px;
							}
						}

						.card-title {
							padding-top: 24px;
							height: 106px;
							flex-shrink: 0;
							font-size: 20px;
							line-height: 26px;
						}

						.card-body {
							border-width: 2px;
							border-radius: 0 0 7px 7px;
							padding: 24px 0 20px;
							gap: 25px;

							.body-main {
								.body-title {
									font-size: 18px;
									line-height: 25px;
									margin-bottom: 18px;
								}

								.body-title::after {
									border-radius: 2px;
									width: 48px;
									height: 4px;
									margin: 18px auto 0;
								}

								.body-text {
									padding: 0 41px;
									font-size: 12px;
									line-height: 18px;
								}
							}

							.recommend-card {
								border-radius: 7px;
								padding: 33px 24px 19px 43px;
								width: 289px;
								height: fit-content;

								.card-list {
									.list-item {
										font-size: 14px;
										line-height: 18px;
									}

									.list-item::before {
										top: 4px;
										left: -17px;
										width: 13px;
										height: 13px;
									}
								}
							}

							.recommend-card::before {
								top: -13.5px;
								left: 0;
								right: 0;
								margin: auto;
								border-radius: 13.5px;
								width: 151px;
								height: 27px;
								font-size: 14px;
							}
						}
					}
				}
			}
		}

		#service {
			padding-top: 39px;

			.service-title-wrap {
				margin-bottom: 28px;
				gap: 0;

				.title-en {
					font-size: 20px;
					line-height: 34px;
				}

				.title-ja {
					font-size: 26px;
					line-height: 26px;
				}
			}

			.service-card {
				border-width: 2px;
				border-radius: 10px;
				padding: 36px 20px 23px;

				&:not(:last-child) {
					margin-bottom: 25px;
				}

				.card-title {
					left: -2px;
					top: -2px;
					width: calc(100% + 4px);
					height: 34px;
					border-radius: 10px 10px 0 0;
					font-size: 14px;
					line-height: 14.5px;
					padding: 1.4rem 3.2rem;
				}

				.card__main {
					display: flex;
					flex-direction: column;
					align-items: center;

					.card__main-title {
						margin: 0 0 22px;
						order: 0;
						font-size: 18px;
					}

					.service-img {
						order: 1;
						margin-bottom: 24px;
						width: 192px;
						transform: none;
					}

					.card__main-text {
						order: 2;
						border-radius: 11px;
						padding: 20px;
						width: 100%;
						height: auto;

						.text-heading {
							font-size: 14px;
							line-height: 18px;
							margin-bottom: 5px;
						}

						.text-body {
							font-size: 12px;
							line-height: 16px;
						}
					}
				}

				.card__bottom {
					margin-top: 22px;
					padding: 20px 18px 0;

					.card__bottom-context {
						margin-bottom: 14px;
						border-radius: 10.5px;
						height: 21px;
						font-size: 12px;
						line-height: 15px;
					}

					.card__bottom-context::after {
						left: 0;
						right: 0;
						margin: auto;
						top: calc(100% - 7px);
						width: 15px;
						height: 15px;
					}

					.card__bottom-title {
						margin-bottom: 14px;
						font-size: 16px;
					}

					.card__bottom-step-sp {
						margin-bottom: 20px;
					}

					.card__bottom-stat {
						width: 100%;
						flex-direction: column;
						height: auto;

						.stat-details,
						.stat-result {
							width: 100%;
							gap: 10px;
						}

						.details-title,
						.result-title {
							height: 25px;
							border-radius: 17.5px;
							font-size: 14px;
						}

						.details-content {

							.details-list,
							.details-table {
								font-size: 12px;
							}

							.details-table {

								& th,
								& td {
									padding: 2px 3px;
								}
							}
						}

						.result-content {
							margin-bottom: 14px;

							.result-chart-wrap {
								width: 100%;
								padding-left: 22px;
								padding-right: 8px;
								overflow: visible;

								.chart-legend {
									margin-bottom: 6px;
									font-size: 9px;
									gap: 8px;
									display: flex;
									justify-content: flex-end;

									.swatch {
										width: 10px;
										height: 10px;
									}
								}

								.chart-y-axis {
									top: 13px;
									bottom: 23px;
									font-size: 8px;
									display: flex;

									.chart-y-axis-title {
										top: -14px;
										font-size: 8px;
									}
								}

								.result-chart {
									width: max-content;
									min-width: 213px;
									height: 150px;
									margin: 0;
									overflow-x: auto;
									overflow-y: hidden;
									-webkit-overflow-scrolling: touch;

									.charts-css.column.multiple {
										width: 213px;
										max-width: none;
										--labels-size: 26px;
										--data-spacing: 0.4rem;
									}

									.charts-css.column.multiple tbody tr td {
										width: 1.4rem;
										min-width: 1.4rem;
										max-width: 1.4rem;
									}

									.charts-css.column.multiple tbody tr th {
										font-size: 8px;
										line-height: 1.2;
									}
								}

								.result-chart-sticker {
									top: 16px;
									right: 4px;
									width: 14.5rem;
									height: 5rem;
									font-size: 1.2rem;
								}
							}

							.result-desc {
								margin-top: 10px;
								font-size: 12px;
								text-align: left;
							}
						}
					}
				}
			}

			.service-divider {
				margin-top: 50px;
				clip-path: ellipse(668px 200px at 50% 200px);
				height: 40px;
			}

			@media screen and (max-width: 460px) {
				.service-divider {
					clip-path: ellipse(360px 200px at 50% 200px);
				}
			}
		}

		#voice {
			padding-top: 50px;

			.voice-title-wrap {
				margin-bottom: 48px;
				gap: 0;

				.title-en {
					font-size: 20px;
					line-height: 34px;
				}

				.title-ja {
					font-size: 26px;
					line-height: 48px;
				}
			}

			.voice-card-wrap {
				flex-direction: column;

				.card-wrap__left,
				.card-wrap__right {
					gap: 20px;
				}

				.card-wrap__right {
					margin-top: 20px;
				}

				.voice-card {
					padding: 20px;
					width: 100%;
					height: auto;
					flex-direction: column;
					align-items: center;
					gap: 20px;

					.card-text {
						padding: 0;
						font-size: 16px;
					}
				}
			}
		}

		#faq {
			.faq-divider {
				margin-top: 50px;
				clip-path: ellipse(700px 200px at 50% -170px);
				height: 30px;
			}

			@media screen and (max-width: 460px) {
				.faq-divider {
					clip-path: ellipse(450px 200px at 50% -170px);
				}
			}

			.inner {
				padding: 50px 0 50px;
			}

			.faq-title-wrap {
				margin-bottom: 48px;
				gap: 0;

				.title-en {
					font-size: 20px;
					line-height: 34px;
				}

				.title-ja {
					font-size: 26px;
					line-height: 48px;
				}
			}

			.faq-card {
				padding: 20px 20px;

				.card-question {
					font-size: 16px;
					align-items: flex-start;
				}

				.card-answer {
					font-size: 14px;
					line-height: 28px;
				}

				.card-answer::before,
				.card-question::before {
					width: 20px;
					height: 20px;
					margin-top: 5px
				}
			}

			.faq-card:not(:last-child) {
				margin-bottom: 20px;
			}
		}

		#cta {
			height: 509px;

			.inner {
				align-items: flex-start;
			}

			.cta-main {
				/* margin: 12px 10px 0;
				height: 383px;
				gap: 30px; */
				margin: 12px 10px 0;
				height: 383px;
				gap: 0;
				display: flex;
				flex-direction: column;
				justify-content: flex-start;
				padding-top: 29px;

				.cta-title {
					font-size: 30px;
					line-height: 36px;
					text-align: center;
					padding-bottom: 12px;

					.title__decorated::before {
						top: -14px;
					}
				}

				.cta-desc {
					font-size: 14px;
					line-height: 27px;
					padding-bottom: 22px;
				}

				.cta-btn-wrap {
					flex-direction: column;
					gap: 10px;

					.cta-btn {
						width: 294px;
						height: 50px;
						border-radius: 25px;

						.btn-icon {
							width: 50px;
							height: 50px;

							img {
								width: 45%;
							}
						}

						.btn-text {
							font-size: 16px;
							text-align: left;
							padding-left: 15px;

							.text-main {
								.text-small {
									font-size: 12px;
									font-weight: 700;
									line-height: 1.5;
								}
							}
						}
					}
				}
			}

			.cta-img1 {
				left: 72px;
				width: 97px;
			}

			.cta-img2 {
				right: 72px;
				width: 89px;
			}
		}

		#contact {
			padding: 50px 0;

			.contact-title-wrap {
				margin-bottom: 48px;
				gap: 0;

				.title-en {
					font-size: 20px;
					line-height: 34px;
				}

				.title-ja {
					font-size: 26px;
					line-height: 48px;
				}
			}
		}
	}
}

/* ------------------------------------------- */
/* 印刷用の設定 */
/* ------------------------------------------- */
@media print {
	html {
		font-size: calc(10 / 1920 * 100 * 14px);
	}

	body {
		-webkit-print-color-adjust: exact;
		position: relative;
		width: 1400px;
		zoom: 70%;
	}

	.about__third-text {
		margin-bottom: 250rem !important;
	}


}