/* -----------------------------------------------
= kv
----------------------------------------------- */
.kv {
	position: relative;
	height: 600px;
}
.kv .set {
	position: absolute;
	top: 52px;
	z-index: 1;
}
.kv .set h2 {
	width: 236.9011px;
	padding: 0 26px 35px;
}
.kv .set p {
	width: 162.5789px;
	padding-inline: 26px;
}
.kv .img img {
	height: 600px;
	object-fit: cover;
	object-position: 20% 100%;
}
@media print, screen and (min-width: 768px) {/* PC */
.kv {
	height: calc(100vh - 60px);
	max-height: 920px;
	min-height: 580px;
}
.kv .set {
	top: 50%;
	transform: translateY(calc(-50% - 35px));
}
.kv .set h2 {
	width: 391.5781px;
	padding: 0 30px 60px 110px;
}
.kv .set p {
	width: 410.3755px;
	padding-inline: 110px 30px;
}
.kv .img img {
	height: calc(100vh - 60px);
	max-height: 920px;
	min-height: 580px;
}
}/* @media */
/* -----------------------------------------------
= news
----------------------------------------------- */
.news {
	position: relative;
	margin: 24px 13px 50px;
}
.news .set {
	position: relative;
	padding-block: 12px 40px;
}
.news .set::before,
.news .set::after {
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: 1.4406px;
	background: url(../img/top/news-dot.svg) repeat-x 0 / auto 100%;
}
.news .set::before {
	top: 0;
}
.news .set::after {
	bottom: 0;
}
.news .set {
	display: flex;
	gap: 0 1em;
}
.news .set h2 {
	font-family: var(--en);
	font-size: calc(1.3rem / 1.6);
	font-weight: 400;
	letter-spacing: .02em;
}
.news .set li {
	margin-bottom: 4px;
	font-size: calc(1.2rem / 1.6);
	line-height: calc(18 / 12);
}
/*
.news .set li:nth-child(n + 3) {
	display: none;
}
*/
.news .set time {
	display: block;
}
.news .next {
	position: absolute;
	right: 0;
	bottom: 13px;
	padding-bottom: 10px;
	font-size: calc(1rem / 1.6);
}
.news .next::after {
	content: "";
	position: absolute;
	left: calc(50% - 8px);
	bottom: 0;
	width: 16px;
	height: 16px;
	border-left: 0.5px solid #000;
	border-bottom: 0.5px solid #000;
	transform: rotate(-45deg);
}
@media print, screen and (min-width: 768px) {/* PC */
.news {
	max-width: 1420px;
	margin: 120px auto;
	padding-inline: 30px;
}
.news .set {
	padding-block: 30px;
}
.news .set::before,
.news .set::after {
	height: 2px;
}
.news .set h2 {
	width: calc(225 / 1420 * 100%);
	font-size: calc(2.2rem / 1.6);
	text-align: center;
}
.news .set ul {
	flex: 1;
}
.news .set li {
	display: flex;
	gap: 0 1em;
	margin-bottom: 0;
	padding-right: 60px;
	font-size: calc(1.6rem / 1.6);
}
.news .set li + li {
	margin-top: 10px;
}
/*
.news .set li:nth-child(n + 3) {
	display: flex;
}
.news .set li:nth-child(n + 4) {
	display: none;
}
*/
.news .set li p {
	flex: 1;
}
.news .next {
	right: 30px;
	bottom: 15px;
	padding-bottom: 18px;
	font-size: calc(1.4rem / 1.6);
}
.news .next::after {
	left: calc(50% - 13px);
	width: 26px;
	height: 26px;
}
}/* @media */
/* -----------------------------------------------
= section
----------------------------------------------- */
.section {
	margin: 0 13px 50px;
	scroll-margin-top: 45px;
}
.section .heading {
	display: flex;
	align-items: end;
	gap: 0 .8em;
	margin-bottom: 20px;
}
.section .heading .en {
	font-family: var(--en);
	font-size: calc(3.5rem / 1.6);
	font-weight: 400;
	line-height: 1;
	letter-spacing: .04em;
}
.section .heading .jp {
	font-family: var(--zen);
	font-size: calc(1.4rem / 1.6);
}
@media print, screen and (min-width: 768px) {/* PC */
.section {
	max-width: 1420px;
	margin: 0 auto 150px;
	padding-inline: 30px;
	scroll-margin-top: 60px;
}
.section .heading {
	gap: 0 35px;
	margin-bottom: 35px;
}
.section .heading .en {
	font-size: clamp(calc(5rem / 1.6), calc(70 / 1500 * 100vw), calc(7rem / 1.6));
}
.section .heading .jp {
	font-size: clamp(calc(2rem / 1.6), calc(28 / 1500 * 100vw), calc(2.8rem / 1.6));
}
}/* @media */
/* -----------------------------------------------
= about-us
----------------------------------------------- */
.about-us a {
	display: block;
	position: relative;
}
.about-us a h3 {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 100%;
	color: #fff;
	font-size: calc(1.8rem / 1.6);
	text-align: center;
}
@media print, screen and (min-width: 768px) {/* PC */
.about-us a {
	position: relative;
}
.about-us a h3 {
	font-size: calc(3.2rem / 1.6);
}
}/* @media */
@media (hover:hover) {
.about-us a {
	transition: opacity .3s;
}
.about-us a:hover {
	opacity: .8;
}
}/* @media */
/* -----------------------------------------------
= interview
----------------------------------------------- */
.interview .heading {
	display: block;
}
.interview .heading span {
	display: block;
}
.interview .heading .en {
	margin-bottom: 10px;
}
.interview a {
	display: block;
	position: relative;
}
.interview a p {
	position: absolute;
	left: 10px;
	right: 10px;
	bottom: 10px;
	color: #fff;
	font-size: calc(1.3rem / 1.6);
	line-height: calc(18 / 13);
	letter-spacing: .1em;
}
@media print, screen and (min-width: 768px) {/* PC */
.interview a p {
	left: 40px;
	right: 40px;
	bottom: 30px;
	font-size: calc(1.6rem / 1.6);
	line-height: calc(28 / 16);
}
}/* @media */
@media (hover:hover) {
.interview a {
	transition: opacity .3s;
}
.interview a:hover {
	opacity: .8;
}
}/* @media */
/* -----------------------------------------------
= project
----------------------------------------------- */
.section.project .heading {
	gap: 0 .5em;
}
.section.project .heading .en {
	letter-spacing: .01em;
}
.section.project .heading .jp {
	letter-spacing: 0;
}
.project a {
	display: block;
	position: relative;
	margin-bottom: 20px;
}
.project a .set {
	position: absolute;
	left: 10px;
	bottom: 10px;
	width: calc(100% - 20px);
	color: #fff;
}
.project a .set .num {
	color: var(--red);
	font-size: calc(1rem / 1.6);
}
.project a .set h3 {
	font-size: calc(1.8rem / 1.6);
}
.project a .text {
	font-size: calc(1.2rem / 1.6);
}
@media print, screen and (min-width: 768px) {/* PC */
.section.project .heading {
	gap: 0 35px;
}
.section.project .heading .en {
	letter-spacing: .04em;
}
.project ul {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 26px;
}
.project a {
	margin-bottom: 0;
}
.project a .set {
	left: 20px;
	bottom: 20px;
	width: calc(100% - 40px);
}
.project a .set .num {
	margin-bottom: 3px;
	font-size: calc(1.6rem / 1.6);
}
.project a .set h3 {
	margin-bottom: 5px;
	font-size: clamp(calc(2.4rem / 1.6), calc(32 / 1500 * 100vw), calc(3.2rem / 1.6));
}
.project a .text {
	font-size: clamp(calc(1.6rem / 1.6), calc(18 / 1500 * 100vw), calc(1.8rem / 1.6));
}
}/* @media */
@media (hover:hover) {
.project a {
	transition: opacity .3s;
}
.project a:hover {
	opacity: .8;
}
}/* @media */
/* -----------------------------------------------
= special
----------------------------------------------- */
.special h2 {
	margin-bottom: 20px;
	text-align: center;
}
.special h2 .en {
	display: block;
	margin-bottom: 10px;
	background: url(../img/top/special-heading-bg01.png) no-repeat 50% 100% / 300px auto;
	font-family: var(--en);
	font-size: calc(4rem / 1.6);
	font-weight: 400;
	letter-spacing: .02em;
}
.special h2 .jp {
	display: block;
	padding-bottom: 10px;
	background: url(../img/top/special-heading-bg02.png) no-repeat 50% 100% / 118px auto;
	font-family: var(--zen);
	font-size: calc(1.8rem / 1.6);
	font-weight: 600;
	letter-spacing: .2em;
}
.special a {
	display: block;
	position: relative;
	margin-bottom: 20px;
}
@media print, screen and (min-width: 768px) {/* PC */
.special h2 {
	margin-bottom: 80px;
}
.special h2 .en {
	margin-bottom: 15px;
	background-size: 600px auto;
	font-size: calc(8rem / 1.6);
}
.special h2 .jp {
	padding-bottom: 15px;
	background-size: 237px auto;
	font-size: calc(3.6rem / 1.6);
}
.special ul {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 26px;
}
.special a {
	margin-bottom: 0;
}
}/* @media */
@media (hover:hover) {
.special a {
	transition: opacity .3s;
}
.special a:hover {
	opacity: .8;
}
}/* @media */
/* -----------------------------------------------
= culture
----------------------------------------------- */
.culture .swiper {
	margin-right: -13px;
	padding-bottom: 60px;
}
.culture .swiper-slide a {
	display: block;
	position: relative;
}
.culture .swiper-slide a.disabled {
	opacity: 1;
}
.culture .swiper-slide a.disabled::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(0,0,0,.6);
}
.culture .swiper-slide a.disabled::after {
	content: "Coming Soon";
	position: absolute;
	top: 50%;
	left: 0;
	z-index: 2;
	transform: translateY(-50%);
	width: 100%;
	color: #fff;
	font-size: calc(1.4rem / 1.6);
	text-align: center;
}
.culture .swiper-slide a .set {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 100%;
	padding-block: 10px;
	color: #fff;
	text-align: center;
}
.culture .swiper-slide a .set::before,
.culture .swiper-slide a .set::after {
	content: "";
	position: absolute;
}
.culture .swiper-slide a .set::before {
	inset: 0;
	background: rgba(255,255,255,.6);
}
.culture .swiper-slide a .set::after {
	inset: 1px 0;
	background: rgba(110,110,110,.75);
}
.culture .swiper-slide a .set .en {
	display: block;
	position: relative;
	z-index: 1;
	font-size: calc(1rem / 1.6);
}
.culture .swiper-slide a .set .jp {
	display: block;
	position: relative;
	z-index: 1;
	font-size: calc(1.8rem / 1.6);
}
.culture .swiper-button-prev,
.culture .swiper-button-next {
	top: auto;
	bottom: 0;
	opacity: 1;
}
.culture .swiper-button-prev::before,
.culture .swiper-button-next::before {
	content: "";
	position: absolute;
	top: 8px;
	width: 24px;
	height: 24px;
	border-top: 0.5px solid #000;
	border-right: 0.5px solid #000;
}
.culture .swiper-button-prev::before {
	left: 0;
	transform: rotate(-135deg);
}
.culture .swiper-button-next::before {
	right: 10px;
	transform: rotate(45deg);
}
.culture .swiper-button-prev::after,
.culture .swiper-button-next::after {
	display: none;
}
.culture .swiper-horizontal > .swiper-pagination-bullets,
.culture .swiper-pagination-bullets.swiper-pagination-horizontal,
.culture .swiper-pagination-custom,
.culture .swiper-pagination-fraction {
	bottom: 15px;
	width: calc(100% - 110px);
	margin-inline: 55px;
}
.culture .swiper-pagination-bullet {
	width: 74px;
	height: 2px;
	background: #b3b3b3;
}
.culture.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
.culture .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
	margin-inline: 5px;
}
.culture .swiper-pagination-bullet-active {
	background: var(--red);
}
@media print, screen and (min-width: 768px) {/* PC */
.culture .swiper {
	margin-right: 0;
	padding-bottom: 0;
}
.culture .swiper-slide a.disabled::after {
	font-size: calc(1.8rem / 1.6);
}
.culture .swiper-slide a .set .en {
	font-size: clamp(calc(1.2rem / 1.6), calc(16 / 1500 * 100vw), calc(1.6rem / 1.6));
}
.culture .swiper-slide a .set .jp {
	font-size: clamp(calc(2.4rem / 1.6), calc(32 / 1500 * 100vw), calc(3.2rem / 1.6));
}
}/* @media */
@media (hover:hover) {
.culture a {
	transition: opacity .3s;
}
.culture a:hover {
	opacity: .8;
}
}/* @media */
/* -----------------------------------------------
= event
----------------------------------------------- */
.event a {
	display: block;
	position: relative;
}
.event a h3 {
	position: absolute;
	left: 13px;
	bottom: 13px;
	color: #fff;
	font-size: calc(1.8rem / 1.6);
}
@media print, screen and (min-width: 768px) {/* PC */
.event a {
	position: relative;
}
.event a h3 {
	left: 40px;
	bottom: 36px;
	font-size: calc(3.2rem / 1.6);
}
}/* @media */
@media (hover:hover) {
.event a {
	transition: opacity .3s;
}
.event a:hover {
	opacity: .8;
}
}/* @media */
/* -----------------------------------------------
= recruit
----------------------------------------------- */
.recruit a {
	display: block;
}
.recruit > a {
	position: relative;
}
.recruit > a h3 {
	position: absolute;
	left: 13px;
	bottom: 13px;
	color: #fff;
	font-size: calc(1.8rem / 1.6);
}
.recruit ul li {
	margin-top: 20px;
}
.recruit ul li a {
	padding: 17px;
	border: 0.5px solid #000;
	font-size: calc(1.6rem / 1.6);
	text-align: center;
}
@media print, screen and (min-width: 768px) {/* PC */
.recruit {
	margin-bottom: 180px;
}
.recruit a {
	position: relative;
}
.recruit > a h3 {
	left: 40px;
	bottom: 36px;
	font-size: calc(3.2rem / 1.6);
}
.recruit ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.recruit ul li {
	margin-top: 24px;
}
.recruit ul li a {
	display: grid;
	place-content: center;
	min-height: calc(100% - 40px);
	padding: 20px;
	border-width: 1px;
	font-size: calc(2.4rem / 1.6);
}
}/* @media */
@media (hover:hover) {
.recruit a {
	transition: opacity .3s;
}
.recruit a:hover {
	opacity: .8;
}
}/* @media */
