@charset "UTF-8";
/*
  File Name   : top.css
  Description : Write top content styles
*/
#home #lay-header {
  display: none;
}
@media only print {
  #home #lay-header {
    display: none !important;
    opacity: 0 !important;
  }
}
#home .top-section-hl {
  position: relative;
  display: block;
  color: #e50012;
  font-family: "Shippori Mincho B1", serif;
  font-size: 3rem;
  font-weight: 800;
  line-height: 1.5em;
  letter-spacing: 0em;
  text-align: center;
  padding: 0 0 0.6em;
}
@media only screen and (max-width: 1024px) {
  #home .top-section-hl {
    font-size: 2.4rem;
    font-size: clamp(2.2rem, 9.0vw, 2.4rem);
    padding-bottom: 0.8em;
  }
}
#home .top-section-hl::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 0.225em;
  background: url(../images/common/h2_dotted_01.svg) no-repeat bottom center/contain;
  bottom: 0;
  right: 50%;
  -webkit-transform: translate(50%, 0);
          transform: translate(50%, 0);
  pointer-events: none;
}
@media only screen and (max-width: 1024px) {
  #home .top-section-hl::after {
    padding-bottom: 0.26em;
  }
}
#home .top-subSection-hl {
  display: block;
  font-weight: 800;
  font-size: 2rem;
  line-height: 1.5em;
  letter-spacing: 0em;
  text-align: center;
}
#home .top-subSection-hl > * {
  display: block;
}
#home .top-subSection-hl > small {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.85em;
}
#home .top-moreBtnWrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-line-pack: center;
      align-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  gap: 1rem 0;
}
#home .top-moreBtn {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-line-pack: center;
      align-content: center;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  min-height: 2.5em;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  border-radius: 2em;
  background-color: #F0EFE4;
  padding: 0.2em 2.5em 0.2em 1.25em;
}
#home .top-moreBtn::before {
  content: "";
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border: 0.3em solid transparent;
  border-left: 0.4em solid #e50012;
  border-right: none;
  top: 50%;
  right: 1em;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
  -webkit-transition: right 0.2s ease-in;
  transition: right 0.2s ease-in;
  pointer-events: none;
}
#home .top-moreBtn:hover {
  opacity: 1 !important;
}
#home .top-moreBtn:hover::before {
  right: 0.75em;
}

.top-kv {
  background-color: #fff;
  width: 100%;
  overflow: hidden;
}
.top-kv .top-kv-slide {
  width: 100%;
  font-size: 0;
  line-height: 0;
}
@media only print {
  .top-kv .top-kv-slide.js-top-slide {
    display: none !important;
  }
}
.top-kv .top-kv-slide.forPrint {
  display: none !important;
}
@media only print {
  .top-kv .top-kv-slide.forPrint {
    display: block !important;
  }
}
.top-kv .top-kv-slide .top-kv-slide-item {
  display: block;
  width: 100％;
}
.top-kv .top-kv-slide .top-kv-slide-item .top-kv-slide-item-img {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
}
@media print, screen and (min-width: 1025px) {
  .top-kv .top-kv-slide .top-kv-slide-item .top-kv-slide-item-img {
    height: calc(100vh - 5.12vw);
    height: calc(100dvh - 5.12vw);
    min-height: 600px;
    max-height: 62.5vw;
  }
}
@media only screen and (min-width: 600px) and (max-width: 1024px) {
  .top-kv .top-kv-slide .top-kv-slide-item .top-kv-slide-item-img {
    min-height: 400px;
    height: calc(100vh - 8.0vw);
    height: calc(100dvh - 8.0vw);
    max-height: 62.5vw;
  }
}
@media only screen and (max-width: 599px) {
  .top-kv .top-kv-slide .top-kv-slide-item .top-kv-slide-item-img {
    height: calc(100vh - 36px);
    height: calc(100dvh - 36px);
    max-height: 120vw;
    min-height: 400px;
  }
}
.top-kv .top-kv-slide .top-kv-slide-item .top-kv-slide-item-img img {
  position: absolute;
  top: 50%;
  right: 50%;
  -webkit-transform: translate(50%, -50%);
          transform: translate(50%, -50%);
}

@media screen and (min-width: 1921px) {
  .top-kv .top-kv-slide .top-kv-slide-item {
    height: calc(100vh - 4.75rem);
    height: calc(100dvh - 4.75rem);
    max-height: 1200px;
  }
}
.top-menu {
  position: relative;
  background: url(../images/home/top_menu_bg_01.jpg) no-repeat center/cover;
  background-color: #e50012;
  padding: 5.12% 0 4.48%;
}
@media only screen and (max-width: 1024px) {
  .top-menu {
    padding: 8% 0 6%;
  }
}
.top-menu::before, .top-menu::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  background-repeat: no-repeat;
  background-size: cover;
  pointer-events: none;
}
.top-menu::before {
  top: -1px;
  left: 0;
  height: 0;
  padding-bottom: 5.15%;
  background-image: url(../images/home/top_menu_wave_01.svg);
  background-position: center bottom;
}
.top-menu::after {
  bottom: -1px;
  left: 0;
  height: 0;
  padding-bottom: 4.5%;
  background-image: url(../images/home/top_menu_wave_02.svg);
  background-position: center top;
}
.top-menu .top-menu-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  width: 100%;
  padding: 1.25rem 0 1.5rem;
}
@media only screen and (max-width: 1024px) {
  .top-menu .top-menu-list {
    padding: 0 0 0;
  }
}
.top-menu .top-menu-list > li {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-negative: 1;
      flex-shrink: 1;
  width: 100%;
  color: #fff;
  font-weight: 800;
  font-size: 46px;
  font-size: clamp(16px, 2.4vw, 46px);
  line-height: 1.4em;
  letter-spacing: 0.06em;
}
@media only screen and (max-width: 1024px) {
  .top-menu .top-menu-list > li {
    font-size: 16px;
    font-size: clamp(14px, 4.268vw, 16px);
  }
}
.top-menu .top-menu-list > li::before {
  content: "";
  position: absolute;
  display: block;
  width: 1px;
  height: calc(100% - 0.4em);
  top: 50%;
  left: 0;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
  background-color: #fff;
}
.top-menu .top-menu-list > li:first-child::before {
  content: none;
}
.top-menu .top-menu-list > li > .menuTitle {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-line-pack: center;
      align-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  color: inherit;
  font-weight: inherit;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-align: center;
  text-decoration: none;
  padding: 0.5em 0.5em 1.25em;
}
.top-menu .top-menu-list > li > .menuTitle::after {
  content: "";
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  bottom: 0;
  right: 50%;
  -webkit-transform: translate(50%, 0);
          transform: translate(50%, 0);
  border: 0.4em solid transparent;
  border-top: 0.5em solid #fff;
  border-bottom: none;
  -webkit-transition: -webkit-transform 0.2s ease-in;
  transition: -webkit-transform 0.2s ease-in;
  transition: transform 0.2s ease-in;
  transition: transform 0.2s ease-in, -webkit-transform 0.2s ease-in;
}
@media only screen and (max-width: 1024px) {
  .top-menu .top-menu-list > li > .menuTitle::after {
    content: none;
  }
}
.top-menu .top-menu-list > li > .menuTitle:hover {
  opacity: 1 !important;
}
@media print, screen and (min-width: 1025px) {
  .top-menu .top-menu-list > li > .menuTitle:hover::after {
    -webkit-transform: translate(50%, 0.25em);
            transform: translate(50%, 0.25em);
  }
}

.top-sectionGroup__01 {
  position: relative;
  padding: 5.5rem 0 9.7rem;
  overflow: hidden;
}
@media only screen and (max-width: 1024px) {
  .top-sectionGroup__01 {
    padding: 3.6rem 0 6.55rem;
  }
}
.top-sectionGroup__01::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 4rem;
  bottom: 0;
  left: 0;
  background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(#fff));
  background: -webkit-linear-gradient(transparent, #fff);
  background: linear-gradient(transparent, #fff);
  pointer-events: none;
}

.top-lead .top-lead-contents {
  margin: 2.25rem 0 0;
}
.top-lead .top-lead-contents .leadDescription {
  color: #e50012;
  font-size: clamp(18px, 2.00vw , 26px);
  font-weight: 700;
  text-align: center;
  line-height: 2.85em;
  letter-spacing: -0.02em;
}
.top-lead .top-lead-animation {
  display: block;
  width: 100%;
  max-width: 854px;
  margin: 24px auto 0;
}
@media only screen and (max-width: 1024px) {
  .top-lead .top-lead-animation {
    width: 75%;
    max-width: 600px;
    margin-top: 10px;
  }
}

.top-news {
  padding: 1.77rem 0 0;
}
@media only screen and (max-width: 1024px) {
  .top-news {
    padding-top: 3.25rem;
  }
}
.top-news .top-news-contentsBlock {
  border: 3px solid #e50012;
  border-radius: 13rem;
  padding: 3rem 5.38rem 2.75rem;
  background-color: #fff;
  overflow: hidden;
}
@media only screen and (max-width: 1024px) {
  .top-news .top-news-contentsBlock {
    border-radius: 4rem;
    padding: 2.5rem 3rem 3.25rem;
  }
}
.top-news .top-news-hl {
  display: block;
  width: 100%;
  color: #e50012;
  font-weight: 800;
  font-size: 2.6rem;
  line-height: 1.2em;
  letter-spacing: 0.04em;
  text-align: center;
  padding: 0 0 0;
}
.top-news .top-news-list {
  margin: 2.4em 0 0;
}
@media only screen and (max-width: 1024px) {
  .top-news .top-news-list {
    margin-top: 2em;
  }
}
.top-news .top-news-list > ul > li {
  margin: 0 0 1.55em;
}
@media only screen and (max-width: 599px) {
  .top-news .top-news-list > ul > li {
    margin-bottom: 2.5em;
  }
}
.top-news .top-news-list > ul > li:last-child {
  margin-bottom: 0;
}
.top-news .top-news-list > ul > li > a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -ms-flex-line-pack: start;
      align-content: flex-start;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  width: 100%;
  color: inherit;
  text-decoration: none;
}
@media only screen and (max-width: 599px) {
  .top-news .top-news-list > ul > li > a {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0.5rem 0;
  }
}
.top-news .top-news-list > ul > li > a .date,
.top-news .top-news-list > ul > li > a .title {
  display: block;
  font-weight: 700;
}
.top-news .top-news-list > ul > li > a .date {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 6em;
  color: #e50012;
}
.top-news .top-news-list > ul > li > a .title {
  text-decoration: underline;
}
.top-news .top-news-list > ul > li > a .title .new {
  display: inline-block;
  color: #fff;
  text-decoration: none;
  -webkit-text-decoration-color: #e50012;
          text-decoration-color: #e50012;
  background-color: #e50012;
  line-height: 1.4em;
  letter-spacing: 0em;
  vertical-align: baseline;
  margin: 0 0 0 0.75em;
  padding: 0 0.5em 0.15em;
}
.top-news .top-news-moreBtnWrap {
  margin: 3em auto 0;
}

.top-aboutProject {
  position: relative;
  padding: 12.8rem 0 5.75rem;
  background-color: #e50012;
}
@media only screen and (max-width: 1024px) {
  .top-aboutProject {
    padding-top: clamp(60px, 36.7%, 10.3rem);
    padding-bottom: 7.1rem;
  }
}
.top-aboutProject::before, .top-aboutProject::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  left: 0;
  background-repeat: no-repeat;
  background-position: center left;
  background-size: cover;
  z-index: 0;
  pointer-events: none;
}
.top-aboutProject::before {
  height: 52.25%;
  top: 0;
  background-image: url(../images/home/top_about_bg_01.jpg);
}
.top-aboutProject::after {
  height: 48.6%;
  bottom: 0;
  background-image: url(../images/home/top_about_bg_02.jpg);
}
.top-aboutProjectInner::before, .top-aboutProjectInner::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 0;
  left: 0;
  background-repeat: no-repeat;
  background-size: cover;
  z-index: 1;
  pointer-events: none;
}
@media only screen and (max-width: 1024px) {
  .top-aboutProjectInner::before, .top-aboutProjectInner::after {
    background-size: 1024px;
  }
}
.top-aboutProjectInner::before {
  top: -1px;
  padding-bottom: 5.105%;
  background-image: url(../images/home/top_about_wave_01.svg);
  background-position: top center;
}
@media only screen and (max-width: 1024px) {
  .top-aboutProjectInner::before {
    padding-bottom: 38px;
    background-image: url(../images/home/top_about_wave_01_mbl.svg);
  }
}
.top-aboutProjectInner::after {
  bottom: -1px;
  padding-bottom: 4.84375%;
  background-image: url(../images/home/top_about_wave_02_sub-color.svg);
  background-position: bottom center;
}
@media only screen and (max-width: 1024px) {
  .top-aboutProjectInner::after {
    padding-bottom: 30px;
    background-image: url(../images/home/top_about_wave_02_sub-color_mbl.svg);
  }
}
.top-aboutProject .aboutProject-contentsBlock {
  position: relative;
  border-radius: 5rem;
  background-color: #fff;
  padding: 7.25rem 3.5rem 4.25rem;
  z-index: 1;
}
@media only screen and (max-width: 1024px) {
  .top-aboutProject .aboutProject-contentsBlock {
    border-radius: 4rem;
  }
}
@media only screen and (min-width: 600px) and (max-width: 1024px) {
  .top-aboutProject .aboutProject-contentsBlock {
    padding: 4.75rem 2rem 3rem;
  }
}
@media only screen and (max-width: 599px) {
  .top-aboutProject .aboutProject-contentsBlock {
    padding: 4.75rem 1.65rem 3rem;
  }
}
.top-aboutProject .aboutProject-contentsBlock .aboutProject-contentsBlock-imgs {
  position: absolute;
  width: 45%;
  max-width: 548px;
  top: 0;
  right: calc(50% + 34px);
  -webkit-transform: translate(50%, -62%);
          transform: translate(50%, -62%);
  pointer-events: none;
}
@media only screen and (max-width: 1024px) {
  .top-aboutProject .aboutProject-contentsBlock .aboutProject-contentsBlock-imgs {
    width: 60%;
    max-width: 18rem;
    right: 50%;
    -webkit-transform: translate(50%, -62%);
            transform: translate(50%, -62%);
  }
}
.top-aboutProject .aboutProject-contentsBlock .aboutProject-contentsBlock-imgsInner {
  position: relative;
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 62.56%;
}
.top-aboutProject .aboutProject-contentsBlock .aboutProject-contentsBlock-imgsInner .animeObj {
  position: absolute;
  top: 50%;
  right: 50%;
  -webkit-transform: translate(50%, -50%);
          transform: translate(50%, -50%);
}
.top-aboutProject .aboutProject-contentsBlock .aboutProject-contents {
  margin: 2rem 0 0;
}
.top-aboutProject .aboutProject-contentsBlock .aboutProject-contents .aboudDescription {
  font-weight: 700;
  font-size: clamp(18px, 2.00vw , 26px);
  text-align: center;
  line-height: 2.85em;
  letter-spacing: 0em;
}
.top-aboutProject .aboutProject-contentsBlock .aboutProject-moreBtnWrap {
  margin: 2.25rem auto 0;
}
@media print, screen and (min-width: 1025px) {
  .top-aboutProject .aboutProject-contentsBlock .aboutProject-moreBtnWrap .aboutProject-moreBtn {
    font-size: 1.2rem !important;
  }
}

.top-aboutShokudo {
  position: relative;
  padding: 8.8rem 0 8.8rem;
  background-color: #F0EFE4;
}
@media only screen and (max-width: 1024px) {
  .top-aboutShokudo {
    padding-top: clamp(60px, 36.7%, 6.0rem);
    padding-bottom: 7.1rem;
  }
}
.top-aboutShokudoInner::before, .top-aboutShokudoInner::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 0;
  left: 0;
  background-repeat: no-repeat;
  background-size: cover;
  z-index: 1;
  pointer-events: none;
}
@media only screen and (max-width: 1024px) {
  .top-aboutShokudoInner::before, .top-aboutShokudoInner::after {
    background-size: 1024px;
  }
}
.top-aboutShokudoInner::after {
  bottom: -1px;
  padding-bottom: 4.84375%;
  background-image: url(../images/home/top_about_wave_02.svg);
  background-position: bottom center;
}
@media only screen and (max-width: 1024px) {
  .top-aboutShokudoInner::after {
    padding-bottom: 30px;
    background-image: url(../images/home/top_about_wave_02_mbl.svg);
  }
}
.top-aboutShokudo .top-aboutShokudo-contentsBlock {
  position: relative;
  border-radius: 5rem;
  background-color: #fff;
  padding: 6.25rem 3.5rem 4.25rem;
  z-index: 1;
}
@media only screen and (max-width: 1024px) {
  .top-aboutShokudo .top-aboutShokudo-contentsBlock {
    border-radius: 4rem;
  }
}
@media only screen and (min-width: 600px) and (max-width: 1024px) {
  .top-aboutShokudo .top-aboutShokudo-contentsBlock {
    padding: 4.75rem 2rem 3rem;
  }
}
@media only screen and (max-width: 599px) {
  .top-aboutShokudo .top-aboutShokudo-contentsBlock {
    padding: 3.75rem 1.65rem 3rem;
  }
}
.top-aboutShokudo .top-aboutShokudo-contentsBlock .top-aboutShokudo-contentsBlock-imgs {
  position: absolute;
  width: 45%;
  max-width: 548px;
  top: 0;
  right: calc(50% + 34px);
  -webkit-transform: translate(50%, -54%);
          transform: translate(50%, -54%);
  pointer-events: none;
}
@media only screen and (max-width: 1024px) {
  .top-aboutShokudo .top-aboutShokudo-contentsBlock .top-aboutShokudo-contentsBlock-imgs {
    width: 60%;
    max-width: 18rem;
    right: 50%;
    -webkit-transform: translate(50%, -54%);
            transform: translate(50%, -54%);
  }
}
.top-aboutShokudo .top-aboutShokudo-contentsBlock .top-aboutShokudo-contentsBlock-imgsInner {
  position: relative;
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 62.56%;
}
.top-aboutShokudo .top-aboutShokudo-contentsBlock .top-aboutShokudo-contentsBlock-imgsInner .animeObj {
  position: absolute;
  top: 50%;
  right: 50%;
  -webkit-transform: translate(50%, -50%);
          transform: translate(50%, -50%);
}
.top-aboutShokudo .top-aboutShokudo-contentsBlock .top-aboutShokudo-contents {
  margin: 2rem 0 0;
}
.top-aboutShokudo .top-aboutShokudo-contentsBlock .top-aboutShokudo-contents .aboudDescription {
  font-weight: 700;
  font-size: clamp(18px, 2.00vw , 26px);
  text-align: center;
  line-height: 2.85em;
  letter-spacing: 0em;
}
.top-aboutShokudo .top-aboutShokudo-contentsBlock .top-aboutShokudo-subHl {
  display: block;
  width: 100%;
  color: #e50012;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.8em;
  letter-spacing: 0.04em;
  text-align: center;
  margin: 1.5em 0 0;
}
@media only screen and (max-width: 599px) {
  .top-aboutShokudo .top-aboutShokudo-contentsBlock .top-aboutShokudo-subHl {
    font-size: 1.2rem;
  }
}
.top-aboutShokudo .top-aboutShokudo-contentsBlock .top-aboutShokudo-moreBtnWrap {
  margin: 2.25rem auto 0;
}
@media print, screen and (min-width: 1025px) {
  .top-aboutShokudo .top-aboutShokudo-contentsBlock .top-aboutShokudo-moreBtnWrap .top-aboutShokudo-moreBtn {
    font-size: 1.2rem !important;
  }
}

.top-supporters {
  padding: 6.75rem 0 8rem;
}
@media only screen and (max-width: 1024px) {
  .top-supporters {
    padding: 3.5rem 0 5.75rem;
  }
}
.top-supporters.isEmptyContents {
  padding: 2rem 0 2rem;
}
.top-supporters .top-supporters-hlWrap {
  position: relative;
  padding: 0 8rem 4rem;
}
@media only screen and (max-width: 1024px) {
  .top-supporters .top-supporters-hlWrap {
    padding: 0 0 3rem;
  }
}
.top-supporters .top-supporters-hlWrap::before, .top-supporters .top-supporters-hlWrap::after {
  content: "";
  position: absolute;
  display: block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.top-supporters .top-supporters-hlWrap::before {
  width: 13.84%;
  max-width: 166px;
  height: 0;
  padding-bottom: 14.67%;
  bottom: 2.25rem;
  left: 0;
  background-image: url(../images/home/top_supporters_header_img_01.png);
  -webkit-animation: key_tilt_before 1.2s steps(1) infinite;
          animation: key_tilt_before 1.2s steps(1) infinite;
}
@media only screen and (max-width: 1024px) {
  .top-supporters .top-supporters-hlWrap::before {
    bottom: 1.25rem;
    left: 0.5rem;
  }
}
.top-supporters .top-supporters-hlWrap::after {
  width: 13.5%;
  max-width: 162px;
  height: 0;
  padding-bottom: 14.84%;
  bottom: 0;
  right: 0;
  background-image: url(../images/home/top_supporters_header_img_02.png);
  -webkit-animation: key_tilt_after 1.2s steps(1) infinite;
          animation: key_tilt_after 1.2s steps(1) infinite;
}
@media only screen and (max-width: 1024px) {
  .top-supporters .top-supporters-hlWrap::after {
    right: 1rem;
  }
}
@-webkit-keyframes key_tilt_before {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  50% {
    -webkit-transform: rotate(-40deg);
            transform: rotate(-40deg);
  }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}
@keyframes key_tilt_before {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  50% {
    -webkit-transform: rotate(-40deg);
            transform: rotate(-40deg);
  }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}
@-webkit-keyframes key_tilt_after {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  50% {
    -webkit-transform: rotate(40deg);
            transform: rotate(40deg);
  }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}
@keyframes key_tilt_after {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  50% {
    -webkit-transform: rotate(40deg);
            transform: rotate(40deg);
  }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}
.top-supporters .top-supporters-companies {
  margin: 2rem 0 0;
}
@media only screen and (max-width: 599px) {
  .top-supporters .top-supporters-companies {
    margin-top: 0.5rem;
  }
}
.top-supporters .top-supporters-companies .top-supporters-companies-bannerList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-line-pack: center;
      align-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
}
.top-supporters .top-supporters-companies .top-supporters-companies-bannerList > li {
  display: block;
  width: 100%;
}
.top-supporters .top-supporters-companies .top-supporters-companies-bannerList > li > * {
  position: relative;
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 38%;
  overflow: hidden;
}
.top-supporters .top-supporters-companies .top-supporters-companies-bannerList > li > * > img {
  position: absolute;
  top: 50%;
  right: 50%;
  -webkit-transform: translate(50%, -50%);
          transform: translate(50%, -50%);
}
.top-supporters .top-supporters-companies .top-supporters-companies-bannerList.isLacking {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.top-supporters .top-supporters-companies .top-supporters-companies-bannerList__l {
  gap: 2rem 2rem;
  margin: 2.5rem 0 0;
}
.top-supporters .top-supporters-companies .top-supporters-companies-bannerList__l > li {
  width: calc(50% - 1.0rem);
  max-width: 566px;
}
@media only screen and (max-width: 599px) {
  .top-supporters .top-supporters-companies .top-supporters-companies-bannerList__l > li {
    width: 100%;
  }
}
.top-supporters .top-supporters-companies .top-supporters-companies-bannerList__m {
  gap: 1.5rem 1.5rem;
  margin: 4rem 0 0;
}
.top-supporters .top-supporters-companies .top-supporters-companies-bannerList__m > li {
  width: calc((100% / 3) - (1.5rem * 2 / 3));
  max-width: 380px;
}
@media only screen and (max-width: 599px) {
  .top-supporters .top-supporters-companies .top-supporters-companies-bannerList__m > li {
    width: 73%;
  }
}
.top-supporters .top-supporters-companies .top-supporters-companies-bannerList__s {
  gap: 1rem 1rem;
  margin: 4rem 0 0;
}
.top-supporters .top-supporters-companies .top-supporters-companies-bannerList__s > li {
  width: calc(25% - (1.0rem * 3 / 4));
  max-width: 285px;
}
@media only screen and (max-width: 599px) {
  .top-supporters .top-supporters-companies .top-supporters-companies-bannerList__s > li {
    width: calc(50% - 0.5rem);
  }
}
.top-supporters .top-supporters-persons {
  position: relative;
  padding: 0 0 0;
}
.top-supporters .top-supporters-persons .top-supporters-persons-parsonsList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  gap: 1rem 1rem;
  width: 100%;
  margin: 2.25rem 0 0;
  padding: 0 0.5rem 0;
}
@media only screen and (max-width: 599px) {
  .top-supporters .top-supporters-persons .top-supporters-persons-parsonsList {
    margin: 2.5rem 0 0;
  }
}
.top-supporters .top-supporters-persons .top-supporters-persons-parsonsList > li {
  width: calc((100% / 3) - (1.0rem * 2 / 3));
  display: block;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 0.75em 0.75em;
  border: 2px solid #e50012;
  text-align: justify;
  line-height: 1.8em;
}
@media only screen and (min-width: 600px) and (max-width: 1024px) {
  .top-supporters .top-supporters-persons .top-supporters-persons-parsonsList > li {
    width: calc(50% - (1.5rem * 0.5));
  }
}
@media only screen and (max-width: 599px) {
  .top-supporters .top-supporters-persons .top-supporters-persons-parsonsList > li {
    width: calc(50% - 0.5rem);
    font-size: 1rem;
  }
}
.top-supporters .top-supporters-companies + .top-supporters-persons {
  margin: 4rem 0 0;
}
.top-supporters .top-supporters-companies + .top-supporters-persons::before {
  content: none;
  position: absolute;
  display: block;
  width: 100%;
  height: 6px;
  top: 0;
  left: 0;
  background: url(../images/common/line_dotted_main-color_01.svg) repeat-x center/contain;
}
@media only screen and (max-width: 599px) {
  .top-supporters .top-supporters-companies + .top-supporters-persons::before {
    height: 5px;
  }
}