@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,500,700,900&display=swap');

@font-face {
  font-family: 'Sigma-Regular';
  src: url('../fonts/.eot?#iefix') format('embedded-opentype'),
  url('../fonts/Sigma-Regular.woff') format('woff'),
  url('../fonts/Sigma-Regular.ttf')  format('truetype'),
  url('../fonts/Sigma-Regular.svg#Sigma-Regular') format('svg');
  font-weight: normal;
  font-style: normal;
}

h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, var,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video, ul, li {
	margin:0;
	padding:0;
	border:0;
	outline:0;
	font-size:100%;
	vertical-align:baseline;
	background:transparent;
	list-style:none;
}

article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
	display:block;
}

*, *:before, *:after {
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	box-sizing: border-box;
	outline:none;
  position: relative;
}

.clearfix:after {
	content: ".";
	display: block;
	clear: both;
	visibility: hidden;
	line-height: 0;
	height: 0;
}

.clearfix {
	display: block;
}

html, body {
	width:100%;
	height:100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body {
  font-family: 'Sigma-Regular';
  font-size: 18px;
	color:#101010;
	padding:0;
	margin:0;
	text-size-adjust: none ;
	-webkit-text-size-adjust:none;
	transition: background-color 1s ease;
}

img {
	display:block;
	max-width:100%;
	margin:0 auto;
}

a{
	color:#101010;
	text-decoration:none;
	transition:all .5s ease;
	-webkit-transition:all .5s ease;
	-moz-transition:all .5s ease;
	position: relative;
}

a:hover{
	color:#101010;
}

hr{
  border:0px;
  border-bottom:1px solid #101010;
  margin:20px 0;
}

h1, h2, h3, h4, h5, h6{
  font-family: 'Sigma-Regular';
}

h2{
  font-size:78px;
  line-height:1em;
  text-transform:uppercase;
  letter-spacing:-3px;
}

h3{
  font-size:58px;
  line-height:1.1em;
  text-transform:uppercase;
}

p{
	font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  line-height: 22px;
}

strong{
  font-weight:600;
}

.btn{
  text-transform:uppercase;
  display:inline-block;
  color:#101010;
  padding:13px 50px;
  background:transparent;
  border:1px solid #101010;
  cursor:pointer;
}

.btn:hover{
  color:#ffffff;
  background:#101010;
  border:1px solid #101010;
}

ul li{
  font-family: 'Sigma-Regular';
  font-size: 18px;
}

.container{
	width:100%;
  max-width:1280px;
  margin:0 auto;
}

header, footer, .our-companies{
	float:left;
	width:100%;
}

header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:20px;
}

.logo img{
  height:90px;
  margin:0;
}

nav{
  transform: translate(calc(-1 * calc(50vw - 660px)), 0);
}

nav a{
  font-family: 'Noto Sans JP', sans-serif;
  text-decoration:underline;
}

.our-companies{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  height:calc(100vh - 210px);
}

.company{
  width:33.33%;
  height:100%;
  position:relative;
  overflow:hidden;
}

.company img{
  position:absolute;
  left:50%;
  top:0;
  height:100%;
  width:auto;
  max-width:inherit;
  transform:translate(-50%, 0);
  z-index:0;
}

.company-details-overlay{
  text-align:center;
  position: absolute;
  left:0;
  top:calc(100% - 160px);
  width:100%;
  height:100%;
  z-index:1;
  transition:all .5s ease;
  -webkit-transition:all .5s ease;
  -moz-transition:all .5s ease;
}

.company:hover .company-details-overlay,
.company-details-overlay.active{
  top:-160px;
}

.company-details-overlay .company-logo{
  display: inline-block;
  width: 100%;
  height:160px;
  padding: 10px;
  margin: 0 auto;
  background:rgba(255, 255, 255, .8);
  cursor: pointer;
}

.company-details-overlay .company-logo img{
  position: relative;
  display: inline-block;
  left:0;
  transform:translate(0, 0);
  height:100%;
  width:auto;
  max-width:60%;
}

.company-details-overlay .company-details{
  text-align:left;
  padding:25px 50px;
  width: 100%;
  height:100%;
  max-height:100%;
  color:#101010;
  background:rgba(255, 255, 255, .8);
  overflow:auto;
}

.company-details-overlay .company-details h4{
  font-family: 'Noto Sans JP', sans-serif;
  text-transform:uppercase;
}

.company-details-overlay .company-details a{
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight:500;
  position:relative;
  z-index:2;
}

.company-details-overlay .company-details p{
  margin-bottom:20px;
}

.company-details-overlay .company-details .social{
  text-align:center;
  display:inline-block;
  width:100%;
  margin-bottom:25px;
}

.company-details-overlay .company-details .social a.instagram{
  display:inline-block;
  width:18px;
  height:18px;
  background:url(../images/instagram-dark.svg) center bottom no-repeat;
  background-size:16px;
  text-indent:-9999999px;
  margin-right: 10px;
}

.company-details-overlay .company-details .social a.facebook{
  display:inline-block;
  width:18px;
  height:18px;
  background:url(../images/facebook-dark.svg) center bottom no-repeat;
  background-size:18px;
  text-indent:-9999999px;
  margin-right: 10px;
}

.company-details-overlay .company-details .social a.linkedin{
  display:inline-block;
  width:18px;
  height:18px;
  background:url(../images/linkedin-dark.svg) center bottom no-repeat;
  background-size:16px;
  text-indent:-9999999px;
  margin-right: 10px;
}

.company-details-overlay .company-details .social a.email{
  display:inline-block;
  width:18px;
  height:18px;
  background:url(../images/email-dark.svg) center bottom no-repeat;
  background-size:18px;
  text-indent:-9999999px;
  margin-right: 10px;
}

.company-details-overlay .company-details .social a.web{
  display:inline-block;
  width:18px;
  height:18px;
  background:url(../images/web-dark.svg) center bottom no-repeat;
  background-size:16px;
  text-indent:-9999999px;
  margin-right: 10px;
}

footer{
  font-family: 'Sigma-Regular';
  font-size:22px;
  color:#ffffff;
  display:flex;
  justify-content:center;
  align-items:center;
  text-align:center;
  height:80px;
  background:#474747;
}

footer .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
}

.footer-block{
  width:33.33%;
  font-family: 'Sigma-Regular';
  font-size:18px;
  text-align:left;
}

.footer-block:nth-child(2){
  text-align:center;
}

.footer-block:nth-child(3){
  text-align:right;
}

.footer-block img{
  display:inline-block;
  height:16px;
  margin-right:10px;
}

.footer-block a{
  color:#ffffff;
}

.footer-block:nth-child(2) a:hover{
  text-decoration:underline;
}

.footer-block a.linkedin{
  display:inline-block;
  width:18px;
  height:18px;
  background:url(../images/linkedin.svg) center bottom no-repeat;
  background-size:16px;
  text-indent:-9999999px;
  margin-right: 10px;
}

.footer-block a.email{
  display:inline-block;
  width:18px;
  height:18px;
  background:url(../images/email.svg) center bottom no-repeat;
  background-size:18px;
  text-indent:-9999999px;
}

.footer-block a:last-child{
  margin-right:0;
}

.overlay{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100vh;
  background:rgba(255, 255, 255, .8);
  background:rgba(81, 81, 81, .7);
  z-index:2;
  display:none;
}

.overlay-wrapper{
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  height:100%;
}

.overlay-close{
  position:absolute;
  top:15px;
  right:15px;
  width:28px;
  height:28px;
  background:url(../images/close.svg) center no-repeat;
  background-size:12px;
  border:0 !important;
}

.overlay-container{
  padding:35px;
  width:100%;
  max-width:500px;
  background:#ffffff;
  background:rgba(81, 81, 81, 1);
}

.overlay-visible .overlay-container{
  animation-name: overlay-animation;
  animation-duration: .5s;
  animation-fill-mode: forwards;
}

@keyframes overlay-animation {
  from {transform:translate(0, 50px); opacity:0; visibility:hidden;}
  to {transform:translate(0, 0); opacity:1; visibility:visible;}
}

.overlay-hidden .overlay-container{
  animation-name: overlay-animation-rev;
  animation-duration: .5s;
  animation-fill-mode: forwards;
}

@keyframes overlay-animation-rev {
  from {transform:translate(0, 0); opacity:1; visibility:visible;}
  to {transform:translate(0, 50px); opacity:0; visibility:hidden;}
}

.overlay-visible .overlay-container{
  transform:translate(0, 0);
}

.overlay-container h3{
  color:#ffffff;
  margin-bottom:15px;
}

.overlay-container p{
  font-family: 'Sigma-Regular';
  font-size:20px;
  color:#ffffff;
}

.overlay-container a{
  font-family: 'Sigma-Regular';
  font-size:20px;
  color:#ffffff;
  border-bottom:1px solid #ffffff;
}

@media screen and (max-width:1380px) {
  .container{
    padding:0 50px;
  }
  nav{
    transform: translate(calc(-1 * calc(50vw - 610px)), 0);
  }
}

@media screen and (max-width:1280px) {
  nav{
    transform: translate(-30px, 0);
  }
}

@media screen and (max-width:1180px) {
  .logo img{
    height:90px;
    margin:0;
  }
  .our-companies{
    height: calc(100vh - 210px);
  }
  .company-details-overlay h3{
    font-size:24px;
  }
  .company-details-overlay .company-details{
    padding:20px;
  }
}

@media screen and (max-width:980px) {
  .footer-block span a,
  .footer-block span a:last-child,
  .footer-block a{
    margin-right:10px;
  }
}

@media screen and (max-width : 767px) {
  .container{
    padding:0 20px;
  }
  .logo img{
    height:48px;
    margin:0;
  }
  nav{
    transform: translate(0, 0);
  }
  .our-companies{
   height:initial; 
  }
  .company{
    width: 100%;
    height:inherit;
  }
  .company img{
    position:relative;
    width: 100%;
    height:auto;
    left:inherit;
    top:inherit;
    transform:translate(0,0);
  }
  .company-details-overlay{
    position:relative;
    left:inherit;
    top:inherit;
    transform:translate(0,0);
    margin-top:-90px;
  }
  .company:hover .company-details-overlay,
  .company-details-overlay.active{
    top:inherit;
  }
  .company-details-overlay .company-logo{
    height:90px;
  }
  .company-details-overlay .company-logo img{
    width:auto;
    max-width:260px;
  }
  .company-details-overlay .company-details{
    max-height:inherit;
  }
  .company-details-overlay .company-details .btn{
    padding: 10px 40px;
    margin:0 auto;
  }
  footer{
    height:auto;
    padding:15px 0;
  }
  .footer-block,
  .footer-block:nth-child(3){
    text-align:center;
    width:100%;
    margin:5px 0;
  }
  .footer-block span{
    display:inline-block;
    width:100%;
    margin-bottom:10px;
  }
  .footer-block > img,
  .footer-block > img:last-child{
    margin:0 5px;
  }
  .footer-block a,
  .footer-block a:last-child{
    margin:0 5px !important;
  }
  .footer-block span a,
  .footer-block span a:last-child{
    margin:0;
  }
}