@charset "UTF-8";
body {
  color: #02557F;
  font-family: "Shippori Mincho", serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
}
body.is-footer-sns-fixed {
  padding-bottom: 75px;
}
@media screen and (max-width: 767px) {
  body.is-footer-sns-fixed {
    padding-bottom: 67px;
  }
}

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

a {
  color: inherit;
}
a:hover {
  opacity: 0.8;
  text-decoration: underline;
}

html {
  overflow-y: scroll;
  scrollbar-gutter: stable;
}

.l-inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 768px) and (max-width:1023px) {
  .l-inner {
    padding-left: 24px;
    padding-right: 24px;
  }
}
@media screen and (max-width: 767px) {
  .l-inner {
    padding-left: 16px;
    padding-right: 16px;
  }
}

.c-button {
  display: block;
  border-radius: 30px;
  background: #5F778E;
  padding-top: 19px;
  padding-bottom: 19px;
  height: 60px;
  width: 255px;
  color: #fff;
  text-align: center;
  font-size: 18px;
  font-style: normal;
  font-weight: 700;
  line-height: 120%; /* 21.6px */
  letter-spacing: 1.8px;
}

.c-header-logo {
  width: 168px;
  height: auto;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .c-header-logo {
    width: 150px;
  }
}
.c-header-logo--about {
  width: 274px;
}
@media screen and (max-width: 767px) {
  .c-header-logo--about {
    width: 240px;
  }
}
.c-header-logo--movie {
  width: 70px;
}
@media screen and (max-width: 767px) {
  .c-header-logo--movie {
    width: 66px;
  }
}
.c-header-logo--partner {
  width: 350px;
}
@media screen and (max-width: 767px) {
  .c-header-logo--partner {
    width: 306px;
  }
}

.c-header-h2 {
  color: #02557F;
  text-align: center;
  font-size: 45px;
  line-height: 1.2; /* 54px */
  letter-spacing: 0.1em;
  margin-top: 7px;
}
@media screen and (max-width: 767px) {
  .c-header-h2 {
    font-size: 35px;
  }
}
.c-header-h2--about {
  margin-top: 10px;
}
.c-header-h2--movie {
  margin-top: 10px;
}
.c-header-h2--movie2 {
  margin-top: 2px;
}
.c-header-h2--partner {
  font-size: 33px;
  line-height: 1.2;
  letter-spacing: 3.3px;
  margin-top: 15px;
}
@media screen and (max-width: 767px) {
  .c-header-h2--partner {
    font-size: 26px;
    margin-top: 9px;
  }
}

.p-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  right: 0;
  z-index: 1002;
}

.p-header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-left: 38px;
  height: 186px;
  padding-top: 30px;
}
@media screen and (max-width: 767px) {
  .p-header__inner {
    padding-top: 6px;
    margin-left: 15px;
  }
}
.p-header__inner.is-small {
  height: 100px;
}

.p-header__logo {
  width: 260px;
  height: auto;
  justify-self: center;
  -webkit-transform: translateY(7px);
          transform: translateY(7px);
  -webkit-transition: opacity 0.5s ease-out;
  transition: opacity 0.5s ease-out;
}
@media screen and (max-width: 767px) {
  .p-header__logo {
    width: 130px;
  }
}
.p-header__logo img {
  width: 100%;
  height: auto;
  display: block;
}
.p-header__logo.is-small {
  width: 100px;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  opacity: 0.95;
}

.p-header__logo.is-checked {
  opacity: 0;
}

.p-header__logo {
  line-height: 1;
}

.p-header__logo a,
.p-header__logo img {
  display: block;
}

.p-header__content {
  grid-column: 3;
  justify-self: end;
}

.p-header__hamburger {
  width: 92px;
  height: 92px;
  background: linear-gradient(157deg, #90DCFB 23.81%, #54B9EA 85.05%);
  border-radius: 50%;
  margin: 0; /* ← 上下も含めて一旦ゼロにする */
  margin-right: 28px;
  z-index: 1002;
  position: relative;
  display: grid;
  place-items: center;
}
.p-header__hamburger:hover {
  background: linear-gradient(157deg, #D0F0FC 23.81%, #1D9AD6 85.05%);
}
@media screen and (max-width: 767px) {
  .p-header__hamburger {
    width: 60px;
    height: 60px;
    margin-right: 15px;
    margin-top: 11px;
  }
}

.p-header__hamburger-inner {
  display: block;
  width: 42.9px;
  height: 28.8px; /* 3本が収まる高さ */
  position: relative;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-header__hamburger-inner {
    width: 28px;
    height: 19px;
  }
}

.p-header__hamburger-bar {
  width: 43px;
  height: 2px;
  position: absolute;
  left: 0;
  background: #fff;
  -webkit-transform-origin: center;
          transform-origin: center; /* 回転の基準 */
  -webkit-transition: opacity 0.2s, -webkit-transform 0.3s ease;
  transition: opacity 0.2s, -webkit-transform 0.3s ease;
  transition: transform 0.3s ease, opacity 0.2s;
  transition: transform 0.3s ease, opacity 0.2s, -webkit-transform 0.3s ease;
}
.p-header__hamburger-bar:nth-child(1) {
  top: 0;
}
.p-header__hamburger-bar:nth-child(2) {
  top: 13.5px;
}
.p-header__hamburger-bar:nth-child(3) {
  top: 27px;
}
@media screen and (max-width: 767px) {
  .p-header__hamburger-bar {
    width: 28px;
    height: 1px;
  }
  .p-header__hamburger-bar:nth-child(2) {
    top: 8px;
  }
  .p-header__hamburger-bar:nth-child(3) {
    top: 16px;
  }
}

/* 開いた状態（×） */
.p-header__hamburger.is-checked .p-header__hamburger-bar:nth-child(1) {
  -webkit-transform: translateY(13.5px) rotate(45deg);
          transform: translateY(13.5px) rotate(45deg);
  height: 2px;
}
@media screen and (max-width: 767px) {
  .p-header__hamburger.is-checked .p-header__hamburger-bar:nth-child(1) {
    -webkit-transform: translateY(8px) rotate(45deg);
            transform: translateY(8px) rotate(45deg);
    height: 1px;
  }
}
.p-header__hamburger.is-checked .p-header__hamburger-bar:nth-child(2) {
  opacity: 0;
  -webkit-transform: scaleX(0.6);
          transform: scaleX(0.6);
}
.p-header__hamburger.is-checked .p-header__hamburger-bar:nth-child(3) {
  -webkit-transform: translateY(-13.5px) rotate(-45deg);
          transform: translateY(-13.5px) rotate(-45deg);
  height: 2px;
}
@media screen and (max-width: 767px) {
  .p-header__hamburger.is-checked .p-header__hamburger-bar:nth-child(3) {
    -webkit-transform: translateY(-8px) rotate(-45deg);
            transform: translateY(-8px) rotate(-45deg);
    height: 1px;
  }
}

.drawer-contents {
  position: fixed;
  right: 0;
  top: 0;
  width: 100%;
  max-width: 710px;
  background: -webkit-gradient(linear, left top, left bottom, from(#FFF), to(#D7F1FD));
  background: linear-gradient(180deg, #FFF 0%, #D7F1FD 100%);
  z-index: 1001;
  height: 100dvh;
  overflow-y: auto;
  opacity: 0;
  pointer-events: none;
  -webkit-transition: opacity 0.5s ease-out, -webkit-transform 0.5s ease-out;
  transition: opacity 0.5s ease-out, -webkit-transform 0.5s ease-out;
  transition: transform 0.5s ease-out, opacity 0.5s ease-out;
  transition: transform 0.5s ease-out, opacity 0.5s ease-out, -webkit-transform 0.5s ease-out;
  padding-inline: 20px;
  padding-bottom: 60px;
}
.drawer-contents.is-checked {
  display: block;
  opacity: 1;
  pointer-events: auto;
}

/* スクロール禁止用 */
body.no-scroll {
  /* スクロール禁止 */
  width: 100%;
  overflow: hidden;
  height: 100%; /* モバイルでの慣性スクロール防止 */
  -ms-touch-action: none;
      touch-action: none; /* iOSのスクロール抑止 */
}

.p-header__logo--drawer {
  width: 150px;
  height: auto;
  margin-inline: auto;
  margin-top: 44px;
}
@media screen and (max-width: 767px) {
  .p-header__logo--drawer {
    width: 130px;
  }
}

.drawer-nav__list {
  text-align: center;
  margin-top: 70px;
}

.drawer-menu__item-link {
  color: #02557F;
  font-size: 30px;
  line-height: 250%; /* 75px */
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .drawer-menu__item-link {
    font-size: 23px;
  }
}

.sns__list-drawer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 54px;
  margin-top: 56px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (max-width: 767px) {
  .sns__list-drawer {
    gap: 46px;
  }
}

.sns__list-icon {
  width: 58px;
  height: auto;
}

.p-footer {
  padding-top: 56px;
  padding-bottom: 27px;
}
@media screen and (max-width: 767px) {
  .p-footer {
    padding-top: 50px;
  }
}

.p-footer__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media screen and (min-width: 1024px) and (max-width: 1200px) {
  .p-footer__inner {
    padding-inline: 10%;
  }
}

.p-footer__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .p-footer__content {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 14px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.p-footer__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 55px;
}
@media screen and (max-width: 767px) {
  .p-footer__header {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 27px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .p-footer__header {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 27px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.p-footer__logo {
  width: 169px;
  height: 91px;
}

.p-footer__company {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-top: 13px;
}
@media screen and (max-width: 767px) {
  .p-footer__company {
    text-align: center;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .p-footer__company {
    text-align: center;
  }
}

.p-footer__company-name {
  font-size: 18px;
  font-weight: 700;
  line-height: 120%; /* 21.6px */
  letter-spacing: 1.8px;
}

.p-footer__company-address {
  margin-top: 16px;
  font-size: 14px;
  line-height: 140%; /* 19.6px */
  letter-spacing: 1.4px;
}

.p-footer__company-tel {
  font-size: 14px;
  line-height: 140%; /* 19.6px */
  letter-spacing: 1.4px;
}

.p-footer__copyright {
  margin-top: 45px;
  font-size: 12px;
  line-height: 120%; /* 14.4px */
  letter-spacing: 1.2px;
}
@media screen and (max-width: 767px) {
  .p-footer__copyright {
    margin-top: 30px;
    text-align: center;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .p-footer__copyright {
    margin-top: 30px;
    text-align: center;
  }
}

.p-footer__contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 17px;
  padding-top: 15px;
}
@media screen and (max-width: 767px) {
  .p-footer__contact {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 25px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .p-footer__contact {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 25px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
@media screen and (min-width: 1024px) and (max-width: 1200px) {
  .p-footer__contact {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 25px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.u-separate {
  margin-top: 24px;
  margin-bottom: 24px;
}

@media screen and (min-width:1024px) {
  .u-hidden-pc {
    display: none;
  }
}

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

@media (min-width: 768px) and (max-width:1023px) {
  .u-hidden-tab {
    display: none;
  }
}

.fv-wrap {
  position: relative;
}

.fv {
  top: -24px;
  position: relative;
  z-index: 2;
}

.wave {
  background: url(../img/wave.svg) repeat-x;
  background-position: 0 0;
  background-size: 1440px 94px;
  position: absolute;
  left: 0;
  bottom: 0; /* ← 常に 0。マイナスにしない */
  height: 94px;
  width: 100%;
  pointer-events: none;
  will-change: background-position;
}

/* 奥の波 */
.wave--back {
  z-index: 3;
  opacity: 0.45;
  -webkit-animation: wave 15s linear infinite;
          animation: wave 15s linear infinite;
}
/* 手前の波 */
.wave--front {
  z-index: 4;
  opacity: 1;
  -webkit-animation: wave 10s linear infinite;
          animation: wave 10s linear infinite;
}
@-webkit-keyframes wave {
  to {
    background-position-x: -1440px;
  }
}
@keyframes wave {
  to {
    background-position-x: -1440px;
  }
}
.news {
  position: relative;
  z-index: 1;
}
.news__inner {
  display: grid;
  grid-template-columns: 175px 1fr; /* ← 左列を固定 */
  -webkit-column-gap: 32px;
     -moz-column-gap: 32px;
          column-gap: 32px;
  max-width: 981px;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .news__inner {
    display: block;
  }
}

.news__header {
  padding-top: 40px;
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  .news__header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding-top: 14px;
  }
}

.news__header-logo {
  width: 104px;
  height: auto;
}

.news__header-text {
  font-size: 20px;
  line-height: 160%; /* 32px */
  letter-spacing: 3.2px;
  margin-top: 10px;
  padding-left: 10px;
}
@media screen and (max-width: 767px) {
  .news__header-text {
    margin-top: 0;
  }
}

.news__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px;
  max-width: 800px;
  width: 100%;
  padding-bottom: 18px;
  padding-top: 34px;
  border-bottom: 1px solid #DBE0E7;
}
@media screen and (max-width: 767px) {
  .news__item {
    width: 100%;
    padding-top: 23px;
  }
}

.news__item-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 16px;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.news__item-date {
  line-height: normal;
  letter-spacing: 0.64px;
  color: #888888;
}

.news__item-category {
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 14px;
  font-weight: 400;
  line-height: 100%; /* 14px */
  letter-spacing: 0.28px;
  padding: 6px 30px;
  border: 1px solid #02557F;
  border-radius: 16px;
}

.news__item-title {
  line-height: 180%; /* 28.8px */
  letter-spacing: 0.32px;
  color: #404449;
}

.story {
  margin-top: 171px;
  padding-bottom: 130px;
  position: relative;
}
@media screen and (max-width: 767px) {
  .story {
    margin-top: 92px;
    padding-bottom: 0;
  }
}

.bg-oval {
  position: absolute;
  content: "";
  display: block;
  pointer-events: none;
  z-index: 0;
}

.bg-oval--top-right {
  background-image: url(../img/bg-story_01.png);
  background-repeat: no-repeat;
  width: 619px;
  height: 627px;
  background-size: contain;
  top: 0;
  right: 0;
  -webkit-transform: translateY(-380px);
          transform: translateY(-380px);
}
@media screen and (max-width: 767px) {
  .bg-oval--top-right {
    width: 356px;
    height: 361px;
    right: -180px;
    top: 233px;
  }
}

.bg-oval--left {
  background-image: url(../img/bg-story_02.png);
  background-repeat: no-repeat;
  width: 657px;
  height: 666px;
  background-size: contain;
  left: -130px;
}
@media screen and (max-width: 767px) {
  .bg-oval--left {
    width: 377px;
    height: 382px;
    left: -245px;
    top: 160px;
  }
}

.bg-oval--bottom-right {
  background-image: url(../img/bg-story_03.png);
  background-repeat: no-repeat;
  width: 715px;
  height: 750px;
  background-size: contain;
  bottom: 0;
  right: 0;
  -webkit-transform: translate(0, 300px);
          transform: translate(0, 300px);
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .bg-oval--bottom-right {
    width: 410px;
    height: 430px;
    right: -150px;
    bottom: 230px;
  }
}

.story__content {
  margin-top: 63px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .story__content {
    margin-top: 36px;
  }
}

.story__content-text {
  font-size: 18px;
  line-height: 2.2; /* 39.6px */
  letter-spacing: 0.02em;
}
@media screen and (max-width: 767px) {
  .story__content-text {
    font-size: 16px;
  }
}

.story__content-text--mt20 {
  margin-top: 39px;
}
@media screen and (max-width: 767px) {
  .story__content-text--mt20 {
    margin-top: 33px;
  }
}

.Catchphrase {
  width: 252px;
  height: auto;
  margin-inline: auto;
  margin-top: 100px;
}
@media screen and (max-width: 767px) {
  .Catchphrase {
    margin-top: 80px;
  }
}

.about {
  padding-top: 142px;
  background-image: url(../img/bg-about.png);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: contain;
}
@media screen and (max-width: 767px) {
  .about {
    margin-top: 118px;
    padding-top: 72px;
  }
}

.about__inner {
  background-color: #E6F8FF;
}

.about__content {
  width: 100%;
  max-width: 878px;
  margin-inline: auto;
  text-align: center;
  margin-top: 62px;
  padding-bottom: 100px;
}
@media screen and (max-width: 767px) {
  .about__content {
    padding-inline: 15px;
    margin-top: 40px;
    padding-bottom: 70px;
  }
}

.about__content-text {
  font-size: 20px;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 767px) {
  .about__content-text {
    font-size: 16px;
  }
}

.about__content-description {
  font-size: 22px;
  font-weight: 700;
  line-height: 200%; /* 44px */
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .about__content-description {
    font-size: 18px;
    line-height: 170%; /* 30.6px */
  }
}
.about__content-description span {
  color: #00B4ED;
}
.about__content-description--mt32 {
  margin-top: 23px;
}

.about__business {
  background: #E6F8FF;
  overflow: hidden;
}

.about__business-item {
  position: relative;
  --skew: clamp(80px, 6vw, 140px);
  padding: calc(140px + var(--skew)) 8.5714285714% 200px;
  background: no-repeat center top/cover;
  clip-path: polygon(0 0, 100% var(--skew), 100% 100%, 0 100%);
}
.about__business-item + .about__business-item {
  margin-top: calc(var(--skew) * -1);
}
@media screen and (max-width: 767px) {
  .about__business-item {
    --skew: clamp(20px, 6vw, 140px);
    padding: calc(40px + var(--skew)) 5.3333333333% 63px;
  }
  .about__business-item + .about__business-item {
    margin-top: calc(var(--skew) * -1);
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .about__business-item {
    --skew: clamp(40px, 6vw, 140px);
    padding: calc(40px + var(--skew)) 5.3333333333% 63px;
  }
  .about__business-item + .about__business-item {
    margin-top: calc(var(--skew) * -1);
  }
}
.about__business-item--01 {
  background-image: url(../img/bg-about_01.png);
}
.about__business-item--02 {
  background-image: url(../img/bg-about_02.png);
}
.about__business-item--03 {
  background-image: url(../img/bg-about_03.png);
}
.about__business-item--04 {
  background-image: url(../img/bg-about_04.png);
}

/* 4枚目だけ下端を白へ */
.about__business-item--04 {
  --tail: clamp(40px, 6vw, 140px);
  margin-bottom: -2px;
}
.about__business-item--04::after {
  content: "";
  position: absolute;
  left: -5%;
  right: -5%;
  bottom: -1px;
  height: calc(var(--tail) + 20px);
  background: #fff;
  clip-path: polygon(0 100%, 100% 100%, 100% var(--tail), 0 0);
  z-index: 1;
  pointer-events: none;
}

.about__business-item-container {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-inline: auto;
  padding-right: 50px;
}
.about__business-item-container--reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  padding-right: 170px;
}
@media screen and (max-width: 767px) {
  .about__business-item-container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding-right: 0;
    gap: 28px;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .about__business-item-container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding-right: 0;
    gap: 50px;
  }
}

.about__business-item-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.about__business-icon {
  width: 100px;
  height: auto;
}
@media screen and (max-width: 767px) {
  .about__business-icon {
    width: 85px;
  }
}

.about__business-title {
  font-size: 40px;
  line-height: 150%; /* 60px */
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .about__business-title {
    font-size: 28px;
    line-height: 130%; /* 36.4px */
    margin-top: 10px;
  }
}

.about__business-text {
  margin-top: 27px;
  letter-spacing: 0.32px;
}
@media screen and (max-width: 767px) {
  .about__business-text {
    font-size: 15px;
    line-height: 180%; /* 27px */
    letter-spacing: 0;
    margin-top: 22px;
  }
}

.about__business-item-image {
  position: relative;
  max-width: 510px;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .about__business-item-image {
    max-width: 310px;
    margin-inline: auto;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .about__business-item-image {
    margin-inline: auto;
  }
}

.movie {
  padding-bottom: 120px;
  position: relative;
}
@media screen and (max-width: 767px) {
  .movie {
    padding-bottom: 79px;
  }
}

.bg-oval--top-right-mv {
  top: 344px;
}

.bg-oval--left-mv {
  top: 366px;
  left: -260px;
}

.bg-oval--bottom-right-mv {
  top: 460px;
}
@media screen and (max-width: 767px) {
  .bg-oval--bottom-right-mv {
    right: -220px;
  }
}

@media (min-width: 768px) and (max-width:1023px) {
  .movie__inner {
    padding-inline: 40px;
  }
}

.movie__content {
  margin-top: 63px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 100px;
}
@media screen and (max-width: 767px) {
  .movie__content {
    margin-top: 48px;
    gap: 34px;
  }
}

.movie__content-item {
  text-align: center;
  max-width: 790px;
  width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .movie__content-item {
    width: 100%;
  }
}

.movie__content-thumb {
  width: 100%;
  aspect-ratio: 16/9;
  position: relative;
  overflow: hidden;
}

.movie__iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.movie__content-title {
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.4px;
  margin-top: 15px;
}
@media screen and (max-width: 767px) {
  .movie__content-title {
    line-height: 1.4;
  }
}

.movie__content-description {
  margin-top: 9px;
  text-align: left;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 767px) {
  .movie__content-description {
    font-size: 14px;
  }
}

.partner {
  position: relative;
  padding-top: 125px;
  overflow: hidden;
  --wave-h: clamp(180px, 18vw, 851px);
}
@media screen and (max-width: 767px) {
  .partner {
    padding-top: 75px;
  }
}

.partner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 851px; /* ←波＋水色帯の高さ（画像の見せたい高さに合わせて調整） */
  background-image: url(../img/bg-about.png);
  background-repeat: no-repeat;
  background-position: center top;
  /* ★ここが肝：横幅いっぱいに“2波のまま”伸ばす */
  background-size: 100% 100%;
  pointer-events: none;
  z-index: 0;
}
@media screen and (max-width: 767px) {
  .partner::before {
    background-image: url(../img/bg-partner.png);
    height: var(--wave-h);
  }
}

.partner__inner {
  position: relative;
  padding-bottom: 100px;
  z-index: 1;
  background-color: #E6F8FF;
}
@media screen and (max-width: 767px) {
  .partner__inner {
    padding-bottom: 90px;
  }
}

.partner__content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(153px, 1fr));
  gap: 37px;
  margin-top: 68px;
  max-width: 1000px;
  width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .partner__content {
    margin-top: 46px;
    row-gap: 31px;
    -webkit-column-gap: 19px;
       -moz-column-gap: 19px;
            column-gap: 19px;
  }
}

.partner__content-item {
  width: 153px;
  height: auto;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .partner__content-item {
    width: 136px;
  }
}
.partner__content-item img {
  max-width: 100%;
  height: auto;
}

.sns {
  background-color: #9FC6ED;
  padding-top: 72px;
  padding-bottom: 75px;
}
@media screen and (max-width: 767px) {
  .sns {
    padding-top: 90px;
    padding-bottom: 90px;
  }
}

.sns__title {
  color: #FFF;
  text-align: center;
  font-size: 35px;
  line-height: 120%; /* 42px */
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .sns__title {
    font-size: 25px;
  }
}

.sns__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 54px;
  margin-top: 56px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 52px;
}
@media screen and (max-width: 767px) {
  .sns__list {
    gap: 46px;
    margin-top: 40px;
  }
}

.sns__list-icon {
  width: 57px;
}
@media screen and (max-width: 767px) {
  .sns__list-icon {
    width: 49px;
  }
}

.js-reveal {
  opacity: 0;
  -webkit-transform: translateY(16px);
          transform: translateY(16px);
  -webkit-transition: opacity 0.7s ease, -webkit-transform 0.7s ease;
  transition: opacity 0.7s ease, -webkit-transform 0.7s ease;
  transition: opacity 0.7s ease, transform 0.7s ease;
  transition: opacity 0.7s ease, transform 0.7s ease, -webkit-transform 0.7s ease;
  will-change: opacity, transform;
}

.js-reveal.is-in {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/* 方向バリエーションを data-reveal で出したい場合の例 */
.js-reveal[data-reveal=left] {
  -webkit-transform: translateX(-16px);
          transform: translateX(-16px);
}

.js-reveal[data-reveal=right] {
  -webkit-transform: translateX(16px);
          transform: translateX(16px);
}

.js-reveal[data-reveal=fade] {
  -webkit-transform: none;
          transform: none;
}