@charset "UTF-8";
.cmnhd {
	background: none;
	transition: all 0.3s;
}
.cmnhd_logo_item01 {
	fill: #cb0000;
	transition: all 0.3s;
}
.cmnhd_logo_item02 {
	fill: #ffffff;
	transition: all 0.3s;
}

.main {
}
.hero {
	height: 100vh;
	overflow: hidden;
	max-height: 850px;
}
.hero_inner {
	height: calc(100% - 130px);
	position: relative;
	padding-left: 20px;
	display: flex;
}
.hero_bg {
	position: absolute;
	right: 0;
	top: 0;
	height: calc(100% + 40px);
	overflow: hidden;
	border-radius: 0 0 0 30px;
	width: calc(100% - 35px);
	transform: translateX(140%);
	opacity: 0;
	transition: all 0.6s ease-out;
}
.-load .hero_bg {
	transform: translateX(0);
	opacity: 1;
}
.hero_bg::after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: var(--black);
	opacity: 0.3;
	mix-blend-mode: multiply;
}
.hero_bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: bottom;
}
.hero_catch {
	position: relative;
	z-index: 2;
	margin: auto auto 0 0;
	padding-bottom: 24px;
}
.hero_catch h1 {
	color: var(--subc);
	font-size: 90px;
	line-height: 1.2;
	font-weight: bold;
	letter-spacing: -0.02em;
	opacity: 0;
	transition: all 0.4s 0.5s ease-out;
}
.-load .hero_catch h1 {
	opacity: 1;
}
.hero_catch p {
	line-height: 1.3;
	padding-left: 5px;
	opacity: 0;
	transition: all 0.4s 0.7s ease-out;
}
.-load .hero_catch p {
	opacity: 1;
}
.hero_btm {
	padding: 60px 0 20px;
	background: var(--black);
}
.hero_btm_link {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}
.hero_btm_link a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border-radius: 9999px;
	width: 100%;
	height: 50px;
	background: var(--subc);
}
.hero_btm_link a .icon-mail {
	font-size: 14px;
}
.hero_btm_link a .icon-ig {
}

.sec {
}
.sec_hd {
	font-weight: bold;
	line-height: 1.7;
}
.sec_hd p {
	font-size: 20px;
	color: var(--subc);
}
.sec_hd h2 {
	font-size: 27px;
}
/* news */
.news {
	padding: 60px 0 125px;
	background: var(--black);
	color: var(--white);
	margin-bottom: 150px;
	position: relative;
}
.news_hd {
	margin-bottom: 13px;
}
.news_wrap {
	margin-bottom: 30px;
}
.news_cnt {
	padding: 20px 0;
	border-bottom: var(--white) 1px solid;
}
.news_cnt:last-of-type {
	border-bottom: none;
}
.news_link {
	font-weight: 400;
}
.news_link_hd {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 13px;
}
.news_link_hd time {
}
.news_link_hd_cat {
	display: flex;
	flex-flow: wrap;
	gap: 4px;
}
.news_link_hd_cat span {
	background: var(--white);
	color: var(--black);
	font-size: 13px;
	display: flex;
	padding: 3px 18px;
	border-radius: 9999px;
	line-height: 1.4;
}
.news_link_ttl {
	font-size: 13px;
}
.news_link {
}
.news_archive a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 65px;
	border-radius: 9999px;
	background: var(--subc);
	color: var(--black);
}
.news_item {
	position: absolute;
	left: 0;
	bottom: -150px;
	height: 215px;
	width: calc(100% - 20px);
	overflow: hidden;
	border-radius: 0 30px 30px 0;
}
.news_item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.topnews {
	padding: 10px 0 30px;
}
.topnews_wrap {
	margin-bottom: 0;
}
.topnews_cnt {
}
.topnews_link {
}
.topnews_link_hd {
}
.topnews_link_hd_cat {
}
.topnews_link_hd_cat span {
	background: var(--black);
	color: var(--white);
}
.topnews_link_ttl {
}
.concept {
	padding-top: 210px;
	position: relative;
}
.concept_hd {
	position: absolute;
	width: calc(100% - 20px);
	left: 0;
	top: 0;
}
.concept_hd_img {
	height: 327px;
	width: 100%;
	border-radius: 0 30px 30px 0;
	overflow: hidden;
}
.concept_hd_img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}
.concept_hd_ttl {
	color: var(--subc);
	font-size: 70px;
	line-height: 1.2;
	font-weight: bold;
	letter-spacing: -0.02em;
	position: absolute;
	right: -3px;
	bottom: 0;
	transform: translateY(50%);
}
.concept_wrapper {
	padding: 170px 0 60px;
	color: #ffffff;
	background: var(--black);
}
.concept_cnt {
}
.concept_catch {
	font-size: 33px;
	line-height: 1.35;
	font-weight: bold;
	margin-bottom: 25px;
}
.mission {
	padding-top: 50px;
}
.mission_hd {
	margin-bottom: 30px;
}
.mission_cnt {
}

.concept_txt {
}
.message {
	padding: 70px 0 40px;
	overflow: hidden;
}
.message_wrap {
}
.message_img {
	margin-bottom: 23px;
	position: relative;
}
.message_img img {
	border-radius: 10px;
}
.message_hd {
	margin-bottom: 30px;
	position: relative;
}
.message_hd svg {
	position: absolute;
	z-index: 10;
	left: 71.42857%;
	bottom: 0;
	width: 140px;
	fill: var(--subc);
	opacity: 0.2;
}
.message_cnt {
	margin-bottom: 30px;
}
.message_txt {
	margin-bottom: 30px;
}
.message_btm {
}
.message_btm_dpt {
	font-weight: bold;
}
.message_btm_name {
	display: inline-flex;
	gap: 15px;
	font-size: 20px;
	font-weight: bold;
	align-items: baseline;
}
.message_btm_name span {
	font-size: 15px;
	font-weight: 400;
}
.message_profile {
}
.message_profile_wrap {
	display: none;
}
.message_profile_hd {
	margin-bottom: 15px;
}
.message_profile_cnt {
	margin-bottom: 30px;
}
.message_profile_btn {
	width: 100%;
	height: 65px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #707070;
	background: #ffffff;
	transition: all 0.3s;
}
.message_profile_btn:hover,
.message_profile_btn.-open {
	border: 1px solid #3c3c3c;
	background: #3c3c3c;
	color: #ffffff;
}
.message_profile_btn.-open:hover {
	border: 1px solid #707070;
	background: #ffffff;
	color: #3c3c3c;
}
.gallery {
	padding: 100px 0 50px;
	position: relative;
}
.gallery_hd {
	color: var(--subc);
	font-size: 70px;
	line-height: 1.2;
	font-weight: bold;
	letter-spacing: -0.02em;
	position: absolute;
	top: 50px;
	left: 0;
	z-index: 2;
}
.gallery_slide {
	overflow: hidden;
	margin-bottom: 30px;
}
.gallery_slide_wrap {
	margin-bottom: 10px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	width: max-content;
}
.gallery_slide_wrap:first-child {
}
.gallery_slide_wrap:nth-of-type(2) {
	transform: translateX(-360px);
}
.gallery_slide_wrap:last-child {
	margin-bottom: 0;
	transform: translateX(-720px);
}
.gallery_slide_cnt {
	padding-right: 10px;
	animation: 35s slide linear infinite;
}
.gallery_slide_wrap:nth-of-type(2) .gallery_slide_cnt {
	animation: 35s slide02 linear infinite;
	transform: translateX(-100%);
}
@keyframes slide {
	form {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}
@keyframes slide02 {
	form {
		transform: translateX(-100%);
	}
	to {
		transform: translateX(0%);
	}
}
.gallery_ig {
}
.gallery_ig a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border-radius: 9999px;
	height: 65px;
	background: var(--subc);
}
.gallery_ig a .icon-ig {
	font-size: 20px;
}
.sponsor {
	padding: 50px 0 60px;
}
.sponsor_hd {
	margin-bottom: 15px;
}
.sponsor_cnt {
}
.sponsor_cnt a {
	padding: 0 15px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 80px;
	width: 100%;
	transition: all 0.3s;
}
.sponsor_cnt a:hover {
	background: #cecece;
}
.about {
	padding: 50px 0 100px;
}
.about_hd {
	margin-bottom: 30px;
}
.about_cnt {
}
.about_tbl {
}
.about_tbl dl {
	padding-bottom: 2px;
	display: grid;
	grid-template-columns: 101px auto;
	gap: 3px;
	font-size: 13px;
}
.about_tbl dl dt {
	width: 100%;
	padding: 20px 10px;
	background: #e8e8e8;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
}
.about_tbl dl dd {
	padding: 20px 12px;
	position: relative;
	width: 100%;
}
.about_tbl dl dd::after {
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background: #e8e8e8;
	position: absolute;
	left: 0;
	bottom: -1.5px;
}
.about_tbl dl:first-child dd::before {
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background: #e8e8e8;
	position: absolute;
	left: 0;
	top: -0.5px;
}
@media screen and (min-width: 768px) {
	.hero_inner {
		height: 100%;
	}
	.hero_bg {
		height: 100%;
	}
	.hero_catch {
		padding-bottom: 64px;
	}
	.left_nav_cnt a {
		position: relative;
	}
	.left_nav_cnt a::before {
		content: "";
		display: block;
		width: 6px;
		height: auto;
		aspect-ratio: 1;
		border-radius: 50%;
		background: var(--subc);
		position: absolute;
		left: -11px;
		bottom: 50%;
		transform: translateY(50%);
		opacity: 0;
		cursor: none;
		transition: all 0.3s;
	}
	.left_nav_cnt a.active::before {
		opacity: 1;
	}
}
@media screen and (min-width: 1040px) {
}
