/* =====================================================================
   HOME（XD: PC 1920 / SP 430 原寸再現）
   ===================================================================== */

/* ---------- HERO + MESSAGE 共有キャンバス ---------- */
.custom-top {
  position: relative;
  height: 208.4rem;
}
.custom-top-bg {
  position: absolute;
  left: -26.2rem;
  top: -2.9rem;
  width: 222.7rem;
  height: 211.3rem;
  max-width: none;
  object-fit: cover;
  filter: blur(3.1rem);
  opacity: 0.86;
}

/* 浮遊デコレーション */
.custom-deco { position: absolute; max-width: none; pointer-events: none; z-index: 1; }
.custom-deco-tl     { left: 12.6rem;  top: 15.4rem;  width: 30.9rem; transform: rotate(8deg); transform-origin: 0 0; }
.custom-deco-s1a    { left: 9.2rem;   top: 59.5rem;  width: 14.8rem; filter: blur(0.82rem); }
.custom-deco-s1b    { left: 87.6rem;  top: 32.5rem;  width: 11rem;   filter: blur(0.82rem); }
.custom-deco-r2     { left: 151.8rem; top: 12.8rem;  width: 21.2rem; }
.custom-deco-r1     { left: 147.1rem; top: 31.7rem;  width: 25.8rem; filter: blur(0.76rem); }
.custom-deco-b3d    { left: 74rem;    top: 26.3rem;  width: 64.7rem; }
.custom-deco-ring   { left: 49.6rem;  top: 77.3rem;  width: 15.9rem; filter: blur(0.8rem); }
.custom-deco-rrr    { left: 12rem;    top: 83.7rem;  width: 22.3rem; }
.custom-deco-peanut { left: 123.2rem; top: 101.6rem; width: 61.7rem; transform: rotate(-70deg); transform-origin: 0 0; }
.custom-deco-glossy { left: 54.6rem;  top: 75.9rem;  width: 29.1rem; z-index: 4; }

/* HERO テキスト */
.custom-hero-eyebrow {
  position: absolute;
  left: 20.3rem;
  top: 38.5rem;
  z-index: 3;
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 1;
  letter-spacing: var(--ls-129);
  color: #fff;
}
.custom-hero-title {
  position: absolute;
  left: 20.3rem;
  top: 43.6rem;
  z-index: 3;
  font-family: var(--font-en);
  font-weight: 700;
  font-size: 13.8rem;
  line-height: 13.9rem;
  letter-spacing: var(--ls-129);
}
.custom-hero-title .is-dark { color: #000; }
.custom-hero-title .is-blue { color: var(--color-blue); }

/* MESSAGE */
.custom-message-label {
  position: absolute;
  left: 28.5rem;
  top: 142.3rem;
  z-index: 3;
  font-family: var(--font-en);
  font-weight: 700;
  font-size: 2.5rem;
  line-height: 1;
  letter-spacing: var(--ls-129);
  color: var(--color-primary);
}
.custom-message-title {
  position: absolute;
  left: 28.5rem;
  top: 148.3rem;
  z-index: 3;
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 1;
  letter-spacing: var(--ls-129);
  color: var(--color-blue);
}
.custom-message-text {
  position: absolute;
  left: 28.5rem;
  top: 154.3rem;
  z-index: 3;
  font-weight: 700;
  font-size: 2.3rem;
  line-height: 4.6rem;
  letter-spacing: var(--ls-129);
  color: #000;
}
.custom-message-more {
  position: absolute;
  left: 28.5rem;
  top: 178.2rem;
  z-index: 3;
}
.custom-message-media {
  position: absolute;
  left: 96rem;
  right: 0;
  top: 128.3rem;
  height: 66.8rem;
  border-radius: 5.5rem 0 0 5.5rem;
  overflow: hidden;
  z-index: 2;
  background: #0a1640;
}
.custom-message-video {
  width: 118.76rem;
  height: 66.8rem;
  max-width: none;
  object-fit: cover;
  margin-left: -11.4rem;
}

@media (max-width: 767px) {
  .custom-top { height: 170rem; }
  .custom-top-bg { left: -11.7rem; top: -2.9rem; width: 95.3rem; height: 88.7rem; }
  .custom-deco-tl     { left: -1.35rem; top: 8.16rem; width: 17.37rem; filter: blur(0.82rem); }
  .custom-deco-s1a    { left: 11.4rem;  top: 7.5rem;  width: 10.1rem; }
  .custom-deco-s1b    { display: none; }
  .custom-deco-r2     { left: 32.8rem;  top: 6.3rem;  width: 12.5rem; }
  .custom-deco-r1     { display: none; }
  .custom-deco-b3d    { left: 15.6rem;  top: 14.3rem; width: 44.5rem; }
  .custom-deco-ring   { left: 8.24rem;  top: 49.6rem; width: 7.6rem; }
  .custom-deco-rrr    { left: -4.8rem;  top: 60.8rem; width: 14rem; }
  .custom-deco-peanut { left: 23.05rem; top: 76rem;   width: 25.45rem; }
  .custom-deco-glossy { left: 10rem;    top: 51.4rem; width: 17.4rem; }

  .custom-hero-eyebrow { left: 2.8rem; top: 31.8rem; font-size: 1.6rem; }
  .custom-hero-title { left: 2.8rem; top: 33.7rem; font-size: 5.5rem; line-height: 5.8rem; }

  .custom-message-label { left: 0; right: 0; top: 91.9rem; text-align: center; font-size: 2rem; }
  .custom-message-title { left: 0; right: 0; top: 96.2rem; text-align: center; font-size: 1.8rem; }
  .custom-message-text {
    left: 50%;
    transform: translateX(-50%);
    width: 35rem;
    top: 101.8rem;
    text-align: center;
    font-size: 1.4rem;
    line-height: 3.4rem;
    letter-spacing: 0.03em;
  }
  .custom-message-more { left: 50%; transform: translateX(-50%); top: 162.2rem; }
  .custom-message-media {
    left: 4rem;
    right: 0;
    top: 122.6rem;
    height: 36.26rem;
    border-radius: 2.2rem;
  }
  .custom-message-video {
    width: 64.46rem;
    height: 36.26rem;
    margin-left: -10.12rem;
  }
}

/* ---------- SERVICE ---------- */
.custom-service { position: relative; }
.custom-service-ellipse {
  position: absolute;
  width: 172.7rem;
  height: 67.51rem;
  border: 1px solid var(--color-primary);
  border-radius: 50%;
  transform-origin: 0 0;
  pointer-events: none;
}
.custom-service-ellipse.is-e1 { left: 1.77rem; top: 140.55rem; transform: rotate(-17deg); }
.custom-service-ellipse.is-e2 { left: 7.8rem; top: 126.18rem; transform: rotate(-8deg); }
.custom-service-blob-l { position: absolute; left: 1.8rem; top: 14.9rem; width: 34.5rem; pointer-events: none; }
.custom-service-blob-r { position: absolute; left: 160.5rem; top: 4.1rem; width: 68.3rem; max-width: none; pointer-events: none; }
.custom-service-blob-c { position: absolute; left: 163.5rem; top: 78.2rem; width: 25.2rem; filter: blur(0.5rem); opacity: 0.84; pointer-events: none; }
.custom-service .custom-container { position: relative; z-index: 1; }

.custom-service-heading {
  margin-top: 17.4rem;
  text-align: center;
  font-family: var(--font-en);
  font-weight: 700;
  font-size: 6.6rem;
  line-height: 6.5rem;
  letter-spacing: var(--ls-129);
  color: var(--color-primary);
}
.custom-service-desc {
  margin-top: 4rem;
  text-align: center;
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 4.2rem;
  letter-spacing: var(--ls-129);
  color: #000;
}

/* 3サービス円 */
.custom-srv-circles {
  margin-top: 7.5rem;
  display: flex;
  justify-content: center;
}
.custom-srv-circle {
  position: relative;
  flex: 0 0 auto;
  width: 48.9rem;
  height: 48.9rem;
  border: 1px solid var(--color-primary);
  border-radius: 50%;
}
.custom-srv-circle + .custom-srv-circle { margin-left: -5.85rem; }
.custom-srv-circle-dot {
  position: absolute;
  left: 10.4rem;
  top: 0.9rem;
  width: 4.3rem;
  height: 4.3rem;
  border-radius: 50%;
  background: var(--color-primary);
}
.custom-srv-circle-en {
  position: absolute;
  left: 0; right: 0;
  top: 9rem;
  text-align: center;
  font-family: var(--font-en);
  font-weight: 700;
  font-size: 2rem;
  line-height: 3.2rem;
  letter-spacing: var(--ls-129);
  color: var(--color-primary);
}
.custom-srv-circle-title {
  position: absolute;
  left: 0; right: 0;
  top: 18.6rem;
  text-align: center;
  font-weight: 700;
  font-size: 2.8rem;
  line-height: 1;
  letter-spacing: var(--ls-129);
  color: var(--color-blue);
}
.custom-srv-circle-text {
  position: absolute;
  left: 8.9rem; right: 8.9rem;
  top: 24.8rem;
  text-align: center;
  font-weight: 500;
  font-size: 1.6rem;
  line-height: 3.2rem;
  letter-spacing: var(--ls-129);
  color: #000;
}

/* 6カテゴリカード */
.custom-service-cats {
  margin-top: 9.4rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4rem;
}
.custom-cat-card {
  position: relative;
  height: 41.2rem;
  background: #fff;
  border-radius: 3.5rem;
}
.custom-cat-card-img { position: absolute; max-width: none; }
.custom-cat-card.is-c1 .custom-cat-card-img { left: 2.7rem; top: 4rem;   width: 38.3rem; }
.custom-cat-card.is-c2 .custom-cat-card-img { left: 2.1rem; top: 4.5rem; width: 39.3rem; }
.custom-cat-card.is-c3 .custom-cat-card-img { left: 7.9rem; top: 4rem;   width: 23.4rem; }
.custom-cat-card.is-c4 .custom-cat-card-img { left: 3.6rem; top: 5.4rem; width: 36.5rem; }
.custom-cat-card.is-c5 .custom-cat-card-img { left: 7.2rem; top: 3.6rem; width: 34.8rem; }
.custom-cat-card.is-c6 .custom-cat-card-img { left: 7.9rem; top: 2.2rem; width: 26.8rem; }
.custom-cat-card-title {
  position: absolute;
  left: 0; right: 0;
  text-align: center;
  font-weight: 700;
  font-size: 2.8rem;
  line-height: 3.8rem;
  letter-spacing: var(--ls-129);
  color: var(--color-blue);
}
.custom-cat-card.is-c1 .custom-cat-card-title { top: 31rem; }
.custom-cat-card.is-c2 .custom-cat-card-title,
.custom-cat-card.is-c3 .custom-cat-card-title { top: 33.3rem; }
.custom-cat-card.is-c4 .custom-cat-card-title,
.custom-cat-card.is-c5 .custom-cat-card-title,
.custom-cat-card.is-c6 .custom-cat-card-title { top: 34.5rem; }
/* PCでは「Webサービスの/アプリ化」のみ2行 → 他は1行のまま */

.custom-service-more {
  margin-top: 7.9rem;
  display: flex;
  justify-content: center;
}

@media (max-width: 767px) {
  .custom-service-ellipse { width: 172.7rem; height: 67.51rem; }
  .custom-service-ellipse.is-e1 { left: -45.85rem; top: 349.5rem; transform: rotate(302deg); }
  .custom-service-ellipse.is-e2 { left: -50.73rem; top: 334.69rem; transform: rotate(311deg); }
  .custom-service-blob-l { left: 28rem; top: -2rem; width: 30.1rem; }
  .custom-service-blob-r { left: -31.9rem; top: 40.5rem; width: 50.4rem; }
  .custom-service-blob-c { left: 31.4rem; top: 132rem; width: 18rem; }

  .custom-service-heading { margin-top: 10.4rem; text-align: left; font-size: 4.2rem; line-height: 4rem; }
  .custom-service-desc { margin-top: 3.4rem; height: 17rem; text-align: left; font-size: 1.4rem; line-height: 3.4rem; letter-spacing: 0.03em; }

  .custom-srv-circles { margin-top: 5.9rem; flex-direction: column; align-items: center; }
  .custom-srv-circle { width: 34.8rem; height: 34.8rem; }
  .custom-srv-circle + .custom-srv-circle { margin-left: 0; margin-top: -4rem; }
  .custom-srv-circle-dot { left: 7.4rem; top: 0.6rem; width: 3.1rem; height: 3.1rem; }
  .custom-srv-circle-en { top: 4.7rem; font-size: 1.3rem; line-height: 1.8rem; }
  .custom-srv-circle-title { top: 10rem; font-size: 1.6rem; }
  .custom-srv-circle-text { left: 3rem; right: 3rem; top: 13.7rem; font-size: 1.4rem; line-height: 2.9rem; letter-spacing: 0.046em; }

  .custom-service-cats { margin-top: 3.6rem; display: block; }
  .custom-cat-card { height: 34.1rem; border-radius: 2.4rem; }
  .custom-cat-card + .custom-cat-card { margin-top: 2.4rem; }
  .custom-cat-card.is-c1 .custom-cat-card-img { left: 2.2rem; top: 3.3rem; width: 31.7rem; }
  .custom-cat-card.is-c2 .custom-cat-card-img { left: 1.7rem; top: 3.7rem; width: 32.4rem; }
  .custom-cat-card.is-c3 .custom-cat-card-img { left: 6.5rem; top: 3.3rem; width: 19.4rem; }
  .custom-cat-card.is-c4 .custom-cat-card-img { left: 3rem;   top: 4.5rem; width: 30.2rem; }
  .custom-cat-card.is-c5 .custom-cat-card-img { left: 5.9rem; top: 3rem;   width: 28.8rem; }
  .custom-cat-card.is-c6 .custom-cat-card-img { left: 6.5rem; top: 1.8rem; width: 22.2rem; }
  .custom-cat-card-title { font-size: 2rem; line-height: 2.8rem; }
  .custom-cat-card.is-c4 .custom-cat-card-title,
  .custom-cat-card.is-c6 .custom-cat-card-title { font-size: 1.9rem; }
  .custom-cat-card.is-c1 .custom-cat-card-title { top: 25.8rem; }
  .custom-cat-card.is-c2 .custom-cat-card-title,
  .custom-cat-card.is-c3 .custom-cat-card-title { top: 27.1rem; }
  .custom-cat-card.is-c4 .custom-cat-card-title,
  .custom-cat-card.is-c5 .custom-cat-card-title,
  .custom-cat-card.is-c6 .custom-cat-card-title { top: 28.2rem; }

  .custom-service-more { margin-top: 3.6rem; }
}

/* ---------- NEWS ---------- */
.custom-news {
  position: relative;
  margin-top: 14.4rem;
  min-height: 71.4rem;
}
.custom-news-bg {
  position: absolute;
  left: -9.6rem;
  top: 0;
  width: 207.9rem;
  height: 71.4rem;
  max-width: none;
  object-fit: cover;
  filter: blur(2.3rem);
  opacity: 0.33;
  pointer-events: none;
}
.custom-news-inner {
  position: relative;
  padding-top: 12.3rem;
}
.custom-news-heading {
  font-family: var(--font-en);
  font-weight: 700;
  font-size: 6.6rem;
  line-height: 6.5rem;
  letter-spacing: var(--ls-129);
  color: var(--color-primary);
}
.custom-news-bmark {
  position: absolute;
  left: 26.4rem;
  top: 10.1rem;
  width: 10.3rem;
  pointer-events: none;
}
.custom-news .custom-news-list { margin-top: 6.3rem; }
.custom-news-more {
  margin-top: 2.1rem;
  display: flex;
  justify-content: flex-end;
}
@media (max-width: 767px) {
  .custom-news { margin-top: 11rem; min-height: 72.1rem; }
  .custom-news-bg { left: -94.4rem; width: 207.9rem; height: 72.1rem; }
  .custom-news-inner { padding-top: 8.2rem; }
  .custom-news-heading { font-size: 4.2rem; line-height: 4rem; }
  .custom-news-bmark { left: 18.2rem; top: 6.3rem; width: 9.2rem; }
  .custom-news .custom-news-list { margin-top: 4.8rem; }
  .custom-news-more { margin-top: 0; justify-content: center; }
}
