@charset "utf-8";


.skip {
  width: 1px;
  color: #000;
  font-size: 0.1%;
  line-height: 0.1;
  background-color: #fff;
  position: absolute;
  left: -9999px;
  z-index: 9999;
}


#blockskip{
}
#blockskip a {
	width: 1px;
	color: #fff;
	font-size: 0.1%;
	line-height: 0.1;
	background-color: #000;
	position: absolute;
	left: -3000px;
	z-index: 9999;
    text-align: center;
    padding: 5px 0;
    top: auto;
}
#blockskip a:active {
	display: block;
	width: 99.99%;
	font-size: 16px;
	font-size: 1.6rem;
	font-size: 100%;
	line-height: 1.6;
	top: 0;
	left: 0;
}  
#blockskip a:focus {
	display: block;
	width: 99.99%;
	font-size: 16px;
	font-size: 1.6rem;
	font-size: 100%;
	line-height: 1.5;
	top: 0;
	left: 0;
}


.greeting {
  padding-top: 30px;
}
.greeting__image {
  position: relative;
  margin-bottom: 30px;
  font-size: 1.4rem
}
.greeting__image > img {
    margin-bottom: 20px;
    border-radius: 6px;
  }
.greeting__lead {
  position: absolute;
  top: -40px;
  right: 20px;
  width: 25%;
}
.greeting__name > img {
  display: inline-block;
  width: auto;
  height: 2em;
  vertical-align: bottom;
}
[data-bg="lightgray"]::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    z-index: -1;
    width: 100vw;
    margin-left: -50vw;
    background: #f7f8f8;
  }
@media (min-width: 45.001em) {
  .greeting {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
  }
  .greeting__image {
    flex: 1 0 50%;
    max-width: 50%;
  }
  .greeting__body {
    flex: 1 0 45.45%;
    max-width: 45.45%;
  }
}
@media (min-width: 60.001em) {
    .greeting__image > img {
      width: 120%;
      max-width: none;
    }
  .greeting__lead {
    top: -70px;
    right: 0;
    width: 32%;
  }
  .history {
    padding-bottom: 120px;
  }
  .history__header {
    height: 440px;
  }
  .csr-banner {
    height: 720px
  }
    .csr-banner .icon {
      font-size: 62px;
    }
}
@media (min-width: 75.001em) {
  .greeting__lead {
    right: -40px;
  }
}
/**/


    .wrap{
      padding-top: 0;
    }
    header {
      padding: 1.5em 0;
      padding:.5em 0;
      border-bottom: 1px solid #CCC;
    }
    header .container{
      display: flex;
    }
header nav{
      margin-left: auto;
  
}
    header ul{
      margin: 0;
      display: flex;
      list-style: none;
      align-items: center;
    }
    header ul li {
      margin-left: 2em;
    }
    
    header ul li a{
      color: #000;
      text-decoration: none;
    }
    header ul li a:hover{
      text-decoration: underline;
    }
/*humb*/



@mixin burgerSpan {
  display: inline-block;
  position: absolute;
  width: 100%;
  height: 3px;
  background-color: #000;
}


header {
}


nav {
  display: flex;
  align-items: center;

  @media screen and (max-width: 48em) {
    nav {display: inline;}
  }
  
}

.menu__box {
  display: flex;
  flex-direction: row;
  list-style-type: none;
  
  @media screen and (max-width: 48em) {
    flex-direction: column;
    position: fixed;
    visibility: hidden;
    top: 0;
    left: 0;
    width: 100%;
    height: 17em;
    margin: -600px 0 0 0;
    padding: 0.6em 0;
    text-align: center;
    background-color: #FFF;
    box-shadow: 1px 0 6px rgba(0, 0, 0, .2);
    z-index: 1;
    transition-duration: 0.5s;
  }

}

.menu__item {
  display: flex;
  flex-direction: column;
  padding: 0 1em 0 1.9em;
  color: #ffffff;
  font-family: sans-serif;
  font-size: 14px;
  font-weight: 400;
  text-decoration: none;
  text-transform: uppercase;
  
  @media screen and (max-width: 48em) {
    display: block;
    padding: 12px 24px;
    color: #ffffff;
    font-size: 18px;
    transition-duration: 0.5s;

    &:hover {background-color: #4f5464;}
    
  }
  
}

#menu__toggle {
  opacity: 0;
  
  &:checked ~ .menu__btn > span {
    transform: rotate(45deg);
    }

  &:checked ~ .menu__btn > span::before {
    top: 0;
    transform: rotate(0);
  }

    &:checked ~ .menu__btn > span::after {
      top: 0;
      transform: rotate(90deg);
  }

    &:checked ~ .menu__box {
      visibility: visible;
      left: 0;
      margin: 0;
  }

}

.menu__btn {
  transition-duration: 0.25s;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  position: relative;
  bottom: 2px;
  width: 26px;
  height: 26px;
  cursor: pointer;
  z-index: 2;
  
  span {
  display: inline-block;
  position: absolute;
  width: 100%;
  height: 3px;
  background-color: #000;
    
    &::before {
  display: inline-block;
  position: absolute;
  width: 100%;
  height: 3px;
  background-color: #000;
      content: '';
      top: -8px;
      transition-duration: 0.25s;
    }

    &::after {
  display: inline-block;
  position: absolute;
  width: 100%;
  height: 3px;
  background-color: #000;
      content: '';
      top: 8px;
      transition-duration: 0.25s;
    }
  
  }
  
  @media screen and (min-width: 48em) {display: none;}

}


.insta-imgs{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.insta-imgs div{
  @media screen and (max-width: 48em) {
  width: calc(100% / 2 - 10px);
  }
}
.insta-imgs img{
  width: 100%;
}

    .topMain{
      text-align: center;
      background:url("../img/main.png") no-repeat;
      background-size:cover;
    }
.topMain.page{
  background: #261E1C;
}

.page h1{
  color:#FFF;
  padding: 1em 0;
      font-size: 4.5rem;

}    
h2{
  margin-top: 2em;
}
h3{
  color: #000;
  margin-top: 1em;
  font-size:2.4rem;
}

body:not(.is-top) h2{
  color: #C2493B;
  font-size:3rem;
  margin-top: 1em;
}



 @media screen and (max-width: 48em) {
   .page h1{
     font-size: 3rem;
   }
   body:not(.is-top) h2{
     font-size: 2.4rem;
   }
   h3{
     font-size: 1.5rem;
   }
}


    .heading .en{
  color: #C2493B;
    }
.company-table th span::before{
  border-left: 2px solid #666;
}

    .container{
      max-width: 1367px;
    }
    
body:not(.is-top) .main .container{
  max-width: 1000px;
}

    .greeting__image{
      flex:none;
    }
    
    
    @media (min-width: 45.001em) {
  .greeting__body {
    flex: 1 0 45.45%;
    max-width: 70.45%;
  }
}
    
    @media (min-width: 60.001em) {
  .greeting__image > img {
    width: 100%;
    max-width: none;
  }
}
    @media (min-width: 60.001em) {
  .section {
    padding: 2em 0;
  }
}
    .access-wrap{
      @media (min-width: 45.001em) {
      display: flex;
      }
      column-gap: 2em;
    }
.pagetopBtn{
  text-align: right;
  padding-right: 1em;
}

footer{
  margin-top: 2em;
}
    .copy{
      text-align: center;
      padding: .5em 0;
    }