@charset "utf-8";
/*
 introduction/about.css
*/
.page_title .img img {
	object-position: 50% 90%;
}
/* -----------------------------------------------
= contents
----------------------------------------------- */
.contents {
	background: url(../../img/introduction/about_bg_contents_sp.png) no-repeat left 0 bottom 53.5rem / 100% auto;
}
@media print, screen and (min-width: 768px) {/* PC */
.contents_wrap {
	position: relative;
	overflow: clip;
}
.contents_wrap::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -3;
	background: url(../../img/introduction/about_bg_contents_wrap01_pc.png) no-repeat 50% 91.2rem / 164rem auto;
}
.contents_wrap::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -3;
	background: url(../../img/introduction/about_bg_contents_wrap02_pc.png) no-repeat 50% 100% / 157.5rem auto;
}
.contents {
	background: transparent;
}
}/* @media */
/* -----------------------------------------------
= title
----------------------------------------------- */
.title {
	margin-bottom: 3rem;
}
.title .en {
	display: block;
	margin-bottom: 1rem;
	color: #D6082E;
	font-family: "Lato", sans-serif;
	font-size: 1.4rem;
}
.title .jp {
	display: block;
	font-size: 3rem;
	line-height: 3.6rem;
	letter-spacing: .02em;
}
@media print, screen and (min-width: 768px) {/* PC */
.title {
	margin-bottom: 6rem;
}
.title .en {
	margin-bottom: 1rem;
	font-size: 1.8rem;
}
}/* @media */
/* -----------------------------------------------
= about
----------------------------------------------- */
.about {
	margin-top: -6rem;
	padding: 16rem 1.5rem 6rem;
}
.about .text {
	margin-bottom: 5rem;
	font-size: 1.6rem;
	line-height: 3.2rem;
	letter-spacing: .02em;
}
.about .box h3 {
	margin-bottom: 3rem;
	text-align: center;
}
.about .box h3 img {
	width: 22.6rem;
}
.about .box .item_wrap {
	margin-bottom: 2.5rem;
}
.about .box .item {
	margin-bottom: 1.5rem;
	padding: 3rem 3rem 2.5rem;
	background: #fff;
	border-radius: 1rem;
}
.about .box .item h4 {
	margin-bottom: 2rem;
	text-align: center;
}
.about .box .item h4 img {
	width: auto;
	height: 3rem;
}
.about .box .item p {
	font-size: 1.4rem;
	line-height: 2.8rem;
	letter-spacing: .02em;
}
.more {
	text-align: center;
}
.more dt {
	margin-bottom: 1rem;
	font-size: 1.4rem;
	line-height: 2.8rem;
	letter-spacing: .02em;
}
.more dd a {
	display: inline-block;
	position: relative;
	padding: 0 3rem 0 1.5rem;
	color: #D6082E;
	background: #fff;
	border: 1px solid #D6082E;
	border-radius: 3em;
	font-family: "Lato", sans-serif;
	font-size: 1rem;
	line-height: 2.1rem;
	letter-spacing: .02em;
}
.more dd a::before {
	content: '';
	position: absolute;
	top: 0;
	right: 1.5rem;
	width: 1rem;
	height: 100%;
	background: url(../../img/shared/icon_more_arrow.svg) no-repeat 50% / 100% auto;
}
@media print, screen and (min-width: 768px) {/* PC */
.about {
	margin-top: -8rem;
	padding: 9rem 4rem 7.8rem 0;
}
.about .text {
	margin-bottom: 5.5rem;
	line-height: 3.6rem;
}
.about .box h3 {
	margin-bottom: 4.5rem;
}
.about .box h3 img {
	width: 26rem;
}
.about .box .item_wrap {
	display: flex;
	margin: 0 -1rem 4rem;
}
.about .box .item {
	width: 100%;
	margin: 0 1rem;
	padding: 3.5rem 2rem 3rem;
}
.more dt {
	margin-bottom: 2rem;
	font-size: 1.6rem;
	line-height: 3rem;
}
.more dd a {
	padding: 0 5rem 0 2.5rem;
	font-size: 1.4rem;
	line-height: 2.8rem;
}
.more dd a:hover {
	color: #fff;
	background: #D6082E;
}
.more dd a::before {
	right: 2rem;
	width: 1.8rem;
	background: url(../../img/shared/icon_more_arrow_pc.svg) no-repeat 50% / 100% auto;
}
.more dd a::after {
	content: '';
	position: absolute;
	top: 0;
	right: 2rem;
	width: 1.8rem;
	height: 100%;
	background: url(../../img/shared/icon_more_arrow_pc_hover.svg) no-repeat 50% / 100% auto;
	opacity: 0;
}
.more dd a:hover::after {
	opacity: 1;
}
}/* @media */
/* -----------------------------------------------
= purpose
----------------------------------------------- */
.purpose {
	position: relative;
	margin-top: -6rem;
	padding: 10.5rem 1.5rem 7.4rem;
}
.purpose::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	background: url(../../img/introduction/about_purpose_bg_sp.png) no-repeat 50% 0 / 100% auto;
}
.purpose::after {
	content: '';
	position: absolute;
	top: 74.4rem;
	right: 0;
	z-index: -1;
	width: calc(320 / 390 * 100vw);
	height: calc(445 / 390 * 100vw);
	background: url(../../img/introduction/about_purpose_img01.png) no-repeat 41% 0 / cover;
	opacity: .4;
}
.purpose .title .sub {
	display: block;
	margin-top: 4rem;
}
.purpose .title .sub img {
	width: 19.4rem;
}
.purpose h3 {
	font-size: 2rem;
	line-height: 3.4rem;
	letter-spacing: .02em;
}
.purpose .text {
	margin-top: 3.4rem;
	font-size: 1.6rem;
	line-height: 3.2rem;
	letter-spacing: .02em;
}
@media print, screen and (min-width: 768px) {/* PC */
.purpose {
	margin-top: -8rem;
	padding: 12rem 4rem 6rem 0;
}
.purpose::before {
	display: none;
}
.purpose::after {
	top: 49.8rem;
	width: 62rem;
	height: 43.8rem;
}
.purpose .title .sub img {
	width: 40.6rem;
}
.purpose h3 {
	margin-bottom: 2.5rem;
	font-size: 2.6rem;
	line-height: 3.6rem;
}
.purpose .text {
	margin-bottom: 3.8rem;
	line-height: 3.6rem;
}
}/* @media */
/* -----------------------------------------------
= history
----------------------------------------------- */
.history {
	margin-top: -6rem;
	padding: 9rem 0 6rem 1.5rem;
}
.history .swiper-wrapper {
	padding: 2.8rem 0 0;
}
.history .item {
	position: relative;
	width: 22.8rem;
	margin-right: 1rem;
	margin-bottom: 4rem;
	padding: 3rem 2rem;
	background: #fff;
	border: 1px solid #D6082E;
	border-radius: 1rem;
	letter-spacing: .02em;
}
.history .item::before {
	content: '';
	position: absolute;
	top: -2.1rem;
	left: -.5rem;
	width: calc(100% + 1.2rem);
	height: 2px;
	background: #D6082E;
}
.history .item.swiper-slide:first-child::before {
	left: calc(50% + .8rem);
	width: calc(50% + 1rem);
	width: 50%;
}
.history .item.swiper-slide:last-child::before {
	left: -1.2rem;
	width: calc(50% + .8rem);
}
.history .item::after {
	content: '';
	position: absolute;
	top: -2.8rem;
	left: calc(50% - .8rem);
	width: 1.6rem;
	height: 2.8rem;
	background: url(../../img/introduction/about_purpose_circle.svg) no-repeat 50% 0 / 100% auto;
}
.history .item .year {
	margin-bottom: 1rem;
	color: #D6082E;
	font-family: "Lato", sans-serif;
	font-size: 1.8rem;
	text-align: center;
}
.history .item h3 {
	margin-bottom: 1rem;
	font-size: 1.6rem;
	line-height: 3rem;
	text-align: center;
}
.history .item p {
	font-size: 1.4rem;
	line-height: 2.8rem;
}
.history .swiper .swiper-slide {
	height: auto;
}
.history .swiper .swiper-slide-item {
	height: 100%;
}
.history .swiper-button-prev,
.history .swiper-button-next {
	top: calc(50% - 3.2rem);
	width: 6.4rem;
	height: 6.4rem;
}
.history .swiper-button-prev::after,
.history .swiper-button-next::after {
	width: 100%;
	height: 100%;
	background: url(../../img/shared/icon_circle_arrow.svg) no-repeat 50% / cover;
	font-size: 0;
	opacity: .9;
}
.history .swiper-button-prev::after {
	transform: rotate(180deg);
}
.history .swiper-button-disabled {
	opacity: 0;
}
.history .intro {
	padding: 4rem 1.5rem 0 0;
}
.history .intro .type_ttl {
	position: relative;
	margin-bottom: 2rem;
	padding-left: 1.8rem;
	color: #D6082E;
	font-size: 1.5rem;
	line-height: 2.4rem;
}
.history .intro .type_ttl::before {
	content: '';
	position: absolute;
	top: .4rem;
	left: .2rem;
	width: .8rem;
	height: 100%;
	background: url(../../img/shared/icon_title_arrow.svg) no-repeat 0 0 / 100% auto;
}
.history .intro .movie iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}
@media print, screen and (min-width: 768px) {/* PC */
.history {
	margin-top: -8rem;
	padding: 12rem 0 10rem 0;
}
.history .swiper-wrapper {
	padding: 4.1rem 0 0;
}
.history .item {
	width: 26rem;
	margin-right: 2rem;
	margin-bottom: 6rem;
	padding: 3rem 2rem;
}
.history .item::before {
	top: -3.2rem;
	left: -1rem;
	width: calc(100% + 2.2rem);
}
.history .item.swiper-slide:first-child::before {
	width: calc(50% + 2rem);
}
.history .item.swiper-slide:last-child::before {
	left: -2.2rem;
	width: calc(50% + 2rem);
}
.history .item::after {
	top: -4.1rem;
	left: calc(50% - 1rem);
	width: 2rem;
	height: 4.1rem;
}
.history .swiper-button-prev,
.history .swiper-button-next {
	top: calc(50% - 4.7rem);
	right: 4rem;
	width: 9.4rem;
	height: 9.4rem;
}
.history .swiper-button-prev::after,
.history .swiper-button-next::after {
	background: url(../../img/shared/icon_circle_arrow_pc.svg) no-repeat 50% / cover;
}
.history .swiper-button-prev:hover,
.history .swiper-button-next:hover {
	opacity: .8;
}
.history .swiper-scrollbar {
	left: 0;
	max-width: 85rem;
}
.history .intro {
	padding: 4rem 4rem 0 0;
}
}/* @media */
/* -----------------------------------------------
= features
----------------------------------------------- */
.features {
	margin-top: -6rem;
	padding: 10rem 1.5rem 3rem;
	background: #fff;
	border-radius: 2rem;
}
.features .item {
	margin-bottom: 1rem;
}
.features .item a {
	display: block;
	position: relative;
	color: #fff;
	border-radius: .5rem;
}
.features .item a::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(41,41,41,.56);
	border-radius: .5rem;
}
.features .item a .num {
	display: flex;
	align-items: center;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	padding: 0 2rem .4rem 0;
	height: 2.3rem;
	color: #D6082E;
	background: #fff;
	border-radius: 0 0 .5rem 0;
}
.features .item a .num::before,
.features .item a .num::after {
	content: '';
	position: absolute;
	width: .5rem;
	height: .5rem;
	background: url(../../img/shared/bg_round_white.svg) no-repeat 50% / cover;
	transform: rotate(90deg);
}
.features .item a .num::before {
	bottom: -.5rem;
	left: 0;
}
.features .item a .num::after {
	top: 0;
	right: -.5rem;
}
.features .item a .num span:first-child {
	padding-right: .8rem;
	font-family: "Lato", sans-serif;
	font-size: 1.2rem;
}
.features .item a .num span:last-child {
	padding-left: .8rem;
	border-left: 1px solid #D6082E;
	font-size: 1.4rem;
}
.features .item a .text {
	display: grid;
	place-content: center;
	position: absolute;
	bottom: 0;
	z-index: 1;
	width: 100%;
	height: calc(100% - 2.7rem);
	font-size: 1.6rem;
	line-height: 2.8rem;
	text-align: center;
	letter-spacing: .02em;
}
.features .item a .text::before {
	content: '';
	position: absolute;
	right: 1rem;
	bottom: 1rem;
	z-index: 1;
	width: 3rem;
	height: 3rem;
	background: url(../../img/introduction/about_icon_features.svg) no-repeat 50% / cover;
}
.features .item a img {
	height: 13.2rem;
	object-fit: cover;
	border-radius: .5rem;
}
@media print, screen and (min-width: 768px) {/* PC */
.features {
	position: relative;
	margin-top: -8rem;
	padding: 12rem 4rem 3rem 0;
	background: transparent;
}
.features::before,
.features::after {
	content: '';
	position: absolute;
	top: 0;
	z-index: -1;
	width: calc(50vw + 50rem);
	width: 50vw;
	height: 100%;
	background: #fff;
}
.features::before {
	left: 24rem;
	border-radius: 0 5rem 5rem 0;
}
.features::after {
	right: 63.1rem;
	border-radius: 5rem 0 0 5rem;
}
.features .item_wrap {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -1.5rem;
}
.features .item {
	width: calc(50% - 3rem);
	margin: 0 1.5rem 3rem;
}
.features .item.num02 {
	margin-top: 7.6rem;
}
.features .item.num03 {
	margin-top: -7.6rem;
}
.features .item.num05 {
	margin-top: -7.6rem;
}
.features .item a {
	border-radius: 1rem;
}
.features .item a:hover {
	color: #292929;
}
.features .item a::after {
	border-radius: 1rem;
	transition: background .3s;
}
.features .item a:hover::after {
	background: rgba(255,255,255,.7);
}
.features .item a .num {
	height: 3.2rem;
	border-radius: 0 0 1rem 0;
}
.features .item a .num::before,
.features .item a .num::after {
	width: 1rem;
	height: 1rem;
}
.features .item a .num::before {
	bottom: -1rem;
}
.features .item a .num::after {
	right: -1rem;
}
.features .item a .num span:first-child {
	padding-right: .8rem;
	font-size: 1.6rem;
}
.features .item a .num span:last-child {
	padding-left: .8rem;
	font-size: 1.8rem;
}
.features .item a .text {
	height: calc(100% - 3.2rem);
	font-size: 1.8rem;
	line-height: 3rem;
}
.features .item a .text::before {
	right: 1.5rem;
	bottom: 1.5rem;
	width: 3.6rem;
	height: 3.6rem;
}
.features .item a:hover .text::before {
	opacity: 0;
}
.features .item a .text::after {
	content: '';
	position: absolute;
	right: 1.5rem;
	bottom: 1.5rem;
	z-index: 1;
	width: 3.6rem;
	height: 3.6rem;
	background: url(../../img/introduction/about_icon_features_hover.svg) no-repeat 50% / cover;
	opacity: 0;
}
.features .item a:hover .text::after {
	opacity: 1;
}
.features .item a img {
	height: auto;
	border-radius: 1rem;
}
}/* @media */
/* -----------------------------------------------
= modal
----------------------------------------------- */
.modal {
	max-height: 100svh !important;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
}
.modal_contents {
	position: relative;
	margin: 2rem;
	padding: 0 0 3rem;
	background: #F4F4F4;
	border-radius: .5rem;
}
.modal_close {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 2;
	width: 4rem;
	height: 4rem;
	background: #F4F4F4;
	border-radius: 0 .5rem 0 .5rem;
}
.modal_close::before,
.modal_close::after {
	content: '';
	position: absolute;
	width: .5rem;
	height: .5rem;
	background: url(../../img/shared/bg_round_gray.svg) no-repeat 50% / cover;
	transform: rotate(180deg);
}
.modal_close::before {
	top: 0;
	left: -.5rem;
}
.modal_close::after {
	bottom: -.5rem;
	right: 0;
}
.modal_close a {
	display: block;
	width: 100%;
	height: 100%;
	background: url(../../img/introduction/modal_close.svg) no-repeat 50% / 1.8rem auto;
	cursor: pointer;
}
.modal_close span {
	display: none;
}
.modal_head .img img {
	border-radius: .5rem;
}
.modal_head .set {
	padding: 3rem 2rem 2rem;
}
.modal_num {
	display: flex;
	align-items: center;
	margin-bottom: 2rem;
	color: #D6082E;
}
.modal_num span:first-child {
	padding-right: .8rem;
	font-family: "Lato", sans-serif;
	font-size: 1.2rem;
}
.modal_num span:last-child {
	padding-left: .8rem;
	border-left: 1px solid #D6082E;
	font-size: 1.4rem;
}
.modal_title {
	font-size: 1.8rem;
	line-height: 3rem;
	letter-spacing: .02em;
}
.modal_text {
	margin: 0 2rem;
	font-size: 1.4rem;
	line-height: 2.8rem;
	letter-spacing: .02em;
}
.modal_text sup {
	font-size: 1rem;
	vertical-align: top;
}
.modal_note {
	margin: 1em 2rem 0;
	font-size: 1.2rem;
	line-height: 2.6rem;
	letter-spacing: .02em;
}
.lity-close {
	display: none;
}
@media print, screen and (min-width: 768px) {/* PC */
.modal_contents {
	position: relative;
	width: 85rem;
	margin: 2rem auto;
	padding: 2.5rem;
	border-radius: 1rem;
}
.modal_close {
	top: 2.5rem;
	right: 2.5rem;
	width: 5rem;
	height: 5rem;
	border-radius: 0 1rem 0 1rem;
}
.modal_close a:hover {
	opacity: .8;
}
.modal_close::before,
.modal_close::after {
	width: 1rem;
	height: 1rem;
}
.modal_close::before {
	left: -1rem;
}
.modal_close::after {
	bottom: -1rem;
}
.modal_close a {
	background-position: 100% 0;
	background-size: 3.2rem auto;
}
.modal_head {
	display: flex;
	margin-bottom: 2rem;
}
.modal_head .img {
	order: 2;
	width: 41rem;
}
.modal_head .img img {
	border-radius: 1rem;
}
.modal_head .set {
	flex: 1;
	order: 1;
	padding: 0 5rem 0 0;
}
.modal_num {
	margin-bottom: 5rem;
}
.modal_num span:first-child {
	padding-right: 1rem;
	font-size: 1.6rem;
}
.modal_num span:last-child {
	padding-left: 1rem;
	font-size: 1.8rem;
}
.modal_title {
	font-size: 2rem;
	line-height: 3.6rem;
}
.modal_text {
	margin: 0;
	font-size: 1.6rem;
	line-height: 3.6rem;
}
.modal_text sup {
	font-size: 1.2rem;
}
.modal_note {
	margin: 1em 0 0;
	font-size: 1.4rem;
	line-height: 2.8rem;
}
}/* @media */
/* -----------------------------------------------
= vision
----------------------------------------------- */
.vision {
	margin-top: -6rem;
	padding: 12rem 1.5rem 0;
}
.vision .subtitle {
	margin-bottom: 3rem;
	font-size: 2rem;
	line-height: 3.4rem;
	letter-spacing: .02em;
}
.vision .img01 {
	margin-bottom: 3rem;
}
.vision .img02 {
	margin-bottom: 6rem;
}
.vision .img03 {
	margin-bottom: 3rem;
}
.vision img {
	border-radius: 1rem;
}
.vision .text {
	margin: 0 .5rem 3rem;
	font-size: 1.6rem;
	line-height: 3.2rem;
	letter-spacing: .02em;
}
.vision .column {
	margin: 0 -1.5rem;
	padding: 10rem 1.5rem 6rem;
	background: url(../../img/introduction/about_column_bg_sp.png) no-repeat 50% 5rem / 100% auto;
}
.vision .column .title {
	margin-bottom: 6rem;
	text-align: center;
}
@media print, screen and (min-width: 768px) {/* PC */
.vision {
	margin-top: -8rem;
	padding: 18rem 4rem 0 0;
}
.vision .title {
	margin-bottom: 7rem;
}
.vision .set {
	position: relative;
	margin-bottom: 4rem;
}
.vision .set .img01 {
	position: absolute;
	top: 0;
	right: 0;
	max-width: 35rem;
}
.vision .img04 {
	margin-bottom: 3rem;
}
.vision .set .subtitle {
	margin-right: 38.5rem;
}
.vision .set .text {
	margin: 0 38.5rem 0 0;
}
.vision .subtitle {
	font-size: 2.6rem;
}
.vision .text {
	margin: 0 0 4rem;
	line-height: 3.6rem;
}
.vision .column {
	margin: 0;
	padding: 16rem 4rem 5rem;
	background: transparent;
}
.vision .column .title {
	margin-bottom: 4rem;
}
}/* @media */
