.home_page .key {
  position: relative;
  height: var(--height);
  min-height: var(--min-height);
  max-height: var(--max-height);
  background: url(../images/idx_key_bg.jpg) no-repeat top center/cover;
}
.home_page .key::before, .home_page .key::after {
  content: "";
  position: absolute;
  width: 21%;
  max-width: 266px;
  aspect-ratio: 266/559;
  bottom: -38.7%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.home_page .key::before {
  left: 0;
  background-image: url(../images/idx_key_decor01.png);
}
.home_page .key::after {
  right: 0;
  background-image: url(../images/idx_key_decor02.png);
}
.home_page .key_text {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  width: 100%;
  height: 100%;
}
.home_page .key_text .title {
  position: relative;
  max-width: 786px;
  aspect-ratio: 786/380;
  opacity: 0;
  clip-path: inset(0 100% 0 0);
  z-index: 2;
}
.home_page .key_visual {
  position: absolute;
  height: auto;
  aspect-ratio: 1;
  opacity: 0;
  left: 50%;
  transform: translate3d(-50%, 50px, 0) scale(0.92);
  transform-origin: 50% 65%;
}
.home_page .key_visual img {
  display: block;
  width: 100%;
  height: auto;
}
.home_page .key_earth-scene {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: 0;
  transform: translate3d(0, 65px, 0) scale(0.86);
}
.home_page .key_earth-rotate {
  position: absolute;
  inset: 0;
  transform-origin: 50% 50%;
  will-change: transform;
}
.home_page .key_squirrel {
  position: absolute;
  top: -24%;
  z-index: 4;
  width: 30%;
  max-width: 450px;
  opacity: 0;
  filter: drop-shadow(0 9px 7px rgba(8, 127, 188, 0.14));
  transform: translate3d(-22px, 16px, 0);
  pointer-events: none;
}
.home_page .key_squirrel-bob {
  transform-origin: 50% 64%;
  will-change: transform;
}
.home_page .key_landmarks {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
.home_page .key_landmark {
  position: absolute;
  opacity: 0;
  transform: translate3d(var(--landmark-rise), 42%, 0) scale(0.88);
  transform-origin: 50% 100%;
  will-change: transform, opacity;
}
.home_page .key_landmark-01 {
  top: -1%;
  left: -5%;
  z-index: 1;
  width: 27%;
  max-width: 410px;
  rotate: 10deg;
  --landmark-delay: .55s;
  --landmark-rise: 42%;
}
.home_page .key_landmark-02 {
  top: -17%;
  left: 11%;
  z-index: 2;
  width: 31%;
  max-width: 464px;
  rotate: 3deg;
  --landmark-delay: .82s;
  --landmark-rise: 10%;
}
.home_page .key_landmark-03 {
  top: -19%;
  left: 30%;
  z-index: 1;
  width: 42%;
  max-width: 639px;
  --landmark-delay: 1.09s;
  --landmark-rise: 0%;
}
.home_page .key_landmark-04 {
  top: -22%;
  left: 64%;
  z-index: 4;
  width: 18%;
  max-width: 272px;
  --landmark-delay: 1.36s;
  --landmark-rise: -30%;
}
.home_page .key_landmark-05 {
  top: -10%;
  left: 72.84%;
  z-index: 5;
  width: 29%;
  max-width: 428px;
  rotate: -5deg;
  --landmark-delay: 1.63s;
  --landmark-rise: -42%;
}
.home_page .key_plane-orbit {
  position: absolute;
  left: 50%;
  width: 145%;
  z-index: 5;
  aspect-ratio: 1;
  opacity: 1;
  transform: translate(-50%, -50%) rotate(0deg);
  pointer-events: none;
  will-change: transform, opacity;
}
.home_page .key_plane-position {
  position: absolute;
  top: 50%;
  left: 0;
  width: 10%;
  max-width: 200px;
  transform: translate(-50%, -50%) rotate(0deg);
  will-change: transform;
}
.home_page .key_plane-bob {
  transform-origin: 50% 50%;
}
.home_page .key.is-ready .key_text .title {
  opacity: 1;
  clip-path: inset(0 0 0 0);
  transition: 1.75s 2.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.home_page .key.is-ready .key_visual {
  opacity: 1;
  transform: translate3d(-50%, 0, 0) scale(1);
  transition: opacity 0.8s ease, transform 1.25s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.home_page .key.is-ready .key_earth-scene {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  transition: opacity 0.55s 0.1s ease, transform 1s 0.1s cubic-bezier(0.18, 0.9, 0.3, 1.18);
}
.home_page .key.is-ready .key_earth-rotate {
  animation: key-earth-rotate var(--key-earth-duration) 1.05s linear infinite;
}
.home_page .key.is-ready .key_landmark {
  animation: key-landmark-rise 1.25s var(--landmark-delay) cubic-bezier(0.2, 0.8, 0.25, 1) both;
}
.home_page .key.is-ready .key_squirrel {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition: opacity 0.55s 2s ease, transform 0.8s 2s ease;
}
.home_page .key.is-ready .key_squirrel-bob {
  animation: key-squirrel-step 0.36s 1.7s ease-in-out infinite alternate;
}
.home_page .key.is-ready .key_plane-orbit {
  animation: key-plane-orbit var(--key-plane-duration) 0s linear infinite;
}
.home_page .key.is-ready .key_plane-position {
  animation: key-plane-upright var(--key-plane-duration) 0s linear infinite;
}
.home_page .key.is-ready .key_plane-bob {
  animation: key-plane-bank var(--key-plane-duration) 0s linear infinite;
}
@keyframes key-earth-rotate {
  to {
    transform: rotate(-360deg);
  }
}
@keyframes key-landmark-rise {
  0% {
    opacity: 0;
    transform: translate3d(var(--landmark-rise), 42%, 0) scale(0.88);
  }
  72% {
    opacity: 1;
    transform: translate3d(0, -1%, 0) scale(1.015);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}
@keyframes key-squirrel-step {
  0% {
    transform: translate3d(0, 3px, 0) rotate(-1.2deg);
  }
  100% {
    transform: translate3d(0, -4px, 0) rotate(1.2deg);
  }
}
@keyframes key-plane-orbit {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(0deg);
  }
  7%, 93% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(180deg);
  }
}
@keyframes key-plane-upright {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    transform: translate(-50%, -50%) rotate(-180deg);
  }
}
@keyframes key-plane-bank {
  0% {
    transform: rotate(-45deg);
  }
  50% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(90deg);
  }
}
@media only screen and (min-width: 769px) {
  .home_page .key {
    --height: round(56.25vw, 1px);
    --min-height: 420px;
    --max-height: 720px;
    --key-earth-duration: 18s;
    --key-plane-duration: 15s;
  }
  .home_page .key_text .title {
    width: 62%;
    margin-bottom: 5%;
  }
  .home_page .key_visual {
    top: 70%;
    left: 50%;
    z-index: 0;
    width: min(120%, 1522px);
  }
  .home_page .key_squirrel {
    left: 37%;
  }
  .home_page .key_plane-orbit {
    top: 45%;
  }
}
@media only screen and (min-width: 1921px) {
  .home_page .key {
    --max-height: 38vw ;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .home_page .key {
    font-size: min(0.65vw, 10px);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1560px) and (max-height: 800px) {
  .home_page .key {
    --max-height: min(100vh, 920px);
  }
  .home_page .key .key_text {
    width: 80%;
  }
  .home_page .key .key_visual {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home_page .key *,
  .home_page .key *::before,
  .home_page .key *::after {
    animation-duration: 0.001ms !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
    transition-delay: 0s !important;
  }
  .home_page .key_landmark, .home_page .key_earth-scene, .home_page .key_squirrel {
    opacity: 1;
    transform: none;
  }
  .home_page .key_plane-orbit {
    display: none;
  }
}

.home_page .topic_path {
  display: none;
}
.home_page .title_wrap .en {
  font-family: var(--f-en);
  line-height: 1;
  color: var(--main-color);
  text-transform: uppercase;
  letter-spacing: 0;
}
.home_page .title_wrap h2 {
  font-family: var(--f-jp);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.4;
  color: var(--main-color);
}
.home_page .title_wrap.white .en,
.home_page .title_wrap.white h2 {
  color: #fff;
}
@media only screen and (min-width: 769px) {
  .home_page .title_wrap .en {
    font-size: 105px;
    font-weight: 900;
  }
  .home_page .title_wrap h2 {
    font-size: calc(var(--fs-base) + 4px);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .home_page .title_wrap .en {
    font-size: 80px;
  }
}

section {
  background-size: cover;
  background-repeat: no-repeat;
}

.idx01 {
  position: relative;
  z-index: 0;
}
.idx01::after {
  content: "";
  position: absolute;
  width: 100%;
  height: calc(100% + var(--mt));
  top: calc(var(--mt) * -1);
  mask: url(../images/wave_decor.png) repeat-x top left/100% auto, linear-gradient(#000 0 0) bottom center/100% calc(round(up, 100%, 1px) - 18vw) no-repeat;
  -webkit-mask: url(../images/wave_decor.png) repeat-x top left/100% auto, linear-gradient(#000 0 0) bottom center/100% calc(round(up, 100%, 1px) - 18vw) no-repeat;
  z-index: -1;
}
.idx01 .marquee {
  position: absolute;
  left: calc(50% - 50vw);
}
.idx01 .marquee_item {
  font-family: var(--f-en);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1;
  color: transparent;
  margin-right: 0.1889em;
}
.idx01 .news_wrap {
  position: absolute;
  z-index: 1;
}
.idx01 .news_wrap .news_box {
  width: 100%;
}
.idx01 .news_wrap .news_box ul {
  flex-grow: 1;
}
.idx01 .news_wrap .news_box ul li a {
  position: relative;
  display: flex;
  align-items: center;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.1em;
  width: 100%;
  color: var(--main-color);
  background-color: #fff;
  border-radius: 30px;
}
.idx01 .news_wrap .news_box ul li a::before {
  content: "NEWS";
  font-family: var(--f-en);
  font-weight: 500;
  line-height: 1.75;
  margin-bottom: 0;
  letter-spacing: 0.085em;
}
.idx01 .news_wrap .news_box ul li a::after {
  content: "";
  position: absolute;
  aspect-ratio: 1/1;
  background: url("../images/idx_news_arrow.png") no-repeat center/cover;
}
.idx01 .news_wrap .news_box ul li a .date {
  font-family: var(--f-en);
  font-weight: 500;
  letter-spacing: 0;
  margin-right: 5px;
}
.idx01 .news_wrap .news_box ul li a .title {
  max-width: 100%;
  width: 100%;
  text-overflow: ellipsis;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}
.idx01 .news_wrap .news_box ul li a .label_new {
  color: #fff;
  background-color: var(--clr2);
  border-radius: 3px;
}
.idx01 .news_wrap .btn-group {
  margin-left: auto;
}
.idx01 .content_wrap {
  position: relative;
}
.idx01 .content_wrap .title_wrap h2 {
  font-weight: 900;
}
.idx01 .content_wrap .desc {
  color: #fff;
}
@media only screen and (min-width: 769px) {
  .idx01 {
    padding: 157px 0 188px;
    --mt: round(13.52vw, 1px);
  }
  .idx01::after {
    background: url(../images/idx01_bg.jpg) no-repeat top center/max(1920px, 100%) auto;
  }
  .idx01 .marquee {
    font-size: min(0.845vw, 10px);
    bottom: calc(100% - 6.6em);
  }
  .idx01 .marquee_item {
    font-size: 18em;
    -webkit-text-stroke: 2px #fff;
    margin-right: 0.1889em;
  }
  .idx01 .news_wrap {
    font-size: 0.625em;
    width: clamp(270px, 35%, 445px);
    left: 2em;
    bottom: calc(100% + 2em);
  }
  .idx01 .news_wrap .news_box ul li a {
    font-size: 1.4em;
    padding: 0.8571em 4.2857em 0.8571em 2.0714em;
  }
  .idx01 .news_wrap .news_box ul li a::before {
    font-size: 1.1429em;
    padding-right: 1.125em;
    margin-right: 1.125em;
    border-right: 1px solid currentColor;
  }
  .idx01 .news_wrap .news_box ul li a::after {
    width: round(2.5em, 1px);
    top: calc(50% - 1.25em);
    right: 1.0714em;
  }
  .idx01 .news_wrap .news_box ul li a .date {
    order: 1;
    display: block;
    font-size: 0.8571em;
    margin-bottom: -0.25em;
  }
  .idx01 .news_wrap .news_box ul li a .txt {
    display: flex;
    flex-wrap: wrap;
    position: relative;
  }
  .idx01 .news_wrap .news_box ul li a .title {
    order: 3;
  }
  .idx01 .news_wrap .news_box ul li a .label_new {
    order: 2;
    font-size: 0.7143em;
    padding: 0 0.4em 1px;
  }
  .idx01 .news_wrap .news_box ul li a:hover {
    opacity: 1;
    background-color: var(--main-color);
    color: #fff;
  }
  .idx01 .news_wrap .btn-group {
    font-size: 1em;
    margin-bottom: 1.5em;
    max-width: 14em;
  }
  .idx01 .content_wrap {
    display: flex;
    justify-content: flex-end;
  }
  .idx01 .content_wrap .title_wrap {
    margin-bottom: 3em;
  }
  .idx01 .content_wrap .title_wrap .en {
    position: absolute;
    top: 0;
    left: 0;
    margin-left: -0.1524em;
    white-space: nowrap;
    -webkit-writing-mode: vertical-rl;
    -moz-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    -webkit-text-orientation: mixed;
    -moz-text-orientation: mixed;
    -ms-text-orientation: mixed;
    text-orientation: mixed;
  }
  .idx01 .content_wrap .title_wrap h2 {
    font-size: calc(var(--ttl_size) * 2 + 6px);
  }
  .idx01 .content_wrap .txt {
    padding-top: 0.875em;
  }
  .idx01 .content_wrap .desc p {
    line-height: 2.25;
  }
  .idx01 .content_wrap .desc p:not(:last-child) {
    margin-bottom: 1.875em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 992px) {
  .idx01 {
    padding: 100px 0;
  }
}

.idx02 .content_wrap {
  position: relative;
}
.idx02 .content_box {
  --ease-out: cubic-bezier(.22, 1, .36, 1);
  position: relative;
  display: flex;
  align-items: center;
  background-color: #fff;
  overflow: hidden;
  z-index: 2;
}
.idx02 .content_box::before, .idx02 .content_box::after {
  content: "";
  position: absolute;
  opacity: 0;
}
.idx02 .content_box::before {
  width: 177.7%;
  aspect-ratio: 1/1;
  top: 50%;
  left: 50%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  filter: blur(5px);
  z-index: -1;
  transform: translate(-50%, -50%) scale(1.12);
  transition: opacity 0.6s ease, transform 1.2s var(--ease-out);
  will-change: transform, opacity;
}
.idx02 .content_box::after {
  inset: 0;
  background: var(--main-color);
  mix-blend-mode: multiply;
  z-index: -1;
  transition: opacity 0.6s ease;
}
.idx02 .content_box .box {
  position: relative;
  width: 100%;
  height: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  border-radius: 15px;
  z-index: 0;
  overflow: hidden;
  cursor: pointer;
}
.idx02 .content_box .box::before, .idx02 .content_box .box::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
}
.idx02 .content_box .box::before {
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  opacity: 0.5;
  transform: scale(1);
  transition: opacity 0.6s ease, transform 1.2s var(--ease-out);
  will-change: transform, opacity;
}
.idx02 .content_box .box::after {
  background-image: linear-gradient(180deg, rgba(29, 130, 251, 0) 16%, rgb(29, 130, 251) 100%);
  transition: opacity 0.6s ease;
}
.idx02 .content_box .box .title_wrap {
  position: relative;
  width: 100%;
}
.idx02 .content_box .box .title_wrap::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 6px;
  bottom: 0px;
  left: 0px;
  background: url("../images/ico_line_wave01.png") repeat-x bottom left/24px auto;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease;
}
.idx02 .content_box .box .title_wrap .en {
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  letter-spacing: 0.1em;
  font-weight: 500;
  color: var(--main-color);
  background-color: #fff;
  border-radius: 999em;
  width: fit-content;
}
.idx02 .content_box .box .title_wrap h2 {
  text-align: center;
  color: #fff;
}
.idx02 .content_box .box .anchor_list {
  height: auto;
  max-height: 0;
  opacity: 0;
  visibility: hidden;
  justify-content: flex-start;
  transition: max-height 0.8s var(--ease-out), opacity 0.3s ease, visibility 0s linear 0.8s;
}
.idx02 .content_box .box .anchor_list li a {
  position: relative;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  color: #fff;
  border-radius: 999em;
  letter-spacing: 0.1em;
  border: 1px solid #fff;
  text-decoration: none;
}
.idx02 .content_box .box .anchor_list li a::before, .idx02 .content_box .box .anchor_list li a::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}
.idx02 .content_box .box .anchor_list li a::before {
  background-color: currentColor;
}
.idx02 .content_box .box .anchor_list li a::after {
  --mask: url("../images/ico_arrow02.png");
  mask-image: var(--mask);
  -webkit-mask-image: var(--mask);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: 100% auto;
  -webkit-mask-size: 100% auto;
  mask-position: center;
  -webkit-mask-position: center;
  background-color: var(--main-color);
}
.idx02 .content_box .box .anchor_list li a:hover {
  opacity: 1;
  background-color: #fff;
  color: var(--main-color);
}
.idx02 .content_box .box .anchor_list li a:hover::after {
  background-color: #fff;
}
.idx02 .content_box .box .btn {
  position: absolute;
  margin-bottom: 0;
  font-family: var(--f-en);
  font-weight: 500;
  letter-spacing: 0.085em;
  color: #fff;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: currentColor;
  transform: translateY(0);
  transition: opacity 0.3s ease, transform 0.5s var(--ease-out), visibility 0s;
}
.idx02 .content_box .box:not(.is-active) .title_wrap h2 .lg {
  position: relative;
  display: block;
  width: fit-content;
  margin: 0 auto;
  letter-spacing: 0.1em;
}
.idx02 .content_box .box:not(.is-active) .title_wrap h2 .lg::after {
  content: "";
  position: absolute;
  height: 6px;
  bottom: 0px;
  background: url("../images/ico_line_wave02.png") repeat-x bottom left/22px auto;
}
.idx02 .content_box01::before {
  background-image: url(../images/idx02_img01.jpg);
}
.idx02 .content_box01 .box::before {
  background-image: url(../images/idx02_img01.jpg);
}
.idx02 .content_box02::before {
  background-image: url(../images/idx02_img02.jpg);
}
.idx02 .content_box02 .box::before {
  background-image: url(../images/idx02_img02.jpg);
}
.idx02 .content_box:has(.box.is-active)::before {
  opacity: 0.5;
  transform: translate(-50%, -50%) scale(1.03);
}
.idx02 .content_box:has(.box.is-active)::after {
  opacity: 1;
}
.idx02 .content_box:has(.box.is-active) .box::before {
  opacity: 0;
  transform: scale(1.1);
}
.idx02 .content_box:has(.box.is-active) .box::after {
  opacity: 0;
}
.idx02 .content_box:has(.box.is-active) .box .title_wrap::after {
  opacity: 1;
  visibility: visible;
}
.idx02 .content_box:has(.box.is-active) .box .anchor_list {
  max-height: 500px;
  opacity: 1;
  visibility: visible;
  transition: max-height 0.9s var(--ease-out), opacity 0.45s ease 0.15s, visibility 0s;
}
.idx02 .content_box:has(.box.is-active) .box .btn {
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.4s var(--ease-out), visibility 0s linear 0.25s;
}
@media only screen and (min-width: 769px) {
  .idx02 {
    margin-top: -13.75vw;
  }
  .idx02 .content_wrap {
    display: flex;
  }
  .idx02 .content_box {
    padding: 15vw 5.4vw;
    width: 50%;
    min-height: max(1088px, 65vw);
  }
  .idx02 .content_box .box {
    max-width: 500px;
    min-height: 500px;
  }
  .idx02 .content_box .box .title_wrap .en {
    font-size: var(--fs-base);
    min-height: 2.5625em;
    padding: 0.3125em 1.4375em;
    margin-bottom: 0.625em;
  }
  .idx02 .content_box .box .title_wrap h2 {
    font-size: calc(var(--ttl_size) * 1.5 - 2px);
  }
  .idx02 .content_box .box .anchor_list {
    font-size: min(0.945vw, 10px);
    --gap: 1.4em;
  }
  .idx02 .content_box .box .anchor_list li a {
    font-size: 1.4em;
    min-height: 5.0714em;
    padding: 0.7143em 4.1429em 0.7143em 1.7143em;
  }
  .idx02 .content_box .box .anchor_list li a::before, .idx02 .content_box .box .anchor_list li a::after {
    top: calc(50% - 1.4286em);
    right: 1.0714em;
    width: round(2.8571em, 1px);
    height: round(2.8571em, 1px);
  }
  .idx02 .content_box .box .btn {
    bottom: 1.8125em;
    font-size: var(--fs-base);
    text-underline-offset: 0.5625em;
  }
  .idx02 .content_box:not(:has(.box:hover)) .box .title_wrap {
    padding-top: 7px;
  }
  .idx02 .content_box:not(:has(.box:hover)) .box .title_wrap h2 .lg {
    margin-top: -0.1613em;
    font-size: 1.55em;
    padding-bottom: 0.2258em;
    margin-bottom: 0.1129em;
  }
  .idx02 .content_box:not(:has(.box:hover)) .box .title_wrap h2 .lg::after {
    width: calc(100% - 10px);
    left: 3px;
  }
  .idx02 .content_box:has(.box.is-active) .box .title_wrap {
    padding-bottom: 1.125em;
    margin-bottom: 2.25em;
  }
  .idx02 .content_box01 {
    mask: url(../images/idx02_decor01.png) no-repeat top left/100% auto, linear-gradient(#000 0 0) center/100% calc(round(up, 100%, 1px) - 30vw) no-repeat, url(../images/idx02_decor02.png) no-repeat bottom left/100% auto;
    -webkit-mask: url(../images/idx02_decor01.png) no-repeat top left/100% auto, linear-gradient(#000 0 0) center/100% calc(round(up, 100%, 1px) - 30vw) no-repeat, url(../images/idx02_decor02.png) no-repeat bottom left/100% auto;
    border-right: 0.5px solid #eaeaea;
    justify-content: flex-end;
  }
  .idx02 .content_box02 {
    mask: url(../images/idx02_decor03.png) no-repeat top left/100% auto, linear-gradient(#000 0 0) center/100% calc(round(up, 100%, 1px) - 30vw) no-repeat, url(../images/idx02_decor04.png) no-repeat bottom left/100% auto;
    -webkit-mask: url(../images/idx02_decor03.png) no-repeat top left/100% auto, linear-gradient(#000 0 0) center/100% calc(round(up, 100%, 1px) - 30vw) no-repeat, url(../images/idx02_decor04.png) no-repeat bottom left/100% auto;
    border-left: 0.5px solid #eaeaea;
    justify-content: flex-start;
  }
}
@media only screen and (min-width: 769px) and (max-width: 992px) {
  .idx02 .content_box {
    min-height: 800px;
  }
  .idx02 .content_box .box {
    min-height: 350px;
  }
}

.idx_services {
  --clr-section: var(--main-color);
}
.idx_services .marquee {
  transform: rotate(-10deg);
  border-top: 2px solid var(--clr);
}
.idx_services .marquee_wrap {
  --clr: var(--clr-section);
  position: relative;
  width: 150vw;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
}
.idx_services .marquee_wrap::before {
  content: "";
  position: absolute;
  z-index: 1;
}
.idx_services .marquee_item {
  color: var(--clr);
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0;
}
.idx_services .marquee.jp .marquee_item {
  font-family: var(--f-notosans);
  margin-right: 0.6em;
}
.idx_services .marquee.en {
  border-bottom: 2px solid var(--clr);
  background-color: #fff;
}
.idx_services .marquee.en .marquee_item {
  font-family: var(--f-en);
  letter-spacing: 0;
  margin-right: 0.2273em;
}
.idx_services .content_wrap {
  margin: 0 auto;
}
.idx_services .map_wrap {
  position: relative;
}
.idx_services .map_wrap .area_list {
  position: absolute;
  inset: 0;
}
.idx_services .map_wrap .area_list .item {
  position: absolute;
}
.idx_services .map_wrap .area_list .item .txt {
  position: absolute;
  left: 50%;
  transform: translate(-50%, -100%);
  background-color: var(--clr-section);
  border-radius: 999em;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}
.idx_services .map_wrap .area_list .item .txt::after {
  content: "";
  position: absolute;
  mask-image: var(--mask);
  -webkit-mask-image: var(--mask);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: 100% auto;
  -webkit-mask-size: 100% auto;
  mask-position: center;
  -webkit-mask-position: center;
  background-color: inherit;
}
.idx_services .map_wrap .area_list .item .txt > p {
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-bottom: 0;
}
.idx_services .map_wrap .area_list .item .txt .ic {
  position: absolute;
  border-radius: 50%;
  background-color: #fff;
}
.idx_services .map_wrap .area_list .item .txt .ic::before {
  content: "";
  position: absolute;
  aspect-ratio: 1/1;
  --mask: url("../images/popup_btn_ico.png");
  mask-image: var(--mask);
  -webkit-mask-image: var(--mask);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: 100% auto;
  -webkit-mask-size: 100% auto;
  mask-position: center;
  -webkit-mask-position: center;
  background-color: var(--main-color);
  background-color: var(--clr-section);
}
.idx_services .popup_wrap {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  background: rgba(70, 70, 70, 0.55);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s, visibility 0.3s;
}
.idx_services .popup_wrap.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.idx_services .popup_wrap .popup {
  position: absolute;
  z-index: 1;
  background-color: #fff;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(15px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
}
.idx_services .popup_wrap .popup.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.idx_services .popup_wrap .popup .close {
  position: absolute;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background-color: var(--clr-section);
  cursor: pointer;
}
.idx_services .popup_wrap .popup .close::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../images/ico_close.png") no-repeat center/cover;
}
.idx_services .popup_wrap .popup .content {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.idx_services .popup_wrap .popup .ttl {
  flex-shrink: 0;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #fff;
  text-align: center;
  background-color: var(--clr-section);
  border-radius: 999em;
  display: flex;
  justify-content: center;
  align-items: center;
}
.idx_services .popup_wrap .popup ul {
  flex-grow: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}
.idx_services .popup_wrap .popup ul::-webkit-scrollbar-track {
  border-radius: 5px;
  background: #eee;
}
.idx_services .popup_wrap .popup ul::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background: var(--clr-section);
}
.idx_services .popup_wrap .popup ul li {
  position: relative;
}
.idx_services .popup_wrap .popup ul li:not(:last-child)::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 6px;
  bottom: 0px;
  left: 0px;
  --mask: url("../images/ico_line_wave02.png");
  mask-image: var(--mask);
  -webkit-mask-image: var(--mask);
  mask-repeat: repeat-x;
  -webkit-mask-repeat: repeat-x;
  mask-size: 24px auto;
  -webkit-mask-size: 24px auto;
  mask-position: center left;
  -webkit-mask-position: center left;
  background-color: var(--clr-section);
}
.idx_services .popup_wrap .popup ul li picture {
  flex-shrink: 0;
  overflow: hidden;
}
.idx_services .popup_wrap .popup ul li .txt .tt {
  line-height: 1.4;
  font-weight: 700;
  color: var(--clr-section);
}
.idx_services .popup_wrap .popup ul li .txt .tag {
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #fff;
  background-color: var(--clr-section);
  border-radius: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.idx_services .popup_wrap .popup ul li .txt .desc {
  line-height: 1.7;
}
.idx_services .popup_wrap .popup ul li .txt .btn-group .btn a {
  color: var(--clr-section);
  border: 1px solid var(--clr-section);
}
.idx_services .list_wrap {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
}
.idx_services .list_wrap .title_wrap {
  text-align: center;
}
.idx_services .list_wrap .title_wrap .en {
  font-weight: 500;
  letter-spacing: 0.085em;
  color: var(--clr-section);
}
.idx_services .list_wrap .title_wrap h2 {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.1em;
  color: var(--clr-section);
}
.idx_services .list_wrap .title_wrap h2 > span {
  flex-shrink: 0;
}
.idx_services .list_wrap .title_wrap h2::before, .idx_services .list_wrap .title_wrap h2::after {
  content: "";
  display: block;
  flex-grow: 1;
  height: 6px;
  --mask: url("../images/ico_line_wave03.png");
  mask-image: var(--mask);
  -webkit-mask-image: var(--mask);
  mask-repeat: repeat-x;
  -webkit-mask-repeat: repeat-x;
  mask-size: 21px auto;
  -webkit-mask-size: 21px auto;
  mask-position: center left;
  -webkit-mask-position: center left;
  background-color: currentColor;
}
.idx_services .list_wrap ul {
  display: flex;
  justify-content: center;
  gap: var(--spc);
}
.idx_services .list_wrap ul li {
  position: relative;
  border-radius: 15px;
  background-color: #fff;
  max-width: 247px;
}
.idx_services .list_wrap ul li picture img {
  border-radius: 10px;
}
.idx_services .list_wrap ul li .txt {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  inset: 0;
}
.idx_services .list_wrap ul li .ttl {
  font-weight: 700;
  letter-spacing: 0.1em;
  text-align: center;
  color: #fff;
  text-shadow: 0 0 3px #929292, 2px 2px 1px rgba(60, 60, 60, 0.45), 4px 4px 3px rgba(60, 60, 60, 0.25);
  margin-bottom: 0;
}
.idx_services .list_wrap ul li .btn {
  position: absolute;
  display: table;
  text-align: center;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--f-en);
  letter-spacing: 0.085em;
  line-height: 1.4;
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-right: 1.25em;
  padding-bottom: 0.125em;
  bottom: 1.625em;
  white-space: nowrap;
}
.idx_services .list_wrap ul li .btn::after {
  content: "";
  position: absolute;
  width: 0.6875em;
  top: calc(50% - 0.5em);
  right: -0.1875em;
  aspect-ratio: 11/10;
  --mask: url("../images/ico_arrow05.png");
  mask-image: var(--mask);
  -webkit-mask-image: var(--mask);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: 100% auto;
  -webkit-mask-size: 100% auto;
  mask-position: center;
  -webkit-mask-position: center;
  background-color: currentColor;
}
@media only screen and (min-width: 769px) {
  .idx_services .marquee_wrap {
    font-size: min(0.78vw, 10px);
  }
  .idx_services .marquee_wrap::before {
    width: 48.2em;
    aspect-ratio: 482/262;
  }
  .idx_services .marquee.jp {
    padding: 1.6em 0 2em;
  }
  .idx_services .marquee.jp .marquee_item {
    font-size: 2em;
  }
  .idx_services .marquee.en .marquee_item {
    font-size: 15.4em;
  }
  .idx_services .content_wrap {
    font-size: min(0.78125vw, 10px);
    max-width: 128em;
  }
  .idx_services .map_wrap .item .txt {
    width: 26em;
    padding: 0.6em;
    top: -1.5em;
  }
  .idx_services .map_wrap .item .txt::after {
    width: 3em;
    aspect-ratio: 30/15;
    top: calc(100% - 1px);
    left: calc(50% - 1.5em);
    --mask: url("../images/idx_services_btn_ico.png");
  }
  .idx_services .map_wrap .item .txt > p {
    font-size: 2em;
  }
  .idx_services .map_wrap .item .txt .ic {
    width: round(3.1em, 1px);
    height: round(3.1em, 1px);
    top: calc(50% - 1.5em);
    right: 0.6em;
  }
  .idx_services .map_wrap .item .txt .ic::before {
    width: round(1.2em, 1px);
    top: calc(50% - 0.6em);
    left: calc(50% - 0.6em);
  }
  .idx_services .popup_wrap {
    font-size: clamp(8.75px, 1em, 10px);
  }
  .idx_services .popup_wrap .popup {
    width: 74.5em;
    border-radius: 15px;
    max-height: 50em;
    height: calc(100vh - var(--wrapper) * 2.5);
    padding: 4em;
    padding-bottom: 0.7em;
  }
  .idx_services .popup_wrap .popup .close {
    top: 0;
    left: calc(100% + 1em);
    width: round(4.7em, 1px);
  }
  .idx_services .popup_wrap .popup .close:hover {
    background-color: var(--clr2);
  }
  .idx_services .popup_wrap .popup .ttl {
    font-size: 2.6em;
    padding: 0.0385em 0.3846em 0.0769em;
    margin-bottom: 1.5385em;
  }
  .idx_services .popup_wrap .popup ul {
    margin-right: -3.3em;
    padding-right: 2.6em;
  }
  .idx_services .popup_wrap .popup ul::-webkit-scrollbar {
    width: 7px;
    height: 7px;
  }
  .idx_services .popup_wrap .popup ul li {
    display: flex;
    justify-content: space-between;
  }
  .idx_services .popup_wrap .popup ul li:not(:last-child) {
    padding-bottom: 4.7em;
    margin-bottom: 4.2em;
  }
  .idx_services .popup_wrap .popup ul li picture {
    width: 46%;
    max-width: 300px;
  }
  .idx_services .popup_wrap .popup ul li picture img {
    border-radius: 15px;
  }
  .idx_services .popup_wrap .popup ul li .txt {
    width: 52%;
    max-width: 335px;
  }
  .idx_services .popup_wrap .popup ul li .txt .tt {
    display: flex;
    align-items: center;
    font-size: 2em;
    margin-bottom: 0.6em;
  }
  .idx_services .popup_wrap .popup ul li .txt .tag {
    min-width: 88px;
    font-size: 0.8em;
    padding: 0.0625em 0.5625em;
    margin-right: 0.5625em;
  }
  .idx_services .popup_wrap .popup ul li .txt .desc {
    font-size: 1.5em;
    margin-bottom: 1.6667em;
  }
  .idx_services .popup_wrap .popup ul li .txt .btn-group {
    font-size: 1em;
    max-width: 15.6em;
  }
  .idx_services .list_wrap {
    margin-top: 25px;
    padding: 0 20px;
  }
  .idx_services .list_wrap .title_wrap {
    margin-bottom: 4.3em;
  }
  .idx_services .list_wrap .title_wrap .en {
    font-size: var(--fs-base);
    margin-bottom: 0.375em;
  }
  .idx_services .list_wrap .title_wrap h2 {
    font-size: calc(var(--ttl_size) * 1.5 - 2px);
    gap: 0.8em;
  }
  .idx_services .list_wrap .title_wrap h2::before, .idx_services .list_wrap .title_wrap h2::after {
    max-width: 310px;
  }
  .idx_services .list_wrap ul {
    font-size: min(0.9vw, 10px);
    --spc: 3em;
  }
  .idx_services .list_wrap ul li {
    padding: 0.6em;
    width: calc((100% - var(--spc) * 3) / 4);
  }
  .idx_services .list_wrap ul li .ttl {
    font-size: 2.6em;
    line-height: 1.5;
    padding-bottom: 1.6154em;
  }
  .idx_services .list_wrap ul li .btn {
    font-size: 1.6em;
  }
  .idx_services .list_wrap ul li:hover {
    opacity: 0.8;
  }
}
@media only screen and (min-width: 769px) and (max-width: 992px) {
  .idx_services .list_wrap ul {
    --spc: 1.5em;
  }
}

.idx03 {
  position: relative;
}
.idx03::before {
  content: "";
  position: absolute;
  width: 100%;
  background: url(../images/idx03_bg.jpg) repeat top left/1280px 1568px;
  z-index: -1;
}
.idx03::after {
  content: "";
  position: absolute;
  width: 100%;
  left: 0px;
  background: url("../images/ico_line_wave04.png") repeat-x center left/36px auto;
}
.idx03 .marquee_wrap::before {
  background: url("../images/idx03_decor01.png") no-repeat center/cover;
}
@media only screen and (min-width: 769px) {
  .idx03 {
    padding: 17px 0 130px;
  }
  .idx03::before {
    top: -14vw;
    height: calc(100% + 14vw);
  }
  .idx03::after {
    height: 14px;
    bottom: -8px;
  }
  .idx03 .marquee_wrap::before {
    top: -10.3em;
    right: calc(100% - 75vw + 6.9em);
  }
  .idx03 .popup_wrap .popup ul li .txt .btn-group .btn a:hover {
    color: #fff;
  }
  .idx03 .map_wrap {
    margin-top: -7.3em;
    z-index: 0;
    width: 100%;
  }
  .idx03 .map_wrap::after {
    content: "";
    position: absolute;
    width: 74.5em;
    aspect-ratio: 745/382;
    left: calc(50% - 34.9em);
    bottom: 2.6em;
    background: url("../images/idx03_map_decor.png") no-repeat center/cover;
    z-index: -1;
  }
  .idx03 .map_wrap .area_list .item1 {
    top: 26.8em;
    left: 18.5em;
  }
  .idx03 .map_wrap .area_list .item2 {
    top: 35.4em;
    left: 47.4em;
  }
  .idx03 .map_wrap .area_list .item3 {
    top: 57.6em;
    left: 59.8em;
  }
  .idx03 .map_wrap .area_list .item4 {
    top: 24.5em;
    left: 99.5em;
  }
  .idx03 .map_wrap .area_list .item:hover {
    --clr-section: var(--clr2);
  }
}
@media only screen and (min-width: 769px) and (max-width: 992px) {
  .idx03 {
    padding-bottom: 100px;
  }
}

.idx04 {
  position: relative;
  --clr-section: var(--clr2);
}
.idx04::before {
  content: "";
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  background: url(../images/idx04_bg.jpg) repeat top left/1280px 1570px;
  z-index: -1;
}
.idx04 .marquee {
  --clr: var(--clr2);
  transform: rotate(10deg);
}
.idx04 .marquee_wrap::before {
  background: url("../images/idx03_decor02.png") no-repeat center/cover;
}
.idx04 .content_wrap {
  position: relative;
}
.idx04 .content_wrap::before, .idx04 .content_wrap::after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
@media only screen and (min-width: 769px) {
  .idx04 {
    padding: max(10.8vw, 138px) 0 max(9.375vw, 120px);
  }
  .idx04 .marquee_wrap::before {
    top: -10.5em;
    left: calc(100% - 75vw + 6.8em);
  }
  .idx04 .content_wrap {
    flex-direction: row-reverse;
    display: flex;
    align-items: center;
  }
  .idx04 .content_wrap::before {
    width: 25.2em;
    aspect-ratio: 252/183;
    top: -1.3em;
    left: -2.8em;
    background-image: url(../images/idx04_map_decor01.png);
  }
  .idx04 .content_wrap::after {
    width: 19.5em;
    aspect-ratio: 195/91;
    bottom: 4.4em;
    right: 10.3em;
    background-image: url("../images/idx04_map_decor02.png");
  }
  .idx04 .map_wrap {
    z-index: 0;
    flex-shrink: 0;
    width: 66.9em;
    margin: 0 auto;
    margin-top: 5.9em;
    margin-right: -0.4em;
    margin-left: 2em;
  }
  .idx04 .map_wrap::before {
    content: "";
    position: absolute;
    width: 6px;
    height: 100%;
    top: 0px;
    left: -6.7em;
    background: url("../images/ico_line_wave05.png") repeat-y top center/6px auto;
  }
  .idx04 .map_wrap .area_list .item .txt {
    width: 16em;
  }
  .idx04 .map_wrap .area_list .item1 {
    top: 14em;
    right: 15.2em;
  }
  .idx04 .map_wrap .area_list .item2 {
    top: 27.9em;
    left: 12.3em;
  }
  .idx04 .map_wrap .area_list .item3 {
    top: 34.6em;
    right: 23.2em;
  }
  .idx04 .map_wrap .area_list .item4 {
    top: 44.2em;
    right: 36.6em;
  }
  .idx04 .map_wrap .area_list .item4 .txt {
    width: 20em;
  }
  .idx04 .map_wrap .area_list .item5 {
    top: 49.8em;
    right: 25.1em;
  }
  .idx04 .map_wrap .area_list .item6 {
    top: 54.1em;
    right: 40.8em;
  }
  .idx04 .map_wrap .area_list .item7 {
    top: 63.4em;
    left: 8.1em;
  }
  .idx04 .map_wrap .area_list .item:hover {
    --clr-section: var(--main-color);
  }
  .idx04 .popup_wrap .popup .close:hover {
    background-color: var(--main-color);
  }
  .idx04 .popup_wrap .popup ul li .txt .btn-group .btn a:hover {
    color: #fff;
    background-color: var(--clr-section);
  }
  .idx04 .list_wrap {
    margin-top: 60px;
  }
  .idx04 .list_wrap .title_wrap h2::before, .idx04 .list_wrap .title_wrap h2::after {
    content: none;
  }
  .idx04 .list_wrap ul li {
    width: 24.7em;
  }
}
@media only screen and (min-width: 1921px) {
  .idx04 {
    padding-bottom: 13.5vw;
  }
}
@media only screen and (min-width: 769px) and (max-width: 992px) {
  .idx04 .map_wrap::before {
    left: -20px;
  }
}

.idx05 {
  position: relative;
  z-index: 1;
}
.idx05::after {
  content: "";
  position: absolute;
  width: 100%;
  top: 0;
  mask: url(../images/wave_decor.png) repeat-x top left/100% auto, linear-gradient(#000 0 0) bottom center/100% calc(round(up, 100%, 1px) - 18vw) no-repeat;
  -webkit-mask: url(../images/wave_decor.png) repeat-x top left/100% auto, linear-gradient(#000 0 0) bottom center/100% calc(round(up, 100%, 1px) - 18vw) no-repeat;
  background: url(../images/idx05_bg_decor.jpg) no-repeat bottom center/cover;
  z-index: -1;
}
.idx05 .inner {
  position: relative;
}
.idx05 .slider_wrap {
  position: relative;
  width: 100vw;
}
.idx05 .slider_wrap .item {
  position: relative;
  overflow: hidden;
}
.idx05 .slider_wrap .area {
  position: relative;
  z-index: 0;
  color: #fff;
}
.idx05 .slider_wrap .area::before, .idx05 .slider_wrap .area::after {
  content: "";
  position: absolute;
  height: 100%;
  top: 0px;
  right: 0;
  mask-image: var(--mask);
  -webkit-mask-image: var(--mask);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: auto 100%;
  -webkit-mask-size: auto 100%;
  mask-position: left center;
  -webkit-mask-position: left center;
  z-index: -1;
}
.idx05 .slider_wrap .area::before {
  --mask: url("../images/idx05_decor01.png");
  background-color: #d2e6fe;
}
.idx05 .slider_wrap .area::after {
  --mask: url("../images/idx05_decor02.png");
  background-image: linear-gradient(180deg, #1d82fb 40%, #72ceff 90%);
}
.idx05 .slider_wrap .area .date {
  font-family: var(--f-en);
  font-weight: 500;
  letter-spacing: 0.085em;
  line-height: 1;
  display: flex;
  align-items: center;
}
.idx05 .slider_wrap .area .date .start,
.idx05 .slider_wrap .area .date .end {
  display: flex;
  align-items: center;
}
.idx05 .slider_wrap .area .date .start {
  position: relative;
}
.idx05 .slider_wrap .area .date .start::after {
  content: "";
  display: block;
  height: auto;
  aspect-ratio: 21/7;
  background: url("../images/ico_arrow03.png") no-repeat center/cover;
}
.idx05 .slider_wrap .area .date .day {
  position: relative;
  letter-spacing: 0.085em;
}
.idx05 .slider_wrap .area .ttl {
  position: relative;
  font-family: var(--f-jp);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.idx05 .slider_wrap .area .ttl::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 6px;
  bottom: 0px;
  left: 0px;
  background: url("../images/ico_line_wave06.png") repeat-x center left/23px auto;
}
.idx05 .slider_wrap .area .txt {
  font-weight: 500;
  letter-spacing: 0.2em;
  line-height: 1.7;
  margin-bottom: 0;
}
.idx05 .slider_wrap .area .btn {
  margin-bottom: 0;
  border-bottom: 1px solid currentColor;
}
.idx05 .slider_wrap .area .btn span {
  position: relative;
  font-family: var(--f-en);
  font-weight: 500;
  letter-spacing: 0.085em;
  line-height: 1;
  padding-right: 1.5em;
}
.idx05 .slider_wrap .area .btn span::after {
  content: "";
  position: absolute;
  width: round(0.6875em, 1px);
  aspect-ratio: 11/10;
  top: calc(50% - 0.3125em);
  right: 0px;
  background: url("../images/ico_arrow05.png") no-repeat center/cover;
}
.idx05 .slider_arrows {
  position: absolute;
  display: flex;
  justify-content: space-between;
  right: 20px;
  gap: 2em;
}
.idx05 .slider_arrows .slick-arrow {
  position: relative;
  width: round(7.8em, 1px);
  height: round(7.8em, 1px);
  border: 1px solid var(--main-color);
  border-radius: 50%;
}
.idx05 .slider_arrows .slick-arrow::after {
  content: "";
  position: absolute;
  inset: 0;
  mask-image: var(--mask);
  -webkit-mask-image: var(--mask);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: 100% auto;
  -webkit-mask-size: 100% auto;
  mask-position: center;
  -webkit-mask-position: center;
  background-color: var(--main-color);
}
.idx05 .slider_arrows .slick-arrow.slick-prev::after {
  --mask: url(../images/ico_prev.png);
}
.idx05 .slider_arrows .slick-arrow.slick-next::after {
  --mask: url(../images/ico_next.png);
}
.idx05 .btn-group .btn {
  max-width: 14em;
}
@media only screen and (min-width: 769px) {
  .idx05 .title_wrap {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    text-indent: -5px;
    margin-bottom: min(4.22vw, 54px);
  }
  .idx05 .title_wrap .en {
    margin-bottom: 0;
  }
  .idx05 .title_wrap h2 {
    padding-bottom: 0.55em;
  }
}
@media only screen and (min-width: 769px) {
  .idx05 {
    padding-top: min(60vw, 761px);
    margin-top: calc(clamp(120px, 15.2342375vw, 195px) * -1);
  }
  .idx05::after {
    height: min(76vw, 970px);
  }
  .idx05 .slider_wrap {
    font-size: min(0.9vw, 10px);
    margin-bottom: 50px;
  }
  .idx05 .slider_wrap .item {
    width: clamp(550px, 60vw, 750px);
    display: flex;
    justify-content: flex-end;
    border-radius: 15px;
    aspect-ratio: 75/43;
    margin: 0 15px;
  }
  .idx05 .slider_wrap .item:hover {
    opacity: 0.8;
  }
  .idx05 .slider_wrap picture {
    position: absolute;
    inset: 0;
  }
  .idx05 .slider_wrap picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .idx05 .slider_wrap .area {
    width: 51%;
    max-width: 378px;
    padding: 3em 4em 3em 5em;
  }
  .idx05 .slider_wrap .area::before {
    width: 100%;
  }
  .idx05 .slider_wrap .area::after {
    width: calc(100% - 3px);
  }
  .idx05 .slider_wrap .date {
    font-size: 1.6em;
    gap: 0.625em;
    margin-bottom: 3.0625em;
  }
  .idx05 .slider_wrap .date .start,
  .idx05 .slider_wrap .date .end {
    gap: 0.125em;
  }
  .idx05 .slider_wrap .date .start::after {
    width: 1.3125em;
    margin-left: 0.25em;
  }
  .idx05 .slider_wrap .date .day {
    top: -0.0571em;
    font-size: 2.1875em;
  }
  .idx05 .slider_wrap .ttl {
    font-size: 2.6em;
    padding-bottom: 1.0385em;
    margin-bottom: 0.5385em;
  }
  .idx05 .slider_wrap .txt {
    font-size: max(14px, 1.6em);
  }
  .idx05 .slider_wrap .btn {
    position: absolute;
    bottom: 3em;
    right: 2.8em;
  }
  .idx05 .slider_wrap .btn span {
    font-size: 1.6em;
  }
  .idx05 .slider_arrows {
    font-size: 0.625em;
    top: 11px;
  }
  .idx05 .slider_arrows .slick-arrow:hover {
    background-color: var(--main-color);
  }
  .idx05 .slider_arrows .slick-arrow:hover::after {
    background-color: #fff;
  }
}
@media only screen and (min-width: 1281px) {
  .idx05 {
    margin-top: calc(max(13.5vw, 195px) * -1);
  }
}
@media only screen and (min-width: 1921px) {
  .idx05::after {
    height: 25vw;
  }
}

.idx06 .title_wrap::after {
  content: "";
  aspect-ratio: 817/979;
  background: url("../images/idx06_decor.png") no-repeat center/cover;
  z-index: -1;
}
.idx06 .content_wrap ul {
  counter-reset: item;
  position: relative;
  z-index: 0;
}
.idx06 .content_wrap ul li {
  counter-increment: item;
  max-width: 440px;
  margin-left: auto;
}
.idx06 .content_wrap ul li:not(:last-child) {
  background: url(../images/ico_line_wave03.png) repeat-x bottom left/21px auto;
}
.idx06 .content_wrap ul li .img {
  position: relative;
}
.idx06 .content_wrap ul li .img::after {
  position: absolute;
  left: -0.5em;
  bottom: -0.2875em;
  content: counter(item, decimal-leading-zero);
  font-family: var(--f-en);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 2px var(--main-color);
}
.idx06 .content_wrap ul li .ttl {
  font-family: var(--f-jp);
  font-size: calc(var(--ttl_size) - 2px);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
  color: var(--main-color);
  margin-bottom: 0.3571em;
}
.idx06 .content_wrap ul li .txt {
  font-size: var(--fs-base);
}
@media only screen and (min-width: 769px) {
  .idx06 {
    padding: 107px 0;
  }
  .idx06 .title_wrap {
    font-size: min(0.78vw, 10px);
    position: sticky;
    top: calc(6em + var(--wrapper));
    left: 0;
    height: fit-content;
    padding-bottom: 102.8em;
    margin-bottom: 0;
  }
  .idx06 .title_wrap .en {
    text-indent: -6px;
    margin-bottom: 13px;
  }
  .idx06 .title_wrap::after {
    position: absolute;
    width: 81.7em;
    bottom: 0;
    left: calc(50% - 47.1em);
  }
  .idx06 .content_wrap {
    display: flex;
  }
  .idx06 .content_wrap > * {
    width: 50%;
  }
  .idx06 .content_wrap ul {
    font-size: min(0.78vw, 10px);
    padding-top: 13px;
    padding-left: 40px;
  }
  .idx06 .content_wrap ul::before {
    content: "";
    position: absolute;
    width: 100vw;
    height: 250%;
    top: -40%;
    left: 0;
    background-color: #f9f9f9;
    z-index: -1;
  }
  .idx06 .content_wrap ul li:not(:last-child) {
    padding-bottom: 6.5em;
    margin-bottom: 6.6em;
  }
  .idx06 .content_wrap ul li .img {
    margin-bottom: 21px;
  }
  .idx06 .content_wrap ul li .img img {
    border-radius: 15px;
  }
  .idx06 .content_wrap ul li .img::after {
    font-size: clamp(58px, 7.5vw, 80px);
  }
  .idx06 .content_wrap ul li .txt p:not(:last-child) {
    margin-bottom: 1.125em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 992px) {
  .idx06 {
    padding: 80px 0;
  }
}

.idx_step {
  position: relative;
  mask: url(../images/wave_decor.png) repeat-x top left/100% auto, linear-gradient(#000 0 0) bottom center/100% calc(round(up, 100%, 1px) - round(18vw, 1px)) no-repeat;
  -webkit-mask: url(../images/wave_decor.png) repeat-x top left/100% auto, linear-gradient(#000 0 0) bottom center/100% calc(round(up, 100%, 1px) - round(18vw, 1px)) no-repeat;
  z-index: 0;
}
.idx_step::before, .idx_step::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
}
.idx_step::after {
  background-color: #7b7e80;
  mix-blend-mode: multiply;
}
.idx_step::before {
  background: url(../images/idx07_bg.jpg) no-repeat top center/150% auto;
  filter: blur(15px);
  opacity: 0.7;
}

.idx07 .title_wrap {
  text-align: center;
}
.idx07 .step_list {
  counter-reset: item;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  z-index: 1;
  margin: 0 auto;
}
.idx07 .step_list > * {
  width: var(--w);
}
.idx07 .step_list .item {
  counter-increment: item;
  position: relative;
  border-radius: 999em;
  border: 1px solid #fff;
}
.idx07 .step_list .item .txt {
  position: relative;
}
.idx07 .step_list .item .txt::before {
  content: "";
  position: relative;
  display: block;
  aspect-ratio: 1/1;
  margin: 0 auto;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.idx07 .step_list .item .txt .step {
  position: relative;
  font-family: var(--f-en);
  font-weight: 500;
  letter-spacing: 0.085em;
  text-transform: uppercase;
  color: #fff;
  text-align: center;
}
.idx07 .step_list .item .txt .step::after {
  content: counter(item, decimal-leading-zero);
  margin-left: 0.3125em;
}
.idx07 .step_list .item .txt .ttl {
  font-family: var(--f-jp);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.4761904762;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.idx07 .step_list .item .txt .desc {
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.08em;
  color: #fff;
}
.idx07 .step_list .item1 .txt::before {
  background-image: url(../images/idx07_ico1.png);
}
.idx07 .step_list .item2 .txt::before {
  background-image: url(../images/idx07_ico2.png);
}
.idx07 .step_list .item3 .txt::before {
  background-image: url(../images/idx07_ico3.png);
}
.idx07 .step_list .item4 .txt::before {
  background-image: url(../images/idx07_ico4.png);
}
.idx07 .step_list .item5 .txt::before {
  background-image: url(../images/idx07_ico5.png);
}
.idx07 .step_list .item6 .txt::before {
  background-image: url(../images/idx07_ico6.png);
}
.idx07 .step_list .item7 .txt::before {
  background-image: url(../images/idx07_ico7.png);
}
.idx07 .link_btn {
  display: flex;
  align-self: center;
  justify-content: center;
}
.idx07 .link_btn a {
  position: relative;
  aspect-ratio: 1/1;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-jp);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-decoration: none;
  line-height: 1.5;
  color: var(--main-color);
  opacity: 1;
  z-index: 0;
}
.idx07 .link_btn a picture {
  position: absolute;
  inset: 0;
  z-index: -1;
  transition: all 0.4s ease;
}
.idx07 .link_btn a picture img {
  -webkit-animation: Rotation 36s infinite linear;
  animation: Rotation 36s infinite linear;
}
.idx07 .link_btn a::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: scale(0.75);
  border-radius: inherit;
  background-color: #fff;
  z-index: -1;
  transition: all 0.4s ease;
}
.idx07 .link_btn a span {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  text-align: center;
  padding-top: 0.6818em;
  gap: 0.5455em;
}
.idx07 .link_btn a span::after {
  content: "";
  display: block;
  width: round(1.5909em, 1px);
  aspect-ratio: 1/1;
  background: url("../images/ico_arrow06.png") no-repeat center/cover;
}
@keyframes Rotation {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@media only screen and (min-width: 769px) {
  .idx07 {
    margin-top: -123px;
    padding-top: round(21.8vw, 1px);
  }
  .idx07 .title_wrap {
    margin-bottom: 4.1875em;
  }
  .idx07 .title_wrap .en {
    margin-bottom: 0.1238em;
  }
  .idx07 .step_list {
    font-size: min(0.845vw, 10px);
    --spc: 4em;
    --w: 24em;
    max-width: 108em;
    gap: 7em var(--spc);
  }
  .idx07 .step_list .item {
    min-height: 40em;
    padding: 4.4em 2em;
  }
}
@media only screen and (min-width: 1281px) {
  .idx07::before {
    background-size: max(1920px, 100%) auto;
  }
  .idx07 {
    padding: round(max(21.8vw, 279px), 1px) 0 0;
  }
}
@media only screen and (min-width: 769px) {
  .idx07 .step_list .item {
    padding: 5.4em 1.8em;
  }
  .idx07 .step_list .item .txt::before {
    width: round(6.6em, 1px);
    margin-bottom: 1.4em;
  }
  .idx07 .step_list .item .txt .step {
    font-size: 1.6em;
    margin-bottom: 0.25em;
  }
  .idx07 .step_list .item .txt .ttl {
    font-size: 2.1em;
    min-height: 2.9524em;
    margin-bottom: 0.8571em;
  }
  .idx07 .step_list .item .txt .desc {
    font-size: max(12px, 1.4em);
  }
  .idx07 .step_list .item:not(.item4, .item7)::after {
    content: "";
    position: absolute;
    width: round(3.5em, 1px);
    height: round(1em, 1px);
    top: calc(50% - 0.5em);
    left: calc(100% - 0.4em);
    background: url("../images/ico_step_arrow01.png") no-repeat center/cover;
  }
  .idx07 .step_list .item4::before {
    content: "";
    position: absolute;
    width: 1em;
    aspect-ratio: 10/41;
    top: calc(100% - 0.4em);
    right: calc(var(--w) / 2 - 0.6em);
    background: url("../images/ico_step_arrow02.png") no-repeat top center/auto 100%;
  }
  .idx07 .step_list .item4::after {
    content: "";
    position: absolute;
    width: calc(var(--w) * 3 + var(--spc) * 3);
    height: 1px;
    top: calc(100% + 3.6em);
    right: calc(var(--w) / 2 - 0.2em);
    background-color: #fff;
  }
  .idx07 .step_list .item5::before {
    content: "";
    position: absolute;
    width: 0.7em;
    aspect-ratio: 7/26;
    bottom: calc(100% + 1em);
    left: calc(var(--w) / 2 - 0.4em);
    background: url("../images/ico_step_arrow03.png") no-repeat bottom center/auto 100%;
  }
  .idx07 .link_btn a {
    width: 10.1818em;
    font-size: 2.2em;
  }
  .idx07 .link_btn a:hover picture {
    transform: scale(0);
  }
  .idx07 .link_btn a:hover::after {
    transform: scale(1);
  }
}

.idx08 {
  position: relative;
  z-index: 0;
}
.idx08::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  z-index: -2;
}
.idx08 .title_wrap {
  display: table;
  position: relative;
  text-align: center;
  margin: 0 auto;
}
.idx08 .title_wrap h2 {
  font-weight: 900;
}
.idx08 .about_list {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  z-index: 0;
}
.idx08 .about_list::after {
  content: "";
  position: absolute;
  aspect-ratio: 542/461;
  background: url("../images/idx08_decor01.png") no-repeat center/cover;
  z-index: -1;
}
.idx08 .about_list .item {
  position: relative;
}
.idx08 .about_list .item1 .txt {
  background-image: url(../images/idx08_item1.png);
}
.idx08 .about_list .item2 .txt {
  background-image: url(../images/idx08_item2.png);
}
.idx08 .about_list .item3 .txt {
  background-image: url(../images/idx08_item3.png);
}
.idx08 .about_list .item4 .txt {
  background-image: url(../images/idx08_item4.png);
}
.idx08 .about_list .txt {
  font-family: var(--f-jp);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--main-color);
  aspect-ratio: 237/178;
  display: flex;
  justify-content: center;
  align-items: center;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.idx08 .banner_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.idx08 .banner_list li {
  position: relative;
}
.idx08 .banner_list li:not(.banner_line) {
  background-color: #fff;
  filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.05));
}
.idx08 .banner_list li:not(.banner_line) a {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: var(--main-color);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.4;
}
.idx08 .banner_list li:not(.banner_line) a::after {
  content: "";
  position: absolute;
  width: round(1.5909em, 1px);
  aspect-ratio: 1/1;
  top: calc(50% - 0.7727em);
  right: 1.3636em;
  background: url("../images/ico_arrow06.png") no-repeat center/cover;
}
.idx08 .banner_list li:not(.banner_line) a .ttl {
  position: relative;
  padding-left: 3.4545em;
  width: 100%;
}
.idx08 .banner_list li:not(.banner_line) a .ttl::before {
  content: "";
  position: absolute;
  width: round(2.5em, 1px);
  aspect-ratio: 1/1;
  top: 0.0909em;
  left: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.idx08 .banner_list li:not(.banner_line) a .en {
  font-size: 1.0909em;
  font-weight: 600;
  letter-spacing: 0;
}
.idx08 .banner_list .banner_mail a .ttl::before {
  background-image: url(../images/ico_mail.png);
}
.idx08 .banner_list .banner_whatsapp a .ttl::before {
  background-image: url(../images/ico_whatsapp.png);
}
.idx08 .banner_list .banner_line {
  width: 100%;
  max-width: 1100px;
  background-color: var(--clr3);
  margin: 0 auto;
  filter: drop-shadow(5px 5px 5px rgba(0, 0, 0, 0.1));
}
.idx08 .banner_list .banner_line .area {
  position: relative;
  width: 100%;
  height: 100%;
  background: url(../images/banner_line_bg.png) repeat top left/10px auto #fff;
  z-index: 0;
}
.idx08 .banner_list .banner_line .area::after {
  content: "";
  aspect-ratio: 305/260;
  background: url("../images/idx08_decor02.png") no-repeat center/cover;
  z-index: -1px;
}
.idx08 .banner_list .banner_line .txt {
  position: relative;
}
.idx08 .banner_list .banner_line .txt::before {
  content: "";
  position: absolute;
  aspect-ratio: 1/1;
  background: url("../images/ico_line_big.png") no-repeat center/cover;
}
.idx08 .banner_list .banner_line .ttl {
  font-weight: 900;
  line-height: 1.49375;
  letter-spacing: 0.1em;
  color: var(--clr3);
}
.idx08 .banner_list .banner_line .ttl .en {
  position: relative;
  font-size: 1.3977em;
  font-weight: 700;
  letter-spacing: 0;
  margin-right: 0.0537em;
  top: 0.0358em;
}
.idx08 .banner_list .banner_line .desc {
  font-weight: 900;
  color: var(--clr3);
  line-height: 1.5341666667;
  letter-spacing: 0.1em;
}
.idx08 .banner_list .banner_line .btn {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  background-color: var(--clr3);
  color: #fff;
  font-family: var(--f-en);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.085em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 0.75em;
  padding-left: 0.625em;
}
.idx08 .banner_list .banner_line .btn span {
  position: relative;
  padding-right: 1.75em;
}
.idx08 .banner_list .banner_line .btn span::after {
  content: "";
  position: absolute;
  width: 0.6875em;
  aspect-ratio: 11/10;
  top: calc(50% - 0.3125em);
  right: 0em;
  background: url("../images/ico_arrow05.png") no-repeat center/cover;
}
@media only screen and (min-width: 769px) {
  .idx08 {
    padding: 120px 0;
  }
  .idx08::after {
    top: -120px;
    height: calc(100% + 120px);
    background-image: linear-gradient(180deg, rgba(247, 243, 239, 0) 22px, rgb(247, 243, 239) 320px);
  }
  .idx08 .title_wrap {
    font-size: 0.625em;
    padding: 3.9em 10.8em;
  }
  .idx08 .title_wrap::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 75.4em;
    aspect-ratio: 754/130;
    background: url("../images/idx08_title_decor.png") no-repeat center/cover;
    z-index: -1;
  }
  .idx08 .title_wrap h2 {
    font-size: 3.5em;
  }
  .idx08 .about_list {
    font-size: min(0.78vw, 10px);
    margin-top: -2.5em;
    margin-bottom: -3.4em;
    justify-content: space-between;
  }
  .idx08 .about_list::after {
    width: 54.2em;
    bottom: -16.8em;
    left: calc(50% - 27.1em);
  }
  .idx08 .about_list .item {
    width: 50%;
  }
  .idx08 .about_list .item:nth-child(even) .txt {
    margin-left: auto;
  }
  .idx08 .about_list .item1 .txt {
    padding-bottom: 0.5455em;
  }
  .idx08 .about_list .item2 {
    top: -1.2em;
    right: -0.4em;
  }
  .idx08 .about_list .item2 .txt {
    padding-bottom: 0px;
  }
  .idx08 .about_list .item3 {
    top: -5.2em;
    left: 11.4em;
  }
  .idx08 .about_list .item4 {
    top: -5.5em;
    right: 12.7em;
  }
  .idx08 .about_list .item4 .txt {
    padding-top: 0.4545em;
  }
  .idx08 .about_list .txt {
    font-size: 2.2em;
    width: 10.7727em;
  }
  .idx08 .banner_list {
    font-size: min(0.875vw, 10px);
    gap: 4em 2.55em;
  }
  .idx08 .banner_list li {
    transition: all 0.3s linear;
  }
  .idx08 .banner_list li:hover {
    filter: none;
    transform: translateY(5px);
  }
  .idx08 .banner_list li:not(.banner_line) {
    width: calc(50% - 1.275em);
    max-width: 36em;
    min-height: 11em;
    border-radius: 15px;
  }
  .idx08 .banner_list li:not(.banner_line) a {
    font-size: 2.2em;
    padding: 0.6818em 1.8182em;
  }
  .idx08 .banner_list li:not(.banner_line) a:hover {
    opacity: 1;
  }
  .idx08 .banner_list .banner_line {
    border-radius: 20px;
    padding: 1em;
  }
  .idx08 .banner_list .banner_line .area {
    border-radius: 15px;
    padding: 4.3em 8em 5.6em;
  }
  .idx08 .banner_list .banner_line .area::after {
    position: absolute;
    width: 30.5em;
    top: 0;
    right: 0;
  }
  .idx08 .banner_list .banner_line .txt {
    padding-left: 18.5em;
  }
  .idx08 .banner_list .banner_line .txt::before {
    width: round(14.5em, 1px);
    top: 1.4em;
    left: 0;
  }
  .idx08 .banner_list .banner_line .ttl {
    font-size: 4em;
    margin-bottom: 0.1em;
  }
  .idx08 .banner_list .banner_line .desc {
    font-size: 2.4em;
  }
  .idx08 .banner_list .banner_line .btn {
    font-size: 1.6em;
    width: 11.1875em;
    height: 2.125em;
    border-top-left-radius: 20px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 992px) {
  .idx08 {
    padding: 100px 0;
  }
  .idx08::after {
    top: -100px;
    height: calc(100% + 100px);
  }
  .idx08 .title_wrap {
    margin-bottom: 30px;
  }
}

.idx_gallery {
  position: relative;
  background-color: var(--clr4);
}
@media only screen and (min-width: 769px) {
  .idx_gallery .list picture {
    max-width: clamp(180px, 22vw, 270px);
    margin: 0 7.5px;
  }
  .idx_gallery .list picture img {
    border-radius: 15px;
  }
  .idx_gallery01 {
    padding-bottom: 15px;
  }
  .idx_gallery02 {
    z-index: 0;
    padding-bottom: 50px;
  }
  .idx_gallery02::after {
    content: "";
    position: absolute;
    top: 100%;
    width: 100%;
    height: 100%;
    background-color: var(--clr4);
    z-index: -1;
  }
}

.idx09 {
  position: relative;
  z-index: 0;
}
.idx09 .wrap {
  position: relative;
}
.idx09 .wrap::before {
  content: "";
  position: absolute;
  width: 35.3em;
  aspect-ratio: 353/57;
  top: 9.6em;
  background: url("../images/idx09_decor01.png") no-repeat center/cover;
}
.idx09::after {
  content: "";
  position: absolute;
  width: 100%;
  height: calc(100% + var(--mt) + 10vw);
  top: calc(var(--mt) * -1);
  mask: url(../images/idx09_bg_decor.png) no-repeat top center/100% auto, linear-gradient(#000 0 0) bottom center/100% calc(round(up, 100%, 1px) - 18vw) no-repeat;
  -webkit-mask: url(../images/idx09_bg_decor.png) no-repeat top center/100% auto, linear-gradient(#000 0 0) bottom center/100% calc(round(up, 100%, 1px) - 18vw) no-repeat;
  background: url(../images/idx09_bg.jpg) repeat top left/1280px auto;
  z-index: -1;
}
.idx09 .title_wrap {
  text-align: center;
}
.idx09 .post_list {
  position: relative;
  display: flex;
  z-index: 0;
}
.idx09 .post_list::after {
  content: "";
  position: absolute;
  width: 25.2em;
  aspect-ratio: 252/183;
  top: calc(100% - 4.1em);
  right: -2.8em;
  background: url("../images/idx09_decor02.png") no-repeat center/cover;
  z-index: -1;
}
.idx09 .post_list li {
  background-color: #fff;
  max-width: 320px;
}
.idx09 .post_list li .thumbnail {
  overflow: hidden;
}
.idx09 .post_list li .thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.idx09 .post_list li a {
  color: var(--main-color);
  text-decoration: none;
}
.idx09 .post_list li .content {
  display: block;
}
.idx09 .post_list li .date {
  display: block;
  font-family: var(--f-en);
  font-weight: 500;
  letter-spacing: 0;
}
.idx09 .post_list li .ttl {
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.7;
  max-width: 100%;
  display: inline-block;
  width: 100%;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.idx09 .btn-group {
  margin: 0 auto;
}
@media only screen and (min-width: 769px) {
  .idx09 {
    --mt: min(8.6vw, 110px);
    margin-top: calc(min(5.86vw, 75px) * -1);
    padding-bottom: 200px;
  }
  .idx09 .wrap::before {
    font-size: min(0.785vw, 10px);
    left: -8em;
  }
  .idx09 .title_wrap {
    margin-bottom: 4.1875em;
  }
  .idx09 .title_wrap .en {
    margin-bottom: 12px;
  }
  .idx09 .post_list {
    font-size: 0.625em;
    padding: 0 3.5em;
    gap: 2.5em;
    margin-bottom: 50px;
  }
  .idx09 .post_list::after {
    font-size: min(0.785vw, 10px);
  }
  .idx09 .post_list li {
    border-radius: 20px;
    width: calc((100% - 5em) / 3);
    padding: 2em 2em 3.4em;
  }
  .idx09 .post_list li .thumbnail {
    border-radius: 15px;
    height: min(15.625vw, 200px);
    margin-bottom: 2.1em;
  }
  .idx09 .post_list li:hover {
    background-color: #f8fcff;
  }
  .idx09 .post_list li:hover a {
    opacity: 1;
  }
  .idx09 .post_list li .content {
    padding: 0 1em;
  }
  .idx09 .post_list li .date {
    font-size: 1.4em;
    margin-bottom: 0.4286em;
  }
  .idx09 .post_list li .ttl {
    font-size: 1.8em;
  }
  .idx09 .btn-group {
    max-width: 14em;
  }
}

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