/* -----------------------------------------------
= kv
----------------------------------------------- */
.kv {
	position: relative;
}
.kv h2 {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 100%;
	z-index: 2;
	font-size: calc(2.3rem / 1.6);
	font-family: var(--fontB);
	font-weight: bold;
	line-height: 1.435;
	text-align: center;
	text-shadow: 2px 2px 15px #fff,
	-2px 2px 15px #fff,
	2px -2px 15px #fff,
	-2px -2px 15px #fff,
	2px 2px 15px #fff,
	-2px 2px 15px #fff,
	2px -2px 15px #fff,
	-2px -2px 15px #fff;
}
.kv .swiper a {
	display: block;
}
.kv .swiper {
	padding-bottom: 22px;
}
.kv .swiper-pagination {
	top: auto !important;
	bottom: 0 !important;
}
.kv .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
.kv .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
	margin: 0 5px;
}
.kv .swiper-pagination-bullet {
	width: 40px;
	height: 7px;
	background: #eae5e0;
	border-radius: 3.5px;
	opacity: 1;
}
.kv .swiper-pagination-bullet-active {
	background: var(--red);
}
.kv .swiper img {
	height: 500px;
	object-fit: cover;
	object-position: 50%;
}
@media print, screen and (min-width: 768px) {/* PC */
.kv .swiper {
	padding-bottom: 27px;
}
.kv .swiper img {
	max-height: 600px;
	height: calc(100vh - 255px);
}
.kv h2 {
	font-size: calc(4.6rem / 1.6);
}
}/* @media */
/* -----------------------------------------------
= subtitle
----------------------------------------------- */
.subtitle {
	position: relative;
	margin-bottom: 30px;
	padding-bottom: 15px;
	font-family: var(--fontB);
	font-weight: bold;
	text-align: center;
}
.subtitle::after {
	content: "";
	position: absolute;
	left: calc(50% - 45px);
	bottom: 0;
	width: 90px;
	height: 6px;
	background: url(../img/shared/title_bg.png) no-repeat 0 0 / auto 100%;
}
.subtitle .jp {
	display: block;
	margin-bottom: 5px;
	font-size: calc(2.5rem / 1.6);
}
.subtitle .en {
	display: block;
	color: var(--red);
	font-size: calc(1.3rem / 1.6);
}
@media print, screen and (min-width: 768px) {/* PC */
.subtitle {
	margin-bottom: 50px;
	padding-bottom: 20px;
}
.subtitle::after {
	left: calc(50% - 73px);
	width: 145px;
	height: 10px;
}
.subtitle .jp {
	font-size: calc(4rem / 1.6);
}
.subtitle .en {
	font-size: calc(1.6rem / 1.6);
}
}/* @media */
/* -----------------------------------------------
= news
----------------------------------------------- */
.news {
	margin-top: -22px;
	padding: 50px 18px 40px;
	background: url(../img/index/news_bg_sp.jpg) no-repeat 50% 0 / 100% auto;
}
.news .subtitle {
	margin-bottom: 15px;
	padding-bottom: 0;
}
.news .subtitle::after {
	display: none;
}
.news .list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0 10px;
	margin-bottom: 20px;
}
.news .list button {
	position: relative;
	width: 100%;
	padding: 3px 0;
	background: #fff;
	border: 1px solid;
	border-radius: 3em;
	box-shadow: 0 2px 0 #e3e3e3;
	font-size: calc(1.3rem / 1.6);
	font-family: var(--fontB);
	font-weight: bold;
	text-align: center;
}
.news .list button:hover,
.news .list button.is-active {
	color: #fff !important;
}
.news .list button:hover,
.news .list button.is-active {
	background: #de5665;
}
.news .list button.js-tab__all {
	color: var(--red);
	border-color: #de5665;
}
.news .list button.js-tab__all::after {
	background: var(--red);
}
.news .list button::after {
	content: "";
	position: absolute;
	top: calc(50% - 3px);
	right: 10px;
	width: 7px;
	height: 6px;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.news .list button:hover::after,
.news .list button.is-active::after {
	background: #fff !important;
}
.news_cont {
	margin-bottom: 30px;
}
.news_cont ul {
	display: none;
}
.news_cont ul.is-active {
    display: block;
}
.news_cont li {
	border-top: 1px dashed #ddd;
}
.news_cont li:last-child {
	border-bottom: 1px dashed #ddd;
}
.news_cont li a {
	display: block;
	padding: 14px 0;
}
.news_cont time {
	display: inline-block;
	margin-right: 5px;
	margin-bottom: 10px;
	color: #666;
	font-size: calc(1.3rem / 1.6);
}
.news_cont .category {
	display: inline-block;
	min-width: 55px;
	margin-bottom: 10px;
	padding: 3px 5px;
	color: #fff;
	border-radius: 3em;
	font-size: calc(1.1rem / 1.6);
	font-family: var(--fontM);
	font-weight: 600;
	text-align: center;
	line-height: 1;
}
.news_cont .text {
	font-size: calc(1.3rem / 1.6);
}
@media print, screen and (min-width: 768px) {/* PC */
.news {
	margin: 0;
	padding: 40px 20px 60px;
	background: url(../img/index/news_bg_pc.jpg) no-repeat 50% 37px / 1500px auto;
}
.news .inner {
	display: grid;
	grid-template-columns: calc(17rem / 1.6) auto;
	grid-template-rows: auto 1fr;
	gap: 0 40px;
	max-width: 1100px;
	margin: 0 auto;
}
.news .subtitle {
	grid-column: 1 / 2;
	grid-row: 1 / 2;
	margin-bottom: 30px;
	text-align: left;
}
.news .list {
	grid-column: 1 / 2;
	grid-row: 2 / 3;
	display: block;
	margin-bottom: 0;
}
.news .list button {
	margin: 0 0 19px;
	padding: 5px 0;
	box-shadow: 0 4px 0 #e3e3e3;
	font-size: calc(1.8rem / 1.6);
}
.news .list button::after {
	top: calc(50% - 3px);
	right: 14px;
	width: 9px;
	height: 8px;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.news_cont {
	grid-column: 2 / 3;
	grid-row: 1 / 3;
}
.news_cont ul {
	margin: 10px 0;
}
.news_cont li a {
	display: flex;
	align-items: center;
	padding: 22px 0 22px 20px;
}
.news_cont time {
	margin-right: 20px;
	margin-bottom: 0;
	font-size: calc(1.6rem / 1.6);
}
.news_cont .category {
	min-width: calc(7rem / 1.6);
	margin-right: 20px;
	margin-bottom: 0;
	font-size: calc(1.4rem / 1.6);
}
.news_cont .text {
	font-size: calc(1.6rem / 1.6);
}
.news_cont .text:hover {
	color: var(--red);
	text-decoration: underline;
}
}/* @media */
/* -----------------------------------------------
= about
----------------------------------------------- */
.about {
	position: relative;
	margin-top: -40px;
	padding: 50px 20px 30px;
	background: url(../img/index/about_bg01_sp.png) no-repeat 50% 0 / 100% auto;
	overflow: hidden;
}
.about::before {
	content: "";
	position: absolute;
	top: 30px;
	left: 0;
	bottom: 55px;
	z-index: -1;
	width: 100%;
	height: calc(100% - 85px);
	background: repeating-linear-gradient(90deg, #fbf8f4, #fbf8f4 5px, #fdfcfa 5px, #fdfcfa 10px);
}
.about::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: -1;
	width: 72px;
	height: 94px;
	background: url(../img/index/about_bg02_sp.png) no-repeat 50% 0 / 100% auto;
}
.about .subtitle {
	margin: 25px 0 20px;
	color: var(--red);
}
.about .subtitle::after {
	left: calc(50% - 75px);
	width: 148px;
}
.about .item {
	background: #fff;
}
.about .item a {
	display: block;
}
.about .item:first-child {
	margin-right: -20px;
	padding-bottom: 40px;
	border-radius: 15px 0 0 15px;
}
.about .item + .item {
	margin: 20px 0 0;
}
.about .item + .item {
	border-radius: 15px;
	box-shadow: 0 3px 0 #e5e5e5;
}
.about .item + .item a {
	padding-bottom: 15px;
	border-radius: 15px;
}
.about .item:first-child img {
	border-radius: 15px 0 0 15px;
}
.about .item + .item img {
	border-radius: 15px 15px 0 0;
}
.about .item .text {
	margin: 0 20px 30px;
	font-size: calc(1.3rem / 1.6);
	line-height: 1.7;
}
.about .item .link {
	position: relative;
	margin-top: 15px;
	color: var(--red);
	font-size: calc(1.6rem / 1.6);
	font-family: var(--fontB);
	font-weight: bold;
	text-align: center;
}
.about .item .link::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	width: 17px;
	height: 17px;
	background: url(../img/shared/icon_nav_arrow.svg) no-repeat 50% / cover;
	filter: var(--filterRed);
}
@media print, screen and (min-width: 768px) {/* PC */
.about {
	margin-top: -100px;
	padding: 140px 100px 124px;
	background: url(../img/index/about_bg01_pc.png) no-repeat 50% 0 / 1500px auto;
}
.about::before {
	top: 100px;
	bottom: 164px;
	height: calc(100% - 264px);
}
.about::after {
	right: auto;
	left: calc(50% + 447px);
	width: 265px;
	height: 265px;
	background: url(../img/index/about_bg02_pc.png) no-repeat 50% 0 / 100% auto;
}
.about .subtitle::after {
	left: 0;
	width: 235px;
}
.about .inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	max-width: 1100px;
	margin: 0 auto;
}
.about .subtitle {
	margin: 0 0 30px;
	text-align: left;
}
.about .subtitle::after {
	left: 0;
}
.about .item:first-child {
	grid-column: 1 / 3;
	grid-row: 1 / 2;
	margin-right: -100px;
}
.about .item:nth-child(2) {
	grid-column: 1 / 2;
	grid-row: 2 / 3;
}
.about .item:nth-child(3) {
	grid-column: 2 / 3;
	grid-row: 2 / 3;
}
.about .item:first-child {
	display: flex;
	border-radius: 35px 0 0 35px;
}
.about .item:first-child .img {
	order: 2;
	width: calc(630 / 1200 * 100%);
}
.about .item:first-child .set {
	order: 1;
	flex: 1;
	padding: 30px 30px 0 40px;
}
.about .item:first-child .btn {
	margin: 0;
}
.about .item:first-child img {
	border-radius: 0 0 0 20px;
}
.about .item + .item {
	margin: 0;
}
.about .item + .item {
	border-radius: 22px 22px 15px 15px;
	box-shadow: 0 4px 0 #e5e5e5;
}
.about .item + .item a {
	padding-bottom: 20px;
	border-radius: 22px 22px 15px 15px;
}
.about .item + .item .img {
	border-radius: 20px 20px 0 0;
	overflow: hidden;
}
.about .item + .item img {
	border-radius: 20px 20px 0 0;
	transition: transform .3s;
}
.about .item .text {
	margin: 0 0 30px;
	font-size: calc(1.6rem / 1.6);
}
.about .item .link {
	margin-top: 20px;
	font-size: calc(2.2rem / 1.6);
}
.about .item .link::after {
	right: 26px;
	width: 26px;
	height: 26px;
}
.about .item + .item a:hover {
	background: var(--red);
}
.about .item + .item a:hover .img img {
	transform: scale(1.1);
}
.about .item a:hover .link {
	color: #fff;
}
.about .item a:hover .link::after {
	filter: var(--filterWhite);
}
}/* @media */
@media print, screen and (max-width: 1000px) and (min-width: 768px) {/* TABLET */
.about .inner {
	display: block;
}
.about .item + .item {
	margin: 40px 0 0;
}
}/* @media */
/* -----------------------------------------------
= blog
----------------------------------------------- */
.main .blog {
	position: relative;
	padding: 95px 18px 40px;
	background: url(../img/index/blog_bg01_sp.png) no-repeat 50% 0 / 100% auto;
}
.main .blog::before {
	content: "";
	position: absolute;
	top: 55px;
	left: 0;
	bottom: 70px;
	z-index: -1;
	width: 100%;
	height: calc(100% - 125px);
	background: repeating-linear-gradient(90deg, #fcf6f9, #fcf6f9 5px, #fefbfc 5px, #fefbfc 10px);
}
.main .blog::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	background: url(../img/index/blog_bg02_sp.png) no-repeat 50% 100% / 100% auto;
}
.main .blog .item_wrap {
	margin-bottom: 30px;
	border-top: 1px dashed rgba(0,0,0,.2);
}
.main .blog .item {
	padding: 20px 0;
	border-bottom: 1px dashed rgba(0,0,0,.2);
}
.main .blog .item a {
	display: flex;
}
.main .blog .item .img {
	width: 125px;
	margin-right: 15px;
}
.main .blog .item .img img {
	height: 81px;
	border-radius: 7px;
	object-fit: cover;
}
.main .blog .item .img.line {
	border: 2px solid #f9dfe2;
}
.main .blog .item .set {
	flex: 1;
}
.main .blog .item time {
	display: inline-block;
	margin-right: 5px;
	margin-bottom: 10px;
	color: #666;
	font-size: calc(1.3rem / 1.6);
}
.main .blog .category {
	display: inline-block;
	margin-bottom: 10px;
	padding: 3px 10px;
	color: #fff;
	border-radius: 3em;
	font-size: calc(1.1rem / 1.6);
	font-family: var(--fontM);
	font-weight: 600;
	line-height: 1;
}
.main .blog .category.type01 {
	background: #80c269;
}
.main .blog .category.type02 {
	background: #f8b551;
}
.main .blog .category.type03 {
	background: #c490bf;
}
.main .blog .category.type04 {
	background: #88abda;
}
.main .blog .category.type05 {
	background: #f29c9f;
}
.main .blog .category.type06 {
	background: #7ecef4;
}
.main .blog .text {
	font-size: calc(1.3rem / 1.6);
}
@media print, screen and (min-width: 768px) {/* PC */
.main .blog {
	margin-top: -40px;
	padding: 200px 40px 80px;
	background: url(../img/index/blog_bg01_pc.png) no-repeat 50% 0 / 1500px auto;
}
.main .blog::before {
	top: 143px;
	bottom: 112px;
	height: calc(100% - 255px);
}
.main .blog::after {
	background: url(../img/index/blog_bg02_pc.png) no-repeat left 50% bottom -150px / 1500px auto;
}
.main .blog .item_wrap {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	max-width: 1100px;
	margin: 0 auto 45px;
	border-top: none;
}
.main .blog .item {
	padding: 0 0 20px;
	border-bottom: 1px dashed rgba(0,0,0,.2);
}
.main .blog .item a {
	display: block;
}
.main .blog .item .img {
	width: 100%;
	margin: 0 0 12px;
	border-radius: 20px;
	overflow: hidden;
}
.main .blog .item .img img {
	height: 220px;
	border-radius: 20px;
	transition: transform .3s;
}
.main .blog .item a:hover .img img {
	transform: scale(1.05);
}
.main .blog .item .img.line {
	border-width: 4px;
}
.main .blog .item time {
	margin-right: 20px;
	font-size: calc(1.6rem / 1.6);
}
.main .blog .item .category {
	margin-right: 20px;
	padding: 5px 10px;
	font-size: calc(1.4rem / 1.6);
}
.main .blog .item .text {
	font-size: calc(1.6rem / 1.6);
}
.main .blog .item a:hover .text {
	color: var(--red);
	text-decoration: underline;
}
}/* @media */
/* -----------------------------------------------
= recruit_info
----------------------------------------------- */
.recruit_info {
	position: relative;
	padding: calc(88 / 375 * 100vw) 16px 20px;
	background: url(../img/index/recruit_info_img_sp.png) no-repeat 50% 0 / 100% auto;
	text-align: center;
}
.recruit_info::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	background: url(../img/index/recruit_info_bg_sp.png) no-repeat 50% 100% / 100% auto;
}
.recruit_info .subtitle {
	max-width: 180px;
	margin: 0 auto;
	padding: 20px 0 30px;
	background: #fff;
	border: 2px solid var(--red);
	border-radius: 5px;
}
.recruit_info .subtitle::after {
	bottom: 20px;
}
.recruit_info .subtitle .arrow {
	position: absolute;
	left: calc(50% - 10px);
	bottom: -18px;
	width: 20px;
	height: 18px;
	background: var(--red);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.recruit_info .arrow::before {
	content: "";
	position: absolute;
	bottom: 3px;
	left: 1px;
	width: 18px;
	height: 16px;
	background: #fff;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.recruit_info .text {
	margin: 25px 40px 20px;
	font-size: calc(1.3rem / 1.6);
	font-family: var(--fontB);
	font-weight: bold;
}
@media print, screen and (min-width: 768px) {/* PC */
.recruit_info {
	padding: 136px 0 0;
	background: url(../img/index/recruit_info_img_pc.jpg) no-repeat 50% 0 / 100% auto;
}
.recruit_info::before {
	background: url(../img/index/recruit_info_bg_pc.jpg) no-repeat 50% 100% / 1500px auto;
}
.recruit_info::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	background: url(../img/index/blog_bg02_pc.png) no-repeat left 50% top -150px / 1500px auto;
}
.recruit_info .inner {
	max-width: 660px;
	margin: 0 auto;
	padding: 0 0 55px;
	background: #fff;
	border-radius: 20px 20px 0 0;
}
.recruit_info .subtitle {
	position: relative;
	top: -34px;
	max-width: 300px;
	padding: 35px 0 50px;
	border-width: 4px;
	border-radius: 10px;
}
.recruit_info .subtitle::after {
	bottom: 40px;
}
.recruit_info .subtitle .arrow {
	left: calc(50% - 18px);
	bottom: -35px;
	width: 36px;
	height: 35px;
}
.recruit_info .arrow::before {
	bottom: 8px;
	left: 0;
	width: 36px;
	height: 35px;
}
.recruit_info .text {
	margin: 60px 0 35px;
	font-size: calc(1.8rem / 1.6);
}
}/* @media */
/* -----------------------------------------------
= footer_banner
----------------------------------------------- */
.footer_banner {
	padding: 30px 18px 60px;
}
.footer_banner h3 {
	position: relative;
	margin-bottom: 28px;
	font-size: calc(1.9rem / 1.6);
	font-family: var(--fontB);
	font-weight: bold;
	text-align: center;
}
.footer_banner h3::before,
.footer_banner h3::after {
	content: "";
	position: absolute;
	top: 50%;
	width: calc(50% - 2em);
	height: 1px;
	border-top: 1px dashed rgba(0,0,0,.2);
}
.footer_banner h3::before {
	left: 0;
}
.footer_banner h3::after {
	right: 0;
}
.footer_banner ul {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}
@media print, screen and (min-width: 768px) {/* PC */
.footer_banner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 27px 20px 55px;
}
.footer_banner h3 {
	font-size: calc(2.8rem / 1.6);
}
.footer_banner ul {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0;
	margin: 0 -16px;
}
.footer_banner li {
	width: 250px;
	margin: 0 16px 16px;
}
.footer_banner ul li a:hover {
	opacity: .8;
}
}/* @media */