/* ================================
Main Visual
================================ */
.home .l-content-container,
.reason .l-content-container,
.fujimura-junko .l-content-container,
.service .l-content-container {
  padding-top: 0;
}

.home .l-header {
  background-color: #fff;
}

.p-top-mv {
  position: relative;
  z-index: 0;
  height: 100svh;
  min-height: 24.8rem;
  background-color: #fff;
}
.p-top-mv__bg {
  position: relative;
  z-index: 0;
  width: 100vw;
  height: 100%;
  background: url(../img/top/mv_bg.png?251017v2) repeat-x left center/auto 100%;
  -webkit-animation: mv_bg_loop 60s linear infinite;
          animation: mv_bg_loop 60s linear infinite;
}
.p-top-mv__inner {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: calc(100% - 11.5vw);
  height: 100%;
  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: end;
      -ms-flex-pack: end;
          justify-content: end;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding: 5.7vh 0;
}
.p-top-mv__catch {
  margin: 0 0 0.5rem;
}
.p-top-mv__catch span {
  display: inline-block;
  color: #303030;
  font-size: clamp(35px, 2.9vw, 56px);
  font-weight: 700;
  line-height: 1;
  background-color: #fff;
  padding: 0.3rem 0.7rem 0.5rem;
  margin: 0 0 0.5rem;
}
.p-top-mv__desc {
  color: #fff;
  font-size: clamp(18px, 1.5vw, 28px);
  font-weight: 700;
  line-height: 1;
  padding: 0.5rem 0.7rem;
  background-color: #BB8600;
}
@-webkit-keyframes mv_bg_loop {
  from {
    background-position: 0 0;
  }
  to {
    background-position: -225.5vh 0;
  }
}
@keyframes mv_bg_loop {
  from {
    background-position: 0 0;
  }
  to {
    background-position: -225.5vh 0;
  }
}
@media screen and (min-width: 769px) {
  .p-top-mv__catch span:nth-of-type(2) {
    margin-left: -0.5rem;
  }
}
@media screen and (max-width: 1200px) {
  .p-top-mv__inner {
    width: calc(100% - 4rem);
  }
}
@media screen and (max-width: 768px) {
  .p-top-mv {
    height: calc(var(--ivh) * 100 - 3.9rem - 3.3rem);
    min-height: 27.1rem;
    margin: 7.1rem 0 0;
  }
  .p-top-mv__bg {
    background: url(../img/top/mv_bg_sp.png?12191135) repeat-x left center/auto 100%;
  }
  .p-top-mv__inner {
    width: calc(100% - 2rem);
    padding: 5.7rem 0;
  }
  .p-top-mv__catch {
    margin: 0 0 0.7rem;
  }
  .p-top-mv__catch span {
    font-size: 2.4rem;
  }
  .p-top-mv__desc {
    font-size: 1.1rem;
  }
  @-webkit-keyframes mv_bg_loop {
    from {
      background-position: 0 0;
    }
    to {
      background-position: -217.1vh 0;
    }
  }
  @keyframes mv_bg_loop {
    from {
      background-position: 0 0;
    }
    to {
      background-position: -217.1vh 0;
    }
  }
}

.p-page-mv {
  position: relative;
  z-index: 0;
  height: 100svh;
  min-height: 29.5rem;
}
.p-page-mv__bg {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.p-page-mv__inner {
  position: relative;
  z-index: 2;
  max-width: 1600px;
  width: calc(100% - 2rem);
  height: 100%;
  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: end;
      -ms-flex-pack: end;
          justify-content: end;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding: 4.3rem 2.1vw;
  margin: 0 auto;
}
.p-page-mv__title {
  color: #fff;
  font-size: clamp(18px, 1.5vw, 28px);
  font-weight: 700;
  background-color: #BB8600;
  padding: 0.2rem 0.5rem;
  margin: 0 0 1rem;
}
.p-page-mv__catch-wrap {
  width: calc(100% - 0.5rem);
  margin: 0 0 1.4rem;
}
.p-page-mv__catch {
  display: inline;
  -webkit-box-decoration-break: clone;
          box-decoration-break: clone;
  font-size: clamp(35px, 2.9vw, 56px);
  font-weight: 700;
  line-height: 1.8;
  padding: 0 0.5rem;
  background-color: #fff;
}
.p-page-mv__desc-wrap {
  width: calc(100% - 1rem);
  max-width: 36.2rem;
}
.p-page-mv__desc {
  display: inline;
  -webkit-box-decoration-break: clone;
          box-decoration-break: clone;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  line-height: 2.3;
  padding: 0.2rem 1rem;
  background-color: #1c1c1c;
}
.p-page-mv + .p-page-breadcrumbs {
  margin: 0;
  padding: 1.2rem 0;
}
@media screen and (max-width: 768px) {
  .p-page-mv {
    height: calc(var(--ivh) * 100);
    min-height: 40rem;
  }
  .p-page-mv__inner {
    padding: 7.1rem 0 5rem;
  }
  .p-page-mv__title {
    font-size: 1.1rem;
    margin: 0 0 0.7rem;
  }
  .p-page-mv__catch-wrap {
    margin: 0 0 0.7rem;
  }
  .p-page-mv__catch {
    font-size: 2.4rem;
    line-height: 1.7;
    margin: 0 0 0.7rem;
  }
  .p-page-mv__desc-wrap {
    width: calc(100% - 0.5rem);
  }
  .p-page-mv__desc {
    font-weight: 500;
    line-height: 2.4;
    padding: 0.3rem 0.7rem;
  }
}