@media only screen and (max-width: 768px) {
  .home_page .key {
    --height: calc(100vh - 60px);
    --max-height: 168vw;
    --min-height: 320px;
    font-size: 1vmin;
  }
  .home_page .key .mv_slider::before {
    position: absolute;
  }
  .home_page .key .inner {
    max-width: 100%;
    width: 100%;
    padding: 0;
  }
  .home_page .key .key_text .item {
    padding: 10px;
  }
  .home_page .key .catch {
    margin: auto;
	  padding-top: 10em;
  }
  .home_page .key h2,
  .home_page .key .jp {
    letter-spacing: 0;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }
  .home_page .key h2 {
    margin-bottom: 5px;
    line-height: 1.6;
  }
}
@media only screen and (max-width: 480px) {
  .home_page .key {
    font-size: 1.2vmin;
  }
  .home_page .key .jp {
    font-size: min(4.8vw, 16px);
  }
}
@media only screen and (max-width: 768px) {
  .home_page .h_en.med::before,
  .home_page .h_en.med::after {
    width: 2.5em;
  }
  .home_page .h_en {
    font-size: min(5vw, 18px);
  }
  .home_page .h_en.med {
    font-size: 20px;
  }
  .home_page .h_en.big {
    font-size: min(8vw, 30px);
  }
  .home_page .wrap_h3 {
    margin-bottom: 30px;
  }
  .home_page h3 {
    font-size: min(7vw, var(--ttl_size));
    letter-spacing: 0;
    text-align: center;
  }
  .home_page h3 .dot,
  .home_page h3 .char {
    margin: 0 !important;
    letter-spacing: -0.1em;
  }
  .home_page h3.big {
    letter-spacing: 0;
    font-size: min(6.4vw, var(--ttl_size) - 2px);
  }
  .home_page h3.big .jp {
    font-size: min(7vw, var(--ttl_size));
    letter-spacing: 0;
  }
  .home_page h3.med {
    font-size: min(6.4vw, 22px);
    letter-spacing: 0;
  }
  .home_page h3 .med {
    font-size: min(8vw, var(--ttl_size) + 4px);
    letter-spacing: 0;
  }
  .home_page h3.small {
    font-size: min(6.4vw, var(--ttl_size) - 2px);
  }
  .home_page h3.border::after {
    margin-left: auto;
    margin-right: auto;
  }
}
@media only screen and (max-width: 345px) {
  .home_page h3 {
    font-size: min(7vw, var(--ttl_size));
    letter-spacing: 0;
    text-align: center;
  }
  .home_page h3 .dot,
  .home_page h3 .char {
    margin: 0 !important;
    letter-spacing: -0.1em;
  }
  .home_page h3.big {
    letter-spacing: 0;
    font-size: min(6.2vw, var(--ttl_size) - 2px);
  }
  .home_page h3.big .jp {
    font-size: min(7vw, var(--ttl_size));
    letter-spacing: 0;
  }
  .home_page h3.med {
    font-size: min(6.2vw, var(--ttl_size) - 2px);
    letter-spacing: 0;
  }
  .home_page h3 .med {
    font-size: min(7vw, var(--ttl_size));
    letter-spacing: 0;
  }
  .home_page h3.small {
    font-size: min(6.2vw, var(--ttl_size) - 2px);
  }
  .home_page h3.border::after {
    margin-left: auto;
    margin-right: auto;
  }
}
@media only screen and (max-width: 768px) {
  .home_page .inner,
  .home_page .inner_big,
  .home_page .inner_max {
    max-width: 610px;
  }
}
@media only screen and (max-width: 768px) {
  .idx10 {
    padding: 40px 0;
    background-size: 100%;
    background-position: center;
  }
  .idx10 .idx10_list {
    padding-top: 15em;
    max-width: 95%;
    margin: 0 auto;
    width: 100%;
    grid-template-columns: repeat(2, max-content);
    font-size: 8px;
  }
  .idx10 .idx10_list .item {
    margin-bottom: 15em;
  }
  .idx10 .idx10_list .item .ttl {
    font-size: 18px;
    letter-spacing: 0;
  }
  .idx10 .idx10_list .item .image::before, .idx10 .idx10_list .item .image::after {
    font-size: 0.7em;
  }
  .idx10 .idx10_list .item1 .image::before {
    top: -15em;
    left: 0;
  }
  .idx10 .idx10_list .item2 .image::after {
    top: -15em;
    right: 0;
  }
  .idx10 .idx10_list .item3 .image::after {
    bottom: 0;
    right: -16em;
  }
  .idx10 .idx10_list .item4 .image::before {
    top: -5em;
    left: -15em;
  }
  .idx10 .idx10_list .item4 .image::after {
    right: 0;
    bottom: -14em;
  }
  .idx10 .idx10_list .item5 .image::after {
    top: -8em;
    right: -15em;
  }
  .idx10 .idx10_list .item6 .image::after {
    bottom: -15em;
    right: 0;
  }
}
@media only screen and (max-width: 480px) {
  .idx10 .idx10_list {
    font-size: 1.28vw;
  }
  .idx10 .idx10_list .item .en {
    font-size: min(3.25vw, 12px);
  }
  .idx10 .idx10_list .item .ttl {
    font-size: min(4.3vw, 16px);
  }
  .idx10 .idx10_list .item .image::before, .idx10 .idx10_list .item .image::after {
    font-size: 0.7em;
  }
  .idx10 .idx10_list .item6 .image::after {
    bottom: -22em;
    right: 0;
  }
}
@media only screen and (max-width: 768px) {
  .idx1 {
    padding: 40px 0 80px;
    background-size: 100%;
  }
  .idx1 .left,
  .idx1 .right {
    margin: 0;
    width: 100%;
    max-width: 100%;
    padding: 0;
  }
  .idx1 h3 {
    justify-content: center;
    margin: 0 auto;
  }
  .idx1 .right {
    padding-top: 20px;
  }
  .idx1 ul li a {
    --w: 7em;
    letter-spacing: 0;
    padding: 1.25em 1em 1.25em 0;
  }
  .idx1 ul li a span {
    letter-spacing: 0;
  }
  .idx1 ul li a::after {
    right: 0;
  }
  .idx1 .idx1_btn {
    margin: 40px auto 0;
  }
  .idx1 .idx1_btn a {
    width: 60px;
    height: 60px;
  }
  .idx1 .idx1_btn a .jp {
    font-size: 18px;
  }
  .idx1 .idx1_list {
    margin-top: 40px;
    display: flex;
    justify-content: space-between;
  }
  .idx1 .idx1_list .item {
    width: 49%;
    max-width: 100%;
    padding-bottom: 0;
    height: auto;
  }
  .idx1 .idx1_list .item:not(:last-child) {
    margin-bottom: 35px;
  }
  .idx1 .idx1_list .item .ttl {
    font-size: 18px;
    letter-spacing: 0;
    margin-bottom: 0;
  }
  .idx1 .idx1_list .item .img {
    max-width: 80px;
    top: 10px;
  }
  .idx1 .idx1_list .item:last-child {
    margin-left: auto;
    margin-right: auto;
  }
}
@media only screen and (max-width: 480px) {
  .idx1 .idx1_list .item {
    width: 100%;
  }
}
@media only screen and (max-width: 768px) {
  .idx2 {
    padding: 40px 0 30px;
  }
  .idx2::after {
    right: 0;
    max-width: 1881px;
    width: calc(100% - 40px);
    background-size: 100%;
    background-repeat: repeat;
  }
  .idx2 .inner_big::before {
    top: -30em;
    right: 0;
    font-size: 0.7vw;
  }
  .idx2 .inner_big::after {
    bottom: -16em;
    left: -16em;
    font-size: 0.7vw;
  }
  .idx2 .idx2_p {
    font-size: 20px;
    letter-spacing: 0;
    margin: 0 auto 5px;
  }
  .idx2 .idx2_list {
    display: flex;
  }
  .idx2 .idx2_list .item {
    width: 49%;
    margin-bottom: 10px;
    padding-left: 0;
  }
  .idx2 .idx2_list .item .ttl {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    font-size: min(5vw, 18px);
    letter-spacing: 0;
    text-align: center;
  }
  .idx2 .idx2_list .item .ttl::before {
    max-width: 70px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: -10px;
  }
}
@media only screen and (max-width: 640px) {
  .idx2 .inner_big::after {
    bottom: -26em;
    left: -7em;
    font-size: 0.5vw;
  }
}
@media only screen and (max-width: 480px) {
  .idx2 .inner_big::after {
    bottom: -26em;
    left: 0em;
    font-size: 0.65vw;
  }
  .idx2 .inner_big::before {
    font-size: 0.55vw;
  }
  .idx2::after {
    width: calc(100% - 10px);
  }
  .idx2 .idx2_list .item .ttl {
    font-size: min(4.3vw, 16px);
  }
}
@media only screen and (max-width: 345px) {
  .idx2 .idx2_p {
    letter-spacing: 0;
  }
  .idx2 .idx2_p * {
    letter-spacing: 0 !important;
  }
}
@media only screen and (max-width: 768px) {
  .idx3 .inner_max {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .idx3 .inner_max::after {
    font-size: 0.75vw;
    right: calc(50% - 38.9em);
  }
  .idx3 .idx3_bg {
    margin-top: 40px;
    padding: 40px 0;
  }
  .idx3 .idx3_bg::after {
    bottom: -4em;
    right: 4em;
    font-size: 0.65vw;
  }
  .idx3 h4 {
    font-size: min(5.9vw, 22px);
    letter-spacing: 0;
  }
  .idx3 .idx3_list {
    margin-top: 40px;
    display: flex;
  }
  .idx3 .idx3_list .item {
    width: calc(50% - 10px);
    margin-bottom: 20px;
  }
  .idx3 .idx3_list .item .en {
    font-size: 18px;
    letter-spacing: 0;
    width: 140px;
  }
  .idx3 .idx3_list .item .jp {
    font-size: 16px;
    letter-spacing: 0;
  }
}
@media only screen and (max-width: 480px) {
  .idx3 .idx3_bg::after {
    font-size: 1vw;
  }
  .idx3 .idx3_list .item {
    width: calc(50% - 5px);
    margin-bottom: 10px;
  }
  .idx3 .idx3_list .item .en {
    font-size: 16px;
    letter-spacing: 0;
    width: 90px;
  }
  .idx3 .idx3_list .item .jp {
    font-size: 15px;
    letter-spacing: 0;
  }
}
@media only screen and (max-width: 345px) {
  .idx3 .idx3_list .item .jp {
    font-size: 3.9vw;
  }
}
@media only screen and (max-width: 768px) {
  .idx_en {
    text-align: center;
    padding: 0;
    letter-spacing: 0;
    margin-bottom: -0.9em;
  }
  .idx_en span {
    text-align: center;
    padding: 0;
  }
  .idx4 {
    padding: 60px 0 40px;
    background-position: top left;
  }
  .idx4 .inner_big {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .idx4 h3 {
    text-align: center;
  }
  .idx4 .idx_btn {
    order: 1;
    width: 100%;
    margin: 0 auto;
  }
  .idx4 .txt {
    padding: 0;
    margin: 0px auto 30px;
  }
  .idx4 .txt p {
    font-size: 16px;
    letter-spacing: 0;
  }
  .idx4 .txt p.large {
    text-align: center;
    font-size: 18px;
    letter-spacing: 0;
	line-height: 1.8
  }
  .idx4 .txt p.large .jp {
    font-size: 24px;
  }
  .idx4 .btn-group {
    margin: 40px 0 0 0;
    display: flex;
    justify-content: center;
  }
}
@media only screen and (max-width: 480px) {
  .idx_en {
    font-size: 11vw;
    margin-bottom: -1em;
  }
  .idx4 {
    background-image: url(../images/idx4_bg_sp.jpg);
  }
}
@media only screen and (max-width: 345px) {
  .idx4 .txt p.large {
    font-size: 4.9vw;
  }
  .idx4 .txt p.large .jp {
	  font-size: 1.33333333333em;
  }
  .idx4 .txt p.large .small {
	  font-size: 1em;
  }
}
@media only screen and (max-width: 768px) {
  .idx5 .idx_en {
    margin-bottom: -1.9em;
  }
  .idx5 .txt {
    padding: 50px 0 0 0;
  }
  .idx5 .txt p {
    font-size: 20px;
    letter-spacing: 0;
    text-align: center;
  }
  .idx5 .idx5_content {
    margin-top: 40px;
  }
  .idx5 .idx5_content::after {
    background-position: center calc(100% + 1px);
  }
  .idx5 .idx5_bg {
    padding: 40px 0;
  }
  .idx5 .idx5_list .item:not(:nth-child(4n+1)) {
    margin-left: 0;
  }
  .idx5 .idx5_list {
    font-size: 9px;
    display: flex;
  }
  .idx5 .idx5_list .item {
    position: relative;
    width: 50% !important;
  }
  .idx5 .idx5_list .item:nth-child(2n+2) {
    margin-left: 0em;
  }
  .idx5 .idx5_list .item:nth-child(2n+4) {
    margin-left: 0em;
  }
  .idx5 .idx5_list .item .ttl {
    font-size: 18px;
    letter-spacing: 0;
    padding: 0;
  }
  .idx5 .idx5_list .item:nth-child(even) {
    right: 1.3em;
  }
  .idx5 .idx5_list .item:nth-child(even)::before {
    mask-image: unset;
    mask-size: 100% 100% !important;
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%, 10% 49.7%);
  }
  .idx5 .idx5_list .item:nth-child(odd) {
    left: 1.3em;
  }
  .idx5 .idx5_list .item:nth-child(odd)::before {
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='308px' height='150px'%3E%3Cpath fill-rule='evenodd' fill='rgb(244, 250, 251)' d='M5.1000,-0.000 L277.1000,-0.000 L307.1000,75.205 L277.1000,149.1000 L5.1000,149.1000 C2.686,149.1000 -0.000,147.314 -0.000,143.1000 L-0.000,5.1000 C-0.000,2.686 2.686,-0.000 5.1000,-0.000 Z'/%3E%3C/svg%3E");
    mask-size: 100% 100% !important;
  }
  .idx5 .btn-group {
    margin-top: 35px;
  }
  .idx5 .btn-group .btn {
    max-width: 280px;
  }
}
@media only screen and (max-width: 480px) {
  .idx5 .idx_en {
    margin-bottom: -2em;
  }
  .idx5 .txt p {
    font-size: min(4.85vw, 18px);
    letter-spacing: 0;
  }
  .idx5 .idx5_btn {
    font-size: 8px;
  }
  .idx5 .idx5_content.hidden {
    max-height: 350px;
  }
  .idx5 .idx5_list {
    font-size: 1.377vw;
    display: flex;
  }
  .idx5 .idx5_list .item::after {
    left: 0.9em;
    font-size: 2.5em;
  }
  .idx5 .idx5_list .item .ttl {
    font-size: 2.5em;
    letter-spacing: 0;
    padding: 0;
    padding-left: 2em !important;
  }
}
@media only screen and (max-width: 375px) {
  .idx5 .idx5_list {
    font-size: 1.33vw;
    display: flex;
  }
}
@media only screen and (max-width: 345px) {
  .idx5 .idx5_list {
    font-size: 1.27vw;
    display: flex;
  }
}
@media only screen and (max-width: 768px) {
  .idx6 .wrap_h3 {
    padding: 40px 0 0 0;
    max-width: 100%;
    width: 100%;
    text-align: center;
  }
  .idx6 .txt {
    max-width: 100%;
    width: 100%;
    display: flex;
  }
  .idx6 .item .content {
    padding: 20px;
  }
  .idx6 .item .ttl1 {
    font-size: min(5.2vw, 20px);
    letter-spacing: 0;
    margin: 18px 0;
  }
  .idx6 .item .img {
    margin-top: 0 !important;
  }
  .idx6 .item .idx6_btn {
    margin-top: -10px;
  }
  .idx6 .item .idx6_btn a {
    width: 40px;
    height: 40px;
  }
}
@media only screen and (max-width: 480px) {
  .idx6 .item .ttl1 {
    font-size: min(5.2vw, 18px);
  }
}
@media only screen and (max-width: 768px) {
  .idx7 {
    padding: 40px 0;
  }
  .idx7 .wrap_h3 {
    margin: 0;
    padding: 0;
    text-align: center;
  }
  .idx7 .TabContainer .TabPager {
    max-width: 90%;
    width: 100%;
    margin: 40px auto 0;
  }
  .idx7 .TabContainer .TabPager > div p {
    font-size: 18px;
  }
  .idx7 .idx7_bg {
    padding: 40px 0;
  }
  .idx7 .idx7_bg::before {
    font-size: 0.7vw;
  }
  .idx7 .idx7_list {
    display: flex;
  }
  .idx7 .idx7_list .item {
    width: calc(50% - 10px);
  }
  .idx7 .idx7_list .item::after {
    right: calc(50% - 0.75em);
    top: unset;
    bottom: 5px;
    font-size: 0.7em;
  }
  .idx7 .idx7_list .item .ttl {
    letter-spacing: 0;
    font-size: 18px;
    flex-direction: column;
    justify-content: center;
    text-align: center;
  }
  .idx7 .idx7_list .item .ttl::before {
    width: 50px;
    height: 50px;
    margin-bottom: 5px;
  }
}
@media only screen and (max-width: 480px) {
  .idx7 .TabContainer .TabPager {
    max-width: 90%;
    width: 100%;
    margin: 40px auto 0;
  }
  .idx7 .TabContainer .TabPager > div p {
    font-size: min(4.8vw, 16px);
    letter-spacing: 0;
  }
  .idx7 .idx7_bg .inner_big {
    padding-left: 10px;
    padding-right: 10px;
  }
  .idx7 .idx7_list {
    gap: 5px;
  }
  .idx7 .idx7_list .item {
    width: calc(50% - 5px);
    padding-left: 0;
    padding-right: 0;
    gap: 5px;
  }
  .idx7 .idx7_list .item::after {
    font-size: 0.6em;
  }
  .idx7 .idx7_list .item .ttl {
    letter-spacing: 0;
    font-size: min(4.8vw, 16px);
    flex-direction: column;
    justify-content: center;
    text-align: center;
  }
  .idx7 .idx7_list .item .ttl::before {
    width: 50px;
    height: 50px;
    margin-bottom: 5px;
  }
}
@media only screen and (max-width: 345px) {
  .idx7 .idx7_list .item .ttl {
    font-size: 4vw;
  }
}
@media only screen and (max-width: 768px) {
  .idx8 {
    padding: 40px 0;
  }
  .idx8::after {
    font-size: 1vw;
  }
  .idx8 .inner {
    padding-left: 20px;
    display: block;
  }
  .idx8 .idx8_list {
    display: flex;
    gap: 10px;
    margin-top: 40px;
    justify-content: center;
  }
  .idx8 .idx8_list .item {
    width: calc(50% - 5px);
  }
  .idx8 .idx8_list .item.item2 {
    margin-top: 0;
  }
  .idx8 .idx8_list .item .ttl {
    font-size: 20px;
    letter-spacing: 0;
  }
  .idx8 .txt {
    width: 100%;
  }
  .idx8 .txt p {
    font-size: 16px;
    letter-spacing: 0;
  }
}
@media only screen and (max-width: 480px) {
  .idx8 {
    background-image: url(../images/idx8_bg_sp.jpg);
  }
  .idx8 .idx8_list .item .ttl {
    font-size: min(4.8vw, 16px);
    letter-spacing: 0;
  }
  .idx8 .idx8_list .item .ttl::after {
    width: 18px;
    height: 18px;
    margin: 10px auto 0;
  }
}
@media only screen and (max-width: 768px) {
  .idx9 {
    padding: 40px 0;
  }
  .idx9 h3 {
    font-size: min(5vw, var(--ttl_size) - 6px);
  }
  .idx9 h3 .jp {
    font-size: 20px;
    letter-spacing: 0;
  }
  .idx9 h3 .big {
    font-size: min(7vw, var(--ttl_size));
  }
  .idx9 .fblock {
    margin-top: 40px;
  }
  .idx9 .idx9_txt,
  .idx9 .idx9_img {
    max-width: 100%;
    width: 100%;
  }
  .idx9 .idx9_txt::before {
    display: none;
  }
  .idx9 .idx9_img {
    position: relative;
  }
  .idx9 .idx9_img::before {
    content: "";
    display: block;
    position: absolute;
    transition: all 0.3s;
    background: url(../images/idx9_icon.png) no-repeat center/contain;
    width: 15.5em;
    height: 15.5em;
    top: -14em;
    right: 0;
    font-size: 0.7vw;
    z-index: 1;
  }
  .idx9 .idx9_txt {
    padding: 20px 0 0 0;
  }
  .idx9 .idx9_txt p {
    letter-spacing: 0;
	font-size: 16px;
  }
}
@media only screen and (max-width: 768px) {
  .idx10 {
    padding: 40px 0;
  }
  .idx10 h3.small .big {
    font-size: min(7vw, var(--ttl_size));
  }
  .idx10 .idx_en {
    color: #f3f9fa;
    margin-top: -1.2em;
    padding-left: 0;
    margin-bottom: 0;
  }
  .idx10 .btn-group {
    margin-top: 40px;
  }
}
@media only screen and (max-width: 480px) {
  .idx10 .idx_en {
    margin-top: -2em;
  }
  .idx10 .btn-group .btn {
    max-width: 280px;
  }
  .idx10 .btn-group .btn a .jp {
    padding: 5px 0;
  }
}
@media only screen and (max-width: 768px) {
  .idx11 {
    padding: 40px 0;
  }
  .idx11 .idx11_txt p {
	  font-size: 16px;
  }
  .idx11 .inner_big {
    display: block;
  }
  .idx11 h3.med {
    font-size: 30px;
  }
  .idx11 .wrap_h3 {
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .idx11 .wrap_h3 .h_en {
    display: table;
    margin: 5px auto 0;
    font-size: 20px;
    letter-spacing: 0;
  }
  .idx11 .idx11_img {
    margin-top: 40px;
  }
  .idx11 .btn-group {
    justify-content: center;
    margin-top: 40px;
  }
  .idx11 .idx11_name {
    top: unset;
    bottom: 20px;
    right: 0;
    font-size: 9px;
  }
}
@media only screen and (max-width: 480px) {
  .idx11 {
    background-image: url(../images/idx11_bg_sp.jpg);
  }
}
@media only screen and (max-width: 768px) {
  .idx13 .item img {
    max-width: 50vw;
  }
  .idx12 {
    padding: 40px 0;
  }
  .idx12 .wrap_h3 {
    text-align: center;
  }
  .idx12 .left,
  .idx12 .right {
    max-width: 100%;
    width: 100%;
  }
  .idx12 .idx12_dl dl {
    --w: 130px;
  }
  .idx12 .idx12_dl dl dt,
  .idx12 .idx12_dl dl dd {
    letter-spacing: 0;
    font-size: 16px;
  }
  .idx12 .idx12_dl dl a {
    font-size: 20px;
  }
  .idx12 .idx12_box {
    padding: 22px 22px 22px 100px;
  }
  .idx12 .idx12_box .ttl1 {
    font-size: 20px;
    letter-spacing: 0;
  }
  .idx12 .idx12_box .ttl2 {
    font-size: min(4vw, 14px);
  }
  .idx12 .btn-group {
    justify-content: center;
  }
}
@media only screen and (max-width: 480px) {
  .idx12 {
    background-image: url(../images/idx12_bg_sp.jpg);
  }
  .idx12 .idx12_dl dl {
    --w: 117px;
  }
}
@media only screen and (max-width: 345px) {
  .idx12 .idx12_dl .dl3 dd br {
    display: none;
  }
}
@media only screen and (max-width: 768px) {
  .idx14 {
    padding: 40px 0;
  }
  .idx14 .h_en::after {
    width: 80px;
    margin: 10px auto 0;
  }
  .idx14 .idx_btn {
    max-width: fit-content;
    width: 100%;
  }
  .idx14 .idx_btn > div {
    width: 45em;
  }
}