/* ============================================================
   CONFIG
   基準幅を変数で管理。px値 ÷ --base × 100vw で自動計算。
   PC基準: 1366px / SP基準: 375px
   ============================================================ */

:root {
  --base: 1366;
  --base-sp: 375;
}

/* ============================================================
   BASE
   ============================================================ */

p {
  color: #000;
  margin: 0;
}

p.is_white {
  color: #fff;
}

/* ============================================================
   UTILITY
   ============================================================ */

.u_pc {
  display: block;
}
@media screen and (max-width: 767px) {
  .u_pc {
    display: none;
  }
}

.u_sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .u_sp {
    display: block;
  }
}

/* ============================================================
   TOP_CONCEPT
   ============================================================ */

.un_concept_showcase {
  position: relative;
}

.un_concept_showcase_inner {
  position: absolute;
  top: 46%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  width: 100%;
  text-align: center;
}

.un_concept_showcase_txt img {
  width: calc(700 / var(--base) * 100vw);
}

@media screen and (max-width: 767px) {
  .un_concept_showcase_txt img {
    width: 80vw;
  }
}

.un_concept_showcase_bg img {
  width: 100%;
  height: auto;
  display: block;
}

/* ============================================================
   un_concept_mvv
   ============================================================ */

body.is-mvv-active {
  overflow: hidden;
}

.un_concept_mvv_inner {
  display: flex;
  align-items: stretch;
  width: 100%;
  /* ↓ 切り替わり方式（sticky + JS連動）。一旦コメントアウトして保管。
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
    */
}

/* 左：画像エリアは sticky のまま固定表示 */
.un_concept_mvv_left {
  width: 50%;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
  flex-shrink: 0;
}

.un_concept_mvv_visual {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0.6s ease;
}

.un_concept_mvv_visual.is-active {
  opacity: 1;
}

.un_concept_mvv_visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 右：テキストエリアは普通にスクロール */
.un_concept_mvv_right {
  width: 50%;
  /* position: relative; */
  overflow: hidden;
  display: flex;
  flex-direction: column;
  /* height: 100%; ← 切り替わり方式用。コメントアウト */
}

/* 背景装飾（そのまま） */
.un_concept_mvv_ttl::before {
  content: "";
  position: absolute;
  /* 大タイトル合わせ */
  top: -17px;
  left: -38px;
  width: calc(396 / var(--base) * 100vw);
  height: calc(171 / var(--base) * 100vw);
  /* ↓小タイトル合わせ */
  /* top: -29px;
  left: -48px;
  width: calc(165 / var(--base) * 100vw);
  height: calc(72 / var(--base) * 100vw); */
  background-image: var(--mvv-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 0 !important;
  opacity: 1;
}

/* 2個目 */
.un_concept_mvv_item:nth-of-type(2) .un_concept_mvv_ttl::before {
  top: 43px;
}

/* 3個目 */
.un_concept_mvv_item:nth-of-type(3) .un_concept_mvv_ttl::before {
  top: 13px;
}


.un_concept_mvv_item {
  /* ↓ 通常スクロール用：縦に並べる */
  position: relative;
  width: 100%;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: calc(70 / var(--base) * 100vw) calc(90 / var(--base) * 100vw);
  box-sizing: border-box;
  opacity: 1;
  transform: none;
  z-index: 1;

  /* ↓ 切り替わり方式（重ねて表示→opacity/translateYで切替）。一旦コメントアウト。
    position: absolute;
    top: 20px;
    left: 0;
    height: 100%;
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    */
}

/*
.un_concept_mvv_item.is-active {
    opacity: 1;
    transform: translateY(0);
}

.un_concept_mvv_item.to-above {
    opacity: 0;
    transform: translateY(-60px);
    transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.un_concept_mvv_item.to-below {
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
*/

.un_concept_mvv_label {
  font-family: "YuGothic", "Yu Gothic", sans-serif;
  font-size: clamp(14px, calc(17 / var(--base) * 100vw), 30px);
  letter-spacing: 0.2em;
  margin-bottom: clamp(0px, calc(65 / var(--base) * 100vw), 65px);
  margin-left: clamp(0px, calc(10 / var(--base) * 100vw), 10px);
  color: #000;
  font-weight: 500;
  /* position: relative; */
}

.un_concept_mvv_ttl {
  font-size: clamp(0px, calc(50 / var(--base) * 100vw), 50px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.2em;
  margin-bottom: clamp(0px, calc(76 / var(--base) * 100vw), 76px);
  color: #000;
  position: relative;
}

.un_concept_mvv_txt {
  font-size: clamp(10px, calc(16 / var(--base) * 100vw), 16px);
  font-family: "YuGothic", "Yu Gothic", sans-serif;
  line-height: 2.5;
  letter-spacing: 0.1em;
  color: #2d2f31;
}

/* SP */
@media screen and (max-width: 767px) {
  .un_concept_mvv_right::before {
    display: none;
  }

  .un_concept_mvv {
    height: auto !important;
    margin-top: calc(10 / var(--base-sp) * 100vw);
  }

  .un_concept_mvv_sp {
    width: 100%;
  }

  .un_concept_mvv_sp_pair {
    width: 100%;
  }

  .un_concept_mvv_sp_pair .un_concept_mvv_visual {
    position: relative;
    width: 100%;
    height: auto;
    opacity: 1;
  }

  .un_concept_mvv_sp_pair .un_concept_mvv_visual img {
    width: 100%;
    height: auto;
    object-fit: unset;
    display: block;
  }

  .un_concept_mvv_sp_pair .un_concept_mvv_item {
    position: relative;
    height: auto;
    opacity: 1;
    transform: none;
    min-height: 0;
    padding: calc(50 / var(--base-sp) * 100vw) calc(30 / var(--base-sp) * 100vw)
      calc(90 / var(--base-sp) * 100vw);
  }

  .un_concept_mvv_label {
    font-size: calc(11 / var(--base-sp) * 100vw);
    margin-bottom: calc(16 / var(--base-sp) * 100vw);
  }

  .un_concept_mvv_ttl {
    font-size: calc(28 / var(--base-sp) * 100vw);
    margin-bottom: calc(24 / var(--base-sp) * 100vw);
  }

  .un_concept_mvv_txt {
    font-size: calc(13 / var(--base-sp) * 100vw);
  }
}

/* ============================================================
   un_mind_top
   ============================================================ */

.un_mind_top {
  padding: calc(215 / var(--base) * 100vw) calc(410 / var(--base) * 100vw)
    calc(75 / var(--base) * 100vw);
}

/* SP */
@media screen and (max-width: 767px) {
  .un_mind_top {
    padding: calc(30 / var(--base-sp) * 100vw)
      calc(46 / var(--base-sp) * 100vw) calc(50 / var(--base-sp) * 100vw);
  }
}

/* ============================================================
   un_mind
   ============================================================ */

/* セクション：高さはJSで設定 */
.un_mind {
  position: relative;
}

/* stickyコンテナ */
.un_mind_inner {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
}

/* パララックス背景 */
.un_mind_bg {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;
  z-index: 0;
  overflow: hidden;
  margin-bottom: -100vh;
}

.un_mind_bg img {
  width: 100%;
  height: 125%;
  object-fit: cover;
  display: block;
  will-change: transform;
}

/* アイテム */
.un_mind_item {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.8s ease;
}

.un_mind_item.is-active {
  opacity: 1;
}

.un_mind_item:first-child img {
  width: calc(1092 / var(--base) * 100vw);
  height: auto;
  position: absolute;
  top: 52%;
  left: 49%;
  transform: translate(-50%, -50%);
}

.un_mind_item img {
  width: calc(1170 / var(--base) * 100vw);
  height: auto;
  object-fit: cover;
  display: block;
  position: absolute;
  top: 52%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* 左メーター */
.un_mind_meter {
  position: sticky;
  top: 0;
  height: 100vh;
  width: clamp(0px, calc(40 / var(--base) * 100vw), 40px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  float: left;
}

.un_mind_meter_line {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 1px;
  height: 13%;
  background-color: rgba(255, 255, 255, 0.3);
}

.un_mind_meter_dots {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  gap: clamp(0px, calc(14 / var(--base) * 100vw), 14px);
  align-items: center;
}

.un_mind_meter_dot {
  width: clamp(0px, calc(6 / var(--base) * 100vw), 6px);
  height: clamp(0px, calc(6 / var(--base) * 100vw), 6px);
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.4);
  transition:
    background-color 0.3s ease,
    transform 0.3s ease;
  cursor: pointer;
}

.un_mind_meter_dot.is-active {
  background-color: #fff;
  transform: scale(1.5);
}

/* SP */
@media screen and (max-width: 767px) {
  .un_mind {
    height: auto !important;
  }

  .un_mind_bg {
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    margin-bottom: 0;
    z-index: 0;
  }

  .un_mind_inner {
    position: relative;
    height: auto;
    overflow: visible;
    z-index: 1;
    margin-top: -88vh;
    gap: calc(100 / var(--base-sp) * 100vw);
    display: flex;
    flex-direction: column;
  }

  .un_mind_item {
    position: relative;
    width: 100%;
    height: auto;
    opacity: 1;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .un_mind_item:first-child img {
    width: calc(476 / var(--base-sp) * 100vw);
    height: auto;
    position: static;
    transform: none;
  }

  .un_mind_item img {
    width: calc(325 / var(--base-sp) * 100vw);
    height: auto;
    position: static;
    transform: none;
  }

  .un_mind_item:last-child img {
    margin-bottom: calc(116 / var(--base-sp) * 100vw);
  }
}

/* ============================================================
   un_mind_bottom
   ============================================================ */

.un_mind_bottom {
  padding: calc(140 / var(--base) * 100vw) calc(100 / var(--base) * 100vw);
  height: calc(765 / var(--base) * 100vw);
  position: relative;
  z-index: 20;
  background-color: #fff;
}

.un_con_bus_ttl img {
  width: calc(326 / var(--base) * 100vw);
  height: auto;
}

.un_business {
  margin-bottom: calc(40 / var(--base) * 100vw);
}


/* SP */
@media screen and (max-width: 767px) {
  .un_mind_bottom {
    padding: calc(100 / var(--base-sp) * 100vw)
      calc(25 / var(--base-sp) * 100vw) calc(130 / var(--base-sp) * 100vw);
    height: auto;
    position: static;
    z-index: auto;
    background-color: transparent;
  }

  .un_con_bus_left {
    margin-right: auto;
  }

  .un_con_bus_ttl img {
    width: calc(245 / var(--base-sp) * 100vw);
    height: auto;
  }

  .un_business_fig_inner {
    width: calc(420 / var(--base-sp) * 100vw);
    margin-top: calc(50 / var(--base-sp) * 100vw);
  }

  .un_business {
    margin-bottom: calc(20 / var(--base-sp) * 100vw);
  }
}

/* タブレット挙動 */
@media screen and (min-width: 768px) and (max-width: 1080px) {
  .un_business_inner {
    gap: 6rem;
  }
}

/* SP */
@media screen and (max-width: 767px) {
  .un_mind_bottom {
    padding: calc(100 / var(--base-sp) * 100vw)
      calc(25 / var(--base-sp) * 100vw) calc(130 / var(--base-sp) * 100vw);
    height: auto;
    position: static;
    z-index: auto;
    background-color: transparent;
  }

  .un_con_bus_left {
    margin-right: auto;
  }

  .un_con_bus_ttl img {
    width: calc(245 / var(--base-sp) * 100vw);
    height: auto;
  }

  .un_business_fig_inner {
    width: calc(420 / var(--base-sp) * 100vw);
    margin-top: calc(50 / var(--base-sp) * 100vw);
  }

  .un_business {
    margin-bottom: calc(20 / var(--base-sp) * 100vw);
  }
}
