@media only screen and (max-width: 768px) {
  @keyframes scroll {
    0% {
      transform: translateY(10px);
    }
    100% {
      transform: translateY(50px);
    }
  }
  .scroll {
    width: 30px;
    bottom: 90px;
  }
  .scroll a::before {
    height: 5em;
  }
  .scroll a::after {
    height: 1.5em;
  }
  .home_page .key {
    --height: calc(100vh - 60px);
    --max-height: 156vw;
    --min-height: 320px;
    font-size: 8px;
  }
  .home_page .key::before {
    background-image: url(../images/key_mv_sp.jpg);
  }
  .home_page .key .inner {
    padding: 0 20px;
    padding-right: 0;
  }
  .home_page .key .catch {
    font-size: min(8px, 1.7vw);
    text-align: center;
  }
  .home_page .key h2,
  .home_page .key p {
    letter-spacing: 0.1em;
  }
  .home_page .key h2 {
    font-size: 4em;
  }
  .home_page .key p {
    font-size: 2.55em;
  }
  .home_page .key .key_text .item {
    padding: 10px;
  }
}
@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 {
    font-size: 1.4vmin;
  }
  .home_page .key .catch {
    font-size: 6px;
    text-align: left;
  }
  .home_page .key .inner {
    padding-left: 40px;
  }
}
@media only screen and (max-width: 768px) {
  .home_page h3 {
    margin-bottom: 30px;
    text-align: center;
    font-size: 8px;
  }
  .home_page h3 .jp {
    font-size: 3.2em;
    line-height: 1.2;
    padding-bottom: 5px;
  }
  .home_page h3 .en {
    font-size: 14px;
  }
  .home_page h3::after {
    margin-left: auto;
    margin-right: auto;
    margin-top: 15px;
  }
  .home_page h3::before {
    left: 50%;
    transform: translateX(-50%);
    font-size: min(10em, 22vw);
  }
}
@media only screen and (max-width: 768px) {
  .index0 {
    padding: 60px 0px 60px;
    background-color: #000;
  }
  .idx_news {
    padding: 0 0px 55px;
    margin-top: -30px;
  }
  .idx_news .flex > div {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .idx_news .left {
    padding-bottom: 0;
    padding-top: 30px;
    border-radius: 30px;
  }
  .idx_news .left::before {
    border-radius: 30px 30px 0 0;
    width: calc(100% + 40px);
    right: auto;
    left: -20px;
  }
  .idx_news li {
    max-width: 100%;
  }
  .idx_news li a {
    padding: 20px 0;
    padding-right: 1em;
    font-size: 16px;
  }
  .idx_news li a::before {
    right: 10px;
  }
  .idx_news li a .date {
    width: 7em;
  }
  .idx_news li a .title {
    width: calc(100% - 7em);
    padding-left: 1.5em;
  }
  .idx_news .right {
    padding-top: 20px;
  }
  .idx_news .btn-group {
    margin-right: auto;
    margin-top: 25px;
  }
  .idx_news .button-group {
    display: flex;
  }
  .idx_news .button-group li {
    width: 50%;
    border-radius: 20px 20px 0 0;
    margin-bottom: 0;
    padding-left: 0;
    justify-content: center;
    font-size: 18px;
    height: 70px;
  }
  .idx_news .button-group li::before {
    top: auto;
    right: auto;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%) rotate(90deg);
  }
  .idx01 {
    padding: 60px 0;
    --width-ul: 5em;
  }
  .idx01::before {
    width: 30em;
    height: 30em;
  }
  .idx01 h3 {
    padding-top: 30px;
  }
  .idx01_img {
    position: relative;
    top: 0;
    right: auto;
    font-size: min(5.5px, 0.9vw);
    margin-left: auto;
    margin-right: auto;
  }
  .idx01_content {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .idx01 ul.list01 {
    margin-top: 20px;
    font-size: 16px;
  }
  .idx01 ul.list01 li {
    margin-bottom: 1em;
  }
  .idx01 ul.idx01_icon {
    font-size: 16px;
    margin-top: 15px;
  }
  .idx01 .btn-group {
    margin-top: 20px;
    margin-right: auto;
  }
  .idx01_map {
    margin-top: 20px;
    height: 350px;
  }
  .idx02 {
    background-image: url(../images/idx02_bg_sp.jpg);
  }
  .idx02 .left,
  .idx02 .right {
    width: 100%;
  }
  .idx02 .right {
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
  }
  .idx02 h3 {
    padding-top: 30px;
  }
  .idx02 h3 .text_lg {
    font-size: min(9em, 15vw);
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    line-height: 0.8;
  }
  .idx02-icon {
    width: 5em;
    height: 5em;
  }
  .idx02-icon::before {
    inset: -0.8em;
  }
  .idx02-item {
    padding: 1.5em;
    font-size: min(16px, 3vw);
  }
  .idx02-item::after {
    right: 1em;
  }
  .idx02-title {
    margin-left: 2em;
  }
  .idx02-title h4 {
    font-size: 0.65em;
  }
  .idx03 .txt {
    font-size: 16px;
  }
  .idx03 h4 {
    margin-bottom: 15px;
    font-size: 8px;
  }
  .idx03 h4::after {
    margin-top: 15px;
  }
  .idx03 h4 .en {
    font-size: 14px;
  }
  .idx03-content {
    padding: 20px 10px;
  }
  .idx03 .box_name {
    font-size: min(8px, 1.9vw);
    top: min(26em, 34vw);
    left: 2em;
  }
  .idx03 .box_name .name .jp {
    font-size: 2.5em;
  }
  .idx04 {
    padding: 60px 0;
  }
  .idx04-content {
    display: block;
    padding: 30px 20px;
  }
  .idx04 h4 {
    text-align: center;
    font-size: 8px;
    text-align: center;
    margin-top: 0;
  }
  .idx04 h4 .en {
    font-size: 12px;
  }
  .idx04 h4 .jp {
    padding-bottom: 5px;
    font-size: 3.2em;
  }
  .idx04_img {
    margin-left: auto;
    margin-right: auto;
  }
  .idx04 .txt {
    margin-top: 20px;
  }
  .idx04 .btn-group {
    display: table;
    margin-left: auto;
    margin-right: auto;
  }
  .idx04 .btn-group .btn {
    display: table;
    margin-left: auto;
    margin-right: auto;
  }
  .idx05 {
    padding: 60px 0 40px;
    border-radius: 40px;
  }
  .idx05 h3 {
    padding-top: min(5em, 6vw);
  }
  .idx05 h3::before {
    font-size: min(10em, 12vw);
  }
  .idx05 .inner_big {
    padding-left: 10px;
    padding-right: 10px;
  }
  .idx05-img {
    top: 26em;
    left: 50%;
    transform: translateX(-50%);
    margin-left: auto;
    margin-right: auto;
    font-size: min(6px, 1.25vw);
  }
  .idx05-img img {
    display: table;
    margin-left: auto;
    margin-right: auto;
  }
  .idx05-button::after {
    bottom: -10px;
  }
  .idx05-tab {
    margin-bottom: 30px;
  }
  .idx05-tab p {
    font-size: 18px;
  }
  .idx05-gr {
    margin-top: 20px;
    flex-direction: column;
  }
  .idx05-grBtn.st1 {
    font-size: min(8px, 1.65vw);
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    max-width: 100%;
    max-height: 90em;
    gap: 10px;
  }
  .idx05-grBtn.st1 .idx05-btn {
    width: calc(50% - 5px);
    margin-bottom: 0;
  }
  .idx05-grBtn.st1 .idx05-btn a {
    padding-left: 2em;
  }
}
@media only screen and (max-width: 768px) and (min-width: 375px) {
  .idx05-grBtn.st1 .idx05-btn:nth-child(2), .idx05-grBtn.st1 .idx05-btn:nth-child(7) {
    margin-bottom: 36em;
  }
}
@media only screen and (max-width: 768px) {
  .idx05-grBtn.st2 {
    gap: 10px;
  }
  .idx05-grBtn.st2 .idx05-btn {
    width: calc(50% - 5px);
  }
  .idx05-grBtn.st2 .idx05-btn a {
    padding: 0 0.8em;
  }
  .idx05-grBtn.st2 .idx05-btn a .jp {
    font-size: 1.6em;
    line-height: 1.2;
    padding-bottom: 5px;
  }
  .idx05-grBtn.st2 .idx05-btn a .en {
    line-height: 1.2;
  }
  .idx06 {
    padding: 60px 0;
  }
  .idx06 h3 {
    margin-bottom: min(130px, 25vw);
  }
  .idx06 .inner_big {
    padding-right: 20px;
  }
  .idx06-content {
    margin-right: auto;
  }
  .idx06-img {
    position: relative;
    top: 0;
    left: 0;
    font-size: min(5px, 0.85vw);
    margin-left: 0;
    margin-right: auto;
  }
  .idx06-img .img.img03 {
    top: -20em;
    right: -35em;
  }
  .idx06-content {
    width: 100%;
  }
  .idx06 .txt {
    margin-top: 30px;
  }
  .idx06 .btn-group {
    display: table;
    margin-left: auto;
    margin-right: auto;
    margin-top: 20px;
  }
  .idx07 {
    padding: 60px 0 40px;
    background-image: url(../images/idx07_bg_sp.jpg);
    background-attachment: scroll;
  }
  .idx07 h3 {
    padding-top: min(40px, 10vw);
  }
  .idx07 h3::before {
    font-size: min(10em, 15vw);
    writing-mode: unset;
    line-height: 0.8;
  }
  .idx07 .layout {
    display: block;
  }
  .idx07 .layout_left {
    width: 100%;
  }
  .idx07 .left_scroll_title {
    position: relative;
    top: auto;
  }
  .idx07 .layout_right {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .idx07_list .right {
    padding-left: 10px;
  }
  .idx07_list li {
    font-size: 8px;
    padding-bottom: 20px;
    margin-bottom: 20px;
  }
  .idx07 .ttl {
    margin-bottom: 10px;
    margin-bottom: 0;
  }
  .idx07 .txt {
    font-size: 16px;
    display: none;
  }
  .idx07 .btn-group {
    display: table;
    margin-left: auto;
    margin-right: auto;
  }
}
@media only screen and (max-width: 600px) {
  .idx05-grBtn.st1 .idx05-btn a {
    line-height: 1.4;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
  }
  .idx05-grBtn.st1 .idx05-btn a span {
    display: block;
  }
  .idx05-tab p span {
    display: block;
  }
}
@media only screen and (max-width: 480px) {
  .idx01 ul.list01 {
    font-size: min(16px, 4.4vw);
  }
  .idx01 ul.list01 .right span {
    display: block;
    padding-left: 0;
  }
  .idx05-grBtn.st2 .idx05-btn a .jp {
    letter-spacing: 0;
    font-size: 1.5em;
  }
}
@media only screen and (max-width: 375px) {
  .idx05-grBtn.st1 .idx05-btn a::before {
    width: 30px;
    height: 30px;
  }
  .idx05-grBtn.st1 .idx05-btn a::after {
    mask-size: 14px auto;
  }
}
@media only screen and (max-width: 374px) {
  .idx_news li a {
    font-size: 14px;
  }
  .idx05-gr {
    justify-content: center;
  }
  .idx05-img {
    font-size: 6px;
    top: 48em;
  }
  .idx05-grBtn.st1 {
    display: block;
    width: 100%;
    font-size: 7px;
    max-height: unset;
  }
  .idx05-grBtn.st1 .idx05-btn {
    width: 100%;
    margin-bottom: 2em;
    margin-left: auto;
    margin-right: auto;
  }
  .idx05-grBtn.st1 .idx05-btn:nth-child(4) {
    margin-bottom: 300px;
  }
  .idx05-grBtn.st1 .idx05-btn a {
    flex-direction: unset;
    justify-content: unset;
    align-items: center;
    padding-left: 1em;
  }
  .idx05-grBtn.st1 .idx05-btn a span {
    display: block;
  }
  .idx05-grBtn.st1 .idx05-btn a::before {
    width: 35px;
    height: 35px;
  }
  .idx05-grBtn.st2 .idx05-btn {
    width: 100%;
  }
  .idx05-grBtn.st2 .idx05-btn a .jp {
    font-size: 1.8em;
  }
}

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