@charset "UTF-8";

/*******************************************************************************
	共通
 *******************************************************************************/


.index_main-title {
	display: flex;
	column-gap: 0 !important;
	flex-direction: column-reverse;
	align-items: center;
}

.index_main-title:lang(en) {
	color: #336ab4;
	font-style: italic;
	font-weight: bold;
	font-size: clamp(3.438rem, -9.531rem + 27.02vw, 8.25rem);
}

.common_index-section {
	display: flex;
	flex-direction: column;
	align-items: center;
}

@media screen and (min-width: 768px) {
	.main_container {
		padding-bottom: 100px;
	}
}
@media screen and (max-width: 768px) {
	.index_main-title {
	}
	.main_container {
		padding-bottom: 50px;
	}
}





.common_chapter-summary {
	font-size: 16px;
	line-height: clamp(1.563rem, 1.057rem + 1.05vw, 1.75rem);
}
@media screen and (min-width: 768px) {
	.common_chapter-summary {
		text-align: center;
	}
}
@media screen and (max-width: 767px) {
	.common_chapter-summary {
		padding: 0 30px;
		text-align: justify;
	}
	.common_chapter-summary br {
		display: none;
	}
}
.main_container {
	position: relative;
}
.common_index-link {
	display: flex;
	color: #ffffff;
	font-weight: bold;
	font-size: clamp(0.938rem, 0.432rem + 1.05vw, 1.125rem);
	column-gap: clamp(0.625rem, -1.059rem + 3.51vw, 1.25rem);
	align-items: center;
	transition: all 0.4s;
}
.common_index-link i {
	font-size: clamp(1.875rem, 0.191rem + 3.51vw, 2.5rem);
}
.common_index-link:hover {
	color: #c6012e;
}

/*******************************************************************************
	キービジュアル
 *******************************************************************************/
.visual_container {
	position: relative;
	width: 100%;
	max-height: 1080px;
	height: 100dvh;
	margin: 0 auto;
}


@media screen and (min-width: 783px) {
	body.admin-bar .visual_container {
		max-height: calc(1080px - 32px);
		height: calc(100dvh - 32px);
	}
}
@media screen and (max-width: 782px) {
	body.admin-bar .visual_container {
		max-height: calc(1080px - 46px);
		height: calc(100dvh - 46px);
	}
}
.visual_movie {
	display: block;
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 100%;
}
.visual_movie::after {
	display: block;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	height: 100%;
	background-color: #000000;
	opacity: 0.4;
	content: "";
}

.visual_container video {
	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: center;
}

.visual_theme-container {
	position: absolute;
	bottom: 80px;
	left: 50%;
	transform: translateX(-50%);
	max-width: 1820px;
	width: 95%;
}
.visual_theme-text {
	display: flex;
	flex-direction: column-reverse;
}

.visual_theme-text strong:lang(en) {
	display: flex;
	font-style: italic;
	font-weight: 600;
	font-size: clamp(1.875rem, -1.01rem + 6.01vw, 6.188rem);
	line-height: clamp(3.125rem, 0.198rem + 6.1vw, 7.5rem);
	text-transform: uppercase;
}
.visual_theme-text span {
	padding-left: 5px;
	font-weight: normal;
	font-size: clamp(1.125rem, 0.581rem + 1.13vw, 1.938rem);
}


.visual_scroll-container {
	display: flex;
	position: absolute;
	bottom: calc(0px - clamp(1.406rem, 0.779rem + 1.31vw, 2.344rem));
	left: 50%;
	transform: translateX(-50%);
	align-items: flex-end;
}
@media screen and (min-width: 768px) {
	.visual_container {
		margin-bottom: 190px;
		padding-top: 10px;
	}
	.visual_movie .display_mb {
		display: none;
	}
}

@media screen and (max-width: 767px) {
	.visual_container {
		margin-bottom: 80px;
		padding-top: 5px;
	}
	.visual_movie .display_pc {
		display: none;
	}
}

/*
@media screen and (min-width: 783px) {
	.admin-bar .visual_scroll-container {
		max-height: calc(1080px - 32px);
		height: calc(100dvh - 32px);
	}
}

@media screen and (max-width: 782px) {
	.admin-bar .visual_scroll-container {
		max-height: calc(1080px - 46px);
		height: calc(100dvh - 46px);
	}
}*/

.visual_scroll {
	display: flex;
	width: fit-content;
	color: #ffffff;
	font-weight: 500;
	font-size: clamp(0.938rem, 0.645rem + 0.61vw, 1.375rem);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	flex-direction: column;
	align-items: center;

	row-gap: clamp(0.625rem, -0.002rem + 1.31vw, 1.563rem);
}

.visual_scroll::after {
	display: block;
	width: clamp(0.125rem, 0.083rem + 0.09vw, 0.188rem);
	height: clamp(2.813rem, 1.558rem + 2.61vw, 4.688rem);
	background-color: #ffffff;
	content: "";
}


/*******************************************************************************
	実績紹介
 *******************************************************************************/

.index_works-text {
	margin-bottom: 65px;
	font-weight: bold;
	font-size: clamp(1rem, -0.179rem + 2.46vw, 1.438rem);
	text-align: justify;
}
@media screen and (min-width: 768px) {
	#index_works {
		margin-bottom: 150px;
	}
	#index_works .index_main-title {
		margin-bottom: 20px;
	}
	.index_works-text {
		margin-bottom: 65px;
	}
	#index_works  .common_works-nav {
		margin-bottom: 40px;
	}
}

@media screen and (max-width: 767px) {
	#index_works {
		margin-bottom: 80px;
	}
	#index_works .index_main-title {
		margin-bottom: 15px;
	}
	.index_works-text {
		margin-bottom: 40px;
		padding: 0 20px;
		font-weight: 500;
	}
	#index_works  .common_works-nav {
		margin-bottom: 25px;
	}
}

/*******************************************************************************
	会社概要
 *******************************************************************************/

.index_company-wrapper {
	display: flex;
	position: relative;
	max-width: 1920px;
	width: 100%;
	max-height: 465px;
	padding: 146.5px 0;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	flex-direction: column;
	justify-content: center;
	align-items: center;

	row-gap: 10px;
}
@media screen and (min-width: 768px) {
	#index_company {
		margin-bottom: 150px;
	}
	.index_company-wrapper {
		padding: 146.5px 0;
	}
}
@media screen and (max-width: 767px) {
	#index_company {
		margin-bottom: 80px;
	}
	.index_company-wrapper {
		padding: 82.5px 0;
	}
}
.index_company-wrapper::before {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	height: 100%;
	background: linear-gradient(to bottom, #23a4da 0%, #2f5eab 100%);
	opacity: 0.47;
	content: "";
}

.index_company-wrapper > * {
	position: relative;
	z-index: 1;
	color: #ffffff !important;
}
.index_company-wrapper a {
	display: flex;
	font-weight: bold;
	font-size: clamp(1rem, 0.326rem + 1.4vw, 1.25rem);
	column-gap: clamp(0.625rem, -0.217rem + 1.75vw, 0.938rem);
	align-items: center;
	transition: all 0.4s;
}
.index_company-wrapper a i {
	font-size: clamp(1.125rem, -0.896rem + 4.21vw, 1.875rem);
}
.index_company-wrapper a i:nth-of-type(1) {
	transform: rotateY(180deg);
}
.index_company-wrapper a:hover {
	color: #c6012e !important;
}

/*******************************************************************************
	お知らせ
 *******************************************************************************/
#index_news .index_main-title {
	font-size: clamp(2.5rem, -3.732rem + 12.98vw, 4.813rem);
}
.index_info-nav {
	max-width: 800px;
}
.index_info-nav a {
	display: flex;
	position: relative;
	padding-right: calc(10px + 5px);
	align-items: baseline;
}
.index_info-nav a::after {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	font-family: "icomoon";
	font-size: 15px;
	content: "\e908";
}
.index_info-nav .common_info-contents {
	width: 100%;
	column-gap: 20px;
}
.index_info-nav time , .index_info-nav h2.common_info-title {
	font-weight: 500;
	font-size: 15px;
}
.index_info-nav .common_info-status {
	column-gap: clamp(0.938rem, -5.462rem + 13.33vw, 1.563rem);
}
.index_info-nav h2.common_info-title {
	width: 100%;
}
@media screen and (min-width: 768px) {
	#index_news  .index_main-title {
		margin-bottom: 25px;
	}
	.index_info-nav {
		margin-bottom: 40px;
	}
	.index_info-nav .common_info-item {
		padding: 0px clamp(0.625rem, -12.175rem + 26.67vw, 1.875rem) 20px clamp(0.625rem, -5.775rem + 13.33vw, 1.25rem);
	}
}
@media screen and (max-width: 767px) {
	#index_news  .index_main-title {
		margin-bottom: 20px;
	}
	.index_info-nav {
		margin-bottom: 25px;
	}
	.index_info-nav .common_info-item {
		padding: 0px 10px 15px;
	}
}

.index_info-nav a span {
	display: inline-block;
	width: 100%;
}

