#key .ttl {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 0;
  width: 100%;
  text-align: center;
  transform: translateY(-50%);
  color: #fff; }
@media only screen and (min-width: 768px) {
  #key {
    height: 930px; }
    #key img {
      width: 100%;
      height: 100%;
      object-fit: cover; } }

#sec1 {
  position: relative;
  z-index: 0;
  margin-top: 15vw;
  margin-bottom: 15vw;
  padding-bottom: 15vw; }
  #sec1:before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    top: 15vw;
    width: 90%;
    z-index: -1;
    background: url("../img/scene/bg2.png"); }
  #sec1 h2 {
    margin: 10vw 0 5vw;
    text-align: center; }
  @media only screen and (min-width: 768px) {
    #sec1 {
      text-align: center;
      margin-top: 132px;
      margin-bottom: 200px;
      padding: 0 30px 150px; }
      #sec1:before {
        top: 140px;
        width: calc(50% + 500px); }
      #sec1 h2 {
        margin: 191px 0 64px; }
      #sec1 .sec1-txt {
        letter-spacing: 2px; } }

#sec2 {
  margin-bottom: 20vw; }
  #sec2 h2 {
    margin-bottom: 5vw; }
  #sec2 .sec2-img {
    margin-top: 10vw; }
    #sec2 .sec2-img p + p {
      margin-top: 2vw; }
  @media only screen and (min-width: 768px) {
    #sec2 {
      margin-bottom: 184px; }
      #sec2 .sec2-info {
        width: 300px;
        margin: 130px 30px 0 80px; }
      #sec2 h2 {
        margin-bottom: 67px; }
      #sec2 .sec2-img {
        width: 750px;
        margin-right: -250px;
        margin-top: 0; }
        #sec2 .sec2-img p + p {
          margin-top: 10px; } }
  @media screen and (min-width: 768px) and (max-width: 1100px) {
    #sec2 .sec2-img {
      margin-right: -200px; } }

#sec3 {
  margin-bottom: 20vw; }
  #sec3 h2 {
    margin-bottom: 5vw; }
  #sec3 .sec3-img {
    margin-top: 10vw; }
    #sec3 .sec3-img p + p {
      margin-top: 2vw; }
  @media only screen and (min-width: 768px) {
    #sec3 {
      margin-bottom: 53px; }
      #sec3 .df-pc {
        margin: 0 auto;
        width: 820px; }
      #sec3 h2 {
        margin: 0 0 0 41px;
        width: 250px;
        line-height: 55px; }
      #sec3 .sec3-txt {
        width: 440px;
        letter-spacing: 1.5px; }
      #sec3 .sec3-img {
        margin: 87px 0 0 -50px; }
        #sec3 .sec3-img p + p {
          margin-top: 8px; } }

#sec4 {
  margin-bottom: 20vw; }
  #sec4 .sec4-txt {
    margin: 5vw 0;
    position: relative;
    z-index: 1; }
  #sec4 .sec4-deco {
    position: absolute;
    width: 30%;
    top: -10vw;
    right: 0; }
  #sec4 h2 {
    position: relative;
    z-index: 1; }
  #sec4 .sec4-img-group {
    position: relative;
    z-index: 0; }
    #sec4 .sec4-img-group:before {
      content: "";
      position: absolute;
      bottom: 15vw;
      right: -6%;
      top: 15vw;
      width: 109%;
      z-index: -1;
      background: url("../img/scene/bg2.png"); }
  #sec4 .sec4-img1 {
    position: relative; }
    #sec4 .sec4-img1 .slick-dots {
      position: absolute;
      z-index: 1;
      bottom: 18px;
      right: 10px;
      display: flex;
      align-items: flex-end; }
      #sec4 .sec4-img1 .slick-dots li {
        width: 1px;
        height: 13px;
        background: #fff;
        margin: 0 2px; }
        #sec4 .sec4-img1 .slick-dots li button {
          width: 100%;
          height: 100%;
          border-radius: 0;
          border: none; }
        #sec4 .sec4-img1 .slick-dots li.slick-active {
          height: 26px; }
  #sec4 .sec4-img3 {
    margin: 10vw 0 5vw -6%;
    width: 75%; }
  #sec4 .d-flex {
    align-items: flex-end; }
    #sec4 .d-flex p:nth-child(1) {
      width: 33%; }
    #sec4 .d-flex p:nth-child(2) {
      width: 60%;
      margin-bottom: 30vw; }
  @media only screen and (min-width: 768px) {
    #sec4 {
      margin-bottom: 200px; }
      #sec4 .sec4-info {
        padding: 130px 0 87px 133px; }
      #sec4 .sec4-txt {
        margin: 29px 0 0; }
      #sec4 .sec4-deco {
        width: 384px;
        top: 0;
        right: -145px; }
      #sec4 h2 {
        position: relative;
        z-index: 1;
        line-height: 55px; }
      #sec4 .sec4-img-group:before {
        bottom: 370px;
        right: auto;
        left: 0;
        top: 100px;
        width: 150%; }
      #sec4 .sec4-img1 {
        position: relative;
        margin: 0 -150px 5px auto;
        width: 900px; }
        #sec4 .sec4-img1 .slick-dots {
          bottom: 265px;
          right: auto;
          left: -124px; }
          #sec4 .sec4-img1 .slick-dots li {
            height: 25px;
            margin: 0 5px;
            background: #000; }
            #sec4 .sec4-img1 .slick-dots li.slick-active {
              height: 50px; }
      #sec4 .sec4-img2 {
        margin: -12px -150px 100px auto;
        width: 900px; }
      #sec4 .sec4-img3 {
        margin: 0 0 0 -150px;
        width: 500px; }
      #sec4 .d-flex {
        width: 500px;
        margin-top: 185px; }
        #sec4 .d-flex p:nth-child(1) {
          width: 180px; }
        #sec4 .d-flex p:nth-child(2) {
          width: 250px;
          margin-bottom: 205px; } }

#sec5 {
  margin-bottom: 20vw; }
  #sec5 h2 {
    margin: 7vw 0 4vw; }
  #sec5 p.btn-shared {
    margin: 10vw auto 0;
    width: 85%;
    text-align: center; }
  @media only screen and (min-width: 768px) {
    #sec5 {
      margin-bottom: 200px;
      padding: 0 30px; }
      #sec5 .wrap {
        width: 100%;
        max-width: 1370px; }
      #sec5 .df-pc {
        justify-content: flex-end; }
      #sec5 .sec5-info {
        width: 374px;
        margin-left: 100px; }
      #sec5 .sec5-img {
        width: 62%; }
      #sec5 h2 {
        margin: 67px 0 28px;
        line-height: 60px; }
      #sec5 p.btn-shared {
        margin: 46px 0 0;
        width: 260px; }
        #sec5 p.btn-shared a {
          font-size: 15px;
          padding: 2px 0; } }
  @media screen and (min-width: 768px) and (max-width: 1200px) {
    #sec5 .sec5-info {
      margin-left: 50px; }
    #sec5 h2 {
      margin-top: 20px; } }
  @media screen and (min-width: 768px) and (max-width: 1100px) {
    #sec5 .sec5-img {
      width: calc(100% - 274px);
      margin-left: -150px; } }
