@media only screen and (max-width: 768px) {
  .home_page .key {
    --height: calc(100vh - 60px);
    --max-height: 156vw;
    --min-height: 320px;
    font-size: 8px;
  }
  .home_page .key .key_text .item {
    padding: 10px;
  }
  .home_page .key .key_scroll {
    font-size: 6px;
    bottom: 20px;
  }
  .home_page .key .key_scroll::after {
    height: 9em;
  }
  .home_page .key h2 {
    font-size: 4em;
  }
}
@media only screen and (max-width: 640px) {
  .home_page .key {
    font-size: 1.4vmin;
  }
}
@media only screen and (max-width: 768px) and (orientation: landscape) {
  .home_page .key {
    --height: 50vw;
    font-size: 1.4vmin;
  }
}
@media only screen and (max-width: 768px) and (orientation: portrait) {
  .home_page .key_bg .slider {
    flex-direction: column;
  }
  .home_page .key_bg .slider_left, .home_page .key_bg .slider_right {
    width: 100%;
    height: 50%;
  }
  .home_page .key_bg .slider_left {
    -webkit-mask-image: linear-gradient(to bottom, black 70%, transparent 100%);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-image: linear-gradient(to bottom, black 70%, transparent 100%);
    mask-repeat: no-repeat;
    mask-size: 100% 100%;
  }
  .home_page .key_bg .slider_left .slide {
    background-image: url("../images/idx_key_bg01_sp.jpg");
  }
  .home_page .key_bg .slider_right {
    -webkit-mask-image: linear-gradient(to top, black 70%, transparent 100%);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-image: linear-gradient(to top, black 70%, transparent 100%);
    mask-repeat: no-repeat;
    mask-size: 100% 100%;
  }
  .home_page .key_bg .slider_right .slide01 {
    background-image: url("../images/idx_key_bg02_01_sp.jpg");
  }
  .home_page .key_bg .slider_right .slide02 {
    background-image: url("../images/idx_key_bg02_02_sp.jpg");
  }
  .home_page .key_bg .slider_right .slick-list,
  .home_page .key_bg .slider_right .slick-track {
    height: 100%;
  }
  .home_page .key_bg .slider .slide {
    height: 100%;
  }
}
@media only screen and (max-width: 768px) {
  .home_page h3 {
    margin-bottom: 30px;
    font-size: calc(var(--ttl_size));
  }
}
@media only screen and (max-width: 768px) {
  .idx01 {
    margin-top: -20px;
    padding: 60px 0;
  }
  .idx01::before {
    width: calc(100% - 40px);
  }
  .idx01 h3.sm {
    text-align: center;
  }
  .idx01 h3.sm .jp {
    font-size: 24px;
  }
  .idx01 .content {
    padding-right: 40px;
  }
  .idx01 .content .box {
    max-width: 450px;
    margin: 0 auto;
    --pd-size: 0;
  }
  .idx01 .content .box:not(:last-child) {
    margin-bottom: 40px;
  }
  .idx01 .content .box ul {
    margin-bottom: 20px;
  }
  .idx01 .content .box li a {
    padding: 1em 0;
    --w: 8em;
  }
  .idx01 .content .box .btn-group .btn {
    margin-left: auto;
    margin-right: auto;
  }
  .idx02 {
    margin-top: -20px;
    padding: 80px 0 60px;
    clip-path: ellipse(300% 100% at 50% 0%);
  }
  .idx02 h3 .en-lg {
    font-size: 3em;
    top: -0.3em;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
  .idx02 .idx_box {
    flex-direction: column-reverse;
  }
  .idx02 .idx_box_right {
    margin-bottom: 30px;
  }
  .idx02 .idx_map {
    margin: 0 auto;
    margin-top: -6.75vw;
  }
  .idx02 picture {
    justify-content: center;
  }
  .idx02 picture::after {
    width: 100%;
    aspect-ratio: 1020/701;
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
  .idx02 picture img {
    max-width: 90%;
  }
  .idx02 .time_sheet {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 30px;
  }
  .idx02 .time_sheet .tbl {
    font-size: min(2vw, 10px);
  }
  .idx03 {
    padding: 80px 0 60px;
    margin-top: -40px;
  }
  .idx03::before {
    font-size: min(0.55vw, 4px);
  }
  .idx03 .idx_flow {
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px 6.25vw;
    font-size: min(1.375vw, 8.75px);
    margin-bottom: 30px;
  }
  .idx03 .idx_flow .item {
    width: calc(50% - 3.125vw);
  }
  .idx03 .idx_flow .item::before {
    content: "";
    position: absolute;
    width: 18.7429em;
    aspect-ratio: 164/44;
    height: auto;
    top: 9.1429em;
    right: 100%;
  }
  .idx03 .idx_flow .item02::before {
    background: url("../images/idx03_line01_sp.png") no-repeat center/cover;
  }
  .idx03 .idx_flow .item04::before {
    background: url("../images/idx03_line02_sp.png") no-repeat center/cover;
  }
  .idx04 {
    padding: 0 20px;
  }
  .idx04::before {
    font-size: min(0.55vw, 4px);
  }
  .idx04 .content {
    padding: 60px 20px;
    border-radius: 20px 20px 0 0;
  }
  .idx04 .box {
    --pd-size: 0px;
    flex-direction: column-reverse;
  }
  .idx04 .box:not(:last-child) {
    margin-bottom: 50px;
  }
  .idx04 .box:nth-child(odd) .box_img .img_sm {
    margin-left: 0;
  }
  .idx04 .box:nth-child(odd) .box_info {
    bottom: 15%;
    right: 10%;
  }
  .idx04 .box:nth-child(odd) .box_info p {
    margin-left: auto;
  }
  .idx04 .box:nth-child(even) .box_img .img_sm {
    margin-right: 0;
  }
  .idx04 .box:nth-child(even) .box_info {
    bottom: 15%;
    left: 5%;
  }
  .idx04 .box_img {
    max-width: 550px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 20px;
  }
  .idx04 .box_info {
    font-size: min(1.875vw, 8.75px);
  }
  .idx04 .box_info .en {
    -webkit-writing-mode: vertical-rl;
    -moz-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    padding: 10px 0.62em 10px 0.5em;
    margin-right: 5px;
    width: 2.1429em;
  }
  .idx04 .box_info .jp {
    letter-spacing: 0;
    width: 1.5833em;
    line-height: 1.25;
    padding: 10px 0.3em;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
  }
  .idx04 .box_info .jp .sm {
    padding-bottom: 0.5em;
    margin-bottom: 0.5em;
  }
  .idx04 .box_info .jp .sm::before {
    width: 100%;
  }
  .idx04 .box_info .jp .lg > span {
    margin-top: 0.5em;
  }
  .idx04 .box .ttl {
    font-size: 24px;
    text-align: center;
  }
  .idx04 .box .desc {
    margin-bottom: 30px;
  }
  .idx04 .btn-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
  }
  .idx05 {
    padding: 60px 0;
  }
  .idx05 .TabContainer .TabPager {
    flex-wrap: wrap;
  }
  .idx05 .TabContainer .TabPager > div {
    padding: 10px 5px;
    min-height: 90px;
  }
  .idx05 .TabContainer .TabPager > div .tt {
    font-size: 16px;
  }
  .idx05 .TabContainer .TabContent .content > div {
    padding: 40px 20px;
  }
  .idx05 .TabContainer .TabContent .content > div .box .ttl {
    text-align: center;
    font-size: calc(var(--ttl_size) - 2px);
  }
  .idx05 .TabContainer .TabContent .content > div .box_img {
    margin-bottom: 20px;
  }
  .idx05 .TabContainer .TabContent .content > div .box_img picture img {
    margin-left: auto;
    margin-right: auto;
  }
  .idx05 .TabContainer .TabContent .content > div .box .desc {
    margin-bottom: 20px;
  }
  .idx05 .TabContainer .TabContent .content > div .box .btn-group .btn {
    margin-left: auto;
    margin-right: auto;
  }
  .idx06 {
    padding: 60px 0;
  }
  .idx06 .sub_ttl {
    margin-bottom: 30px;
  }
  .idx06 .TabContainer .TabPager > div {
    border-radius: 6px;
    margin: 0 5px;
    padding: 20px;
  }
  .idx06 .TabContainer .TabPager > div::before {
    height: 20px;
    bottom: -10px;
  }
  .idx06 .TabContainer .TabContent {
    margin-top: -30px;
    border-radius: 15px;
  }
  .idx06 .TabContainer .TabContent .content > div {
    padding: 60px 20px 40px;
  }
  .idx06 .TabContainer .TabContent .content > div .box .btn-group {
    font-size: min(2vw, 8.75px);
    --size-mg: 10px;
    gap: var(--size-mg);
  }
  .idx07 {
    padding: 60px 0;
    background: url("../images/idx07_pattern.jpg") repeat top left/55px 55px;
  }
  .idx07 h3 .jp-sm {
    font-size: 20px;
  }
  .idx07 h3 .jp {
    font-size: 28px;
  }
  .idx07 .desc {
    margin-bottom: 30px;
  }
  .idx08 {
    padding: 60px 20px;
  }
  .idx08 h3 {
    margin-bottom: 50px;
  }
  .idx08 .idx_box {
    border-radius: 20px;
    padding: 40px 20px;
    margin-bottom: 30px;
  }
  .idx08 .idx_box .box {
    flex-direction: column-reverse;
  }
  .idx08 .idx_box .box_content::before {
    text-align: center;
    font-size: min(18.75vw, 80px);
  }
  .idx08 .idx_box .box_img {
    margin-bottom: 20px;
  }
  .idx08 .idx_box .box_img picture img {
    border-radius: 10px;
  }
  .idx08 .idx_box .box:not(:last-child) {
    margin-bottom: 30px;
  }
  .idx08 .idx_box .box .ttl {
    font-size: 22px;
    text-align: center;
    padding-bottom: 10px;
    margin-bottom: 20px;
  }
  .idx08 .idx_box .box .ttl::after {
    right: 0;
    margin: 0 auto;
  }
  .popup {
    width: calc(100% - 40px);
    aspect-ratio: 4/3;
  }
}
@media only screen and (max-width: 639px) {
  .idx05 .TabContainer .TabPager {
    flex-wrap: wrap;
  }
  .idx05 .TabContainer .TabPager > div {
    width: 50%;
  }
  .idx06 .TabContainer .TabPager > div {
    padding: 15px;
  }
  .idx06 .TabContainer .TabContent .content > div .box .btn02 {
    width: calc((100% - var(--size-mg)) / 2);
  }
  .idx06 .TabContainer .TabContent .content > div .box .btn02 a {
    padding-left: 1.2em;
  }
}
@media only screen and (max-width: 430px) {
  .idx01::before {
    width: calc(100% - 30px);
  }
  .idx01 .content {
    padding-right: 30px;
  }
  .idx02 .idx_map {
    height: 199px;
  }
}
@media only screen and (max-width: 360px) {
  .home_page .key h2 {
    padding-left: 3px;
  }
  .home_page .key .key_scroll {
    font-size: 5px;
  }
  .idx05 .TabContainer .TabPager {
    flex-wrap: wrap;
  }
  .idx05 .TabContainer .TabPager > div {
    min-height: 86px;
  }
  .idx05 .TabContainer .TabPager > div .tt {
    font-size: 16px;
  }
  .idx06 .TabContainer .TabContent .content > div .box .btn-group {
    font-size: 6px;
  }
  .idx06 .TabContainer .TabContent .content > div .box .btn-group .btn02 a::before, .idx06 .TabContainer .TabContent .content > div .box .btn-group .btn02 a::after {
    font-size: 8px;
  }
  .idx06 .TabContainer .TabContent .content > div .box .btn-group .btn02 a::before {
    top: 2px;
  }
  .idx07 h3 .jp-sm {
    font-size: 17px;
  }
  .idx08 .idx_box .box .ttl {
    font-size: 19px;
  }
  .btn-group .btn {
    font-size: 7.75px;
  }
}

/*# sourceMappingURL=index_sp.css.map */
