@charset "UTF-8";
#mainvisual {
  background: url(../images/mainvisual_bg.jpg) no-repeat center top;
  margin-top: -25px; }
  #mainvisual .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    height: 699px; }

  .mv-text {
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: sans-serif;
  }
  .container-text {
    line-height: 1;
    font-weight: normal;
    transform: skew(-12deg) rotate(-9deg);
    text-align: center;
  }
  .top-text {
    background-color: white;
    font-size: 3rem;
    padding: 0.3em;
    line-height: 1.2;
  }
  .bottom-text {
    background-color: black;
    font-size: 3.4rem;
    padding: 0.25em;
    color: white;
    margin-top: 0.1em;
  }
/* ▽ SP layout ========== */
  @media only screen and (max-width: 767px) {
    #mainvisual {
      background: url(../images/sp_mainvisual_bg.png) no-repeat top / contain;
      margin-top: 0; }
      #mainvisual .container {
        height: 42vh;
        min-height: 385px;
       } 

    .top-text {
      font-size: 1.4rem;
    }
    .bottom-text {
      font-size: 1.6rem;
    }
      }

/* ========== end △ */
.tt1_sec {
  padding: 90px 0; }
  .tt1_sec .container .content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 30px; }
    .tt1_sec .container .content .left {
      margin-right: 30px;
      min-width: 152px; }
    .tt1_sec .container .content .right {
      height: 130px;
      width: 100%;
      overflow: auto; }
      .tt1_sec .container .content .right dl {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        padding: 10px 0;
        border-bottom: 2px solid #f0f0f0; }
        .tt1_sec .container .content .right dl:first-child {
          border-top: 2px solid #f0f0f0; }
        .tt1_sec .container .content .right dl dt {
          margin-right: 20px; }

/* ▽ SP layout ========== */
  @media only screen and (max-width: 767px) {
    .tt1_sec {
      padding: 40px 0; }
      .tt1_sec .container .content {
        -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
        .tt1_sec .container .content .left {
          width: 100%; }
        .tt1_sec .container .content .right {
          height: 220px; }
          .tt1_sec .container .content .right dl {
            -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
            .tt1_sec .container .content .right dl dt {
              width: 100%; } }

/* ========== end △ */
.tt2_sec {
  background: #cccccc;
  position: relative;
  padding-bottom: 80px; }
  .tt2_sec:after {
    width: 100%;
    height: 67px;
    background: #fff;
    position: absolute;
    top: 0;
    left: 0;
    content: ""; }
  .tt2_sec .container {
    position: relative;
    z-index: 2; }
    .tt2_sec .container .content {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      margin-bottom: 90px; }
      .tt2_sec .container .content .left {
        min-width: 680px;
        margin-right: 40px;
        margin-left: -90px; }
    .tt2_sec .container .content2 {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between;
      margin-bottom: 45px; }
      .tt2_sec .container .content2 .inner {
        width: 330px;
        border: 2px solid #000;
        background: #fff;
        font-size: 22px;
        text-align: center;
        font-weight: bold;
        position: relative;
        padding: 50px 30px 30px; }
        .tt2_sec .container .content2 .inner h3 {
          position: absolute;
          left: 20px;
          top: -2px;
          z-index: 3; }
        .tt2_sec .container .content2 .inner p {
          line-height: 1.5;
          z-index: 3; }
        .tt2_sec .container .content2 .inner a {
          text-decoration: none;
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          -webkit-box-align: center;
          -ms-flex-align: center;
          align-items: center;
          -webkit-box-pack: center;
          -ms-flex-pack: center;
          justify-content: center;
          height: 100%; }
.tt2_sec .container .content2 .inner a p {
  transition: all ease 0.3s;
}
.tt2_sec .container .content2 .inner a:hover p {
  transform: scale(1.03);
}
          .tt2_sec .container .content2 .inner a:before {
            content: "";
            display: none;
            position: absolute;
            right: 0;
            bottom: 0;
            top: 0;
            left: 0;
            background: #ffea00;
            -webkit-transform: scaleX(0);
            -ms-transform: scaleX(0);
            transform: scaleX(0);
            -webkit-transform-origin: bottom right;
            -ms-transform-origin: bottom right;
            transform-origin: bottom right;
            -webkit-transition: -webkit-transform 0.5s ease;
            transition: -webkit-transform 0.5s ease;
            -o-transition: transform 0.5s ease;
            transition: transform 0.5s ease;
            transition: transform 0.5s ease, -webkit-transform 0.5s ease;
            z-index: 2; }
          .tt2_sec .container .content2 .inner a span {
            position: relative;
            z-index: 3; }
          .tt2_sec .container .content2 .inner a:hover {
            color: #000; }
            .tt2_sec .container .content2 .inner a:hover:before {
              -webkit-transform: scaleX(1);
              -ms-transform: scaleX(1);
              transform: scaleX(1);
              -webkit-transform-origin: bottom left;
              -ms-transform-origin: bottom left;
              transform-origin: bottom left; }
            .tt2_sec .container .content2 .inner a:hover span {
              color: #000; }

/* ▽ SP layout ========== */
  @media only screen and (max-width: 767px) {
    .tt2_sec {
      padding-bottom: 40px; }
      .tt2_sec:after {
        height: 160px; }
      .tt2_sec .container .content {
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        margin-bottom: 40px; }
        .tt2_sec .container .content .right figure {
          margin-bottom: 30px; }
      .tt2_sec .container .content2 {
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        margin-bottom: 20px;
        -ms-flex-pack: distribute;
        justify-content: space-around; }
        .tt2_sec .container .content2 .inner {
          width: 48%;
          margin-bottom: 20px; }
          .tt2_sec .container .content2 .inner h3 {
            width: 30px; }
          .tt2_sec .container .content2 .inner p {
            font-size: 18px; }
    /* ▽ SP layout ========== */ }
      @media only screen and (max-width: 767px) and (max-width: 460px) {
        .tt2_sec .container .content2 .inner {
          width: 100%; } }
  @media only screen and (max-width: 767px) {
    /* ========== end △ */ }

/* ========== end △ */
.tt3_sec {
  padding: 80px 0;
  position: relative;
  background: url(../images/repeat.jpg) repeat-x center bottom;
  margin-bottom: 70px; }
  .tt3_sec:after {
    width: 100%;
    height: 340px;
    background: #444444;
    position: absolute;
    top: 0;
    left: 0;
    content: ""; }
  .tt3_sec .container {
    position: relative;
    z-index: 2; }
    .tt3_sec .container .title {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      margin-bottom: 50px; }
      .tt3_sec .container .title h2 {
        margin-right: 55px;
        min-width: 233px;
        border-right: 1px solid #999999;
        padding-right: 55px; }
      .tt3_sec .container .title p {
        color: #fff; }
    .tt3_sec .container .content {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between; }
      .tt3_sec .container .content .inner {
        width: 350px; }
        .tt3_sec .container .content .inner figure {
          margin-bottom: 20px; }
        .tt3_sec .container .content .inner p {
          margin-bottom: 30px;
          text-align: center;
          }
        .tt3_sec .container .content .inner:nth-child(2) {
          margin-top: 40px; }

/* ▽ SP layout ========== */
  @media only screen and (max-width: 767px) {
    .tt3_sec {
      padding: 40px 0;
      margin-bottom: 40px; }
      .tt3_sec .container .title {
        -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
        .tt3_sec .container .title h2 {
          border-right: none;
          border-bottom: 1px solid #999999;
          padding-bottom: 20px;
          margin-bottom: 30px;
          margin-right: 0;
          padding-right: 0;
          min-width: 50px; }
      .tt3_sec .container .content {
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -ms-flex-pack: distribute;
        justify-content: space-around; }
        .tt3_sec .container .content .inner {
          width: 48%;
          -webkit-box-pack: center;
          -ms-flex-pack: center;
          justify-content: center;
          margin-bottom: 30px; }
          .tt3_sec .container .content .inner:nth-child(2) {
            margin-top: 0; }
    /* ▽ SP layout ========== */ }
      @media only screen and (max-width: 767px) and (max-width: 460px) {
        .tt3_sec .container .content .inner {
          width: 100%; }
          .tt3_sec .container .content .inner figure {
            width: 100%;
            text-align: center; } }
  @media only screen and (max-width: 767px) {
    /* ========== end △ */ }

/* ========== end △ */
.tt4_sec .container > .cm_tt1 {
  margin-bottom: 40px; }

.tt4_sec .container .wrap_content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin-bottom: 55px; }
  .tt4_sec .container .wrap_content .content {
    width: 531px; }
    .tt4_sec .container .wrap_content .content .banner {
      background: url(../images/banner1.png) no-repeat center top;
      padding: 10px;
      height: 210px;
      margin: 0 0 10px;
      position: relative;
      width: 100%;
      padding-left: 40px; }
      .tt4_sec .container .wrap_content .content .banner:before {
        display: block;
        width: calc(100% - 0px);
        left: 0;
        top: 0px;
        height: calc(100% - 0px);
        position: absolute;
        content: "";
        background: black;
        position: absolute;
        z-index: 1;
        opacity: 0.5;
        -webkit-transition: all ease 0.5s;
        -o-transition: all ease 0.5s;
        transition: all ease 0.5s; }
      .tt4_sec .container .wrap_content .content .banner:after {
        display: block;
        width: calc(100% - 20px);
        left: 10px;
        top: 10px;
        height: calc(100% - 20px);
        position: absolute;
        content: "";
        border: 1px solid #fff;
        position: absolute;
        z-index: 1; }
      .tt4_sec .container .wrap_content .content .banner a {
        text-decoration: none;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        height: 100%;
        position: relative;
        z-index: 2; }
      .tt4_sec .container .wrap_content .content .banner:hover:before {
        opacity: 0; }
    .tt4_sec .container .wrap_content .content:nth-child(2) .banner {
      background: url(../images/banner2.png) no-repeat center top; }

.tt4_sec .container .wrap_content2 {
  border: 1px solid #000;
  padding: 15px;
  margin: 0 40px 80px;
  position: relative; }
  .tt4_sec .container .wrap_content2:after {
    width: 100%;
    height: 100%;
    position: absolute;
    display: block;
    content: "";
    right: -15px;
    bottom: -15px;
    background: #f0f0f0;
    z-index: -1;
    -webkit-transition: all ease 0.5s;
    -o-transition: all ease 0.5s;
    transition: all ease 0.5s; }
  .tt4_sec .container .wrap_content2 a {
    z-index: 2;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    text-decoration: none;
    position: relative; }
    .tt4_sec .container .wrap_content2 a figure {
      min-width: 500px;
      margin-right: 40px;
      margin-left: -30px;
      margin-top: -30px; }
    .tt4_sec .container .wrap_content2 a:after {
      position: absolute;
      right: 20px;
      top: 0;
      content: "\f105";
      color: #999;
      width: 10px;
      height: 100%;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      font-family: FontAwesome; }
    .tt4_sec .container .wrap_content2 a .right h3 {
      margin-bottom: 10px; }
  .tt4_sec .container .wrap_content2:hover:after {
    background: #cccccc; }

/* ▽ SP layout ========== */
@media only screen and (max-width: 767px) {
  .tt4_sec .container .wrap_content {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-bottom: 30px; }
    .tt4_sec .container .wrap_content .content {
      margin-bottom: 40px;
      width: 100%; }
      .tt4_sec .container .wrap_content .content .banner {
        background-size: cover !important; }
  .tt4_sec .container .wrap_content2 {
    margin: 0 10px 50px;
    padding: 10px 20px 20px; }
    .tt4_sec .container .wrap_content2 a {
      -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
      .tt4_sec .container .wrap_content2 a:after {
        right: 0px; }
      .tt4_sec .container .wrap_content2 a figure {
        width: 100%;
        min-width: 100%;
        margin-bottom: 30px; }
      .tt4_sec .container .wrap_content2 a .right {
        width: 100%; }
        .tt4_sec .container .wrap_content2 a .right h3 {
          -ms-flex-wrap: wrap;
          flex-wrap: wrap; } }

/* ========== end △ */


/* LP Banner */
#lp_banner_sec {
    padding-top: 40px; /* メインビジュアルとの間隔 */
    background: #fff;
}

#lp_banner_sec .banner_wrap {
    width: 100%;
    max-width: 1100px; /* サイトの基本コンテンツ幅に合わせる */
    margin: 0 auto;
    text-align: center;
}

#lp_banner_sec .banner_wrap a {
    display: block;
    transition: opacity 0.3s ease;
}

#lp_banner_sec .banner_wrap a:hover {
    opacity: 0.8;
}

#lp_banner_sec .banner_wrap img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1); /* 軽い影をつけて視認性を向上 */
}

/* ▽ SP layout ========== */
@media only screen and (max-width: 767px) {
    #lp_banner_sec {
        padding: 0 15px 0; /* スマホ時は左右に余白 */
    }
    
    #lp_banner_sec .banner_wrap img {
        box-shadow: none; /* スマホでは影を消してスッキリさせる */
    }
}
/* ========== end △ */