/* 共通部分 */
.top-common__title {}

.top-common__title h2 {
    font-size: .21rem;
    font-weight: bold;
    text-align: center;
    line-height: 1.6;
	font-family: "Noto Sans JP", sans-serif;
}

.top-common__title p {
    font-weight: bold;
    font-size: .60rem;
    font-family: "Roboto", sans-serif;
    color: #E1E0DF;
    line-height: 1;
    text-align: center;
}




/* 線が伸びる */
/*
 .common-btn{
    transition: ease-in-out .3s;
}


.common-btn:hover.common-btn::after{
    width: 100%;
    height: 100%;
}

.common-btn:hover.common-btn::before{
    width: 100%;
    height: 100%;
} */


/* 縮小・反転 */

.first-view video {
    width: 100%;
    display: block;
    height: calc(100vh - 170px);
    max-height: 800px;
    object-fit: cover;
}

.first-view {
    width: 1340px;
    max-width: 100%;
    height: calc(100vh - 100px);
    max-height: 870px;
    margin: 100px auto 0;
    padding: 0 70px 70px;
}

.first-view__title {
    font-weight: var(--font-w-semibold);
    font-size: .30rem;
}


.scroll {
    position: absolute;
    left: 20px;
    bottom: 35vh;
    writing-mode: vertical-rl;
    color: #000;
    font-weight: var(--font-w-medium);
}
@media screen and (min-width:1380px) {
	.scroll {
		left: calc((100vw - 1350px) / 2);
	}
}
.scroll::before {
    animation: scroll 2s infinite;
    background-color: #f49a03;
    bottom: -35vh;
    content: "";
    height: 34vh;
    left: 0;
    margin: auto;
    position: absolute;
    right: 0;
    width: 2px;
}

@keyframes scroll {
    0% {
        transform: scale(1, 0);
        transform-origin: 0 0;
    }

    50% {
        transform: scale(1, 1);
        transform-origin: 0 0;
    }

    51% {
        transform: scale(1, 1);
        transform-origin: 0 100%;
    }

    100% {
        transform: scale(1, 0);
        transform-origin: 0 100%;
    }
}


/* トップイントロ */
.top-intro{
	padding: 100px 0px 70px;
    position: relative;
    z-index: 1;
}
.top-intro__bg{
    background-image: none;
    overflow: hidden;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    clip-path: inset(0);
}
.top-intro__bgin{
    position: fixed;
    background-image: url(../images/top/top-intro-back.jpg);
    top: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: right bottom;
    z-index: -1;
}
.top-intro__back{
	position: relative;
    z-index: 2;
}
/*
.top-intro__back {
    background-image: url(../images/top/top-intro-back.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding: 100px 0px 70px;
    width: 100%;
    height: 100%;
}*/

.top-intro__contents {
    width: 1200px;
    max-width: 100%;
    margin: 0 auto;
	display: flex;
}

.top-intro__left{
	flex: 0 1 auto;
	width: fit-content;
}
.top-intro__title {
	padding-bottom: 35px;
    font-size: .7rem;
    font-weight: var(--font-w-bold);
    line-height: 1.5;
    margin: 0 auto 25px;
    letter-spacing: 0.04em;
	position: relative;
}
.mark-up .top-intro__title::after{
	content: "";
	display: inline-block;
	width: 100%;
	height: 14px;
	background-color: #F39A00;
	transform: skewX(-10deg);
	position: absolute;
    bottom: 0;
    left: -5px;
	animation: markerLine 1.8s ease forwards;
}
@keyframes markerLine {
  from {
    width: 0%;
  }
  to {
    width: 100%;
  }
}

.top-intro__period{
	letter-spacing: -0.3em;
}

.top-intro__lead {
    flex: 0 1 auto;
    width: 48%;
    margin-left: auto;
    margin-bottom: 30px;
    line-height: 2.7;
    font-size: .18rem;
    font-weight: var(--font-w-semibold);
    margin-top: 6px;
	opacity: 0;
}
.mark-up .top-intro__lead {
	animation: introShow 0.7s ease forwards;
	animation-delay: 1.5s;
}
.top-intro__tagline {
    font-size: .40rem;
    line-height: 1.4;
    font-weight: var(--font-w-bold);
    font-family: "Roboto", sans-serif;
	font-style: italic;
	text-align: center;
    letter-spacing: .02rem;
	opacity: 0;
}
.mark-up .top-intro__tagline {
	animation: introShow 0.7s ease forwards;
	animation-delay: 1.5s;
}
@keyframes introShow {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* ニュース */
.top-news {
    margin-bottom: 105px;
    padding-top: 90px;
    background-color: #fff;
}

.top-news__list {
    width: 1240px;
    padding: 0 20px;
    max-width: 100%;
    margin: 55px auto 31px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.news_list_empty {
    width: 360px;
    max-width: 30%;
}

.top-news__item {
    width: 360px;
    max-width: 30%;
    margin-bottom: 10px;
    text-decoration: none;
}

.news_list_img_box {
    margin-bottom: 32px;
    aspect-ratio: 3 / 2;
    width: 100%;
    overflow: hidden;
}

.news_list_img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.item-date-flex {
    display: flex;
    align-items: center;
    margin-bottom: 11px;
}

.item-tag {
    font-size: .13rem;
    margin-right: 18px;
    color: #fff;
    background-color: #000;
    width: 91px;
    line-height: 1.8;
    text-align: center;
}

.top-news__item time {
    font-size: .16rem;
    color: #000;
    font-weight: 400;
}

.top-news__item>p {
    font-size: .16rem;
    line-height: 1.6;
	font-weight: 500;
    color: #000;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.top-news__list--link {
    font-size: .14rem;
    color: #000;
    text-decoration: none;
    margin: 0 auto;
    display: flex;
    width: fit-content;
    position: relative;
    border-bottom: 2px dotted #000000;
    padding: 0 55px 12px 25px;
}

.top-news__list--link::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 12px;
    right: 25px;
    margin: auto;
    width: 15px;
    height: 15px;
    background-color: #000;
    border-radius: 50vh;
}

.top-news__list--link::after {
    content: '';
    width: 5px;
    height: 5px;
    border-top: solid 2px #fff;
    border-right: solid 2px #fff;
    position: absolute;
    right: 30px;
    top: 0px;
    bottom: 12px;
    margin: auto;
    transform: rotate(45deg);
}


.top-intro__title>span {
    display: flex;
    overflow: hidden;
    justify-content: center;
}
.skew{
	transform: skewX(-9deg);
	display: inline-block;
}
/* ここからアニメーション関係 */
.top-intro__title span.text-up .textup {
    transform: translateY(2em);
    animation: textanimation 0.6s forwards;
	display: inline-block;
}

/* 1文字目 */
.top-intro__title span.text-up .textup:nth-child(1) {
    animation-delay: 0.1s
}

/* 2文字目 */
.top-intro__title span.text-up .textup:nth-child(2) {
    animation-delay: 0.2s
}

/* 3文字目 */
.top-intro__title span.text-up .textup:nth-child(3) {
    animation-delay: 0.3s
}

/* 4文字目 */
.top-intro__title span.text-up .textup:nth-child(4) {
    animation-delay: 0.4s
}

/* 5文字目 */
.top-intro__title span.text-up .textup:nth-child(5) {
    animation-delay: 0.5s
}

/* 6文字目 */
.top-intro__title span.text-up .textup:nth-child(6) {
    animation-delay: 0.6s
}

/* 7文字目 */
.top-intro__title span.text-up .textup:nth-child(7) {
    animation-delay: 0.7s
}

/* 8文字目 */
.top-intro__title span.text-up .textup:nth-child(8) {
    animation-delay: 0.8s
}

/* 9文字目 */
.top-intro__title span.text-up .textup:nth-child(9) {
    animation-delay: 0.9s
}

/* 10文字目 */
.top-intro__title span.text-up .textup:nth-child(10) {
    animation-delay: 1s
}

/* 11文字目 */
.top-intro__title span.text-up .textup:nth-child(11) {
    animation-delay: 1.1s
}

/* 12文字目 */
.top-intro__title span.text-up .textup:nth-child(12) {
    animation-delay: 1.2s
}


@keyframes textanimation {
    0% {
        transform: translateY(2em);
    }

    100% {
        transform: translateY(0);
    }
}

.js-textup {
    opacity: 0;
}

.text-up {
    opacity: 1;
}



/* oem-odm */

.top-oem-odm__wrap{
	margin-top: 55px;
	padding: 50px 20px 60px;
    position: relative;
    z-index: 1;
}
.top-oem__bg{
    background-image: none;
    overflow: hidden;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    clip-path: inset(0);
}
.top-oem__bgin{
    position: fixed;
    background-image: url(../images/top/top-oem-odm-back.jpg?new);
    top: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    z-index: -1;
}
.top-oem-odm__contents{
	position: relative;
    z-index: 2;
}

/*
.top-oem-odm__back {
    background-image: url(../images/top/top-oem-odm-back.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding: 50px 20px 60px;
    width: 100%;
    height: 100%;
    margin-top: 55px;
}
*/
.top-oem-odm__contents {
    width: 1200px;
    max-width: 100%;
    margin: 0 auto;
}

.top-oem-odm__text {
    display: flex;
    align-items: flex-end;
    width: 100%;
    margin: 0 auto 50px;
}

.top-oem-odm__title {
    font-size: .27rem;
    font-weight: var(--font-w-bold);
    color: #fff;
    width: fit-content;
    margin-right: 72px;
}

.top-oem-odm__title span {
    font-size: .80rem;
    line-height: 1;
    letter-spacing: 0.03em;
	display: block;
}

.top-oem-odm__lead {
    color: #fff;
    font-size: .18rem;
    font-weight: var(--font-w-semibold);
    width: 45%;
    line-height: 2;
}

.top-oem-odm__visual__link {
    display: flex;
    align-items: flex-end;
    width: 100%;
    margin: 0 auto;
}
.top-oem-odm__visual__link.sp_only{
	display:none;
}

.top-oem-odm__visual__link>img {
    width: 72.3%;
    margin-left: 80px;
}

.top-oem-odm__visual__link .common-btn {
    margin-right: 0;
    margin-bottom: 24px;
    color: #fff;
    padding: 9px 60px 9px 40px;
}

.top-oem-odm__visual__link .common-btn::before,
.top-oem-odm__visual__link .common-btn::after {
    color: #fff;
}

.top-oem-odm {
    margin-bottom: 150px;
}

/* ふるさと納税 */
.top-main h3 {
    color: #fff;
    font-size: .72rem;
    font-weight: var(--font-w-bold);
    width: fit-content;
    line-height: 1.2;
    margin-bottom: 25px;
}

.top-return-gift h3{
	color: #000;
	text-shadow: 0 0 10px #ffffff
}

.top-return-gift .top-main h3+p {
text-shadow: 0 0 10px #ffffff
}

.top-main h3+p {
	color: #fff;
    font-size: .18rem;
    line-height: 1.8;
    font-weight: var(--font-w-semibold);
}

.top-return-gift h3+p {
	color: #000;
}

.top-return-gift {
    width: 88%;
    width: calc(1034px + ((100% - 1034px) / 2));
    max-width: 100%;
    margin-bottom: 152px;
}

.top-return-gift__back {
    background-image: url(../images/top/top-return-gift-back.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding: 60px 0 45px 20px;
    width: 100%;
    height: 100%;
}

.top-return-gift h3 {
    margin-left: auto;
    margin-right: 44px;
}

.top-return-gift h3+p {
    margin-bottom: 155px;
    width: fit-content;
    margin-left: auto;
	text-shadow: 0 0 10px #ffffff
}

.top-return-gift__text {
    width: 1090px;
    max-width: 100%;
    margin: 0 auto;
    margin: 0 0 0 auto;
    padding-right: 67px;
}

.top-return-gift .common-btn {}


/* アニメーション部分 */

/*
.img-mask {
    clip-path: inset(0% 100% 0% 0%);
    transition: clip-path 1s ease-in-out;
}

.img-open {
    clip-path: inset(0% 0% 0% 0%);
}
*/
/*
.top-return-gift__text {
    opacity: 0;
    transition: opacity 1s ease-in-out;
    transition-delay: 1.1s;
}

.img-open .top-return-gift__text {
    opacity: 1;
}

*/



/* お問い合わせ */

.top-contact__text {
    width: 57%;
}

.top-return-gift .common-btn,
.top-company-info .common-btn,
.top-contact .common-btn,
.top-oem-odm__visual__link .common-btn {
    margin-right: 0;
    margin-bottom: 24px;
    border: solid 2px #fff;
    border-right: none;
    color: #fff;
    padding: 9px 55px 9px 40px;
}

.top-oem-odm__visual__link .common-btn{
    margin-bottom: 8px;
}
.top-company-info .common-btn{
	margin-bottom: 8px;
	flex: 0 1 auto;
}
.top-return-gift .common-btn{
	border: solid 2px #000;
    border-right: none;
	color: #000;
}

.top-contact .common-btn {
    margin-bottom: 18px;
    margin-right: 0;
    color: #fff;
}

.top-return-gift .common-btn::before,
.top-return-gift .common-btn::after,
.top-company-info .common-btn::before,
.top-company-info .common-btn::after,
.top-contact .common-btn::before,
.top-contact .common-btn::after,
.top-oem-odm .common-btn::before,
.top-oem-odm .common-btn::after {
    color: #fff;
}

.top-company-info .common-btn img,
.top-contact .common-btn img,
.top-oem-odm .common-btn img {
    filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7480%) hue-rotate(137deg) brightness(118%) contrast(102%);
}

/* 企業情報 */

.top-company-info__back {
    background-image: url(../images/top/top-company-info-back.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding: 375px 0 50px;
    width: 100%;
    height: 100%;
}

.top-company-info__contents {
    width: 1045px;
	max-width: 86%;
    margin: 0 auto 0 67px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.top-company-info {
    width: 88%;
    width: calc(1034px + ((100% - 1034px) / 2));
    max-width: 100%;
    margin-left: auto;
    margin-bottom: 172px;
}

.top-company-info h3{
	margin-bottom: 20px;
}
.top-company-info__text {
    margin-bottom: 0px;
}


/* お問い合わせ */
/*
.top-contact__back {
    background-image: url(../images/top/top-contact-back.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding: 35px 75px 50px;
    width: 1035px;
	max-width: 100%;
    height: 100%;
    margin: 0 auto;
}

.top-contact h3 {
    font-size: .4rem;
    margin-bottom: 20px;
    letter-spacing: 0.05rem;
}

.top-contact__container {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    width: 1240px;
    max-width: 100%;
    margin: 0 auto;
}*/


.top-contact {
    margin-bottom: 145px;
}

.top-recruit__contents {
    width: 1240px;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 20px;
}


/* 採用情報 */

.top-recruit__back {
    background-image: url(../images/top/top-recruit-back.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding: 52px 20px 68px;
    width: 100%;
    height: 100%;
    margin-top: 55px;
}


.top-recruit__contents {}

.top-recruit__contents p {
    color: #406086;
}


.top-recruit__contents h3 {
    margin-bottom: 15px;
    color: #406086;
}

.top-recruit__contents h3+p {
    color: #406086;
    margin-bottom: 23px;
}

.top-recruit__contents h3 span {
    font-size: .36rem;
    display: block;
    margin-top: 57px;
}

.top-recruit__contents li {
    margin-bottom: 8px;
}

.top-recruit__contents li a {
    color: #406086;
    font-size: .18rem;
    font-weight: var(--font-w-bold);
}

.top-recruit__contents li a img {
    width: 15px;
    vertical-align: baseline;
    margin-right: 20px;
    filter: brightness(0) saturate(100%) invert(35%) sepia(57%) saturate(430%) hue-rotate(172deg) brightness(86%) contrast(86%);
}

.new-recruits__link {
    position: relative;
}

.new-recruits__link::after {
    content: "";
    position: absolute;
    background-image: url(../images/common/link-icon.svg);
    background-repeat: no-repeat;
    width: 18px;
    height: 18px;
    right: -22px;
    top: 0;
    bottom: 0;
    margin: auto;
}

.top-recruit__link .common-btn {
    margin-left: auto;
    margin-right: 0;
    margin-top: -50px;
    color: #406086;
    border: solid 2px #406086;
    border-right: none;
}

.top-recruit__link .common-btn::before{
	background-color: #406086;
}

.top-recruit__link .common-btn:hover{
 	color:#fff;
}



.top-recruit__link .common-btn img {
    filter: brightness(0) saturate(100%) invert(35%) sepia(57%) saturate(430%) hue-rotate(172deg) brightness(86%) contrast(86%);
}

@media screen and (max-width:800px) {
	.first-view {
		margin: 70px auto 0;
		padding: 0;
	    height: auto;
	}
	.first-view video {
		height: calc(100dvh - 70px);
	    width: 100.5vw;
    	margin-left: -0.25vw;
		transition: 100s;
		object-fit: cover;
	}	
	
	.scroll {
		color: #FFF;
		left:2px;
    	bottom: 20dvh;
	}

	.scroll::before {
		background-color: #FFF;
		bottom: -20dvh;
		height: 19dvh;
	}
	.top-intro {
    	padding: 60px 0px 65px;
	}
	.top-intro__title{
		font-size: .48rem;
	}
	.top-intro__contents{
		flex-direction: column;
	}
	/*
	.top-intro__back{
		padding: 57px 0px 70px;
		background-image: url(../images/top/top-intro-back_sp.jpg);
	}*/
	.top-intro__bgin{
		background-image: url(../images/top/top-intro-back_sp.jpg);
	}
	.top-intro__left,
	.top-intro__lead{
		width: calc(100% - 50px);
        margin: 0 auto;
	}
	.top-intro__tagline {
    	font-size: .28rem;
		letter-spacing: 0.01rem;
	}
	.top-intro__lead{
		margin-top: 55px;
		font-size: .16rem;
        line-height: 2.8;
		letter-spacing: 0;
	}
	.top-common__title p{
		font-size: .48rem;
	}
	.top-common__title h2{
		font-size: .18rem;
	}
	.top-news__list{
		margin: 40px auto 10px;
		padding: 0;
		flex-direction: column;
		width: calc(100% - 60px);
	}
	.top-news__item{
		margin-bottom: 40px;
		width: 100%;
		max-width: 100%;
	}
	.news_list_img_box {
    	margin-bottom: 28px;
	}
	
	.top-news {
    	margin-bottom: 90px;
	}
	.top-oem-odm {
		margin-bottom: 90px;
	}
	.top-oem-odm__wrap {
		margin-top: 40px;
		margin-bottom: 90px;
		padding: 50px 0 75px;
	}
	/*
	.top-oem-odm__back{
		margin-top: 45px;
		padding: 45px 0 70px;
		background-image: url(../images/top/top-oem-odm-back_sp.jpg);
	}*/
	.top-oem__bgin{
		background-image: url(../images/top/top-oem-odm-back_sp.jpg?new);
	}
	.top-oem-odm__text {
		margin: 0 0 80px auto;
		padding: 0 30px;
		flex-direction: column;
        align-items: flex-start;
		width: 100%;
	}
	
	.top-oem-odm__title {
    	font-size: .21rem;
	}
	.top-oem-odm__title span {
    	font-size: .60rem;
		letter-spacing: 0;
	}
	.top-oem-odm__lead {
		font-size: .16rem;
		width: 100%;
		margin-top: 45px;
	}
	
	.oemflow_sp{
        margin: 0 auto;
	}
	
	.flow_map_spwrap{
		padding: 0 30px;
		overflow-x: auto;
		overflow-y: hidden;
		white-space: nowrap;
	}
    .flow_map_sp {
        width: 1592px;
        max-width: none;
    }
	.top-oem-odm__visual__link>img{
		width: 100%;
	}
	.top-oem-odm__visual__link.pc_only{
		display: none;
	}
	.top-oem-odm__visual__link.sp_only{
	    margin: 63px auto 0;
		display: flex;
	}
	.top-oem-odm__visual__link .common-btn{
		margin: 0 auto;
		width: auto;
	}
	.top-return-gift {
	    margin-bottom: 100px;
    	width: 100%;
	}
	.top-return-gift__back {
	    padding: 60px 30px 45px 30px;
    	background-image: url(../images/top/top-return-gift-back_sp.jpg);
	}
	.top-return-gift__text{
		padding-right: 0;
	}
	.top-return-gift h3{
		margin: 0 0 30px;
		font-size: .48rem;
		width: 100%;
	}
	.top-return-gift h3+p{
		font-size: .16rem;
    	line-height: 2;
		width: 100%;
		margin-bottom: 310px;
		margin-left: 0;
	}
	.top-return-gift .common-btn{
		margin: 0 auto;
	}
	.top-company-info{
		margin-bottom: 70px;
	}
	.top-company-info__back{
		padding: 420px 30px 55px;
		background-image: url(../images/top/top-company-info-back_sp.jpg);
	}
	.top-company-info__contents{
		margin: 0;
		width: 100%;
		max-width: none;
		flex-direction: column;
	}
	.top-company-info h3{
		margin-bottom: 30px;
		font-size: .48rem;
	}
	.top-main h3+p{
		font-size: .16rem;
	}
	.top-company-info .common-btn{
		margin: 50px auto 0;
	}
	
	
	/*採用情報*/
	.top-recruit__contents h3 {
    margin-bottom: 15px;
    font-size: .48rem;
}

.top-recruit__contents h3 span {
    font-size: .30rem;
    margin-top: 28px;
}

.top-recruit__contents {
    padding: 0 8px;
}

.top-recruit__back {
    background-image: url(../images/top/sp-top-recruit-back.jpg);
    padding: 58px 20px 274px;
    margin-top: 55px;
}

.top-recruit__contents h3+p {
    margin-bottom: 36px;
}

.top-recruit__contents li a {
    font-size: .16rem;
}

.top-recruit__link .common-btn {
    display: none;
}
	
}