@charset "UTF-8";
/* ==========================================================
	file：topstyle
	01.mainvisual
	02.section共通
	03.product
	04.solution
	05.works
	06.other
	07.news
========================================================== */
/* ==========================================================
	01.mainvisual
========================================================== */
.mainvisual {
	background: rgba(149, 194, 196, 0.5);
	height: 100vh;
	margin-top: -4rem;
	position: relative;
	overflow: hidden;
}
.mainvisual .filt {
	content: '';
	display: block;
	position: absolute;
	background: url('../img/top/fil-mainvisual_sp.png'), url('../img/common/bg-mainvisual.jpg');
	background-repeat: repeat-y, repeat-y;
	background-position: center, center;
	background-size: 100% auto, 100% auto;
	width: 100vw;
	height: 100vh;
	top: 0;
	left: 0;
	opacity: 0;
}
.mainsvg-wrap {
	position: absolute;
	width: 80vw;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -61%);
}
.mainsvg-wrap path {
	fill: transparent;
	stroke: transparent;
	stroke-width: 2px;
}
.mainsvg-wrap path.start {
	animation: svg 2s ease-in-out forwards;
}
@keyframes svg {
	0% {
		stroke: #fff;
		stroke-dasharray: 3500px;
		stroke-dashoffset: 3500px;
	}
	30% {
		stroke-dashoffset: 0;
	}
	50% {
		fill: #fff;
	}
	100% {
		fill: #fff;
	}
}

.mainvisual .main-msg {
	position: absolute;
	bottom: 20%;
	right: 5%;
	width: 60vw;
	max-width: 300px;
	opacity: 0;
	z-index: 99;
}
.mainvisual .main-msg img {
	display: inline-block;
	width: 100%;
	max-width: 300px;
	height: auto;
}
.mainvisual .main-msg path {
	fill: #ccc;
	stroke: #444;
	stroke-width: 2px;
}
.mainvisual .main-msg path.start {
	animation: svgmsg 2s ease-in-out forwards;
}
@keyframes svgmsg {
	0% {
		stroke: #ccc;
		stroke-dasharray: 3500px;
		stroke-dashoffset: 3500px;
	}
	30% {
		stroke-dashoffset: 0;
	}
	50% {
		fill: #ccc;
	}
	100% {
		fill: #ccc;
	}
}

.mainvisual .scroll {
	position: absolute;
	color: #007c36;
	display: block;
	font-size: 0.75rem;
	width: 6rem;
	height: 1rem;
	bottom: 6rem;
	left: 50%;
	text-align: center;
	transform: translateX(-50%);
}
.mainvisual .scroll::before {
	content: '';
	position: absolute;
	display: block;
	background: #007c36;
	width: 1px;
	height: 5rem;
	bottom: -6rem;
	left: 50%;
	transform: translateX(-50%);
}
.mainvisual .scroll::after {
	content: '';
	position: absolute;
	display: block;
	background: #007c36;
	border-radius: 50%;
	width: 0.5rem;
	height: 0.5rem;
	bottom: -1rem;
	left: calc(50% - 0.25rem);
	animation: scrolldown 3s infinite;
}
@keyframes scrolldown {
	0% {
		transform: translateY(0);
		opacity: 0;
	}
	30% {
		opacity: 1;
	}
	85% {
		transform: translateY(6rem);
		opacity: 0;
	}
	100% {
		opacity: 0;
	}
}

.mainvisual .rollover {
	position: absolute;
	width: 125px;
	height: 125px;
	bottom: 3%;
	left: 2%;
	transition: 0.3s;
}
.rollover img {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	width: 100%;
	display: block;
	transition: 0.5s;
}
.rollover:hover img:nth-of-type(2) {
	opacity: 0;
}
.mainvisual .rollover.rollover2 {
	width: 125px;
	height: 125px;
	left: auto;
	right: 2%;
}

/* ==========================================================
	02.section共通
========================================================== */
main > section {
	position: relative;
	padding: 80px 0;
}
.topsection-ttl {
	font-size: 1.5rem;
	font-weight: bold;
	margin-bottom: 1.5rem;
}
.topsection-ttl .roboto {
	color: #007c36;
	display: block;
	font-size: 1.125rem;
	font-weight: normal;
	margin-bottom: 0.75rem;
}
.topsection-ttl::after {
	height: 0;
}

/* ==========================================================
	03.product
========================================================== */
#itemlist .section-ttl,
#itemlist .item-msg {
	display: none;
}
.item-list-slider .item-list-link {
	display: block;
	width: 100%;
	margin: 0 0 2rem;
}

/* ==========================================================
	04.solution
========================================================== */
.solution {
	background: #f2f0ea;
}
.solution .wrap-right {
	text-align: center;
}
.solution .wrap-right img {
	max-width: 100%;
	height: auto;
}
.solution .wrap-right p {
	margin: 5vw 0 10vw;
	text-align: left;
}

/* ==========================================================
	05.works
========================================================== */
#works {
	margin-top: 50px;
	padding-left: 0;
}
#works .slick-slide {
	text-align: center;
	margin: 0 10px;
}
#works .slick-slide img {
	margin-bottom: 10px;
	width: 100%;
	height: 55vw;
	object-fit: cover;
}
.works-btn {
	margin-top: 50px;
}

/* ==========================================================
	06.other
========================================================== */
.other {
	background: url('../img/top/bg-other.jpg') no-repeat center / cover;
	padding: 50px 0;
}
.other .wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.other .wrap .button02 {
	width: 100%;
}
.other .wrap .button02 + .button02 {
	margin-top: 30px;
}
.other .wrap .button02.button02-company:after {
	background: url('../img/top/bg-company.jpg') no-repeat center / cover;
}
.other .wrap .button02.button02-recruit:after {
	background: url('../img/top/bg-recruit.jpg') no-repeat center / cover;
}
.other .wrap .button02 .roboto {
	display: block;
	font-size: 1.0rem;
	margin-bottom: 0.75rem;
}
/* ==========================================================
	07.news
========================================================== */
.news-btn .button01 {
	margin: 5vw auto 1vw;
}

/* ==========================================================
	08.service 2024.10追加
========================================================== */
.service {
	padding: 50px 0 0;
}

@media (min-width: 768px) {
	/* 画面幅 768px以上 */
/* ==========================================================
	01.mainvisual
========================================================== */
	.mainvisual {
		margin-top: -100px;
	}
	.mainvisual .main-msg {
		width: 50vw;
		bottom: 7rem;
	}

/* ==========================================================
	02.section共通
========================================================== */
	.topsection-ttl {
		font-size: 1.875rem;
		margin-bottom: 2.0rem;
	}
	.topsection-ttl .roboto {
		font-size: 1.25rem;
	}

/* ==========================================================
	03.product
========================================================== */
	.item-list-slider {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.item-list-slider .item-list-link {
		width: 48%;
	}

/* ==========================================================
	04.solution
========================================================== */
	.solution {
		position: relative;
	}
	.solution .wrap-right {
		text-align: right;
		padding-left: 50VW;
	}
	.solution .wrap-right img {
		position: absolute;
		display: block;
		top: 0;
		right: calc(50vw + 30PX);
		height: 600px;
		z-index: 1;
	}
	.solution .wrap-right .topsection-ttl {
		text-align: left;
	}
	.solution .wrap-right p {
		margin: 5vw 0 8vw;
		text-align: left;
	}
	.solution .wrap-right .button01 {
		margin-bottom: 0;
	}

/* ==========================================================
	05.works
========================================================== */
	.works {
		padding-top: 120PX;
	}
	#works .slick-slide img {
		height: 23vw;
	}

/* ==========================================================
	06.other
========================================================== */
	.other {
		background-attachment: fixed;
		padding: 100px 0;
	}
	.other .wrap .button02 {
		width: calc(50% - 15px);
	}
	.other .wrap .button02 + .button02 {
		margin-top: 0;
	}
	.other .wrap .button02 .roboto {
		font-size: 1.125rem;
		margin-bottom: 0.875rem;
	}

/* ==========================================================
	08.service 2024.10追加
========================================================== */
	.service {
		padding-top: 120PX;
	}
}

/* 24.04.26 add */
#magazine .btn-wrap .button01 {
	width: 350px;
	margin-bottom: 30px;
}
#magazine .btn-wrap .button01::before {
	left: calc(50% + 104px);
	transition: width .3s;
}
#magazine .btn-wrap .button01::after {
	right: calc(50% - 130px);
}
#magazine .btn-wrap .button01 + .button01 {
	margin-left: 2rem;
}
@media (min-width: 992px) {
	#magazine .btn-wrap .button01 + .button01 {
		margin-left: 3rem;
	}
}
@media (max-width: 768px) {
	#magazine .btn-wrap .button01 {
		width: 100%;
		max-width: 350px;
	}
	#magazine .btn-wrap .button01 + .button01 {
		margin-left: 0;
	}
	#magazine .btn-wrap .button01 {
		margin-bottom: 2rem;
	}
}


@media (min-width: 992px) {
	/* 画面幅 992px以上 */
/* ==========================================================
	01.mainvisual
========================================================== */
	.mainvisual {
		margin-top: -130px;
	}
	.mainvisual .filt {
		background: url('../img/top/fil-mainvisual.png'), url('../img/common/bg-mainvisual.jpg');
		background-repeat: repeat, repeat-y;
		background-size: 1370px auto, 100% auto;
		background-position: center, center;
		background-attachment: scroll, fixed;
	}
	.mainsvg-wrap {
		width: 550px;
		transform: translate(-51%, -62%);
	}
	.mainvisual .rollover {
		width: 240px;
		height: 240px;
		bottom: 5%;
		left: 5%;
	}
	.mainvisual .rollover.rollover2 {
		width: 240px;
		height: 240px;
		bottom: 38%;
		right: auto;
		left: 5%;
	}

/* ==========================================================
	02.section共通
========================================================== */
	main > section {
		padding: 120px 0;
	}

/* ==========================================================
	03.product
========================================================== */
	.item-list-slider .item-list-link {
		width: 32%;
	}

/* ==========================================================
	04.solution
========================================================== */
.solution {
	padding: 80px 0 100px;
}
.solution .wrap-right img {
	height: 650px;
}
.solution .wrap-right .button01 {
	margin-top: 50px;
}

/* ==========================================================
	05.works
========================================================== */
	.works {
		/* padding-top: 200PX; */
		padding-top: 150PX;
	}
	#works {
		margin-top: 100px;
	}
	#works .slick-slide {
		margin: 0 15px;
	}
	#works .slick-slide img {
		height: 20vw;
		margin-bottom: 15px;
	}
	.works-btn {
		margin-top: 100px;
		margin-bottom: 50px;
	}

/* ==========================================================
	06.other
========================================================== */
	.other {
		padding: 120px 0;
	}
	.other .wrap .button02 {
		width: calc(50% -30px);
		height: 300px;
	}

/* ==========================================================
	07.news
========================================================== */
	.news-btn .button01 {
		margin: 100px auto 50px;
	}

/* ==========================================================
	08.service 2024.10追加
========================================================== */
	.service {
		padding-top: 200PX;
	}
}


@media (min-width: 1400px) {
	/* 画面幅 1400px以上 */
/* ==========================================================
	01.mainvisual
========================================================== */
	.mainsvg-wrap {
		transform: translate(-50%, -62%);
	}
	.mainvisual .main-msg {
		bottom: 9rem;
		right: calc(50% - 500px);
	}

/* ==========================================================
	04.solution
========================================================== */
.solution {
	padding-bottom: 150px;
}
.solution .wrap-right {
	padding-left: calc(100% - 570px);
}
.solution .wrap-right img {
	height: 820px;
	left: -180px;
}
.solution .wrap-right p {
	margin: 30PX 0 50PX;
}
.solution .wrap-right .button01 {
	margin-top: 100px;
	margin-bottom: 20PX;
}

/* ==========================================================
	05.works
========================================================== */
	.works {
		/* padding-top: 250PX; */
		padding-top: 200PX;
	}
	.works::after {
		top: -15px;
	}

/* ==========================================================
	08.service 2024.10追加
========================================================== */
.service {
	padding-top: 250PX;
}

}