#sec1 .h2box {
  margin: 0 var(--paddingWrap-negative);
  padding: 15vw var(--paddingWrap);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background: var(--primary);
  color: #fff;
}
#sec1 .set1 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-column-gap: 5vw;
     -moz-column-gap: 5vw;
          column-gap: 5vw;
  margin-top: 10vw;
}
#sec1 .set1 .txtbox1, #sec1 .set1 .txtbox2 {
  width: 100%;
}
#sec1 .set1 .txtbox2 {
  margin-top: 5vw;
}
#sec1 .set1 .txtbox2 .txt + .txt {
  margin-top: 5vw;
}
#sec1 .set1 .imgbox1, #sec1 .set1 .imgbox2 {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  max-width: 47%;
  margin-top: 10vw;
}
#sec1 .h2box .ttl{
  text-align: center;
}

@media screen and (min-width: 768px) {
  #sec1 .wrap {
    padding-top: 118px;
  }
  #sec1 .wrap::before {
    content: "";
    border-left: 1px solid;
    opacity: 0.2;
    position: absolute;
    top: 0;
    bottom: -615px;
    left: -130px;
  }
  #sec1 .h2box {
    width: 715px;
    margin: 0 35px 0 auto;
    padding: 78px 50px 70px 182px;
    position: relative;
  }
  #sec1 .h2box::before {
    content: "";
    width: 100vw;
    border-bottom: 1px solid #000;
    opacity: 0.2;
    position: absolute;
    bottom: 0;
    right: 0;
  }
  #sec1 .set1 {
    -webkit-column-gap: 0;
       -moz-column-gap: 0;
            column-gap: 0;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin: 51px 37px 0 39px;
  }
  #sec1 .set1 .txtbox1 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    width: 533px;
  }
  #sec1 .set1 .txtbox2 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    width: 555px;
    margin-top: 30px;
  }
  #sec1 .set1 .txtbox2 .txt + .txt {
    margin-top: 45px;
  }
  #sec1 .set1 .imgbox1, #sec1 .set1 .imgbox2 {
    max-width: 300px;
    margin-top: 0;
  }
  #sec1 .set1 .imgbox1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    margin-top: -244px;
  }
  #sec1 .set1 .imgbox2 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  #sec1 .h2box .ttl{
    text-align: left;
  }
  
}

#sec2 {
  padding-top: 15vw;
  position: relative;
  z-index: 1;
}
#sec2 h2.ttl {
  font-size: 6vw;
  line-height: normal;
  letter-spacing: 0.02em;
  text-align: center;
}
#sec2 h2.ttl::after {
  content: "";
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  height: 10vw;
  border-left: 1px solid;
  opacity: 0.4;
  display: block;
  margin: 0 auto;
}
#sec2 .set1 {
  text-align: center;
  position: relative;
  z-index: 2;
}
#sec2 .set1 .imgbox .txt{
  color: #fff;
}
#sec2 .set2 {
  color: #fff;
  position: relative;
}
#sec2 .set2 .ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 5vw;
  line-height: 1;
  letter-spacing: 0.23em;
  text-align: right;
}
#sec2 .set2 .ttl small {
  font-size: 4vw;
  letter-spacing: 0.23em;
}
#sec2 .set2 .ttl .latin {
  font-size: 4vw;
  line-height: 1;
  letter-spacing: 0.02em;
}
#sec2 .set2 .txtbox {
  padding-top: 10vw;
}
#sec2 .set2 .txtbox dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  line-height: 1.5;
}
#sec2 .set2 .txtbox dl + dl {
  margin-top: 20px;
}
#sec2 .set2 .txtbox dl dt {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 80px;
          flex: 1 0 80px;
}
#sec2 .set2 .txtbox dl dd {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 100%;
          flex: 0 1 100%;
}
#sec2 .set2 .gr1, #sec2 .set2 .gr2 {
  position: relative;
  z-index: 0;
}
#sec2 .set2 .gr1::before, #sec2 .set2 .gr2::before {
  content: "";
  background: center/cover no-repeat;
  position: absolute;
  z-index: -1;
}
#sec2 .set2 .gr1::before {
  background-image: url("../img/history/s2_bgi1.jpg");
}
#sec2 .set2 .gr2::before {
  background-image: url("../img/history/s2_bgi2.jpg");
}
#sec2 .set3 {
  position: relative;
  z-index: 2;
}
#sec2 .set3 .imgbox1, #sec2 .set3 .imgbox2 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-column-gap: 5vw;
     -moz-column-gap: 5vw;
          column-gap: 5vw;
}
#sec2 .set3 .imgbox1 .img1 {
  max-width: 40%;
  margin-top: 5vw;
}
#sec2 .set3 .imgbox1 .img2 {
  max-width: 80%;
}
#sec2 .set3 .imgbox2 {
  margin-top: 5vw;
}
#sec2 .set3 .imgbox2 .img1 {
  max-width: 55%;
  margin-top: 10vw;
}
#sec2 .set3 .imgbox2 .img2 {
  max-width: 45%;
}
#sec2 .set4 {
  margin-top: 15vw;
  text-align: center;
}
#sec2 .set4 .imgbox {
  margin-top: 10vw;
}

@media screen and (max-width: 767px) {
  #sec2 .set2 {
    display: grid;
  }
  #sec2 .set2 .toggle-close {
    background: none;
    border: 0;
    position: absolute;
    top: 10vw;
    right: var(--paddingWrap);
    opacity: 0;
    visibility: hidden;
    -webkit-transition: 0.3s 0s;
    transition: 0.3s 0s;
  }
  #sec2 .set2 .toggle-link {
    width: 50%;
    -webkit-transition: 0.5s ease-out;
    transition: 0.5s ease-out;
    position: relative;
    top: 30%;
  }
  #sec2 .set2 .toggle-link .btn-style-1 {
    width: max-content;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 5px 0;
    -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
    background: none;
    border: 0;
    border-bottom: 1px solid;
    position: absolute;
    top: 30vw;
    left: 50%;
  }
  #sec2 .set2 .toggle-link .btn-style-1::after {
    content: '';
    height: auto;
    -ms-flex-item-align: stretch;
      align-self: stretch;
    margin-left: 5px;
    position: relative;
    right: 0;
  }
  #sec2 .set2 .gr1 .toggle-link {
    margin-left: calc(var(--paddingWrap-negative) / 2);
  }
  #sec2 .set2 .gr2 .toggle-link {
    margin-right: calc(var(--paddingWrap-negative) / 2);
  }
  #sec2 .set2 .txtbox {
    opacity: 0;
    visibility: hidden;
    -webkit-transition: 0.5s 0s ease-out;
    transition: 0.5s 0s ease-out;
    position: relative;
    z-index: 1;
  }
  #sec2 .set2 .gr1,
  #sec2 .set2 .gr2 {
    grid-area: 1/1/1/1;
    padding: 20vw var(--paddingWrap);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    -webkit-transition: z-index 0s 0.5s ease-out;
    transition: z-index 0s 0.5s ease-out;
    pointer-events: none;
    position: relative;
  }
  #sec2 .set2 .gr1::before,
  #sec2 .set2 .gr2::before {
    width: 50%;
    -webkit-transition: width 0.5s ease-out;
    transition: width 0.5s ease-out;
    top: -15vw;
    bottom: -15vw;
  }
  #sec2 .set2 .gr1 > *,
  #sec2 .set2 .gr2 > * {
    pointer-events: all;
  }
  #sec2 .set2 .gr1.active,
  #sec2 .set2 .gr2.active {
    z-index: 1;
    -webkit-transition: z-index 0s 0s ease-out;
    transition: z-index 0s 0s ease-out;
  }
  #sec2 .set2 .gr1.active::before,
  #sec2 .set2 .gr2.active::before {
    width: 100%;
  }
  #sec2 .set2 .gr1.active .toggle-close,
  #sec2 .set2 .gr2.active .toggle-close {
    opacity: 1;
    visibility: visible;
    -webkit-transition: 0.3s 0.5s;
    transition: 0.3s 0.5s;
  }
  #sec2 .set2 .gr1.active .toggle-link,
  #sec2 .set2 .gr2.active .toggle-link {
    width: 100%;
    margin-right: 0;
    padding-bottom: 0;
    top: 0;
  }
  #sec2 .set2 .gr1.active .toggle-link button,
  #sec2 .set2 .gr2.active .toggle-link button {
    display: none;
  }
  #sec2 .set2 .gr1.active .toggle-link {
    margin-left: 0;
  }
  #sec2 .set2 .gr1.active .txtbox,
  #sec2 .set2 .gr2.active .txtbox {
    opacity: 1;
    visibility: visible;
    -webkit-transition: 0.5s 0.3s ease-out;
    transition: 0.5s 0.3s ease-out;
  }
  #sec2 .set2 .gr1::before {
    left: 0;
 }
  #sec2 .set2 .gr2 {
    margin-left: auto;
  }
  
  #sec2 .set2 .gr2::before {
    right: 0;
  }
  #sec2 .set2 .gr2 .toggle-link {
    margin-left: auto;
  }
  #sec2 .set2 .toggle.active {
    width: 100%;
    z-index: 1;
  }
  #sec2 .set4 .ttl {
    font-size: 4.5vw;
  }
}
@media screen and (min-width: 768px) {
  #sec2 {
    padding-top: 133px;
  }
  #sec2 h2.ttl {
    font-size: 34px;
  }
  #sec2 h2.ttl::after {
    height: 58px;
  }
  #sec2 .set2 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: relative;
  }
  #sec2 .set2::before {
    content: "";
    height: 459px;
    border-left: 1px solid #000;
    opacity: 0.4;
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
    position: absolute;
    bottom: 0;
    left: 50%;
  }
  #sec2 .set2 .ttl {
    font-size: 22px;
  }
  #sec2 .set2 .ttl small {
    font-size: 18px;
  }
  #sec2 .set2 .ttl .latin {
    font-size: 14px;
  }
  #sec2 .set2 .toggle-link {
    width: 424px;
  }
  #sec2 .set2 .txtbox {
    width: 424px;
    padding-top: 59px;
  }
  #sec2 .set2 .txtbox dl {
    line-height: 25px;
  }
  #sec2 .set2 .txtbox dl + dl {
    margin-top: 25px;
  }
  #sec2 .set2 .txtbox dl dt {
    -ms-flex-preferred-size: 105px;
        flex-basis: 105px;
  }
  #sec2 .set2 .gr1, #sec2 .set2 .gr2 {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 50%;
            flex: 1 1 50%;
    padding: 101px 46px 80px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
  #sec2 .set2 .gr1::before, #sec2 .set2 .gr2::before {
    inset: -157px 0 -208px;
  }
  #sec2 .set2 .gr1 .txtbox,
  #sec2 .set2 .gr1 .toggle-link {
    margin-left: auto;
  }
  #sec2 .set2 .toggle .toggle-link {
    width: 424px;
    pointer-events: none;
  }
  #sec2 .set2 .toggle .toggle-main {
    display: block;
  }
  #sec2 .set3 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin: 0 -109px 0 -111px;
  }
  #sec2 .set3 .imgbox1, #sec2 .set3 .imgbox2 {
    -webkit-column-gap: 58px;
       -moz-column-gap: 58px;
            column-gap: 58px;
  }
  #sec2 .set3 .imgbox1 {
    margin-top: 34px;
    margin-left: 120px;
    display: block;
  }
  #sec2 .set3 .imgbox1 .img1 {
    max-width: unset;
    margin-top: 42px;
  }
  #sec2 .set3 .imgbox1 .img2 {
    max-width: unset;
  }
  #sec2 .set3 .imgbox2 {
    margin-top: 0;
  }
  #sec2 .set3 .imgbox2 .img1 {
    max-width: unset;
    margin-top: 0;
  }
  #sec2 .set3 .imgbox2 .img2 {
    max-width: unset;
    margin-top: 64px;
  }
  #sec2 .set4 {
    margin-top: 147px;
  }
  #sec2 .set4 .ttl {
    font-size: 30px;
    letter-spacing: 0.02em;
  }
  #sec2 .set4 .ttl small {
    font-size: 18px;
    letter-spacing: 0.15em;
  }
  #sec2 .set4 .imgbox {
    margin-top: 35px;
  }
}

#sec3 h2.ttl {
  margin: 0 auto;
}
#sec3 h2.ttl > span {
  display: inline-block;
  padding: 15vw 10vw;
  position: relative;
}
#sec3 h2.ttl > span::before, #sec3 h2.ttl > span::after {
  content: "";
  width: 50%;
  height: 100%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 94.5 107.5'%3E%3Cpath fill-rule='evenodd' stroke='rgb(255, 255, 255)' stroke-width='1px' stroke-linecap='butt' stroke-linejoin='miter' fill='rgb(255, 255, 255)' d='M0.500,25.500 L93.500,25.500 '/%3E%3Cpath fill-rule='evenodd' stroke='rgb(255, 255, 255)' stroke-width='1px' stroke-linecap='butt' stroke-linejoin='miter' fill='rgb(255, 255, 255)' d='M72.500,0.500 L72.500,106.500 '/%3E%3C/svg%3E") top right/contain no-repeat;
  opacity: 0.7;
  position: absolute;
}
#sec3 h2.ttl > span::before {
  top: 0;
  right: 0;
}
#sec3 h2.ttl > span::after {
  -webkit-transform: scale(-1);
          transform: scale(-1);
  bottom: 0;
  left: 0;
}
#sec3 .h2box {
  padding: 10vw 0 15vw;
  color: #fff;
  position: relative;
  z-index: 0;
}
#sec3 .h2box::before {
  content: "";
  background: var(--primary);
  position: absolute;
  inset: -30vw var(--paddingWrap-negative) 0;
  z-index: -1;
}
#sec3 .set1 {
  margin-top: 10vw;
}
#sec3 .set1 .txtbox .txt + .txt {
  margin-top: 5vw;
}
#sec3 .set1 .imgbox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-column-gap: 5vw;
     -moz-column-gap: 5vw;
          column-gap: 5vw;
  margin-top: 10vw;
}
#sec3 .set1 .imgbox .img {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  max-width: 50%;
}
@media screen and (min-width: 768px) {
  #sec3 h2.ttl > span {
    padding: 74px 58px 75px;
  }
  #sec3 .h2box {
    padding: 70px 0 48px;
  }
  #sec3 .h2box::before {
    inset: -204px -79px -61px;
  }
  #sec3 .set1 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin: 0 -20px 0 -165px;
  }
  #sec3 .set1 .txtbox {
    width: 440px;
    margin-top: 103px;
  }
  #sec3 .set1 .txtbox .txt {
    width: 435px;
    text-align: justify;
  }
  #sec3 .set1 .txtbox .txt + .txt {
    margin-top: 20px;
  }
  #sec3 .set1 .imgbox {
    -webkit-column-gap: 17px;
       -moz-column-gap: 17px;
            column-gap: 17px;
    margin-top: 0;
  }
}
@media screen and (min-width: 1200px) {
  #sec3 .set1 {
    margin: 0 -80px 0 -139px;
  }
}

#sec4 {
  padding: 20vw 0 15vw;
  position: relative;
  z-index: 0;
}
#sec4 h2.ttl {
  text-align: center;
}
#sec4 .set1 {
  margin-top: 10vw;
}
#sec4 .set1 .ttl {
  padding: 3vw;
  font-size: 10vw;
  line-height: 1;
  letter-spacing: 0.23em;
  position: absolute;
  z-index: 1;
}
#sec4 .set1 .imgbox {
  color: #fff;
  position: relative;
}
#sec4 .set1 .imgbox::after {
  content: "";
  border: 1px solid;
  -webkit-clip-path: polygon(20% 0, 100% 0, 100% 85%, 80% 100%, 0 100%, 0 15%);
          clip-path: polygon(20% 0, 100% 0, 100% 85%, 80% 100%, 0 100%, 0 15%);
  opacity: 0.8;
  position: absolute;
  inset: 3vw;
  z-index: 1;
}
#sec4 .set1 .imgbox .gr1, #sec4 .set1 .imgbox .gr2 {
  position: relative;
  z-index: 1;
}
#sec4 .set1 .imgbox .gr1 .ttl {
  top: 0;
  left: 0;
}
#sec4 .set1 .imgbox .gr2 .ttl {
  bottom: 0;
  right: 0;
}
#sec4 .set1 .txtbox {
  margin-top: 10vw;
}
#sec4 .set1 .btnbox {
  margin-top: 10vw;
}
#sec4 .set1 .btnbox .btn-link {
  margin-top: 5vw;
}
#sec4 .set2 {
  margin-top: 15vw;
}
#sec4 .set2 .txtbox {
  margin-top: 10vw;
}
#sec4 .set2 .txtbox .btn-link {
  margin-top: 10vw;
}
@media screen and (min-width: 768px) {
  #sec4 {
    padding: 221px 0 125px;
  }
  #sec4::before {
    content: "";
    width: 650px;
    height: 1239px;
    background: url("../img/history/sec4_deco.png") no-repeat;
    position: absolute;
    top: -27px;
    right: 0;
  }
  #sec4 .set1 {
    margin-top: 82px;
  }
  #sec4 .set1 .ttl {
    font-size: 80px;
  }
  #sec4 .set1 .imgbox {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin: 0 -50px;
  }
  #sec4 .set1 .imgbox::after {
    -webkit-clip-path: polygon(5% 0, 100% 0, 100% 79%, 95% 100%, 0 100%, 0 19%);
            clip-path: polygon(5% 0, 100% 0, 100% 79%, 95% 100%, 0 100%, 0 19%);
    inset: 43px 46px 43px 49px;
  }
  #sec4 .set1 .imgbox .gr1 .ttl {
    padding: 10px 13px;
  }
  #sec4 .set1 .imgbox .gr2 .ttl {
    padding: 17px 0px;
  }
  #sec4 .set1 .txtbox {
    width: 638px;
    margin: 62px auto 0;
    text-align: justify;
  }
  #sec4 .set1 .btnbox {
    width: 650px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-column-gap: 118px;
       -moz-column-gap: 118px;
            column-gap: 118px;
    margin: 89px auto 0;
  }
  #sec4 .set1 .btnbox .btn-link {
    margin-top: 0;
  }
  #sec4 .set1 .btnbox .btn-link .btn-style-1 {
    width: 230px;
  }
  #sec4 .set2 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin: 104px -100px 0 -96px;
  }
  #sec4 .set2 .txtbox {
    width: 500px;
    margin-top: 60px;
  }
  #sec4 .set2 .txtbox .btn-link {
    margin-top: 50px;
  }
  #sec4 .set2 .txtbox .btn-link .btn-style-1 {
    width: 230px;
  }
}
@media screen and (min-width: 1200px) {
  #sec4 .set1 .imgbox {
    margin: 0 -100px;
  }
}
@media screen and (min-width: 1400px) {
  #sec4 .set1 .imgbox {
    margin: 0 -140px;
  }
}