@media only screen and (max-width: 768px) {
  .home_page .key {
    --height: calc(100vh - 60px);
    --max-height: 156vw;
    --min-height: 320px;
    font-size: min(8px, 1.3vmin);
  }
  .home_page .key .key_text .item {
    padding: 10px;
    align-items: flex-end;
    justify-content: center;
  }
  .home_page .key .key_text .item::before {
    right: 0;
  }
  .home_page .key .catch {
    text-align: center;
    display: table;
    margin: auto;
    padding: 30px;
    margin-bottom: 80px;
  }
  .home_page .key h2,
  .home_page .key .jp {
    letter-spacing: 0;
  }
  .home_page .key h2 {
    font-size: 4.8em;
  }
  .home_page .key .jp {
    font-size: 2.8em;
    line-height: 1.65;
    margin-left: 0;
    margin-right: 0;
  }
  .home_page .key .mv_slider.slick-initialized .s1::before {
	background: url(../images/idx_key_bg_sp.jpg) no-repeat top center/cover;
}
.home_page .key .mv_slider.slick-initialized .s2::before {
	background: url(../images/idx_key_bg02_sp.jpg) no-repeat top center/cover;
}
.home_page .key .mv_slider.slick-initialized .s3::before {
	background: url(../images/idx_key_bg03_sp.jpg) no-repeat top center/cover;
}
}
@media only screen and (max-width: 768px) and (max-aspect-ratio: 768/600) {
  .home_page .key {
    font-size: 1vmin;
  }
}
@media only screen and (max-width: 480px) {
  .home_page .key .inner {
    padding: 0;
  }
  .home_page .key .catch {
    padding: 20px;
    margin-bottom: 40px;
  }
  .home_page .key h2 {
    font-size: 7.5em;
    margin-bottom: 10px;
  }
  .home_page .key .jp {
    font-size: 5em;
  }
}
@media only screen and (max-width: 768px) {
  .home_page .h_en {
    font-size: 18px;
    letter-spacing: 0;
  }
  .home_page h3 {
    font-size: min(7vw, var(--ttl_size));
    letter-spacing: 0;
  }
  .home_page .wrap_h3 {
    text-align: center;
  }
  .home_page .inner,
  .home_page .inner_big,
  .home_page .inner_max {
    max-width: 610px;
  }
}
@media only screen and (max-width: 768px) {
  .idx1 .wrap_h3 {
    text-align: left;
  }
  .idx1 .idx1_box {
    padding: 40px;
    max-width: 100%;
    width: 100%;
  }
  .idx1 .idx1_box:last-child {
    margin-top: 40px;
  }
  .idx1 .inner_big {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .idx1 .inner_big::after {
    font-size: 3.5px;
    bottom: -1px;
  }
  .idx1 ul li a {
    font-size: 16px;
  }
  .idx1 .h_en {
    font-size: 14px;
  }
  .idx1 h3 {
    font-size: min(6.5vw, var(--ttl_size) - 2px);
  }
}
@media only screen and (max-width: 480px) {
  .idx1 .idx1_box {
    padding: 20px;
  }
  .idx1 .inner_big {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .idx1 .inner_big::after {
    font-size: 1vw;
  }
  .idx1 ul li a {
    letter-spacing: 0;
    padding-top: 1em;
    padding-bottom: 1em;
  }
  .idx1 .btn-group {
    width: 130px;
  }
}
@media only screen and (max-width: 768px) {
  .idx2 {
    padding: 40px 0;
  }
  .idx2 .idx2_bg {
    margin-top: 40px;
    padding: 40px 0;
  }
  .idx2 .left,
  .idx2 .right {
    max-width: 100%;
    width: 100%;
  }
  .idx2 .left {
    margin-bottom: 30px;
  }
  .idx2 .wrap_h4 h4 {
    letter-spacing: 0;
    font-size: 22px;
  }
  .idx2 .btn-group {
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .idx2 .btn-group .btn {
    max-width: 260px;
    width: 100%;
  }
  .idx2 .btn-group .btn:last-child {
    margin-top: 20px;
  }
  .idx2 .idx2_txt {
    margin-top: 40px;
    padding: 20px;
  }
  .idx2 .idx2_txt .content,
  .idx2 .idx2_txt .idx2_img {
    padding: 0;
    width: 100%;
    max-width: 100%;
  }
  .idx2 .idx2_txt .idx2_img {
    display: table;
    margin-left: auto;
    margin-right: auto;
    width: auto;
  }
  .idx2 .idx2_txt .content {
    margin-bottom: 15px;
    text-align: center;
  }
  .idx2 .idx2_txt .content .ttl1 {
    margin: 0 auto 10px;
    font-size: min(4.8vw, 18px);
  }
  .idx2 .idx2_txt .content .ttl2 {
    letter-spacing: 0;
  }
  .idx2 .idx2_map {
    height: 299px;
    margin-top: 40px;
  }
}
@media only screen and (max-width: 480px) {
  .idx2::before {
    height: 50vw;
  }
}
@media only screen and (max-width: 768px) {
  .idx3 {
    padding: 40px 0 100px;
  }
  .idx3::before {
    display: none;
  }
  .idx3 .inner_big {
    display: block;
  }
  .idx3 .idx3_img {
    padding: 0;
    margin: 25px auto;
    max-width: 400px;
  }
  .idx3 .idx3_name {
    top: 5em;
    right: 20px;
    font-size: 24px;
    letter-spacing: 0.1em;
    padding: 1em 0.25em;
  }
  .idx3 .idx3_name .jp {
    font-size: 16px;
    letter-spacing: 0;
    margin-bottom: 10px;
  }
  .idx3 .txt {
    padding: 0;
    margin: 0;
  }
  .idx3 .txt p {
    letter-spacing: 0;
    font-size: 16px;
  }
  .idx3 .btn-group {
    flex-direction: column;
    align-items: center;
    justify-content: center;
	margin-left: auto;
	margin-right: auto;
  }
  .idx3 .btn-group .btn {
    max-width: 260px;
    width: 100%;
  }
  .idx3 .btn-group .btn:last-child {
    margin-top: 20px;
  }
}
@media only screen and (max-width: 375px) {
  .idx3 .idx3_name {
    top: 2.5em;
  }
}
@media only screen and (max-width: 345px) {
  .idx3 .idx3_name {
    right: 0px;
    top: 1em;
  }
}
@media only screen and (max-width: 768px) {
  .idx_bg::after {
    content: "";
    display: block;
    position: absolute;
    transition: all 0.3s;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='197px' height='99px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 146, 76)' d='M178.394,67.504 C168.348,67.778 159.980,59.799 159.703,49.683 C159.427,39.566 167.346,31.141 177.392,30.866 C187.438,30.591 195.807,38.570 196.083,48.687 C196.360,58.804 188.441,67.229 178.394,67.504 ZM124.051,48.395 C128.898,50.542 130.034,52.871 133.254,52.909 C137.091,52.955 139.783,55.929 136.789,57.951 C135.918,58.452 134.983,58.829 134.010,59.078 C132.628,59.480 130.643,61.221 129.707,60.978 C126.937,60.196 124.321,61.210 122.096,59.185 C116.964,54.518 104.031,61.328 99.056,59.993 C98.622,61.399 105.455,79.997 106.388,82.267 C109.377,85.692 112.293,85.683 113.120,89.658 C113.666,92.290 112.606,92.245 109.896,92.700 C107.523,92.961 105.121,92.725 102.842,92.011 C99.060,90.987 99.234,90.122 97.816,86.580 C95.243,80.153 90.211,72.795 86.580,65.387 C83.193,58.480 79.240,59.032 71.152,58.543 C63.254,58.066 58.142,55.475 50.653,58.425 C46.623,60.014 47.455,64.457 44.028,68.033 C37.976,74.350 31.342,80.540 37.438,86.427 C39.327,88.254 38.542,88.089 41.394,88.918 C46.809,90.496 46.584,94.614 44.976,96.477 C43.862,97.772 38.369,96.990 36.622,97.000 C32.630,97.020 33.453,94.746 31.200,93.081 C29.020,91.474 26.182,86.971 23.344,84.709 C22.299,78.545 21.812,71.497 23.270,66.316 C20.052,67.163 15.759,72.312 13.709,74.201 C10.993,76.700 9.997,82.662 10.542,87.917 C12.698,91.312 15.433,93.717 11.694,98.371 C8.043,98.343 4.490,97.043 2.784,95.055 C-0.098,91.698 -0.324,90.181 0.636,85.682 C3.300,73.192 -0.487,68.161 3.431,65.471 C12.280,59.400 17.357,54.959 16.833,43.501 C16.429,34.659 20.381,34.115 16.129,32.259 C4.380,27.118 5.038,13.472 8.558,6.227 L8.567,6.222 C12.994,-2.885 24.524,-1.078 16.670,7.569 C6.810,16.576 17.499,31.506 30.152,27.416 C40.208,25.355 65.881,23.643 79.675,20.331 C82.573,19.635 88.670,18.291 90.693,16.292 C94.881,12.158 94.988,8.637 100.231,3.235 C105.149,-0.301 116.432,-0.357 120.612,4.149 C123.416,7.172 124.615,9.467 126.231,10.711 C128.511,12.446 139.205,15.069 137.217,18.791 C135.218,26.411 127.698,27.670 118.150,26.933 C119.028,30.772 118.614,32.475 116.841,34.048 C114.520,36.107 109.709,34.435 106.970,29.808 C109.954,42.898 108.029,41.375 107.665,47.786 C107.908,50.203 123.421,48.118 124.051,48.395 Z'/%3E%3C/svg%3E") no-repeat center/contain;
    width: 19.7em;
    height: 9.9em;
    bottom: calc(100% + 5em);
    left: 15%;
    font-size: 0.8vw;
  }
  .idx4 {
    margin-top: 0;
    padding: 40px 0 60px;
  }
  .idx4::after {
    font-size: 1vw;
  }
  .idx4::before {
    bottom: calc(100% - 1px);
    mask-position: -1.5581302437vw;
  }
  .idx4 .TabContainer {
    margin-top: 40px;
  }
  .idx4 .TabContainer .TabPager > div p {
    letter-spacing: 0;
    font-size: 20px;
  }
  .idx4 h4 {
    margin: 0 auto;
    font-size: 24px;
    letter-spacing: 0;
    display: table;
  }
  .idx4 h4::after {
    margin-left: auto;
    margin-right: auto;
    width: 100px;
  }
  .idx4 .img {
    margin-top: 25px;
    margin-bottom: 25px;
    max-width: 100%;
  }
  .idx4 .img img {
    width: 100%;
  }
  .idx4 .txt p {
    letter-spacing: 0;
    font-size: 16px;
  }
  .idx4 .idx4_tab {
    padding-top: 40px;
    padding-bottom: 70px;
  }
  .idx4 .inner {
    display: block;
  }
  .idx4 .btn-group {
    margin-left: auto;
    margin-right: auto;
	        justify-content: center;
  }
  .idx4 .en {
    font-size: 10vw;
    right: 0;
    text-align: center;
  }
}
@media only screen and (max-width: 480px) {
  .idx4 .TabContainer {
    margin-top: 40px;
  }
  .idx4 .TabContainer .TabPager > div p {
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .idx4 .TabContainer .TabPager > div p::before {
    margin-bottom: 5px;
    margin-right: 0;
    width: 1.8em;
    height: 1.8em;
  }
  .idx4 .en {
    font-size: 12vw;
  }
}
@media only screen and (max-width: 768px) {
  .idx5 {
    padding-bottom: 0;
  }
  .idx5 .inner_big::before, .idx5 .inner_big::after {
    font-size: 0.5vw;
    top: 5em;
  }
  .idx5 .inner_big::before {
    left: 0;
  }
  .idx5 .inner_big::after {
    right: 0;
  }
  .idx5 .TabContainer {
    margin-top: 40px;
  }
  .idx5 .TabContainer .TabPager {
    flex-wrap: wrap;
    gap: 10px;
  }
  .idx5 .TabContainer .TabPager > div {
    width: calc(50% - 5px);
  }
  .idx5 .TabContainer .TabPager > div::after {
    height: 16px;
    bottom: -8px;
  }
  .idx5 .TabContainer .TabPager > div p {
    letter-spacing: 0;
    font-size: 20px;
  }
  .idx5 .idx5_tab {
    padding: 40px 0;
  }
  .idx5 .idx5_list {
    display: flex;
    gap: 10px;
  }
  .idx5 .idx5_list2 .idx5_content {
    width: 45%;
    padding: 0;
  }
  .idx5 .idx5_list2 .item {
    align-items: flex-start;
    display: flex;
  }
  .idx5 .idx5_list2 .item:not(:last-child) {
    margin-bottom: 30px;
  }
  .idx5 .idx5_list2 .item:nth-child(even) .idx5_content {
    order: -1;
  }
  .idx5 .idx5_item {
    width: calc(50% - 5px);
  }
  .idx5 .idx5_item {
    padding-right: 60px;
    padding-top: 20px;
    padding-left: 20px;
    padding-bottom: 20px;
  }
  .idx5 .idx5_item::before {
    right: 48px;
  }
  .idx5 .idx5_item .img {
    max-width: 120px;
  }
  .idx5 .idx5_item .txt {
    padding: 20px 0 0;
  }
  .idx5 .idx5_item .txt_en p {
    font-size: 16px;
    letter-spacing: 0;
    padding: 20px 1em 0 1em;
  }
  .idx5 .idx5_item .txt_en p::before, .idx5 .idx5_item .txt_en p::after {
    bottom: 10px;
  }
  .idx5 .idx5_item .ttl1 {
    font-size: 20px;
  }
  .idx5 .idx5_item .ttl2 {
    font-size: 16px;
  }
  .idx5 .idx5_item .ttl2 br {
    display: none;
  }
}
@media only screen and (max-width: 480px) {
  .idx5 .TabContainer .TabPager > div p {
    font-size: min(5vw, 18px);
    padding: 12px 0;
  }
  .idx5 .idx5_list2 .item {
    display: block;
  }
  .idx5 .idx5_list2 .item .idx5_item,
  .idx5 .idx5_list2 .item .idx5_content {
    max-width: 100%;
    width: 100%;
  }
  .idx5 .idx5_list2 .item .idx5_content {
    padding-top: 20px;
  }
  .idx5 .idx5_list2 .item .idx5_item {
    max-width: 200px;
    margin-left: auto;
    margin-right: auto;
  }
  .idx5 .idx5_item {
    padding-right: 40px;
  }
  .idx5 .idx5_item .img {
    max-width: 80px;
  }
  .idx5 .idx5_item::before {
    right: 36px;
  }
  .idx5 .idx5_item .txt_en p {
    font-size: 12px;
  }
  .idx5 .idx5_item .ttl1 {
    font-size: min(4.5vw, 16px);
    letter-spacing: 0 !important;
  }
  .idx5 .idx5_item .ttl2 {
    font-size: min(3.7333333333vw, 14px);
    letter-spacing: 0;
  }
}
@media only screen and (max-width: 768px) {
  .idx6 {
    margin-top: min(20vw, 120px);
  }
  .idx6 .idx6_bg {
    padding: 0 0 40px;
  }
  .idx6 .idx6_bg::after {
    background: linear-gradient(to top, rgb(248, 242, 239) 0%, rgb(254, 253, 252) 100%);
  }
  .idx6 .idx6_bg::before {
    width: 100%;
    top: unset;
    aspect-ratio: 1880/318;
    bottom: calc(100% - 1px);
    height: auto;
  }
  .idx6 .inner::before {
    font-size: 0.9vw;
    top: -18em;
  }
  .idx6 .wrap_h3 {
    position: relative;
    top: -20px;
  }
  .idx6 .idx6_list {
    margin-top: 40px;
    display: flex;
  }
  .idx6 .idx6_list .item {
    width: calc(50% - 15px);
  }
  .idx6 .idx6_list .item::after {
    inset: 8px -8px -8px 8px;
  }
  .idx6 .idx6_list .item:last-child {
    margin: 30px auto 0;
  }
  .idx6 .idx6_list .item .txt {
    padding: 20px 30px 20px 20px;
  }
  .idx6 .idx6_list .item .txt::after, .idx6 .idx6_list .item .txt::before {
    bottom: 10px;
    right: 10px;
  }
  .idx6 .idx6_list .item .ttl1 {
    font-size: 20px;
    line-height: 1.5;
    letter-spacing: 0;
    margin-bottom: 10px;
  }
  .idx6 .idx6_list .item .ttl2 {
    letter-spacing: 0;
    font-size: 16px;
  }
}
@media only screen and (max-width: 480px) {
  .idx6 .wrap_h3 {
    position: relative;
    top: 0;
  }
  .idx6 .inner::before {
    font-size: 1.2vw;
    top: -15em;
  }
  .idx6 .idx6_list .item {
    width: 100%;
  }
  .idx6 .idx6_list .item:not(:last-child) {
    margin-bottom: 30px;
  }
  .idx6 .idx6_list .item::after {
    inset: 8px -8px -8px 8px;
  }
  .idx6 .idx6_list .item:last-child {
    margin: 0 auto 0;
  }
  .idx6 .idx6_list .item .txt {
    padding: 20px 30px 20px 20px;
  }
  .idx6 .idx6_list .item .txt::after, .idx6 .idx6_list .item .txt::before {
    bottom: 10px;
    right: 10px;
  }
  .idx6 .idx6_list .item .ttl1 {
    font-size: min(5vw, 20px);
  }
  .idx6 .idx6_list .item .ttl2 {
    letter-spacing: 0;
    font-size: 16px;
  }
}
@media only screen and (max-width: 768px) {
  .idx7 .inner_big {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .idx7 .inner_big::after {
    right: 0;
    font-size: 0.6vw;
  }
  .idx7 .idx7_bg {
    padding: 40px 0;
    border-radius: 200px;
  }
  .idx7 .idx7_bg::before, .idx7 .idx7_bg::after {
    font-size: 0.6vw;
  }
  .idx7 .txt p {
    font-size: 16px;
    letter-spacing: 0;
  }
  .idx7 .btn-group {
    margin-top: 0;
  }
  .idx7 .btn-group .btn {
    max-width: 260px;
  }
  .idx7 .txt {
    width: 100%;
    max-width: 100%;
    padding: 0 20px;
    margin: 25px auto;
  }
}
@media only screen and (max-width: 480px) {
  .idx7 .inner_big::after {
    right: 0;
    font-size: 0.8vw;
  }
  .idx7 .idx7_bg {
    padding: 40px 0;
    border-radius: 100px;
  }
  .idx7 .idx7_bg::before, .idx7 .idx7_bg::after {
    font-size: 0.8vw;
  }
  .idx7 .idx7_bg::after {
    bottom: -1em;
  }
  .idx7 .txt p {
    font-size: 16px;
    letter-spacing: 0;
  }
  .idx7 .btn-group .btn {
    max-width: 245px;
  }
}
@media only screen and (max-width: 768px) {
  .idx8 .btn-group .btn {
    max-width: 260px;
  }
  .idx8 {
    padding: 40px 0;
  }
  .idx8::after {
    top: 13%;
    max-width: calc(100% - 10px);
    background-position: top center, center calc(100% + 1px), top center;
  }
  .idx8 .inner {
    max-width: 100%;
  }
  .idx8 .idx8_list {
    margin-top: 100px;
    display: flex;
    padding-left: 40px;
    padding-right: 40px;
  }
  .idx8 .idx8_list .item {
    margin-bottom: 40px;
  }
  .idx8 .idx8_list .item .txt {
    padding: 20px;
    padding-right: 0;
  }
  .idx8 .idx8_list .item .img::after {
    font-size: 12vw;
    letter-spacing: 0;
  }
  .idx8 .idx8_list .item .ttl1 {
    font-size: 20px;
    letter-spacing: 0;
  }
  .idx8 .idx8_list .item .ttl1::after {
    width: 100px;
    margin-top: 10px;
  }
  .idx8 .idx8_list .item .ttl1 {
    margin-bottom: 10px;
  }
  .idx8 .idx8_list .item .ttl2 {
    letter-spacing: 0;
    font-size: 16px;
  }
  .idx8 .idx8_list .item1 .img::before,
  .idx8 .idx8_list .item3 .img::before {
    top: -40px;
    left: -40px;
  }
  .idx8 .idx8_list .item2 .img::before,
  .idx8 .idx8_list .item4 .img::before {
    bottom: -40px;
    right: -40px;
  }
  .idx8 .idx8_list .item3,
  .idx8 .idx8_list .item4 {
    margin-bottom: 0;
  }
}
@media only screen and (max-width: 480px) {
  .idx8::after {
    top: 6%;
  }
  .idx8 .idx8_list {
    margin-top: 50px;
    padding-left: 20px;
    padding-right: 20px;
  }
  .idx8 .idx8_list .item {
    width: 100%;
    max-width: 100%;
    margin-bottom: 0;
  }
  .idx8 .idx8_list .item:not(:last-child) {
    margin-bottom: 25px;
  }
  .idx8 .idx8_list .item .txt {
    padding: 20px 10px;
    padding-right: 0;
  }
  .idx8 .idx8_list .item .img::after {
    font-size: 14vw;
    letter-spacing: 0;
  }
  .idx8 .idx8_list .item .ttl1 {
    font-size: 18px;
    letter-spacing: 0;
  }
  .idx8 .idx8_list .item1 .img::before,
  .idx8 .idx8_list .item3 .img::before {
    top: -20px;
    left: -20px;
  }
  .idx8 .idx8_list .item2 .img::before,
  .idx8 .idx8_list .item4 .img::before {
    bottom: -20px;
    right: -20px;
  }
}
@media only screen and (max-width: 345px) {
  .idx8 .idx8_list .item .ttl1 {
    font-size: min(4.6vw, 18px);
  }
}
@media only screen and (max-width: 768px) {
  .idx9 {
    padding: 40px 0;
  }
  .idx9 .en {
    letter-spacing: 0;
    font-size: 9vw;
    margin-bottom: -0.46em;
  }
  .idx9 .idx9_bg {
    padding: 40px 0;
  }
  .idx9 .idx9_bg::before, .idx9 .idx9_bg::after {
    font-size: 7px;
  }
  .idx9 .txt {
    width: 100%;
    padding: 40px;
  }
  .idx9 .txt p {
    font-size: 16px;
    letter-spacing: 0;
  }
}
@media only screen and (max-width: 480px) {
  .idx9 {
    padding: 40px 0;
  }
  .idx9 .en {
    letter-spacing: 0;
    font-size: 9vw;
    margin-bottom: -0.46em;
  }
  .idx9 .idx9_bg {
    padding: 40px 0;
    background-position: top right, left calc(100% + 1px), top center;
  }
  .idx9 .idx9_bg::before, .idx9 .idx9_bg::after {
    font-size: 1.5vw;
  }
  .idx9 .txt {
    width: 100%;
    padding: 20px;
  }
  .idx9 .txt p {
    font-size: 16px;
    letter-spacing: 0;
  }
}