@charset "UTF-8";
body{
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  body{
    width: 100%;
  }
}
a:hover{
  opacity: 0.6;
}
.sp{
  display: none;
}
@media screen and (max-width: 768px) {
  .sp{
    display: block;
  }
}
.header{
  padding: 24px 60px;
  background-color: #000000;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .header{
    padding: 4.5vw 5.333333333333333vw;
    width: 100%;
    height: 15.7vw;
}
}
.header .logo{
  width: 400px;
  object-fit: cover;
}
@media screen and (max-width: 768px) {
  .header .logo{
    width: 53.333333333333336vw;
  }
}
@media screen and (max-width: 768px) {
  .header .navi{
    display: none;
  }
}
.header .navi ul{
  display: flex;
  gap: 80px;
}
.header .navi ul li{
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  font-family: "Josefin Sans", sans-serif;
}

/* top */

.mv{
  height: 850px;
  width: 100%;
  background-image: url(../img/mv.png);
  background-size: cover;
  background-position: center;
}
@media screen and (max-width: 768px) {
  .mv{
    height: 100vh;
    width: 100%;
    background-image: url(../img/mv_sp.png);
  }
}
.mv h2{
  color: #fff;
  font-size: 36px;
  padding-top: 580px;
  text-align: center;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .mv h2{
    font-size: 5vw;
    padding-top: 124vw;
  }
}
.h3{
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  display: inline-block;
  font-size: 32px;
  padding: 19px 26px;
  border: 4px solid #009854;
  font-weight: 700;
  font-family: "Josefin Sans", sans-serif;
}
@media screen and (max-width: 768px) {
  .h3{
    font-size: 5.333333333333333vw;
    padding: 4.533333vw 9.466667vw;
  }
}
.text{
  letter-spacing: 0.06em;
  line-height: 2.7;
  font-weight: bold;
  text-align: center;
  padding-top: 32px;
}
@media screen and (max-width: 768px) {
  .text{
    padding-top: 4.266666666666667vw;
  }
}
.top-contept1{
  margin: 120px auto 104px;
}
@media screen and (max-width: 768px) {
  .top-contept1{
    margin: 16vw auto 13.866666666666667vw;
    padding-inline: 5.333333333333333vw;
  }
}
.top-contept1 .text{
  font-size: 16px;
}
@media screen and (max-width: 768px) {
  .top-contept1 .text{
    font-size: 3.466666666666667vw;
  }
}
.top-contept2{
  margin: 0 auto 120px;
}
@media screen and (max-width: 768px) {
  .top-contept2{
    margin: 0 auto 16vw;
    padding-inline: 5.333333333333333vw;
  }
}
.top-contept2 .text{
  font-size: 16px;
  letter-spacing: 0.07em;
  line-height: 2.82;
  font-weight: bold;
  text-align: center;
  padding-top: 32px;
}
@media screen and (max-width: 768px) {
  .top-contept2 .text{
    font-size: 3.466666666666667vw;
    padding-top: 4.266666666666667vw;
  }
}
.top-contept2 .text span{
  font-size: 22px;
}
@media screen and (max-width: 768px) {
  .top-contept2 .text span{
    font-size: 4vw;
  }
}

/* about */

.about-mv{
  height: 850px;
  width: 100%;
  background-image: url(../img/about.png);
  background-size: cover;
  background-position: center;
  position: relative;
}
@media screen and (max-width: 768px) {
  .about-mv{
    height: 74.26666666666667vw;
    background-image: url(../img/about_sp.png);
    background-size: cover;
    background-position: center;
    position: relative;
  }
}
.about-mv h2{
  color: #fff;
  font-size: 36px;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .about-mv h2{
    font-size: 4.8vw;
  }
}
.about-mv .h2-01{
  position: absolute;
    top: 135px;
    letter-spacing: 0.1em;
    left: 6vw;
}
@media screen and (max-width: 768px) {
  .about-mv .h2-01{
      top: 11vw;
      left: 5.333333333333333vw;
  }
}
.about-mv .h2-02{
  position: absolute;
  top: 220px;
  left: 15vw;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .about-mv .h2-02{
    top: 22vw;
    left: 5.333333333333333vw;
  }
}
.about-contept1{
  margin: 120px auto;
}
@media screen and (max-width: 768px) {
  .about-contept1{
    margin: 16vw auto;
    padding-inline: 5.333333333333333vw;
  }
}
.about-contept1 .about-text{
  text-align: center;
}
.about-contept1 .name{
  padding: 48px 0 24px;
  font-size: 20px;
  font-weight: bold;
  display: flex;
  flex-direction: column;
  letter-spacing: 0.4em;
}
@media screen and (max-width: 768px) {
  .about-contept1 .name{
    padding: 6.4vw 0 3.2vw;
    font-size: 4.533333333333333vw;
  }
}
.about-contept1 .name::before{
  content: "代表取締役";
  font-size: 16px;
}
@media screen and (max-width: 768px) {
  .about-contept1 .name::before{
    font-size: 3.2vw;
  }
}
.about-contept1 .name::after{
  content: "TAKASHI SHIMADA";
  font-size: 15px;
  font-family: "Josefin Sans", sans-serif;
  font-weight: 700;
  letter-spacing: 0;
  padding-top: 8px;
}
@media screen and (max-width: 768px) {
  .about-contept1 .name::after{
    font-size: 3.2vw;
    padding-top: 1.0666666666666667vw;
  }
}
.about-contept1 .history01{
  padding-bottom: 24px;
  font-size: 20px;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 768px) {
  .about-contept1 .history01{
    padding-bottom: 3.2vw;
    font-size: 4.533333333333333vw;
  }
}
.about-contept1 .history01::before{
  content: "1979－2020";
  font-size: 18px;
  font-family: "Oxygen", sans-serif;
  font-weight: 700;
  padding-bottom: 1px;
}
@media screen and (max-width: 768px) {
  .about-contept1 .history01::before{
    font-size: 3.7333333333333334vw;
  }
}
.about-contept1 .history02{
  padding-bottom: 24px;
  font-size: 20px;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 768px) {
  .about-contept1 .history02{
    padding-bottom: 3.2vw;
    font-size: 4.533333333333333vw;
  }
}
.about-contept1 .history02::before{
  content: "2020－";
  font-size: 18px;
  font-family: "Oxygen", sans-serif;
  font-weight: 700;
  padding-bottom: 1px;
}
@media screen and (max-width: 768px) {
  .about-contept1 .history02::before{
    font-size: 3.7333333333333334vw;
  }
}
.about-contept1 .history03{
  padding-bottom: 88px;
  font-size: 20px;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 768px) {
  .about-contept1 .history03{
    padding-bottom: 11.733333333333333vw;
    font-size: 4.533333333333333vw;
  }
}
.about-contept1 .history03::before{
  content: "2021－";
  font-size: 18px;
  font-family: "Oxygen", sans-serif;
  font-weight: 700;
  padding-bottom: 1px;
}
@media screen and (max-width: 768px) {
  .about-contept1 .history03::before{
    font-size: 3.7333333333333334vw;
  }
}
.dropdown{
  text-align: center;
}
.dropdown input[type="checkbox"] {
  display: none;
}
.dropdown label {
  cursor: pointer;
  position:relative;
  display:inline-block;
  font-size: 32px;
  font-family: "Josefin Sans", sans-serif;
  color: #fff;
  background-color: #009854;
  padding: 30px 80px;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .dropdown label {
    font-size: 5.333333333333333vw;
    padding: 10vw 27.3vw;
  }
}
.dropdown .submenu {
  display: none;
  margin:8px 0 0;
  list-style:none;
}
@media screen and (max-width: 768px) {
  .dropdown .submenu {
    margin: 1.0666666666666667vw 0 0;
  }
}
.dropdown input[type="checkbox"]:checked + label + .submenu {
  display: block;
  width: 261px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .dropdown input[type="checkbox"]:checked + label + .submenu {
    width:80%;
  }
}
.submenu li{
  font-size: 16px;
  color: #009854;
  font-weight: bold;
  border: 4px solid #009854;
  border-bottom: none;
  padding: 46px 10px;
}
@media screen and (max-width: 768px) {
  .submenu li{
    font-size: 3.466666666666667vw;
    padding: 10.133333333333333vw 0;
  }
}
.submenu li:last-child{
  border-bottom: 4px solid #009854;
}
.submenu01{
  display: flex;
  flex-direction: column;
}
.submenu01::before{
  content: "01";
  font-family: "Oxygen", sans-serif;
  font-size: 20px;
  width: 100%;
  padding-bottom: 8px;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .submenu01::before{
    font-size: 4.266666666666667vw;
    padding-bottom: 2.1333333333333333vw;
  }
}
.submenu02{
  display: flex;
  flex-direction: column;
}
.submenu02::before{
  content: "02";
  font-family: "Oxygen", sans-serif;
  font-size: 20px;
  width: 100%;
  padding-bottom: 8px;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .submenu02::before{
    font-size: 4.266666666666667vw;
    padding-bottom: 2.1333333333333333vw;
  }
}
.submenu03{
  display: flex;
  flex-direction: column;
}
.submenu03::before{
  content: "03";
  font-family: "Oxygen", sans-serif;
  font-size: 20px;
  width: 100%;
  padding-bottom: 8px;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .submenu03::before{
    font-size: 4.266666666666667vw;
    padding-bottom: 2.1333333333333333vw;
  }
}

/* services */

.services-contept1{
  margin: 120px auto;
}
@media screen and (max-width: 768px) {
  .services-contept1{
    padding-inline: 5.333333333333333vw;
    margin: 16vw auto;
  }
}
.services-text{
  padding: 48px 0 88px;
  text-align: center;
  font-size: 16px;
  line-height: 2;
}
@media screen and (max-width: 768px) {
  .services-text{
    padding: 6.4vw 0 11.733333333333333vw;
    font-size: 3.466666666666667vw;
  }
}
.services-text2{
  margin: 40px 0;
}
@media screen and (max-width: 768px) {
  .services-text2{
    margin: 5.333333333333333vw 0;
  }
}
.services-text2 h4{
  font-size: 20px;
  display: inline-block;
  border-bottom: 3px solid #009854;
  padding: 0 16px;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .services-text2 h4{
    font-size: 4.266666666666667vw;
    padding: 0 2.1333333333333333vw;
    margin-bottom: 2.1333333333333333vw;
  }
}
.services-text2:last-child{
  margin-bottom: 0;
}
.services-contept2 h3{
  margin-bottom: 64px;
}
@media screen and (max-width: 768px) {
  .services-contept2 h3{
    margin-bottom: 8.533333333333333vw;
  }
}
.services-contept2 table{
  width: 70%;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .services-contept2 table{
    width: 90%;
  }
}
.services-contept2 tr{
  font-size: 16px;
  font-weight: bold;
  border-top: 2px solid #B5B5B6;
}
@media screen and (max-width: 768px) {
  .services-contept2 tr{
    font-size: 3.466666666666667vw;
  }
}
.services-contept2 tr th{
  padding: 32px 0;
    width: 32%;
    text-align: right;
    padding-right: 184px;
}
@media screen and (max-width: 768px) {
  .services-contept2 tr th{
    padding: 4.266666666666667vw 0;
      width: 28%;
      padding-right: 7.466666666666667vw;
  }
}
.services-contept2 tr td{
  padding: 32px 0;
    padding-left: 0px;
}
@media screen and (max-width: 768px) {
  .services-contept2 tr td{
    padding: 4.266666666666667vw 0;
  }
}
.services-contept2 tr:last-child{
  border-bottom: 2px solid #B5B5B6;
}

/* contact */

.contact-contept1{
  margin: 120px auto;
}
@media screen and (max-width: 768px) {
  .contact-contept1{
    margin: 16vw auto;
  }
}
.contact-text{
  text-align: center;
  padding-top: 32px;
}
@media screen and (max-width: 768px) {
  .contact-text{
    padding-top: 4.266666666666667vw;
  }
}
.contact-text .ja{
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .contact-text .ja{
    font-size: 3.466666666666667vw;
  }
}
.contact-text .mail{
  font-size: 20px;
  font-weight: bold;
  padding-top: 8px;
  font-family: "Oxygen", sans-serif;
  letter-spacing: 0.06em;
}
@media screen and (max-width: 768px) {
  .contact-text .mail{
    font-size: 4.266666666666667vw;
    padding-top: 1.0666666666666667vw;
  }
}

/* fadein */
.scroll_up {
  transition: 0.8s ease-in-out;
  transform: translateY(30px);
  opacity: 0;
}
.scroll_up.on {
  transform: translateY(0);
  opacity: 1.0;
}

.scroll_left {
  -webkit-transition: 0.8s ease-in-out;
  -moz-transition: 0.8s ease-in-out;
  -o-transition: 0.8s ease-in-out;
  transition: 0.8s ease-in-out;
  transform: translateX(-30px);
  opacity: 0;
  filter: alpha(opacity=0);
  -moz-opacity: 0;
}
.scroll_left.on {
  opacity: 1.0;
  filter: alpha(opacity=100);
  -moz-opacity: 1.0;
  transform: translateX(0);
}
.drawer{
  display: none;
}
@media screen and (max-width: 768px) {

/* チェックボックスは非表示に */
.drawer{
  display: block;
}
.drawer-hidden {
  display: none;
}

/* ハンバーガーアイコンの設置スペース */
.drawer {
  overflow: hidden;
  position: absolute;
  top: 0;
  right: 0;
}
.drawer-open {
  width: 15.7vw;
 height: 15.7vw;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 100; /* 重なり順を一番上に */
  cursor: pointer;
  background-color: #009854;
}

/* ハンバーガーメニューのアイコン */
.drawer-open span {
  margin-right: 2.5vw;
  content: '';
  display: block;
  height: 2px;
  width: 4.53vw;
  background: #fff;
  transition: 0.5s;
  position: absolute;
}

.drawer-open span:before {
  content: '';
  display: block;
  height: 2px;
  width: 7.6vw;
  background: #fff;
  transition: 0.5s;
  position: absolute;
}
.drawer-open span:after {
  content: '';
  display: block;
  height: 2px;
  width: 5.46vw;
  background: #fff;
  transition: 0.5s;
  position: absolute;
}
/* 三本線のうち一番上の棒の位置調整 */
.drawer-open span:before {
  bottom: 2.13vw;
}

/* 三本線のうち一番下の棒の位置調整 */
.drawer-open span:after {
  top: 2.13vw;
  height: 2px;
  width: 7.6vw;
}

/* アイコンがクリックされたら真ん中の線を透明にする */
#drawer-check:checked ~ .drawer-open span {
  background: rgba(255, 255, 255, 0);
}

/* アイコンがクリックされたらアイコンが×印になように上下の線を回転 */
#drawer-check:checked ~ .drawer-open span::before {
  bottom: 0;
  transform: rotate(45deg);
  background: #fff;
}

#drawer-check:checked ~ .drawer-open span::after {
  top: 0;
  transform: rotate(-45deg);
  background: #fff;
}
#drawer-check:checked ~ .drawer-open {
  background-color: #009854;
}

/* メニューのデザイン*/
.drawer-content {
  position: fixed;
  top: 0;
  left: 100%; /* メニューを画面の外に飛ばす */
  z-index: 99;
  background-color: #000;
  width: 100%;
  height: 100vh;
  background-size: contain;
  transition: 0.5s;
}
.drawer-img {
  padding-left: 5.333333333333333vw;
  padding: 4.4vw 0;
  padding-left: 5.333333333333333vw;
}
.drawer-img img {
  width: 64.86666666666666vw;
  height: auto;
}
.drawer-bg{
  background-color: #fff;
  height: 90vh;
}
.drawer-title{
  font-size: 5.333333333333333vw;
  color: #fff;
  text-align: center;
  padding: 11.733333333333333vw 0 10.666666666666666vw;
}
.drawer-content .drawer-list {
  padding-top: 24.666666666666666vw;
  padding-inline: 5.333333333333333vw;
  font-family: "Oxygen", sans-serif;
  text-align: center;
}
.drawer-content .drawer-item {
  padding-bottom: 15.733333333333333vw;
}
.drawer-content .drawer-item a {
  color: #009854;
  font-size: 5.333333333333333vw;
  padding-bottom: 5.333333333333333vw;
}
.drawer-content .copy {
  color: #fff;
  font-size: 3.2vw;
  margin-inline: 5.333333333333333vw;
  padding: 23.93333333333333vw 0 8.533333333333333vw;
}
/* アイコンがクリックされたらメニューを表示 */
#drawer-check:checked ~ .drawer-content {
  left: 0;
}

}