#index.service .main {
  /* hidden だと main がスクロールコンテナになり、未表示の .js-fade-in（translateY 0.24rem）の分だけ
     縦にスクロールできてしまい、SPで最初のスワイプが main 側に取られて止まることがあった。clip はスクロールしない */
  overflow-x: clip;
}

#index.service .c-page-title {
  --page-title-heading-padding-inline: 0.34rem 0.42rem;
  --page-title-main-top: -0.03rem;
  --page-title-divider-margin-start: 0.25rem;
  --page-title-divider-margin-end: 0.33rem;
}

#index.service .hero {
  --subpage-hero-left-height: 3.68rem;
  --subpage-hero-left-background: #d1d3d6;
  --subpage-hero-right-background: #8585855c;
  --subpage-hero-notch-x: calc(var(--fluid-overhang) + 5.642rem); /* ページタイトル右端 + 0.44rem（下 0.44rem と揃える） */
  --subpage-hero-notch-y: 1.28rem;
  --subpage-hero-cut-x: 0.05rem;
  --subpage-hero-cut-y: 0.05rem;
}

#index.service .intro {
  padding: 0.55rem 0;
  overflow-x: clip;
}

#index.service .intro__frame {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 0.4rem;
}

#index.service .intro__decoration {
  position: relative;
  flex: 0 0 0.3rem;
  height: 5.95rem;
}

#index.service .intro__decoration--left::before,
#index.service .intro__decoration--right::after {
  content: "";
  position: absolute;
  top: 0;
  width: 99.99rem;
  height: 100%;
  background: var(--color-primary);
}

#index.service .intro__decoration--left::before {
  right: 98%;
}

#index.service .intro__decoration--right::after {
  left: 98%;
}

#index.service .intro__decoration--left::after,
#index.service .intro__decoration--right::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--color-primary);
}

#index.service .intro__decoration--left::after {
  --beveled-cut: 0.04rem;
  clip-path: polygon(0 0, calc(100% - var(--beveled-cut)) 0, 100% var(--beveled-cut), 100% calc(100% - var(--beveled-cut)), calc(100% - var(--beveled-cut)) 100%, 0 100%);
}

#index.service .intro__decoration--right::before {
  --beveled-cut: 0.04rem;
  clip-path: polygon(var(--beveled-cut) 0, 100% 0, 100% 100%, var(--beveled-cut) 100%, 0 calc(100% - var(--beveled-cut)), 0 var(--beveled-cut));
}

#index.service .intro__panel {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  flex-shrink: 0;
  gap: 0.48rem;
  width: 12.2rem;
  height: 5.95rem;
  padding: 0.72rem 1.35rem;
}

#index.service .intro__panel-bg {
  --beveled-cut: 0.04rem;
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--color-primary);
  clip-path: polygon(var(--beveled-cut) 0, calc(100% - var(--beveled-cut)) 0, 100% var(--beveled-cut), 100% calc(100% - var(--beveled-cut)), calc(100% - var(--beveled-cut)) 100%, var(--beveled-cut) 100%, 0 calc(100% - var(--beveled-cut)), 0 var(--beveled-cut));
}

#index.service .intro__panel-bg img {
  display: block;
  width: 7.95rem;
  height: 5.95rem;
  position: absolute;
  right: 0;
}

#index.service .intro__text {
  flex: 1 1 3.85rem;
  max-width: 3.85rem;
  min-width: 0;
}

#index.service .intro__title {
  margin: 0 0 0.28rem;
  font-size: 0.34rem;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: var(--color-white);
}

#index.service .intro__desc {
  margin: 0;
  font-family: var(--font-family-base);
  font-size: 0.16rem;
  line-height: 1.9;
  letter-spacing: 0.02em;
  color: var(--color-white);
}

#index.service .intro__squares {
  position: absolute;
  right: 1.07rem;
  top: 1.1rem;
  width: 4.44rem;
  height: 3.9rem;
}

#index.service .intro__square {
  --beveled-cut: 0.04rem;
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.02rem;
  text-align: center;
  color: var(--color-primary);
  width: 3rem;
  height: 3rem;
}

#index.service .intro__square-en {
  font-family: var(--font-family-brand);
  font-size: 0.27rem;
  letter-spacing: 0; /* SPIKVANSTAR（TEST_V13）は字間がフォントに含まれるため 0 */
  min-width: 0;
  max-width: 100%;
}

#index.service .intro__square-jp {
  font-family: var(--font-family-base);
  font-size: 0.12rem;
  letter-spacing: 0.04em;
  min-width: 0;
  max-width: 100%;
}

#index.service .intro__square-margin {
  margin-left: 0.2em; /* REAL と ESTATE の間に半角分 */
}

#index.service .intro__square--creative {
  left: -0.44rem;
  top: 0.44rem;
}

#index.service .intro__square--print {
  left: 1.75rem;
  top: -0.26rem;
}

#index.service .intro__square--real-estate {
  left: 1.4rem;
  top: 1.66rem;
}

#index.service .business {
  position: relative;
  isolation: isolate;
  /* 1920px 超でカードの枠をセクション幅まで広げるため（.card の width で 100cqw を使う）。
100vw だとスクロールバー分ずれるので、コンテナ基準にしている */
  container-type: inline-size;
  padding-bottom: 1.03rem;
  padding-top: 0.5rem;
  background: var(--color-primary);
  overflow-x: clip;
}

#index.service .business__outer {
  position: relative;
  width: 13.6rem;
  /* 1920px までは 13.6rem = 画面幅なので位置は同じ。1920px 超は中央寄せにせず左に付け、TOP の
「スピックバンスターの事業」と同じく白パネルが左 0.3rem から右端（:after）まで広がるようにする */
  margin: 0;
  padding-left: 0.3rem;
}

#index.service .business__outer::after {
  content: "";
  position: absolute;
  left: 98%;
  top: 4.7445%;
  bottom: 0;
  width: 99.99rem;
  background: var(--color-white);
}

#index.service .business__inner {
  --business-inner-cut: 0.05rem;
  position: relative;
  z-index: 1; /* .business__outer::after（右側の白い延長）より手前に。1920px 超で右へはみ出すカードを隠さないため */
  width: 100%;
  background: var(--color-white);
  /* 右辺は 100% ではなく大きく外側にしておく（1920px 超でカードが右へはみ出すのを切らないため。
右側の白は .business__outer::after が担う） */
  clip-path: polygon(var(--business-inner-cut) 0,
      calc(51.5744% - var(--business-inner-cut)) 0,
      51.5744% var(--business-inner-cut),
      51.5744% calc(4.7445% - var(--business-inner-cut)),
      calc(51.5744% + var(--business-inner-cut)) 4.7445%,
      calc(100% + 99rem) 4.7445%,
      calc(100% + 99rem) 100%,
      var(--business-inner-cut) 100%,
      0 calc(100% - var(--business-inner-cut)),
      0 var(--business-inner-cut));
}

#index.service .business__title {
  --beveled-cut: 0.04rem;
  display: inline-block;
  margin: 0.85rem 0 0.6rem calc((100% - 11.1rem) / 2);
  padding: 0.28rem 0.45rem;
  background: var(--color-primary);
  font-family: var(--font-family-base); /* 青ベタ見出しは 500 */
  font-size: 0.29rem; /* 一度取り消したが ので再適用 */
  letter-spacing: 0.03em;
  color: var(--color-white);
}

#index.service .business__list {
  display: flex;
  flex-direction: column;
  gap: 0.72rem;
  padding-bottom: 1.56rem;
}

/* カードの幅はセクション幅（コンテナ）から左右 1.4rem ずつを引いた値。1920px までは 10.8rem（デザインどおり）、
1920px 超では TOP の「スピックバンスターの事業」と同じく枠だけが右へ広がる。
写真は中央に固定し、余った左右は TOP のサムネイルと同じ下地色（#c8d9ec）で埋める */
#index.service .card {
  width: calc(100cqw - 2.8rem);
  margin-left: 1.1rem;
}

/* 写真＋ラベルの全体が1つのリンク（a）。マウスオンで写真が少し拡大する
（TOPのサムネイルと同じ挙動） */
#index.service .card__media {
  position: relative;
  display: block;
  width: 100%;
  /* 高さは幅に追従（TOPの .service__item と同じ理由）。
比は設計値 10.8rem × 4.88rem */
  aspect-ratio: 10.8 / 4.88;
  overflow: hidden;
  background-color: #c8d9ec; /* TOP の .service__item と同じ下地色 */
}

#index.service .card__media picture {
  display: block;
  height: 100%;
}

#index.service .card__media img {
  display: block;
  width: auto;
  height: 100%;
  margin-inline: auto;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

/* 枠の形状は 支給の SVG（1080×488、面取り 4px）どおり。段差は枠の端基準なので、枠が広がっても追従する */
#index.service .card--creative .card__media {
  clip-path: polygon(
    0.04rem 0,
    calc(100% - 0.04rem) 0,
    100% 0.04rem,
    100% 2.8888rem,
    calc(100% - 0.04rem) 2.9288rem,
    calc(100% - 0.36rem) 2.9288rem,
    calc(100% - 0.4rem) 2.9688rem,
    calc(100% - 0.4rem) calc(100% - 0.04rem),
    calc(100% - 0.44rem) 100%,
    0.04rem 100%,
    0 calc(100% - 0.04rem),
    0 0.04rem
  );
}

#index.service .card--print .card__media {
  clip-path: polygon(
    0.44rem 0,
    calc(100% - 0.44rem) 0,
    calc(100% - 0.4rem) 0.04rem,
    calc(100% - 0.4rem) 2.2652rem,
    calc(100% - 0.36rem) 2.3052rem,
    calc(100% - 0.04rem) 2.3052rem,
    100% 2.3452rem,
    100% calc(100% - 0.04rem),
    calc(100% - 0.04rem) 100%,
    0.04rem 100%,
    0 calc(100% - 0.04rem),
    0 2.3065rem,
    0.04rem 2.2665rem,
    0.36rem 2.2665rem,
    0.4rem 2.2265rem,
    0.4rem 0.04rem
  );
}

#index.service .card--real-estate .card__media {
  clip-path: polygon(
    0.6273rem 0,
    calc(100% - 0.04rem) 0,
    100% 0.04rem,
    100% calc(100% - 0.04rem),
    calc(100% - 0.04rem) 100%,
    0.04rem 100%,
    0 calc(100% - 0.04rem),
    0 2.4697rem,
    0.04rem 2.4297rem,
    0.5473rem 2.4297rem,
    0.5873rem 2.3897rem,
    0.5873rem 0.04rem
  );
}

#index.service .card__media:hover,
#index.service .card__media:focus-visible {
  opacity: 1;
}

#index.service .card__media:hover img,
#index.service .card__media:focus-visible img {
  transform: scale(1.06);
}

#index.service .card__label {
  --beveled-cut: 0.04rem;
  position: absolute;
  left: 0.2rem;
  bottom: 0.2rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.18rem; /* 和文→タグの間隔。TOP の .service__label の margin-right と同じ（L143） */
  max-width: 100%;
  /* TOP の .service__link と同じ。青ベタ高さ 0.68rem ＝ 文字 0.36rem ＋ 上下 0.16rem（L143。旧 0.11rem 0.24rem） */
  padding: 0.16rem 0.25rem;
  background: var(--color-primary);
}

#index.service .card__label-main {
  display: flex;
  align-items: center;
  gap: 0.48rem; /* 英字→和文の間隔。TOP の .service__label の margin-left と同じ（L143。旧 0.45rem） */
  flex-shrink: 0;
}

#index.service .card__label-en {
  font-family: var(--font-family-brand);
  font-size: 0.36rem; /* TOP の .service__title と同じ（L143）。旧 0.43rem */
  line-height: 1;
  color: var(--color-white);
  white-space: nowrap;
  position: relative;
  top: -0.1em; /* 字面が約0.1em下寄りなので上へ。TOP の .u-font-lift と同じ量（旧 -0.05rem） */
  letter-spacing: 0; /* SPIKVANSTAR（TEST_V13）は字間がフォントに含まれるため 0 */
}

/* REAL と ESTATE の間。TOP の「REAL ESTATE」（半角スペース）と同じ 0.45em（L168。旧 0.2em） */
#index.service .card__label-margin {
  margin-left: 0.45em;
}

#index.service .card__label-jp {
  position: relative;
  font-family: var(--font-family-base);
  font-size: 0.16rem;
  font-weight: 600;
  letter-spacing: 0.02em; /* TOP の .service__label と同じ（L143。旧 0.03em） */
  color: var(--color-white);
  white-space: nowrap;
}

#index.service .card__label-jp::before {
  content: "";
  position: absolute;
  left: -0.25rem;
  top: 50%;
  transform: translateY(-50%);
  width: 0.01rem;
  height: 0.2rem;
  background: rgba(255, 255, 255, 0.25);
}

#index.service .card__label-tags {
  font-family: var(--font-family-base);
  font-size: 0.11rem;
  letter-spacing: 0.02em;
  color: var(--color-white);
}

#index.service .card__label-tags>span:not(:last-child)::after {
  content: "";
  display: inline-block;
  width: 0.01rem;
  height: 1em;
  margin: 0 0.08rem;
  background: rgba(255, 255, 255, 0.25);
  vertical-align: middle;
}

#index.service img.card__label-arrow {
  --beveled-cut: 0.03rem;
  display: block;
  flex-shrink: 0;
  width: 0.2rem;
  height: 0.2rem;
  margin-left: auto;
}

#index.service .card__foot {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.6rem;
  /* 1920px 超でカードの枠が広がったら、説明文の行長を伸ばし、関連会社（固定幅）は右端に付ける（L144。旧 max-width: 10.8rem） */
  margin-top: 0.32rem;
  margin-left: 0.21rem;
}

#index.service .card__desc {
  flex: 1 1 5.6rem;
  min-width: 0;
  font-family: var(--font-family-base);
  font-size: 0.17rem;
  line-height: calc(30 / 17);
  letter-spacing: 0.025em;
  color: var(--color-primary);
}

#index.service .card__related {
  flex: 0 0 4.21rem;
  display: flex;
  align-items: stretch;
  gap: 0.38rem;
  padding: 0.15rem 0.25rem;
  border-top: 0.01rem solid var(--color-border-subtle);
  border-bottom: 0.01rem solid var(--color-border-subtle);
  margin-top: 0.03rem;
}

#index.service .card__related-label {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  padding-right: 0.39rem;
  border-right: 0.01rem solid var(--color-border-subtle);
  font-family: var(--font-family-base);
  font-weight: 600;
  font-size: 0.16rem;
  letter-spacing: 0.03em;
  color: var(--color-primary);
  white-space: nowrap;
  height: 0.64rem;
}

#index.service .card__related-links {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  /* 関連会社が1件のときに上へ寄って見えないよう上下中央に置く（SPも中央） */
  justify-content: center;
}

/* 印刷・洋紙事業は関連会社が無くなったので .card__related ごと削除した（page-service.php）。
そのままだと説明文だけ枠いっぱいに広がって他2枚と行長が変わるので、関連会社（4.21rem）＋間隔（0.6rem）の分だけ
右を空けて、他2枚と同じ行長で伸びるようにする（L144。旧 flex-grow: 0 で 5.6rem 固定だった） */
#index.service .card--print .card__desc {
  margin-right: calc(4.21rem + 0.6rem);
}

#index.service .card__related-links a {
  font-family: var(--font-family-base);
  font-size: 0.14rem;
  letter-spacing: 0.02em;
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 0.03rem;
}