/* SEATA About固有: ヒーローテキスト / フォトコラージュ / company情報 */

/* 原本(Studio)はAboutの3セクションを帯別の固定高で組んでいる
   (hero 829/860/1053・collage 1648/1311・company 627/613/642)。
   ヒーロー本文は固定高からはみ出したまま、コラージュの上マージン(112px)に食い込む構造で、
   これを可変高に直すと375〜540px帯で本文と灰色帯の間隔が原本と変わるため固定高ごと転記する。
   本文や住所を増減するときは各固定高も合わせて調整すること。 */

/* ---- about ---- */
.about-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 1080px;
  height: 829px;
  margin: 0 auto;
  padding: 65px 0 80px;
}

.about-hero__title {
  flex: none;
  color: var(--color-primary);
  font-family: var(--font-playfair);
  font-size: 53px;
  line-height: 1.4;
  margin: 0 0 39px;
}

.about-hero__text {
  flex: none;
  color: var(--color-text-dark);
  font-family: var(--font-zen-old-mincho);
  font-size: 20px;
  line-height: 1.4;
  max-width: 827px;
  width: 100%;
  padding: 48px 0;
}

@media screen and (max-width: 840px) {
  .about-hero {
    max-width: 719px;
    height: 860px;
  }
}

@media screen and (max-width: 540px) {
  .about-hero {
    height: 1053px;
  }

  .about-hero__title {
    text-align: center;
    width: 100%;
  }

  .about-hero__text {
    color: #000000;
    padding: 0 32px 88px;
  }
}

/* ---- フォトコラージュ ----
   原本は「縦並びflex(上下中央寄せ)に固定サイズの写真を並べ、負のmarginで重ね合わせる」方式。
   メイン写真だけ内側幅の50%(≤540pxは100%)で伸縮し、他5枚は帯別の固定サイズ。
   サイズ・marginは原本のStudioルールをそのまま転記している。
   rack写真は原本どおり外箱(rack-box)の中で寄せる二段構造。
   flowers(-1)・rack(-2)の負のz-indexが灰色背景の上に描かれるよう、セクション自体に
   z-index:1でスタッキングコンテキストを作る。 */
.about-collage {
  position: relative;
  z-index: 1;
  background: #f0f0f0;
  margin: 112px 0 96px;
  /* 375/600px帯で写真が左右にはみ出す(原本はページ全体をoverflow:clip)。
     body{overflow-x:hidden}ではモバイルのレイアウトビューポートが広がるためセクション側で切る。
     縦は出現アニメ(下+100px)を切らないようvisibleのまま */
  overflow-x: clip;
}

.about-collage__stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: 1080px;
  height: 1648px;
  margin: 0 auto;
}

.about-collage__img {
  flex: none;
  object-fit: cover;
}

/* 原本実測: コラージュ写真のappearは共通値と異なり
   opacity 0.5・下+100pxスタート、dur 400ms/ease-in(進入時発火)。
   rackは外箱側に付き、写真単体では動かない。
   遅延(原本は一律300ms)は「上から順」の原則(2026-09-08)によりcommon.jsが要素ごとに与える */
.js .about-collage__img.appear,
.js .about-collage__rack-box.appear {
  opacity: 0.5;
  translate: 0 100px;
}

.about-collage__img.appear,
.about-collage__rack-box.appear {
  transition-duration: 400ms;
  transition-timing-function: ease-in;
}

.js .about-collage__img.appear.is-visible,
.js .about-collage__rack-box.appear.is-visible {
  opacity: 1;
  translate: 0 0;
}

.about-collage__img--main {
  width: 50%;
  max-width: 50%;
  height: auto;
  aspect-ratio: 3 / 2;
}

.about-collage__img--artwork {
  width: 334px;
  height: 207px;
  max-width: calc(100% + 400px);
  margin: 70px 0 0 -400px;
}

.about-collage__img--flowers {
  width: 264px;
  height: 360px;
  max-width: calc(100% + 400px);
  margin: -350px -400px 0 0;
  z-index: -1;
}

.about-collage__img--fabric {
  width: 403px;
  height: 194px;
  max-width: calc(100% + 50px);
  margin: 30px 0 0 -50px;
}

.about-collage__rack-box {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 534px;
  height: 376px;
  max-width: calc(100% - 230px);
  margin: -30px 0 0 230px;
}

.about-collage__img--rack {
  width: 351px;
  height: 408px;
  max-width: calc(100% - 230px);
  margin: -30px 0 0 230px;
  z-index: -2;
}

.about-collage__img--earrings {
  width: 180px;
  height: 466px;
  max-width: calc(100% + 350px);
  margin: -300px 0 0 -350px;
}

@media screen and (max-width: 840px) {
  .about-collage__stage {
    height: 1311px;
    padding: 0 50px;
  }

  .about-collage__rack-box {
    width: 485px;
    height: 411px;
    max-width: calc(100% - 150px);
    margin: -30px 0 0 150px;
  }

  .about-collage__img--rack {
    width: calc(100% - 230px);
    height: 378px;
  }
}

@media screen and (max-width: 540px) {
  .about-collage__img--main {
    width: 357px;
    max-width: 100%;
  }

  .about-collage__img--artwork {
    width: 255px;
    height: 185px;
    max-width: calc(100% + 200px);
    margin: 70px 0 0 -200px;
  }

  .about-collage__img--flowers {
    width: 164px;
    height: 257px;
    max-width: calc(100% + 290px);
    margin: -300px -290px 0 0;
  }

  .about-collage__img--fabric {
    width: 253px;
    height: 161px;
  }

  .about-collage__rack-box {
    width: calc(100% - 150px);
    height: 408px;
  }

  .about-collage__img--rack {
    width: 161px;
    height: 262px;
    max-width: calc(100% - 25px);
    margin: -40px 0 0 25px;
  }

  .about-collage__img--earrings {
    width: 174px;
    height: 289px;
    max-width: calc(100% + 120px);
    margin: -300px 0 0 -120px;
  }
}

/* ---- company ---- */
.about-company {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: 1080px;
  height: 627px;
  margin: 0 auto;
}

.about-company__title {
  flex: none;
  color: var(--color-primary);
  font-family: var(--font-playfair);
  font-size: 53px;
  line-height: 1.4;
  margin: 0 0 27px;
}

.about-company__row {
  flex: none;
  display: flex;
  align-items: center;
  gap: 117px;
  width: 582px;
  max-width: 100%;
  height: 102px;
  padding: 13px;
}

.about-company__label {
  color: var(--color-text-dark);
  font-family: var(--font-lato);
  font-size: 20px;
  line-height: 1.4;
  padding: 23px;
  flex: none;
  white-space: nowrap;
}

.about-company__value {
  color: var(--color-text-dark);
  font-family: var(--font-lato);
  font-size: 20px;
  line-height: 1.4;
  padding: 16px;
}

@media screen and (max-width: 840px) {
  .about-company {
    max-width: 720px;
    height: 613px;
  }
}

@media screen and (max-width: 540px) {
  .about-company {
    height: 642px;
  }

  .about-company__title {
    text-align: center;
  }

  .about-company__row {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 19px;
    height: 108px;
    padding: 8px 60px 0;
  }

  .about-company__label {
    font-family: var(--font-noto-sans-jp);
    font-weight: 700;
    padding: 0;
    width: auto;
  }

  .about-company__value {
    font-family: var(--font-noto-sans-jp);
    font-size: 16px;
    padding: 0;
  }
}
