@media only screen and (max-width: 768px) {
  .home_page .wrapper {
    background: url(../images/key_bg_sp.png) no-repeat top center/100%;
    background-position: 0 -44.5em;
  }
  .home_page .key {
    --height: calc(100vh - 10px);
    --max-height: 156vw;
    --min-height: 320px;
    font-size: min(8px, 1.3vmin);
  }
  .home_page .key .key_text .item {
    padding: 10px;
  }
  .home_page .key::before {
    background-image: url(../images/mv_bg01_sp.png);
    width: 28.6667vw;
    height: 23.26667vw;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    left: 0;
    bottom: 0;
  }
  .home_page .key::after {
    background-image: url(../images/mv_bg02_sp.png);
    width: 24.6667vw;
    height: 43vw;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    right: 0;
    top: 0;
  }
  .home_page .key .catch {
    position: relative;
    top: 15.56vw;
    left: 8.8vw;
  }
  .home_page .key .catch h2 {
    font-size: 8.26667vw;
  }
  .home_page .key .catch p {
    font-size: 3.2vw;
    top: -10px;
  }
  .home_page .key .bg_mv .mv_img.img01 {
    background-image: url(../images/mv_img01_sp.png);
    background-position: bottom;
    background-repeat: no-repeat;
    background-size: cover;
    width: 84vw;
    height: 37vw;
    top: 24vw;
    left: 0;
    right: 0;
    margin: auto;
  }
  .home_page .key .bg_mv .mv_img.img02 {
    background-image: url(../images/mv_img02_sp.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    left: auto;
    top: 0;
    width: 24vw;
    height: 18.6667vw;
    position: fixed;
    z-index: 2;
    right: 10.6667vw;
  }
  .home_page .key .bg_mv .mv_img.img03 {
    left: auto;
    right: 0;
    bottom: 12.8vw;
    width: 18.33334vw;
    height: 16.6667vw;
    position: fixed;
    z-index: 2;
  }
}
@media only screen and (max-width: 768px) {
  .home_page .h_en {
    font-size: 16px;
  }
  .home_page .wrap_h3 {
    margin-bottom: 30px;
  }
  .home_page h3 {
    font-size: var(--ttl_size);
    text-align: center;
    margin-bottom: 20px;
  }
  .home_page .index01 {
    padding: 60px 0;
  }
  .home_page .index01 .content .box {
    display: block;
  }
  .home_page .index01 .content .news {
    width: auto;
  }
  .home_page .index01 .content ul li a {
    flex-wrap: wrap;
    padding: 20px 10px;
  }
  .home_page .index01 .content ul li a::after {
    right: 10px;
  }
  .home_page .index01 .content ul li a .date {
    font-size: 14px;
  }
  .home_page .index01 .content ul li a .cate {
    font-size: 14px;
  }
  .home_page .index01 .content ul li a .title {
    font-size: 16px;
  }
  .home_page .index01 .content p.en {
    font-size: 48px;
    text-align: center;
  }
  .home_page .index01 .content h3 .jp {
    font-size: 22px;
    top: -10px;
  }
  .home_page .index01 .content .btn-group .btn.style01 a {
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
    font-size: 16px;
  }
  .home_page .index02 {
    padding: 60px 0;
  }
  .home_page .index02 .idx_map {
    width: 100%;
  }
  .home_page .index02 .icon_bus {
    width: 100px;
    height: 100px;
  }
  .home_page .index02 .icon_bus::before {
    width: 32px;
    height: 38px;
    margin-right: 0px;
  }
  .home_page .index02 .idx02-item.left {
    margin-bottom: 30px;
  }
  .home_page .index02 .idx02-item .taglist {
    margin-top: 20px;
    padding-top: 20px;
    max-width: 62%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
  }
  .home_page .index02 .idx02-item .taglist li span:first-child {
    letter-spacing: 0;
    text-align: center;
  }
  .home_page .index02 .idx02-item .taglist li span:last-child {
    width: 54%;
    letter-spacing: 0;
  }
  .home_page .index03 {
    padding: 60px 0;
  }
  .home_page .index03 p.en {
    font-size: calc(var(--ttl_size) + 26px);
    margin-left: auto;
    margin-right: auto;
    display: flex;
    justify-content: center;
    writing-mode: unset;
    margin-bottom: 0;
    background: #C8E5E3;
    background: linear-gradient(0, rgb(200, 229, 227) 35%, rgb(133, 204, 198) 65%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  .home_page .index03 h3 {
    writing-mode: unset;
  }
  .home_page .index03 h3 span.jp01 {
    font-size: 28px;
    position: static;
  }
  .home_page .index03 h3 span.jp02,
  .home_page .index03 h3 span.jp03 {
    font-size: 24px;
    position: static;
  }
  .home_page .index03 .idx03-list {
    display: flex;
    flex-direction: column;
  }
  .home_page .index03 .group-ttl {
    writing-mode: unset;
    order: 1;
    position: static;
  }
  .home_page .index03 .group-img {
    font-size: 7.6px;
    order: 2;
    margin-top: 20px;
  }
  .home_page .index03 .group-img .img01 {
    z-index: 2;
    position: relative;
  }
  .home_page .index03 .group-img .img01::before {
    content: "";
    position: absolute;
    background-image: url(../images/idx02_bg_big02.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    top: 16em;
    left: -18vw;
    width: 51em;
    height: 39.9em;
    font-size: 7.6px;
    z-index: -1;
  }
  .home_page .index03 .group-img .img02 {
    right: -20vw;
    top: 0;
  }
  .home_page .index03 .idx03-wrap::before {
    display: none;
  }
  .home_page .index03 .idx03-wrap::after {
    bottom: 15em;
    right: -20vw;
    font-size: 6px;
  }
  .home_page .index03 .content-bot::before {
    width: 40%;
  }
  .home_page .index03 .content-bot .ttl-group {
    width: 50%;
    padding-top: 20px;
  }
  .home_page .index03 .content-bot .img {
    width: 50%;
  }
  .home_page .index03 .content-bot .ttl-zone {
    font-size: 22px;
    margin-bottom: 10px;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    line-height: 1.5;
  }
  .home_page .index03 .content-bot .ttl-zone:last-child {
    margin-bottom: 0;
  }
  .home_page .index03 .content-bot .ttl-zone span {
    margin-left: 0;
    font-size: 14px;
    width: 60px;
  }
  .home_page .index03 .content {
    padding-top: 60px;
  }
  .home_page .index04 {
    padding: 60px 0;
    margin-top: 10px;
  }
  .home_page .index04 p.en {
    font-size: calc(var(--ttl_size) + 24px);
  }
  .home_page .index04 h3 .jp {
    font-size: calc(var(--ttl_size) - 4px);
    position: relative;
    top: -10px;
  }
  .home_page .index04 .content {
    margin-bottom: 30px;
  }
  .home_page .index04 .content .desc_big {
    font-size: 18px;
  }
  .home_page .index04 .content p {
    letter-spacing: 0;
  }
  .home_page .index04 .btn-group .btn.style01 a {
    font-size: 12px;
	height: 90px;
  }
  
  .index04 .btn-group .btn.style01 a span.num {
	font-size: 20px;
  }
  .box-scroll {
    border-style: solid;
    border-width: 0.26667vw;
    border-color: rgb(234, 237, 237);
    background-color: rgb(255, 255, 255);
    box-shadow: 0px 10px 30px 0px rgba(0, 0, 0, 0.1);
    left: 5.333333vw;
    bottom: 4vw;
    width: 31vw;
    height: auto;
    padding: 2vw;
  }
  .box-scroll.active {
    bottom: 120px;
  }
  .box-scroll .ttl-scroll {
    font-size: 22px;
    padding-bottom: 1.86667vw;
    margin-bottom: 1.6vw;
    max-width: 31.2vw;
  }
  .box-scroll p {
    font-size: 16px;
  }
  .box-scroll p span {
    padding-bottom: 1.2vw;
  }
  .box-scroll .btn-close {
    top: -1.46667vw;
    left: -1.46667vw;
    width: 4.1333333vw;
    height: 4.1333333vw;
  }
}
@media only screen and (max-width: 640px) {
  .home_page .wrapper {
    background-position: 0 -30em;
  }
  .home_page .key .catch {
    top: 17vw;
  }
  .home_page .key .bg_mv .mv_img.img01 {
    height: 43vw;
    top: 23vw;
  }
  .home_page .key::after {
    height: 52vw;
  }
  .home_page .key::before {
    height: 28.26667vw;
  }
  .home_page .index03 .group-img {
    font-size: 6.4px;
  }
  .home_page .index03 .group-img .img01::before {
    font-size: 6.4px;
  }
  .box-scroll {
    bottom: 8vw;
  }
}
@media only screen and (max-width: 480px) {
  .home_page .wrapper {
    background-position: 0 0;
  }
  .home_page .key::before {
    background-image: url(../images/mv_bg01_sp.png);
    width: 28.6667vw;
    height: 36.26667vw;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    left: 0;
    bottom: 0;
  }
  .home_page .key::after {
    background-image: url(../images/mv_bg02_sp.png);
    width: 24.6667vw;
    height: 70.6667vw;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    right: 0;
    top: 0;
  }
  .home_page .key .catch {
    position: relative;
    top: 24.93333vw;
    left: 20px;
  }
  .home_page .key .catch h2 {
    font-size: 8.6667vw;
	  line-height: 1.4;
  }
  .home_page .key .catch p {
    font-size: 4vw;
  }
  .home_page .key .bg_mv .mv_img.img01 {
    background-image: url(../images/mv_img01_sp.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 84vw;
    height: 57.733333vw;
    top: 35.06667vw;
    left: 0;
    right: 0;
  }
  .home_page .key .bg_mv .mv_img.img02 {
    background-image: url(../images/mv_img02_sp.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    left: auto;
    top: 0;
    width: 32.8vw;
    height: 29.33333vw;
    position: fixed;
    z-index: 2;
    right: 10.6667vw;
  }
  .home_page .key .bg_mv .mv_img.img03 {
    left: auto;
    right: 0;
    bottom: 18.8vw;
    width: 25.33334vw;
    height: 22.6667vw;
    position: fixed;
    z-index: 2;
  }
  .home_page .index02 .idx02-item .taglist {
    max-width: 100%;
  }
  .home_page .index03 .idx03-wrap::after {
    right: -30vw;
    bottom: 8em;
  }
  .home_page .index03 .group-img {
    font-size: 5px;
  }
  .home_page .index03 .group-img .img01 {
    margin-left: 4vw;
  }
  .home_page .index03 .group-img .img01::before {
    font-size: 5px;
    left: -30vw;
  }
  .home_page .index03 .group-img .img02 {
    right: -35vw;
  }
  .box-scroll {
    margin-top: -90px;
    position: relative;
    display: block;
    width: 174px;
    height: auto;
    padding: 16px;
  }
  .box-scroll .ttl-scroll {
    font-size: 3.73333333vw;
    border-bottom: 0.26667vw solid #85ccc6;
    padding-bottom: 1.86667vw;
    margin-bottom: 1.6vw;
    max-width: 31.2vw;
  }
  .box-scroll p {
    font-size: 2.8vw;
  }
  .box-scroll p span {
    padding-bottom: 1.2vw;
  }
  .box-scroll .btn-close {
    top: -6px;
    left: -6px;
    width: 18px;
    height: 18px;
  }
}
@media only screen and (max-width: 390px) {
  .home_page .index03 .idx03-wrap::after {
    right: -50vw;
    bottom: 5em;
  }
  .home_page .index03 .group-img {
    font-size: 4px;
  }
  .home_page .index03 .group-img .img01::before {
    font-size: 4px;
  }
  .home_page .index03 .group-img .img02 {
    right: -24vw;
  }
}
@media only screen and (max-width: 375px) {
  .home_page .key::before {
    bottom: -15px;
  }
  .home_page .key .catch {
    top: 26.93333vw;
    left: 28px;
  }
  .home_page .key .catch p {
    top: 2px;
  }
  .home_page .key .bg_mv .mv_img.img01 {
    left: 20px;
  }
  .home_page .key .bg_mv .mv_img.img03 {
    bottom: 56px;
  }
  .box-scroll {
    margin-top: -72px;
    position: relative;
    display: block;
    width: 174px;
    height: 87px;
    padding: 16px;
  }
  .box-scroll .ttl-scroll {
    padding-bottom: 7px;
    margin-bottom: 6px;
  }
}
@media only screen and (max-width: 374px) {
  .home_page .index02 .idx02-item .taglist {
    max-width: fit-content;
  }
  .home_page .index03 h3 span.jp01,
  .home_page .index03 h3 span.jp02,
  .home_page .index03 h3 span.jp03 {
    letter-spacing: 0;
  }
  .home_page .index03 .idx03-wrap::after {
    right: -60vw;
    bottom: 12em;
  }
  .home_page .index03 .group-img {
    font-size: 3.5px;
  }
  .home_page .index03 .group-img .img01::before {
    font-size: 3.5px;
  }
  .home_page .index03 .group-img .img02 {
    right: -30vw;
  }
  .home_page .index04 .inner {
    padding-left: 10px;
    padding-right: 10px;
  }
  .box-scroll {
    width: 40%;
    height: auto;
    padding: 10px;
  }
}