/* TOP：了解MEC ボタンをイラスト背景より前面に（クリック可能に） */
.pgTop .sectionAbout__inner {
  z-index: 10;
}

.pgTop .sectionAbout__bgPc2 {
  z-index: 1;
}

.pgTop .sectionAbout__buttonArea .buttonEllipse {
  position: relative;
  z-index: 61;
}

/* 右サイドナビ：スクロール追従のみ（スクロールバーなし） */
@media screen and (min-width: 768px), print {
  .contentWrap.-side .contentSide .contentSide__inner {
    position: sticky;
    top: 1.04rem;
    align-self: flex-start;
  }

  body.-headerLayout .contentWrap.-side .contentSide .contentSide__inner,
  body.-headerSticky .contentWrap.-side .contentSide .contentSide__inner {
    top: 0.88rem;
  }
}

/* ヘッダー右上：電話（オレンジ）＋ お問い合わせ（青） */
:root {
  --mec-cta-phone-bg: #fe791a;
  --mec-cta-phone-bg-hover: #e56d16;
}

@media screen and (min-width: 768px), print {
  .globalNaviSub__cta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.06rem;
    margin-right: 0.32rem;
    flex-shrink: 0;
  }

  .globalNaviSub__phone {
    display: flex;
    align-items: center;
    gap: 0.08rem;
    padding: 0.1rem 0.2rem 0.1rem 0.24rem;
    background-color: var(--mec-cta-phone-bg);
    color: #fff;
    text-decoration: none;
    font-size: 0.14rem;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    border-radius: 0.58rem;
    transition: filter 0.25s ease, transform 0.3s ease;
  }

  .globalNaviSub__phone:hover {
    background-color: var(--mec-cta-phone-bg-hover);
    transform: scale(1.03);
  }

  .globalNaviSub__phoneIcon {
    display: inline-block;
    width: 0.24rem;
    height: 0.24rem;
    flex-shrink: 0;
    background: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5.5%204h2l1.5%204.5L8%2010.5a11%2011%200%200%200%205.5%205.5l2-1L20%2017.5V20a1%201%200%200%201-1%201A15%2015%200%200%201%204%205.5%201%201%200%200%201%205%204.5z%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E") no-repeat center / contain;
  }

  .globalNaviSub__cta .globalNaviSub__contact {
    display: block;
    margin-right: 0;
    line-height: 0;
  }

  .globalNaviSub__cta .globalNaviSub__contact img {
    display: block;
    border-radius: 0 0 0 0.08rem;
  }

  body.-headerLayout .globalNaviSub__cta {
    margin-right: 0.2rem;
  }
}

/* AMALPHA 下部CTA：TOP と同じ楕円ボタン（buttonEllipse） */
.amalphaBottomCta {
  margin-top: 0.64rem;
  padding-top: 0.48rem;
}

.amalphaBottomCta__ellipseArea {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.48rem;
}

.amalphaBottomCta__ellipseArea .buttonEllipse__wrap {
  position: static;
  display: inline-block;
  margin: 0;
}

@media screen and (max-width: 767px) {
  .amalphaBottomCta__ellipseArea {
    flex-direction: column;
    align-items: center;
    gap: 0.32rem;
  }
}

@media screen and (max-width: 767px) {
  .globalNaviSub__phone.-spItem {
    order: 0;
    width: 100%;
    color: #fff;
    background-color: var(--mec-cta-phone-bg);
    padding: 0.24rem 0.52rem;
    border-radius: 0.58rem;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.18rem;
    letter-spacing: 0.1em;
    position: relative;
  }
}

/* 微信公众号 QRコード */
.qrcode-floating {
  position: fixed;
  right: 0.2rem;
  bottom: 30%;
  z-index: 1000;
  width: auto;
  height: auto;
  padding: 0;
  background: none;
  border: none !important;
  border-radius: 0;
  box-shadow: none;
  text-align: center;
  box-sizing: border-box;
}

.qrcode-floating__img {
  display: block;
  width: 1.5rem !important;
  height: auto !important;
  max-width: 150px;
  margin: 0 auto;
}

.qrcode-floating__close {
  position: absolute;
  top: -0.1rem;
  right: -0.1rem;
  width: 0.3rem;
  height: 0.3rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: #b3b3b3;
  color: #186ebe;
  font-size: 0.2rem;
  line-height: 0.3rem;
  cursor: pointer;
}

@media screen and (max-width: 767px) {
  .qrcode-floating {
    right: 0.12rem;
    bottom: 20%;
  }

  .qrcode-floating__img {
    width: 1.2rem !important;
  }
}

/* 生活中的应用：ハブ型キービジュアル（1画面・スクロールなし） */
body#lifeHub {
  overflow: hidden;
  height: 100vh;
  height: 100dvh;
}

/* inview 未発火でも画像を表示（スクロールなしページ用） */
#lifeHub .inview.-inviewFadeInUp {
  opacity: 1;
  transform: none;
}

#lifeHub {
  font-family: "Noto Sans SC", sans-serif;
  background-color: #fff;
  color: #141414;
}

#lifeHub #wrapper.lifeHub {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  height: 100vh;
  height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
  padding: 0.1rem 0.2rem 0.06rem;
}

.lifeHub__header {
  flex-shrink: 0;
  max-width: 12rem;
  width: 100%;
  margin: 0 auto 0.04rem;
}

.lifeHub__logo {
  display: block;
  height: 0.3rem;
  width: auto;
}

.lifeHub__main {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 12rem;
  margin: 0 auto;
}

.lifeHub__intro {
  flex-shrink: 0;
  text-align: center;
  margin-bottom: 0.06rem;
}

.lifeHub__title {
  margin: 0 0 0.06rem;
  font-size: clamp(0.28rem, 5.2vh, 0.48rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
  color: #186ebe;
}

.lifeHub__subtitle {
  margin: 0;
  font-size: clamp(0.13rem, 1.9vh, 0.18rem);
  font-weight: 500;
  line-height: 1.35;
  color: #141414;
}

.lifeHub__visualWrap {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-bottom: 0;
  overflow: visible;
}

/* 中央都市 + 周囲10アイコン（横長楕円配置） */
.lifeHub__orbit {
  --orbit-w: min(98vw, calc((100dvh - 6rem) * 1.48), 16rem);
  --orbit-h: min(62vmin, calc(100dvh - 7.5rem), 8.8rem);
  position: relative;
  flex-shrink: 1;
  width: var(--orbit-w);
  height: var(--orbit-h);
  min-width: 9rem;
  min-height: 5.4rem;
  max-width: 100%;
  margin: 0 auto;
  overflow: visible;
}

.lifeHub__center {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  width: 28%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

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

.lifeHub__icons {
  --orbit-path-rx: 49%;
  --orbit-path-ry: 36%;
  --orbit-spin-duration: 120;
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  z-index: 2;
}

.lifeHub__iconItem {
  position: absolute;
  left: var(--icon-x);
  top: var(--icon-y);
  width: clamp(1.5rem, 32%, 4rem);
  margin: 0;
  transform: translate(-50%, -50%);
  z-index: 2;
}

/* 楕円の周上をゆっくり移動（全体のくるり回しではない） */
@supports (offset-path: ellipse(49% 36% at 50% 50%)) {
  .lifeHub__iconItem {
    left: auto;
    top: auto;
    transform: none;
    offset-path: ellipse(var(--orbit-path-rx) var(--orbit-path-ry) at 50% 50%);
    -webkit-offset-path: ellipse(var(--orbit-path-rx) var(--orbit-path-ry) at 50% 50%);
    offset-anchor: center;
    offset-rotate: 0deg;
    animation: lifeHubEllipseOrbit calc(var(--orbit-spin-duration) * 1s) linear infinite;
    animation-delay: calc(var(--orbit-phase, 0) * var(--orbit-spin-duration) * -1s);
  }
}

@keyframes lifeHubEllipseOrbit {
  to {
    offset-distance: 100%;
  }
}

/* 操作・モーダル表示中は移動を止める */
.lifeHub__visualWrap:hover .lifeHub__iconItem,
.lifeHub--modalOpen .lifeHub__iconItem {
  animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
  .lifeHub__iconItem {
    animation: none;
  }
}

.lifeHub__iconLink {
  display: block;
  text-decoration: none;
  transition: transform 0.25s ease, filter 0.25s ease;
}

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

@media (hover: hover) {
  .lifeHub__iconLink:hover,
  .lifeHub__iconLink:focus-visible {
    transform: scale(1.08);
    filter: drop-shadow(0 0.06rem 0.12rem rgba(24, 110, 190, 0.35));
  }
}

.lifeHub__hint {
  flex-shrink: 0;
  margin: 0.04rem 0 0;
  text-align: center;
  font-size: 0.11rem;
  line-height: 1.3;
  color: #666;
}

.lifeHub__footer {
  flex-shrink: 0;
  max-width: 12rem;
  width: 100%;
  margin: 0.04rem auto 0;
  padding: 0;
  text-align: center;
}

#lifeHub .footer__copyright,
#lifeHub .footer__copyright1 {
  margin: 0;
  font-size: 0.1rem;
  line-height: 1.35;
  color: #666;
}

#lifeHub .footer__copyright1 + .footer__copyright {
  margin-top: 0.02rem;
}

#lifeHub .modaal-overlay {
  background: rgba(0, 0, 0, 0.55) !important;
}

@media screen and (min-width: 768px), print {
  #lifeHub .modaal-container {
    max-width: 10.4rem;
    border-radius: 0.24rem;
  }

  #lifeHub .modaal-content-container {
    position: relative;
    padding: 0.56rem 0.72rem 0.64rem;
  }
}

@media screen and (max-width: 767px) {
  #lifeHub .modaal-inner-wrapper {
    padding: 0.24rem 0.2rem;
  }

  #lifeHub .modaal-container {
    max-width: calc(100vw - 0.4rem);
  }

  #lifeHub .modaal-content-container {
    position: relative;
    padding: 0.48rem 0.36rem 0.4rem;
  }
}

#lifeHub .lifeHub__modalVisual {
  position: relative;
  width: 100%;
  max-width: 4.8rem;
  margin: 0 auto 0.24rem;
  aspect-ratio: 4 / 3;
  background: transparent;
  overflow: visible;
}

#lifeHub .lifeHub__modalCanvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  pointer-events: none;
}

#lifeHub .lifeHub__modalStage {
  position: absolute;
  inset: 0;
  z-index: 1;
}

#lifeHub .lifeHub__modalVisual .lifeHub__modalImg {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#lifeHub .lifeHub__modalImg--present {
  z-index: 1;
  opacity: 1;
}

#lifeHub .lifeHub__modalImg--future {
  z-index: 2;
  opacity: 0;
}

#lifeHub .lifeHub__modalVisual.-revealed .lifeHub__modalImg--present {
  opacity: 0;
}

#lifeHub .lifeHub__modalVisual.-revealed .lifeHub__modalImg--future {
  opacity: 1;
}

#lifeHub .lifeHub__modalTitle {
  margin: 0 0 0.24rem;
  font-weight: 700;
  color: #186ebe;
  line-height: 1.4;
  text-align: center;
}

@media screen and (min-width: 768px), print {
  #lifeHub .lifeHub__modalTitle {
    font-size: 0.36rem;
  }
}

@media screen and (max-width: 767px) {
  #lifeHub .lifeHub__modalTitle {
    font-size: 0.24rem;
  }
}

#lifeHub .lifeHub__modalText {
  margin: 0;
  line-height: 1.85;
  color: #333;
}

@media screen and (min-width: 768px), print {
  #lifeHub .lifeHub__modalText {
    font-size: 0.18rem;
  }
}

@media screen and (max-width: 767px) {
  #lifeHub .lifeHub__modalText {
    font-size: 0.16rem;
  }
}

#lifeHub .modal__button {
  position: absolute;
  top: -0.2rem;
  right: -0.2rem;
  margin: 0;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 0.6rem;
  background-color: #186ebe;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2238%22%20height%3D%2239%22%20viewBox%3D%220%200%2038%2039%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M7.91797%2030.7614L30.0846%208.59473%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222.375%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M30.0859%2030.7614L7.91927%208.59473%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222.375%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0.38rem 0.38rem;
  cursor: pointer;
}

@media screen and (max-width: 767px) {
  #lifeHub #wrapper.lifeHub {
    padding: 0.08rem 0.12rem 0.04rem;
  }

  .lifeHub__logo {
    height: 0.26rem;
  }

  .lifeHub__orbit {
    --orbit-w: min(98vw, calc((100dvh - 6.2rem) * 1.2));
    --orbit-h: min(52vmin, calc(100dvh - 7.8rem));
    min-width: 7.6rem;
    min-height: 4.8rem;
  }

  .lifeHub__icons {
    --orbit-path-rx: 47%;
  }

  .lifeHub__iconItem {
    width: clamp(1.25rem, 30%, 3.4rem);
  }

  .lifeHub__center {
    width: 26%;
  }

  .lifeHub__title {
    font-size: clamp(0.22rem, 5.5vw, 0.36rem);
  }

  .lifeHub__subtitle {
    font-size: clamp(0.12rem, 3.2vw, 0.16rem);
  }

  .lifeHub__hint {
    font-size: 0.1rem;
  }

  #lifeHub .footer__copyright,
  #lifeHub .footer__copyright1 {
    font-size: 0.09rem;
  }
}

@media screen and (max-height: 700px) and (min-width: 768px) {
  .lifeHub__orbit {
    --orbit-w: min(96vw, calc((100dvh - 5.5rem) * 1.22), 13.6rem);
    --orbit-h: min(48vmin, calc(100dvh - 7rem), 7rem);
  }

  .lifeHub__icons {
    --orbit-path-rx: 47%;
  }

  .lifeHub__iconItem {
    width: clamp(1.2rem, 30%, 3.2rem);
  }

  .lifeHub__title {
    font-size: clamp(0.22rem, 4.2vh, 0.38rem);
  }

  .lifeHub__subtitle {
    font-size: 0.15rem;
  }
}
