/* Sass Document */
#main_title_area {
  background: url(../img/company/bg_main_title_area.jpg) no-repeat center center;
  background-size: cover;
}
@media screen and (max-width: 640px) {
  #main_title_area {
    background: url(../img/company/bg_main_title_area_sp.jpg) no-repeat center center;
    background-size: cover;
  }
}

#greeting {
  padding: 11rem 0 16rem;
}
@media screen and (max-width: 1024px) {
  #greeting {
    padding: 9.1666666667vw 0 13.3333333333vw;
  }
}
@media screen and (max-width: 640px) {
  #greeting {
    padding: 17.0666666667vw 0 22.4vw;
  }
}
#greeting .wrap {
  max-width: 120rem;
}
#greeting .flex {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media screen and (max-width: 640px) {
  #greeting .flex {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 16vw;
  }
}
#greeting .flex figure {
  max-width: 52rem;
  width: 43.3333333333%;
}
@media screen and (max-width: 640px) {
  #greeting .flex figure {
    max-width: none;
    width: 69.3333333333vw;
    margin: 0 auto;
  }
}
#greeting .flex .greeting_txt_area {
  max-width: 60rem;
  width: 50%;
}
@media screen and (max-width: 640px) {
  #greeting .flex .greeting_txt_area {
    max-width: none;
    width: 100%;
  }
}
#greeting .flex .greeting_txt_area .title_area {
  margin-bottom: 4.8rem;
}
@media screen and (max-width: 1024px) {
  #greeting .flex .greeting_txt_area .title_area {
    margin-bottom: 4vw;
  }
}
@media screen and (max-width: 640px) {
  #greeting .flex .greeting_txt_area .title_area {
    margin-bottom: 7.7333333333vw;
  }
}
#greeting .flex .greeting_txt_area .title_area * {
  text-align: left;
}
#greeting .flex .greeting_txt_area p {
  font-size: 1.5rem;
  line-height: 1.8;
}
@media screen and (max-width: 1024px) {
  #greeting .flex .greeting_txt_area p {
    font-size: 1.25vw;
  }
}
@media screen and (max-width: 640px) {
  #greeting .flex .greeting_txt_area p {
    font-size: 3.4666666667vw;
    line-height: 2;
  }
}
#greeting .flex .greeting_txt_area .tar {
  margin-top: 5rem;
}
@media screen and (max-width: 1024px) {
  #greeting .flex .greeting_txt_area .tar {
    margin-top: 4.1666666667vw;
  }
}
@media screen and (max-width: 640px) {
  #greeting .flex .greeting_txt_area .tar {
    margin-top: 12.2666666667vw;
  }
}
#greeting .flex .greeting_txt_area .tar p {
  font-size: 1.5rem;
  text-align: right;
}
@media screen and (max-width: 1024px) {
  #greeting .flex .greeting_txt_area .tar p {
    font-size: 1.25vw;
  }
}
@media screen and (max-width: 640px) {
  #greeting .flex .greeting_txt_area .tar p {
    font-size: 3.4666666667vw;
  }
}
#greeting .flex .greeting_txt_area .tar .name {
  margin-top: 2rem;
}
@media screen and (max-width: 1024px) {
  #greeting .flex .greeting_txt_area .tar .name {
    margin-top: 1.6666666667vw;
  }
}
@media screen and (max-width: 640px) {
  #greeting .flex .greeting_txt_area .tar .name {
    margin-top: 4vw;
    font-size: 3.7333333333vw;
  }
}
#greeting .flex .greeting_txt_area .tar .name span {
  margin-left: 1rem;
  font-size: 2.5rem;
}
@media screen and (max-width: 1024px) {
  #greeting .flex .greeting_txt_area .tar .name span {
    margin-left: 0.8333333333vw;
    font-size: 2.0833333333vw;
  }
}
@media screen and (max-width: 640px) {
  #greeting .flex .greeting_txt_area .tar .name span {
    margin-left: 4.2666666667vw;
    font-size: 5.8666666667vw;
  }
}

#outline {
  padding: 12rem 0 11.4rem;
  background: #EFECEB;
  background-image: -webkit-gradient(linear, left top, right top, color-stop(0.1rem, #111), color-stop(0.2rem, transparent));
  background-image: linear-gradient(to right, #111 0.1rem, transparent 0.2rem);
  background-size: 0.6rem 0.1rem;
  background-repeat: repeat-x;
  background-position: left top;
}
@media screen and (max-width: 1024px) {
  #outline {
    padding: 10vw 0 9.5vw;
  }
}
@media screen and (max-width: 640px) {
  #outline {
    padding: 16vw 0 18.6666666667vw;
  }
}
#outline .wrap {
  max-width: 120rem;
}
#outline .flex {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 10rem;
}
@media screen and (max-width: 1024px) {
  #outline .flex {
    margin-bottom: 8.3333333333vw;
  }
}
@media screen and (max-width: 640px) {
  #outline .flex {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin-bottom: 16vw;
  }
}
#outline .flex .title_area {
  max-width: 29rem;
  width: 24.1666666667%;
}
@media screen and (max-width: 640px) {
  #outline .flex .title_area {
    max-width: none;
    width: 100%;
  }
}
#outline .flex .title_area * {
  text-align: left;
}
@media screen and (max-width: 640px) {
  #outline .flex .title_area * {
    text-align: center;
  }
}
#outline .flex .outline_content {
  max-width: 90.7rem;
  width: 75.5833333333%;
  background-image: -webkit-gradient(linear, left top, right top, color-stop(0.1rem, #111), color-stop(0.2rem, transparent));
  background-image: linear-gradient(to right, #111 0.1rem, transparent 0.2rem);
  background-size: 0.3rem 0.1rem;
  background-repeat: repeat-x;
  background-position: left top;
}
@media screen and (max-width: 640px) {
  #outline .flex .outline_content {
    max-width: none;
    width: 100%;
  }
}
#outline .flex .outline_content dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 4rem 0;
  background-image: -webkit-gradient(linear, left top, right top, color-stop(0.1rem, #111), color-stop(0.2rem, transparent));
  background-image: linear-gradient(to right, #111 0.1rem, transparent 0.2rem);
  background-size: 0.3rem 0.1rem;
  background-repeat: repeat-x;
  background-position: left bottom;
}
@media screen and (max-width: 1024px) {
  #outline .flex .outline_content dl {
    padding: 3.3333333333vw 0;
  }
}
@media screen and (max-width: 640px) {
  #outline .flex .outline_content dl {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 3.7333333333vw;
    padding: 5.3333333333vw 0;
  }
}
#outline .flex .outline_content dl dt {
  width: 17rem;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 2.6666;
}
@media screen and (max-width: 1024px) {
  #outline .flex .outline_content dl dt {
    width: 14.1666666667vw;
    font-size: 1.25vw;
  }
}
@media screen and (max-width: 640px) {
  #outline .flex .outline_content dl dt {
    width: 100%;
    font-size: 4vw;
  }
}
#outline .flex .outline_content dl dd {
  width: calc(100% - 17rem);
  font-size: 1.5rem;
  line-height: 1.86666;
}
@media screen and (max-width: 1024px) {
  #outline .flex .outline_content dl dd {
    width: calc(100% - 14.1666666667vw);
    font-size: 1.25vw;
  }
}
@media screen and (max-width: 640px) {
  #outline .flex .outline_content dl dd {
    width: 100%;
    font-size: 3.4666666667vw;
  }
}
#outline .w_box {
  padding: 3.2rem 4rem 3.5rem;
  background: #fff;
  border: 0.1rem solid #111;
  border-radius: 0.5rem;
}
@media screen and (max-width: 1024px) {
  #outline .w_box {
    padding: 2.6666666667vw 3.3333333333vw 2.9166666667vw;
    border-radius: 0.4166666667vw;
  }
}
@media screen and (max-width: 640px) {
  #outline .w_box {
    padding: 6.6666666667vw 5.3333333333vw;
    border-radius: 1.3333333333vw;
  }
}
#outline .w_box + .w_box {
  margin-top: 3rem;
}
@media screen and (max-width: 1024px) {
  #outline .w_box + .w_box {
    margin-top: 2.5vw;
  }
}
@media screen and (max-width: 640px) {
  #outline .w_box + .w_box {
    margin-top: 5.3333333333vw;
  }
}
#outline .w_box .title03 {
  padding-bottom: 3rem;
  margin-bottom: 5rem;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1.81818;
  background-image: -webkit-gradient(linear, left top, right top, color-stop(0.1rem, #111), color-stop(0.2rem, transparent));
  background-image: linear-gradient(to right, #111 0.1rem, transparent 0.2rem);
  background-size: 0.5rem 0.1rem;
  background-repeat: repeat-x;
  background-position: left bottom;
}
@media screen and (max-width: 1024px) {
  #outline .w_box .title03 {
    padding-bottom: 2.5vw;
    margin-bottom: 4.1666666667vw;
    font-size: 1.8333333333vw;
  }
}
@media screen and (max-width: 640px) {
  #outline .w_box .title03 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
    padding-bottom: 5.0666666667vw;
    margin-bottom: 5.3333333333vw;
    font-size: 4.8vw;
  }
}
@media screen and (max-width: 640px) {
  #outline .w_box .title03 span {
    font-size: 3.7333333333vw;
    letter-spacing: 0;
  }
}
#outline .w_box .flex {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 0;
}
@media screen and (max-width: 640px) {
  #outline .w_box .flex {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 4vw;
  }
}
#outline .w_box .flex figure {
  max-width: 36rem;
  width: 32.1428571429%;
}
@media screen and (max-width: 640px) {
  #outline .w_box .flex figure {
    max-width: none;
    width: 100%;
  }
}
#outline .w_box .flex .txt_area {
  max-width: 73rem;
  width: 65.1785714286%;
}
@media screen and (max-width: 640px) {
  #outline .w_box .flex .txt_area {
    max-width: none;
    width: 100%;
  }
}
#outline .w_box .flex .txt_area .title04 {
  margin-bottom: 2rem;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.8888;
}
@media screen and (max-width: 1024px) {
  #outline .w_box .flex .txt_area .title04 {
    margin-bottom: 1.6666666667vw;
    font-size: 1.5vw;
  }
}
@media screen and (max-width: 640px) {
  #outline .w_box .flex .txt_area .title04 {
    margin-bottom: 4vw;
    font-size: 4vw;
  }
}
#outline .w_box .flex .txt_area p {
  font-size: 1.6rem;
  line-height: 2.125;
}
@media screen and (max-width: 1024px) {
  #outline .w_box .flex .txt_area p {
    font-size: 1.3333333333vw;
  }
}
@media screen and (max-width: 640px) {
  #outline .w_box .flex .txt_area p {
    font-size: 3.4666666667vw;
    line-height: 2.07692;
  }
}

#history {
  position: relative;
  padding: 13.6rem 0 9rem;
  /*background: rgba(38, 35, 35, 0.85);*/
  background: url(../img/company/historybg.jpg) no-repeat center center;
  background-size: cover;
  background-attachment: fixed;
}
@media screen and (max-width: 1024px) {
  #history {
    padding: 11.3333333333vw 0 7.5vw;
  }
}
@media screen and (max-width: 640px) {
  #history {
    padding: 16vw 0 26.1333333333vw;
    background-attachment: inherit;
  }
}
#history:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 30rem;
  background: -webkit-gradient(linear, left top, left bottom, from(#262323), to(rgba(17, 17, 17, 0.03)));
  background: linear-gradient(#262323 0%, rgba(17, 17, 17, 0.03) 100%);
}
@media screen and (max-width: 1024px) {
  #history:before {
    height: 25vw;
  }
}
@media screen and (max-width: 640px) {
  #history:before {
    height: 48vw;
  }
}
/*#history::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 9rem;
  background: #454343;
  z-index: 3;
}
@media screen and (max-width: 1024px) {
  #history::after {
    height: 7.5vw;
  }
}
@media screen and (max-width: 640px) {
  #history::after {
    height: 26.1333333333vw;
  }
}*/
#history .wrap {
  position: relative;
  max-width: 120rem;
  z-index: 2;
}
#history .title_area {
  margin-bottom: 5.8rem;
}
#history .title_area * {
  color: #fff;
}
#history .center {
  max-width: 100rem;
  margin: 0 auto 7.3rem;
}
@media screen and (max-width: 1024px) {
  #history .center {
    margin: 0 auto 6.0833333333vw;
  }
}
@media screen and (max-width: 640px) {
  #history .center {
    margin: 0 auto 19.4666666667vw;
  }
}
#history .center .title03 {
  margin-bottom: 3rem;
  font-size: 3rem;
  color: #fff;
  text-align: center;
}
@media screen and (max-width: 1024px) {
  #history .center .title03 {
    margin-bottom: 2.5vw;
    font-size: 2.5vw;
  }
}
@media screen and (max-width: 640px) {
  #history .center .title03 {
    margin-bottom: 5.3333333333vw;
    font-size: 4.8vw;
  }
}
#history .center p {
  font-size: 1.6rem;
  color: #fff;
  text-align: center;
  line-height: 2.125;
}
@media screen and (max-width: 1024px) {
  #history .center p {
    font-size: 1.3333333333vw;
  }
}
@media screen and (max-width: 640px) {
  #history .center p {
    font-size: 3.4666666667vw;
    line-height: 2.076923;
  }
}
#history #history_content {
  position: relative;
  width: 100%;
  overflow: hidden;
}
#history #history_content .history02box {
  width: 100%;
  max-width: 100%;
}
#history #history_content .history02box ul {
  position: relative;
  padding: 11rem 0 0;
}
@media screen and (max-width: 1024px) {
  #history #history_content .history02box ul {
    padding: 9.1666666667vw 0 0;
  }
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul {
    padding: 16vw 0 12vw;
  }
}
#history #history_content .history02box ul::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translate(-50%, 0%);
          transform: translate(-50%, 0%);
  width: 0.2rem;
  height: 100%;
  background-color: #4A4A4A;
  z-index: 1;
}
@media screen and (max-width: 1024px) {
  #history #history_content .history02box ul::before {
    width: 0.1666666667vw;
  }
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul::before {
    width: 0.5333333333vw;
    left: 20.5333333333vw;
    -webkit-transform: unset;
            transform: unset;
  }
}
#history #history_content .history02box ul::after {
  content: "";
  position: fixed;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 0.2rem;
  height: 3rem;
  background-color: #fff;
  -webkit-transition: all ease 0.3s;
  transition: all ease 0.3s;
  opacity: 0;
  z-index: 2;
}
@media screen and (max-width: 1024px) {
  #history #history_content .history02box ul::after {
    width: 0.1666666667vw;
    height: 2.5vw;
  }
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul::after {
    width: 0.5333333333vw;
    height: 5.3333333333vw;
    left: 25.6vw;
    -webkit-transform: translate(0, -50%);
            transform: translate(0, -50%);
  }
}
#history #history_content .history02box ul.on::after {
  opacity: 1;
}
#history #history_content .history02box ul li {
  width: 100%;
  margin: 0 auto;
  padding: 0;
  min-height: 20rem;
  -webkit-transition: all ease 1.0s;
  transition: all ease 1.0s;
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul li {
    min-height: 15rem;
  }
}
#history #history_content .history02box ul li.on .outbox {
  opacity: 1;
  -webkit-animation: fadeinup001 1.0s both cubic-bezier(0.14, -0.36, 0.1, 1);
          animation: fadeinup001 1.0s both cubic-bezier(0.14, -0.36, 0.1, 1);
}
#history #history_content .history02box ul li .outbox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  opacity: 0;
}
#history #history_content .history02box ul li:nth-child(odd) .outbox {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul li:nth-child(odd) .outbox {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-flow: row-reverse wrap;
            flex-flow: row-reverse wrap;
  }
}
#history #history_content .history02box ul li:nth-child(odd) .history02_subbox {
  padding: 0 0 0 3rem;
  text-align: left;
}
@media screen and (max-width: 1024px) {
  #history #history_content .history02box ul li:nth-child(odd) .history02_subbox {
    padding: 0 0 0 2.5vw;
  }
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul li:nth-child(odd) .history02_subbox {
    padding: 0;
  }
}
#history #history_content .history02box ul li:nth-child(even) .outbox {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-flow: row-reverse wrap;
          flex-flow: row-reverse wrap;
}
#history #history_content .history02box ul li:nth-child(even) .history02_mainbox {
  padding: 0 0 0 8rem;
}
@media screen and (max-width: 1024px) {
  #history #history_content .history02box ul li:nth-child(even) .history02_mainbox {
    padding: 0 0 0 6.6666666667vw;
  }
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul li:nth-child(even) .history02_mainbox {
    padding: 0 0 0 5.8666666667vw;
  }
}
#history #history_content .history02box ul li:nth-child(even) .history02_subbox {
  padding: 0 3rem 0 0;
}
@media screen and (max-width: 1024px) {
  #history #history_content .history02box ul li:nth-child(even) .history02_subbox {
    padding: 0 2.5vw 0 0;
  }
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul li:nth-child(even) .history02_subbox {
    padding: 0;
  }
}
#history #history_content .history02box ul li:nth-child(even) .history02_subbox p {
  text-align: right;
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul li:nth-child(even) .history02_subbox p {
    text-align: left;
  }
}
#history #history_content .history02box ul li .history02_mainbox,
#history #history_content .history02box ul li .history02_subbox {
  width: 50%;
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul li .history02_mainbox {
    width: calc(100% - 20.5333333333vw);
    padding: 0 0 0 5.8666666667vw;
  }
}
#history #history_content .history02box ul li .history02_mainbox .year {
  font-size: 4rem;
  color: #fff;
  line-height: 0.7;
}
@media screen and (max-width: 1024px) {
  #history #history_content .history02box ul li .history02_mainbox .year {
    font-size: 3.3333333333vw;
  }
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul li .history02_mainbox .year {
    font-size: 8vw;
  }
}
#history #history_content .history02box ul li .history02_mainbox p {
  margin-top: 2rem;
  font-size: 1.5rem;
  color: #fff;
  line-height: 1.866;
}
@media screen and (max-width: 1024px) {
  #history #history_content .history02box ul li .history02_mainbox p {
    margin-top: 1.6666666667vw;
    font-size: 1.25vw;
  }
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul li .history02_mainbox p {
    margin-top: 2.6666666667vw;
    font-size: 3.4666666667vw;
  }
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul li .history02_subbox {
    width: 20.5333333333vw;
  }
}
#history #history_content .history02box ul li .history02_subbox p {
  font-size: 1.7rem;
  color: #fff;
  line-height: 1.6470588;
}
@media screen and (max-width: 1024px) {
  #history #history_content .history02box ul li .history02_subbox p {
    font-size: 1.4166666667vw;
  }
}
@media screen and (max-width: 640px) {
  #history #history_content .history02box ul li .history02_subbox p {
    font-size: 3.4666666667vw;
  }
}
@-webkit-keyframes fadeinup001 {
  0% {
    opacity: 0;
    -webkit-transform: translateY(30px);
            transform: translateY(30px);
  }
  85% {
    opacity: 1;
    -webkit-transform: translateY(0px);
            transform: translateY(0px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0px);
            transform: translateY(0px);
  }
}
@keyframes fadeinup001 {
  0% {
    opacity: 0;
    -webkit-transform: translateY(30px);
            transform: translateY(30px);
  }
  85% {
    opacity: 1;
    -webkit-transform: translateY(0px);
            transform: translateY(0px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0px);
            transform: translateY(0px);
  }
}

.contact_address {
  position: relative;
  z-index: 5;
}