/* カルチャーページ。3カラムとナビはサービスと同じ。col1にサークルは置かない。
   PC: 従来の 6 画面（culture / yolo / life / village / column / company）。
   SP: 1セクション相当を複数ストップで見せるステップUI（下記メディアクエリ）。 */

/* 管理バーの scroll-padding で目次の着地が1セクション分ずれるのを防ぐ */
@media (min-width: 721px) {
  html:has(body.page-culture) {
    scroll-padding-top: 0;
  }
}

.p-cu {
  position: relative;
  height: 600dvh;
}

.page-culture .p-cu__pin {
  position: sticky;
  top: 0;
  z-index: 1;
  height: 100dvh;
  /* 惑星の建物が回転ではみ出しても切れないよう visible */
  overflow: visible;
}

.page-culture .p-cu__pin .p-sv__scale {
  height: 100%;
}

.page-culture .p-cu__pin .p-sv__col--1,
.page-culture .p-cu__pin .p-sv__col--3 {
  position: relative;
  height: 100%;
}

.page-culture .p-sv__gnav {
  z-index: 4;
}

.p-cu__track {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.p-cu__stop {
  height: calc(100% / 6);
}

.page-culture .p-sv__col--2 {
  height: 100%;
  padding: 0;
  overflow: visible;
  background: #e9f0f4;
}

.p-cu__panel {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.34s ease;
}

.p-cu__panel.is-on {
  opacity: 1;
}

.p-cu__column-copy {
  position: absolute;
  top: 32.36%;
  left: 28.08%;
  width: 43.82%;
  margin: 0;
  color: #4c5e6f;
  font-size: calc(17 * var(--u));
  line-height: calc(35.07 * var(--u));
  text-align: center;
}

.p-cu__column-copy p {
  margin: 0;
  color: #4c5e6f;
  white-space: nowrap;
}

.p-cu__column-copy p + p {
  margin-top: calc(35.07 * var(--u));
}

.p-cu__column-copy-sp {
  display: none;
}

/* COMPANY: Figma 3756:19874 / 3629:6354 — PC・SP共通の情報レイアウト */
.p-cu__company {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: calc(30 * var(--u));
  width: calc(481.54 * var(--u));
  margin: 0;
  color: #4c5e6f;
  font-size: calc(17 * var(--u));
  line-height: normal;
  transform: translate(-50%, -50%);
}

.p-cu__co-table {
  display: flex;
  align-items: flex-start;
  gap: calc(46 * var(--u));
  width: 100%;
  min-height: calc(321.84 * var(--u));
}

.p-cu__co-keys {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  align-items: center;
  gap: calc(30 * var(--u));
  width: calc(56.2 * var(--u));
}

.p-cu__co-rule {
  flex-shrink: 0;
  align-self: stretch;
  width: 1px;
  min-height: calc(321.84 * var(--u));
  background: #c5ced6;
}

.p-cu__co-vals {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: calc(30 * var(--u));
  min-width: 0;
  max-width: calc(333 * var(--u));
}

.p-cu__company :is(.p-cu__co-keys, .p-cu__co-vals, .p-cu__co-biz-col, .p-cu__co-ceo) p {
  margin: 0;
  color: #4c5e6f;
}

.p-cu__co-vals > p {
  white-space: nowrap;
}

.p-cu__co-biz {
  display: flex;
  align-items: flex-start;
  gap: calc(48 * var(--u));
}

.p-cu__co-biz-col {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: calc(18 * var(--u));
  width: calc(70 * var(--u));
  white-space: nowrap;
}

.p-cu__co-biz-col--sub {
  width: calc(126 * var(--u));
}

.p-cu__co-ceo {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: calc(30 * var(--u));
}

.p-cu__co-ceo-label {
  flex-shrink: 0;
  white-space: nowrap;
}

.p-cu__co-sign {
  display: block;
  width: calc(114.49 * var(--u));
  height: auto;
  object-fit: contain;
}

.p-cu__lead {
  position: absolute;
  top: calc(292.53 / 1024 * 100%);
  left: calc(225.7 * var(--u));
  width: calc(308 * var(--u));
  color: #4c5e6f;
  text-align: center;
}

.p-cu__kicker {
  margin: 0;
  font-size: calc(17 * var(--u));
  font-weight: 400;
  line-height: 1.2;
}

.p-cu__body {
  position: absolute;
  top: calc(85.57 * var(--u));
  left: 0;
  width: 100%;
  font-size: calc(17 * var(--u));
  line-height: calc(35.07 * var(--u));
}

.p-cu__body p {
  margin: 0;
  color: #4c5e6f;
  white-space: nowrap;
}

.p-cu__body p + p {
  margin-top: calc(35.07 * var(--u));
}

/* PC col1: Figma YOLO_コンテンツ 3740:19539（476.24×380.49） */
.p-cu__yolo {
  position: absolute;
  top: calc(322 * var(--u));
  left: 50%;
  display: flex;
  flex-direction: column;
  gap: calc(45 * var(--u));
  width: calc(476.24 * var(--u));
  max-width: calc(100% - (48 * var(--u)));
  height: auto;
  transform: translateX(-50%);
}

.p-cu__yolo-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: calc(16 * var(--u));
}

.p-cu__yolo-row--top {
  min-height: calc(157.63 * var(--u));
}

.p-cu__yolo-row--bottom {
  min-height: calc(177.86 * var(--u));
}

.p-cu__yolo-path,
.p-cu__yolo-glass {
  position: relative;
  display: block;
  flex-shrink: 0;
  height: auto;
}

.p-cu__yolo-path {
  width: calc(200 * var(--u));
}

.p-cu__yolo-glass {
  width: calc(180 * var(--u));
}

.p-cu__yolo-quote {
  display: flex;
  flex-direction: column;
  gap: calc(23 * var(--u));
  width: calc(200 * var(--u));
  margin: 0;
  color: #4c5e6f;
  font-size: calc(17 * var(--u));
  font-weight: 400;
  line-height: normal;
  text-align: left;
  white-space: normal;
}

.p-cu__yolo-quote p {
  margin: 0;
  color: #4c5e6f;
}

.p-cu__yolo-copy {
  flex: 1 1 auto;
  min-width: 0;
  width: calc(240 * var(--u));
  color: #4c5e6f;
  font-size: calc(17 * var(--u));
  line-height: calc(47 * var(--u));
}

.p-cu__yolo-copy p {
  margin: 0;
  color: #4c5e6f;
  white-space: normal;
}

.p-cu__yolo-copy p + p {
  margin-top: 0;
}

/* PC col1: Figma LIFE!ism_コンテンツ 3740:19578（612×745・円 300・隙間 12）
   gnav（top 80.5/1024）の下に余白を空けて被らないようにする */
.p-cu__life {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(38 * var(--u));
  box-sizing: border-box;
  width: calc(612 * var(--u));
  max-width: calc(100% - (48 * var(--u)));
  height: auto;
  transform: translate(-50%, -50%);
}

.p-cu__life-intro {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: calc(20 * var(--u));
  width: min(calc(547 * var(--u)), 100%);
  text-align: center;
}

.p-cu__life-title {
  margin: 0;
  color: #4c5e6f;
  font-size: calc(17 * var(--u));
  font-weight: 400;
  line-height: normal;
}

.p-cu__life-lead {
  margin: 0;
  color: #4c5e6f;
  font-size: calc(10 * var(--u));
  line-height: calc(18 * var(--u));
  text-align: left;
}

.p-cu__life-lead p {
  margin: 0;
  color: #4c5e6f;
  white-space: normal;
}

.p-cu__village {
  position: absolute;
  top: calc(214.52 * var(--u));
  left: calc(155.12 * var(--u));
  width: calc(449.59 * var(--u));
}

.p-cu__village-title {
  margin: 0;
  color: #595959;
  font-size: calc(17 * var(--u));
  font-weight: 400;
  line-height: 1.2;
  text-align: center;
}

.p-cu__village-copy {
  position: absolute;
  top: calc(54.1 * var(--u));
  left: calc(53 * var(--u));
  margin: 0;
  color: #7f8c98;
  font-size: calc(10 * var(--u));
  line-height: calc(18.67 * var(--u));
}

.p-cu__village-copy p {
  margin: 0;
  color: #7f8c98;
  white-space: nowrap;
}

.p-cu__village-copy p + p {
  margin-top: calc(18.67 * var(--u));
}

.p-cu__village-copy-sp {
  display: none;
}

.p-cu__map {
  position: absolute;
  top: calc(353.43 * var(--u));
  left: 0;
  width: 100%;
  pointer-events: none;
}

.p-cu__panel.is-on .p-cu__map {
  pointer-events: auto;
}

.p-cu__map-land {
  display: block;
  width: 100%;
  height: auto;
}

.p-cu__spots {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  pointer-events: none;
}

.p-cu__spot {
  position: absolute;
  left: var(--spot-l);
  top: var(--spot-t);
  width: var(--spot-w);
  margin: 0;
  z-index: 1;
  pointer-events: auto;
  transform: scale(1);
  transform-origin: 50% 70%;
  transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-cu__spot:hover,
.p-cu__spot:focus-within {
  z-index: 4;
  transform: scale(1.07);
}

.p-cu__spot-hit {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  appearance: none;
}

.p-cu__spot-img {
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
  user-select: none;
}

.p-cu__spot-label {
  position: absolute;
  left: 50%;
  bottom: calc(100% - 0.35em);
  z-index: 2;
  display: inline-block;
  padding: 0.35em 0.7em;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 4px 14px rgba(0, 25, 50, 0.12);
  color: #59697a;
  font-size: calc(17 * var(--u));
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.12em;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, 8px);
  transition: opacity 0.3s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-cu__spot:hover .p-cu__spot-label,
.p-cu__spot:focus-within .p-cu__spot-label {
  opacity: 1;
  transform: translate(-50%, 0);
}

.p-cu__life-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(12 * var(--u));
  width: 100%;
}

.p-cu__card {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 1;
  height: auto;
  padding: 15% 0 0;
  overflow: hidden;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 calc(13.3 * var(--u)) rgba(0, 0, 0, 0.1);
}

.p-cu__card img {
  display: none;
}

.p-cu__card-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 65.333%; /* 196/300 */
  max-width: calc(196 * var(--u));
  color: #4c5e6f;
  text-align: center;
}

.p-cu__card-title,
.p-cu__card-en,
.p-cu__card-body {
  margin: 0;
  font-weight: 400;
}

.p-cu__card-title,
.p-cu__card-en {
  color: #595959;
  font-size: calc(17 * var(--u));
  line-height: normal;
  white-space: nowrap;
}

.p-cu__card-en {
  margin-top: calc(8 * var(--u));
}

.p-cu__card-body {
  margin-top: calc(16 * var(--u));
  color: #4c5e6f;
  font-size: calc(10 * var(--u));
  line-height: calc(18 * var(--u));
  white-space: normal;
}

.p-cu__stage {
  position: relative;
  height: 100%;
  /* 惑星上部の建物が切れないよう visible（クリップは pin / col2 でも外す） */
  overflow: visible;
}

.p-cu__sky,
.p-cu__planet {
  position: absolute;
  display: block;
  max-width: none;
  pointer-events: none;
}

.p-cu__sky {
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-cu__planet-stack {
  position: absolute;
  inset: 0;
}

/* Figma planet_*_building: 650×650・円位置共通。回転原点は枠中心 */
.p-cu__planet {
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  transform-origin: 50% 50%;
  opacity: 0;
}

.p-cu__planet[data-pose="culture"] {
  opacity: 1;
}

.p-cu__posts {
  position: absolute;
  z-index: 2;
  top: 43.09%;
  left: 4.72%;
  width: 90.63%;
  height: 33.26%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.34s ease;
}

.p-cu__posts.is-on {
  opacity: 1;
  pointer-events: auto;
}

.p-cu__post {
  position: absolute;
  top: 0;
  width: 32.35%;
  aspect-ratio: 1;
  color: #4c5e6f;
  text-decoration: none;
}

.p-cu__post:nth-child(1) {
  left: 0;
}

.p-cu__post:nth-child(2) {
  left: 33.79%;
}

.p-cu__post:nth-child(3) {
  left: 67.65%;
}

.p-cu__post-circle {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 0 calc(8 * var(--u)) rgba(0, 0, 0, 0.16));
}

.page-culture .p-sv__col--2 .p-cu__post-title,
.page-culture .p-sv__col--2 .p-cu__all span {
  color: #4c5e6f;
}

.page-culture .p-sv__col--2 .p-cu__all span {
  color: #000;
}

.p-cu__post-title {
  position: absolute;
  top: 41%;
  left: 0;
  right: 0;
  margin: 0;
  color: #4c5e6f;
  font-size: calc(17 * var(--u));
  line-height: calc(27.1 * var(--u));
  text-align: center;
  white-space: nowrap;
}

.p-cu__post--wide .p-cu__post-title {
  top: 32.7%;
}

.p-cu__post-title--plain {
  top: 34%;
  padding: 0 2%;
  white-space: normal;
}

.p-cu__post-chevron {
  position: absolute;
  top: 81.8%;
  left: 50%;
  width: calc(11.88 * var(--u));
  height: auto;
  transform: translateX(-50%);
}

/* PC: 旧img配置（left/top %）を維持。白地・矢印のみCSS */
.p-cu__all {
  position: absolute;
  top: 85.31%;
  left: 33.88%;
  box-sizing: border-box;
  width: 32.18%;
  height: 14.69%;
  background: #fff;
  box-shadow: 0 0 calc(15.9 * var(--u)) rgba(0, 0, 0, 0.2);
  color: #000;
  font-size: calc(17 * var(--u));
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

.p-cu__all span {
  position: absolute;
  top: 50%;
  left: 16.8%;
  color: #000;
  transform: translateY(-50%);
}

.p-cu__all::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 83%;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: calc(4.35 * var(--u)) 0 calc(4.35 * var(--u)) calc(7.53 * var(--u));
  border-color: transparent transparent transparent #001932;
  transform: translateY(-50%);
}


/* PC / SP 併存: ステップUIはスマホのみ（display:contents は使わない＝配置コンテキストを壊さない） */
.p-cu__sp-only {
  display: none !important;
}

@media (max-width: 720px) {
  body.has-sp-chrome .p-cu__pc-only {
    display: none !important;
  }

  body.has-sp-chrome .p-cu__sp-only {
    display: block !important;
  }

  body.has-sp-chrome .p-cu__life.p-cu__sp-only,
  body.has-sp-chrome .p-cu__village.p-cu__sp-only {
    position: absolute;
  }
}

@media (max-width: 720px) {
  .page-culture .p-cu__stage {
    padding: 0;
    min-height: 100dvh;
    height: 100%;
  }

  .p-cu__body p,
  .p-cu__yolo-quote,
  .p-cu__yolo-copy p,
  .p-cu__life-lead p,
  .p-cu__village-copy p,
  .p-cu__column-copy p,
  .p-cu__card-title,
  .p-cu__card-en {
    white-space: normal;
  }

  /* SP: ヘッダー／フッター間に固定。テキストはフェード、惑星は回転切替 */
  body.has-sp-chrome.page-culture .p-cu__pin {
    position: fixed;
    top: var(--sp-header-h);
    left: 0;
    right: 0;
    z-index: 1;
    width: 100%;
    height: var(--sp-stage-h);
    /* 惑星の回転ではみ出しても見切れないようクリップしない */
    overflow: visible;
  }

  body.has-sp-chrome.page-culture .p-cu__pin .p-sv__scale {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
  }

  /* 汎用 sp.css の col1 非表示を上書き：テキストパネル用オーバーレイ
     左右は col2 と同じ --sp-col-pad-x。left は Figma x − 60 */
  body.has-sp-chrome.page-culture .p-sv__col--1 {
    display: block;
    position: absolute;
    top: 0;
    right: var(--sp-col-pad-x);
    bottom: 0;
    left: var(--sp-col-pad-x);
    z-index: 5;
    width: auto;
    height: auto;
    pointer-events: none;
    background: transparent;
  }

  body.has-sp-chrome.page-culture .p-sv__gnav {
    display: none;
  }

  body.has-sp-chrome.page-culture .p-sv__col--2 {
    position: absolute;
    inset: 0;
    z-index: 1;
    box-sizing: border-box;
    flex-basis: auto;
    width: 100%;
    height: 100%;
    padding-inline: var(--sp-col-pad-x);
    overflow: visible;
    background: #e9f0f4;
  }

  body.has-sp-chrome.page-culture .p-sv__col--3 {
    display: none;
  }

  body.has-sp-chrome.page-culture .p-cu__track {
    position: relative;
    z-index: 0;
    display: block;
    height: 1500dvh;
  }

  body.has-sp-chrome.page-culture .p-cu {
    height: auto;
    min-height: 0;
  }

  body.has-sp-chrome.page-culture .p-cu__stop {
    height: calc(1500dvh / 15);
  }

  body.has-sp-chrome.page-culture .p-cu__panel {
    pointer-events: none;
  }

  body.has-sp-chrome.page-culture .p-cu__panel.is-on {
    pointer-events: auto;
  }

  /* 1 CULTURE_コンテンツ 3740:19770 — 374×508 / top 283（pin基準 133） */
  body.has-sp-chrome.page-culture .p-cu__lead {
    top: calc((283 - 150) * var(--sp));
    left: 50%;
    width: calc(444 * var(--sp));
    transform: translateX(-50%);
    text-align: left;
  }

  body.has-sp-chrome.page-culture .p-cu__kicker {
    color: #000;
    font-size: calc(24.84 * var(--sp));
    line-height: normal;
  }

  body.has-sp-chrome.page-culture .p-cu__body {
    position: relative;
    top: auto;
    left: auto;
    display: flex;
    flex-direction: column;
    gap: calc(67 * var(--sp));
    width: 100%;
    margin-top: calc(64 * var(--sp));
    font-size: calc(21.01 * var(--sp));
    line-height: calc(24 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__body p {
    color: #4c5e6f;
    white-space: normal;
  }

  body.has-sp-chrome.page-culture .p-cu__body p + p {
    margin-top: 0;
  }

  /* 2 YOLO_コンテンツ 3740:19539 — 476×380 / top 351 / left 194（−60）・惑星の上 */
  body.has-sp-chrome.page-culture .p-cu__yolo {
    top: calc((351 - 150) * var(--sp));
    left: 50%;
    display: flex;
    flex-direction: column;
    gap: calc(45 * var(--sp));
    width: calc(550 * var(--sp));
    height: calc(380.49 * var(--sp));
    right: auto;
    bottom: auto;
    transform: translateX(-50%);
  }

  body.has-sp-chrome.page-culture .p-cu__yolo-row {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }

  body.has-sp-chrome.page-culture .p-cu__yolo-row--top {
    min-height: calc(157.63 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__yolo-row--bottom {
    min-height: calc(177.86 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__yolo-path,
  body.has-sp-chrome.page-culture .p-cu__yolo-glass {
    position: relative;
    top: auto;
    left: auto;
    flex-shrink: 0;
    height: auto;
  }

  body.has-sp-chrome.page-culture .p-cu__yolo-path {
    width: calc(213.75 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__yolo-glass {
    width: calc(229.48 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__yolo-quote {
    position: relative;
    top: auto;
    left: auto;
    display: flex;
    flex-direction: column;
    gap: calc(23 * var(--sp));
    width: calc(220 * var(--sp));
    color: #4c5e6f;
    font-size: calc(20 * var(--sp));
    line-height: normal;
    white-space: normal;
  }

  body.has-sp-chrome.page-culture .p-cu__yolo-quote p {
    color: #4c5e6f;
  }

  body.has-sp-chrome.page-culture .p-cu__yolo-quote p + p {
    margin-top: 0;
  }

  body.has-sp-chrome.page-culture .p-cu__yolo-copy {
    position: relative;
    top: auto;
    left: auto;
    width: calc(220 * var(--sp));
    color: #4c5e6f;
    font-size: calc(20 * var(--sp));
    line-height: calc(47 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__yolo-copy p {
    color: #4c5e6f;
    white-space: normal;
  }

  /* LIFE!ism SP: 5ステップ共通。大きく・1枚ずつ */
  body.has-sp-chrome.page-culture .p-cu__life {
    top: 0;
    left: 50%;
    width: min(100%, calc(640 * var(--sp)));
    height: calc(780 * var(--sp));
    max-height: none;
    right: auto;
    bottom: auto;
    transform: translateX(-50%);
  }

  body.has-sp-chrome.page-culture .p-cu__life-step {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
  }

  body.has-sp-chrome.page-culture .p-cu__life-step.is-on {
    opacity: 1;
    pointer-events: auto;
  }

  body.has-sp-chrome.page-culture .p-cu__village-step {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
  }

  body.has-sp-chrome.page-culture .p-cu__village-step.is-on {
    opacity: 1;
    pointer-events: auto;
  }

  body.has-sp-chrome.page-culture .p-cu__panel.is-on .p-cu__village-step.is-on .p-cu__map {
    pointer-events: auto;
  }

  body.has-sp-chrome.page-culture .p-cu__column-finale {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    box-sizing: border-box;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
  }

  body.has-sp-chrome.page-culture .p-cu__column-finale.is-on {
    opacity: 1;
    pointer-events: auto;
  }

  body.has-sp-chrome.page-culture .p-cu__column-finale-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: min(100%, calc(520 * var(--sp)));
  }

  body.has-sp-chrome.page-culture .p-cu__card--solo {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    background: #fff;
    box-shadow: 0 0 calc(13.3 * var(--sp)) rgba(0, 0, 0, 0.1);
  }

  body.has-sp-chrome.page-culture .p-cu__life-intro {
    position: relative;
    top: auto;
    left: auto;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: calc(28 * var(--sp));
    width: min(100%, calc(560 * var(--sp)));
    text-align: center;
  }

  body.has-sp-chrome.page-culture .p-cu__life-title {
    color: #4c5e6f;
    font-size: calc(32 * var(--sp));
    line-height: 1.35;
  }

  body.has-sp-chrome.page-culture .p-cu__life-lead {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 0;
    color: #4c5e6f;
    font-size: calc(20 * var(--sp));
    line-height: 2;
    text-align: left;
  }

  body.has-sp-chrome.page-culture .p-cu__life-lead p {
    color: #4c5e6f;
    white-space: normal;
  }

  body.has-sp-chrome.page-culture .p-cu__life-grid {
    display: none;
  }

  body.has-sp-chrome.page-culture .p-cu__card--solo {
    width: min(100%, calc(560 * var(--sp)));
    max-width: calc(560 * var(--sp));
    padding: calc(48 * var(--sp)) calc(90 * var(--sp));
    border-radius: 50%;
    aspect-ratio: 1/1;
    justify-content: center;
  }

  body.has-sp-chrome.page-culture .p-cu__card img {
    display: none;
  }

  body.has-sp-chrome.page-culture .p-cu__card--solo .p-cu__card-copy {
    width: 100%;
    max-width: none;
    margin: 0;
    text-align: center;
  }

  body.has-sp-chrome.page-culture .p-cu__card--solo .p-cu__card-title {
    color: #595959;
    font-size: calc(28 * var(--sp));
    line-height: 1.4;
    white-space: normal;
  }

  body.has-sp-chrome.page-culture .p-cu__card--solo .p-cu__card-en {
    color: #595959;
    font-size: calc(24 * var(--sp));
    line-height: normal;
    white-space: normal;
  }

  body.has-sp-chrome.page-culture .p-cu__card-en {
    margin-top: calc(8 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__card--solo .p-cu__card-body {
    margin-top: calc(28 * var(--sp));
    width: 100%;
    color: #4c5e6f;
    font-size: calc(20 * var(--sp));
    line-height: 1.75;
    text-align: left;
    white-space: normal;
  }

  /* One Village SP: 地図中央 → 文章2ステップ */
  body.has-sp-chrome.page-culture .p-cu__village {
    top: 0;
    left: 50%;
    width: min(100%, calc(640 * var(--sp)));
    height: calc(780 * var(--sp));
    max-height: none;
    right: auto;
    bottom: auto;
    transform: translateX(-50%);
  }

  body.has-sp-chrome.page-culture .p-cu__map {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    max-width: calc(560 * var(--sp));
    margin: 0 auto;
  }

  body.has-sp-chrome.page-culture .p-cu__village-body {
    width: min(100%, calc(560 * var(--sp)));
    color: #4c5e6f;
    font-size: calc(24 * var(--sp));
    line-height: 2;
  }

  body.has-sp-chrome.page-culture .p-cu__map--center {
    width: calc(100vw - 2 * (5 / 375 * 100vw));
    max-width: none;
    flex-shrink: 0;
    left: 50%;
    transform: translateX(-50%);
  }

  body.has-sp-chrome.page-culture .p-cu__spot-label {
    font-size: calc(14 / 375 * 100vw);
    letter-spacing: 0.04em;
  }

  /* COLUMN: 記事1→2→3 → テキスト+ボタン */
  body.has-sp-chrome.page-culture .p-cu__panel[data-section="column"].is-on {
    pointer-events: none;
  }

  body.has-sp-chrome.page-culture .p-cu__panel[data-section="column"].is-on .p-cu__column-finale.is-on {
    pointer-events: auto;
  }

  body.has-sp-chrome.page-culture .p-cu__column {
    position: absolute;
    inset: 0;
  }

  body.has-sp-chrome.page-culture .p-cu__column-finale {
    justify-content: flex-start;
    padding: 32px calc(24 * var(--sp)) calc(120 * var(--sp));
    /* 惑星と重ならないよう上寄り。テキスト+ボタンを画面内に収める */
  }

  body.has-sp-chrome.page-culture .p-cu__column-finale-inner {
    width: auto;
    max-height: auto;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.has-sp-chrome.page-culture .p-cu__column-copy-pc {
    display: none;
  }

  body.has-sp-chrome.page-culture .p-cu__column-copy-sp {
    display: flex;
    flex-direction: column;
    gap: calc(28 * var(--sp));
    position: relative;
    top: auto;
    left: auto;
    width: auto;
    text-align: left;
    font-size: calc(20 * var(--sp));
    line-height: calc(24 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__column-copy-sp p {
    color: #4c5e6f;
    white-space: normal;
  }

  body.has-sp-chrome.page-culture .p-cu__column-copy-sp p + p {
    margin-top: 0;
  }

  body.has-sp-chrome.page-culture .p-cu__posts {
    top: 40px;
    left: 50%;
    width: calc(500 * var(--sp));
    height: auto;
    aspect-ratio: 1;
    transform: translateX(-50%);
    z-index: 6;
  }

  body.has-sp-chrome.page-culture .p-cu__post {
    position: absolute;
    inset: 0;
    width: 100%;
    aspect-ratio: 1;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
  }

  body.has-sp-chrome.page-culture .p-cu__post.is-on {
    opacity: 1;
    pointer-events: auto;
  }

  body.has-sp-chrome.page-culture .p-cu__post-circle {
    filter: drop-shadow(0 0 calc(8 * var(--sp)) rgba(0, 0, 0, 0.16));
  }

  body.has-sp-chrome.page-culture .p-cu__post-title {
    top: 41.2%;
    color: #4c5e6f;
    font-size: calc(24 * var(--sp));
    line-height: calc(48 * var(--sp));
    text-align: center;
  }

  body.has-sp-chrome.page-culture .p-cu__post--wide .p-cu__post-title {
    top: 32.7%;
  }

  body.has-sp-chrome.page-culture .p-cu__post-title--plain {
    white-space: normal;
    padding: 0 8%;
  }

  body.has-sp-chrome.page-culture .p-cu__post-chevron {
    top: 81.8%;
    width: calc(18 * var(--sp));
  }

  /* SP「すべて見る」: finale 内・テキスト直下 */
  body.has-sp-chrome.page-culture .p-cu__all {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: calc(16 * var(--sp));
    top: calc((18.43 + 550) * var(--sp));
    left: 0;
    width: auto;
    height: calc(50.03 * var(--sp));
    padding: 0 calc(24 * var(--sp));
    background: #fff;
    box-shadow: 0 0 calc(15.9 * var(--sp)) rgba(0, 0, 0, 0.2);
    font-size: calc(15.59 * var(--sp));
    line-height: 1;
    white-space: nowrap;
  }

  body.has-sp-chrome.page-culture .p-cu__all--in-column {
    position: relative;
    top: auto;
    left: auto;
    bottom: auto;
    width: auto;
    height: calc(50.03 * var(--sp));
    margin-top: calc(48 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__all span {
    position: static;
    top: auto;
    left: auto;
    color: #000;
    transform: none;
  }

  body.has-sp-chrome.page-culture .p-cu__all::after {
    position: static;
    top: auto;
    left: auto;
    margin-left: 0;
    border-width: calc(3.5 * var(--sp)) 0 calc(3.5 * var(--sp)) calc(7 * var(--sp));
    transform: none;
  }

  /* COMPANY: PCと同構造。864枠で本文幅を確保し中央寄せ */
  body.has-sp-chrome.page-culture .p-cu__company {
    top: calc((414 - 250) * var(--sp));
    left: 50%;
    right: auto;
    width: min(calc(640 * var(--sp)), calc(100% - 48 * var(--sp)));
    max-width: calc(640 * var(--sp));
    gap: calc(60 * var(--sp));
    font-size: calc(24 * var(--sp));
    line-height: normal;
    transform: translateX(-50%);
  }

  body.has-sp-chrome.page-culture .p-cu__co-table {
    gap: calc(40 * var(--sp));
    min-height: 0;
  }

  body.has-sp-chrome.page-culture .p-cu__co-keys {
    gap: calc(40 * var(--sp));
    width: calc(100 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__co-rule {
    min-height: calc(360 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__co-vals {
    gap: calc(40 * var(--sp));
    max-width: none;
  }

  body.has-sp-chrome.page-culture .p-cu__co-vals > p {
    white-space: normal;
  }

  body.has-sp-chrome.page-culture .p-cu__co-biz {
    gap: calc(40 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__co-biz-col {
    gap: calc(18 * var(--sp));
    width: auto;
  }

  body.has-sp-chrome.page-culture .p-cu__co-biz-col--sub {
    width: auto;
  }

  body.has-sp-chrome.page-culture .p-cu__co-ceo {
    gap: calc(24 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__co-sign {
    width: calc(200 * var(--sp));
  }

  body.has-sp-chrome.page-culture .p-cu__stage {
    min-height: 0;
    height: 100%;
    overflow: visible;
  }

  /*
   * 惑星 SP: Figma planet_1〜4_building（3738:19526 / 19525 / 19528 / 19530）
   * 同一 650×650 枠・円位置共通。left 107 / top 899（枠幅 864）。
   * pin はヘッダー下からなので top = 899−150。bottom 基準だと dvh 圧縮時に本文と被る。
   */
  body.has-sp-chrome.page-culture .p-cu__planet-stack {
    top: 60%;
    right: auto;
    bottom: auto;
    left: 50%;
    transform: translateX(-50%);
    width: calc(750 * var(--sp));
    height: calc(750 * var(--sp));
    max-height: none;
    overflow: visible;
    z-index: 2;
  }

  body.has-sp-chrome.page-culture .p-cu__planet {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    margin-left: 0;
    object-fit: contain;
    object-position: center center;
    transform-origin: 50% 50%;
  }

  /* 空はヘッダー〜画面下端まで（途中見切れ防止） */
  body.has-sp-chrome.page-culture .p-cu__sky {
    left: calc(-1 * var(--sp-col-pad-x));
    width: calc(100% + 2 * var(--sp-col-pad-x));
    right: auto;
    top: calc(-1 * var(--sp-header-h));
    height: 100dvh;
    object-fit: cover;
    object-position: center center;
    background-color: #e9f0f4;
  }
}

@media (prefers-reduced-motion: reduce) {
  .p-cu__panel,
  .p-cu__posts,
  .p-cu__post,
  .p-cu__column-finale,
  .p-cu__spot,
  .p-cu__spot-label {
    transition: none;
  }
}
