@media only screen and (max-width: 768px) {
  .home_page .key {
    --height: 160vw;
    --max-height: 987px;
    --min-height: 526px;
    font-size: min(1.334vw, 8px);
  }
}
@media only screen and (max-width: 768px) and (orientation: landscape) {
  .home_page .key {
    font-size: 5.25px;
    --height: 60vw;
    --min-height: 420px;
    --max-height: 720px;
  }
  .home_page .key::after {
    height: 21em;
    top: calc(100% - 10.5em);
  }
  .home_page .key_decor .item1 {
    width: 12em;
    top: 13.4em;
    left: 6.2em;
  }
  .home_page .key_decor .item2 {
    width: 20.1em;
    aspect-ratio: 404/352;
    top: 9.3em;
    right: -2.9em;
    background-image: url(../images/idx_key_decor02.png);
  }
  .home_page .key_decor .item3 {
    width: 21.7em;
    top: 39.6em;
    left: 58.2em;
  }
  .home_page .key_decor .item4 {
    width: 13.7em;
    top: 12.3em;
    left: 55em;
  }
  .home_page .key_decor .item5 {
    width: 10.5em;
    top: 30.3em;
    left: 65.6em;
  }
  .home_page .key_text {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: var(--wrapper) 40px 25px;
  }
  .home_page .key_text::after {
    position: absolute;
    width: 57.3em;
    bottom: -0.1em;
    right: -1.5em;
  }
  .home_page .key .catch {
    width: 52.7em;
    aspect-ratio: 527/323;
    margin-bottom: 4em;
  }
  .home_page .key .catch::after {
    width: 112%;
    max-width: 587px;
    aspect-ratio: 273/150;
  }
  .home_page .key .catch .title {
    padding-top: 0.4444em;
    font-size: 4.5em;
    line-height: 1.6666666667;
    margin-bottom: 0.2222em;
  }
  .home_page .key .catch .title .sm {
    font-size: 0.8em;
  }
  .home_page .key .catch .desc {
    font-size: 2.4em;
    letter-spacing: 0.1em;
  }
  .home_page .key .catch .desc .lg {
    font-size: 1.55em;
  }
  .home_page .key .link {
    font-size: max(7.75px, 1em);
    right: 10em;
    bottom: 25px;
    width: 25.2em;
    height: 6.1em;
  }
  .home_page .key .link a {
    font-size: 1.6em;
    padding: 0.3125em 1.25em 0.4375em;
  }
  .home_page .key .link a::after {
    width: round(1.25em, 1px);
    top: calc(50% - 0.625em);
    right: 0.9375em;
  }
  .home_page .key .time_sheet {
    font-size: 1em;
    width: 58em;
  }
  .home_page .key .time_sheet table th,
  .home_page .key .time_sheet table td {
    font-size: 10px;
  }
}
@media only screen and (max-width: 768px) and (orientation: portrait) {
  .home_page .key::after {
    height: 120px;
    bottom: 38px;
    background-image: url(../images/idx_key_decor06_sp.png);
    background-size: 424px 120px;
    z-index: 1;
  }
  .home_page .key_decor {
    max-width: 640px;
    margin: 0 auto;
  }
  .home_page .key_decor .item1 {
    width: 12em;
    top: 11.4em;
    left: 2em;
  }
  .home_page .key_decor .item2 {
    width: 17em;
    aspect-ratio: 414/362;
    top: 10.2em;
    right: -3em;
    background-image: url(../images/idx_key_decor02_sp.png);
  }
  .home_page .key_decor .item3 {
    width: 24.8em;
    top: 68.2em;
    left: 0.4em;
  }
  .home_page .key_decor .item4 {
    width: 15.4em;
    top: 43.2em;
    left: 5.8em;
  }
  .home_page .key_decor .item5 {
    width: 11.2em;
    top: 53em;
    left: 21.4em;
  }
  .home_page .key_text {
    max-width: 640px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    padding: 47px 20px 10px;
  }
  .home_page .key_text::after {
    order: 2;
    display: block;
    width: 56em;
    aspect-ratio: 1146/1200;
    margin-top: -3.8em;
    margin-left: auto;
    margin-right: -11em;
    border-top-left-radius: 4em;
    background-image: url(../images/idx_key_img_sp.jpg);
  }
  .home_page .key .catch {
    order: 1;
    width: calc(100% + 20px);
    aspect-ratio: 273/150;
    margin: 0 -10px;
    padding-bottom: 4px;
    z-index: -1;
  }
  .home_page .key .catch::after {
    width: 100%;
    height: 100%;
  }
  .home_page .key .catch .title {
    font-size: 5.8em;
    line-height: 1.5368965517;
    margin-bottom: 0.1724em;
  }
  .home_page .key .catch .title .sm {
    font-size: 0.7759em;
  }
  .home_page .key .catch .desc {
    font-size: 3.4em;
    letter-spacing: 0.05em;
  }
  .home_page .key .catch .desc .lg {
    font-size: 1.6em;
  }
  .home_page .key .time_sheet {
    order: 4;
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
    margin-top: -20em;
    margin-bottom: 2em;
  }
  .home_page .key .link {
    order: 3;
    z-index: 2;
    top: 70em;
    left: 3.8em;
    width: 164px;
    height: 42px;
  }
  .home_page .key .link a {
    font-size: 14px;
    padding: 5px 20px;
  }
  .home_page .key .link a::after {
    width: 20px;
    top: calc(50% - 10px);
    right: 10px;
  }
  .home_page .key .btn_tel {
    order: 5;
    width: 100%;
  }
  .home_page .key .btn_tel a {
    font-size: 3em;
  }
}
@media only screen and (max-width: 768px) {
  .home_page .wrap_title .en {
    font-size: 15px;
    padding-left: 18px;
    margin-bottom: 4px;
  }
  .home_page .wrap_title .en::before {
    width: 7px;
    height: 15px;
    top: 1px;
    left: 3px;
  }
  .home_page .wrap_title h2 {
    font-size: 32px;
  }
  .home_page .wrap_title h2 .num {
    font-size: 45px;
    color: var(--clr2);
  }
  .home_page .wrap_title.t_center .en {
    padding-right: 18px;
  }
  .home_page .wrap_title.t_center .en::after {
    width: 7px;
    height: 15px;
    top: 1px;
    right: 3px;
  }
  .home_page .wrap_title.t_underline::after {
    margin-top: 8px;
  }
  .idx01 {
    padding: 62px 0 31px;
  }
  .idx01::after {
    top: calc(100% - 125px);
    height: 198px;
    background-image: url(../images/idx01_decor06_sp.png);
    background-size: 424px 198px;
  }
  .idx01 .wrap::before {
    top: -32px;
    left: -42px;
    width: 231px;
  }
  .idx01 .wrap::after {
    bottom: -56px;
    right: -26px;
    width: 257px;
  }
  .idx01 .wrap_title {
    margin-bottom: 12px;
  }
  .idx01 .wrap_title .en {
    margin-left: 6px;
  }
  .idx01 .wrap_title h2 {
    text-indent: 5px;
  }
  .idx01 .idx_box {
    width: calc(100% + 20px);
    margin-right: -20px;
    border-radius: 50px 0 0 50px;
    padding: 59px 18px 58px 34px;
  }
  .idx01 .idx_box::before {
    width: 74px;
    top: -32px;
    right: -8px;
  }
  .idx01 .idx_box .box_ttl {
    margin-bottom: 30px;
    font-size: min(1.334vw, 5px);
  }
  .idx01 .idx_box .box_ttl::before {
    width: 16em;
    top: -2.4em;
    right: 6em;
    transform: scaleX(-1);
  }
  .idx01 .idx_box .box_ttl::after {
    width: 14em;
    top: -2em;
    left: 21.8em;
  }
  .idx01 .idx_box .box_ttl .btn-group {
    font-size: 1em;
  }
  .idx01 .idx_box .box_ttl .btn-group .btn {
    max-width: 32.5em;
  }
  .idx01 .news ul {
    max-height: 153px;
    padding-right: 17px;
  }
  .idx01 .news ul li a {
    padding: 20px 3px;
  }
  .idx01 .news ul li a .date {
    letter-spacing: 0;
    margin-right: 13px;
  }
  .idx02 {
    padding: 31px 0 0;
  }
  .idx02 .wrap_title {
    margin-bottom: 22px;
  }
  .idx02 .wrap_title::before {
    font-size: min(1.334vw, 5px);
    width: 24.2em;
    top: -14em;
    right: 2em;
    z-index: 3;
  }
  .idx02 .idx_box::after {
    font-size: min(1.334vw, 5px);
    width: 30.2em;
    bottom: -7.8em;
    left: -4.8em;
  }
  .idx02 .idx_box .box_cont {
    margin-bottom: 59px;
  }
  .idx02 .idx_box .box_img::after {
    font-size: min(1.334vw, 5px);
    width: 32em;
    bottom: calc(100% - 10.4em);
    right: -0.8em;
  }
  .idx02 .idx_box picture {
    margin-right: -20px;
    margin-left: auto;
    max-width: 712px;
    max-height: 600px;
  }
  .idx02 .idx_box img {
    border-top-left-radius: 50px;
  }
  .idx02 .idx_box .ttl {
    font-size: 20px;
    line-height: 1.6;
    margin-bottom: 17px;
  }
  .idx02 .idx_box .desc {
    margin-bottom: 12px;
  }
  .idx03 {
    padding: 49px 0 59px;
  }
  .idx03::before {
    top: -10px;
    height: calc(100% + 10px);
    background-image: url(../images/idx03_bacground.png);
  }
  .idx03::after {
    width: 768px;
    left: calc(50% - 384px);
    aspect-ratio: 768/755;
    background-image: url(../images/idx03_decor_sp.png);
    opacity: 0.7;
  }
  .idx03 .wrap_title {
    margin-bottom: 19px;
  }
  .idx03 .sub_title {
    margin-bottom: 22px;
  }
  .idx03 .idx_list {
    font-size: min(1.334vw, 5px);
    max-width: 550px;
    margin: 0 auto;
    gap: 2em;
    padding-bottom: 29px;
    margin-bottom: 15px;
    justify-content: space-between;
  }
  .idx03 .idx_list .item {
    width: calc((100% - 2em) / 2);
    max-width: 325px;
    padding: 4em 4.4em 2.6em;
  }
  .idx03 .idx_list .item:has(.desc) {
    padding-bottom: 47px;
  }
  .idx03 .idx_list .item::after {
    width: 10.6em;
    aspect-ratio: 106/132;
    top: -0.8em;
    right: -1.2em;
    background-image: url(../images/idx03_item_decor_sp.png);
  }
  .idx03 .idx_list .ttl {
    font-size: 3.6em;
    line-height: 1.3888888889;
    margin-bottom: 3px;
    text-align: center;
  }
  .idx03 .idx_list .ttl::before {
    width: 2.8889em;
    margin: 0 auto;
    margin-bottom: 0.2778em;
  }
  .idx03 .idx_list .ttl > span {
    min-height: 2.8333em;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .idx03 .idx_list .desc {
    letter-spacing: 0;
    margin-bottom: 0;
  }
  .idx03 .idx_list .btn:has(span) {
    font-size: 12px;
  }
  .idx03 .idx_list .btn:not(:has(span)) {
    display: block;
    position: relative;
    margin: 0 auto;
    margin-top: 10px;
    width: 20px;
    height: 20px;
  }
  .idx03 .idx_button {
    max-width: 550px;
    margin: 0 auto;
  }
  .idx03 .idx_button .ttl {
    font-size: 25px;
    margin-bottom: 18px;
  }
  .idx03 .idx_button .btn-group {
    flex-wrap: wrap;
    gap: 9px 10px;
  }
  .idx03 .idx_button .btn-group .btn {
    width: calc((100% - 10px) / 2);
    max-width: 100%;
  }
  .idx04 {
    padding: 60px 0;
  }
  .idx04::before {
    content: "";
    position: absolute;
    width: 100%;
    aspect-ratio: 750/2330;
    top: calc(100% - 120px);
    left: 0;
    background: url("../images/idx_background_sp.png") no-repeat center/100% auto;
    z-index: -1;
  }
  .idx04::after {
    height: 42px;
    background-image: url(../images/idx04_decor02_sp.png);
    background-size: 424px 42px;
  }
  .idx04 .idx_pickup {
    margin: 0 -20px;
  }
  .idx04 .idx_pickup::before {
    width: 234px;
    top: -107px;
    right: -20px;
  }
  .idx04 .box_pickup {
    font-size: min(1.334vw, 5px);
    border-radius: 50px;
  }
  .idx04 .box_pickup:not(:last-child) {
    margin-bottom: 40px;
  }
  .idx04 .box_pickup01 .content::before {
    top: -19em;
    left: calc(50% - 1.4em);
    width: 39em;
  }
  .idx04 .box_pickup01 .content::after {
    left: calc(50% - 30.6em);
    top: -4.2em;
    width: 11.8em;
  }
  .idx04 .box_pickup01 .wrap_title_pickup .desc {
    letter-spacing: 0;
  }
  .idx04 .box_pickup01 .idx_list::after {
    display: block;
    width: 24.6em;
    height: fit-content;
    margin: auto;
  }
  .idx04 .box_pickup02 .content, .idx04 .box_pickup03 .content {
    padding-top: clamp(74px, 19.5vw, 100px);
  }
  .idx04 .box_pickup02::before {
    top: 5.2em;
    left: calc(50% - 29.4em);
    width: 11.4em;
  }
  .idx04 .box_pickup02::after {
    right: calc(50% - 29.2em);
    top: -5em;
    width: 11em;
  }
  .idx04 .box_pickup02 .wrap_title_pickup {
    margin-bottom: 167px;
  }
  .idx04 .box_pickup02 .content .ttl {
    margin-bottom: 24px;
  }
  .idx04 .box_pickup02 .content::before {
    width: 26.8em;
    top: -29.8em;
    left: calc(50% - 32.8em);
  }
  .idx04 .box_pickup02 .content::after {
    width: 39em;
    top: -26.2em;
    right: calc(50% - 37.6em);
  }
  .idx04 .box_pickup03 .idx_list::after {
    display: block;
    margin: auto;
    width: 26.4em;
    height: fit-content;
  }
  .idx04 .box_pickup03 .wrap_title_pickup {
    margin-bottom: 106px;
  }
  .idx04 .box_pickup03 .content::before {
    top: -17em;
    right: calc(50% - 24.9em);
    width: 49.8em;
  }
  .idx04 .wrap_title_pickup {
    padding: 40px 20px 0;
    margin-bottom: 112px;
  }
  .idx04 .wrap_title_pickup .en {
    width: 99px;
    height: 99px;
    font-size: 12.75px;
    margin: 0 auto;
    margin-bottom: 7px;
  }
  .idx04 .wrap_title_pickup .en > span {
    padding-bottom: 0.5882em;
  }
  .idx04 .wrap_title_pickup .en > span::after {
    font-size: 2.9412em;
    margin-top: 0.04em;
    left: 0.1em;
  }
  .idx04 .wrap_title_pickup h2 {
    font-size: min(8.75vw, 32px);
    text-align: center;
    line-height: 1.8290625;
    margin-bottom: 9px;
  }
  .idx04 .wrap_title_pickup .desc {
    letter-spacing: 0.1em;
  }
  .idx04 .content {
    background-image: url(../images/idx_pickup_decor_sp.png);
    padding: 99px 18px 40px;
    border-radius: 0 0 50px 50px;
  }
  .idx04 .content .ttl {
    font-size: min(8.75vw, 32px);
    line-height: 1.40625;
    margin-bottom: 21px;
  }
  .idx04 .content .idx_list {
    font-size: min(1.334vw, 5px);
    flex-wrap: wrap;
    max-width: 339px;
    margin: 0 auto;
    gap: 9px 1.8em;
  }
  .idx04 .content .idx_list li {
    width: round(32.8em, 1px);
    height: round(32.8em, 1px);
  }
  .idx04 .content .idx_list li .tt {
    font-size: 3.6em;
    letter-spacing: 0;
  }
  .idx04 .content .idx_list_point {
    margin-bottom: 28px;
  }
  .idx04 .content .idx_list_point li {
    padding-top: 1.2em;
  }
  .idx04 .content .idx_list_point li .point {
    font-size: 3.2em;
    margin-bottom: 0.3125em;
  }
  .idx04 .content .idx_list_check {
    margin-bottom: 20px;
  }
  .idx04 .content .idx_list_check li::before {
    width: 5.2em;
    top: 2.8em;
  }
  .idx04 .content .idx_list_check li .tt {
    padding-top: 1.1667em;
    line-height: 1.3333333333;
  }
  .idx04 .content .txt {
    margin-bottom: 20px;
  }
  .idx04 .content .btn-group {
    gap: 10px;
  }
  .idx04 .content .btn-group .btn-group {
    width: calc(50% - 5px);
  }
  .idx05 {
    padding: 82px 0 199px;
    background-image: url(../images/idx05_decor01_sp.png);
  }
  .idx05::after {
    width: 768px;
    left: calc(50% - 384px);
    aspect-ratio: 1536/3304;
    bottom: -60px;
    background-image: url(../images/idx05_decor02_sp.png);
    opacity: 0.5;
  }
  .idx05 .wrap_title {
    padding: 0 20px;
    margin-bottom: 22px;
  }
  .idx05 .wrap_title h2 {
    padding-left: 1.5em;
    line-height: 1.40625;
    letter-spacing: 0.05em;
  }
  .idx05 .wrap_title h2::after {
    top: 0.1563em;
    width: 2.2188em;
  }
  .idx05 .idx_box {
    margin: 0 -20px;
  }
  .idx05 .idx_box:not(:last-child) {
    margin-bottom: 74px;
  }
  .idx05 .idx_box .box_img img {
    border-radius: 50px 50px 0 0;
  }
  .idx05 .idx_box .box_cont {
    font-size: min(1.334vw, 5px);
    margin-top: -13px;
    gap: 2em;
    border-radius: 10px 0 10px 10px;
    padding: 20px;
  }
  .idx05 .idx_box .box_cont .item {
    width: calc((100% - 2em) / 2);
    min-height: 12em;
    padding: 2em;
    padding-right: 5em;
  }
  .idx05 .idx_box .box_cont .item::before {
    width: calc(100% - 1.4em);
  }
  .idx05 .idx_box .box_cont .item::after {
    width: round(4em, 1px);
    top: calc(50% - 2em);
    right: 0;
  }
  .idx05 .idx_box .box_cont .item .tt {
    font-size: 3em;
    letter-spacing: 0.05em;
    line-height: 1.3333333333;
  }
  .idx05 .idx_box .box_cont .item .tt::before {
    width: 2.2667em;
    margin-right: 0.3333em;
  }
  .idx05 .idx_box .box_cont .item .tt .sm {
    font-size: 0.8em;
    letter-spacing: 0.05em;
  }
  .idx05 .idx_box01 .wrap_title h2::before {
    width: 4.2813em;
    bottom: calc(100% - 1.25em);
    right: 0;
  }
  .idx05 .idx_box02 .wrap_title h2::before {
    width: 4.0625em;
    bottom: calc(100% - 0.125em);
    right: 0;
  }
  .idx06 {
    margin-top: calc(min(37.334vw, 140px) * -1);
    padding: min(49.867vw, 187px) 0 60px;
    background-image: url(../images/idx06_decor01_sp.png);
  }
  .idx06::after {
    width: 768px;
    left: calc(50% - 384px);
    aspect-ratio: 768/1486;
    background-image: url(../images/idx06_decor02_sp.png);
  }
  .idx06 .wrap::before, .idx06 .wrap::after {
    font-size: min(1.334vw, 5px);
  }
  .idx06 .wrap::before {
    bottom: calc(100% + 3.8em);
    left: 0;
    width: 30em;
  }
  .idx06 .wrap::after {
    bottom: calc(100% + 11.6em);
    right: 5.4em;
    width: 30.4em;
  }
  .idx06 .wrap_title {
    margin-bottom: 29px;
  }
  .idx06 .wrap_title .en {
    margin-bottom: 8px;
  }
  .idx06 .wrap_title h2 {
    line-height: 1.2;
  }
  .idx06 .wrap_title::after {
    margin-top: 11px !important;
  }
  .idx06 .idx_slider .item {
    width: 100%;
    max-width: 500px;
    padding: 30px 26px 23px;
    margin: 0 auto;
  }
  .idx06 .idx_slider .item:not(:last-child) {
    margin-bottom: 20px;
  }
  .idx06 .idx_slider .item .img {
    margin-bottom: 24px;
  }
  .idx06 .idx_slider .item .img .num {
    font-size: 9px;
    bottom: -13px;
    right: -8px;
  }
  .idx06 .idx_slider .item .ttl {
    font-size: 20px;
    font-size: 20px;
    padding-bottom: 20px;
    margin-bottom: 10px;
  }
  .idx07 {
    padding: 60px 0;
  }
  .idx07 .content {
    margin-right: -20px;
    padding: 60px 20px 60px 42px;
    border-radius: 30px 0 0 30px;
  }
  .idx07 .content::before {
    top: -47px;
    right: 22px;
    width: 94px;
  }
  .idx07 .content::after {
    top: -105px;
    left: 4px;
    width: 127px;
  }
  .idx07 .idx_box::after {
    width: 218px;
    top: calc(100% + 3px);
    right: -32px;
  }
  .idx07 .box_name {
    margin-bottom: 32px;
  }
  .idx07 .wrap_title {
    gap: 14px;
    padding-bottom: 10px;
    margin-bottom: 23px;
  }
  .idx07 .wrap_title h2 {
    text-indent: -3px;
  }
  .idx07 .ttl {
    font-size: 20px;
    line-height: 1.6;
    margin-bottom: 17px;
  }
  .idx07 .desc {
    margin-bottom: 32px;
  }
  .idx07 .btn-group {
    gap: 10px;
  }
  .idx07 .btn-group .btn {
    max-width: 145px;
    min-width: unset;
    width: calc(50% - 5px);
  }
  .idx07 .btn-group .btn.social-x {
    min-width: 40px;
    width: 40px;
  }
  .idx_gallery .wrap::before {
    width: 100px;
    bottom: -50px;
    left: 14px;
  }
  .idx_gallery .list picture {
    max-width: clamp(200px, 40vw, 300px);
    margin: 0 12px;
  }
  .idx_gallery .list picture img {
    border-radius: 15px;
  }
  .idx08::after {
    height: 121px;
    top: calc(100% - 60px);
  }
  .idx08 .wrap::before {
    width: 100px;
    top: -31px;
    left: -17px;
  }
  .idx08 .wrap_title {
    gap: 38px;
    padding-bottom: 10px;
    margin-bottom: 22px;
  }
  .idx08 .wrap_title .en {
    margin-bottom: 3px;
  }
  .idx08 .idx_box {
    flex-direction: column-reverse;
    padding-right: 39px;
    padding: 60px 39px 59px 0;
  }
  .idx08 .idx_box::before {
    height: calc(100% + 100px);
    right: 0;
    border-radius: 10px;
  }
  .idx08 .idx_box::after {
    width: 174px;
    bottom: -40px;
    right: -16px;
  }
  .idx08 .box_ttl .ttl {
    font-size: 20px;
    line-height: 1.6;
    margin-bottom: 17px;
  }
  .idx08 .box_ttl .desc {
    margin-bottom: 32px;
  }
  .idx08 .box_ttl .btn-group .btn {
    max-width: 142px;
  }
  .idx08 .box_img {
    margin-bottom: 23px;
  }
  .idx08 .box_img picture img {
    border-radius: 7.5px;
  }
}
@media only screen and (max-width: 360px) {
  .home_page .wrap_title h2 {
    font-size: 28px;
  }
  .idx01 .idx_box {
    padding-left: 20px;
  }
  .idx03 .idx_list .item {
    padding-left: 15px;
    padding-right: 15px;
  }
  .idx04 .content .idx_list {
    gap: 9px 4px;
  }
  .idx06 .idx_slider .item {
    padding-left: 20px;
    padding-right: 20px;
  }
  .idx07 .content {
    padding-left: 20px;
  }
  .idx08 .idx_box {
    padding-right: 20px;
  }
}

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