@charset "UTF-8";
.pc {
  display: block;
}
@media only screen and (max-width: 767px) {
  .pc {
    display: none;
  }
}

.sp {
  display: none;
}
@media only screen and (max-width: 767px) {
  .sp {
    display: block;
  }
}

img {
  width: 100%;
  height: auto;
}

picture {
  display: block;
}

a:hover {
  transition: 0.3s;
}

@keyframes drop_scroll {
  0% {
    opacity: 0;
  }
  30% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  80% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
.bg_01 {
  position: relative;
  background: linear-gradient(90deg, rgb(239, 249, 253) 56%, rgb(222, 239, 248));
}
.bg_01.pt {
  padding-top: min(42.727vw, 470px);
}
@media only screen and (max-width: 767px) {
  .bg_01.pt {
    padding-top: 38.462vw;
  }
}
.bg_01::before {
  position: absolute;
  display: inline-block;
  content: "";
  mix-blend-mode: soft-light;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  background: url(../img/noiz.png) repeat;
  z-index: 0;
}
@media only screen and (max-width: 767px) {
  .bg_01::before {
    background-size: 70%;
  }
}
.bg_01_texture {
  position: relative;
  z-index: 1;
}

html, body {
  overflow-x: hidden;
}

html.no_scroll {
  overflow: clip;
  overscroll-behavior: none;
}

.header {
  font-family: "YakuHanJP", "Noto Sans JP", sans-serif;
  font-weight: 500;
  position: relative;
  background: #7CBBD2;
  padding: 0 0 0 min(25.455vw, 280px);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 999;
}
@media screen and (max-width: 1440px) {
  .header {
    padding-left: min(18.182vw, 200px);
  }
}
@media only screen and (max-width: 767px) {
  .header {
    position: initial;
    background: none;
    padding: 0;
  }
}
@media only screen and (max-width: 970px) {
  .header_inner {
    gap: 0 min(5.455vw, 60px);
  }
}
@media only screen and (max-width: 767px) {
  .header_inner {
    display: block;
  }
}
.header_logo {
  position: absolute;
  width: min(16vw, 176px);
  height: min(11.455vw, 126px);
  top: 0;
  left: -3px;
}
.header_logo.scroll_no_active {
  display: none;
}
@media only screen and (max-width: 767px) {
  .header_logo.scroll_no_active {
    display: block;
  }
}
.header_logo.scroll_active {
  display: none;
  padding-left: min(2.273vw, 25px);
}
@media only screen and (max-width: 767px) {
  .header_logo.scroll_active {
    display: none;
  }
}
@media screen and (max-width: 1440px) {
  .header_logo {
    width: min(13.636vw, 150px);
  }
}
@media only screen and (max-width: 767px) {
  .header_logo {
    width: 28.205vw;
    height: 17.949vw;
    z-index: 11;
  }
}
.header_logo a {
  display: block;
}
.header .header_list_block {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0 min(10vw, 110px);
}
@media only screen and (max-width: 1200px) {
  .header .header_list_block {
    gap: 0 min(8.182vw, 90px);
  }
}
@media only screen and (max-width: 970px) {
  .header .header_list_block {
    gap: 0 min(5.455vw, 60px);
  }
}
@media only screen and (max-width: 767px) {
  .header .header_list_block {
    display: none;
    padding: 43.59vw 0 10.256vw;
    background: linear-gradient(180deg, #EFF9FD -10.56%, #DFF0F8 106.67%);
  }
}
.header .header_list_block_logo {
  display: none;
}
@media only screen and (max-width: 767px) {
  .header .header_list_block_logo {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 101;
    width: 36.923vw;
    height: 26.667vw;
    display: block;
  }
}
.header ul.header_list {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: min(0vw, 0px) min(0vw, 0px) min(0vw, 0px) min(0vw, 0px);
  gap: 0 min(7.273vw, 80px);
}
@media only screen and (max-width: 767px) {
  .header ul.header_list {
    display: none;
    padding: 0vw 0 3.846vw;
  }
}
.header ul.header_list li a {
  position: relative;
  font-size: min(1.818vw, 20px);
  white-space: nowrap;
  font-weight: 600;
  color: #fff;
}
@media screen and (max-width: 1440px) {
  .header ul.header_list li a {
    font-size: min(1.636vw, 18px);
  }
}
@media only screen and (max-width: 970px) {
  .header ul.header_list li a {
    font-size: min(1.455vw, 16px);
  }
}
@media only screen and (max-width: 767px) {
  .header ul.header_list li a {
    font-size: 6.154vw;
    display: block;
    color: #3682C8;
  }
}
.header ul.header_list li a:hover {
  opacity: 0.7;
  transition: 0.3s;
}
.header ul.header_list li a::before {
  left: -18px;
  top: 0;
  bottom: 0;
  margin: auto 0;
  width: min(1vw, 11px);
  height: min(1.818vw, 20px);
  position: absolute;
  display: inline-block;
  content: "";
  background: url(../img/icon_drop.svg) no-repeat center bottom;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  .header ul.header_list li a::before {
    width: 100%;
    height: 12.821vw;
    top: -8.974vw;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
.header ul.header_list li a::after {
  right: -25px;
  bottom: min(0.636vw, 7px);
  width: 18px;
  height: 8px;
  position: absolute;
  display: inline-block;
  content: "";
  background: url(../img/arrow_nav.svg) no-repeat center bottom;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  .header ul.header_list li a::after {
    display: none;
  }
}
@media only screen and (max-width: 767px) {
  .header ul.header_list li {
    text-align: center;
    margin-bottom: 14.103vw;
  }
  .header ul.header_list li:first-of-type a::before {
    width: 66.667vw;
    background: url(../img/header_menu01.png) no-repeat center;
    background-size: contain;
  }
  .header ul.header_list li:nth-of-type(2) a::before {
    width: 71.795vw;
    background: url(../img/header_menu02.png) no-repeat center;
    background-size: contain;
  }
  .header ul.header_list li:nth-of-type(3) a::before {
    width: 72.308vw;
    background: url(../img/header_menu03.png) no-repeat center;
    background-size: contain;
  }
  .header ul.header_list li:nth-of-type(4) a::before {
    width: 55.641vw;
    background: url(../img/header_menu04.png) no-repeat center;
    background-size: contain;
  }
  .header ul.header_list li:nth-of-type(5) a::before {
    width: 56.923vw;
    background: url(../img/header_menu05.png) no-repeat center;
    background-size: contain;
  }
}
.header .link_btn {
  width: min(36.364vw, 400px);
  height: min(6.727vw, 74px);
  border-radius: 100vh 0 0 100vh;
  background: linear-gradient(180deg, #428ACD -10.56%, #0164C2 106.67%);
}
.header .link_btn:hover {
  opacity: 0.7;
  transition: 0.3s;
}
@media screen and (max-width: 1440px) {
  .header .link_btn {
    width: min(30vw, 330px);
  }
}
@media only screen and (max-width: 767px) {
  .header .link_btn {
    width: 89.744vw;
    height: 13.846vw;
    margin: 0 auto;
    border-radius: 100vh;
  }
}
.header .link_btn a {
  position: relative;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  height: 100%;
  font-size: min(2.182vw, 24px);
  color: #fff;
  font-weight: 600;
  padding: min(0vw, 0px) min(0vw, 0px) min(0vw, 0px) min(7.273vw, 80px);
}
@media screen and (max-width: 1440px) {
  .header .link_btn a {
    padding-left: min(3.636vw, 40px);
    font-size: min(2vw, 22px);
  }
}
@media only screen and (max-width: 767px) {
  .header .link_btn a {
    justify-content: center;
    font-size: 5.641vw;
    padding-left: 0;
  }
}
.header .link_btn a span {
  position: relative;
}
.header .link_btn a span.arrow::before {
  position: absolute;
  position: absolute;
  display: inline-block;
  content: "";
  right: -20px;
  top: 0;
  bottom: 0;
  margin: auto 0;
  width: 10px;
  height: 12px;
  background: #fff;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
@media only screen and (max-width: 767px) {
  .header .link_btn a span.arrow::before {
    width: 3vw;
    height: 4vw;
    right: -5vw;
  }
}
.header_menu {
  display: none;
}
@media only screen and (max-width: 767px) {
  .header_menu {
    pointer-events: auto;
    position: fixed;
    right: 3.59vw;
    top: 4.103vw;
    width: 15.385vw;
    height: 18.974vw;
    background: url(../img/header_menu_drop.svg) no-repeat center;
    background-size: contain;
    z-index: 9999;
  }
}
.header_menu_hamburger {
  padding-top: 3vw;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  align-items: center;
}
.header_menu_hamburger_inner {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  gap: 2vw 0;
}
.header_menu_hamburger_block {
  position: relative;
  width: 7.692vw;
  height: 3.59vw;
  text-align: center;
  margin: 0 auto;
}
.header_menu_hamburger-span {
  position: absolute;
  display: inline-block;
  width: 100%;
  height: 0.513vw;
  background: #fff;
  left: 0;
  transition: all 0.3s;
}
.header_menu_hamburger-span:first-of-type {
  top: 0;
}
.header_menu_hamburger-span:nth-of-type(2) {
  opacity: 1;
  top: 0;
  bottom: 0;
  margin: auto 0;
}
.header_menu_hamburger-span:last-of-type {
  bottom: 0;
}
.header_menu_hamburger_text {
  font-size: 2.564vw;
  text-align: center;
  font-weight: 600;
  line-height: 1;
  color: #fff;
}
.header.on .link_btn {
  height: min(6.182vw, 68px);
}
.header.on ul.header_list li a {
  font-size: min(1.636vw, 18px);
}
@media only screen and (max-width: 767px) {
  .header.active .header_list_block {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    display: block;
    overflow-y: scroll;
    z-index: 100;
  }
  .header.active .header_menu_hamburger-span:first-of-type {
    top: 2vw;
    transform: rotate(30deg);
  }
  .header.active .header_menu_hamburger-span:nth-of-type(2) {
    opacity: 0;
  }
  .header.active .header_menu_hamburger-span:last-of-type {
    bottom: 1vw;
    transform: rotate(-30deg);
  }
  .header.active ul.header_list {
    display: block;
  }
}

main {
  padding-top: min(6.727vw, 74px);
  font-family: "YakuHanJP", "Noto Sans JP", sans-serif;
  font-weight: 500;
  color: #333333;
}
@media only screen and (max-width: 767px) {
  main {
    padding-top: 0;
  }
}
main #content .kv {
  background: url(../img/kv_bg.png) no-repeat center bottom;
  background-size: cover;
}
@media only screen and (max-width: 767px) {
  main #content .kv {
    background: url(../img/kv_bg_sp.png) no-repeat center top;
    background-size: cover;
  }
}
main #content .kv_inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 2000px;
  margin: 0 auto;
  background: url(../img/kv.png) no-repeat center bottom;
  background-size: 2000px auto;
  padding: 0 0 min(30.909vw, 340px);
}
@media only screen and (max-width: 1440px) {
  main #content .kv_inner {
    background: url(../img/kv_1440.png) no-repeat center top;
    background-size: 1440px auto;
  }
}
@media only screen and (max-width: 1100px) {
  main #content .kv_inner {
    background-size: 130% auto;
  }
}
@media only screen and (max-width: 767px) {
  main #content .kv_inner {
    background: url(../img/kv_sp.png) no-repeat center top;
    background-size: contain;
    padding-bottom: 50vw;
  }
}
main #content .kv_logo {
  width: min(49.636vw, 546px);
  padding: min(8.182vw, 90px) 0 0 0;
  margin: 0 auto;
}
@media only screen and (max-width: 767px) {
  main #content .kv_logo {
    width: 100%;
    padding: 41.026vw 8.974vw 0;
  }
}
main #content .kv_scroll {
  padding: min(4.545vw, 50px) 0 0;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  main #content .kv_scroll {
    padding-top: 35.897vw;
  }
}
main #content .kv_scroll p {
  font-size: min(1.636vw, 18px);
  font-weight: 500;
  color: #7CBBD2;
}
@media only screen and (max-width: 767px) {
  main #content .kv_scroll p {
    font-size: 3.59vw;
  }
}
main #content .kv_scroll_drop {
  display: inline-block;
  margin: 0 auto;
  margin-top: min(1.364vw, 15px);
}
@media only screen and (max-width: 767px) {
  main #content .kv_scroll_drop {
    margin-top: 2.564vw;
  }
}
main #content .kv_scroll_drop li {
  opacity: 0;
  content: "";
  display: block;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0 auto;
  margin-top: min(0.909vw, 10px);
  width: min(1vw, 11px);
  height: min(1.636vw, 18px);
  background: url(../img/icon_drop02.svg) no-repeat;
  background-size: contain;
  animation: drop_scroll 3s infinite ease-in;
}
main #content .kv_scroll_drop li:first-child {
  animation-delay: 0s;
}
main #content .kv_scroll_drop li:nth-child(2) {
  animation-delay: 1s;
}
main #content .kv_scroll_drop li:nth-child(3) {
  animation-delay: 2s;
}
@media only screen and (max-width: 767px) {
  main #content .kv_scroll_drop li {
    width: 2.051vw;
    height: 3.333vw;
    margin-top: 2.5vw;
  }
}
main #content .kv_lead {
  font-family: "Shippori Mincho", serif;
  font-size: min(1.818vw, 20px);
  text-align: center;
  line-height: 2.5;
  color: #40A8CD;
  font-weight: 500;
  padding: min(6.364vw, 70px) min(0vw, 0px) min(5.455vw, 60px);
}
@media only screen and (max-width: 767px) {
  main #content .kv_lead {
    font-size: 3.846vw;
    line-height: 2;
    font-weight: 600;
    padding: 19.231vw 0vw 5.128vw;
  }
}
main #content .kv_lead_main {
  font-family: "Shippori Mincho", serif;
  padding-left: min(2.727vw, 30px);
  font-size: min(3.636vw, 40px);
  text-align: center;
  line-height: 1.7;
  color: #40A8CD;
  font-weight: 400;
  font-style: normal;
}
@media only screen and (max-width: 767px) {
  main #content .kv_lead_main {
    position: relative;
    font-size: 6.154vw;
    padding-left: 2vw;
    font-weight: 500;
    line-height: 1.6;
  }
  main #content .kv_lead_main::before {
    position: absolute;
    display: inline-block;
    content: "";
    width: 100vw;
    height: 46.154vw;
    left: 0;
    bottom: -45vw;
    background: url(../img/kv_photo_sp.png) no-repeat center;
    background-size: contain;
  }
}
main #content section .inner {
  max-width: 1100px;
  padding: 0 50px min(20vw, 220px);
  width: 100%;
  margin: 0 auto;
}
@media only screen and (max-width: 767px) {
  main #content section .inner {
    max-width: 100%;
    padding: 0 5.128vw 20.513vw;
  }
}
main #content section h3.section_title {
  position: relative;
  font-size: min(5.455vw, 60px);
  color: #3682C8;
  font-weight: 600;
  margin-bottom: min(11.818vw, 130px);
  text-align: center;
}
@media only screen and (max-width: 767px) {
  main #content section h3.section_title {
    font-size: 7.692vw;
    margin-bottom: 12.821vw;
  }
}
main #content section h3.section_title::before {
  height: min(18.182vw, 200px);
  left: 0;
  right: 0;
  margin: 0 auto;
  top: -140px;
  position: absolute;
  display: inline-block;
  content: "";
}
@media screen and (max-width: 1440px) {
  main #content section h3.section_title::before {
    top: -190%;
  }
}
@media only screen and (max-width: 767px) {
  main #content section h3.section_title::before {
    top: -10vw;
  }
}
main #content section h3.section_title::after {
  width: min(2.545vw, 28px);
  height: min(4.091vw, 45px);
  left: 0;
  right: 0;
  margin: 0 auto;
  bottom: -60px;
  position: absolute;
  display: inline-block;
  content: "";
  background: url(../img/title_drop.svg) no-repeat center;
  background-size: contain;
}
@media screen and (max-width: 1440px) {
  main #content section h3.section_title::after {
    bottom: -80%;
  }
}
@media only screen and (max-width: 767px) {
  main #content section h3.section_title::after {
    width: 4.103vw;
    height: 6.41vw;
    bottom: -8vw;
  }
}
main #content .logo_area {
  position: relative;
}
main #content .logo_area::before {
  position: absolute;
  display: inline-block;
  content: "";
  width: 100%;
  height: 180px;
  top: -165px;
  left: 0%;
  right: 0;
  margin: 0 auto;
  background: url(../img/wave02_pc.png) repeat-x center bottom;
  background-size: cover;
  z-index: 0;
}
@media only screen and (max-width: 767px) {
  main #content .logo_area::before {
    width: 100vw;
    height: 30.769vw;
    top: -30.769vw;
    background: url(../img/wave_sp.png) no-repeat center;
    background-size: cover;
  }
}
main #content .logo_area .inner {
  position: relative;
  z-index: 1;
  padding-bottom: min(16.364vw, 180px);
}
@media only screen and (max-width: 767px) {
  main #content .logo_area .inner {
    padding-bottom: 16.667vw;
  }
}
main #content .logo_area_block {
  width: min(60.909vw, 670px);
  margin: 0 auto min(0vw, 0px);
}
@media only screen and (max-width: 767px) {
  main #content .logo_area_block {
    width: 100%;
    padding: 0 8.974vw;
  }
}
main #content .logo_area_block_25th {
  width: min(60.727vw, 668px);
  padding: min(2.727vw, 30px) min(0vw, 0px);
}
@media only screen and (max-width: 767px) {
  main #content .logo_area_block_25th {
    width: 100%;
    padding: 5vw 0;
  }
}
main #content .logo_area_block_flex {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  border-top: solid 2px #D5EAF6;
  padding: min(2.727vw, 30px) min(0vw, 0px);
  gap: 0 min(1.818vw, 20px);
}
@media only screen and (max-width: 767px) {
  main #content .logo_area_block_flex {
    padding: 5vw 0 0;
    gap: 0;
    justify-content: space-between;
  }
}
main #content .logo_area_block_flex_25year {
  width: min(21.364vw, 235px);
}
@media only screen and (max-width: 767px) {
  main #content .logo_area_block_flex_25year {
    width: 30.769vw;
  }
}
main #content .logo_area_block_flex_aqua {
  width: min(26.364vw, 290px);
}
@media only screen and (max-width: 767px) {
  main #content .logo_area_block_flex_aqua {
    width: 37.949vw;
  }
}
@media only screen and (max-width: 767px) {
  main #content .logo_area_drop {
    margin-top: 3vw;
  }
}
main #content .logo_area_drop li {
  content: "";
  display: block;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0 auto;
  margin-top: min(0.909vw, 10px);
  width: min(1vw, 11px);
  height: min(1.636vw, 18px);
  background: url(../img/icon_drop02.svg) no-repeat;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  main #content .logo_area_drop li {
    width: 2.051vw;
    height: 3.333vw;
    margin-top: 2.5vw;
  }
}
main #content .campaign h3.section_title::before {
  width: 105%;
  background: url(../img/campaign_title__en.png) no-repeat center;
  background-size: contain;
  left: 50%;
  transform: translateX(-50%);
}
@media only screen and (max-width: 767px) {
  main #content .campaign h3.section_title::before {
    width: 86.154vw;
  }
}
main #content .campaign_flex {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}
@media only screen and (max-width: 767px) {
  main #content .campaign_flex {
    display: block;
  }
}
main #content .campaign_block {
  width: calc(50% - min(1.818vw, 20px));
  border-radius: 20px;
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block {
    width: 100%;
  }
}
main #content .campaign_block.b01 {
  border: solid 2px #D5EAF6;
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block.b01 {
    margin-bottom: 3.846vw;
  }
}
main #content .campaign_block.b01 .campaign_block_ttl {
  color: #40A8CD;
  background: #D5EAF6;
}
main #content .campaign_block.b01 .campaign_block_ttl::before {
  background: #D5EAF6;
}
main #content .campaign_block.b01 .campaign_block_item_day::before {
  position: absolute;
  display: inline-block;
  content: "";
  width: min(1.273vw, 14px);
  height: min(2vw, 22px);
  left: 0;
  top: min(0vw, 0px);
  background: url(../img/campaign_drop01.svg) no-repeat center;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block.b01 .campaign_block_item_day::before {
    width: 2.564vw;
    height: 4.103vw;
  }
}
main #content .campaign_block.b01 .campaign_block_item_day,
main #content .campaign_block.b01 .campaign_block_item_ttl {
  color: #40A8CD;
}
main #content .campaign_block.b01 .campaign_block_item_btn {
  background: #40A8CD;
  border: solid 2px #40A8CD;
}
main #content .campaign_block.b01 .campaign_block_item_btn:hover {
  background: #fff;
}
main #content .campaign_block.b01 .campaign_block_item_btn:hover a {
  color: #40A8CD;
}
main #content .campaign_block.b01 .campaign_block_item_btn:hover a span::before {
  background: #40A8CD;
}
main #content .campaign_block.b02 {
  border: solid 2px #EDECC6;
}
main #content .campaign_block.b02 .campaign_block_ttl {
  color: #B5903D;
  background: #EDECC6;
}
main #content .campaign_block.b02 .campaign_block_ttl::before {
  background: #EDECC6;
}
main #content .campaign_block.b02 .campaign_block_item_day::before {
  position: absolute;
  display: inline-block;
  content: "";
  width: min(1.273vw, 14px);
  height: min(2vw, 22px);
  left: 0;
  top: min(0vw, 0px);
  background: url(../img/campaign_drop02.svg) no-repeat center;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block.b02 .campaign_block_item_day::before {
    width: 2.564vw;
    height: 4.103vw;
    top: 1vw;
  }
}
main #content .campaign_block.b02 .campaign_block_item_day,
main #content .campaign_block.b02 .campaign_block_item_ttl {
  color: #B5903D;
}
main #content .campaign_block.b02 .campaign_block_item_btn {
  background: #B5903D;
  border: solid 2px #B5903D;
}
main #content .campaign_block.b02 .campaign_block_item_btn:hover {
  background: #fff;
  transition: 0.3s;
}
main #content .campaign_block.b02 .campaign_block_item_btn:hover a {
  color: #B5903D;
}
main #content .campaign_block.b02 .campaign_block_item_btn:hover a span::before {
  background: #B5903D;
}
main #content .campaign_block_ttl {
  position: relative;
  padding: min(1.818vw, 20px) 0;
  font-size: min(2.545vw, 28px);
  font-weight: 600;
  text-align: center;
  border-radius: 18px 18px 0 0px;
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block_ttl {
    font-size: 4.615vw;
    padding: 3vw 0;
  }
}
main #content .campaign_block_ttl::before {
  position: absolute;
  position: absolute;
  display: inline-block;
  content: "";
  left: 0;
  right: 0;
  bottom: -18px;
  margin: 0 auto;
  width: min(3.182vw, 35px);
  height: min(1.727vw, 19px);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block_ttl::before {
    width: 6vw;
    height: 3vw;
    bottom: -2.7vw;
  }
}
main #content .campaign_block_ttl strong {
  font-size: min(3.091vw, 34px);
  font-weight: 600;
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block_ttl strong {
    font-size: 5.641vw;
  }
}
main #content .campaign_block_item {
  padding: min(4.545vw, 50px);
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block_item {
    padding: 7.692vw 6.41vw;
  }
}
main #content .campaign_block_item_thum {
  width: 100%;
  margin-bottom: min(2.727vw, 30px);
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block_item_thum {
    margin-bottom: 5vw;
  }
}
main #content .campaign_block_item_day {
  position: relative;
  font-size: min(1.636vw, 18px);
  padding-left: min(2.273vw, 25px);
  margin-bottom: min(2.727vw, 30px);
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block_item_day {
    margin-bottom: 2vw;
    font-size: 4.103vw;
    padding-left: 5vw;
  }
}
main #content .campaign_block_item_ttl {
  font-size: min(2.909vw, 32px);
  height: min(7.273vw, 80px);
  font-weight: 600;
  margin-bottom: min(0.909vw, 10px);
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block_item_ttl {
    font-size: 6.667vw;
    height: auto;
    margin-bottom: 3vw;
  }
}
main #content .campaign_block_item_exp {
  font-size: min(1.636vw, 18px);
  line-height: 1.5;
  margin-bottom: min(2.727vw, 30px);
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block_item_exp {
    font-size: 3.59vw;
    line-height: 1.6;
    margin-bottom: 6vw;
  }
}
main #content .campaign_block_item_btn {
  border-radius: 100vh;
}
main #content .campaign_block_item_btn a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: min(5.091vw, 56px);
  color: #fff;
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block_item_btn a {
    height: 10.769vw;
    padding-bottom: 1vw;
  }
}
main #content .campaign_block_item_btn a span {
  position: relative;
  font-weight: 600;
  font-size: min(1.818vw, 20px);
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block_item_btn a span {
    font-size: 4.103vw;
  }
}
main #content .campaign_block_item_btn a span::before {
  position: absolute;
  position: absolute;
  display: inline-block;
  content: "";
  right: -20px;
  top: 0;
  bottom: 0;
  margin: auto 0;
  width: 10px;
  height: 12px;
  background: #fff;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
@media only screen and (max-width: 767px) {
  main #content .campaign_block_item_btn a span::before {
    right: -5vw;
    top: 0.6vw;
    width: 2vw;
    height: 2.5vw;
  }
}
main #content .product h3.section_title::before {
  width: 105%;
  background: url(../img/product_title__en.png) no-repeat center;
  background-size: contain;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 1440px) {
  main #content .product h3.section_title::before {
    width: min(102.545vw, 1128px);
  }
}
@media only screen and (max-width: 767px) {
  main #content .product h3.section_title::before {
    width: 87.179vw;
  }
}
main #content .product_copy {
  margin-bottom: min(4.545vw, 50px);
}
@media only screen and (max-width: 767px) {
  main #content .product_copy {
    margin-bottom: 5vw;
  }
}
@media only screen and (max-width: 767px) {
  main #content .product_model {
    padding: 0 3vw;
  }
}
main #content .service {
  position: relative;
}
main #content .service .inner {
  position: relative;
  z-index: 2;
  padding-bottom: min(0vw, 0px);
}
main #content .service::after {
  position: absolute;
  display: inline-block;
  content: "";
  width: 100%;
  height: 180px;
  bottom: -175px;
  left: 0;
  right: 0;
  margin: 0 auto;
  z-index: 1;
  background: url(../img/wave01_pc.png) repeat-x center bottom;
  background-size: 2000px auto;
}
@media only screen and (max-width: 767px) {
  main #content .service::after {
    transform: scale(1, 1);
    height: 20.513vw;
    bottom: -16.667vw;
    background: url(../img/wave02_sp.png) no-repeat center bottom;
    background-size: cover;
  }
}
main #content .service h3.section_title {
  margin-bottom: min(7.273vw, 80px);
}
@media only screen and (max-width: 767px) {
  main #content .service h3.section_title {
    margin-bottom: 14.103vw;
  }
}
main #content .service h3.section_title::before {
  width: min(78.636vw, 865px);
  background: url(../img/service_title__en.png) no-repeat center;
  background-size: contain;
}
@media screen and (max-width: 1440px) {
  main #content .service h3.section_title::before {
    width: min(78.636vw, 865px);
  }
}
@media only screen and (max-width: 767px) {
  main #content .service h3.section_title::before {
    width: 66.667vw;
  }
}
main #content .service_block {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: min(4.545vw, 50px) 0;
}
@media only screen and (max-width: 767px) {
  main #content .service_block {
    display: block;
    padding: 7.692vw 0;
  }
}
main #content .service_block:first-of-type {
  border-bottom: solid 1px #D5EAF6;
}
@media only screen and (max-width: 767px) {
  main #content .service_block:first-of-type {
    padding-top: 0;
  }
}
main #content .service_block_thum {
  width: 42%;
  border: solid 1px #D5EAF6;
  border-radius: 10px;
}
@media only screen and (max-width: 767px) {
  main #content .service_block_thum {
    width: 100%;
  }
}
main #content .service_block_txt {
  width: 53%;
  padding-top: min(0.909vw, 10px);
}
@media only screen and (max-width: 767px) {
  main #content .service_block_txt {
    width: 100%;
    padding-top: 5vw;
  }
}
main #content .service_block_txt_ttl {
  color: #40A8CD;
  font-weight: 600;
  font-size: min(2.182vw, 24px);
  margin-bottom: min(1.818vw, 20px);
}
@media only screen and (max-width: 767px) {
  main #content .service_block_txt_ttl {
    font-size: 5.128vw;
    margin-bottom: 3vw;
  }
}
main #content .service_block_txt_ttl span {
  display: block;
  font-weight: 500;
  margin-bottom: min(0.909vw, 10px);
  font-size: min(1.636vw, 18px);
}
@media only screen and (max-width: 767px) {
  main #content .service_block_txt_ttl span {
    font-size: 3.59vw;
    margin-bottom: 2vw;
  }
}
main #content .service_block_txt_exp {
  font-size: min(1.455vw, 16px);
  line-height: 1.5;
}
@media only screen and (max-width: 767px) {
  main #content .service_block_txt_exp {
    font-size: 3.59vw;
  }
}
main #content .history {
  position: relative;
}
main #content .history h3.section_title::before {
  width: min(80.636vw, 887px);
  background: url(../img/history_title__en.png) no-repeat center;
  background-size: contain;
}
@media screen and (max-width: 1440px) {
  main #content .history h3.section_title::before {
    width: min(80.636vw, 887px);
  }
}
@media only screen and (max-width: 767px) {
  main #content .history h3.section_title::before {
    width: 68.205vw;
  }
}
main #content .history .inner {
  padding-bottom: min(18.182vw, 200px);
}
@media only screen and (max-width: 767px) {
  main #content .history .inner {
    padding-bottom: 17.949vw;
  }
}
main #content .history_area {
  margin-bottom: min(6.364vw, 70px);
  position: relative;
}
@media only screen and (max-width: 767px) {
  main #content .history_area {
    margin-bottom: 10.256vw;
    padding-top: 5vw;
  }
}
@media only screen and (max-width: 767px) {
  main #content .history_area .history_area_period {
    display: none !important;
  }
}
main #content .history_area .history_area_period.p_2 {
  right: -180px;
  top: 140px;
}
main #content .history_area .history_area_period.p_2_close {
  display: block;
  width: min(13.636vw, 150px);
  height: min(52.545vw, 578px);
}
main #content .history_area .history_area_period.p_2_open {
  display: none;
  width: min(13.636vw, 150px);
  height: min(170.182vw, 1872px);
}
main #content .history_area.open .history_area_period.p_2_close {
  display: none;
}
main #content .history_area.open .history_area_period.p_2_open {
  display: block;
}
main #content .history_area.open + .history_more_btn button::before {
  background: url(../img/icon_minus.svg) no-repeat;
  background-size: contain;
}
main #content .history_area.open + .history_more_btn:hover button::before {
  background: url(../img/icon_minus_hover.svg) no-repeat;
  background-size: contain;
}
main #content .history_area::before {
  position: absolute;
  display: inline-block;
  content: "";
  left: 0;
  right: 0;
  top: 0;
  margin: 0 auto;
  width: min(6.364vw, 70px);
  height: 100%;
  background: #D5EAF6;
  border-radius: 100vh;
}
@media only screen and (max-width: 767px) {
  main #content .history_area::before {
    width: 6.41vw;
    right: auto;
  }
}
main #content .history_area_period {
  position: absolute;
}
main #content .history_area_period.p_1 {
  width: min(13.636vw, 150px);
  height: min(88vw, 968px);
  left: -190px;
  top: 20px;
}
main #content .history_area_more {
  display: none;
}
main #content .history_area_inner::before, main #content .history_area_inner::after {
  content: "";
  clear: both;
  display: block;
}
main #content .history_area_block {
  position: relative;
  width: 50%;
  padding: min(0.909vw, 10px) 0 min(0.909vw, 10px);
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block {
    width: 100%;
    padding: 0vw 0 0vw;
    margin-top: 0 !important;
    margin-bottom: 7.692vw;
  }
}
main #content .history_area_block .history_area_period.p_3 {
  left: -190px;
  top: 30px;
  width: min(13.636vw, 150px);
  height: min(160vw, 1760px);
}
main #content .history_area_block::before {
  position: absolute;
  display: inline-block;
  content: "";
  top: min(1.818vw, 20px);
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block::before {
    top: 2vw;
  }
}
main #content .history_area_block.clear_both {
  clear: both;
}
main #content .history_area_block.left {
  float: left;
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block.left {
    float: none;
    padding-left: 14.103vw;
  }
}
main #content .history_area_block.left::before {
  width: min(32.273vw, 355px);
  height: min(3.636vw, 40px);
  right: -4.2%;
  background: url(../img/history_shape01.svg) no-repeat center;
  background-size: contain;
}
@media only screen and (max-width: 790px) {
  main #content .history_area_block.left::before {
    right: -4.4%;
    width: min(31.818vw, 350px);
  }
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block.left::before {
    width: 12.821vw;
    height: 6.41vw;
    left: 0vw;
    background: url(../img/history_shape_sp.svg) no-repeat center;
    background-size: contain;
  }
}
main #content .history_area_block.right {
  float: right;
  padding-left: min(9.091vw, 100px);
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block.right {
    float: none;
    padding-left: 14.103vw;
  }
}
main #content .history_area_block.right::before {
  width: min(10vw, 110px);
  height: min(3.636vw, 40px);
  left: -4%;
  background: url(../img/history_shape02.svg) no-repeat center;
  background-size: contain;
}
@media only screen and (max-width: 790px) {
  main #content .history_area_block.right::before {
    left: -4%;
    width: min(9.545vw, 105px);
  }
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block.right::before {
    width: 12.821vw;
    height: 6.41vw;
    left: 0vw;
    background: url(../img/history_shape_sp.svg) no-repeat center;
    background-size: contain;
  }
}
main #content .history_area_block.y_2000 {
  margin-top: min(0.909vw, 10px);
}
main #content .history_area_block.y_2005 {
  margin-top: min(9.091vw, 100px);
}
main #content .history_area_block.y_2006 {
  margin-top: min(5.455vw, 60px);
}
main #content .history_area_block.y_2007 {
  margin-top: min(4.545vw, 50px);
}
main #content .history_area_block.y_2009 {
  margin-top: min(9.091vw, 100px);
}
main #content .history_area_block.y_2010 {
  margin-top: min(2.727vw, 30px);
}
main #content .history_area_block.y_2011 {
  margin-top: min(2.727vw, 30px);
}
main #content .history_area_block.y_2012 {
  margin-top: min(3.636vw, 40px);
}
main #content .history_area_block.y_2013 {
  margin-top: min(2.727vw, 30px);
}
main #content .history_area_block.y_2014 {
  margin-top: min(2.727vw, 30px);
}
main #content .history_area_block.y_2015 {
  margin-top: min(3.636vw, 40px);
}
main #content .history_area_block.y_2016 {
  margin-top: min(3.636vw, 40px);
}
main #content .history_area_block.y_2017 {
  margin-top: min(12.727vw, 140px);
}
main #content .history_area_block.y_2018 {
  margin-top: min(1.818vw, 20px);
}
main #content .history_area_block.y_2020 {
  margin-top: min(11.818vw, 130px);
}
main #content .history_area_block.y_2021 {
  margin-top: min(1.818vw, 20px);
}
main #content .history_area_block.y_2022 {
  margin-top: min(2.727vw, 30px);
}
main #content .history_area_block.y_2023 {
  margin-top: min(7.273vw, 80px);
}
main #content .history_area_block.y_2024 {
  margin-top: min(3.636vw, 40px);
}
main #content .history_area_block.y_2025 {
  margin-top: min(20.909vw, 230px);
}
main #content .history_area_block.y_2026 {
  margin-top: min(4.545vw, 50px);
}
main #content .history_area_block_date {
  position: relative;
  display: inline-block;
  color: #40A8CD;
  font-size: min(4.545vw, 50px);
  margin-bottom: min(0.909vw, 10px);
  font-family: "Albert Sans", sans-serif;
  font-weight: 400;
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block_date {
    font-size: 9.744vw;
    margin-bottom: 3vw;
  }
}
main #content .history_area_block_date span {
  font-size: min(2.727vw, 30px);
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block_date span {
    font-size: 6.667vw;
  }
}
main #content .history_area_block_fadeout {
  display: none;
  margin-top: min(2.273vw, 25px);
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block_fadeout {
    margin-top: 3vw;
  }
}
main #content .history_area_block_fadeout.open {
  display: block;
}
main #content .history_area_block_exp {
  width: min(36.364vw, 400px);
  box-sizing: border-box;
  display: block;
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block_exp {
    width: auto;
  }
}
main #content .history_area_block_exp p {
  position: relative;
  font-size: min(1.818vw, 20px);
  padding-left: min(2.273vw, 25px);
  color: #1A4B7E;
  line-height: 1.5;
  font-weight: 600;
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block_exp p {
    font-size: 4.103vw;
    padding-left: 5vw;
  }
}
main #content .history_area_block_exp p::before {
  position: absolute;
  display: inline-block;
  content: "";
  width: min(1.273vw, 14px);
  height: min(2vw, 22px);
  left: 0;
  top: min(0vw, 0px);
  background: url(../img/icon_drop.svg) no-repeat center;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block_exp p::before {
    width: 3vw;
    height: 5vw;
    top: 1vw;
  }
}
main #content .history_area_block_exp:nth-of-type(n+2) {
  margin-top: min(2.273vw, 25px);
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block_exp:nth-of-type(n+2) {
    margin-top: 4vw;
  }
}
main #content .history_area_block_exp span {
  font-size: min(1.455vw, 16px);
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block_exp span {
    font-size: 3.333vw;
  }
}
main #content .history_area_block_exp_img {
  margin-top: min(2.273vw, 25px);
}
@media only screen and (max-width: 767px) {
  main #content .history_area_block_exp_img {
    margin-top: 4vw;
  }
}
main #content .history_more_btn {
  width: min(38.182vw, 420px);
  height: min(5.818vw, 64px);
  margin: 0 auto;
  border-radius: 100vh;
  background: #40A8CD;
  border: solid 2px #40A8CD;
}
main #content .history_more_btn:hover {
  background: #fff;
  transition: 0.3s;
}
main #content .history_more_btn:hover button {
  color: #40A8CD;
}
main #content .history_more_btn:hover button::before {
  background: url(../img/icon_plus_hover.svg) no-repeat;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  main #content .history_more_btn {
    width: 71.795vw;
    height: 10.256vw;
  }
}
main #content .history_more_btn button {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  font-size: min(2.182vw, 24px);
  color: #fff;
  font-weight: 600;
}
@media only screen and (max-width: 767px) {
  main #content .history_more_btn button {
    font-size: 4.103vw;
  }
}
main #content .history_more_btn button::before {
  right: 15px;
  top: 0;
  bottom: 0;
  margin: auto 0;
  width: min(3.091vw, 34px);
  height: min(3.091vw, 34px);
  position: absolute;
  display: inline-block;
  content: "";
  background: url(../img/icon_plus.svg) no-repeat;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  main #content .history_more_btn button::before {
    width: 6.154vw;
    height: 6.154vw;
    right: 2vw;
  }
}
@media only screen and (max-width: 767px) {
  main #content .movie {
    text-align: right;
  }
}
main #content .movie .inner {
  padding-bottom: min(6.364vw, 70px);
}
@media only screen and (max-width: 767px) {
  main #content .movie .inner {
    position: relative;
    padding-bottom: 12.821vw;
    padding-top: 17.949vw;
  }
}
main #content .movie_block {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0 min(2.727vw, 30px);
  margin-bottom: min(10.909vw, 120px);
}
@media only screen and (max-width: 767px) {
  main #content .movie_block {
    display: block;
    margin-bottom: 12.821vw;
  }
}
main #content .movie_block_thum {
  width: 45%;
}
@media only screen and (max-width: 767px) {
  main #content .movie_block_thum {
    width: 100%;
  }
}
main #content .movie_block_thum:hover {
  opacity: 0.7;
  cursor: pointer;
}
main #content .movie_block_copy {
  width: 50%;
}
@media only screen and (max-width: 767px) {
  main #content .movie_block_copy {
    width: 100%;
    padding: 12.821vw 1vw 0 2vw;
  }
}
main #content .movie_block_copy_ttl {
  font-size: min(6.364vw, 70px);
  color: #40A8CD;
  font-family: "Albert Sans";
  opacity: 0.12;
  font-weight: 300;
  text-align: center;
  white-space: nowrap;
}
@media only screen and (max-width: 767px) {
  main #content .movie_block_copy_ttl {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    padding: 0 5.128vw;
    font-size: 13.333vw;
  }
}
main #content .movie_block_copy picture {
  position: relative;
  display: block;
  width: min(29.273vw, 322px);
  margin: min(1.818vw, 20px) auto min(3.636vw, 40px) min(6.364vw, 70px);
}
main #content .movie_block_copy picture::before {
  width: min(7.273vw, 80px);
  height: min(12.727vw, 140px);
  position: absolute;
  display: inline-block;
  content: "";
  left: -27px;
  top: -57px;
  background: url(../img/movie_copy_bg.png) no-repeat center;
  background-size: contain;
  z-index: -1;
}
@media only screen and (max-width: 767px) {
  main #content .movie_block_copy picture::before {
    width: 10.256vw;
    height: 16.41vw;
    top: -8vw;
    left: -4vw;
    right: initial;
  }
}
@media only screen and (max-width: 767px) {
  main #content .movie_block_copy picture {
    width: 100%;
    margin: 0 auto;
    padding-left: 0;
  }
}
main #content .movie_site_link {
  display: inline-block;
  color: #40A8CD;
  font-size: min(1.818vw, 20px);
  padding-right: min(0.636vw, 7px);
  padding-bottom: 7px;
  margin-left: min(6.364vw, 70px);
  border-bottom: solid 1px #40A8CD;
}
@media only screen and (max-width: 767px) {
  main #content .movie_site_link {
    padding-right: 2.5vw;
    padding-bottom: 3px;
    margin: 6vw 0 0 auto;
    text-align: right;
    font-size: 3.59vw;
  }
}
main #content .movie_site_link_i {
  display: inline-block;
  position: relative;
  bottom: 2px;
  left: 5px;
  width: min(0.636vw, 7px);
  height: min(1.273vw, 14px);
}
@media only screen and (max-width: 767px) {
  main #content .movie_site_link_i {
    bottom: 0.2vw;
    width: 2vw;
    height: 2.5vw;
    left: 2.5vw;
  }
}
main #content .movie_btn {
  position: relative;
  display: block;
  width: 100%;
  height: min(8.182vw, 90px);
  line-height: min(7.727vw, 85px);
  text-align: center;
  color: #fff;
  font-weight: 600;
  box-shadow: 0px 10px 13px -7px rgba(0, 0, 0, 0.3);
  border-radius: 100vh;
  background: linear-gradient(180deg, #428ACD -10.56%, #0164C2 106.67%);
}
main #content .movie_btn:hover {
  opacity: 0.7;
}
@media only screen and (max-width: 767px) {
  main #content .movie_btn {
    box-shadow: 0px 6px 8px -3px rgba(0, 0, 0, 0.3);
    height: 13.846vw;
    line-height: 13.333vw;
  }
}
main #content .movie_btn span.arrow {
  position: relative;
  font-size: min(3.091vw, 34px);
}
@media only screen and (max-width: 767px) {
  main #content .movie_btn span.arrow {
    font-size: 5.641vw;
  }
}
main #content .movie_btn span.arrow::before {
  position: absolute;
  display: inline-block;
  content: "";
  right: -40px;
  top: 0;
  bottom: 0;
  margin: auto 0;
  width: min(1.455vw, 16px);
  height: min(2vw, 22px);
  background: #fff;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
@media only screen and (max-width: 767px) {
  main #content .movie_btn span.arrow::before {
    width: 3vw;
    height: 4vw;
    right: -5vw;
    bottom: initial;
    top: 3vw;
  }
}
main #content .movie_btn span.f34 {
  font-size: min(3.091vw, 34px);
}
@media only screen and (max-width: 767px) {
  main #content .movie_btn span.f34 {
    font-size: 4.615vw;
  }
}

.modal {
  display: none;
}

.modal.is-open {
  display: block;
}

.modal__overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 99990;
  background: rgba(12, 20, 37, 0.8);
  display: flex;
  justify-content: center;
  align-items: center;
}

.modal__container_inner {
  position: relative;
}
.modal__container_inner .modal_close {
  position: absolute;
  display: inline-block;
  width: min(3.273vw, 36px);
  height: min(3.273vw, 36px);
  top: -50px;
  right: -50px;
  transition: 0.2s;
  background: transparent;
  border: 0;
  outline: none !important;
}
@media only screen and (max-width: 767px) {
  .modal__container_inner .modal_close {
    width: 8.205vw;
    height: 8.205vw;
    top: -14vw;
    right: 0vw;
  }
}
.modal__container_inner .modal_close:hover {
  opacity: 0.7;
  cursor: pointer;
}

.modal__container_mov {
  width: 65vw;
}
@media only screen and (max-width: 767px) {
  .modal__container_mov {
    width: 89.744vw;
  }
}
.modal__container_mov_block {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}
.modal__container_mov_block iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.modal.mov {
  display: none;
}

.modal.mov.is-close {
  display: none;
}

/* モーダルアニメーション */
@keyframes mmfadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes mmfadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes mmslideIn {
  from {
    transform: translateY(10%);
  }
  to {
    transform: translateY(0);
  }
}
@keyframes mmslideOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
.modal[aria-hidden=false] .modal-overlay {
  animation: mmfadeIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.modal[aria-hidden=false] .modal__container {
  animation: mmslideIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.modal[aria-hidden=true] .modal-overlay {
  animation: mmfadeOut 0s cubic-bezier(0, 0, 0.2, 1);
}

.modal[aria-hidden=true] .modal__container {
  animation: mmslideOut 0s cubic-bezier(0, 0, 0.2, 1);
}

.modal .modal__container,
.modal .modal-overlay {
  will-change: transform;
}

.footer {
  text-align: center;
  font-family: "YakuHanJP", "Noto Sans JP", sans-serif;
  font-weight: 500;
}
.footer::after {
  position: absolute;
  display: inline-block;
  content: "";
  top: -50px;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 100%;
  height: min(9.091vw, 100px);
  filter: blur(100px);
  background: linear-gradient(90deg, rgb(239, 249, 253) 56%, rgb(222, 239, 248));
}
@media only screen and (max-width: 767px) {
  .footer::after {
    top: -5vw;
    height: 10vw;
  }
}
.footer a:hover {
  opacity: 0.7;
  transition: 0.2s;
}
.footer_inner {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  padding: 0 50px 70px;
  width: min(18.182vw, 200px);
  width: 100%;
  margin: 0 auto;
}
@media only screen and (max-width: 767px) {
  .footer_inner {
    max-width: 100%;
    padding: 0 5.128vw 6.41vw;
    width: 100%;
  }
}
.footer_logo {
  display: block;
  width: min(18.182vw, 200px);
  margin: 0 auto min(5vw, 55px);
}
@media only screen and (max-width: 767px) {
  .footer_logo {
    width: 35.897vw;
    margin-bottom: 7.692vw;
  }
}
.footer_sns_list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0 min(3.182vw, 35px);
  margin-bottom: min(5.909vw, 65px);
}
@media only screen and (max-width: 767px) {
  .footer_sns_list {
    gap: 0 5.128vw;
    margin-bottom: 6.41vw;
  }
}
.footer_sns_list li:first-of-type {
  width: min(5.455vw, 60px);
}
@media only screen and (max-width: 767px) {
  .footer_sns_list li:first-of-type {
    width: 10.769vw;
  }
}
.footer_sns_list li:nth-of-type(2) {
  width: min(4.545vw, 50px);
}
@media only screen and (max-width: 767px) {
  .footer_sns_list li:nth-of-type(2) {
    width: 8.974vw;
  }
}
.footer_sns_list li:nth-of-type(3) {
  width: min(4.545vw, 50px);
}
@media only screen and (max-width: 767px) {
  .footer_sns_list li:nth-of-type(3) {
    width: 9.231vw;
  }
}
.footer_sns_list li:nth-of-type(4) {
  width: min(5.182vw, 57px);
}
@media only screen and (max-width: 767px) {
  .footer_sns_list li:nth-of-type(4) {
    width: 10.769vw;
  }
}
.footer_link_area {
  width: min(72.727vw, 800px);
  margin: 0 auto;
}
@media only screen and (max-width: 767px) {
  .footer_link_area {
    width: 100%;
  }
}
.footer_link {
  margin-bottom: min(3.636vw, 40px);
}
@media only screen and (max-width: 767px) {
  .footer_link {
    margin-bottom: 10.256vw;
  }
}
.footer_link_list {
  display: flex;
  justify-content: center;
  align-items: center;
}
@media only screen and (max-width: 767px) {
  .footer_link_list {
    display: block;
  }
}
.footer_link_list li:not(:last-child) {
  border-right: solid 1px #40A8CD;
}
@media only screen and (max-width: 767px) {
  .footer_link_list li:not(:last-child) {
    border-right: none;
  }
}
.footer_link_list li:not(:last-child) a {
  padding-right: min(2.727vw, 30px);
}
@media only screen and (max-width: 767px) {
  .footer_link_list li:not(:last-child) a {
    padding-right: 0;
  }
}
@media only screen and (max-width: 767px) {
  .footer_link_list li:not(:first-child) {
    margin-top: 3vw;
  }
}
.footer_link_list li:not(:first-child) a {
  padding-left: min(2.727vw, 30px);
}
@media only screen and (max-width: 767px) {
  .footer_link_list li:not(:first-child) a {
    padding-left: 0;
  }
}
.footer_link_list li a {
  display: block;
  font-size: min(1.273vw, 14px);
  font-weight: 600;
  color: #40A8CD;
}
@media only screen and (max-width: 767px) {
  .footer_link_list li a {
    font-size: 3.59vw;
  }
}
.footer_bread {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding-left: min(0.909vw, 10px);
  margin-bottom: min(5.455vw, 60px);
  gap: 0 1.795vw;
}
@media only screen and (max-width: 767px) {
  .footer_bread {
    display: block;
    font-size: 3.077vw;
    padding-left: 0;
    margin-bottom: 10.256vw;
  }
}
.footer_bread_i {
  font-size: min(1.182vw, 13px);
  font-weight: 600;
  color: #40A8CD;
  line-height: 1;
  margin-left: 1.795vw;
}
@media only screen and (max-width: 767px) {
  .footer_bread_i {
    font-size: 3.077vw;
    margin-left: 3vw;
  }
}
.footer_bread li a {
  display: inline-block;
  font-size: min(1.182vw, 13px);
  font-weight: 600;
  color: #40A8CD;
}
@media only screen and (max-width: 767px) {
  .footer_bread li a {
    font-size: 3.077vw;
  }
}
.footer_bread li a:not(.no_link) {
  text-decoration: underline;
}
@media only screen and (max-width: 767px) {
  .footer_bread li a:not(.no_link) {
    margin-bottom: 3vw;
  }
}
.footer_bread li a.no_link:hover {
  cursor: auto;
  opacity: 1;
}
.footer .copyright {
  font-size: min(1.091vw, 12px);
  font-weight: 400;
  color: #40A8CD;
}
@media only screen and (max-width: 767px) {
  .footer .copyright {
    font-size: 2.564vw;
  }
}