/* -----------------------------------------------
= main
----------------------------------------------- */
.main {
	overflow-x: hidden;
}
/* -----------------------------------------------
= page-index
----------------------------------------------- */
.page-index {
	margin: 40px 20px 80px;
	padding: 20px 20px 10px;
	background: #f8f8f8;
	border-radius: 10px;
}
.page-index p {
	color: var(--dark-blue);
	font-family: var(--en);
	font-size: calc(1.8rem / 1.6);
}
.page-index li {
	padding-block: 15px;
}
.page-index li + li {
	border-top: 2px solid #fff;
}
.page-index li a {
	display: inline-block;
	position: relative;
	padding-left: 20px;
	font-size: calc(1.6rem / 1.6);
	font-weight: 700;
	letter-spacing: .05em;
}
.page-index li a::before {
	content: "";
	position: absolute;
	top: calc(50% - 5px);
	left: 0;
	width: 8px;
	height: 8px;
	background: var(--dark-blue);
	border-radius: 50%;
}
@media print, screen and (min-width: 768px) {/* PC */
.page-index {
	max-width: 580px;
	margin: 100px auto 150px;
	padding: 30px 30px 15px;
}
.page-index p {
	font-size: calc(2.4rem / 1.6);
}
}/* @media */
@media (hover:hover) {
.page-index li a {
	transition: color .3s;
}
.page-index li a:hover {
	color: var(--dark-blue);
}
}/* @media */
/* -----------------------------------------------
= section-sub-title
----------------------------------------------- */
.section-sub-title {
	margin-bottom: 30px;
	padding: 6px;
	color: #fff;
	background: var(--dark-blue);
	border-radius: 3em;
	font-size: calc(1.8rem / 1.6);
	font-weight: 700;
	text-align: center;
	letter-spacing: .01em;
}
/* -----------------------------------------------
= message
----------------------------------------------- */
.message .executive {
	margin-bottom: 20px;
	padding: 20px;
	background: #f8f8f8;
	border-radius: 15px;
}
.message .executive .text {
	margin-bottom: 30px;
}
.message .executive .text p {
	font-size: calc(1.6rem / 1.6);
	line-height: calc(27 / 16);
	letter-spacing: .01em;
}
.message .executive .text p + p {
	margin-top: 1.5em;
}
.message .executive .profile {
	text-align: center;
}
.message .executive .profile img {
	margin-bottom: 15px;
	max-width: 200px;
	border-radius: 8px;
}
.message .executive .profile .division {
	margin-bottom: 10px;
	font-size: calc(1.3rem / 1.6);
	line-height: calc(20 / 13);
	letter-spacing: .05em;
}
.message .executive .profile .name .jp {
	display: block;
	font-size: calc(1.8rem / 1.6);
	font-weight: 700;
	line-height: calc(26 / 15);
	letter-spacing: .05em;
}
.message .executive .profile .name .en {
	display: block;
	font-family: var(--en);
	font-size: calc(1.2rem / 1.6);
	line-height: 1;
	letter-spacing: .05em;
}
.message .item {
	padding: 20px;
	background: #eefafe;
	border-radius: 15px;
}
.message .item + .item {
	margin-top: 20px;
}
.message .item h3 {
	margin-bottom: 15px;
	font-size: calc(1.2rem / 1.6);
	font-weight: 700;
	line-height: calc(22 / 12);
	letter-spacing: .1em;
}
.message .item h3 span {
	margin-left: 5px;
	color: var(--dark-blue);
	font-size: calc(1.8rem / 1.6);
	line-height: calc(26 / 18);
	letter-spacing: .05em;
}
.message .item p,
.message .item li {
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
	letter-spacing: .01em;
}
.message .item .margin-sp-only {
	margin-top: 1.5em;
}
.message .item li {
	position: relative;
	padding-left: 20px;
}
.message .item li::before {
	content: "";
	position: absolute;
	top: .5em;
	left: 0;
	width: 6px;
	height: 6px;
	background: #fff;
	border: 2px solid var(--dark-blue);
	border-radius: 50%;
}
.message .item ul + p {
	margin-top: 10px;
}
@media print, screen and (min-width: 768px) {/* PC */
.message .executive {
	display: flex;
	align-items: end;
	padding: 40px;
	border-radius: 20px;
}
.message .executive .text {
	flex: 1;
	margin-bottom: 0;
}
.message .executive .text p {
	letter-spacing: .04em;
}
.message .executive .text p + p.margin-sp-only {
	margin-top: 0;
}
.message .executive .profile {
	width: 250px;
	text-align: right;
}
.message .executive .profile img {
	max-width: 175px;
	border-radius: 5px;
}
.message .executive .profile .division {
	margin-bottom: 10px;
	font-size: calc(1.4rem / 1.6);
	line-height: calc(21 / 14);
}
.message .executive .profile .name .jp {
	font-size: calc(2rem / 1.6);
}
.message .item {
	padding: 30px 40px;
	border-radius: 10px;
}
.message .item h3 span {
	font-size: calc(2rem / 1.6);
}
.message .item .margin-sp-only {
	margin-top: 0;
}
}/* @media */
/* -----------------------------------------------
= role
----------------------------------------------- */
.role .changes {
	margin: 60px -20px 40px;
	padding: 0 40px 30px;
	background: #cceffc;
	border-radius: 10px;
	text-align: center;
}
.role .changes h3 {
	display: inline-block;
	position: relative;
	top: -18px;
	margin-inline: -20px;
	padding: 5px 20px;
	background: #fff;
	border: 2px solid #cceffc;
	border-radius: 3em;
	font-size: calc(1.8rem / 1.6);
	font-weight: 700;
	letter-spacing: .01em;
}
.role .changes img {
	max-width: 200px;
}
.role .changes ul {
	margin-top: 20px;
}
.role .changes li {
	padding: 6.5px;
	color: #fff;
	background: var(--dark-blue);
	border-radius: 6px;
	font-size: calc(1.8rem / 1.6);
	font-weight: 700;
	letter-spacing: .05em;
}
.role .changes li + li {
	margin-top: 10px;
}
.role .flow {
	max-width: 350px;
	margin: 0 auto 40px;
}
.role .one-stop h3 {
	margin-bottom: 40px;
	font-size: calc(2rem / 1.6);
	font-weight: 700;
	letter-spacing: .05em;
	text-align: center;
}
.role .one-stop h3 span {
	color: var(--dark-blue);
}
.role .one-stop img {
	display: block;
	max-width: 350px;
	margin: 0 auto 30px;
}
.role .one-stop .item {
	display: flex;
	border: 2px solid;
	border-radius: 10px;
}
.role .one-stop .item + .item {
	margin-top: 20px;
}
.role .one-stop .item:nth-child(1) {
	border-color: #99c5ee;
}
.role .one-stop .item:nth-child(1) h4 {
	background: #99c5ee;
}
.role .one-stop .item:nth-child(2) {
	border-color: #8cd1f8;
}
.role .one-stop .item:nth-child(2) h4 {
	background: #8cd1f8;
}
.role .one-stop .item:nth-child(3) {
	border-color: #cceffc;
}
.role .one-stop .item:nth-child(3) h4 {
	background: #cceffc;
}
.role .one-stop .item:nth-child(4) {
	border-color: #b3daf5;
}
.role .one-stop .item:nth-child(4) h4 {
	background: #b3daf5;
}
.role .one-stop .item h4 {
	display: grid;
	place-content: center;
	width: 70px;
	padding: 15px;
}
.role .one-stop .item h4 span {
	display: grid;
	place-content: center;
	width: 70px;
	height: 70px;
	background: #fff;
	border-radius: 50%;
	font-size: calc(1.6rem / 1.6);
	font-weight: 700;
	line-height: calc(20 / 16);
	letter-spacing: .05em;
}
.role .one-stop .item ul {
	flex: 1;
	padding: 15px 10px 15px 15px;
	list-style-type: disc;
}
.role .one-stop .item li {
	margin-left: 1em;
	font-size: calc(1.4rem / 1.6);
	line-height: calc(21 / 14);
	letter-spacing: .05em;
}
@media print, screen and (min-width: 768px) {/* PC */
.role .changes {
	position: relative;
	margin: 70px auto 120px;
	padding: 0 40px 40px;
	border-radius: 20px;
}
.role .changes h3 {
	top: -26px;
	margin-inline: auto;
	padding: 6px 60px;
	border-width: 3px;
	font-size: calc(2.4rem / 1.6);
	letter-spacing: .05em;
}
.role .changes img {
	display: block;
	max-width: 480px;
	margin-inline: auto;
}
.role .changes ul {
	margin-top: 0;
}
.role .changes ul li {
	position: absolute;
	padding: 7px 30px;
	font-size: calc(2.4rem / 1.6);
}
.role .changes ul li:nth-child(1) {
	top: 120px;
	left: calc(50% - 40px);
}
.role .changes ul li:nth-child(2) {
	top: 207px;
	right: calc(50% + 40px);
}
.role .changes ul li:nth-child(3) {
	top: 305px;
	left: calc(50% - 16px);
}
.role .changes ul li:nth-child(4) {
	top: 373px;
	right: calc(50% + 80px);
}
.role .flow {
	max-width: 963px;
	margin-bottom: 50px;
}
.role .one-stop {
	margin-bottom: 120px;
}
.role .one-stop h3 {
	margin-bottom: 55px;
	font-size: calc(2.4rem / 1.6);
}
.role .one-stop .inner {
	position: relative;
}
.role .one-stop .img {
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
}
.role .one-stop .img img {
	max-width: 430px;
	width: calc(430 / 960 * 100%);
	margin-bottom: 0;
}
.role .one-stop .item-wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: min(86px, calc(86 / 1020 * 100vw)) 0;
}
.role .one-stop .item {
	display: flex;
	align-items: center;
	max-width: 350px;
	width: calc(350 / 960 * 100%);
	aspect-ratio: 350 / 178;
	max-height: 178px;
	border-width: min(3px, calc(3 / 1020 * 100vw));
	border-radius: 0;
}
.role .one-stop .item + .item {
	margin-top: 0;
}
.role .one-stop .item:nth-child(1) {
	border-right: none;
	border-radius: 10px 0 0 10px;
}
.role .one-stop .item:nth-child(2) {
	border-left: none;
	border-radius: 0 10px 10px 0;
}
.role .one-stop .item:nth-child(3) {
	border-right: none;
	border-radius: 10px 0 0 10px;
}
.role .one-stop .item:nth-child(4) {
	border-left: none;
	border-radius: 0 10px 10px 0;
}
.role .one-stop .item:nth-child(2) ul,
.role .one-stop .item:nth-child(4) ul {
	display: grid;
	justify-content: end;
	padding-right: 15px;
}
.role .one-stop .item h4 {
	display: none;
}
.role .one-stop .item ul {
	padding: 0 0 0 15px;
}
.role .one-stop .item li {
	font-size: clamp(calc(1.2rem / 1.6), calc(16 / 1020 * 100vw), calc(1.6rem / 1.6));
	line-height: calc(24 / 16);
	letter-spacing: .075em;
}
}/* @media */
/* -----------------------------------------------
= next
----------------------------------------------- */
.next {
	position: relative;
	margin: 80px -20px 80px;
	padding: 30px 40px;
	background: #f8f8f8;
	text-align: center;
}
.next::before {
	content: "";
	position: absolute;
	top: -40px;
	left: calc(50% - 7px);
	width: 14px;
	height: 360px;
	background: url(../img/about/role-bg-arrow.svg) no-repeat 50% 100% / auto 100%;
}
.next-in {
	display: grid;
	place-content: center;
	position: relative;
	z-index: 1;
	width: 220px;
	height: 220px;
	margin: auto;
	background: #fff;
	border-radius: 50%;
}
.next-in p {
	font-size: calc(2rem / 1.6);
	font-weight: 700;
	letter-spacing: .05em;
}
.next-in p span {
	color: var(--dark-blue);
}
@media print, screen and (min-width: 768px) {/* PC */
.next {
	margin: 60px auto 120px;
	padding: 30px;
}
.next::before {
	top: -60px;
	left: calc(50% - 10px);
	width: 20px;
	height: 480px;
}
.next::after {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 100vw;
	height: 100%;
	margin-left: -50vw;
	z-index: -1;
	background: #f8f8f8;
}
.next-in {
	width: 300px;
	height: 300px;
}
.next-in p {
	font-size: calc(2.4rem / 1.6);
	line-height: calc(38 / 24);
}
.next-in p span {
	color: var(--dark-blue);
}
}/* @media */
/* -----------------------------------------------
= possibilities
----------------------------------------------- */
.possibilities .strength .company {
	margin-bottom: 50px;
	text-align: center;
}
.possibilities .strength .company img {
	display: block;
	margin-inline: auto;
}
.possibilities .strength .company img:nth-child(1) {
	max-width: 200px;
	margin-bottom: 40px;
}
.possibilities .strength .company img:nth-child(2) {
	max-width: 40px;
	margin-bottom: 40px;
}
.possibilities .strength .company img:nth-child(3) {
	max-width: 200px;
}
.possibilities .strength ol > li {
	position: relative;
	padding: 25px 15px;
	border: 1px solid var(--dark-blue);
	border-radius: 10px;
}
.possibilities .strength ol > li + li {
	margin-top: 30px;
}
.possibilities .strength .num {
	display: inline-block;
	position: absolute;
	top: -17px;
	left: -2px;
	padding-right: 10px;
	color: var(--dark-blue);
	background: #fff;
	font-family: var(--en);
	font-size: calc(4rem / 1.6);
	font-weight: 600;
	line-height: 1;
	letter-spacing: .05em;
}
.possibilities .strength h4 {
	margin-bottom: 15px;
	color: var(--dark-blue);
	font-size: calc(1.8rem / 1.6);
	font-weight: 700;
	text-align: center;
	letter-spacing: .05em;
}
.possibilities .strength ul {
	margin-left: 1em;
	list-style-type: disc;
}
.possibilities .strength ul li {
	font-size: calc(1.3rem / 1.6);
	line-height: calc(19 / 13);
	letter-spacing: .015em;
}
.possibilities .strength ul li + li {
	margin-top: 8px;
}
.possibilities .next-in {
	width: 240px;
	height: 240px;
}
@media print, screen and (min-width: 768px) {/* PC */
.possibilities .section-sub-title {
	max-width: 488px;
	margin-inline: auto;
	padding-block: 12px;
	font-size: calc(2.4rem / 1.6);
}
.possibilities .strength .company {
	display: flex;
	justify-content: center;
	gap: 0 calc(100 / 1440 * 100vw);
	margin-block: 40px 80px;
}
.possibilities .strength .company img:nth-child(1) {
	max-width: 300px;
	margin-bottom: 0;
}
.possibilities .strength .company img:nth-child(2) {
	max-width: 60px;
	margin-bottom: 0;
}
.possibilities .strength .company img:nth-child(3) {
	max-width: 300px;
}
.possibilities .strength ol {
	display: flex;
	gap: 10px;
	margin-bottom: 120px;
}
.possibilities .strength ol > li {
	width: 164px;
	padding: 45px 10px;
}
.possibilities .strength ol > li + li {
	margin-top: 0;
}
.possibilities .strength .num {
	top: -17px;
	left: -2px;
	padding-right: 10px;
}
.possibilities .strength h4 {
	display: grid;
	place-content: center;
	min-height: 3em;
	margin-bottom: 15px;
	font-size: calc(2rem / 1.6);
	line-height: calc(27 / 20);
}
.possibilities .next-in {
	width: 300px;
	height: 300px;
}
}/* @media */
/* -----------------------------------------------
= important
----------------------------------------------- */
.important .logo img {
	display: block;
	max-width: 200px;
	margin: 0 auto 35px;
}
.important .meaning {
	margin-bottom: 75px;
}
.important .meaning p {
	font-size: calc(1.4rem / 1.6);
	line-height: calc(28 / 14);
	letter-spacing: .01em;
	text-align: center;
}
.important .meaning p + p {
	margin-top: 2em;
}
.important .item {
	margin-inline: -20px;
	padding: 0 20px 30px;
	background: #f8f8f8;
	border-radius: 10px;
}
.important .item + .item {
	margin-top: 36px;
}
.important .item h3 {
	text-align: center;
}
.important .item h3 .en {
	display: block;
	position: relative;
	top: -16px;
	max-width: 140px;
	margin-inline: auto;
	padding: 5px 0 3px;
	color: #fff;
	background: var(--dark-blue);
	border-radius: 3em;
	font-family: var(--en);
	font-size: calc(1.6rem / 1.6);
	font-weight: 600;
	letter-spacing: .05em;
}
.important .item h3 .jp {
	display: block;
	margin-bottom: 12px;
	font-size: calc(1.8rem / 1.6);
	font-weight: 700;
	letter-spacing: .05em;
}
.important .item.mission p,
.important .item li {
	padding: 20px;
	background: #fff;
	border-radius: 6px;
	font-size: calc(1.6rem / 1.6);
	font-weight: 700;
	letter-spacing: .01em;
}
.important .item p span,
.important .item li span {
	color: var(--dark-blue);
}
.important .item.vision li {
	display: flex;
}
.important .item li + li {
	margin-top: 15px;
}
.important .item li .num {
	width: 1.1em;
	font-family: var(--en);
	font-size: calc(3rem / 1.6);
	font-weight: 600;
}
.important .item.vision li .text {
	flex: 1;
	margin-top: .7em;
	font-weight: 700;
}
.important .item.value {
	margin-bottom: 40px;
}
.important .item.value li {
	display: grid;
	grid-template-columns: calc(3.3rem / 1.6) 1fr;
}
.important .item.value li .num {
	grid-row: span 2;
	color: var(--dark-blue);
}
.important .item.value li .title {
	margin-block: .5em 10px;
	color: var(--dark-blue);
	font-size: calc(1.8rem / 1.6);
	line-height: calc(24 / 18);
	font-weight: 700;
}
.important .item.value li .title span {
	font-size: calc(1.4rem / 1.6);
}
.important .item.value li .text {
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
}
.important .item.value li .text span {
	color: var(--black);
	font-size: calc(1.2rem / 1.6);
	line-height: calc(20 / 12);
}
.important .promise {
	margin-bottom: 35px;
}
.important .btn-promise {
	position: relative;
	width: 100%;
	padding: 14px;
	background: #d8effb;
	border-radius: 6px;
	font-size: calc(1.6rem / 1.6);
	font-weight: 700;
	text-align: center;
	letter-spacing: .05em;
}
.important .btn-promise::before,
.important .btn-promise::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
	width: 12px;
	height: 1px;
	background: var(--black);
	border-radius: .5px;
}
.important .btn-promise::after {
	transform: rotate(90deg);
}
.important .btn-promise.is-active::after {
	display: none;
}
.important .promise .inner {
	padding-top: 25px;
}
.important .movie iframe {
	width: 100%;
	height: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 6px;
}
@media print, screen and (min-width: 768px) {/* PC */
.important .section-sub-title {
	max-width: 488px;
	margin-inline: auto;
	padding-block: 12px;
	font-size: calc(2.4rem / 1.6);
}
.important .meaning .inner {
	display: flex;
	justify-content: center;
	gap: 0 20px;
}
.important .logo {
	width: calc(50% - 30px);
}
.important .logo img {
	max-width: 319px;
	margin-bottom: 0;
}
.important .meaning p {
	font-size: calc(1.6rem / 1.6);
	font-weight: 700;
	letter-spacing: .1em;
	text-align: left;
}
.important .item {
	max-width: 840px;
	margin-inline: auto;
	padding: 0 20px 40px;
	border-radius: 20px;
}
.important .item + .item {
	margin-top: 62px;
}
.important .item h3 .en {
	max-width: 175px;
	margin-bottom: 10px;
	padding: 4px 0 2px;
	font-size: calc(1.8rem / 1.6);
}
.important .item h3 .jp {
	margin-bottom: 30px;
	font-size: calc(2.2rem / 1.6);
}
.important .item.mission p,
.important .item li {
	max-width: 580px;
	margin-inline: auto;
	padding: 30px;
	border-radius: 10px;
	font-size: calc(1.8rem / 1.6);
	line-height: calc(28 / 18);
	letter-spacing: .05em;
}
.important .item.mission p {
	text-align: center;
}
.important .item li .num {
	width: 1.3em;
}
.important .item.vision li {
	padding-block: 22px;
}
.important .item.vision li .text {
	margin-top: .4em;
}
.important .item.value {
	margin-bottom: 60px;
}
.important .item.value li {
	grid-template-columns: calc(3.8rem / 1.6) 1fr;
}
.important .item.value li .text {
	font-size: calc(1.6rem / 1.6);
	line-height: calc(28 / 16);
}
.important .promise {
	max-width: 880px;
	margin: 0 auto 60px;
}
.important .btn-promise {
	padding: 25px;
	border-radius: 10px;
	font-size: calc(2rem / 1.6);
}
.important .btn-promise::before,
.important .btn-promise::after {
	right: 30px;
	width: 16px;
	height: 2px;
	border-radius: 1px;
}
.important .promise .inner {
	padding-top: 60px;
	text-align: center;
}
.important .movie .section-sub-title {
	margin-bottom: 40px;
}
.important .movie .embed {
	max-width: 880px;
	margin-inline: auto;
}
.important .movie iframe {
	border-radius: 10px;
}
}/* @media */
/* -----------------------------------------------
= btn-entry-career
----------------------------------------------- */
.btn-entry-career {
	margin-block: 80px 100px;
}
@media print, screen and (min-width: 768px) {/* PC */
.btn-entry-career {
	margin-block: 120px 150px;
}
}/* @media */
