@charset "UTF-8";
*{
	margin: 0;
	padding: 0;
	list-style: none;
	font-weight: normal;
}
button{
	background: none;
	border: none;
	padding: 0;
	margin: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
}
main {
	padding-top: 30px; 
}
/*--------------------------------------------*/
.star_large{
	background: url(../image/star_white_8.png) no-repeat center center/cover;
	width: clamp(40px, calc(40px + (50 - 40) * ((100vw - 375px) / (1024 - 375))), 50px);
	height: clamp(40px, calc(40px + (50 - 40) * ((100vw - 375px) / (1024 - 375))), 50px);
}
.star_small{
	background: url(../image/star_white_4.png) no-repeat center center/cover;
	width: clamp(20px, calc(20px + (25 - 20) * ((100vw - 375px) / (1024 - 375))), 25px);
	height: clamp(20px, calc(20px + (25 - 20) * ((100vw - 375px) / (1024 - 375))), 25px);
}
@keyframes twinkle{
    0%{
        opacity: 0;
    }
    20%{
        opacity: 0.8;
    }
    40%{
        opacity: 1;
    }
    60%{
        opacity: 1;
    }
    80%{
        opacity: 0.8;
    }
    100%{
        opacity: 0;
    }
}
.star_large.left{
	animation-delay: 0s;
}
.star_small.right{
	animation-delay: 0.6s;
}
.star_large.right{
    animation-delay: 0.3s;
}

/*----- 共通 work top ----------------------------------------------*/
.work_content{
	opacity: 0;
	transform: translateY(10px);
	transition: 
	opacity 2.0s ease-out,
	transform 2.0s ease-out;
}
.loaded .work_content {
	opacity: 1;
	transform: translateY(0px);
}
.work_top{
	width: 100%;
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 40px;
}
.work_image{
	margin: 0 auto;
    width: 80%;
	max-width: 1200px;
    margin-bottom: 30px;
	position: relative;
}
.work_image img{
	width: 100%;
}
.top_star{
	position: absolute;
	animation: twinkle 1.8s ease-in-out infinite;
}
.star_large.left{
	top: -55px;
	left: -45px;
}
.star_small.right{
	bottom: -40px;
	right: -30px;
}
.star_large.right{
	bottom: -10px;
	right: -70px;
}

.work_text{
	width: 70%;
	margin: 0 auto;
	max-width: 1200px;
	margin-bottom: 160px;
}
.work_text_inner{
	display: flex;
	gap: 250px;
}
.work_title-wrap{
	margin-bottom: 80px;
}
.tag{
	display: block;
	border: 1px solid white;
	width: fit-content;
	padding: 5px 20px;
	border-radius: 20px;
	margin-bottom: 15px;

	/* font-size: clamp(14px, 0.9vw + 0.4rem, 16px); */
    font-family: "Shippori Mincho", serif;
    -webkit-font-smoothing: antialiased;
}
.work_title{
    font-weight: normal;
    font-family: "Shippori Mincho", serif;
	font-size: clamp(22px, calc(22px + 4 * ((100vw - 375px) / 649)), 26px);
}
/*---------------------------------------------------*/
.sub_content{
	margin-bottom: 60px;
}
.title_wrap{
	display: flex;
	align-items: center;
	margin-bottom: 10px;
}
.list_star{
	background: url(../image/star_white.png)  no-repeat center center/contain;
	width: 22px;
	height: 22px;
	padding-right: 10px;
}
.sub_title{
	font-weight: normal;
	font-family: "Shippori Mincho", serif;
	font-size: clamp(18px, calc(18px + 2 * ((100vw - 375px) / 649)), 20px);
}
.sub_text{
	font-family: "Shippori Mincho", serif;
	font-size: 15px;
	line-height: 1.8; 
  	letter-spacing: 0.03em; 
}
.page_link{
	display: block;
	border: 1px solid #F2F2F2;
	background-color: #F2F2F2;;
	color: #181818;
	padding: 5px 15px;
	width: fit-content;
	border-radius: 20px;
	margin-top: 10px;
	transition: all 0.3s ease-in-out;
}
.page_link:hover{
	background-color: #212121;
	color: #F2F2F2;
	border: 1px solid #F2F2F2;
}
/*----- section image ----------------------------------------------*/
.section_image{
	width: 100%;
  	height: auto;
  	display: block;
	margin-bottom: 160px;
}
.section_image img{
	width: 100%;
  	height: 100%;
}
/*--- work design ------------------------------------------------*/
.work_design{
	width: 70%;
	max-width: 1200px;
	margin: 0 auto;
	margin-bottom: 200px;
}
.completed_img-PC{
	width: 70%;
	max-width: 1200px;
	height: auto;
	margin: 0 auto;
	margin-bottom: 250px;
}
.completed_img-PC img{
	width: 100%;
}
.completed_img-SP{
	width: 20%;
	max-width: 1200px;
	height: auto;
	margin: 0 auto;
	margin-bottom: 200px;
}
.completed_img-SP img{
	width: 100%;
}
/*----- other works ----------------------------------------------*/
.other_works{
	width: 90%;
	margin: 0 auto;
	margin-bottom: 160px;
	max-width: 1200px;
}
.other_title_wrap{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 40px;
}
.button_wrap{
	display: flex;
	gap: 20px;
}
.arrow_button{
	width: 45px;
	height: 45px;
	border: 1px solid #fff;
	border-radius: 25px;

	display: flex;
	align-items: center;
	justify-content: center;

	transition: all 0.4s ease;
}
.arrow_button img{
	width: 20px;
}
.arrow_button:hover{
	/* background: #ffffff; */
	transform: scale(0.9);
}
.other_title{
	font-size: clamp(32px, calc(27.37px + 1.23vw), 40px);
}
.slider_wrap{
	display: flex;
	gap: 5%;
	margin-bottom: 40px;
	justify-content: center;
}
.other_works_image{
	width: 30%;
	aspect-ratio: 2560 / 1600;
}
.other_works_image img{
	width: 100%;
	height: 100%;
}
/*------- 共通 fotter ------------------------------------------*/ 
.footer{
	min-height: 100vh;
	display: flex;
  	flex-direction: column;
	position: relative;
}
.footer_menu_wrap{
	margin-bottom: 20px;
	list-style: none;
	font-size: 26px;
	padding-right: 40px;
  	overflow: hidden;
  	line-height: 1.2;
	height: auto; 
  	display: block;
	transition:
	color 0.6s ease;
}
.footer_button{
	position: relative;
	display: inline-block;
	height: 1.2em;
}
.footer_button .hover{
	position: absolute;
}
.footer_button:hover .default{
	transform: translateY(-100%);
}
.footer_button:hover .hover{
	transform: translateY(-100%);
}
.footer_menu{
	text-decoration: none;
	list-style: none;
	z-index: 1000;
}
/*------- 共通 footer star ------------------------------------------*/ 
.footer .star_decoration_wrap{
	position: absolute;
	z-index: 0;
}
.footer_star{
	animation: twinkle 1.8s ease-in-out infinite;
}
.footer_star.star_large{
	position: absolute;
	animation-delay: 0s;
}
.footer_star.star_small{
	position: absolute;
	animation-delay: 0.9s;
}
/*------- 共通 loop animation --------------------------------------*/ 
.loop_wrap{
	margin-top: auto;
	overflow: hidden;
	width: 100%;
} 
.loop_inner{
	display: flex;
	width: max-content;
	animation: loop 20s linear infinite;
}
.loop_set{
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
}
.loop_text{
	line-height: 0.85;
}
.loop_icon{
	background: url(../image/star_white.png) no-repeat center center/cover;
}
.loop_icon img{
	height: auto;
	width: 100%;
}
@keyframes loop {
	0% {
	  transform: translateX(0);
	}
	100% {
	  transform: translateX(-50%);
	}
}
/*------------------------------------------------------*/ 
.Copyright{
	width: fit-content;
	font-size: 14px;
	margin: 0 auto;
	font-family: "Noto Serif JP", serif;
}

@media (max-width: 560px) {
	/*------ work top ---------------------------------------------------*/
	.work_top{
		margin-top: 80px;
		height: 100%;
	}
	.work_text_inner{
		flex-direction: column;
		gap: 0;
	}
	.work_text{
		width: 80%;
		margin-bottom: 80px;
	}
	.tag{
		font-size: 14px;
	}
	/*---- star ----------------------------------------------*/
	.star_large.left{
		top: -40px;
		left: -30px;
	}
	.star_small.right{
		bottom: -35px;
		right: -5px;
	}
	.star_large.right{
		bottom: -25px;
		right: -35px;
	}
	/*---------------------------------------------------*/
	.right_content .sub_content:last-child{
		margin-bottom: 0;
	}
	/*----- section image ----------------------------------------------*/
	.section_image{
		margin-bottom: 80px;
	}
	/*--- work design ------------------------------------------------*/
	.work_design{
		margin-bottom: 150px;
	}
	.completed_img-SP{
		width: 70%;
		max-width: 1200px;
		height: auto;
		margin: 0 auto;
		margin-bottom: 300px;
	}
	.completed_img-SP img{
		width: 100%;
	}
	/*----- other works ----------------------------------------------*/
	.other_works{
		overflow: hidden;
		width: 100%;
	}
	.other_title_wrap{
		width: 90%;
		margin: 0 auto;
		margin-bottom: 40px;
	}
	.slider_wrap {
		display: flex;
		gap: 40px;
		transition: transform 0.5s ease;
		padding: 0;
		margin: 0;
		list-style: none;
	}
	.other_works_image {
		flex: 0 0 70%;
	}
	.other_works_image img {
		width: 100%;
		display: block;
	}
	/*------- fotter ------------------------------------------*/ 
	.footer_button{
		font-size: 24px;
		transition: color 0.6s ease;
	}
	.footer_menu{
		margin-left: 50px;
		margin-top: 150px;
	}
	/*------- footer star ------------------------------------------*/ 
	.footer_star.star_large{
		top: 320px;
		left: 20px;
	}
	.footer_star.star_small{
		top: 110px;
		left: 180px;
	}
	/*------- loop animation --------------------------------------*/ 
	.loop_text{
		font-size: 110px;
	}
	.loop_icon{
		width: 70px;
		height: 70px;
		margin: auto 20px;
	}
}
@media (max-width: 1024px) and (min-width: 560px) {
	/*---- star ----------------------------------------------*/
	.work_top{
		margin-top: 80px;
		height: 100%;
	}
	.star_large.left{
		top: -40px;
		left: -45px;
	}
	.star_small.right{
		bottom: -35px;
		right: -15px;
	}
	.star_large.right{
		bottom: -20px;
		right: -50px;
	}

	.work_text_inner{
		flex-direction: column;
		gap: 0;
	}
	/*--- work design ------------------------------------------------*/
	.completed_img-SP{
		width: 40%;
		max-width: 1200px;
		height: auto;
		margin: 0 auto;
		margin-bottom: 300px;
	}
	.completed_img-SP img{
		width: 100%;
	}
	/*----- other works ----------------------------------------------*/
	.other_works{
		overflow: hidden;
		width: 100%;
	}
	.other_title_wrap{
		width: 90%;
		margin: 0 auto;
		margin-bottom: 40px;
	}
	.slider_wrap {
		display: flex;
		gap: 40px;
		transition: transform 0.5s ease;
		padding: 0;
		margin: 0;
		list-style: none;
	}
	.other_works_image {
		flex: 0 0 70%;
	}
	.other_works_image img {
		width: 100%;
		display: block;
	}
	/*------- fotter ------------------------------------------*/ 
	.footer_button{
		font-size: 24px;
	}
	.footer_menu{
		margin-left: 50px;
		margin-top: 150px;
	}
	/*------- footer star ------------------------------------------*/ 
	.footer_star.star_large{
		top: 320px;
		left: 20px;
	}
	.footer_star.star_small{
		top: 110px;
		left: 180px;
	}
	/*------- loop animation --------------------------------------*/ 
	.loop_text{
		font-size: 220px;
	}
	.loop_icon{
		width: 70px;
		height: 70px;
		margin: auto 20px;
	}
}
@media (min-width: 1024px) {

	/*------- fotter ------------------------------------------*/ 
	.footer_button{
		font-size: 30px;
	}
	.footer_menu{
		margin-left: 100px;
		margin-top: 200px;
	}
	/*------- footer star ------------------------------------------*/ 
	.footer_star.star_large{
		top: 380px;
		left: 40px;
	}
	.footer_star.star_small{
		top: 170px;
		left: 300px;
	}
	/*------- loop animation --------------------------------------*/ 
	.loop_text{
		font-size: 300px;
	}
	.loop_icon{
		width: 150px;
		height: 150px;
		margin: auto 40px;
	}
}
