@media only screen and (max-width: 768px) {
  .home_page #mainContent .idx11_inner,
  .home_page #mainContent .inner,
  .home_page #mainContent .inner_big,
  .home_page #mainContent .inner_max,
  .home_page #mainContent .inner_sm {
    width: 100%;
    max-width: 610px !important;
    padding: 0 20px;
  }
  .home_page .key {
    --height: calc(100vh - 60px);
    --max-height: 156vw;
    --min-height: 320px;
    font-size: min(8px, 1.3vmin);
  }
  .home_page .key h2 {
    font-size: min(6vw, 20px);
  }
  .home_page .key p {
    font-size: min(4.6vw, 16px);
  }
  .home_page .key .key_text {
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    text-align: center;
  }
  .home_page .key .key_text .catch {
    margin: 0 auto;
  }
  .home_page .key .key_text .item {
    padding: 10px 0;
    justify-content: center;
  }
  .home_page .key .key_scroll {
    left: 12px;
    bottom: 10px;
    width: auto;
  }
  .home_page .key .key_scroll > a {
    flex-direction: column;
    gap: 12px;
  }
  .home_page .key .key_scroll > a span {
    writing-mode: vertical-rl;
    font-size: 14px;
  }
  .home_page .key .key_scroll > a::after {
    width: 1px;
    height: 40px;
  }
  .home_page .key .key_banner {
    right: 60px;
    bottom: 10px;
  }
  .home_page .key::before {
    left: 40px;
    right: 40px;
  }
}
@media only screen and (max-width: 640px) {
  .home_page .key .key_scroll {
    left: 30px;
  }
}
@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: 768px) {
  .home_page .h_en {
    font-size: 16px;
    text-align: center;
  }
  .home_page .wrap_h3 {
    margin-bottom: 30px;
  }
  .home_page h3 {
    font-size: var(--ttl_size);
    text-align: center;
  }
  .home_page #mainContent {
    --border-position: 40px;
  }
}
@media only screen and (max-width: 640px) {
  .home_page .h_en {
    font-size: 16px;
  }
  .home_page .wrap_h3 {
    margin-bottom: 30px;
  }
  .home_page h3 {
    font-size: var(--ttl_size);
  }
  .home_page .key::before {
    left: 20px;
    right: 20px;
  }
  .home_page #mainContent {
    --border-position: 20px;
  }
}
@media only screen and (max-width: 480px) {
  .home_page .key .key_scroll {
    left: 20px;
    bottom: 10px;
  }
  .home_page .key .key_banner {
    right: 30px;
    bottom: 10px;
    font-size: 1.4em;
  }
  .home_page .h_en {
    font-size: 16px;
  }
  .home_page .wrap_h3 {
    margin-bottom: 30px;
  }
  .home_page h3 {
    font-size: var(--ttl_size);
  }
  .home_page .key::before {
    left: 10px;
    right: 10px;
  }
  .home_page #mainContent {
    --border-position: 10px;
  }
}
@media only screen and (max-width: 768px) {
  .home_page .inner,
  .home_page .inner_big,
  .home_page .inner_max {
    width: 100%;
    max-width: none;
  }
  .idx1 {
    padding: 40px 0;
  }
  .idx1 > .inner_big {
    width: 100%;
  }
  .idx1 .TabPager {
    width: 100%;
    font-size: 16px;
  }
  .idx1 .TabPager > div {
    min-height: 52px;
    padding: 8px 4px;
    border-radius: 12px 12px 0 0;
  }
  .idx1 .TabContent {
    display: block;
    padding: 32px 20px;
  }
  .idx1 .TabContent .content {
    min-height: 331px;
  }
  .idx1 .wrap_h3 {
    margin: 0 0 28px;
    font-size: 16px;
  }
  .idx1 .wrap_h3 .h_en {
    margin-bottom: 4px;
    font-size: clamp(28px, 8.20513vw, 36px);
  }
  .idx1 .idx2_tab li a {
    min-height: 109px;
    font-size: 14px;
  }
  .idx1 .idx2_tab .date {
    font-size: 18px;
  }
  .idx1 .idx2_tab .cat {
    width: 7.142857em;
    min-height: 2em;
  }
  .idx1 .idx2_tab .cat.cat2 {
    width: 6.714286em;
  }
  .idx1 .idx2_tab .title {
    flex-basis: 100%;
  }
}
@media only screen and (max-width: 768px) {
  .idx2 {
    --idx2-band-height: 2em;
    padding: 80px 0;
    font-size: 14px;
  }
  .idx2::before {
    top: var(--idx2-band-height);
    left: -8em;
    width: 40em;
    height: 40em;
  }
  .idx2 .btn-group {
    display: block;
	max-width: 280px;
	margin-left: auto;
	margin-right: auto;
  }
  .idx2 .btn-group .btn{
    max-width: 100%;
	width: 100%;
	margin: 0;
  }
  .idx2 .btn-group .btn:last-child{
	margin-top: 20px;
  }
  .idx2 > .inner_big {
    width: 100%;
  }
  .idx2 .idx2_layout {
    padding-top: 0;
  }
  .idx2 .idx2_content {
    width: 100%;
  }
  .idx2 .wrap_h3 {
    margin: 0;
    font-size: 16px;
  }
  .idx2 .wrap_h3 .h_en {
    margin-bottom: 0.15em;
    font-size: clamp(30px, 10.7vw, 40px);
  }
  .idx2 .idx2_info {
    gap: 0.65em;
    margin-top: 1.5em;
	justify-content: center;
  }
  .idx2 .idx2_info .idx2_logo {
    flex-basis: 4.3em;
    width: 4.3em;
    margin-top: 0;
  }
  .idx2 .shared_tbl {
    width: 100%;
    margin: 2em 0 0;
  }
  .idx2 .btn-group {
    margin-top: 2em;
  }
  .idx2 .idx2_visual {
        position: relative;
        top: auto;
        width: 100%;
        margin: 2.5em 0;
  }
  .idx2 .idx2_map {
	      position: static;
		      height: 299px;
    margin: 40px auto 0 0;
    width: 100%;
  }
  .idx2 .idx2_map iframe {
    height: 299px;
	position: static;
  }
  .idx2 .idx2_layout > p.en {
    position: static;
    writing-mode: unset;
    letter-spacing: 0;
    font-size: 12vw;
    text-align: center;
    line-height: 1;
    margin-bottom: 25px;
  }
  .idx2 .idx2_info .address {
    font-size: min(3.93vw, 14px);
  }
}
@media only screen and (max-width: 480px) {
  .idx2 .idx2_layout > p.en {
    margin-bottom: 15px;
  }
  .idx2 .idx2_visual {
  
  }
}
@media only screen and (max-width: 768px) {
  .idx3 {
    padding: 40px 0;
    background-position: center;
    font-size: 14px;
  }
  .idx3::after {
    height: 35%;
    clip-path: ellipse(150% 100% at 50% 100%);
  }
  .idx3 > .inner_big {
    width: 100%;
  }
  .idx3 .wrap_h3 {
    margin: 0 auto;
    font-size: 16px;
  }
  .idx3 .wrap_h3 .h_en {
    font-size: clamp(30px, 10.7vw, 40px);
  }
  .idx3 .idx3_list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6.5em 1em;
    margin-top: 4.5em;
  }
  .idx3 .idx3_list li {
    min-height: 23em;
    padding: 2.5em 0.75em 2em;
  }
  .idx3 .idx3_list li::before {
    left: calc(50% - 4px);
    width: 8px;
    height: 8px;
  }
  .idx3 .idx3_list .step .num {
    font-size: 3.5em;
  }
  .idx3 .idx3_list .icon {
    width: 4.5em;
    height: 4.5em;
    margin-top: 1.5em;
  }
  .idx3 .idx3_list .tt {
    margin-top: 1.25em;
    font-size: 1.285714em;
    line-height: 1.5;
  }
  .idx3 .idx3_list .txt {
    margin-top: 0.75em;
    font-size: 1em;
    line-height: 1.8;
  }
  .idx3 .btn-group {
    margin-top: 2.5em;
  }
  .idx3 .idx3_line {
    top: -1.875em;
    width: 105%;
    font-size: 1.6em;
    transform: unset;
  }
  .idx3 li:first-child .idx3_line {
    height: 1.25em;
  }
  .idx3 li:nth-child(2) .idx3_line {
    display: none;
  }
  .idx3 li:nth-child(3) .idx3_line {
    background-image: url(../images/idx3_arr1.svg);
  }
}
@media only screen and (max-width: 480px) {
  .idx3 .idx3_list {
    gap: 4.5em 1em;
  }
  .idx3 .idx3_line {
    width: 110%;
  }
}
@media only screen and (max-width: 374px) {
  .idx3 {
    font-size: 14px;
  }
}
@media only screen and (max-width: 768px) {
  .idx4 {
    min-height: 0;
    padding: 40px 0;
    font-size: 14px;
  }
  .idx4 > .inner_big {
    width: 100%;
  }
  .idx4 .idx4_visual {
    display: contents;
  }
  .idx4 .idx4_img {
    order: 1;
    position: relative;
    top: auto;
    width: 90%;
    margin-top: 4em;
    border-top-right-radius: 48vw;
  }
  .idx4 .idx4_img::before {
    top: -10.67%;
    right: -10%;
    width: 44.444444%;
  }
  .idx4 .idx4_content {
    display: flex;
    flex-direction: column;
    position: relative;
    width: 100%;
    margin-top: 0;
  }
  .idx4 .wrap_h3 {
    margin: 0;
    padding-bottom: 0.6em;
    font-size: 2em;
  }
  .idx4 .idx4_text {
    order: 3;
    margin-top: 1.5em;
    text-align: left;
  }
  .idx4 .idx4_text::before {
    top: -1.5em;
    right: 0;
    width: 12em;
    height: 12.444444em;
  }
  .idx4 .idx4_name {
    order: 2;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.3em 0.7em;
    margin-top: 1em;
    font-size: 1.428571em;
    text-align: center;
  }
  .idx4 .idx4_name .en {
    font-size: 0.65em;
  }
  .idx4 .btn-group {
    --btn-gap: 1em;
    order: 4;
    margin-top: 2em;
  }
}
@media only screen and (max-width: 374px) {
  .idx4 {
    font-size: 14px;
  }
}
@media only screen and (max-width: 768px) {
  .idx5 {
    padding: 40px 0;
    background: radial-gradient(ellipse at 80% 25%, #eae5fc, rgba(234, 229, 252, 0) 45%), radial-gradient(ellipse at 20% 70%, #e3f2ff, rgba(227, 242, 255, 0) 45%), #fff;
    font-size: 14px;
  }
  .idx5 > .inner_big {
    width: 100%;
  }
  .idx5 .idx5_layout {
    min-height: 0;
  }
  .idx5 .idx5_content {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "heading" "image" "text" "button" "banners";
    padding: 0;
  }
  .idx5 .wrap_h3 {
    margin: 0;
    font-size: 16px;
  }
  .idx5 .wrap_h3 .h_en {
    font-size: clamp(30px, 10.7vw, 40px);
  }
  .idx5 .idx5_img {
    width: 74%;
    max-width: 25em;
    margin: 2.5em auto 0;
  }
  .idx5 .idx5_text {
    width: 100%;
    margin-top: 3.5em;
    text-align: left;
  }
  .idx5 .btn-group {
    margin-top: 2em;
  }
  .idx5 .btn-group > .btn {
    margin: 0 auto;
  }
  .idx5 .idx5_banners {
    gap: 0.625em;
    width: 100%;
    margin: 2em 0 0;
  }
}
@media only screen and (max-width: 374px) {
  .idx5 {
    font-size: 14px;
  }
}
@media only screen and (max-width: 768px) {
  .idx6 {
    padding: 40px 0;
    font-size: 14px;
  }
  .idx6 > .inner_big {
    width: 100%;
  }
  .idx6 .wrap_h3 {
    margin-bottom: 1.5em;
    font-size: 16px;
  }
  .idx6 .wrap_h3 .h_en {
    font-size: clamp(30px, 10.7vw, 40px);
  }
  .idx6 .TabPager {
    width: 100%;
    font-size: 14px;
  }
  .idx6 .TabPager > div {
    min-height: 6em;
    padding: 0.65em 0.2em;
    border-radius: 0.7em 0.7em 0 0;
  }
  .idx6 .TabPager > div .en {
    font-size: 11px;
  }
  .idx6 .idx6_panel {
    min-height: 0;
    padding: 2em 15px !important;
  }
  .idx6 .idx6_intro {
    grid-template-columns: minmax(0, 1fr);
    gap: 2em;
  }
  .idx6 .idx6_title {
    order: -1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    font-size: 2em;
    text-align: center;
  }
  .idx6 .idx6_title .en {
    font-size: 16px;
  }
  .idx6 .idx6_text {
    display: contents;
  }
  .idx6 .idx6_text .txt {
    margin-top: 0;
  }
  .idx6 .idx6_text .btn-group {
    margin-top: 0;
  }
  .idx6 .idx6_text .btn-group > .btn {
    margin: 0 auto;
  }
  .idx6 .idx6_btn {
    gap: 0.75em 0.5em;
    margin-top: 1.75em;
    font-size: 18px;
  }
  .idx6 .idx6_btn li {
    width: calc((100% - 0.5em) / 2);
  }
  .idx6 .idx6_btn a {
    min-height: 5.5em;
    padding: 0.75em 0.4em;
    font-size: 16px;
  }
}
@media only screen and (max-width: 374px) {
  .idx6 {
    font-size: 14px;
  }
  .idx6 .TabPager {
    font-size: 12px;
  }
  .idx6 .idx6_btn a {
    font-size: 4vw;
  }
}
@media only screen and (max-width: 768px) {
  .idx7 {
    padding: 40px 0;
    font-size: 14px;
  }
  .idx7 .idx7_list {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    max-width: 300px;
  }
  .idx7 .idx7_banner {
    min-height: 130px;
  }
}
@media only screen and (max-width: 768px) {
  .idx8 {
    display: flex;
    flex-direction: column;
    padding: 40px 0;
    font-size: 14px;
  }
  .idx8 .idx8_slider {
    order: 2;
    width: calc(100% - 40px);
    max-width: 480px;
    margin: 0 auto;
  }
  .idx8 .idx8_slider .slick-list {
    overflow: hidden;
  }
  .idx8 .idx8_layout {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0 5px;
  }
  .idx8 .idx8_content {
    display: contents;
  }
  .idx8 .wrap_h3 {
    order: 0;
    margin-bottom: 24px;
    font-size: 16px;
  }
  .idx8 .wrap_h3 .h_en {
    font-size: 40px;
  }
  .idx8 .idx8_title {
    order: 1;
    text-align: center;
    font-size: min(6vw, 22px);
    letter-spacing: 0;
  }
  .idx8 .idx8_visual {
    order: 2;
    height: auto;
    aspect-ratio: 605/820;
    margin-bottom: 24px;
  }
  .idx8 .idx8_number {
    font-size: 7em;
  }
  .idx8 .idx8_text {
    order: 3;
    max-width: none;
    font-size: 14px;
  }
  .idx8 .btn-group {
    order: 4;
    display: flex;
    justify-content: center;
  }
  .idx8 .idx8_pager {
    order: 1;
    position: static;
    width: 100%;
    max-width: 100%;
    margin: 0 auto 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .idx8 .idx8_pager .idx8_dots {
    margin-top: -10px;
  }
}
@media only screen and (max-width: 768px) {
  .idx8 > .idx8_heading {
    display: block;
    text-align: center;
  }
  .idx8 .idx8_content .wrap_h3 {
    display: none;
  }
  .home_page :is(.idx1, .idx2, .idx3, .idx5, .idx6, .idx8) .wrap_h3 h3 {
    font-size: 18px;
  }
}
@media only screen and (max-width: 768px) {
  .idx10.idx_gallery {
    font-size: clamp(0.45px, 0.12vw, 0.7px);
    padding: 80em 0 100em;
  }
}
@media only screen and (max-width: 768px) {
  .idx11 {
    padding: 0 20px 60px;
  }
  .idx11 .idx11_inner {
    padding: 28px 20px 32px !important;
  }
  .idx11 .idx11_head {
    gap: 18px;
    margin-bottom: 28px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0;
  }
  .idx11 .idx11_en {
    font-size: 40px;
    margin: 10px 0 0 0;
  }
  .idx11 .idx11_head h3 {
    font-size: 16px;
  }
  .idx11 .idx11_banners {
    gap: 10px;
  }
  .idx11 .idx11_row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .idx11 .idx11_banner {
    width: 100%;
  }
}
@media only screen and (max-width: 768px) {
  .idx9 {
    padding: 40px 0 0;
  }
  .idx9 .inner {
    width: calc(100% - 40px);
  }
  .idx9 .idx9_head {
    gap: 12px;
    margin-bottom: 24px;
    flex-wrap: wrap;
  }
  .idx9 .idx9_title {
    gap: 10px;
    font-size: clamp(26px, 10.7vw, 40px);
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
  }
  .idx9 .idx9_title::before {
    width: 44px;
    height: 44px;
    background-size: 54px;
  }
  .idx9 .idx9_account {
    width: 128px;
    height: 38px;
    padding: 0 20px;
    font-size: 14px;
    margin: 20px auto 0;
  }
  .idx9 .idx9_account::after {
    right: 12px;
    width: 5px;
    height: 5px;
  }
  .idx9 .idx9_list {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
  }
}
@media only screen and (max-width: 480px) {
  .idx9 .idx9_list {
    grid-template-columns: repeat(5, 42%);
    overflow-x: auto;
    padding: 3px 3px 10px;
    scroll-snap-type: x mandatory;
  }
  .idx9 .idx9_list a {
    scroll-snap-align: start;
  }
  .idx9 .idx9_title {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
}
@media only screen and (max-width: 768px) {
  .home_page .wrap_h3 h3 {
    text-wrap: balance;
  }
  .idx11_toggle {
    width: 32px;
    height: 32px;
  }
}
@media only screen and (max-width: 1023px) {
  .home_page #mainContent :is(.inner, .inner_big, .inner_max, .inner_sm) {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0 20px;
  }
}
@media only screen and (max-width: 1023px) {
  .idx3 .idx3_list .icon {
    width: 52px;
    height: 52px;
  }
  .idx3 .idx3_list .tt {
    font-size: 16px;
  }
  .idx3 .idx3_list .txt {
    font-size: 12px;
  }
}
@media only screen and (max-width: 1024px) {
  .idx6 .idx6_btn {
    font-size: 18px;
    letter-spacing: 0;
  }
  .idx6 .idx6_btn a {
    padding-left: 4px;
    padding-right: 4px;
    letter-spacing: 0;
  }
  .idx6 .idx6_btn a span {
    letter-spacing: 0;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .idx6 .idx6_text {
    container-type: inline-size;
    min-width: 0;
  }
  .idx6 .idx6_text .idx6_title {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: baseline;
    gap: 6px;
    white-space: nowrap;
    font-size: clamp(16px, 7.5cqw, 24px);
  }
  .idx6 .idx6_title .en {
    font-size: clamp(13px, 5.8cqw, 18px);
  }
}