@charset "UTF-8";

/****************************************
	main-content
****************************************/

.main-content {
	margin:90px 0px 0px;
}


/****************************************
	common
****************************************/

h1 {
	position:relative;
	padding:30px 7% 30px;
	margin:0;
	color:#000;
	font-size:36px;
	font-weight:200;
	letter-spacing:0.1em;
} 

h1 small {
	display:block;
	letter-spacing:0.05em;
	font-size:13px;
	font-weight:300;
}

h1::after {
	content: '';
	width: 100%;
	height: 1px;
	background:#000;
	position: absolute;
	bottom: 0;
	left: 0;
	transform: scale(1,1); /* 線のx軸の長さを0 */
	transition: 3s; /* 要素の変形する時間*/
	transform-origin: left top; /* 要素の座標の原点を設定*/
}



/****************************************
	header
****************************************/
header {
	border-bottom:1px solid #000;
}










/****************************************
	company / business
****************************************/

.c-title-img {
	position:relative;
	padding-top:min(50%, 580px);
	/*background:#fff;*/
}

.c-title-img::before {
	content:"";
	position:absolute;
	top:0;
	left:0;
	padding-top:min(41%, 500px);
	width:100%;
	background: #135baa;;
}

.c-title-img div {
	position:absolute;
	bottom:0;
	right:0;
	width:93%;
	height:auto;
}

.c-title-img img {
	object-fit:cover;
	width:100%;
	height:100%;
	max-height:500px;
}






/****************************************
	company
****************************************/
section#company {
	position:relative;
}

/*
section#company #greeting {
	padding:40px 7%;
	border-bottom:1px solid #000;
}

section#company #greeting .flex {
	justify-content:center;
	align-items:center;
}

section#company #greeting .c-g-dtl {
	width:calc(100% - 230px);
}

section#company #greeting .c-g-dtl .c-g-title {
	font-size:22px;
	letter-spacing:0.1em;
}

section#company #greeting .c-g-link {
	width:230px;
}

section#company #greeting .c-g-link a {
	display:inline-block;
	width:200px;
	text-align:center;
	border:1px solid #000;
	padding:10px 40px 10px 20px;
	color:#000;
	transition:.4s;
}

section#company #greeting .c-g-link a:hover {
	background:#555;
	color:#fff;
	text-decoration:none;
}


section#company #greeting .c-g-link a::after {
	content:"→";
	position:absolute;
	top:6px;
	right:20px;
	width:16px;
	height:16px;
	font-size:22px;
	font-weight:200;
}
*/



section#company #greeting .g-info {
	position:relative;
	width:40%;
	padding:50px 30px;
	letter-spacing:0.1em;
	font-size:14px;
	line-height:1.5em;
	border-right:1px solid #000;
}

section#company #greeting h2 {
	font-size:22px;
	padding:0px 0px 30px;
	margin:0;
}

section#company #greeting .g-ceo {
	position:relative;
	width:60%;
}

section#company #greeting .g-ceo .g-c-info {
	padding:0px 0px 30px;
}


section#company #greeting .g-ceo .g-c-info .g-c-img img {
	width:100%;
}




section#company #greeting .g-ceo .g-c-info .g-c-img-sp {
	display:none;
}


section#company #greeting .g-ceo .g-c-info .g-c-msg {
	padding:20px 30px;
	font-size:14px;
}


section#company #greeting .g-ceo .g-c-info .g-c-msg .g-c-name-en {
	padding:10px 10px 0px;
	white-space:normal;
	font-size:28px;
	font-weight:300;
	text-align:center;
}

section#company #greeting .g-ceo .g-c-info .g-c-msg .g-c-name {
	padding:0px 10px 10px;
	white-space:normal;
	font-size:16px;
	font-weight:300;
	text-align:center;
}

section#company #greeting .g-ceo .g-c-info .g-c-msg .g-c-title {
	padding:0px 10px 10px;
	white-space:normal;
	font-size:14px;
	font-weight:300;
	text-align:center;
}

section#company #greeting .g-ceo .g-info .g-c-msg p {
	padding:0 10px;
}









section#company h2 {
	padding:0;
	font-weight:400;
	font-size:clamp(22px, 6.5vw, 60px);
	letter-spacing:0.1em;
}

section#company h2 span {
	display:block;
	font-size:16px;
}

section#company #overview {
	position:relative;
	padding:40px 7%;
}

section#company #overview table {
	width:100%;
	margin:40px 0px;
}

section#company #overview tr {
	border-bottom:1px solid #c0c0c0;
}

section#company #overview tr:nth-child(odd) {
	background:rgba(240,240,240,.8);
}

section#company #overview tr:nth-child(even) {
	background:rgba(248,248,248,.8);
}

section#company #overview tr:first-child {
	border-top:1px solid #c0c0c0;
}

section#company #overview th {
	width:300px;
	padding:30px;
	font-weight:300;
	text-align:left;
	vertical-align:top;
}

section#company #overview td {
	width:cals(100% - 300px);
	padding:30px;
	font-weight:300;
	text-align:left;
	vertical-align:top;
}

.history-bg {
	background:#f0f0f0;
}


section#company #history {
	position:relative;
	padding:40px 7%;
	background:url(../img/company_history_bg.jpg);
	background-size:100%;
	background-repeat:repeat-y;
	overflow:hidden;
}

section#company #history dl {
	margin:140px 7% 140px 35.5%;
	width:57.5%;
	max-width:980px;
	transition:.4s;
}


section#company #history dt {
	position:relative;
	font-size:60px;
	font-weight:600;
	padding-left:20px;
}

section#company #history dt span {
	display: inline-block;
	opacity: 0;
	transform: translate(200px, -100px) scale(2);
}

section#company #history dt span.c-h-animation {
	animation: ballDrop 1s forwards;
}


@keyframes ballDrop {
	60% {
		transform: translate(0, 20px) rotate(-180deg) scale(.5);
	}

	100% {
		transform: translate(0) rotate(0deg) scale(1);
		opacity: 1;
	}
}

section#company #history dt::after {
	content: "●";
	color: #135baa;
	position:absolute;
	top:31px;
	left:-8px;
	font-size:17px;
}

section#company #history dd {
	padding:0px 0px 30px 30px;
}

section#company #history dd span {
	display:block;
	font-size:20px;
	font-weight:600;
}




section#company #management {
	position:relative;
	padding:40px 7%;
	background:#f0f0f0;
}

section#company #management h2 {
	text-align:right;
}

section#company #management dl {
	margin:40px 5%;
	background:#fff;
	width:40%;
	max-width:980px;
	transition:.4s;
}

section#company #management dt {
	position:relative;
	font-size:14px;
	color:#135baa;
	font-weight:600;
	padding:10px 20px;
}

section#company #management dt::before {
	content: '';
	width: 100%;
	height: 1px;
	background:#135baa;
	position: absolute;
	bottom: 0;
	left: 0;
	transform: scale(0,1); /* 線のx軸の長さを0 */
	transition: 3s; /* 要素の変形する時間*/
	transform-origin: left top; /* 要素の座標の原点を設定*/
}

section#company #management dt.active::before {
	transform: scale(1,1); /* 線のx軸の長さを1 */
}

section#company #management dt::after {
	content: '';
	width: 25%;
	height: 1px;
	background:#000;
	border-radius:22px;
	position: absolute;
	bottom: 0px;
	left: 0;
	transform: scale(0,1); /* 線のx軸の長さを0 */
	transition: 0.75s; /* 要素の変形する時間*/
	transform-origin: left top; /* 要素の座標の原点を設定*/
}

section#company #management dt.active::after {
	transform: scale(1,1); /* 線のx軸の長さを1 */
}

section#company #management dt span {
	display:block;
	font-size:18px;
}


section#company #management dd {
	font-size:14px;
	padding:20px 0px 30px 20px;
}

section#company #management dd span {
	display:block;
	font-size:20px;
	font-weight:600;
}




section#company #dispatch {
	position:relative;
	padding:40px 7%;
}

section#company #dispatch table {
	width:100%;
	margin:40px 0px;
}

section#company #dispatch tr {
	border-bottom:1px solid #c0c0c0;
}

section#company #dispatch tr:nth-child(odd) {
	background:rgba(240,240,240,.8);
}

section#company #dispatch tr:nth-child(even) {
	background:rgba(248,248,248,.8);
}

section#company #dispatch tr:first-child {
	border-top:1px solid #c0c0c0;
}

section#company #dispatch th {
	width:300px;
	padding:30px;
	font-weight:300;
	text-align:left;
	vertical-align:top;
}

section#company #dispatch td {
	width:cals(100% - 300px);
	padding:30px;
	font-weight:300;
	text-align:left;
	vertical-align:top;
}


@media screen and (max-width:1280px) {
	/*
	section#company #management dl {
		margin:40px 1%;
		width:48%;
	}
	*/

	section#company #management dt strong {
		display:block;
	}

}





@media screen and (max-width:768px) {

	/*
	section#company #greeting .c-g-dtl {
		width:100%;
	}

	section#company #greeting .c-g-link {
		width:100%;
		text-align:center;
		padding:40px 0px 0px;
	}
	*/

	section#company #greeting .g-info {
		width:100%;
		padding:50px 30px;
		letter-spacing:0.1em;
		font-size:14px;
		line-height:1.5em;
		border-right:none;
	}


	section#company #greeting .g-ceo {
		position:relative;
		width:100%;
		border-top:1px solid #000;
	}

	section#company #greeting .g-ceo .g-c-info .g-c-img img.g-c-img-pc {
		display:none;
	}


	section#company #greeting .g-ceo .g-c-info .g-c-img img.g-c-img-sp {
		display:block;
	}	




	section#company #overview tr:nth-child(odd) {
		background:none;
	}

	section#company #overview tr:nth-child(even) {
		background:none;
	}

	section#company #overview tr:first-child {
		border-top:1px solid #c0c0c0;
	}

	section#company #overview th {
		display:block;
		width:100%;
		padding:20px;
		background:#f0f0f0;
	}

	section#company #overview td {
		display:block;
		width:100%;
		padding:20px;
	}












	section#company #history dl {
		margin:70px 6.4%;
		width:87.2%;
		max-width:980px;
	}



	section#company #dispatch tr:nth-child(odd) {
		background:none;
	}

	section#company #dispatch tr:nth-child(even) {
		background:none;
	}

	section#company #dispatch tr:first-child {
		border-top:1px solid #c0c0c0;
	}

	section#company #dispatch th {
		display:block;
		width:100%;
		padding:20px;
		background:#f0f0f0;
	}

	section#company #dispatch td {
		display:block;
		width:100%;
		padding:20px;
	}



	section#company #management dl {
		margin:40px 1%;
		width:99%;
	}

	section#company #management dl strong {
		display:inline;
	}

}



@media screen and (max-width:480px) {

	section#company #management dl {
		margin:40px 1% 10px;
		width:99%;
	}

}


@media screen and (max-width:370px) {
	section#company #history dt {
		font-size:32px;
	}
}
















/****************************************
	recruit
****************************************/
section#recruit {
	position:relative;
}


section#recruit .r-area {
	position:relative;
	padding:0px 7% 40px;
}

section#recruit .r-area .r-a-title {
	margin-top:40px;
	font-size:50px;
	letter-spacing:0.1em;
}


section#recruit .r-area table {
	width:100%;
	margin:20px 0px 40px;
}

section#recruit .r-area tr {
	border-bottom:1px solid #c0c0c0;
}

section#recruit .r-area tr:nth-child(odd) {
	background:rgba(240,240,240,.8);
}

section#recruit .r-area tr:nth-child(even) {
	background:rgba(248,248,248,.8);
}

section#recruit .r-area tr:first-child {
	border-top:1px solid #c0c0c0;
}

section#recruit .r-area th {
	width:300px;
	padding:30px;
	font-weight:300;
	text-align:left;
	vertical-align:top;
}

section#recruit .r-area td {
	width:cals(100% - 300px);
	padding:30px;
	font-weight:300;
	text-align:left;
	vertical-align:top;
}

section#recruit .r-area .r-a-message {
	padding:20px;
	border:1px solid #000;
}


@media screen and (max-width:768px) {
	

	section#recruit .r-area tr:nth-child(odd) {
		background:none;
	}

	section#recruit .r-area tr:nth-child(even) {
		background:none;
	}

	section#recruit .r-area tr:first-child {
		border-top:1px solid #c0c0c0;
	}

	section#recruit .r-area th {
		display:block;
		width:100%;
		padding:20px;
		background:#f0f0f0;
	}

	section#recruit .r-area td {
		display:block;
		width:100%;
		padding:20px;
	}

}












/****************************************
	business
****************************************/
section#business {
	position:relative;
}

section#business .b-main-title {
	position:relative;
	background:#080808;
	color:#fff;
	display:flex;
	justify-content: center;
	align-items: flex-end;
	overflow:hidden;
}

section#business .b-main-title div {
	line-height:0.65em;
	font-size:clamp(55px, 8.5vw, 120px);
	text-align:center;
}

section#business .b-main-info {
	position:relative;
	padding:100px 0px;
	display:flex;
	justify-content:center;
	align-items:center;
} 

section#business .b-main-info::before {
	position:absolute;
	top:5px;
	right:0;
	content:"";
	background:url(../img/business_line.svg);
	background-repeat:no-repeat;
	background-size:80%;
	background-position-x:right;
	height:200px;
	width:400px;
}


section#business .b-main-info::after {
	position:absolute;
	bottom:5px;
	left:0;
	content:"";
	background:url(../img/business_line.svg);
	background-repeat:no-repeat;
	background-size:80%;
	background-position-x:right;
	height:200px;
	width:400px;
	transform:rotate(180deg);
}





section#business .b-main-info .flex {
	background:#135baa;
	max-width:900px;
	width:93%;
	padding:50px 0px;
	border-radius:22px;
}



section#business .b-main-info .b-m-i-img {
	display:flex;
	justify-content:center;
	align-items:center;
	width:40%;
	padding:0px 30px 0px;
	border-right:1px solid #fff;
}

section#business .b-main-info .b-m-i-img img {
	width:80%;
	max-width:150px;
}

section#business .b-main-info p {
	width:60%;
	color:#fff;
	padding:0px 50px 0px;
	line-height:3.0em;
}



section#business .business-bg {
	position:relative;
}


section#business h2 {
	font-size:clamp(22px, 6.5vw, 60px);
	letter-spacing:0.1em;
	padding:0;
}

section#business h2 span {
	display:block;
	font-size:16px;
}


section#business #it-solution {
	position:relative;
	padding:40px 7%;
}

section#business #quality-service {
	position:relative;
	padding:40px 7%;
}

section#business #engineering {
	position:relative;
	padding:40px 7%;
}

section#business .biz-block {
	margin:50px 0px 0px;
}


section#business .biz-block h3 {
  position:relative;
  padding:10px 20px;
  color:#333;
  font-size:clamp(17px, 4.5vw, 36px);
  font-weight:200;
}

section#business .biz-block h3 .bg {
  position:absolute;
  inset:0;
  background:#f5f5f5;
  transform:scaleX(0);
  transform-origin:left;
  z-index:-1;
}

section#business .biz-block p {
  opacity:0;
  transform:translateY(30px);
  letter-spacing:0.1em;
  line-height:2.0em;
  padding:10px 20px;
}



@media screen and (max-width:768px) {

	section#business .b-main-title div span {
		display:block;
	}

	section#business .b-main-info .b-m-i-img {
		width:100%;
		border-right:none;
		margin-bottom:35px;
	}

	section#business .b-main-info p {
		width:100%;
	}

}

@media screen and (max-width:480px) {
	section#business .b-main-info p {
		line-height:2.0em;
	}
}


/****************************************
	staff
****************************************/
section#staff {
	position:relative;
}

section#staff .s-info {
	position:relative;
	width:40%;
	padding:50px 30px;
	letter-spacing:0.1em;
	font-size:14px;
	line-height:1.5em;
	border-right:1px solid #000;
}

section#staff .s-info .s-i-title {
	font-size:22px;
	padding:0px 0px 30px;
}

section#staff .s-info .s-i-title span {
	display:inline-block;
}

section#staff .s-ceo {
	position:relative;
	width:60%;
}

section#staff .s-ceo .s-c-info {
	padding:0px 0px 30px;
}


section#staff .s-ceo .s-c-info .s-c-img img {
	width:100%;
}




.img-wrap {}

.img-animation {
  animation: img-wrap 2s cubic-bezier(0.4, 0, 0.2, 1);
}


@keyframes img-wrap {
  0% {
    clip-path: circle(0 at 50% 50%);
    -webkit-clip-path: circle(0 at 50% 50%);
  }

  100% {
    clip-path: circle(100% at 50% 50%);
    -webkit-clip-path: circle(100% at 50% 50%);
  }
}



/*
 
.img-wrap {
  opacity: 0;
}

.img-animation {
  animation: img-opacity 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  overflow: hidden;
  position: relative;
}

.img-animation::before {
  animation: img-animation 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  background: #fff;
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}

@keyframes img-opacity {
  100% {
    opacity: 1;
  }
}

@keyframes img-animation {
  100% {
    transform: translateX(100%);
  }
}
 
*/










section#staff .s-ceo .s-c-info .s-c-img img.s-c-img-sp {
	display:none;
}


section#staff .s-ceo .s-c-info .s-c-msg {
	padding:20px 30px;
	font-size:14px;
}


section#staff .s-ceo .s-c-info .s-c-msg .s-c-name-en {
	padding:10px 10px 0px;
	white-space:normal;
	font-size:28px;
	font-weight:300;
	text-align:center;
}

section#staff .s-ceo .s-c-info .s-c-msg .s-c-name {
	padding:0px 10px 10px;
	white-space:normal;
	font-size:16px;
	font-weight:300;
	text-align:center;
}

section#staff .s-ceo .s-c-info .s-c-msg .s-c-title {
	padding:0px 10px 10px;
	white-space:normal;
	font-size:14px;
	font-weight:300;
	text-align:center;
}

section#staff .s-ceo .s-c-info .s-c-msg p {
	padding:0 10px;
}


section#staff .s-line1,
section#staff .s-line2 {
	position:relative;
	padding:5px 0px;
	border-top:1px solid #000;
	border-bottom:1px solid #000;
}

section#staff .s-line1 ul,
section#staff .s-line2 ul {
	display:flex;
}

section#staff .s-line1 li,
section#staff .s-line2 li {
	position:relative;
	padding:5px 70px 5px 10px;
	width:auto !important;
	margin-right:0 !important;
	font-size:12px;
	color:#551515;
	direction:ltr;
}

section#staff .s-area .s-a-box {
	display:flex;
	width:25%;
	padding:10px;
	gap:1px;
}

section#staff .s-area .s-a-box .s-a-space {
	border:1px solid #000;
}

section#staff .s-area .s-a-box .s-a-img {
	padding:10px;
	text-align:center;

}

section#staff .s-area .s-a-box .s-a-img img {
	width:90%;
}

section#staff .s-area .s-a-box .s-a-msg {
	font-size:14px;
	
}

section#staff .s-area .s-a-box .s-a-msg .s-a-name-en {
	padding:10px 10px 0px;
	white-space:normal;
	font-size:12px;
	font-weight:300;
	text-align:center;
}

section#staff .s-area .s-a-box .s-a-msg .s-a-name {
	padding:0px 10px 10px;
	white-space:normal;
	font-size:18px;
	font-weight:300;
	text-align:center;
}

section#staff .s-area .s-a-box .s-a-msg .s-a-title {
	padding:0px 10px 10px;
	white-space:normal;
	font-size:12px;
	font-weight:300;
	text-align:center;
}

section#staff .s-area .s-a-box .s-a-msg p {
	padding:0px 10px 10px;
}


@media screen and (max-width:940px) {

	section#staff .s-area .s-a-box {
		width:33.333%;
	}

}

@media screen and (max-width:768px) {

	section#staff .s-info {
		width:100%;
		padding:50px 30px;
		letter-spacing:0.1em;
		font-size:14px;
		line-height:1.5em;
		border-right:none;
	}


	section#staff .s-ceo {
		position:relative;
		width:100%;
		border-top:1px solid #000;
	}

	section#staff .s-ceo .s-c-info .s-c-img img.s-c-img-pc {
		display:none;
	}


	section#staff .s-ceo .s-c-info .s-c-img img.s-c-img-sp {
		display:block;
	}


	section#staff .s-area .s-a-box {
		width:50%;
		border-right:1px solid #000;
		border-bottom:1px solid #000;
	}




}


@media screen and (max-width:480px) {

	section#staff .s-area .s-a-box {
		width:100%;
		border:none;
	}

	section#staff .s-area .s-a-box .s-a-space {
		border:1px solid #000;
		padding:10px;
	}

	section#staff .s-area .s-a-box .s-a-img img {
		width:60%;
	}

}










/****************************************
	privacypolicy
****************************************/
section#privacypolicy 
#pipp,
section#privacypolicy 
#isbp,
section#privacypolicy 
#cookie-policy,
section#privacypolicy 
#analytics,
section#privacypolicy 
#recaptcha,
section#privacypolicy 
#external-services,
section#privacypolicy 
#consent {
	display:flex;
	flex-wrap:wrap;
}

/* ===== title ===== */

section#privacypolicy h2 {
	position:relative;
	width:450px;
	margin:0;
	padding:50px 30px;
	border-right:1px solid #000;
	border-bottom:1px solid #000;
	font-size:clamp(22px, 6.5vw, 30px);
	font-weight:400;
	transition:.4s;
}

section#privacypolicy h2 div {
	position:sticky;
	top:100px;
}

section#privacypolicy h2 small {
	display:block;
	font-size:14px;
	margin-top:15px;
}

/* ===== detail ===== */

section#privacypolicy 
#pipp .p-dtl,
section#privacypolicy 
#isbp .p-dtl,
section#privacypolicy 
#cookie-policy .p-dtl,
section#privacypolicy 
#analytics .p-dtl,
section#privacypolicy 
#recaptcha .p-dtl,
section#privacypolicy 
#external-services .p-dtl,
section#privacypolicy 
#consent .p-dtl {
	width:calc(100% - 450px);
	padding:50px;
	border-bottom:1px solid #000;
	transition:.4s;
}

/* ===== text ===== */

section#privacypolicy .p-dtl p {
	margin:0 auto 30px;
}

section#privacypolicy .p-dtl dl {
	width:100%;
}

section#privacypolicy .p-dtl dt {
	width:100%;
	font-size:18px;
	font-weight:600;
	padding:5px 0 10px;
}

section#privacypolicy .p-dtl dd {
	width:100%;
	font-weight:300;
	padding:5px 0 40px;
}

/* ==========================
   responsive
========================== */

@media screen and (max-width:1080px) {

	section#privacypolicy h2 {
		width:360px;
	}

	section#privacypolicy 
	#pipp .p-dtl,
	section#privacypolicy 
	#isbp .p-dtl,
	section#privacypolicy 
	#cookie-policy .p-dtl,
	section#privacypolicy 
	#analytics .p-dtl,
	section#privacypolicy 
	#recaptcha .p-dtl,
	section#privacypolicy 
	#external-services .p-dtl,
	section#privacypolicy 
	#consent .p-dtl {
		width:calc(100% - 360px);
	}

}

@media screen and (max-width:768px) {

	section#privacypolicy h2 {
		width:100%;
		border:1px solid #ddd;
	}

	section#privacypolicy 
	#pipp .p-dtl,
	section#privacypolicy 
	#isbp .p-dtl,
	section#privacypolicy 
	#cookie-policy .p-dtl,
	section#privacypolicy 
	#analytics .p-dtl,
	section#privacypolicy 
	#recaptcha .p-dtl,
	section#privacypolicy 
	#external-services .p-dtl,
	section#privacypolicy 
	#consent .p-dtl {
		width:100%;
	}

}


