.inter-700 {
	font-family: "Inter", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;
}

body,
html {
	margin: 0;
	padding: 0;
}
html {
	scroll-behavior: smooth;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
}
body {
	width: 100%;
	margin: 0 auto;
}

.pc {
	display: block;
}
.sp {
	display: none;
}
@media screen and (max-width: 950px) {
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
}
.c-both {
	clear: both;
	height: 0;
}

/*header-----------------------------------------------------------------------------------*/
header {
	z-index: 10;
	position: fixed;
	background-color: #fff;
}
#header {
	z-index: 30;
	position: absolute;
	background-color: transparent;
}
header, #header {
	top: 0;
	left: 0;
	width: 100%;
	height: 120px;
}
#logo {
	background-image: url("/content/images/logo.png"); 
	width: 270px;
	height: 65px;
	position: absolute;
	top: 30px;
	left: 40px;
	background-size: contain;
	background-repeat: no-repeat;
}

#tagline1 {
	position: absolute;
	top: 40px;
	left: 350px;
	font-weight: 600;
	font-size: 19px;
	color: #555;
}
#tagline2 {
	position: absolute;
	top: 72px;
	left: 350px;
	font-weight: 600;
	font-size: 15px;
	color: #333;
}

#header-menu {
	position: absolute;
	top: 30px;
	right: 40px;
	font-weight: 600;
	font-size: 15px;
	display: block;
	position: absolute; 
	height: 100px;
	float: left;
	color: #333;
}
#header-menu li{ 
	float: left;
	padding: 0 10px;
	font-weight: 600;
	font-size: 15px;
}

@media screen and ( max-width: 950px ) {
	header, #header {
		height: 95px;
	}
	#logo {
		width: 240px;
		left: 50%;
		top: 20px;
		transform: translateY(0) translateX(-50%);
		-webkit- transform: translateY(0) translateX(-50%);
	}
	#tagline1, 
	#tagline2,
	#header-menu {
		display: none;
	}
}

footer {
	text-align: center;
	padding: 25px 0;
	background: #fff;
}


main h1 {
color: #333;
	font-weight: 600;
	font-size: 30px;
	line-height: 140%;
	padding: 100px 0 25px;

}


/* dl -------------------------------------------------- */
main dl, main dt, main dd {
	margin: 0;
	padding: 0;

}
main dl  {
	border-width: 0 1px 1px 1px;
	border-style: solid;
	border-color: #ddd;
	padding: 0px;
	margin: 0px 0px 20px 0px;
	line-height: 25px;
}
main dt {
	border-width: 1px 0 0 0;
	border-style: solid;
	border-color: #ddd;
	padding: 10px;
	min-height: 32px;
	box-sizing: border-box;
}
main dd {
	border-width: 1px 0 0 1px;
	border-style: solid;
	border-color: #ddd;
	padding: 10px;
	min-height: 32px;
	box-sizing: border-box;
	text-align: left;
}
@media screen and (min-width: 650px) {
	main dt {
		float: left;
		clear: both;
		width: 200px;
	}
	main dd {
		margin-left: 200px;
	}
}
@media screen and (max-width: 649px) {
	main dt {
		float: none;
		width: 100%;
		border-bottom: 1px dotted #ddd;
	}
	main dd {
		margin-left: 0;
		border-width: 0;
	}
	main dd a {
		background: none;
	}
}


#wrapper {

	margin-top: 120px;

}
.wrapper { 
	width: 100%;
	max-width: 1080px;
	margin: 0 auto;
	position: relative;
}

section {
	width: 100%;
	position: relative;
	margin: 0;
	padding: 0;
}

/*  loop */
.loop_js {
	position: absolute;
	bottom: 0;
}
.loop_wrap {
	display: flex;
	width: 100vw;
	height: 200px;
	overflow: hidden;
}
.loop_wrap img {
	width: auto;
	height: 100%;
}
@keyframes loop {
	0% {
		transform: translateX(100%);
	}
	to {
		transform: translateX(-100%);
	}
}
@keyframes loop2 {
	0% {
		transform: translateX(0);
	}
	to {
		transform: translateX(-200%);
	}
}
.loop_wrap img:first-child {
	animation: loop 200s -100s linear infinite;
}

.loop_wrap img:last-child {
	animation: loop2 200s linear infinite;
}

@media screen and ( max-width: 950px ) {
	.loop_wrap {
		width: 100vw;
		height: 150px;
	}
	.loop_wrap img {
		width: auto;
		height: 150px;
	}
}

/* ボタンのスタイル */
.button {
	display: block;
	background: #F18200;
	font-size: 22px;
	line-height: 60px;
	color: #fff;
	margin: 50px auto;
	text-align: center;
	width: 450px;
	max-width: 100%;
	border-radius: 40px;
}
@media screen and ( max-width: 950px ) {
	.button {
		font-size: 22px;
		line-height: 60px;
		margin: 50px 10px;
		text-align: center;
		width: auto;
		border-radius: 30px;
	}
}

.buttonNeumorphism {
	display: none;
	align-items: center;
	justify-content: center;
	width: 135px;
	aspect-ratio: 1;
	color: #24486C;
	background-color: #fdfdfd;
	border-radius: 50%;
	box-shadow: 0px -4px 8px transparent, 0px 4px 8px rgb(36 72 108 / 24%);
	font-size: 50px;
	margin: 25px auto 0;
	text-align: center;
	text-decoration: none;
}
@media (any-hover: hover) {
	.buttonNeumorphism {
		transition: box-shadow 0.2s;
	}
	.buttonNeumorphism:hover {
		box-shadow: 0px -2px 4px transparent, 0px 2px 4px rgb(36 72 108 / 24%);
	}
	.buttonNeumorphism:active {
		background-color: #fdfdfd;
		box-shadow: inset 0px 4px 8px rgb(0 0 0 / 16%);
	}
}
@media screen and ( max-width: 950px ) {
	.buttonNeumorphism {
		width: 100px;
		font-size: 30px;
	}
}

.side-scroll,
.side-scroll1 {
	width: 100%;
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
}
.side-scroll-container,
.side-scroll1-container {
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
}
.side-scroll-list-wrapper,
.side-scroll1-list-wrapper {
	position: relative;
	width: 100%;
	height: 650px;
}
.side-scroll-list,
.side-scroll1-list {
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	gap: 0 30px;
}
.side-scroll-item,
.side-scroll1-item {
	width: 650px;
	height: 600px;
	background: #fff;
	color: #000;
}
.side-scroll-item img,
.side-scroll1-item img {
	width: 650px;
	height: auto;
}
.side-scroll-item div,
.side-scroll1-item div {
	width: 650px;
	height: auto;
	box-sizing: border-box;
	padding: 20px 25px;

}
.side-scroll-item div h2,
.side-scroll1-item div h2 {
	font-size: 26px;
	line-height: 50px;
	font-weight: 400;
	padding: 10px 0;
	margin: 0;
}
.side-scroll-item div p,
.side-scroll1-item div p {
	font-size: 17px;
	line-height: 30px;
	padding: 10px 15px;
}
.side-scroll-item + .side-scroll-item {
	margin-left: 60px;
}
.side-scroll1-item + .side-scroll1-item {
	margin-left: 60px;
}

@media screen and ( max-width: 950px ) {
	.side-scroll-list-wrapper,
	.side-scroll1-list-wrapper {
		position: relative;
		width: 100%;
		height: 500px;
	}
	.side-scroll-item, 
	.side-scroll-item div, 
	.side-scroll-item img, 
	.side-scroll1-item, 
	.side-scroll1-item img, 
	.side-scroll1-item div {
		width: 420px;
	}
}

#arrow {
	height: 150px;
	width: 150px;
	margin: -100px auto 0;
	background: #FDE67C;
	transform: rotate(45deg);
}

.wrapper_inner {
	position: relative;
	top: 0;
	left: 50%;
	transform: translateY(0) translateX(-50%);
	-webkit- transform: translateY(0) translateX(-50%);
	max-width: 1000px;
	height: auto;
}

#video-wrapper {
	position: relative;
	top: 0px;
	width: 100%;
	margin: 0 auto;
	height: auto;
	background: #fff;
	padding: 0 0 50px;
	overflow: hidden;
}
video,
#video_mask {
	width: 1600px;
	position: relative;
	top: 0px;
	left: 50%;
	transform: translateY(0) translateX(-50%);
	-webkit- transform: translateY(0) translateX(-50%);
	opacity: 1;
}
#video_mask {
	position: absolute;
	opacity: 1;
}

#gsapElement-wrapper{
	width: 1200px;
	height: 895px;
	margin: 0 auto;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}
#gsapElement {
	width: 500px;
	height: 500px;
	position: absolute;
	top: 0px;
	right:-10%;
	background: url(/content/images/500x500.png);
	z-index: 1;
}
@media screen and (max-width: 950px) {
	#gsapElement {
		left: 50%;
		transform: translateX(-10%);
	}
}

#text_overlay-wrapper {
	margin:0 auto;
	width: 100%;
	position: absolute;
	top: 135px;
	z-index: 1;
}
.text_overlay {
	margin:0 auto;
	max-width: 1000px;
	position: relative;
}
.text_overlay h1{
	font-size: 70px;
	box-sizing: border-box;
	padding: 0;
	line-height: 80px;
	letter-spacing: 0px;
	color: #4e4e4e;
	z-index: 999;
	overflow: hidden;
}
.text_overlay h1 div {
	color: #fff;
	padding-top: 20px;
	font-size: 72px;
}
@media screen and (max-width: 950px) {
	video {
		top: 55px;
		height: 600px;
	}
	#video_mask {
		display: none;
	}

	#text_overlay-wrapper {
		top: 120px;
	}
	.text_overlay h1 {
		padding: 0 25px;
	}
	.text_overlay h1,
	.text_overlay h1 div {
		font-size: 35px;
		line-height: 50px;
	}
	.text_overlay h1 div {
		padding-top: 5px;
	}
}

/*
#concept-wrapper {
	margin: 125px auto 0;
	max-width: 1000px;
	box-sizing: border-box;
	z-index: 1;
}
#concept {
	padding: 40px 30px 20px;
	max-width: 700px;
	background: rgba(5,102,179,0.6);
}
#concept p {
	font-size: 20px;
	line-height: 170%;
	padding: 10px 5px;
	color: #fff;
	font-weight: 500;
}
@media screen and (max-width: 950px) {
	#concept-wrapper {
		margin: 200px auto 0;
		padding: 0 10px;
	}
	#concept p {
		font-size: 16px;
	}
}
*/

#concept-wrapper {
	margin: 130px auto 0;
	max-width: 1000px;
	box-sizing: border-box;
	z-index: 1;
	font-size: 20px;
}
#concept {
	padding: 15px 30px;
	max-width: 700px;
	background: rgba(5,102,179,0.5);
}
#concept p {
	font-size: 18px;
	line-height: 140%;
	padding: 10px 0;
	color: #fff;
	font-weight: 500;
}
@media screen and (max-width: 1000px) {
	#concept-wrapper {
		padding: 0 15px;
	}
	#concept p {
		font-size: 16px;
	}
}

#works_wrapper {
	padding: 100px 0;
	width: 100%;
	background: #fff;
	color: #666;
}
@media screen and ( max-width: 950px ) {
	#works_wrapper {
	padding: 150px 0 100px;
	}
}

#services {
	padding: 0 0 25px;
}
#services_wrapper {
	padding: 75px 0;
	margin: 50px auto 150px;
	max-width: 1200px;
	background: #0566B3;
	color: #fff;
	background-image: url("/content/images/iStock.jpg"); 
	background-position: top center; 
	background-attachment: fixed;
	z-index: -1;
}
.services {
	text-align: center;
	padding: 25px 0;
	width: 100%;
	max-width: 1000pxx
	margin: 0 auto;
}
.services h1 {
	font-family: "Inter", sans-serif;
	font-optical-sizing: auto;
	font-weight: 600;
	font-style: normal;
	font-size: 50px;
	line-height: 140%;
	padding: 50px 0 0;
	color: #fff;
	/*text-shadow: 0px 0px 2px #000;*/
}
.services h2 {
	line-height: 160%;
	font-size: 30px;
	padding: 0 0 25px;
	font-weight: 500;
	/*text-shadow: 0px 0px 2px #000;*/
}
.services img {
	max-width: 100%;
}

@media screen and ( max-width: 950px ) {
	#services_wrapper {
		padding: 35px 0;
		margin: 0 auto;
	}
	.services {
		padding: 30px 0;
	}
	.services h1 {
		font-size: 34px;
		line-height: 140%;
		padding: 0;
		/*text-shadow: 0px 0px 2px #000;*/
	}
	.services h2 {
		font-size: 18px;
		padding: 0 0 10px;
	}
}

#about_wrapper {
	padding: 100px 0;
	width: 100%;
	background: #fff;
	color: #666;
}
@about screen and ( max-width: 950px ) {
	#works_wrapper {
	padding: 150px 0 100px;
	}
}

#company_wrapper {
	margin-top: -100px;
	padding: 100px 25px 50px;
	width: 100%;
	color: #666;
}
@media screen and ( max-width: 950px ) {
	#company_wrapper {
		margin-top: -150px;
		padding: 100px 25px 0;
		width: 100%;
		color: #666;
	}
}

#news_wrapper {
	padding: 100px 0 50px;
	width: 100%;
	background: #fff;
	color: #666;
}
#news ul li:first-child  {
	border-top: 1px solid #ddd;
}
#news ul li {
	padding: 25px;
	color: #333;
	border-bottom: 1px solid #ddd;
}
@media screen and ( max-width: 950px ) {
	#news_wrapper {
	}
}


div.caption {
	font-family: "Inter", sans-serif;
	font-optical-sizing: auto;
	font-weight: 600;
	font-style: normal;
	color: #3e3e3e;
	font-size: 65px;
	padding: 0 25px;
	letter-spacing: 3px;
	line-height: 150%;
}
#concept div.caption {
	padding: 10px 0;
	color: #fff;
}
#works div.caption {
}
#services div.caption {
	color: #fff;
}
#company div.caption {
	padding: 0;
}
#news div.caption {
}

@media screen and ( max-width: 950px ) {
	div.caption {
		font-weight: 700;
		font-size: 38px;
	}
}

div.caption1 {
	font-size: 30px;
	color: #5e5e5e;
}
div.caption1 .small {
	font-size: 60%;
	padding-left: 10px;
}

#concept div.caption1 {
	padding: 0 0 10px;
	color: #fff;
	font-weight: 900;
}
#ec div.caption1 {
	padding: 0 0 25px 25px;
}
#works div.caption1 {
	padding: 0 0 50px 25px;
}
#services div.caption1 {
	color: #fff;
	padding: 0 0 0 25px;
}
#company div.caption1 {
	padding: 0 0 25px 0;
}
#news div.caption1 {
	padding: 0 0 25px 25px;
}

@media screen and ( max-width: 950px ) {
	div.caption1 {
		font-size: 20px;
	}
	#works div.caption1 {
		padding: 0 10px 25px 25px;
	}
	#concept div.caption1 {
		font-size: 22px;
		font-weight: 900;
	}
}
