/* Reset */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box; }

body, header, footer, section, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td, figure {
  margin: 0;
  padding: 0;
  box-sizing: border-box; }

html {
  width: 100%;
  overflow-y: scroll;
  font-size: 62.5%;
  scroll-behavior: smooth;
  margin-top: 0 !important; }

img {
  height: auto;
  max-width: 100%;
  -webkit-backface-visibility: hidden; }

table {
  border-collapse: collapse;
  border-spacing: 0;
  vertical-align: top; }

th {
  text-align: left; }

li {
  list-style: none; }

a {
  will-change: transform, opacity;
  outline: none;
  color: #333333;
  text-decoration: none; }

a:-webkit-any-link {
  color: #333333; }

address {
  font-style: normal; }

/* -------------------------
 * MV
 * ------------------------- */
.layout__main {
  overflow: hidden; }

.about__under-mv {
  background: url(../img/about/mv.webp) no-repeat center top/cover; }

.under-mv {
  height: 74vh; }

.under-mv__page-ttl {
  margin-bottom: 0; }
  .under-mv__page-ttl .under-mv__page-ttl--en,
  .under-mv__page-ttl .under-mv__page-ttl--jp {
    color: #fff !important; }

.about__under-mv {
  margin-bottom: 0; }
.about__first-block {
  background: url("../img/about/first-bg.png");
  background-repeat: no-repeat;
  background-size: cover;
  padding: 5rem 0 33rem;
  position: relative;
  z-index: 1;
  background-position: bottom; }
  .about__first-block .inner {
    max-width: 420px; }
.about__lead {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #B6C3C8;
  font-size: 17px; }
  .about__lead img {
    width: 11px;
    height: 11px; }
.about__catch {
  width: 100%;
  text-align: left;
  font-size: 3.3rem; }
  @media screen and (max-width: 834px) {
    .about__catch {
      font-size: 2.2rem;
      margin-bottom: 3rem; } }
  .about__catch span {
    font-size: 23px;
    display: block;
    margin-bottom: 0.7rem;
    margin-top: 2.5rem; }
    @media screen and (max-width: 834px) {
      .about__catch span {
        font-size: 18px; } }
.about__txt-wrap {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 20px 0; }
.about__second-block {
  background-color: #FAF4ED;
  position: relative;
  z-index: 0;
  padding: 20rem 0 5rem; }
  @media screen and (max-width: 834px) {
    .about__second-block {
      padding: 17rem 0 5rem; } }
  .about__second-block .about__lead {
    margin-bottom: 2rem; }
  .about__second-block .about__catch {
    margin-bottom: 2.5rem; }
    .about__second-block .about__catch ruby > rt {
      font-size: 40%;
      text-align: center; }
.about__step {
  padding: 12rem 0 9rem; }
.about__step1 {
  background-color: #E6D9CD; }
.about__step2 {
  background-color: #C7D2D6; }
.about__step3 {
  background-color: #DDDFD7; }
.about__step4 {
  background-color: #E1D2CD; }
.about__step--title-box {
  position: relative; }
.about .step__title {
  position: absolute;
  top: -60px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  text-align: center;
  color: #fff;
  font-size: 7.5rem;
  line-height: 1;
  font-weight: 400;
  letter-spacing: 0.05em;
  z-index: 10; }
  @media screen and (max-width: 834px) {
    .about .step__title {
      font-size: 5.5rem;
      margin-bottom: 3rem; } }
  .about .step__title span {
    display: block;
    font-size: 2.8rem; }
.about .step__picture {
  margin-bottom: 4rem; }
  @media screen and (max-width: 834px) {
    .about .step__picture {
      margin-bottom: 3rem; } }
.about .step__catch {
  font-size: 2.3rem;
  font-weight: 400;
  margin-bottom: 2rem; }
  @media screen and (max-width: 834px) {
    .about .step__catch {
      font-size: 2rem; } }
.about .step__text {
  font-size: 16px;
  font-weight: 300; }
.about .required {
  background: #FAF4ED;
  padding: 9rem 0 7rem; }
  @media screen and (max-width: 834px) {
    .about .required {
      padding: 9rem 0 0rem; } }
  .about .required .about__lead {
    justify-content: center;
    margin-bottom: 1.8rem; }
    @media screen and (max-width: 834px) {
      .about .required .about__lead {
        margin-bottom: 1rem; } }
  .about .required .about__catch {
    position: relative;
    text-align: center;
    margin-bottom: 5.7rem;
    font-size: 4.7rem;
    z-index: 2; }
    @media screen and (max-width: 834px) {
      .about .required .about__catch {
        font-size: 3.8rem;
        margin-bottom: 3.7rem; } }
    .about .required .about__catch::after {
      content: "PASSIONATE";
      position: absolute;
      font-family: "Forum", serif;
      z-index: 1;
      top: -20px;
      left: 50%;
      transform: translateX(-50%);
      -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      font-size: 94px;
      letter-spacing: 0.05em;
      color: rgba(182, 195, 200, 0.2); }
      @media screen and (max-width: 834px) {
        .about .required .about__catch::after {
          top: 0;
          font-size: 64px; } }
  .about .required .about__catch-sub {
    margin-bottom: 3rem;
    font-size: 23px;
    font-weight: 400; }
    @media screen and (max-width: 834px) {
      .about .required .about__catch-sub {
        font-size: 19px; } }
  .about .required .about__txt-wrap {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    margin-bottom: 5rem; }
  .about .required .about__picture-box {
    position: relative; }
  .about .required .about__picture1 {
    position: absolute;
    z-index: 3;
    width: 70%;
    left: -6%; }
  .about .required .about__picture2 {
    position: absolute;
    width: 56%;
    z-index: 4;
    top: 70px;
    right: -6%; }
  .about .required .about__picture3 {
    position: relative;
    z-index: 5;
    padding-left: 4%;
    padding-top: 25rem;
    width: 56%; }
    @media screen and (max-width: 834px) {
      .about .required .about__picture3 {
        padding-top: 15rem; } }

.about__slider {
  width: 100%;
  display: flex;
  overflow: hidden;
  gap: 3rem;
  position: absolute;
  bottom: -120px; }
  .about__slider ul {
    animation: loopSlide 80s infinite linear 1s both;
    display: flex;
    gap: 3rem; }
    .about__slider ul li img {
      width: 33rem !important;
      max-width: none; }
@keyframes loopSlide {
  from {
    transform: translateX(0); }
  to {
    transform: translateX(-100%); } }
