@charset "UTF-8";

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

html {
  font-size: 62.5%;
  color: #333;
  letter-spacing: .6px;
  min-width: 320px;
}
body {
  font-family: 'Noto Sans JP', sans-serif;
  position: relative;
  overflow-x: hidden;
}
figure {
  margin: 0;
}
*:focus {
  outline: none !important;
}
a {
  -webkit-tap-highlight-color:rgba(0,0,0,0);
  cursor:pointer;
}
a,
a img {
  color: #fff;
  outline: none;
   -webkit-transition: 0.3s ease-in-out;
      -moz-transition: 0.3s ease-in-out;
        -o-transition: 0.3s ease-in-out;
           transition: 0.3s ease-in-out;
}
a:hover,
a:hover img {
  opacity: .70;
  filter: alpha(opacity=70);
  -ms-filter: "alpha(opacity=70)";
  -khtml-opacity: .70;
  -moz-opacity: .70;
}
a:hover {
  color: #fff;
}
img {
  width: 100%;
  max-width: 100%;
  height: auto;
  image-rendering: -webkit-optimize-contrast;
}
ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.clearfix::after {
   content: "";
   display: block;
   clear: both;
}



#topHeader {
  height: 100vh;
  height: 100svh;
  color: #fff;
  background: url(../img/main_bg.jpg) no-repeat;
  background-size: cover;
  background-position: center;
  position: relative;
}
#topHeader h1 {
  width: 140px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  z-index: 2;
}
#topHeaderScroll {
  width: 30px;
  position: absolute;
  bottom: 40px;
  left: calc(50% - 15px);
  animation: move-y 0.5s infinite alternate ease-in-out;
  z-index: 1;
}
#topHeaderScroll a:hover {
  opacity: 1;
}
@keyframes move-y {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(5px);
  }
}
@media all and (max-width: 768px) {
  #topHeader {
    background: url(../img/main_bg_sp.jpg) no-repeat;
    background-size: cover;
    background-position: center;
  }
  #topHeader h1 {
    width: 22.6vw;
  }
  #topHeaderScroll {
    width: 5.3vw;
    position: absolute;
    bottom: 30px;
    left: calc(50% - 2.65vw);
  }
}


#aboutBase {
  padding: 190px 0;
  color: #fff;
  background: url(../img/content_bg1.jpg) no-repeat;
  background-size: cover;
  background-position: center;
}
#aboutContent {
  width: 500px;
  padding: 0 0 105px;
  margin: 0 auto 105px;
  border-bottom: 1px solid #fff;
}
#aboutContent p {
  font-size: 17px;
  line-height: 200%;
  text-align: justify;
  text-justify: inter-ideograph;
}
#aboutCompany {
  width: 220px;
  margin: 0 auto 70px;
  text-align: center;
}
#aboutCompany h2 {
  padding: 8px 5px;
  margin: 0 0 20px;
  font-size: 20px;
  font-weight: 500;
  background-color: rgba(255,255,255,0.3);
}
#aboutCompany p {
  font-size: 15px;
}
#aboutList {
  width: 990px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  gap: 3.73333333333%;
}
#aboutList li {
  width: 22.2%;
}
#aboutList li h3 {
  padding: 8px 5px;
  margin: 0 0 20px;
  font-size: 20px;
  font-weight: 500;
  background-color: rgba(255,255,255,0.3);
}
#aboutList li p {
  font-size: 14px;
}
@media all and (max-width: 1000px) {
  #aboutList {
    width: calc(100% - 10%);
    flex-wrap: wrap;
    gap: 20px 5%;
  }
  #aboutList li {
    width: 47.5%;
  }
}
@media all and (max-width: 768px) {
  #aboutBase {
    padding: 20vw 0;
    background: url(../img/content_bg1_sp.jpg) no-repeat;
    background-size: cover;
    background-position: center;
  }
  #aboutContent {
    width: 77.2%;
    padding: 0 0 14vw;
    margin: 0 auto 16vw;
  }
  #aboutContent p {
    font-size: 3.7vw;
  }
  #aboutCompany {
    width: 41.8vw;
    margin: 0 auto 10vw;
  }
  #aboutCompany h2 {
    padding: 1.1vw 0.7vw;
    margin: 0 0 2.7vw;
    font-size: 3.7vw;
  }
  #aboutCompany p {
    font-size: 2.7vw;
  }
  #aboutList {
    gap: 3vw 5%;
  }
  #aboutList li h3 {
    padding: 1.1vw 0.7vw;
    margin: 0 0 2.7vw;
    font-size: 3.7vw;
  }
  #aboutList li p {
    font-size: 2.6vw;
  }
}



#companyBase {
  margin: -1px 0 0;
  padding: 125px 0 95px;
  color: #fff;
  text-align: center;
  background: url(../img/content_bg2.jpg) no-repeat;
  background-size: cover;
  background-position: center;
}
#companyBase h2 {
  margin: 0 0 20px;
  font-size: 15px;
  font-weight: 500;
}
#companyBase p {
  margin: 0 0 40px;
  font-size: 15px;
}
#companyBase data {
  font-size: 15px;
  font-weight: 500;
}
@media all and (max-width: 768px) {
  #companyBase {
    padding: 15vw 0;
    background: url(../img/content_bg2_sp.jpg) no-repeat;
    background-size: cover;
    background-position: center;
  }
  #companyBase h2 {
    margin: 0 0 1.5vw;
    font-size: 3.7vw;
  }
  #companyBase p {
    margin: 0 0 5vw;
    font-size: 3.7vw;
  }
  #companyBase data {
    font-size: 3.7vw;
  }
}



#footer {
  padding: 80px 0 75px;
  color: #fff;
  text-align: center;
  background: #808080;
  overflow: hidden;
}
#footerTitle {
  margin: 0 0 20px;
  font-size: 15px;
}
#footer small {
  font-size: 15px;
  display: block;
}
#footer small span {
  margin: 0 0 0 1em;
  display: inline-block;
}
@media all and (max-width: 768px) {
  #footer {
    padding: 9vw 0;
  }
  #footerTitle {
    margin: 0;
    font-size: 3.7vw;
    line-height: 200%;
  }
  #footer small {
    font-size: 3.7vw;
    line-height: 200%;
  }
  #footer small span {
    margin: 0;
    display: block;
  }
}