@charset "UTF-8";

/* -----------------------------------------------------------
　大枠
----------------------------------------------------------- */



/* -----------------------------------------------------------
　スクロール前のヘッダー
----------------------------------------------------------- */

#headercontainer.header-top:not(.open){
    background: none;
}
#headercontainer.header-top:not(.open) .header-inner{
    border-bottom: none;
}
#headercontainer.header-top:not(.open) .logo{
    display: none;
}


/* -----------------------------------------------------------
	メインビジュアル
----------------------------------------------------------- */

.mv-top{
    width: 100%;
    height: calc(100vh - 200px);
	min-height:600px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.mv-top-main{
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
	text-shadow: 0 0 2px #fff;
}
.mv-top-main p{
    margin-bottom: 0;
}
.mv-top-text01{
    font-size: 1.25rem;
    font-weight: bold;
    font-size: clamp(12px,calc(100vw / 1440 * 20), 1.25rem);
}
.mv-top-main p.mv-top-text02{
    margin-bottom: 30px;
	text-align:center;
    font-size: clamp(12px,calc(100vw / 1440 * 16), 1rem);
}
.mv-top-logo{
    width: calc(100vw / 1440 * 693);
    max-width: 693px;
}
.mv-top-logo img{
    display: block;
    width: 100%;
}
.mv-top-text-en{
    font-size: clamp(12px ,calc(100vw / 1440 * 30.25), 1.87rem);
    color: var(--main-color);
    font-family: var(--font-en);
    margin-top: 20px;
}

.mv-top-img{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(100% - 20px);
	z-index:-1;
}
.mv-top-img01{
	width: 287px;
    height: 218px;
    max-width: calc(100vw / 1920 * 287);
    max-height: calc(100vw / 1920 * 218);
    position: absolute;
    top: max(-11px, calc(50% - (100vw / 1920 * 374)));
    left: max(96px, calc(50% - (100vw / 1920 * 816)));
    transform: translate(-50%, -50%);
	
}
.mv-top-img02{
    width: 204px;
    height: 192px;
    max-width: calc(100vw / 1920 * 204);
    max-height: calc(100vw / 1920 * 192);
    position: absolute;
    top: calc(50% - (100vw / 1920 * 121));
    left: calc(50% - (100vw / 1920 * 527));
    transform: translate(-50%, -50%);
}
.mv-top-img03{
    width: 246px;
    height: 172px;
    max-width: calc(100vw / 1920 * 246);
    max-height: calc(100vw / 1920 * 172);
    position: absolute;
    bottom: calc(50% - (100vw / 1920 * 289));
    left: calc(50% - (100vw / 1920 * 670));
    transform: translate(-50%, -50%);
}
.mv-top-img04{
    width: 272px;
    height: 190px;
    max-width: calc(100vw / 1920 * 272);
    max-height: calc(100vw / 1920 * 190);
    position: absolute;
    top: calc(50% - (100vw / 1920 * 48));
    right: calc(50% - (100vw / 1920 * 930));
    transform: translate(-50%, -50%);
}
.mv-top-img05{
    width: 204px;
    height: 192px;
    max-width: calc(100vw / 1920 * 204);
    max-height: calc(100vw / 1920 * 192);
    position: absolute;
    bottom: calc(50% - (100vw / 1920 * 393));
    right: calc(50% - (100vw / 1920 * 946));
    transform: translate(-50%, -50%);
}

.mv-top-img01 img,
.mv-top-img02 img,
.mv-top-img03 img,
.mv-top-img04 img,
.mv-top-img05 img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}


@media (hover: hover) {
	
}


@media screen and (max-width:1560px) {
	.mv-top-img02{
	    top: calc(50% - (100vw / 1920 * 152));
	    left: calc(50% - (100vw / 1920 * 575));
	}
}

@media screen and (max-width:991px) {
    .mv-top{
        display: flex;
        justify-content: center;
        height: calc(100vh - 220px);
		min-height:586px;
    }
    .mv-top-main{
        align-items: flex-start;
        gap: 0;
        padding-bottom: 40px;
    }
    .mv-top-text01{
        font-size: 1rem;
    }
    .mv-top-main p.mv-top-text02{
        font-size: 0.75rem;
		text-align:left;
    }
    .mv-top-logo{
        width: 335px;
    }
    .mv-top-text-en{
        font-size: 0.93rem;
        text-align: center;
    }
    
    .mv-top-img01{
        width: calc(100vw/ 375 *145);
        height: calc(100vw/ 375 *85);
        top: -61px;
		left:0;
    }
    .mv-top-img02{
        width: calc(100vw/ 375 *100);
        height: calc(100vw/ 375 *100);
        top: calc(100vw/ 375 * 10);
        right: calc(100vw/ 375 * 10);
        left: auto;
    }
    .mv-top-img04{
        width: calc(100vw/ 375 *160);
        height: calc(100vw/ 375 *80);
        top: auto;
        bottom: 0;
        right: 0;
        left: auto);
    }
    .mv-top-img03,
    .mv-top-img05{
        display: none;
    }
	.mv-top-img01,
	.mv-top-img02,
	.mv-top-img04{
		max-height:unset;
		max-width:unset;
		transform:unset;
	}
}
@media screen and (max-width:568px) {
    .mv-top{
		min-height:486px;
    }
    .mv-top-img01{
        width: 145px;
        height: 85px;
        top: -61px;
		left:0;
    }
    .mv-top-img02{
        width: 100px;
        height: 100px;
        top: 10px;
        right: 10px;
        left: auto;
    }
    .mv-top-img04{
        width: 160px;
        height: 80px;
    }
}

/* -----------------------------------------------------------
	コンテンツ共通
----------------------------------------------------------- */

.news-top h2::before,
.about-top h2::before,
.top-section h2::before{
	display:none;
}
.news-top h2::after,
.about-top h2::after,
.top-section h2::after{
	display:none;
}
.news-top h2,
.about-top h2,
.top-section h2{
    font-size: 3.4rem;
    font-family: var(--font-en);
    font-weight: bold;
    color: var(--main-color);
    margin-top: 40px;
    margin-bottom: 60px;
	padding-top:0;
}
.news-top h2 span,
.about-top h2 span,
.top-section h2 span{
    display: block;
    font-size: 1rem;
    color: var(--sub-color09);
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    padding-left: 15px;
    position: relative;
}
.news-top h2 span::before,
.about-top h2 span::before,
.top-section h2 span::before{
    content: '';
    display: block;
    width: 8px;
    height: 8px;
    background: var(--sub-color10);
    border-radius: 50%;
    position: absolute;
    top: 6px;
    left: 0;
}

@media screen and (max-width:991px) {
    .news-top h2,
    .about-top h2,
	.top-section h2{
        font-size: 2.5rem;
        margin-bottom: 40px;
    }
    .news-top h2 span, 
    .about-top h2 span,
	.top-section h2 span{
        font-size: 0.875rem;
    }
}

/* -----------------------------------------------------------
	ニュース
----------------------------------------------------------- */

.news-top{
    width: 100%;
    background: rgba(255,255,255,0.8);
}
.news-top-inner{
    display: flex;
    gap: 100px;
    margin-bottom: 10px;
}
.news-top h2{
    margin-top: 0;
    margin-bottom: 0;
    position: relative;
    top: -20px;
}
.news-title{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.news-list .news-title{
	display:inline;
}
.button-news{
    font-size: 1rem;
    white-space: nowrap;
    margin-top: 10px;
    margin-bottom: 20px;
}

.news-list-wrap{
    width: 100%;
    margin-top: 30px;
    margin-bottom: 20px;
}

@media screen and (max-width:991px) {
    .news-top h2{
        top: -25px;
    }
    .news-top-inner{
        flex-direction: column;
    }
    .news-title{
        flex-direction: row;
        justify-content: space-between;
    }
    .button-news{
        font-size: 0.875rem;
    }
    .button-news > a{
        padding: 7px 40px 7px 15px;
    }
    
    .news-top-inner{
        gap: 10px;
    }
    .news-list-wrap{
        margin-top: 0;
        margin-bottom: 0;
    }
}


/* -----------------------------------------------------------
	about
----------------------------------------------------------- */

.about-top{
    margin-top: 120px;
    padding-bottom: 100px;
}
.about-top-button{
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

@media screen and (max-width:991px) {
    .about-top{
        margin-top: 40px;
        padding-bottom: 0;
    }
    .about-top-button{
        flex-direction: column;
        gap: 10px;
    }
}


/* -----------------------------------------------------------
	Mainvisual fade image
----------------------------------------------------------- */
.mvfade {
  opacity: 0;
  transition: 2.5s;
}
.fade-right {
  transform: translate(-100%, -50%);
}
.fade-right-up {
  transform: translate(-100%, 0);
}
.fade-left {
  transform: translate(0, -50%);
}
.fade-left-up {
  transform: translate(0, 0);
}
.mvfade.is-show {
  transform: translate(-50%, -50%);
  opacity: 1;
}
@media screen and (max-width: 991px) {
	.mvfade.is-show {
	  transform: unset;
	}
}
.mv-top-logo {
	position: relative;
	overflow: hidden;
}
.mv-top-logo.kira::before {
	content: "";
	height: 100%;
	width: 50px;
	position: absolute;
	top: -150px;
	left: 0;
	background: rgba(255,255,255,0.5);
	opacity:0;
	-webkit-transform: rotate(45deg);
	-webkit-animation: kira 1.5s ease-in-out;
}
@keyframes kira {
    0% { -webkit-transform: scale(0) rotate(25deg); opacity: 0; }
    75% { -webkit-transform: scale(0) rotate(25deg); opacity: 0.5; }
    76% { -webkit-transform: scale(4) rotate(25deg); opacity: 1; }
    100% { -webkit-transform: scale(50) rotate(25deg); opacity: 0; }
}

