@charset "utf-8";
html {
		overflow-y: scroll;
		overscroll-behavior: none;
}
@media(max-width: 767px) {
		html {
				overflow: hidden
		}
}
body.no_scroll {
		height: 100vh !important;
		overflow: hidden;
}
footer {
		background: none !important;
}
.loading_base {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		display: flex;
		justify-content: center;
		align-items: center;
}
.loading_base h1 {
		width: 610px;
		transition: opacity 0.4s;
}
.loading_base h1 img {
		width: 100%;
		height: auto;
		opacity: 0;
		animation: fadeIn 1s linear forwards;
}
@media(max-width: 767px) {
		.loading_base h1 {
				width: 337px;
		}
}
@media(max-width: 375px) {
		.loading_base h1 {
				width: 320px;
		}
}
.isStart .loading_base h1 {
		opacity: 0;
		pointer-events: none;
}
.kv {
		opacity: 0;
		position: relative;
}
.kv .scrolldown {
		position: absolute;
		width: 24px;
		height: 130px;
		right: 1.5vw;
		bottom: 60px;
		z-index: 10;
		transition: opacity 1.5s;
		transition-delay: 5s;
		opacity: 0;
}
.scrolldown img {
		width: 100%;
		height: auto;
}
.isStart .kv .scrolldown {
		opacity: 1;
}
.scrolldown .mouse {
		position: absolute;
		bottom: 0;
		left: 0px;
		width: 24px;
		height: 32px;
		border: 1px solid #000;
		border-radius: 50%;
		box-sizing: border-box;
		padding: 2px 0;
}
.mouse .ball {
		width: 8px;
		height: 8px;
		background: #000;
		border-radius: 50%;
		margin: 0 auto;
		animation: 0.7s scrollBall infinite running ease-out;
}
@keyframes scrollBall {
		0% {
				opacity: 1;
				transform: translateY(0px);
		}
		85% {
				opacity: 1;
		}
		100% {
				opacity: 0;
				transform: translateY(17px);
		}
}
@keyframes scrollBallSP {
		0% {
				opacity: 1;
				transform: translateY(0px);
		}
		85% {
				opacity: 1;
		}
		100% {
				opacity: 0;
				transform: translateY(10px);
		}
}
.isStart .kv {
		animation: fadeIn 1s linear forwards;
}
.kv_wrap {
		background-repeat: no-repeat;
		background-position: center bottom;
		background-size: 100%;
		background-image: url("../images/kv_bg_wht_pc.svg");
		height: 48vw;
		min-height: 700px;
		position: relative;
		z-index: 10;
		box-sizing: border-box;
		padding: 0 3vw;
}
@media(max-width: 1900px) {
		.kv_wrap {
				background-size: 100%;
				background-image: url("../images/kv_bg_wht_pc.png")
		}
}
@media(max-width: 960px) {
		.kv_wrap {
				background-size: 100%;
				background-image: url("../images/kv_bg_wht_sp.svg");
				background-position: center bottom;
				height: 75vh;
				min-height: inherit;
				padding: 0 4vw;
		}
}
@media(max-width: 767px) {
		.kv {
				min-height: inherit;
				height: 100vh !important;
				height: 100svh !important;
		}
		.kv_wrap {
				background-size: 100%;
				background-image: url("../images/kv_bg_wht_sp.svg");
				background-position: center bottom;
				height: 75vh;
				height: 75svh;
				min-height: inherit;
				padding: 0 4vw;
		}
		.kv .scrolldown {
				width: 16px;
				height: 94px;
				right: 20px;
				bottom: inherit;
				top: calc(100vh - 200px);
				top: calc(100svh - 130px)
		}
		.scrolldown .mouse {
				width: 16px;
				height: 21px;
		}
		.mouse .ball {
				width: 5px;
				height: 5px;
				background: #000;
				animation: 0.8s scrollBallSP infinite running ease-out;
		}
}
@keyframes fadeIn {
		0% {
				opacity: 0;
		}
		100% {
				opacity: 1;
		}
}
@keyframes fadeOut {
		0% {
				opacity: 1;
		}
		99% {
				opacity: 0;
		}
		100% {
				display: none
		}
}
.kv_inner {
		display: flex;
		align-items: center;
		aspect-ratio: 10 / 4.2;
}
.kv_logo {
		width: 60vw;
		max-width: 1200px;
		position: relative;
		aspect-ratio: 10 / 3.8;
}
.kv_logo img {
		width: 100%;
		height: auto;
}
.kv_logo div {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		opacity: 0;
}
.kv_logo .first_logo {
		transition: opacity 2.5s;
		transition-delay: 0s;
}
.kv_logo .second_logo {
		transition: opacity 2.5s;
		transition-delay: 3s;
}
.kv_logo .third_logo {
		transition: opacity 2.5s;
		transition-delay: 5s;
}
.isStart .kv_logo div {
		opacity: 1
}
@media(max-width: 960px) {
		.kv_inner {
				aspect-ratio: 10 / 7.5;
				display: flex;
				align-items: flex-end;
		}
		.kv_logo {
				width: 100%;
				max-width: inherit;
		}
}
@media(max-width: 767px) {
		.kv_inner {
				aspect-ratio: 10 / 8.55;
				display: flex;
				align-items: flex-end;
		}
}
.loop_wrap {
		overflow: hidden;
}
.loop_slider, .reverse_slider {
		display: flex;
		width: 100%;
		overflow: hidden;
}
.loop_item.footerTxt {
		width: 3200px;
}
@media(max-width: 960px) {
		.loop_item.footerTxt {
				width: 2640px;
		}
}
@media(max-width: 767px) {
		.loop_item.footerTxt {
				width: 1280px;
		}
}
.loop_inner, .reverse_inner {
		display: flex;
}
.loop_inner:first-child {
		animation: loop 150s linear infinite;
}
.loop_inner:nth-child(2) {
		animation: loop2 150s -100s linear infinite;
}
.loop_inner:last-child {
		animation: loop3 150s -50s linear infinite;
}
.reverse_slider .reverse_inner:first-child {
		animation: loop4 150s linear infinite;
}
.reverse_slider .reverse_inner:nth-child(2) {
		animation: loop5 150s -100s linear infinite;
}
.reverse_slider .reverse_inner:last-child {
		animation: loop6 150s -50s linear infinite;
}
.loop_item img {
		width: 100%;
		height: auto;
		vertical-align: top;
}
@keyframes loop {
		0% {
				transform: translateX(200%);
		}
		to {
				transform: translateX(-100%);
		}
}
@keyframes loop2 {
		0% {
				transform: translateX(100%);
		}
		to {
				transform: translateX(-200%);
		}
}
@keyframes loop3 {
		0% {
				transform: translateX(0%);
		}
		to {
				transform: translateX(-300%);
		}
}
@keyframes loop4 {
		0% {
				transform: translateX(-100%);
		}
		to {
				transform: translateX(200%);
		}
}
@keyframes loop5 {
		0% {
				transform: translateX(-200%);
		}
		to {
				transform: translateX(100%);
		}
}
@keyframes loop6 {
		0% {
				transform: translateX(-300%);
		}
		to {
				transform: translateX(0%);
		}
}
/* ============= */
.top_hd {
		width: 275px;
		margin: 0 0 50px;
}
.top_hd.whats {
		width: 665px;
}
.top_hd img {
		width: 100%;
		height: auto;
}
@media(max-width: 767px) {
		.top_hd {
				width: 140px;
				margin: 0 0 30px;
		}
		.top_hd.whats {
				width: 275px;
		}
}
.top_link_wrap {
		display: flex;
		align-items: center;
}
.top_link {
		font-family: "Times New Roman", Times, "serif";
		font-size: 16px;
}
.top_link a {
		color: #000;
		text-decoration: none;
		transition: color 0.3s;
		padding-right: 70px;
		position: relative;
		height: 48px;
		display: flex;
		align-items: center;
}
.top_link a .top_link_arw {
		position: absolute;
		width: 48px;
		height: 48px;
		pointer-events: none;
		right: 0px;
		top: calc(50% - 25px);
}
.top_link_arw .top_link_arw_circle {
		position: absolute;
		border-radius: 50%;
		border: 1px solid #000;
		top: 0;
		left: 0;
		width: 48px;
		height: 48px;
		transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s;
		pointer-events: none
}
.top_link_arw::after {
		content: '';
		display: block;
		position: absolute;
		top: 0px;
		left: 0;
		width: 49px;
		height: 49px;
		background-repeat: no-repeat;
		background-position: center center;
		background-size: 49px;
		background-image: url("../images/icon_right_blk.png")
}
@media (hover: hover) {
		a:hover .top_link_arw .top_link_arw_circle {
				background: #000;
				transform: scale(1.15)
		}
		a:hover .top_link_arw::after {
				background-image: url("../images/icon_right_wht.png")
		}
}
@media(max-width: 767px) {
		.top_link a {
				padding-right: 55px;
				position: relative;
				height: 38px;
		}
		.top_link a .top_link_arw {
				width: 38px;
				height: 38px;
				top: calc(50% - 21px);
		}
		.top_link_arw .top_link_arw_circle {
				width: 38px;
				height: 38px;
		}
		.top_link_arw::after {
				width: 38px;
				height: 38px;
				background-size: 38px;
				top: 1px
		}
}
.about_wrap {
		margin: 0 auto 120px;
		max-width: 1000px;
		padding: 0 40px;
		position: relative;
		z-index: 50;
}
@media(max-width: 840px) {
		.about_wrap {
				top: -12vw;
				margin-bottom: calc(-12vw + 120px);
		}
}
.about_wrap p {
		font-size: 20px;
		line-height: 2.0;
		margin: 0 0 40px;
}
@media(max-width: 767px) {
		.about_wrap {
				margin: 0 auto 50px;
				padding: 0 20px;
		}
		.about_wrap p {
				font-size: 15px;
				line-height: 1.8;
				margin: 0 0 40px;
		}
}
.news_wrap {
		margin: 150px auto 280px;
		display: flex;
		max-width: 1000px;
		padding: 0 40px;
		position: relative;
		z-index: 15
}
.news_wrap.media {
		margin-top: 0;
}
@media(min-width: 768px) {
		.news_wrap.first {
				margin-bottom: 100px;
		}
}
.news_wrap_left {
		width: 340px;
}
.news_wrap_right {
		flex: 1
}
.news_item a {
		height: 240px;
		display: flex;
		align-items: flex-start;
}
.news_item_caption {
		padding-top: 30px;
}
.news_item_caption p {
		font-size: 24px;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		overflow: hidden;
}
.news_item_thumb {
		width: 240px;
		height: 240px;
}
.news_item_thumb img {
		width: 240px;
		height: 240px;
		object-fit: cover;
}
.news_item a .news_icon {
		top: inherit;
		bottom: 25px;
		right: 25px;
}
@media(max-width: 1100px) {
		.news_wrap {
				display: block;
		}
}
@media(max-width: 840px) {
		.news_wrap {
				margin: 100px auto 200px;
		}
}
@media(max-width: 767px) {
		.news_wrap {
				padding: 0 20px;
				margin: 80px 0 60px;
		}
		.news_item a {
				display: flex;
				align-items: flex-start;
				height: 110px;
		}
		.news_item_thumb {
				width: 110px;
				height: 110px;
		}
		.news_item_thumb img {
				width: 110px;
				height: 110px;
		}
		.news_item_caption {
				flex: 1;
				padding-top: 15px;
				padding-left: 15px;
				padding-right: 10px;
				padding-bottom: 55px;
		}
		.news_item_caption p {
				font-size: 14px;
				padding-top: 5px;
				display: -webkit-box;
				-webkit-box-orient: vertical;
				-webkit-line-clamp: 2;
				overflow: hidden;
		}
		.news_item a .news_icon {
				top: inherit;
				bottom: 15px;
				right: 15px;
				width: 20px;
				height: 20px;
		}
}
@media(min-width: 1101px) {
		.tabMaxObj {
				display: none
		}
}
@media(max-width: 1100px) {
		.tabMinObj {
				display: none
		}
		.tabMaxObj {
				display: flex;
				justify-content: center;
				margin-top: 30px;
		}
}
/* ================ */
.header_logo {
		opacity: 0;
		transition: opacity 0.5s;
}
.header_logo.isActive {
		opacity: 1;
}
.header_nav, .sp_nav {
		opacity: 0;
		transition: opacity 1.5s;
		transition-delay: 3s;
}
.isStart .header_nav, .isStart .sp_nav {
		opacity: 1
}
.fadeInNml {
		opacity: 0;
		transition: opacity 0.8s;
}
.fadeInNmlActive {
		opacity: 1;
}