@charset "UTF-8";
/* foundation */
:root {
  --accent-color: #e84b4b;
}

.page-sales-plus {
  --accent-color: #e84b4b;
  --accent-soft: #FFEEED;
  --cta-bg: rgba(205, 90, 85, 0.6);
}

.page-iside-plus {
  --accent-color: #4287EA;
  --accent-soft: #E5F6FD;
  --cta-bg: rgba(66, 135, 234, 0.7);
}

.page-lbiz-plus {
  --accent-color: #17E54C;
  --accent-soft: #F3FFF6;
  --cta-bg: rgba(32, 196, 74, 0.7);
}

.page-campaign-plus {
  --accent-color: #F7BC28;
  --accent-soft: #FFFBF1;
  --cta-bg: rgba(255, 203, 73, 0.7);
}

.top-page {
  --accent-color: #333333;
  --accent-soft: #ECECEC;
}

.page-works {
  --accent-color: #333333;
  --accent-soft: #ECECEC;
}

/* foundation */
/* Simple Reset */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
}

html,
body {
  margin: 0;
}

.g-header {
  height: 82px;
  display: flex;
}

.g-main {
  padding-top: 82px;
}

.scroll-target {
  scroll-margin-top: 82px;
}

body {
  margin: 0;
  color: #222;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.6;
  background: #fff;
  font-size: 1.8rem;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: inherit;
  text-decoration: none;
}

/* Layout */
.container {
  width: min(1280px, 100% - 40px);
  margin: 0 auto;
}
@media (max-width: 768px) {
  .container {
    width: min(1280px, 100% - 24px);
  }
}

.w85 {
  width: 8.5rem;
}

.w59 {
  width: 5.9rem;
}

.w100 {
  width: 10rem;
}

.w150 {
  width: 15rem;
}

.pc-only {
  display: block !important;
}
@media (max-width: 768px) {
  .pc-only {
    display: none !important;
  }
}

.sp-only {
  display: none !important;
}
@media (max-width: 768px) {
  .sp-only {
    display: block !important;
  }
}

/* =========================
  画像アニメーション
========================= */
/* JSがimgをspanで包む：span側を浮遊、img側をフェード/出現に分離 */
.js-image-animation {
  opacity: 0;
  transition: opacity 1.8s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.js-image-animation.is-show {
  opacity: 1;
}

/* 動きを減らす設定（任意） */
@media (prefers-reduced-motion: reduce) {
  img.js-image-animation {
    opacity: 1;
    transition: none;
  }
}
/* =========================
  ボタンアニメーション
========================= */
.button-animation {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.button-animation:hover {
  transform: translateY(-2px);
  box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, 0.22);
}

/* components */
/* foundation */
.plusIntro {
  position: relative;
  width: 100%;
  /* ---------------------------------
   * Title Row
   * display/align/justify は HTMLユーティリティへ移管
   * gapだけは見た目維持のためSCSSで保持
   * --------------------------------- */
}
.plusIntro__titleRow {
  gap: 1.8rem;
}
@media (max-width: 768px) {
  .plusIntro__titleRow {
    /* flex-direction は見た目維持のためここで指定（ユーティリティに寄せたいなら後で置換可） */
    flex-direction: column;
    gap: 1.2rem;
  }
}
.plusIntro__badge {
  flex: 0 0 auto;
  width: 10rem;
  margin-top: 0.2rem;
}
@media (max-width: 768px) {
  .plusIntro__badge {
    width: 7rem;
  }
}
.plusIntro__badgeImg {
  display: block;
  width: 100%;
  height: auto;
}
.plusIntro__title {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  flex-direction: column;
  gap: 1.2rem;
  z-index: 1;
}
@media (max-width: 768px) {
  .plusIntro__title {
    gap: 5px;
    line-height: 1.5;
  }
}
.plusIntro__title .em-text {
  color: var(--accent-color);
}
.plusIntro__title .sub_img {
  display: inline-block;
}
.plusIntro__brand {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4rem;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1;
}
@media (max-width: 768px) {
  .plusIntro__brand img {
    max-width: 50%;
  }
}
@media (max-width: 768px) {
  .plusIntro__brand {
    flex-wrap: wrap;
    gap: 1rem;
    font-weight: bold;
    font-size: 1.8rem;
  }
}
.plusIntro__brandLogo {
  display: block;
  height: 4.8rem;
  width: auto;
}
@media (max-width: 768px) {
  .plusIntro__brandLogo {
    height: 3.6rem;
  }
}
.plusIntro__brandSales {
  font-size: 4.2rem;
  color: var(--accent-color);
}
@media (max-width: 768px) {
  .plusIntro__brandSales {
    font-size: 1.8rem;
  }
}
.plusIntro__brandPlus {
  font-size: 4.2rem;
  color: #222;
}
@media (max-width: 768px) {
  .plusIntro__brandPlus {
    font-size: 1.8rem;
  }
}
.plusIntro__titleText {
  font-size: 2.6rem;
  font-weight: 800;
  color: #222;
  line-height: 1.35;
  display: flex;
  align-items: center;
}
@media (max-width: 768px) {
  .plusIntro__titleText {
    font-size: 1.8rem;
    line-height: 1.5;
  }
}
.plusIntro__titleText2 {
  font-size: 2.6rem;
  font-weight: bold;
}
@media (max-width: 768px) {
  .plusIntro__titleText2 {
    font-size: 1.8rem;
  }
}
.plusIntro__titleBr {
  display: none;
}
.plusIntro {
  /* --------------------------
   * Top (copy + photo)
   * ✅ grid撤廃：幅はcolに持たせる
   * display/align は HTMLユーティリティ（d-flex flex-wrap align-items-start）
   * gapはSCSSで保持（Bootstrap gapを前提にしない）
   * -------------------------- */
}
.plusIntro__top {
  margin-top: 7rem;
  gap: 10rem;
}
@media (max-width: 1200px) {
  .plusIntro__top {
    gap: 5rem;
  }
}
@media (max-width: 768px) {
  .plusIntro__top {
    gap: 4rem;
    margin-top: 2rem;
    margin-bottom: 4rem;
  }
}
.plusIntro {
  /* 左列（copy） */
}
.plusIntro__copyCol {
  /* PC: 52rem / SP: 100% */
  flex: 0 0 52rem;
  min-width: 0;
}
@media (max-width: 1200px) {
  .plusIntro__copyCol {
    flex: 0 0 49.06%;
  }
}
@media (max-width: 768px) {
  .plusIntro__copyCol {
    flex: 0 0 100%;
  }
}
.plusIntro {
  /* 右列（photo） */
}
.plusIntro__photoCol {
  /* PC: 54rem / SP: 100% */
  flex: 0 0 54rem;
  min-width: 0;
}
@media (max-width: 1200px) {
  .plusIntro__photoCol {
    flex: 0 0 50.94%;
  }
}
@media (max-width: 768px) {
  .plusIntro__photoCol {
    flex: 0 0 100%;
  }
}
.plusIntro__copy {
  position: relative;
  padding-left: 2.6rem;
  border-left: 5px solid var(--accent-color);
}
.plusIntro__copy::after {
  content: attr(data-number);
  position: absolute;
  left: -10rem;
  top: -15rem;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 26rem;
  line-height: 1;
  color: rgba(0, 0, 0, 0.06);
  z-index: 1;
  pointer-events: none;
}
@media (max-width: 768px) {
  .plusIntro__copy {
    padding-left: 1.6rem;
    margin-bottom: 0rem;
  }
  .plusIntro__copy::after {
    font-size: 16rem;
    left: -2rem;
    top: -10rem;
  }
}
.plusIntro__copyText {
  margin: 0;
  font-size: 1.8rem;
  line-height: 2.05;
  color: #444;
  font-weight: 500;
  letter-spacing: 0.01em;
}
@media (max-width: 768px) {
  .plusIntro__copyText {
    font-size: 1.2rem;
    font-weight: normal;
  }
}
.plusIntro__copyEm {
  color: var(--accent-color);
  font-weight: 700;
}
.plusIntro__photo {
  margin: 0;
  border-radius: 1.8rem;
  overflow: hidden;
  background: #e9eef4;
  box-shadow: 0 1.6rem 3.2rem rgba(0, 0, 0, 0.08);
  z-index: 1;
}
.plusIntro__photoImg {
  display: block;
  width: 100%;
  height: auto;
}

.bg-plusIntro {
  position: relative;
  overflow: hidden;
  background: #fff;
  padding: 0;
  /* 背景（左右の斜め帯） */
}
.bg-plusIntro::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../images/plus02-bg.webp") no-repeat;
  height: 467px;
  width: 100%;
  background-size: cover;
  z-index: 0;
  pointer-events: none;
}


.page-iside-plus .sub_img {
  margin-left: 1rem;
}
.page-iside-plus .plusIntro__title {
  gap: 0;
}
.page-iside-plus .plusIntro__titleText2 {
  margin-top: 1.8rem;
  line-height: 1.5;
}
@media (max-width: 768px) {
  .page-iside-plus .plusIntro__titleText2 {
    margin-top: 0px;
  }
}
.page-iside-plus .plusIntro__top {
  margin-bottom: 8rem;
}
@media (max-width: 768px) {
  .page-iside-plus .plusIntro__top {
    margin-bottom: 4rem;
  }
}
@media (max-width: 768px) {
  .page-iside-plus .sub_img {
    width: 40px;
  }
}

:is(.page-lbiz-plus,.page-iside-plus) .plusIntro__titleRow {
  justify-content: left !important;
}
.page-lbiz-plus .sub_img {
  margin-left: 1rem;
}
:is(.page-lbiz-plus,.page-iside-plus) .plusIntro__title {
  gap: 0;
}
.page-lbiz-plus .plusIntro__top {
  margin-bottom: 8rem;
}

.page-campaign-plus .plusIntro__titleRow {
  justify-content: left !important;
}
.page-campaign-plus .sub_img {
  margin-left: 1rem;
}
.page-campaign-plus .plusIntro__title {
  gap: 0;
}
.page-campaign-plus .bg-plusIntro::before {
  background: url("../images/cPlus/c-plus-bg.webp") no-repeat;
  background-size: cover;
}
.page-campaign-plus .plusIntro__top {
  margin-bottom: 8rem;
}

.page-works .plusIntro__titleRow {
  justify-content: left !important;
  margin-top: 10rem;
}
.page-works .sub_img {
  margin-left: 1rem;
}
.page-works .plusIntro__title {
  gap: 0;
}
.page-works .bg-plusIntro::before {
  background: url("../images/works/works-bg.webp") no-repeat;
  background-size: cover;
}
.page-works .plusIntro__top {
  margin-bottom: 8rem;
}
.page-works .plusIntro__copyText,
.page-works .plusIntro__photo {
  display: none;
}

/* foundation */
/* =========================
    Three Plus Block
========================= */
/* =========================
  3つの +Plus
========================= */
.threePlus {
  background: var(--accent-soft);
  padding: 8rem 0 7.2rem;
}
@media (max-width: 768px) {
  .threePlus {
    padding: 5.2rem 0 5.6rem;
  }
}
.threePlus__inner {
  position: relative;
}
.threePlus {
  /* Title */
}
.threePlus__title {
  margin: 0 0 6.4rem;
  text-align: center;
  font-size: 4rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 0.01em;
  color: #2b2b2b;
}
@media (max-width: 768px) {
  .threePlus__title {
    font-size: 1.8rem;
    margin-bottom: 3.6rem;
  }
}
.threePlus__titleAccent {
  color: var(--accent-color);
}
.threePlus__titlePill {
  display: inline-block;
  vertical-align: middle;
  margin: 0 1rem;
  transform: translateY(-0.2rem);
}
@media (max-width: 768px) {
  .threePlus__titlePill {
    margin: 0 0.6rem;
    transform: translateY(-0.1rem);
  }
}
.threePlus__titlePillImg {
  height: 4rem;
  width: auto;
  display: block;
}
@media (max-width: 768px) {
  .threePlus__titlePillImg {
    height: 3.2rem;
  }
}
.threePlus__titleText {
  color: #2b2b2b;
}
.threePlus {
  /* Grid（✅ row/colを使わず、flex-wrap で 3→2→1 相当を再現） */
}
.threePlus__grid {
  /* display:flex / flex-wrap はHTMLの `d-flex flex-wrap` が担当 */
  gap: 7rem;
}
@media (max-width: 1000px) {
  .threePlus__grid {
    gap: 3.2rem;
  }
}
@media (max-width: 768px) {
  .threePlus__grid {
    gap: 3.2rem;
  }
}
.threePlus__col {
  /* display:flex / flex-direction:column はHTMLの `d-flex flex-column` が担当 */
  gap: 2.4rem;
  /* 3カラム幅（gapはflexのgapを使用） */
  flex: 1 1 calc((100% - 14rem) / 3);
  min-width: 0;
}
@media (max-width: 1000px) {
  .threePlus__col {
    /* 2カラム */
    flex-basis: calc((100% - 3.2rem) / 2);
  }
}
@media (max-width: 768px) {
  .threePlus__col {
    /* 1カラム */
    flex-basis: 100%;
  }
}
.threePlus {
  /* Balloon */
}
.threePlus__balloon {
  position: relative;
  background: #fff;
  border-radius: 2.4rem;
  padding: 2.2rem 2.8rem;
  min-height: 12rem;
  box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, 0.06);
  /* display:flex / align-items / justify-content はHTMLのユーティリティが担当 */
  gap: 1.6rem;
  height: 13rem;
}
@media (max-width: 768px) {
  .threePlus__balloon {
    width: 80%;
    margin: auto;
    padding: 1.8rem 2rem;
    height: 6rem;
    min-height: 6rem;
    margin-bottom: -2rem;
    font-weight: bold;
  }
}
.threePlus__balloon::after {
  content: "";
  position: absolute;
  /* 位置：右寄り */
  right: 6.4rem;
  bottom: -1.6rem;
  width: 0;
  height: 0;
  /* 口の形（やや太く・短め） */
  border-left: 1.8rem solid transparent;
  border-right: 0.8rem solid transparent;
  border-top: 3rem solid #fff;
  /* 少し傾けて自然に */
  transform: rotate(42deg);
  filter: none;
}
@media (max-width: 768px) {
  .threePlus__balloon::after {
    right: 10.4rem;
  }
}
.threePlus__balloon .threePlus__balloonText {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  color: #2b2b2b;
}
@media (max-width: 768px) {
  .threePlus__balloon .threePlus__balloonText {
    font-size: 1.2rem;
  }
}
.threePlus__balloon .threePlus__balloonHuman {
  flex: 0 0 auto;
  width: 5.3rem;
}
@media (max-width: 768px) {
  .threePlus__balloon .threePlus__balloonHuman {
    width: 5rem;
  }
}
.threePlus__balloonHumanImg {
  width: 100%;
  height: auto;
  display: block;
}
.threePlus {
  /* Label row */
}
.threePlus__label {
  /* display:flex / align-items はHTMLのユーティリティが担当 */
  gap: 1rem;
  padding-top: 0.8rem;
}
.threePlus__labelIcon {
  flex: 0 0 auto;
  width: 7rem;
}
@media (max-width: 768px) {
  .threePlus__labelIcon {
    width: 5rem;
  }
}
.threePlus__labelIconImg {
  width: 100%;
  height: auto;
  display: block;
}
.threePlus__labelText {
  margin: 0;
  font-size: 2.3rem;
  font-weight: bold;
  line-height: 1.45;
  color: #2b2b2b;
}
@media (max-width: 768px) {
  .threePlus__labelText {
    font-size: 1.5rem;
  }
}
.threePlus {
  /* Card */
}
.threePlus__card {
  background: transparent;
  /* display:flex / flex-direction はHTMLのユーティリティが担当 */
  gap: 1.8rem;
}
.threePlus__cardMedia {
  background: #fff;
  border-radius: 2.4rem;
  overflow: hidden;
  box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, 0.06);
  /* display:flex / center はHTMLのユーティリティが担当 */
}
.threePlus__cardMediaImg {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.threePlus__cardDescWrap {
  /* display:flex はHTMLのユーティリティが担当 */
}
.threePlus__cardDesc {
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.9;
  color: #2b2b2b;
  font-weight: bold;
  height: 7rem;
  margin-bottom: 2.4rem;
}
@media (max-width: 768px) {
  .threePlus__cardDesc {
    font-size: 1.2rem;
    margin-bottom: 0;
    font-weight: normal;
  }
}
.threePlus__cardDesc .em-text {
  color: var(--accent-color);
}
.threePlus {
  /* Button */
}
.threePlus__btn {
  margin-top: 0.6rem;
  height: 5.6rem;
  border-radius: 1rem;
  background: #333;
  color: #fff;
  /* display/align/justify はHTMLのユーティリティが担当 */
  gap: 1.2rem;
  font-size: 1.6rem;
  font-weight: bold;
  letter-spacing: 0.02em;
  transition: background 0.2s ease;
}
@media (max-width: 768px) {
  .threePlus__btn {
    margin: auto;
    margin-bottom: 3rem;
    height: 5rem;
    width: 80%;
    font-size: 1.3rem;
    font-weight: bold;
  }
}
.threePlus__btn:hover {
  background: #222;
}
.threePlus__btnIcon {
  /* display:inline-flex はHTMLのユーティリティが担当 */
  width: 1.8rem;
  height: 1.8rem;
}
.threePlus__btnIconImg {
  width: 100%;
  height: 100%;
  display: block;
  transform: rotate(0deg);
}
.threePlus .cplusBanner {
  display: none;
}

/* =========================
  Plus01 ３つの特徴
========================= */
.plus01 .threePlus {
  background: #fde9e9;
  padding: 8rem 0 7.2rem;
}
@media (max-width: 768px) {
  .plus01 .threePlus {
    padding: 5.2rem 0 5.6rem;
  }
}
.plus01 .threePlus__inner {
  position: relative;
}
.plus01 .threePlus {
  /* Title */
}
.plus01 .threePlus__title {
  margin: 0 0 6.4rem;
  text-align: center;
  font-size: 4rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 0.01em;
  color: #2b2b2b;
}
@media (max-width: 768px) {
  .plus01 .threePlus__title {
    font-size: 1.8rem;
    margin-bottom: 3.6rem;
  }
}
.plus01 .threePlus__titleAccent {
  color: var(--accent-color);
}
.plus01 .threePlus__titlePill {
  display: inline-flex;
  vertical-align: middle;
  margin: 0 1rem;
  transform: translateY(-0.2rem);
}
@media (max-width: 768px) {
  .plus01 .threePlus__titlePill {
    margin: 0 0.6rem;
    transform: translateY(-0.1rem);
  }
}
.plus01 .threePlus__titlePillImg {
  height: 4.2rem;
  width: auto;
}
@media (max-width: 768px) {
  .plus01 .threePlus__titlePillImg {
    height: 3.2rem;
  }
}
.plus01 .threePlus__titleText {
  color: #2b2b2b;
}
.plus01 .threePlus {
  /* Grid（flex-wrap前提。displayはHTMLユーティリティ担当） */
}
.plus01 .threePlus__grid {
  gap: 7rem;
}
@media (max-width: 1200px) {
  .plus01 .threePlus__grid {
    gap: 3.2rem;
  }
}
@media (max-width: 768px) {
  .plus01 .threePlus__grid {
    gap: 3.2rem;
  }
}
.plus01 .threePlus__col {
  /* display:flex / flex-direction はHTMLユーティリティ */
  gap: 2.4rem;
  margin-top: 7rem;
  /* 3→2→1 幅（threePlus側と同様に維持） */
  flex: 1 1 calc((100% - 14rem) / 3);
  min-width: 0;
}
@media (max-width: 1200px) {
  .plus01 .threePlus__col {
    flex-basis: calc((100% - 3.2rem) / 2);
  }
}
@media (max-width: 768px) {
  .plus01 .threePlus__col {
    margin-top: 0;
    flex-basis: 100%;
  }
}
.plus01 .threePlus__balloonPlus {
  position: relative;
  background: #fff;
  border-radius: 2.4rem;
  padding: 2.7rem 3.5rem 1.6rem 2.7rem;
  box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, 0.06);
  /* display:flex / align/justify はHTMLのユーティリティが担当 */
  height: 9rem;
  margin: auto;
  margin-bottom: -50px;
}
@media (max-width: 768px) {
  .plus01 .threePlus__balloonPlus {
    padding: 1rem;
    width: 80%;
  }
}
.plus01 .threePlus__balloonPlus .threePlus__balloonHuman {
  flex: 0 0 auto;
  margin-bottom: -20px;
  width: 8rem;
}
@media (max-width: 768px) {
  .plus01 .threePlus__balloonPlus .threePlus__balloonHuman {
    width: 5rem;
    margin-right: 10px;
  }
}
.plus01 .threePlus__balloonPlus .threePlus__balloonText {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.2;
  color: #2b2b2b;
}
@media (max-width: 768px) {
  .plus01 .threePlus__balloonPlus .threePlus__balloonText {
    font-size: 1.2rem;
  }
}
.plus01 .threePlus__balloonHumanImg {
  width: 100%;
  height: auto;
  display: block;
}
.plus01 .threePlus {
  /* Label row */
}
.plus01 .threePlus__label {
  /* display:flex / align-items はHTMLユーティリティ */
  gap: 1.6rem;
  padding-top: 0.8rem;
}
.plus01 .threePlus__labelIcon {
  flex: 0 0 auto;
  width: 7.2rem;
}
@media (max-width: 768px) {
  .plus01 .threePlus__labelIcon {
    width: 5rem;
  }
}
.plus01 .threePlus__labelIconImg {
  width: 100%;
  height: auto;
  display: block;
}
.plus01 .threePlus__labelText {
  margin: 0;
  font-size: 2.3rem;
  font-weight: bold;
  line-height: 1.45;
  color: #2b2b2b;
}
@media (max-width: 768px) {
  .plus01 .threePlus__labelText {
    font-size: 1.5rem;
  }
}
.plus01 .threePlus {
  /* Card */
}
.plus01 .threePlus__card {
  background: transparent;
  /* display:flex / flex-direction はHTMLユーティリティ */
  gap: 1.8rem;
}
.plus01 .threePlus__cardMedia {
  background: #fff;
  border-radius: 2.4rem;
  overflow: hidden;
  box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, 0.06);
  /* display:flex / center はHTMLユーティリティ */
}
.plus01 .threePlus__cardMediaImg {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.plus01 .threePlus__cardDesc {
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.9;
  color: #2b2b2b;
  font-weight: bold;
  height: 10rem;
  margin-bottom: 2.4rem;
}
@media (max-width: 768px) {
  .plus01 .threePlus__cardDesc {
    font-size: 1.5rem;
    margin-bottom: 0;
    font-weight: normal;
  }
}
.plus01 .threePlus {
  /* Button */
}
.plus01 .threePlus__btn {
  margin-top: 0.6rem;
  height: 5.6rem;
  border-radius: 1rem;
  border: 1px solid #333333;
  background: white;
  color: #333333;
  /* display/align/justify はHTMLユーティリティ */
  gap: 1.2rem;
  font-size: 1.6rem;
  font-weight: bold;
  letter-spacing: 0.02em;
  transition: background 0.2s ease;
}
@media (max-width: 768px) {
  .plus01 .threePlus__btn {
    font-weight: bold;
    font-size: 1.3rem;
    height: 5rem;
    width: 80%;
  }
}
.plus01 .threePlus__btnIcon {
  /* display:inline-flex はHTMLユーティリティ */
  width: 1.8rem;
  height: 1.8rem;
}
.plus01 .threePlus__btnIconImg {
  width: 100%;
  height: 100%;
  display: block;
  transform: rotate(0deg);
}

/* =========================
  cPlus バナー
========================= */
.cplusBanner {
  background: #fffbf2;
  width: 100%;
}
.cplusBanner__inner {
  position: relative;
  padding: 3.6rem 1.6rem 3.2rem;
  max-width: 1200px;
  margin: 0 auto;
}
.cplusBanner__logo {
  display: block;
  width: 12rem;
  height: auto;
  margin-top: 0.6rem;
}
@media (max-width: 768px) {
  .cplusBanner__logo {
    width: 9.6rem;
  }
}
.cplusBanner__text {
  margin-top: 1.2rem;
  margin-bottom: 0;
  font-size: 2.4rem;
  line-height: 1.35;
  letter-spacing: 0.02em;
  color: #333333;
}
@media (max-width: 768px) {
  .cplusBanner__inner {
    padding: 0rem 1.2rem 2rem;
  }
  .cplusBanner__triangle {
    top: 1.2rem;
    border-left-width: 2.4rem;
    border-right-width: 2.4rem;
    border-top-width: 1.8rem;
  }
  .cplusBanner__text {
    font-size: 1.5rem;
  }
}

.threePlus__bottomMsg {
  display: none;
}

.page-iside-plus .threePlus__cardDescWrap {
  gap: 16px;
  align-items: center;
}
.page-iside-plus .threePlus__cardDescWrap .image {
  width: 68px;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .page-iside-plus .threePlus__cardDescWrap .image {
    width: 5rem;
  }
}
.page-iside-plus .threePlus__cardDescWrap .image img {
  width: 100%;
  height: auto;
}
.page-iside-plus .threePlus__cardDesc {
  height: 9rem;
}
@media (max-width: 768px) {
  .page-iside-plus .threePlus__cardDesc {
    height: auto;
  }
}

:is(.page-lbiz-plus,.page-iside-plus) .threePlus__title {
  line-height: 1.5;
}
.page-lbiz-plus .threePlus__titlePill {
  margin-bottom: 10px;
  margin-right: -10px;
}
.page-lbiz-plus .threePlus__cardDesc {
  height: 15rem;
}
@media (max-width: 768px) {
  .page-lbiz-plus .threePlus__cardDesc {
    height: auto;
  }
}

.page-campaign-plus .cplusBanner {
  display: block;
}
@media (max-width: 768px) {
  .page-campaign-plus .threePlus__cardDesc {
    height: auto;
  }
}

.top-page .threePlus__grid {
  /* display:flex / flex-wrap はHTMLユーティリティが担当 */
  /* ✅ gapを変数化（＋の位置合わせに使う） */
  --grid-gap: 7rem;
  gap: var(--grid-gap);
}
@media (max-width: 1000px) {
  .top-page .threePlus__grid {
    --grid-gap: 3.2rem;
  }
}
@media (max-width: 768px) {
  .top-page .threePlus__grid {
    --grid-gap: 3.2rem;
  }
}
.top-page .threePlus__col {
  position: relative;
  /* ✅ 疑似要素の基準 */
}
.top-page .threePlus {
  /* ✅ 3列のうち、最後以外（1列目・2列目）に＋を表示 */
}
.top-page .threePlus__col:not(:nth-child(3n))::after {
  content: "";
  position: absolute;
  /* ✅ gapの中央に来るように：列の右端から gap/2 だけ外へ */
  right: calc(-1 * var(--grid-gap) / 2);
  transform: translateX(50%);
  /* gap中央に寄せる */
  /* ✅ 縦位置（添付①の見た目に合わせて調整） */
  top: 185px;
  width: 30px;
  height: 30px;
  background-image: url("../images/top/union.webp");
  /* ← union.webp をここに置く想定 */
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  z-index: 3;
  pointer-events: none;
}
.top-page .threePlus {
  /* 2カラム以下の時は＋を出さない（崩れ防止） */
}
@media (max-width: 1000px) {
  .top-page .threePlus__col::after {
    display: none;
  }
}
@media (max-width: 768px) {
  .top-page .threePlus__col::after {
    display: none;
  }
}
.top-page .threePlus__bottomMsg {
  margin-top: 7.2rem;
  display: block;
}
@media (max-width: 768px) {
  .top-page .threePlus__bottomMsg {
    margin-top: 4.8rem;
    padding-inline: 1.2rem;
  }
}
.top-page .threePlus__bottomLead {
  font-size: 2.4rem;
  letter-spacing: 0.02em;
  color: #2b2b2b;
}
@media (max-width: 768px) {
  .top-page .threePlus__bottomLead {
    font-size: 1.2rem;
  }
}
.top-page .threePlus__bottomTitle {
  font-size: 4rem;
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: #111;
}
@media (max-width: 768px) {
  .top-page .threePlus__bottomTitle {
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
.top-page .threePlus {
  /* ✅ 黄色い下線（ハイライト帯） */
}
.top-page .threePlus__bottomTitleInner {
  position: relative;
  display: inline-block;
  padding-inline: 0.2rem;
}
.top-page .threePlus__bottomTitleInner::after {
  content: "";
  position: absolute;
  /* 位置：文字の下に細い帯 */
  left: 50%;
  transform: translateX(-50%);
  bottom: 0.12em;
  /* 帯の見た目 */
  width: 100%;
  height: 0.28em;
  background: #FFFAA4;
  border-radius: 0.2em;
  z-index: -1;
}

/* =========================
  ThreePlus 整列・レスポンシブ調整
  row不使用 / flex前提
========================= */
.threePlus__label {
  align-items: center;
}
.threePlus__labelText {
  font-size: 2.3rem;
  line-height: 1.45;
  font-weight: 700;
}
.threePlus__card {
  display: flex;
  flex-direction: column;
}
.threePlus__cardDesc {
  font-size: 1.6rem;
  line-height: 1.9;
  font-weight: 700;
  min-height: 13rem;
  height: auto;
}
.threePlus__btn {
  margin-top: auto;
}
@media (max-width: 1600px) {
  .threePlus__labelText {
    font-size: 2rem;
  }
  .threePlus__cardDesc {
    font-size: 1.45rem;
    line-height: 1.8;
  }
}
@media (max-width: 1400px) {
  .threePlus__labelText {
    font-size: 1.8rem;
  }
  .threePlus__cardDesc {
    font-size: 1.35rem;
    line-height: 1.75;
  }
}
@media (max-width: 768px) {
  .threePlus__labelText {
    font-size: 1.5rem;
  }
  .threePlus__cardDesc {
    min-height: 0;
    font-size: 1.2rem;
    font-weight: normal;
  }
  .threePlus__btn {
    margin-top: 2.4rem;
  }
}

/* SalesPlusだけ、PCでは大きさを戻す */
.page-sales-plus .threePlus__labelText,
.page-salesplus .threePlus__labelText {
  font-size: 2rem;
}
.page-sales-plus .threePlus__cardDesc,
.page-salesplus .threePlus__cardDesc {
  font-size: 1.6rem;
  min-height: 13rem;
}
@media (max-width: 1400px) {
  .page-sales-plus .threePlus__labelText,
  .page-salesplus .threePlus__labelText {
    font-size: 1.7rem;
  }
  .page-sales-plus .threePlus__cardDesc,
  .page-salesplus .threePlus__cardDesc {
    font-size: 1.35rem;
  }
}

/* =========================
  SalesPlus 個別調整
========================= */
.page-sales-plus .threePlus__label,
.page-salesplus .threePlus__label {
  height: 13rem;
  min-height: 13rem;
  align-items: flex-start;
}
.page-sales-plus .threePlus__labelText,
.page-salesplus .threePlus__labelText {
  font-size: 1.8rem;
  line-height: 1.45;
  font-weight: 700;
}
.page-sales-plus .threePlus__cardMedia,
.page-salesplus .threePlus__cardMedia {
  margin-top: 0;
}
@media (max-width: 1400px) {
  .page-sales-plus .threePlus__label,
  .page-salesplus .threePlus__label {
    height: 12rem;
    min-height: 12rem;
  }
  .page-sales-plus .threePlus__labelText,
  .page-salesplus .threePlus__labelText {
    font-size: 1.6rem;
    line-height: 1.45;
  }
}

/* =========================
  LBizPlus Plus03落ち対策
  2880×1920基準：タイトルを2行内に収める
========================= */
.page-lbiz-plus .threePlus__label {
  align-items: flex-start;
}
.page-lbiz-plus .threePlus__labelText {
  font-size: 1.9rem;
  line-height: 1.35;
  letter-spacing: -0.02em;
}
.page-lbiz-plus .threePlus__labelIcon {
  width: 6.4rem;
}

/* 画面幅が少し狭いPC用 */
@media (max-width: 1600px) {
  .page-lbiz-plus .threePlus__labelText {
    font-size: 1.65rem;
    line-height: 1.35;
  }
  .page-lbiz-plus .threePlus__labelIcon {
    width: 5.8rem;
  }
}
/* さらに狭いPC〜タブレット手前 */
@media (max-width: 1400px) {
  .page-lbiz-plus .threePlus__labelText {
    font-size: 1.45rem;
    line-height: 1.35;
  }
  .page-lbiz-plus .threePlus__labelIcon {
    width: 5.4rem;
  }
}
/* foundation */
/* =====================================
  Compare Table (Plus01)
===================================== */
.plusCompare {
  margin-top: 6.2rem;
  padding-bottom: 2rem;
}
@media (max-width: 768px) {
  .plusCompare {
    margin-top: 4rem;
  }
}
.plusCompare {
  /* 上のコピー（黄色マーカー） */
}
.plusCompare__lead {
  margin: 0 0 4rem;
  text-align: center;
  font-weight: 800;
  font-size: 2.4rem;
  line-height: 1.75;
  letter-spacing: 0.02em;
  color: #222;
}
@media (max-width: 768px) {
  .plusCompare__lead {
    font-size: 1.5rem;
    margin-bottom: 2.6rem;
    line-height: 1.8;
  }
}
.plusCompare__leadLine {
  display: block;
}
.plusCompare__highlight {
  display: inline;
  padding: 0.1em 0.2em;
  background: linear-gradient(transparent 62%, #FFFAA4 62%);
}
.plusCompare {
  /* 横スクロール */
}
.plusCompare__tableWrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0.6rem;
}
.plusCompare {
  /* グリッド表 */
}
.plusCompare__table {
  width: 100%;
  min-width: 980px;
  /* SPで崩さず横スクロール */
  border-bottom: 2px solid #d8d8d8;
}
@media (max-width: 768px) {
  .plusCompare__table {
    min-width: initial;
    min-width: -moz-fit-content;
    min-width: fit-content;
  }
}
.plusCompare__row {
  display: grid;
  grid-template-columns: 36rem 32rem 16rem 16rem 16rem;
}
@media (max-width: 768px) {
  .plusCompare__row {
    grid-template-columns: 15rem 12rem 8rem 8rem 8rem;
  }
}
.plusCompare__row + .plusCompare__row {
  border-top: 2px solid #d8d8d8;
}
.plusCompare__cell {
  min-height: 7.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.6rem 2rem;
  font-size: 1.6rem;
  font-weight: 700;
  color: #222;
}
.plusCompare__cell img {
  width: 16rem;
}
@media (max-width: 768px) {
  .plusCompare__cell img {
    width: 100%;
  }
}
.plusCompare {
  /* 左の機能列 */
}
.plusCompare__cell--feature {
  justify-content: flex-start;
  font-weight: 700;
  font-size: 1.7rem;
  letter-spacing: 0.01em;
  color: #2b2b2b;
}
@media (max-width: 768px) {
  .plusCompare__cell--feature {
    font-size: 1.2rem;
  }
}
.plusCompare {
  /* 見出しセル */
}
.plusCompare__cell--head {
  min-height: 6.2rem;
  font-size: 1.6rem;
  font-weight: 800;
  color: #2b2b2b;
}
@media (max-width: 768px) {
  .plusCompare__cell--head {
    font-size: 1.2rem;
  }
}
.plusCompare {
  /* SalesPlus列（薄いピンク） */
}
.plusCompare__cell--brand {
  background: rgba(232, 75, 75, 0.1);
}
.plusCompare {
  /* ロゴ（Sales+Plus） */
}
.plusCompare__brandLogo {
  display: inline-flex;
  align-items: baseline;
  gap: 0.3rem;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1;
  font-size: 2.6rem;
}
.plusCompare__brandSales {
  color: var(--accent-color);
}
.plusCompare__brandPlus {
  color: #222;
}
.plusCompare__brandPlusMark {
  color: var(--accent-color);
  font-weight: 700;
  transform: translateY(-0.45em);
  font-size: 0.75em;
  line-height: 1;
  display: inline-block;
}
.plusCompare {
  /* アイコン */
}
.plusCompare__icon {
  display: inline-flex;
  width: 4rem;
  height: 4rem;
  align-items: center;
  justify-content: center;
}
.plusCompare__iconSvg {
  width: 4rem;
  height: 4rem;
  display: block;
}
@media (max-width: 768px) {
  .plusCompare__iconSvg {
    width: 2rem;
    height: 2rem;
  }
}
.plusCompare__icon--circle .plusCompare__iconSvg {
  stroke: var(--accent-color);
}
.plusCompare__icon--cross .plusCompare__iconSvg {
  stroke: #9c9c9c;
}
.plusCompare__icon--triangle .plusCompare__iconSvg {
  stroke: rgba(232, 75, 75, 0.55);
}
.plusCompare {
  /* SP：文字詰め・最小幅調整 */
}
@media (max-width: 768px) {
  .plusCompare__cell {
    min-height: 5rem;
    padding: 1.4rem 1.6rem;
  }
  .plusCompare__brandLogo {
    font-size: 1.5rem;
  }
}

/* foundation */
/* =========================
    CTA
========================= */
/* =========================
  CTA ver1
========================= */
.cta {
  position: relative;
  overflow: hidden;
  /* 背景写真 */
  background: url("../images/cta/cta-background.webp") center/cover no-repeat;
  /* 画像の上に赤い被せ（スクショの色味） */
}
.cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--cta-bg);
  opacity: 1;
  mix-blend-mode: normal;
}
.cta__inner {
  position: relative;
  padding: 8.5rem 0 8.5rem;
  text-align: center;
}
@media (max-width: 768px) {
  .cta__inner {
    height: auto;
    padding: 5.5rem 0 5.5rem;
  }
}
.cta {
  /* 見出し */
}
.cta__headline {
  margin: 0 0 3.4rem;
  gap: 2.4rem;
  /* ✅ gapは数値が大きいのでSCSSで維持 */
  color: #fff;
  font-weight: 800;
  font-size: 3.2rem;
  line-height: 1.2;
  letter-spacing: 0.01em;
  text-shadow: 0 0.2rem 0.6rem rgba(0, 0, 0, 0.25);
  /* display/align/justify はHTMLユーティリティが担当 */
}
@media (max-width: 768px) {
  .cta__headline {
    font-size: 2.2rem;
    gap: 1rem;
    flex-wrap: wrap;
    /* ✅ ここは見た目維持のため残す（HTMLにclass付けなくても可） */
  }
}
.cta__headlineText {
  white-space: nowrap;
  /* display/align はHTMLユーティリティが担当 */
}
@media (max-width: 1000px) {
  .cta__headlineText {
    display: inline-block;
    flex-direction: column;
    justify-items: center;
    white-space: normal;
    width: 80%;
    line-height: 2;
  }
}
@media (max-width: 768px) {
  .cta__headlineText {
    display: inline-block;
    flex-direction: column;
    justify-items: center;
    white-space: normal;
    width: 80%;
    line-height: 2;
  }
}
.cta {
  /* 両端のスラッシュ */
}
.cta__slash {
  flex: 0 0 auto;
  /* ✅ これがあると崩れにくい */
  /* display/centerはHTMLユーティリティ */
}
.cta__slashImg {
  display: block;
  width: 2rem;
  height: auto;
  margin-top: 2rem;
}
@media (max-width: 768px) {
  .cta__slashImg {
    width: 2.5rem;
  }
}
.cta {
  /* 金額 */
}
.cta__price {
  gap: 0.3rem;
  color: #fff2a6;
  text-shadow: 0 0.2rem 0.6rem rgba(0, 0, 0, 0.25);
  /* display/align はHTMLユーティリティ */
}
@media (max-width: 768px) {
  .cta__price {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
  }
}
.cta__priceNum {
  font-family: "D-DIN", "Bahnschrift", "DIN Alternate", "DIN Condensed", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", sans-serif;
  font-weight: 600;
  font-size: 5.6rem;
  line-height: 1;
}
@media (max-width: 768px) {
  .cta__priceNum {
    font-size: 3rem;
  }
}
.cta__priceYen {
  font-size: 2.4rem;
  font-weight: 800;
}
@media (max-width: 768px) {
  .cta__priceYen {
    font-size: 2rem;
  }
}
.cta__note {
  font-size: 2.4rem;
  font-weight: 800;
  margin-left: -1rem;
}
@media (max-width: 768px) {
  .cta__note {
    font-size: 1rem;
  }
}
.cta {
  /* ボタン群 */
}
.cta__actions {
  gap: 6rem;
  /* ✅ ここもSCSSで維持 */
  /* display/align/justify はHTMLユーティリティ */
}
@media (max-width: 768px) {
  .cta__actions {
    flex-direction: column;
    /* ✅ ここは見た目維持のため残す */
    gap: 1.8rem;
  }
}
.cta__btn {
  width: 32rem;
  height: 7.2rem;
  background: #fff;
  border-radius: 0.8rem;
  /* display/align/justify/gap はHTMLユーティリティ + SCSSのgapで担保 */
  gap: 1.4rem;
  color: #2b2b2b;
  font-size: 2.2rem;
  font-weight: 800;
  box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, 0.18);
}
@media (max-width: 768px) {
  .cta__btn {
    width: 80%;
    height: 5rem;
    font-size: 1.5rem;
  }
}
.cta__btnIcon {
  width: 1.6rem;
  height: 1.8rem;
  /* display/center はHTMLユーティリティ */
}
.cta__btnIconImg {
  width: 2.2rem;
  height: 2.2rem;
  display: block;
}
.cta__btnText {
  line-height: 1;
  font-size: 1.8rem;
}
@media (max-width: 768px) {
  .cta__btnText {
    font-size: 1.3rem;
  }
}
.cta__btnArrow {
  width: 1.2rem;
  height: 2.4rem;
  /* display/center はHTMLユーティリティ */
}
.cta__btnArrowImg {
  width: 1.4rem;
  height: 1.4rem;
  display: block;
}

/* =========================
  CTA ver2
========================= */
.ctaVer2 {
  position: relative;
  overflow: hidden;
  padding: 7.6rem 0 8.8rem;
}
.ctaVer2__bg {
  position: absolute;
  inset: 0;
  background-size: contain;
  background-position: top;
  background-repeat: no-repeat;
  z-index: 0;
}
.ctaVer2__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--accent-color);
  opacity: 0.78;
  mix-blend-mode: multiply;
}
.ctaVer2__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  color: #fff;
}
.ctaVer2 {
  /* ==========================
     見出し（スラッシュ＋ロゴ）
     grid → flex 前提へ
  ========================== */
}
.ctaVer2__headline {
  /* display:flex / align/justify はHTMLユーティリティ */
  -moz-column-gap: 2rem;
       column-gap: 2rem;
  /* ✅ 見た目維持 */
  margin: 0 auto 2.2rem;
  max-width: 76rem;
}
@media (max-width: 768px) {
  .ctaVer2__headline {
    row-gap: 1.2rem;
    /* ✅ flex-wrap時の縦間隔（見た目維持） */
  }
}
.ctaVer2__slash {
  width: 3.8rem;
  height: 3.8rem;
  flex: 0 0 auto;
}
.ctaVer2__slash img {
  display: block;
  width: 100%;
  height: auto;
}
.ctaVer2__title {
  margin: 0;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1.45;
}
.ctaVer2__titleBrand {
  gap: 1.2rem;
  /* ✅ 見た目維持 */
  vertical-align: middle;
  margin-bottom: 10px;
  /* display/align はHTMLユーティリティ */
}
.ctaVer2__brandLogo {
  display: inline-block;
  width: 16.8rem;
  height: auto;
}
@media (max-width: 768px) {
  .ctaVer2__brandLogo {
    width: 14.8rem;
  }
}
.ctaVer2__titleText {
  font-size: 2.4rem;
}
@media (max-width: 768px) {
  .ctaVer2__titleText {
    display: block;
    font-size: 1.8rem;
  }
}
.ctaVer2 {
  /* ==========================
     説明 / 強調コピー
  ========================== */
}
.ctaVer2__desc {
  margin: 1.8rem auto 2.6rem;
  max-width: 98rem;
  font-size: 1.8rem;
  line-height: 2;
  color: rgba(255, 255, 255, 0.92);
}
@media (max-width: 768px) {
  .ctaVer2__desc {
    text-align: left;
    font-size: 1.2rem;
    padding: 0 1.2rem;
  }
}
.ctaVer2__descEm {
  font-weight: 800;
}
.ctaVer2__strong {
  margin: 0 auto 4.2rem;
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: 0.02em;
}
@media (max-width: 768px) {
  .ctaVer2__strong {
    font-size: 1.2rem;
    padding: 0 1.2rem;
  }
}
.ctaVer2 {
  /* ==========================
     3つの丸
     grid → flex-wrap 前提へ（3列/2列を同じ見た目で）
  ========================== */
}
.ctaVer2__circles {
  /* display:flex / flex-wrap / justify はHTMLユーティリティ */
  gap: 4.2rem;
  /* ✅ 見た目維持 */
  margin: 0 auto 4.8rem;
  max-width: 108rem;
}
@media (max-width: 1000px) {
  .ctaVer2__circles {
    margin-bottom: 13rem;
  }
}
@media (max-width: 768px) {
  .ctaVer2__circles {
    row-gap: 5rem;
    -moz-column-gap: 1.5rem;
         column-gap: 1.5rem;
    margin-bottom: 8rem;
  }
}
.ctaVer2__circleItem {
  width: auto;
  /* 念のため。w-100等が付いてても潰しやすい */
  /* ✅ 3列：伸びない（最終行が1個でも同じ幅のまま） */
  flex: 0 0 calc((100% - 8.4rem) / 3);
  min-width: 0;
}
@media (max-width: 768px) {
  .ctaVer2__circleItem {
    /* ✅ 2列：伸びない（最終行が1個でも同じ幅のまま） */
    flex: 0 0 calc((100% - 1.5rem) / 2);
  }
}
.ctaVer2__circle {
  position: relative;
  max-width: 33rem;
  width: 100%;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background: #fff;
}
@media (max-width: 768px) {
  .ctaVer2__circle {
    margin: auto;
    width: 80%;
  }
}
.ctaVer2__circleTitle {
  margin-top: 5.5rem;
  color: var(--accent-color);
  font-weight: bold;
  font-size: 2rem;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
@media (max-width: 768px) {
  .ctaVer2__circleTitle {
    font-size: 1.2rem;
    margin-top: 3.5rem;
  }
}
.ctaVer2__circleIcon {
  position: absolute;
  top: 150px;
  left: 50%;
  transform: translateX(-50%);
  /* display/center はHTMLユーティリティ */
}
@media (max-width: 768px) {
  .ctaVer2__circleIcon {
    top: 100px;
  }
}
.ctaVer2 {
  /* 共通 */
}
.ctaVer2__circleIcon img {
  width: 14rem;
}
.ctaVer2 {
  /* 02（立ってる人）だけ下げる */
}
.ctaVer2__circleItem:nth-child(2) .ctaVer2__circleIcon img {
  width: 11.6rem;
}
.ctaVer2 {
  /* 01（座ってる人） */
}
.ctaVer2__circleItem:nth-child(3) .ctaVer2__circleIcon img {
  width: 18.3rem;
}
.ctaVer2 {
  /* ==========================
     ボタン
  ========================== */
}
.ctaVer2__cta {
  /* display:flex / justify はHTMLユーティリティ */
}
.ctaVer2__btn {
  gap: 1.2rem;
  /* ✅ 見た目維持 */
  padding: 2rem 4rem;
  min-width: 56rem;
  border-radius: 0.8rem;
  background: #3a3a3a;
  color: #fff;
  text-decoration: none;
  font-weight: bold;
  font-size: 1.8rem;
  letter-spacing: 0.02em;
  box-shadow: 0 1.4rem 2.8rem rgba(0, 0, 0, 0.18);
  /* display/align/justify はHTMLユーティリティ */
}
@media (max-width: 768px) {
  .ctaVer2__btn {
    width: 100%;
    height: 5rem;
    min-width: 0;
    padding: 1.6rem 2rem;
    font-size: 1.3rem;
  }
}
.ctaVer2__btnArrow {
  width: 1.2rem;
  /* display/center はHTMLユーティリティ */
}
.ctaVer2__btnArrowImg--white {
  display: block;
  width: 100%;
}

.page-iside-plus .ctaVer2__circleItem:nth-child(3) .ctaVer2__circleTitle {
  margin-top: 3rem;
}
.page-iside-plus .ctaVer2__circleItem:nth-child(3) .ctaVer2__circleIcon img {
  width: 11rem;
}

.top-page .cta__headline {
  color: black;
  text-shadow: none;
}
.top-page .cta__headlineText {
  white-space: nowrap;
  /* display/align はHTMLユーティリティが担当 */
}
@media (max-width: 1000px) {
  .top-page .cta__headlineText {
    display: inline-block;
    flex-direction: column;
    justify-items: center;
    white-space: normal;
    width: 80%;
    line-height: 2;
  }
}
@media (max-width: 768px) {
  .top-page .cta__headlineText {
    display: inline-block;
    flex-direction: column;
    justify-items: center;
    white-space: normal;
    width: 80%;
    line-height: 2;
  }
}
.top-page .cta {
  /* 両端のスラッシュ */
}
.top-page .cta__slash {
  flex: 0 0 auto;
  /* ✅ これがあると崩れにくい */
  /* display/centerはHTMLユーティリティ */
}
.top-page .cta__slashImg {
  display: none;
}
.top-page .cta {
  /* 金額 */
}
.top-page .cta__price {
  color: black;
  text-shadow: none;
  position: relative;
  display: inline-block;
  z-index: 0;
}
.top-page .cta__price::after {
  content: "";
  position: absolute;
  left: -0.06em;
  right: 0.6em;
  bottom: 0.08em;
  height: 0.36em;
  background: #fff2a6;
  z-index: -1;
  border-radius: 0.08em;
}
@media (max-width: 768px) {
  .top-page .cta__priceNum::after {
    height: 0.42em;
    bottom: 0.1em;
  }
}
.top-page .cta__btn {
  background: #333333;
  border-radius: 0.8rem;
  /* display/align/justify/gap はHTMLユーティリティ + SCSSのgapで担保 */
  gap: 1.4rem;
  color: white;
}
.top-page .cta__btnIcon {
  width: 1.6rem;
  height: 1.8rem;
  /* display/center はHTMLユーティリティ */
}
.top-page .cta__btnIconImg {
  width: 2.2rem;
  height: 2.2rem;
  display: block;
}
.top-page .cta__btnText {
  line-height: 1;
  font-size: 1.8rem;
}
@media (max-width: 768px) {
  .top-page .cta__btnText {
    font-size: 1.3rem;
  }
}
.top-page .cta__btnArrow {
  width: 1.2rem;
  height: 2.4rem;
  /* display/center はHTMLユーティリティ */
}
.top-page .cta__btnArrowImg {
  width: 1.4rem;
  height: 1.4rem;
  display: block;
}

.page-works .cta__headline {
  display: none !important;
}

.cta__slash {
  display: none !important;
}

.circle-small-icon img {
  width: 8rem !important;
  height: auto !important;
}

/* foundation */
.salesFlow {
  position: relative;
}
.salesFlow__inner {
  position: relative;
  z-index: 1;
}
.salesFlow {
  /* --------------------------
  * 上：自社導入フロー（白背景）
  * -------------------------- */
}
.salesFlow__self {
  padding: 6.4rem 0 4rem;
  background: #fff;
}
@media (max-width: 768px) {
  .salesFlow__self {
    padding-top: 0px;
  }
}
.salesFlow__title {
  margin: 0;
  font-size: 1.8rem;
  font-weight: bold;
  color: #222;
  letter-spacing: 0.01em;
}
@media (max-width: 768px) {
  .salesFlow__title {
    font-size: 1.5rem;
  }
}
.salesFlow__steps {
  margin: 2.6rem 0 0;
  padding: 0;
  list-style: none;
  /* ✅ display/方向/整列はHTMLのBootstrapユーティリティ */
  /* ✅ 見た目固定のgapだけ残す（Bootstrap gapだと数値がズレるため） */
  gap: 0.8rem;
}
@media (max-width: 768px) {
  .salesFlow__steps {
    gap: 1.2rem;
  }
}
.salesFlow__step {
  position: relative;
  width: 22rem;
  min-height: 10.8rem;
  border-radius: 1.2rem;
  background: #fff;
  border: 2px solid #e7e7e7;
  box-shadow: 0 0.6rem 1.6rem rgba(0, 0, 0, 0.04);
  padding: 1.8rem 1.6rem 1.6rem;
  text-align: center;
}
@media (max-width: 768px) {
  .salesFlow__step {
    width: min(42rem, 100%);
  }
}
.salesFlow {
  /* 「STEP 01」のスタイル（上段） */
}
.salesFlow__stepNo {
  margin: 0;
  font-size: 1.8rem;
  font-weight: 700;
  color: #b5b5b5;
  letter-spacing: 0.06em;
}
@media (max-width: 768px) {
  .salesFlow__stepNo {
    font-size: 1.5rem;
  }
}
.salesFlow__stepNo::after {
  content: "";
  display: block;
  width: 7rem;
  height: 0.3rem;
  background: #d7d7d7;
  margin: 0.8rem auto 0;
  border-radius: 99px;
}
.salesFlow__stepText {
  margin: 1.2rem 0 0;
  font-size: 1.6rem;
  font-weight: bold;
  color: #222;
  line-height: 1.45;
  letter-spacing: 0.01em;
}
@media (max-width: 768px) {
  .salesFlow__stepText {
    font-size: 1.2rem;
  }
}
.salesFlow {
  /* 上段の丸矢印（灰色） */
}
.salesFlow__steps--self .salesFlow__step:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -0.8rem;
  top: 50%;
  transform: translate(50%, -50%);
  width: 3.2rem;
  height: 3.2rem;
  background-color: #9e9e9e;
  background-image: url("../images/common/flow-yazirushi.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 1rem auto;
  z-index: 10;
  box-shadow: 0 0.6rem 1.2rem rgba(0, 0, 0, 0.12);
  border-radius: 50%;
}
@media (max-width: 768px) {
  .salesFlow__steps--self .salesFlow__step:not(:last-child)::after {
    width: 2.5rem;
    height: 2.5rem;
    right: 50%;
    top: auto;
    bottom: -1.8rem;
    transform: translate(50%, 0) rotate(90deg);
  }
}
.salesFlow__selfNote {
  margin: 2.6rem 0 0;
  font-size: 1.6rem;
  color: #333333;
  line-height: 2;
}
@media (max-width: 768px) {
  .salesFlow__selfNote {
    font-size: 1.2rem;
  }
}
.salesFlow {
  /* --------------------------
  * 間の三角（ポリゴン）
  * -------------------------- */
}
.salesFlow__divider {
  position: relative;
  height: 0;
}
.salesFlow__dividerImg {
  position: absolute;
  left: 50%;
  top: -1.6rem;
  transform: translateX(-50%);
  width: 14rem;
  height: auto;
  z-index: 2;
}
@media (max-width: 768px) {
  .salesFlow__dividerImg {
    width: 10rem;
    top: -1.2rem;
  }
}
.salesFlow {
  /* --------------------------
  * 下：SalesPlus導入フロー（ピンク背景）
  * -------------------------- */
}
.salesFlow__plus {
  background: #fdeaea;
  padding: 6.2rem 0 6.6rem;
}
.salesFlow__brandRow {
  /* ✅ display/align/justify はHTMLユーティリティ */
  gap: 1rem;
  margin-top: 0.6rem;
}
.salesFlow__brandLogo {
  width: 18rem;
  display: block;
}
@media (max-width: 768px) {
  .salesFlow__brandLogo {
    height: 3rem;
  }
}
.salesFlow__brandText {
  font-size: 1.8rem;
  font-weight: 800;
  color: #222;
  letter-spacing: 0.01em;
}
.salesFlow {
  /* 下段のカード差分 */
}
.salesFlow__step--plus {
  border: 2px solid #e5e5e5;
  box-shadow: 0 0.8rem 1.8rem rgba(0, 0, 0, 0.05);
}
.salesFlow__step--highlight {
  background: #fff7dc;
  border-color: var(--accent-color);
  box-shadow: 0 0.8rem 2rem rgba(232, 75, 75, 0.12);
}
.salesFlow__stepNo--red {
  color: var(--accent-color);
}
.salesFlow__stepNo--red::after {
  background: var(--accent-color);
}
.salesFlow {
  /* 下段の丸矢印（赤） */
}
.salesFlow__steps--plus {
  margin-top: 2.6rem;
}
.salesFlow__steps--plus .salesFlow__step:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -0.8rem;
  top: 50%;
  transform: translate(50%, -50%);
  width: 3.2rem;
  height: 3.2rem;
  background: var(--accent-color);
  background-image: url("../images/common/flow-yazirushi.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 1rem auto;
  z-index: 10;
  box-shadow: 0 0.6rem 1.2rem rgba(0, 0, 0, 0.12);
  border-radius: 50%;
}
@media (max-width: 768px) {
  .salesFlow__steps--plus .salesFlow__step:not(:last-child)::after {
    width: 2.5rem;
    height: 2.5rem;
    right: 50%;
    top: auto;
    bottom: -1.8rem;
    transform: translate(50%, 0) rotate(90deg);
  }
}
.salesFlow {
  /* コンサルティング支援の括弧ライン */
}
.salesFlow__support {
  margin-top: 2.2rem;
  gap: 1.6rem;
}
@media (max-width: 768px) {
  .salesFlow__support {
    display: none !important;
    /* HTMLがd-flexでも確実に消す */
  }
}
.salesFlow__supportText {
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--accent-color);
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.salesFlow__supportLine {
  position: relative;
  width: 29rem;
  height: 2.4rem;
}
.salesFlow__supportLine::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  border-top: 3px solid var(--accent-color);
  border-radius: 99px;
}
.salesFlow__supportLine::after {
  content: "";
  position: absolute;
  top: 0%;
  transform: translateY(-50%);
  width: 3px;
  height: 2.4rem;
  background: var(--accent-color);
}
.salesFlow__supportLine--left::after {
  left: 0;
}
.salesFlow__supportLine--right::after {
  right: 0;
}
@media (max-width: 768px) {
  .salesFlow__supportLine {
    width: 10rem;
  }
}
.salesFlow {
  /* 下段の説明＋イラスト（grid→flexユーティリティ化） */
}
.salesFlow__plusBottom {
  margin: auto;
  margin-top: 3.2rem;
  gap: 4.8rem;
  max-width: 661px;
}
@media (max-width: 768px) {
  .salesFlow__plusBottom {
    gap: 1.8rem;
  }
}
.salesFlow__plusDesc {
  margin: 0;
  font-size: 1.6rem;
  color: #333333;
  line-height: 2;
}
@media (max-width: 768px) {
  .salesFlow__plusDesc {
    font-size: 1.3rem;
  }
}
.salesFlow__illustImg {
  width: 26rem;
  height: auto;
  display: block;
}
@media (max-width: 768px) {
  .salesFlow__illustImg {
    width: 18rem;
  }
}

/* foundation */
.supportServices {
  padding: 9.6rem 0 10.4rem;
}
@media (max-width: 768px) {
  .supportServices {
    padding: 5rem 0 5rem;
  }
}
.supportServices__inner {
  position: relative;
}
.supportServices {
  /* =========================
    Title
  ========================= */
}
.supportServices__title {
  /* display/align/justify はHTMLユーティリティ（d-flex etc） */
  margin: auto;
  margin-bottom: 6.4rem;
  max-width: 570px;
  /* gridの左右4rem/中央1fr/右4remを “見た目そのまま” で再現 */
  gap: 2.4rem;
}
@media (max-width: 768px) {
  .supportServices__title {
    gap: 1rem;
    margin-bottom: 4rem;
  }
}
.supportServices__titleDeco {
  /* gridの左右列（4rem / 3rem）相当 */
  width: 4rem;
}
@media (max-width: 768px) {
  .supportServices__titleDeco {
    width: 3rem;
  }
}
.supportServices__titleDeco img {
  width: 100%;
  height: auto;
  display: block;
}
.supportServices__titleDeco--right {
  transform: rotate(180deg);
}
.supportServices__titleText {
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: 0.02em;
  line-height: 1.4;
  text-align: center;
}
@media (max-width: 768px) {
  .supportServices__titleText {
    font-size: 1.8rem;
  }
}
.supportServices__midEm {
  background: linear-gradient(transparent 65%, #fff3a0 65%);
  padding: 0 0.4rem;
}
.supportServices {
  /* =========================
    Grid（grid→flex-wrap）
  ========================= */
}
.supportServices__grid {
  /* d-flex / flex-wrap はHTMLユーティリティ */
  /* gapは見た目維持のためSCSSで固定 */
  gap: 6.4rem;
}
@media (max-width: 768px) {
  .supportServices__grid {
    gap: 4.8rem;
  }
}
.supportServices__card {
  /* d-flex flex-column はHTMLユーティリティ */
  align-items: flex-start;
  /* 3列: repeat(3, 1fr) を flex-basisで再現（gapぶん差し引き） */
  flex: 1 1 calc((100% - 12.8rem) / 3);
  min-width: 0;
}
@media (max-width: 768px) {
  .supportServices__card {
    /* 2列: repeat(2, 1fr) を再現（gapぶん差し引き） */
    flex: 0 0 calc((100% - 4.8rem) / 2);
  }
}
.supportServices {
  /* =========================
    Card
  ========================= */
}
.supportServices__image {
  width: 100%;
  border-radius: 2.4rem;
  overflow: hidden;
  background: #f1f1f1;
  margin-bottom: 3rem;
}
@media (max-width: 768px) {
  .supportServices__image {
    margin-bottom: 1rem;
  }
}
.supportServices__image img {
  width: 100%;
  height: auto;
  display: block;
}
.supportServices__cardTitle {
  margin: auto;
  margin-bottom: 3rem;
  font-size: 1.8rem;
  font-weight: 800;
  color: var(--accent-color);
  line-height: 1.4;
}
@media (max-width: 768px) {
  .supportServices__cardTitle {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    margin-top: 1rem;
  }
}
.supportServices__cardText {
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.9;
  color: #333;
}
@media (max-width: 768px) {
  .supportServices__cardText {
    font-size: 1.2rem;
  }
}

.top-page .supportServices__title {
  max-width: 900px;
}

/* foundation */
.plusFeature {
  --red: #e74b4b;
  --text: #222;
  --muted: #666;
  --panel: #efefef;
  --card: #ffffff;
  --line: #d9d9d9;
  padding: 14rem 0 10rem;
}
.plusFeature__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.plusFeature {
  /* ========= header ========= */
}
.plusFeature__header {
  text-align: center;
  margin-bottom: 6.4rem;
  /* display/column/justify はHTMLユーティリティ */
}
@media (max-width: 768px) {
  .plusFeature__header {
    margin-bottom: 3rem;
  }
}
.plusFeature__title {
  /* d-inline-flex はHTMLユーティリティ */
  align-items: flex-end;
  gap: 1rem;
  margin: auto;
}
@media (max-width: 768px) {
  .plusFeature__title {
    flex-direction: column;
    align-items: center;
  }
}
.plusFeature__logo {
  width: 24rem;
  display: block;
}
@media (max-width: 768px) {
  .plusFeature__logo {
    width: 18rem;
  }
}
.plusFeature__titleText {
  font-size: 3.2rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1;
}
@media (max-width: 768px) {
  .plusFeature__titleText {
    font-size: 1.8rem;
  }
}
.plusFeature__leadRow {
  margin-top: 6.4rem;
  /* d-inline-flex / align-items / gap はHTMLユーティリティ */
}
@media (max-width: 768px) {
  .plusFeature__leadRow {
    margin-top: 3rem;
    /* SPだけ「3rem + 1fr」の見た目をflexで再現 */
    width: 100%;
    max-width: 100%;
    justify-content: center;
    align-items: flex-start;
  }
}
.plusFeature__leadMark {
  width: 3rem;
  display: inline-block;
}
.plusFeature__leadMark img {
  width: 100%;
  height: auto;
  display: block;
}
.plusFeature__lead {
  margin: 0;
  font-size: 2.4rem;
  color: var(--red);
  font-weight: bold;
}
@media (max-width: 768px) {
  .plusFeature__lead {
    font-size: 1.5rem;
    text-align: left;
  }
}
.plusFeature__lead span {
  font-weight: bold;
}
.plusFeature__desc {
  margin: 0.8rem auto 0;
  font-size: 1.6rem;
  line-height: 1.7;
  text-align: left;
}
@media (max-width: 768px) {
  .plusFeature__desc {
    font-size: 1.2rem;
  }
}
.plusFeature {
  /* ========= separator ========= */
}
.plusFeature__hr {
  border: none;
  border-top: 1px solid var(--line);
  margin: 4rem 0;
}
.plusFeature {
  /* ========= subsection head ========= */
}
.plusFeature__subHead {
  /* d-flex align-items-center gap はHTMLユーティリティ */
  margin-bottom: 0.8rem;
}
.plusFeature__subMark {
  width: 3rem;
  flex: 0 0 auto;
}
.plusFeature__subMark img {
  width: 100%;
  display: block;
  height: auto;
}
.plusFeature__subTitle {
  margin: 0;
  font-size: 2.4rem;
  font-weight: bold;
  color: var(--red);
}
@media (max-width: 768px) {
  .plusFeature__subTitle {
    font-size: 1.5rem;
  }
}
.plusFeature__subDesc {
  margin: 0 0 1.6rem;
  font-size: 1.6rem;
  line-height: 1.7;
}
@media (max-width: 768px) {
  .plusFeature__subDesc {
    font-size: 1.2rem;
  }
}
.plusFeature {
  /* ========= grid（grid→flex-wrap） ========= */
}
.plusFeature__grid {
  /* d-flex flex-wrap はHTMLユーティリティ */
  row-gap: 3rem;
  -moz-column-gap: 6rem;
       column-gap: 6rem;
  /* 2カラム相当 */
}
.plusFeature__grid > .plusFeature__block {
  flex: 1 1 calc((100% - 6rem) / 2);
  min-width: 0;
}
@media (max-width: 768px) {
  .plusFeature__grid > .plusFeature__block {
    flex-basis: 100%;
  }
}
.plusFeature {
  /* 2枚のグリッドも同じ（見た目揃えるため残してるだけ） */
}
.plusFeature__grid--two > .plusFeature__block {
  flex: 1 1 calc((100% - 6rem) / 2);
  min-width: 0;
}
@media (max-width: 768px) {
  .plusFeature__grid--two > .plusFeature__block {
    flex-basis: 100%;
  }
}
.plusFeature {
  /* ========= block/card ========= */
}
.plusFeature__block {
  background: url("../images/service-bg.webp") right/cover no-repeat;
  border-radius: 16px;
  overflow: hidden;
  padding: 2.4rem 2.5rem 1.6rem;
}
.plusFeature__blockHead {
  /* d-flex align-items-center はHTMLユーティリティ */
  gap: 0.8rem;
  padding: 1rem 1.2rem;
}
.plusFeature__num {
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: #f3f3f3;
  display: grid;
  place-items: center;
  font-weight: bold;
  font-size: 2rem;
  color: var(--text);
  flex: 0 0 auto;
}
@media (max-width: 768px) {
  .plusFeature__num {
    font-size: 1.5rem;
  }
}
.plusFeature__blockTitle {
  margin: 0;
  font-size: 1.8rem;
  font-weight: bold;
  color: var(--text);
  line-height: 1.4;
}
@media (max-width: 768px) {
  .plusFeature__blockTitle {
    font-size: 1.5rem;
  }
}
.plusFeature__blockTitle--plain {
  padding-left: 0;
}
.plusFeature {
  /* ========= screen ========= */
}
.plusFeature__screen {
  position: relative;
  background: #f7f7f7;
}
.plusFeature__screenImg {
  display: block;
  width: 100%;
  height: auto;
}
.plusFeature__zoom {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  width: 3.8rem;
  height: 3.8rem;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
}
.plusFeature__zoomImg {
  width: 100%;
  height: auto;
  display: block;
}
.plusFeature {
  /* ========= desc ========= */
}
.plusFeature__blockDesc {
  margin: 0;
  padding: 1.2rem 1.2rem 1.4rem;
  font-size: 1.6rem;
  color: #333333;
  line-height: 1.65;
}
@media (max-width: 768px) {
  .plusFeature__blockDesc {
    font-size: 1.2rem;
  }
}
.plusFeature {
  /* ========= responsive tweaks ========= */
}
@media (max-width: 768px) {
  .plusFeature {
    padding: 4rem 0;
  }
  .plusFeature__panel {
    padding: 1.2rem;
  }
  .plusFeature__hr {
    margin: 3.2rem 0;
  }
}

.mainFeatures {
  margin: 4rem auto;
  padding: 4rem 6rem;
  background: #f4f4f4;
  border-radius: 3.2rem;
}
@media (max-width: 900px) {
  .mainFeatures {
    width: calc(100% - 3.2rem);
    padding: 4.8rem 2.4rem 5.2rem;
    border-radius: 2.4rem;
  }
}
.mainFeatures__inner {
  max-width: 168rem;
  margin: 0 auto;
}
.mainFeatures {
  /* ==========
  * 見出し
  * ========== */
}
.mainFeatures__heading {
  /* d-flex / align-items / justify-content はHTMLユーティリティ */
  gap: 2.4rem;
  margin-bottom: 5.2rem;
}
@media (max-width: 900px) {
  .mainFeatures__heading {
    gap: 1.6rem;
    margin-bottom: 3.6rem;
  }
}
.mainFeatures__title {
  margin: 0;
  font-weight: 900;
  font-size: 2.4rem;
  letter-spacing: 0.06em;
  color: #e6504c;
  line-height: 1;
}
@media (max-width: 900px) {
  .mainFeatures__title {
    font-size: 1.8rem;
  }
}
.mainFeatures__slash {
  /* d-inline-flex / align-items はHTMLユーティリティで付与 */
}
.mainFeatures__slash img {
  display: block;
  width: 4rem;
  height: auto;
}
@media (max-width: 900px) {
  .mainFeatures__slash img {
    width: 3.2rem;
  }
}
.mainFeatures {
  /* ==========
  * 3カラム（grid→flex-wrap）
  * ========== */
}
.mainFeatures__grid {
  /* d-flex flex-wrap はHTMLユーティリティ */
  align-items: flex-start;
  /* gridのgap再現 */
  row-gap: 6rem;
  -moz-column-gap: 6rem;
       column-gap: 6rem;
}
@media (max-width: 1100px) {
  .mainFeatures__grid {
    row-gap: 4.8rem;
    -moz-column-gap: 4.8rem;
         column-gap: 4.8rem;
  }
}
@media (max-width: 900px) {
  .mainFeatures__grid {
    row-gap: 3.6rem;
    -moz-column-gap: 0;
         column-gap: 0;
  }
}
.mainFeatures__item {
  min-width: 0;
  /* 3カラム幅（gap 6rem ×2 を差し引いて3等分） */
  flex: 1 1 calc((100% - 12rem) / 3);
}
@media (max-width: 900px) {
  .mainFeatures__item {
    flex-basis: 100%;
  }
}
.mainFeatures__itemTitle {
  margin: 0 0 2rem;
  text-align: center;
  font-weight: bold;
  font-size: 2rem;
  color: #2f2f2f;
  letter-spacing: 0.02em;
}
@media (max-width: 900px) {
  .mainFeatures__itemTitle {
    font-size: 1.5rem;
    margin-bottom: 1.6rem;
  }
}
.mainFeatures {
  /* ==========
  * 画像カード（白角丸）
  * ========== */
}
.mainFeatures__card {
  background: #fff;
  border-radius: 2rem;
  padding: 3rem 3.2rem;
  box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, 0.06);
  /* display:grid をやめてflexで中央寄せ（見た目は同じ） */
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16/7.2;
}
@media (max-width: 900px) {
  .mainFeatures__card {
    border-radius: 1.6rem;
    padding: 2.4rem;
    aspect-ratio: 16/8;
  }
}
.mainFeatures__img {
  display: block;
  height: 15rem;
  -o-object-fit: contain;
     object-fit: contain;
}
.mainFeatures {
  /* ==========
  * 説明文
  * ========== */
}
.mainFeatures__text {
  margin: 2.4rem 0 0;
  font-size: 1.6rem;
  line-height: 1.5;
  color: #3a3a3a;
  letter-spacing: 0.02em;
}
@media (max-width: 900px) {
  .mainFeatures__text {
    margin-top: 1.8rem;
    font-size: 1.6rem;
    line-height: 1.85;
    font-size: 1.2rem !important;
  }
}

/* foundation */
.supportFlow {
  background: var(--accent-soft);
  padding: 5.6rem 0;
}
@media (max-width: 1000px) {
  .supportFlow {
    padding: 5.6rem 2rem;
  }
}
.supportFlow__lead {
  margin: 0 0 5rem;
  text-align: center;
  color: var(--accent-color);
  font-weight: 900;
  font-size: 3.2rem;
  letter-spacing: 0.02em;
}
@media (max-width: 768px) {
  .supportFlow__lead {
    font-size: 1.8rem;
  }
}
.supportFlow__frame {
  position: relative;
  max-width: 112rem;
  margin: 0 auto;
  border: 6px solid var(--support-flow-border-color, var(--accent-color));
  border-radius: 4rem;
  padding: 6.2rem 4.6rem 4.2rem;
}
@media (max-width: 1000px) {
  .supportFlow__frame {
    padding: 6.2rem 2.2rem 3.2rem;
  }
}
.supportFlow {
  /* 上に乗るブランドロゴ（枠線をマスク） */
}
.supportFlow__brand {
  position: absolute;
  left: 50%;
  top: -2rem;
  transform: translateX(-50%);
  background: var(--accent-soft);
  padding: 0 2rem;
}
@media (max-width: 768px) {
  .supportFlow__brand {
    width: 80%;
  }
}
.supportFlow__brandImg {
  display: block;
  max-width: 34rem;
  /* 元の意図を崩さず上限を固定 */
  width: 100%;
  height: auto;
  margin: 0 auto;
}
.supportFlow__copy {
  margin: 0 0 2.6rem;
  text-align: center;
  font-weight: bold;
  font-size: 2rem;
  color: #000000;
  letter-spacing: 0.01em;
}
@media (max-width: 768px) {
  .supportFlow__copy {
    font-size: 1.5rem;
  }
}
.supportFlow {
  /* ==========================
   * steps（横並び）
   * ※ display/flex はHTMLユーティリティで付与
   * ========================== */
}
.supportFlow__steps {
  gap: 0rem;
  margin: 0 0 2.6rem;
}
@media (max-width: 1200px) {
  .supportFlow__steps {
    margin: 0;
  }
}
@media (max-width: 1000px) {
  .supportFlow__steps {
    /* HTML側は d-flex のまま。レイアウトの変化は CSS で担保（デザイン維持） */
    flex-direction: column;
    flex-wrap: wrap;
    gap: 1.2rem 1rem;
    margin: 0;
  }
}
.supportFlow__step {
  position: relative;
  border-radius: 1.2rem;
  padding: 1.6rem 1.8rem;
  min-height: 13.4rem;
  width: var(--step-w, 14rem);
}
.supportFlow__stepLink {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.supportFlow__stepLink:hover,
.supportFlow__stepLink:focus-visible {
  opacity: 0.8;
}
.supportFlow__stepNumber {
  display: inline-flex;
  flex: 0 0 2.2rem;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  min-width: 2.2rem;
  height: 2.2rem;
  min-height: 2.2rem;
  margin: 0 auto 0.6rem;
  border: 1px solid #000000;
  box-sizing: border-box;
  border-radius: 50%;
  background: transparent;
  color: #1a1a1a;
  font-size: 1.2rem;
  font-weight: 900;
  line-height: 1;
}
.supportFlow__stepNumber.is-active {
  border: none;
  background: var(--support-flow-active-number-color);
  color: #fff;
}
.supportFlow__devStatus {
  margin: 0;
  color: #777;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.3;
}
@media (max-width: 1000px) {
  .supportFlow__step {
    width: 100%;
  }
}
.supportFlow__step--white {
  background: #fff;
}
.supportFlow__step--white:hover {
  background-color: #f8f9fa;
}
.supportFlow__step--gray {
  background: #dedede;
}
.supportFlow__step--accent {
  color: #fff;
  border-radius: 1.6rem;
  background: var(--accent-bg, none) center/cover no-repeat;
}
.supportFlow {
  /* 最後の横長 */
}
.supportFlow__step--wide {
  background: #ffffff;
  width: 45rem;
  padding: 1.6rem 2rem;
}
@media (max-width: 768px) {
  .supportFlow__step--wide {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    width: min(38rem, 100%);
  }
}
.supportFlow__stepTitle {
  margin: 0 0 1rem;
  font-weight: 900;
  font-size: 1.4rem;
  color: #1a1a1a;
  letter-spacing: 0.02em;
  text-align: center;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .supportFlow__stepTitle {
    font-size: 1.2rem;
  }
}
.supportFlow__stepTitle--white {
  color: #fff;
  margin-bottom: 0.8rem;
  font-size: 1.6rem;
}
@media (max-width: 768px) {
  .supportFlow__stepTitle--white {
    font-size: 1.2rem;
  }
}
.supportFlow {
  /* ==========================
   * logos
   * ※ display/flex はHTMLユーティリティで付与
   * ========================== */
}
.supportFlow__logos {
  gap: 0.6rem;
}
.supportFlow__logos--stack {
  gap: 0.4rem;
}
.supportFlow__logo {
  display: block;
  max-width: 100%;
  height: auto;
}
.supportFlow__logo--eigyo-karte {
  max-height: 3.2rem;
  width: auto;
}
.supportFlow__logo--sales-rebuild-dx {
  max-height: 3.2rem;
  width: auto;
}
.supportFlow__logo--muted {
  opacity: 0.55;
}
.supportFlow__devNote {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
  color: rgba(0, 0, 0, 0.45);
  letter-spacing: 0.02em;
}
.supportFlow {
  /* ==========================
   * connector（赤丸＋矢印）
   * ※ display/flex はHTMLユーティリティで付与
   * ========================== */
}
.supportFlow__connector {
  flex: 0 0 auto;
  width: 3.2rem;
  z-index: 1;
  margin: 0 -1rem;
}
@media (max-width: 1000px) {
  .supportFlow__connector {
    margin: 0 -2rem;
  }
}
.supportFlow__connectorCircle {
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 50%;
  background: var(--support-flow-arrow-color, var(--accent-color));
  border: 1px solid #fff;
}
@media (max-width: 1000px) {
  .supportFlow__connectorCircle {
    width: 2rem;
    height: 2rem;
  }
}
.supportFlow__connectorCircle img {
  width: 1.2rem;
  height: auto;
  display: block;
}
@media (max-width: 1000px) {
  .supportFlow__connectorCircle img {
    width: 1rem;
    transform: rotate(90deg);
  }
}
.supportFlow__connectorCircle--sm {
  width: 2.8rem;
  height: 2.8rem;
}
.supportFlow__connectorCircle--sm img {
  width: 1.1rem;
}
.supportFlow {
  /* ==========================
   * wide内
   * ※ display/flex はHTMLユーティリティで付与
   * ========================== */
}
.supportFlow__wideBottom {
  margin-top: 0.8rem;
  gap: 0.2rem;
}
.supportFlow__wideBottom .supportFlow__logo {
  width: 10.8rem;
}
.supportFlow__desc {
  margin: 0;
  text-align: center;
  font-size: 1.8rem;
  line-height: 1.9;
  color: #000000;
}
@media (max-width: 768px) {
  .supportFlow__desc {
    font-size: 1.2rem;
    margin-top: 2rem;
  }
}
.supportFlow__descEm {
  color: var(--accent-color);
  font-weight: 900;
}
.supportFlow__note {
  margin: 0;
  color: #000;
  font-size: 1.2rem;
  line-height: 1.5;
  text-align: right;
}

.page-lbiz-plus .supportFlow__logos .supportFlow__logo:nth-child(2),
.page-campaign-plus .supportFlow__logos .supportFlow__logo:nth-child(2) {
  display: none;
}

/* =========================
  Support Flow
  タイトル・ロゴ・矢印位置統一
  全4LP共通
========================= */
.supportFlow {
  /* すべてのカード内を上から同じ構造で配置 */
}
.supportFlow__step {
  justify-content: flex-start !important;
}
.supportFlow {
  /* タイトル領域 */
}
.supportFlow__stepTitle {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 2.6rem !important;
  min-height: 2.6rem !important;
  margin: 0 0 0.8rem !important;
  text-align: center !important;
  line-height: 1.3 !important;
  white-space: nowrap;
}
.supportFlow__stepTitle--eigyo-karte {
  height: 3.6rem !important;
  min-height: 3.6rem !important;
  white-space: normal;
}
.supportFlow {
  /* 通常カードのロゴ領域 */
}
.supportFlow__logos {
  display: flex !important;
  flex-direction: column;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 3.2rem !important;
  min-height: 3.2rem !important;
  margin: 0 !important;
}
.supportFlow {
  /* 右側の横長カード */
}
.supportFlow__step--wide {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  justify-content: space-around !important;
  padding-top: 1.6rem !important;
  padding-bottom: 1.6rem !important;
}
.supportFlow {
  /* 入金管理・問い合わせ管理・契約継続 */
}
.supportFlow__wideStep, .supportFlow__step--wideItem {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
}
.supportFlow {
  /* 横長カード内のタイトル */
}
.supportFlow__wideStep .supportFlow__stepTitle, .supportFlow__step--wideItem .supportFlow__stepTitle {
  flex: 0 0 2.6rem !important;
  width: 100% !important;
  height: 2.6rem !important;
  min-height: 2.6rem !important;
  margin: 0 0 0.8rem !important;
  text-align: center !important;
}
.supportFlow {
  /* 右側のFreshdeskロゴ領域 */
}
.supportFlow__wideBottom {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 3.2rem !important;
  min-height: 3.2rem !important;
  margin: 0 !important;
  gap: 0 !important;
}
.supportFlow {
  /* 左右のFreshdeskロゴを同じサイズにする */
}
.supportFlow__logo--freshdesk {
  display: block !important;
  width: 9.6rem !important;
  max-width: 9.6rem !important;
  height: 2.6rem !important;
  max-height: 2.6rem !important;
  margin: 0 auto !important;
  -o-object-fit: contain !important;
     object-fit: contain !important;
  opacity: 1 !important;
}
.supportFlow {
  /* 通常カード間の矢印 */
}
.supportFlow__steps > .supportFlow__connector {
  align-self: center !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.supportFlow {
  /* 横長カード内の矢印 */
}
.supportFlow__step--wide > .supportFlow__connector, .supportFlow__step--wide > .supportFlow__connectorSm {
  align-self: center !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.supportFlow {
  /* タブレット・スマホは既存の縦並び */
}
@media (max-width: 1000px) {
  .supportFlow__stepTitle, .supportFlow__logos, .supportFlow__wideBottom {
    height: auto !important;
    min-height: auto !important;
  }
  .supportFlow__step--wide {
    flex-direction: column !important;
    align-items: center !important;
    gap: 2rem;
  }
  .supportFlow__wideStep, .supportFlow__step--wideItem {
    width: 100% !important;
  }
}

/* =========================
  Support Flow 横長ブロック
  タイトルを通常カードと同じ上位置に統一
========================= */
.supportFlow {
  /* 横長ブロックの子要素を上端から配置 */
}
.supportFlow__step--wide {
  align-items: stretch !important;
}
.supportFlow {
  /* 入金管理・問い合わせ管理・契約継続 */
}
.supportFlow__step--wide > .supportFlow__wideStep, .supportFlow__step--wide > .supportFlow__step--wideItem {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  align-self: stretch !important;
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  transform: none !important;
}
.supportFlow {
  /* 3項目のタイトルを通常カードと同じ上位置に固定 */
}
.supportFlow__step--wide > .supportFlow__wideStep > .supportFlow__stepTitle, .supportFlow__step--wide > .supportFlow__step--wideItem > .supportFlow__stepTitle {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 2.6rem !important;
  width: 100% !important;
  height: 2.6rem !important;
  min-height: 2.6rem !important;
  margin: 0 0 0.8rem !important;
  padding: 0 !important;
  text-align: center !important;
  line-height: 1.3 !important;
  transform: none !important;
}
.supportFlow {
  /* 右側のFreshdeskロゴ領域 */
}
.supportFlow__step--wide .supportFlow__wideBottom {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 3.2rem !important;
  min-height: 3.2rem !important;
  margin: 0 !important;
  padding: 0 !important;
}
.supportFlow {
  /* 横長ブロック内の矢印だけはブロック中央 */
}
.supportFlow__step--wide > .supportFlow__connector, .supportFlow__step--wide > .supportFlow__connectorSm {
  align-self: center !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* foundation */
.contact {
  background: #F5F5F5;
  padding: 64px 0 80px;
}
.contact__inner {
  width: min(980px, 100% - 48px);
  margin: 0 auto;
}
.contact__title {
  margin: 0;
  text-align: center;
  font-weight: bold;
  font-size: 3.2rem;
  letter-spacing: 0.06em;
  color: var(--accent-color);
}
@media (max-width: 768px) {
  .contact__title {
    font-size: 1.8rem;
  }
}
.contact__note {
  margin: 12px 0 36px;
  text-align: center;
  font-size: 1.6rem;
  color: #000000;
}
@media (max-width: 768px) {
  .contact__note {
    font-size: 1.2rem;
  }
}
.contact__noteMark {
  color: #e55e57;
  font-weight: 900;
}
.contact__form + .contact__form {
  border-top: 1px solid #ededed;
}
.contact {
  /* ✅ grid → flex（デザイン維持）
  * - label: 220px 固定
  * - gap: 56px
  * - 縦中央揃え
  */
}
.contact__row {
  display: flex;
  align-items: center;
  gap: 56px;
  padding: 22px 0;
  border-bottom: 1px solid #ededed;
}
.contact__row--message {
  padding: 28px 0;
}
.contact {
  /* label は 220px 固定 + 左余白（元の見た目維持） */
}
.contact__label {
  flex: 0 0 220px;
  max-width: 220px;
  font-size: 1.6rem;
  color: #000000;
  line-height: 1.4;
  padding-left: 24px;
}
@media (max-width: 768px) {
  .contact__label {
    font-size: 1.2rem;
  }
}
.contact__req {
  color: #e55e57;
  font-weight: 900;
  margin-left: 6px;
}
.contact {
  /* field は残り幅を使う（元の 1fr と同等） */
}
.contact__field {
  flex: 1 1 auto;
  min-width: 0;
  display: block;
}
.contact__input, .contact__textarea {
  width: min(620px, 100%);
  border: 2px solid #d6d6d6;
  border-radius: 6px;
  background: #fff;
  font-size: 14px;
  color: #000000;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
@media (max-width: 768px) {
  .contact__input, .contact__textarea {
    font-size: 1.2rem;
  }
}
.contact__input {
  height: 46px;
  padding: 0 16px;
}
.contact__input::-moz-placeholder {
  color: #a0a0a0;
}
.contact__input::placeholder {
  color: #a0a0a0;
}
.contact__textarea {
  min-height: 260px;
  padding: 12px 16px;
  resize: vertical;
}
.contact__textarea::-moz-placeholder {
  color: #a0a0a0;
}
.contact__textarea::placeholder {
  color: #a0a0a0;
}
.contact__input:focus, .contact__textarea:focus {
  border-color: rgba(var(--accent-color), 0.75);
  box-shadow: 0 0 0 4px rgba(var(--accent-color), 0.18);
}
.contact {
  /* ✅ place-items をやめて flex で中央寄せ（見た目は同じ） */
}
.contact__actions {
  padding-top: 40px;
  display: flex;
  justify-content: center;
}
.contact__submit {
  width: min(360px, 80%);
  height: 56px;
  border: 0;
  border-radius: 6px;
  background-color: #2f2f2f;
  background-image: url("../images/common/icon-arrow-submit.svg");
  background-repeat: no-repeat;
  background-position: calc(50% + 36px) center;
  background-size: 20px 20px;
  color: #fff;
  font-weight: 800;
  font-size: 16px;
  letter-spacing: 0.08em;
  cursor: pointer;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.18);
}
@media (max-width: 768px) {
  .contact__submit {
    font-size: 1.3rem;
    height: 5rem;
  }
}
@media (max-width: 860px) {
  .contact {
    /* ✅ 1カラム化：grid→flex-column（見た目維持） */
  }
  .contact__row {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 18px 0;
  }
  .contact__label {
    flex: 0 0 auto;
    max-width: none;
    padding-left: 0;
  }
  .contact__input, .contact__textarea {
    width: 100%;
  }
}
.contact__thanks {
  padding: 5rem 0 2rem;
  text-align: center;
}
.contact__thanksTitle {
  margin: 0;
  font-weight: 800;
  font-size: 2.8rem;
  letter-spacing: 0.04em;
  color: #e55e57;
}
.contact__thanksLead {
  margin: 3rem 0 1rem;
  font-size: 1.6rem;
  font-weight: bold;
  color: #000000;
}
.contact__thanksNote {
  margin: 0 0 4rem;
  font-size: 1.3rem;
  color: #000000;
  line-height: 1.9;
}
.contact__thanksImgWrap {
  display: flex;
  justify-content: center;
}
.contact__thanksImg {
  width: 28rem;
  max-width: 60%;
  height: auto;
  display: block;
}
@media (max-width: 860px) {
  .contact__thanks {
    padding: 3rem 0 1.5rem;
  }
  .contact__thanksTitle {
    font-size: 2.2rem;
    line-height: 1.4;
  }
  .contact__thanksLead {
    margin: 2rem 0 0.8rem;
    font-size: 1.5rem;
    line-height: 1.8;
  }
  .contact__thanksNote {
    margin: 0 0 2rem;
    font-size: 1.2rem;
    line-height: 1.8;
    padding: 0 1.2rem;
  }
  .contact__thanksImg {
    width: min(24rem, 75%);
    height: auto;
  }
}

.contactModal__panel .contact {
  padding-top: 0;
  background-color: white;
}

.wpcf7-spinner {
  display: none !important;
}

/* foundation */
.siteFooter {
  background: #3a3a3a;
}
.siteFooter__main {
  position: relative;
  padding: 8rem 0 4.2rem;
  background: #3a3a3a;
  height: 40rem;
  background-image: url("../images/footer/footer-bg.webp");
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 551px;
}
.siteFooter__inner {
  max-width: 112rem;
  margin: 0 auto;
}
.siteFooter__brand {
  display: grid;
  justify-items: center;
  margin-bottom: 3.2rem;
  opacity: 0.55;
}
.siteFooter__brandImg {
  display: block;
  width: 24rem;
}
.siteFooter__products {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 4.2rem;
  margin: 0 0 3.6rem;
  flex-wrap: nowrap;
}
.siteFooter__product {
  display: grid;
  justify-items: center;
  gap: 0.6rem;
  text-decoration: none;
  color: inherit;
  min-width: 13rem;
}
.siteFooter__product:hover .siteFooter__productCaption {
  opacity: 1;
  text-decoration: underline;
  text-underline-offset: 0.3em;
}
.siteFooter__product--disabled {
  opacity: 1;
  pointer-events: none;
}
.siteFooter__productLogo {
  display: block;
  height: 2.2rem;
  width: auto;
}
.siteFooter__productCaption {
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.55);
  opacity: 0.95;
  white-space: nowrap;
  text-align: center;
}
.siteFooter {
  /* 追加：営業カルテ / サービスマニフェスト / Freshworks社開発事例 */
}
.siteFooter__subProducts {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5.2rem;
  margin: 0 0 4.2rem;
}
.siteFooter__subProducts a {
  color: rgba(255, 255, 255, 0.78);
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
}
.siteFooter__subProducts a:hover {
  color: rgba(255, 255, 255, 0.95);
  text-decoration: underline;
  text-underline-offset: 0.3em;
}
.siteFooter__nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.6rem;
  color: rgba(255, 255, 255, 0.62);
}
.siteFooter__navLink {
  font-size: 1.3rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.62);
  text-decoration: none;
}
.siteFooter__navLink:hover {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: underline;
  text-underline-offset: 0.3em;
}
.siteFooter__navSep {
  color: rgba(255, 255, 255, 0.35);
}
.siteFooter__bottom {
  background: #9c9c9c;
  padding: 1.2rem 0;
}
.siteFooter__copyright {
  margin: 0;
  text-align: center;
  font-size: 1.2rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  letter-spacing: 0.02em;
}
@media (max-width: 980px) {
  .siteFooter__main {
    background-position: right -8rem center;
    background-size: auto 110%;
    height: auto;
  }
  .siteFooter__products {
    flex-wrap: wrap;
    row-gap: 2rem;
    -moz-column-gap: 3.2rem;
         column-gap: 3.2rem;
  }
  .siteFooter__subProducts {
    flex-wrap: wrap;
    gap: 1.8rem 3.2rem;
  }
}
@media (max-width: 640px) {
  .siteFooter__brandImg {
    width: 20rem;
  }
  .siteFooter__productLogo {
    height: 2rem;
  }
  .siteFooter__subProducts {
    flex-direction: column;
    gap: 1.2rem;
    margin-bottom: 3.2rem;
  }
  .siteFooter__subProducts a {
    font-size: 1.4rem;
  }
  .siteFooter__nav {
    flex-wrap: wrap;
    row-gap: 0.8rem;
  }
}

/* foundation */
body.is-modalOpen {
  overflow: hidden;
}

.contactModal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
.contactModal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.contactModal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}
.contactModal__dialog {
  position: relative;
  width: min(980px, 100vw - 80px);
  margin: 60px auto;
  z-index: 1;
  /* ★追加 */
  max-height: calc(100vh - 120px);
  /* ★縦方向に */
  display: flex;
  flex-direction: column;
}
@media (max-width: 768px) {
  .contactModal__dialog {
    width: min(980px, 100vw - 28px);
    margin: 24px auto;
  }
}
.contactModal__panel {
  background: #fff;
  border-radius: 22px;
  padding: 46px 60px 36px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.25);
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
@media (max-width: 768px) {
  .contactModal__panel {
    padding: 32px 18px 28px;
    border-radius: 18px;
  }
}
.contactModal__close {
  position: absolute;
  top: -40px;
  right: -40px;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: 0;
  background: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.18);
}
.contactModal__close img {
  width: 25px;
  height: auto;
  display: block;
}
@media (max-width: 768px) {
  .contactModal__close {
    top: -12px;
    right: -12px;
    width: 40px;
    height: 40px;
    z-index: 10;
  }
  .contactModal__close img {
    width: 16px;
  }
}
.contactModal__title {
  margin: 0;
  text-align: center;
  color: #e55e57;
  font-weight: 900;
  font-size: 34px;
  letter-spacing: 0.04em;
}
@media (max-width: 768px) {
  .contactModal__title {
    font-size: 26px;
  }
}
.contactModal__note {
  margin: 10px 0 26px;
  text-align: center;
  font-size: 12px;
  color: #666;
  font-weight: 700;
}
.contactModal__req {
  color: #e55e57;
  font-weight: 900;
}


/* Contact Form 7 modal: YR corporate style */
.contactModal__dialog { width: min(680px, 100vw - 48px); height: calc(100vh - 120px); height: calc(100dvh - 120px); }
.contactModal__panel { display: flex; height: calc(100vh - 120px); max-height: calc(100vh - 120px); padding: 0; border: 0; border-radius: 20px; box-shadow: 0 24px 60px rgba(13, 35, 67, 0.28); overflow: hidden; }
.contactModal__panel .contact { display: flex; flex: 1 1 auto; height: 100%; min-height: 0; padding: 0; background: #fff; }
.contactModal__panel .contact__inner { display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 0; }
.contactModal__panel .contact__title { padding: 20px 64px 20px 24px; text-align: left; color: #fff; font-size: 20px; line-height: 1.4; background: linear-gradient(90deg, #102b4e, #1769e0); }
.contactModal__panel .contact__note { margin: 0; padding: 20px 24px 4px; text-align: left; color: #526174; font-size: 12px; }
.contactModal__panel .contact__formWrap,
.contactModal__panel .contact__thanks { flex: 1 1 0; height: 0; min-height: 0; padding: 16px 24px 24px; overflow-x: hidden; overflow-y: scroll; scrollbar-gutter: stable; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.contactModal__panel .wpcf7-form { color: #25364d; }
.contactModal__panel .wpcf7-form p { margin: 0; }
.contactModal__panel .wpcf7-form label { display: block; margin-bottom: 16px; color: #102b4e; font-size: 15px; font-weight: 700; line-height: 1.5; }
.contactModal__panel .wpcf7-form-control-wrap { display: block; width: 100%; margin-top: 7px; }
.contactModal__panel .wpcf7-form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) { display: block; width: 100%; max-width: none; min-height: 46px; padding: 12px 14px; border: 1px solid #ced8e5; border-radius: 10px; outline: none; background: #f7f9fc; color: #25364d; font-size: 15px; line-height: 1.5; transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; }
.contactModal__panel .wpcf7-form textarea { min-height: 150px; resize: vertical; }
.contactModal__panel .wpcf7-form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea):focus { border-color: #1769e0; background: #fff; box-shadow: 0 0 0 3px rgba(23, 105, 224, 0.12); }
.contactModal__panel .wpcf7-form .leadbiz-external-id,
.contactModal__panel .wpcf7-form-control-wrap[data-name="text-457"] { display: none; }
.contactModal__panel .wpcf7-submit { display: block; width: 100%; min-height: 50px; margin-top: 4px; padding: 13px 20px; border: 0; border-radius: 10px; background: linear-gradient(90deg, #102b4e, #1769e0); color: #fff; font-size: 16px; font-weight: 700; letter-spacing: 0.08em; cursor: pointer; box-shadow: 0 10px 24px rgba(23, 105, 224, 0.22); transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease; }
.contactModal__panel .wpcf7-submit:hover { opacity: 0.92; transform: translateY(-2px); box-shadow: 0 14px 28px rgba(23, 105, 224, 0.28); }
.contactModal__panel .wpcf7-not-valid-tip { margin-top: 6px; font-size: 12px; }
.contactModal__panel .wpcf7-response-output { margin: 16px 0 0; padding: 10px 12px; border-radius: 8px; font-size: 13px; }
.contactModal__close { top: 13px; right: 16px; z-index: 10; width: 36px; height: 36px; background: transparent; box-shadow: none; }
.contactModal__close img { width: 18px; filter: brightness(0) invert(1); }
@media (max-width: 768px) {
  .contactModal__dialog { width: calc(100vw - 24px); height: calc(100vh - 24px); height: calc(100dvh - 24px); margin: 12px auto; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
  .contactModal__panel { height: calc(100vh - 24px); max-height: calc(100vh - 24px); border-radius: 16px; }
  .contactModal__panel .contact__title { padding: 17px 56px 17px 16px; font-size: 18px; }
  .contactModal__panel .contact__note { padding: 16px 16px 2px; }
  .contactModal__panel .contact__formWrap,
  .contactModal__panel .contact__thanks { padding: 14px 16px 20px; }
  .contactModal__panel .wpcf7-form label { margin-bottom: 14px; font-size: 14px; }
  .contactModal__panel .wpcf7-form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) { font-size: 16px; }
  .contactModal__close { top: 9px; right: 10px; }
}
.imageZoom {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.imageZoom.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.imageZoom__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
}
.imageZoom__dialog {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
  z-index: 1;
}
.imageZoom__img {
  display: block;
  max-width: 100%;
  max-height: 90vh;
  border-radius: 12px;
  background: #fff;
}
.imageZoom__close {
  position: absolute;
  top: -40px;
  right: -40px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  background: #fff;
  font-size: 20px;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.25);
}
@media (max-width: 768px) {
  .imageZoom__close {
    top: -20px;
    right: -10px;
    z-index: 10;
  }
}

/* foundation */
/* =========================
  Header
========================= */
.g-header {
  position: fixed;
  top: 0;
  z-index: 50;
  background: #fff;
  border-bottom: 1px solid #f2f2f2;
  width: 100%;
}
.g-header__inner {
  gap: 1.8rem;
}
.g-header__brand {
  display: inline-flex;
  align-items: center;
}
.g-header__brandImg {
  height: 40px;
  width: auto;
}
.g-header__nav {
  min-width: 0;
}
.g-header__navList {
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 22px;
}
.g-header__navLink {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 6px 8px;
  border-radius: 6px;
}
.g-header__navLink:hover {
  background: rgba(0, 0, 0, 0.03);
}
.g-header__navLogo {
  height: 22px;
  width: auto;
}
.g-header__navCaption {
  font-size: 10px;
  color: #8a8a8a;
  line-height: 1;
  letter-spacing: 0.02em;
}
.g-header__right {
  gap: 12px;
}
.g-header__group {
  display: inline-flex;
  align-items: center;
}
.g-header__groupImg {
  height: 26px;
  width: auto;
}
.g-header__cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 42px;
  padding: 0 16px;
  background: #333333;
  color: #fff;
  border-radius: 6px;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.02em;
  text-decoration: none;
}
.g-header__cta:hover {
  background: #1f1f1f;
}
.g-header__ctaIcon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
}
.g-header__ctaIconImg {
  width: 18px;
  height: 18px;
}
.g-header__hamburger {
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  position: relative;
  border-radius: 8px;
}
.g-header__hamburger:hover {
  background: rgba(0, 0, 0, 0.03);
}
.g-header__hamburgerLine {
  position: absolute;
  width: 22px;
  height: 2px;
  background: #222;
  transition: transform 0.25s ease, opacity 0.25s ease, top 0.25s ease;
}
.g-header__hamburgerLine:nth-child(1) {
  top: 14px;
}
.g-header__hamburgerLine:nth-child(2) {
  top: 21px;
}
.g-header__hamburgerLine:nth-child(3) {
  top: 28px;
}
.g-header__hamburger.is-open .g-header__hamburgerLine:nth-child(1) {
  top: 21px;
  transform: rotate(45deg);
}
.g-header__hamburger.is-open .g-header__hamburgerLine:nth-child(2) {
  opacity: 0;
}
.g-header__hamburger.is-open .g-header__hamburgerLine:nth-child(3) {
  top: 21px;
  transform: rotate(-45deg);
}

/* body固定（SPメニュー開いてる時） */
body.is-menuOpen {
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
}

/* =========================
  SP Menu
========================= */
.spMenu {
  position: fixed;
  inset: 0;
  z-index: 100;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
.spMenu.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.spMenu__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}
.spMenu__panel {
  position: fixed;
  top: 0;
  right: 0;
  width: min(92vw, 420px);
  height: 100%;
  background: #fff;
  transform: translateX(102%);
  transition: transform 0.28s ease;
  padding: 18px 18px 22px;
  box-shadow: -12px 0 30px rgba(0, 0, 0, 0.12);
  /* ✅ 構造はHTMLで d-flex flex-column に移管済み */
}
.spMenu.is-open .spMenu__panel {
  transform: translateX(0);
}
.spMenu {
  /* 上部（ブランド + 閉じる） */
}
.spMenu__top {
  /* ✅ 構造はHTMLで d-flex align-items-center justify-content-between に移管済み */
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.spMenu__brand {
  /* ✅ HTML側で d-inline-flex align-items-center 付与済み */
  text-decoration: none;
}
.spMenu__brandImg {
  height: 34px;
  width: auto;
}
.spMenu__close {
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  position: relative;
  border-radius: 8px;
}
.spMenu__close:hover {
  background: rgba(0, 0, 0, 0.03);
}
.spMenu__closeLine {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 22px;
  height: 2px;
  background: #222;
}
.spMenu__closeLine:nth-child(1) {
  transform: translate(-50%, -50%) rotate(45deg);
}
.spMenu__closeLine:nth-child(2) {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.spMenu {
  /* 中央：nav */
}
.spMenu__nav {
  padding-top: 14px;
  padding-bottom: 14px;
  overflow: auto;
  /* ✅ HTMLで flex-grow-1 を付けているので、上と下に挟まれても自然に伸びる */
}
.spMenu {
  /* PCと同じ nav を流用し、SPメニュー内だけ縦並びにする */
}
.spMenu .g-header__navList {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr;
  justify-content: stretch;
  gap: 12px;
}
.spMenu .g-header__navItem {
  width: 100%;
}
.spMenu .g-header__navLink {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  gap: 12px;
  padding: 12px 12px;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.02);
}
.spMenu .g-header__navLink:hover {
  background: rgba(0, 0, 0, 0.04);
}
.spMenu .g-header__navLogo {
  height: 22px;
  width: auto;
  flex: 0 0 auto;
}
.spMenu .g-header__navCaption {
  font-size: 10px;
  line-height: 1.2;
  color: #555;
  font-weight: 700;
}
.spMenu {
  /* 下部 */
}
.spMenu__bottom {
  padding-top: 12px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  display: grid;
  gap: 12px;
}
.spMenu__group {
  /* ✅ HTMLで d-inline-flex align-items-center 付与済み */
  text-decoration: none;
}
.spMenu__groupImg {
  height: 26px;
  width: auto;
}
.spMenu__cta {
  width: 100%;
  justify-content: center;
}
.spMenu__focusGuard {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

/* =========================
  Header current / muted
========================= */
.g-header__navLink {
  transition: opacity 0.25s ease, background 0.25s ease;
}
.g-header__navLink.is-muted {
  opacity: 0.35;
}
.g-header__navLink.is-current, .g-header__navLink:hover {
  opacity: 1;
}

.spMenu .g-header__navLink.is-muted {
  opacity: 0.45;
}
.spMenu .g-header__navLink.is-current, .spMenu .g-header__navLink:hover {
  opacity: 1;
}

.g-header__brandImg {
  height: 30px;
  width: auto;
}
.g-header__navList {
  gap: 20px;
}
.g-header__navCaption {
  font-size: 9px;
  color: #8a8a8a;
  line-height: 1.15;
  letter-spacing: 0.01em;
  text-align: center;
  white-space: nowrap;
}
.g-header__cta {
  white-space: nowrap;
}

/* foundation */
/* =========================
  MV
========================= */
.mv {
  position: relative;
  min-height: 520px;
  background: url("../images/mv-bg.webp") center/cover no-repeat;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: bottom center;
  overflow: hidden;
}
.mv .mv__title,
.mv .mv__lead {
  font-family: "Noto Sans JP", sans-serif;
}
.mv__inner {
  position: relative;
  min-height: 52rem;
  /* ✅ display:flex / align-items:center はHTMLの `d-flex align-items-center` へ移管 */
  padding-top: 7rem;
  padding-bottom: 8rem;
}
@media (max-width: 768px) {
  .mv__inner {
    /* ✅ SPの挙動は既存通り（d-flex は常に効いている想定） */
    flex-direction: column;
    align-items: stretch;
    padding: 28px 10px 24px;
    min-height: auto;
  }
}
@media (max-width: 768px) {
  .mv__content {
    width: 100%;
  }
}
.mv__title {
  margin-bottom: 6.4rem;
  font-size: 3.5rem;
  line-height: 1.35;
  letter-spacing: 0.01em;
  font-weight: 800;
}
@media (max-width: 768px) {
  .mv__title {
    font-size: 2.4rem;
  }
}
.mv__first {
  font-size: 3.5rem;
}
@media (max-width: 768px) {
  .mv__first {
    font-size: 2rem;
  }
}
.mv__secondBlock {
  /* ✅ display:flex はHTMLの `d-flex` に移管 */
}
@media (max-width: 768px) {
  .mv__secondBlock {
    flex-direction: column;
    gap: 8px;
  }
}
.mv__second {
  font-size: 3.5rem;
}
@media (max-width: 768px) {
  .mv__second {
    font-size: 2rem;
  }
}
.mv__titleEm {
  color: var(--accent-color);
  font-weight: 800;
  /* ✅ display:inline-flex はHTMLの `d-inline-flex align-items-center` に移管 */
  vertical-align: middle;
  margin-left: 6px;
}
.mv__lead {
  /* ✅ display:flex + flex-direction:column はHTMLの `d-flex flex-column` に移管 */
  margin: 0;
  margin-bottom: 3.2rem;
}
@media (max-width: 768px) {
  .mv__lead {
    font-size: 1.5rem;
  }
}
.mv__leadBrand {
  font-size: 2.4rem;
  font-weight: bold;
}
@media (max-width: 768px) {
  .mv__leadBrand {
    font-size: 2rem;
  }
}
.mv__leadUnder {
  /* ✅ display:flex + align-items:center はHTMLの `d-flex align-items-center` に移管 */
  font-size: 2.4rem;
}
@media (max-width: 768px) {
  .mv__leadUnder {
    font-size: 2rem;
  }
}
.mv__leadEm {
  display: inline-block;
  font-weight: bolder;
  color: var(--accent-color);
  font-size: 3.6rem;
}
@media (max-width: 768px) {
  .mv__leadEm {
    font-size: 2rem;
  }
}
.mv__desc {
  margin: 0;
  max-width: 640px;
  font-size: 1.8rem;
  color: #444;
  font-weight: bold;
  line-height: 1.9;
  font-family: "Poppins", sans-serif;
}
@media (max-width: 768px) {
  .mv__desc {
    margin-bottom: 15rem;
    font-size: 1.5rem;
    font-weight: normal;
  }
}
.mv__visual {
  width: 376px;
  position: absolute;
  bottom: 0;
  left: 50%;
}
@media (max-width: 768px) {
  .mv__visual {
    width: 60%;
    left: 30%;
    justify-content: center;
    padding-right: 0;
    margin-top: 10px;
  }
}
.mv__visualImg {
  width: min(760px, 100%);
  height: auto;
  transform: translateY(8px);
}
@media (max-width: 768px) {
  .mv__visualImg {
    transform: none;
  }
}
.mv__titleLogo {
  display: block;
  height: 48px;
  width: auto;
}
.mv .em-text {
  color: var(--accent-color);
}

.page-iside-plus .mv__lead {
  margin-bottom: 2rem;
}
.page-iside-plus .mv__leadBrand {
  font-size: 1.8rem;
  font-weight: bold;
}
.page-iside-plus .mv__secondBlock {
  flex-direction: column;
  /* ※ここは元コード通り。isideでは“横並びにしない”意図があるため維持 */
}


.page-lbiz-plus .mv__leadBrand {
  font-size: 1.8rem;
}
.page-lbiz-plus .mv__lead {
  margin-bottom: 0px;
}
:is(.page-lbiz-plus,.page-iside-plus) .mv__visual {
  bottom: 5rem;
}
@media (max-width: 768px) {
  :is(.page-lbiz-plus,.page-iside-plus) .mv__visual {
    bottom: 1rem;
  }
}

.page-campaign-plus .mv__title {
  margin-bottom: 3rem;
}
.page-campaign-plus .mv__desc {
  max-width: 526px;
}
.page-campaign-plus .mv__visual {
  bottom: -5rem;
}

@media (max-width: 768px) {
  .page-sales-plus .mv__title {
    margin-bottom: 2.4rem;
  }
}
.page-sales-plus .mv__first {
  color: #e84b4b;
}
@media (max-width: 768px) {
  .page-sales-plus .mv__first {
    display: block;
    font-size: 2.6rem;
    line-height: 1.45;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .mv__secondBlock {
    display: block !important;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .mv__second {
    display: block;
    font-size: 2.6rem;
    line-height: 1.5;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .mv__titleEm {
    display: inline-flex !important;
    margin-left: 0;
    margin-top: 0.8rem;
    margin-bottom: 0 !important;
    vertical-align: top;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .mv__titleLogo {
    height: 3.2rem;
    width: auto;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .mv__lead {
    margin-bottom: 2rem;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .mv__leadBrand {
    font-size: 1.4rem;
    line-height: 1.8;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .mv__visual {
    position: relative;
    left: auto;
    bottom: auto;
    width: 100%;
    margin-top: 1.6rem;
    text-align: center;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .mv__visualImg {
    width: min(34rem, 100%);
    transform: none;
  }
}

/* =========================
  MV画像 共通位置調整
  PC〜タブレットのみ / SPは変更なし
========================= */
@media screen and (min-width: 769px) {
  .g-main.page-campaign-plus .mv__visual,
  .g-main.page-lbiz-plus .mv__visual,
  .g-main.page-iside-plus .mv__visual {
    position: absolute !important;
    width: 37.6rem !important;
    top: 50% !important;
    left: calc(100% - 16rem) !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
  }
  .g-main.page-campaign-plus .mv__visualImg,
  .g-main.page-lbiz-plus .mv__visualImg,
  .g-main.page-iside-plus .mv__visualImg,
  .g-main.page-sales-plus .mv__visualImg {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    transform: none !important;
  }
}
@media screen and (min-width: 769px) {
  .g-main.page-sales-plus .mv__visualImg {
    transform: translateX(68rem) !important;
  }
}
/* foundation */
.markerMid {
  /* ✅ grid撤廃：骨組みはHTMLユーティリティ（d-flex / align-items-center / gap-2） */
  max-width: 960px;
  margin: auto;
  margin-top: 9rem;
  /* gap はユーティリティ側がない環境でもデザイン維持できるよう保険 */
  gap: 1rem;
  /* gridの「4rem 1fr 4rem」をflexで再現するための固定幅 */
}
.markerMid__side {
  width: 4rem;
}
@media (max-width: 768px) {
  .markerMid__side {
    width: 3rem;
  }
}
.markerMid__slash {
  width: 100%;
  height: auto;
  display: block;
}
.markerMid__text {
  /* text-center / fw-bold はユーティリティに寄せ済み。
     ただしフォントサイズはデザイン維持でSCSSに残す */
  font-size: 2.8rem;
  font-weight: 800;
  /* fw-boldより強いので維持 */
  color: #222;
  letter-spacing: 0.01em;
}
@media (max-width: 768px) {
  .markerMid__text {
    font-size: 1.5rem;
  }
}
.markerMid__em {
  background: linear-gradient(transparent 65%, rgba(255, 230, 120, 0.9) 65%);
  padding: 0 0.2rem;
}
.markerMid__imgWrap {
  /* d-inline-flex / align-items-center はHTMLユーティリティでもOKだが見た目維持のため残す */
  display: inline-flex;
  align-items: center;
  line-height: 1;
}
.markerMid__img {
  height: 1.05em;
  /* 文字サイズに追従 */
  width: auto;
  display: block;
  transform: translateY(-0.02em);
  /* 見た目の揃え微調整 */
}
.markerMid__plain {
  display: inline;
}

.isideAiFlow .markerMid {
  max-width: 1020px;
  margin-top: 0px;
}

.page-campaign-plus .markerMid {
  max-width: 850px !important;
}
.page-campaign-plus .cplusBehavior .markerMid {
  max-width: 1020px;
  margin-top: 0px;
}
.page-campaign-plus .cplusBehavior .markerMid__side {
  display: none !important;
}
.page-campaign-plus .cplusBehavior .markerMid__text {
  margin-bottom: 8.5rem !important;
}
.page-campaign-plus .cplus-em {
  color: var(--accent-color);
}

/* foundation */
.aiNoteBox {
  width: 100%;
  display: grid;
  place-items: center;
}
.aiNoteBox__inner {
  background: #F5F5F5;
  border-radius: 2.4rem;
  padding: 5.6rem 6rem;
}
@media (max-width: 768px) {
  .aiNoteBox__inner {
    padding: 3rem;
  }
}
.aiNoteBox__text {
  margin: 0;
  font-size: 1.8rem;
  line-height: 1.8;
  font-weight: bold;
  color: #333333;
}
@media (max-width: 768px) {
  .aiNoteBox__text {
    font-size: 1.5rem;
  }
}

/* foundation */
/* =========================
  UseCase Examples
========================= */
.useCaseExamples {
  padding: 6rem 0 8rem;
  background: #fff;
}
@media (max-width: 768px) {
  .useCaseExamples {
    padding-top: 0;
  }
}
.useCaseExamples__inner {
  width: min(1100px, 100%);
  margin-inline: auto;
  padding-inline: 2rem;
}
.useCaseExamples__item {
  /* 2つの活用例ブロック間の余白 */
}
.useCaseExamples__item + .useCaseExamples__item {
  margin-top: 6.8rem;
}
.useCaseExamples {
  /* 上部（バッジ + タイトル） */
}
.useCaseExamples__head {
  display: flex;
  align-items: flex-start;
  gap: 2.8rem;
  margin: auto;
  margin-bottom: 3.6rem;
  max-width: 800px;
}
.useCaseExamples__badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  min-width: 13.6rem;
  height: 5.6rem;
  border: 2px solid #2f6fe7;
  border-radius: 0.8rem;
  background: #fff;
  padding-inline: 1.6rem;
  color: #2f6fe7;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.useCaseExamples__badgeText {
  font-size: 1.8rem;
  line-height: 1;
}
.useCaseExamples__badgeNo {
  font-size: 2rem;
  line-height: 1;
}
.useCaseExamples__title {
  flex: 1 1 auto;
  font-size: 2.4rem;
  font-weight: 900;
  letter-spacing: 0.01em;
  line-height: 1.55;
  color: #222;
  padding-top: 0.2rem;
  /* バッジと視覚的に揃える */
}
.useCaseExamples {
  /* 図（中央寄せ） */
}
.useCaseExamples__figure {
  display: flex;
  justify-content: center;
}
.useCaseExamples__image {
  width: min(980px, 100%);
  height: auto;
  display: block;
}

/* =========================
  Responsive
========================= */
@media (max-width: 900px) {
  .useCaseExamples__head {
    gap: 2rem;
    margin-bottom: 2.8rem;
  }
  .useCaseExamples__title {
    font-size: 1.5rem;
    line-height: 1.6;
  }
  .useCaseExamples__badge {
    min-width: auto;
    height: 3.5rem;
  }
  .useCaseExamples__badgeText {
    font-size: 1.5rem;
  }
  .useCaseExamples__badgeNo {
    font-size: 1.5rem;
  }
  .useCaseExamples__item + .useCaseExamples__item {
    margin-top: 5.6rem;
  }
}
@media (max-width: 600px) {
  .useCaseExamples__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.4rem;
  }
  .useCaseExamples__title {
    padding-top: 0;
  }
  .useCaseExamples__image {
    width: 100%;
  }
}
/* project */
/* foundation */
.page-sales-plus {
  /* =========================
    +Plus 01
  ========================= */
}
.page-sales-plus .plus01 {
  margin-top: 4rem;
  overflow: hidden;
  background: #fff;
}
@media (max-width: 768px) {
  .page-sales-plus .plus01 {
    padding-bottom: 4rem;
  }
}
.page-sales-plus .plus01__inner {
  padding: 3.7rem 0 9.6rem;
}
@media (max-width: 768px) {
  .page-sales-plus .plus01__inner {
    padding: 3.7rem 1rem 9.6rem;
    padding-bottom: 4rem;
  }
}
.page-sales-plus .plus03 {
  margin-top: 4rem;
  overflow: hidden;
  background: #fff;
}
.page-sales-plus .plus03__inner {
  padding: 3.7rem 0 9.6rem;
}
@media (max-width: 768px) {
  .page-sales-plus .plus03__inner {
    padding: 3.7rem 1rem 9.6rem;
    padding-bottom: 4rem;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .plus03 {
    padding: 3.7rem 1rem 0rem;
    padding-bottom: 4rem;
  }
}
.page-sales-plus {
  /* =========================
    +Plus 02
  ========================= */
}
.page-sales-plus .plus02 {
  margin-top: 4rem;
  overflow: hidden;
  background: #fff;
}
@media (max-width: 768px) {
  .page-sales-plus .plus02 {
    padding: 3.7rem 1rem 9.6rem;
  }
}
.page-sales-plus .plus02__inner {
  position: relative;
  z-index: 1;
  padding: 3.7rem 0 9.6rem;
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__inner {
    padding: 3.7rem 1rem 9.6rem;
    padding-bottom: 4rem;
  }
}
.page-sales-plus .plus02 {
  /* --------------------------
  * Mid message
  * -------------------------- */
  /* --------------------------
  * Flow
  * -------------------------- */
}
.page-sales-plus .plus02__flow {
  margin-top: 8.6rem;
  /* ✅ grid撤去：骨組みはHTMLユーティリティ（d-flex / flex-column / flex-md-row / align-items-start） */
  /* デザイン維持のため gap と幅はSCSSで元数値を維持 */
  gap: 15rem;
  /* 66rem / 35rem を grid相当で再現 */
}
@media (max-width: 1200px) {
  .page-sales-plus .plus02__flow {
    gap: 5rem;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__flow {
    /* 1カラム化（HTMLは flex-column / flex-md-row で対応済み） */
    gap: 5rem;
  }
}
.page-sales-plus .plus02 {
  /* Left card */
}
.page-sales-plus .plus02__staffCard {
  background: #f3f3f3;
  border-radius: 3rem;
  padding: 4rem 4rem 4.6rem;
  /* ✅ gridの左列(66rem)相当 */
  flex: 0 0 66rem;
}
@media (max-width: 1200px) {
  .page-sales-plus .plus02__staffCard {
    /* grid-template-columns: 65.35% 34.65% の左側相当 */
    flex: 0 0 65.35%;
    max-width: 65.35%;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__staffCard {
    flex: 0 0 auto;
    max-width: none;
    width: 100%;
  }
}
.page-sales-plus .plus02__staffTop {
  /* ✅ grid撤去：HTMLユーティリティ（d-flex flex-column align-items-center） */
  gap: 1.2rem;
  margin-top: -10rem;
}
.page-sales-plus .plus02__staffHuman {
  width: 16rem;
  height: auto;
  display: block;
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__staffHuman {
    width: 10rem;
  }
}
.page-sales-plus .plus02__role {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 3.4rem;
  padding: 0 2rem;
  border-radius: 0.8rem;
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1;
  color: #fff;
}
.page-sales-plus .plus02__role--staff {
  background: #2f2f2f;
}
.page-sales-plus .plus02__role--manager {
  background: var(--accent-color);
}
.page-sales-plus .plus02__block {
  margin-top: 2.2rem;
  background: url("../images/service-bg.webp") center/cover no-repeat;
  border-radius: 10px;
  padding: 1rem;
  padding-top: 2.4rem;
  position: relative;
}
.page-sales-plus .plus02__block::before {
  content: "";
  position: absolute;
  background: url("../images/yazirushi.webp") center/cover no-repeat;
  right: -235px;
  top: 50%;
  height: 6rem;
  width: 235px;
  z-index: 10;
}
@media (max-width: 1200px) {
  .page-sales-plus .plus02__block::before {
    height: 2rem;
    right: -115px;
    width: 100px;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__block::before {
    display: none;
  }
}
.page-sales-plus .plus02__block--mt {
  margin-top: 3rem;
}
.page-sales-plus .plus02__blockTitle {
  margin: 0 0 2.4rem;
  text-align: center;
  font-size: 1.8rem;
  font-weight: bold;
  color: #222;
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__blockTitle {
    font-size: 1.5rem;
  }
}
.page-sales-plus .plus02__screen {
  position: relative;
}
.page-sales-plus .plus02__screenImg {
  display: block;
  width: 100%;
  height: auto;
}
.page-sales-plus .plus02__zoom {
  position: absolute;
  right: 1.4rem;
  bottom: 1.4rem;
  width: 5.2rem;
  height: 5.2rem;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
}
.page-sales-plus .plus02__zoomImg {
  width: 100%;
  height: auto;
  display: block;
}
.page-sales-plus .plus02 {
  /* Middle arrows */
}
.page-sales-plus .plus02__arrows {
  position: relative;
  min-height: 100%;
}
.page-sales-plus .plus02__arrow {
  position: absolute;
  left: 50%;
  width: 9.6rem;
  height: auto;
  transform: translateX(-50%);
  display: block;
}
.page-sales-plus .plus02__arrow--top {
  top: 36.2rem;
}
.page-sales-plus .plus02__arrow--bottom {
  top: 83rem;
}
.page-sales-plus .plus02 {
  /* Right card */
}
.page-sales-plus .plus02__managerCard {
  position: relative;
  background: #fdeaea;
  border-radius: 3rem;
  padding: 3.6rem 5rem 4.2rem;
  /* ✅ gridの右列(35rem)相当 */
  flex: 0 0 35rem;
}
@media (max-width: 1200px) {
  .page-sales-plus .plus02__managerCard {
    flex: 0 0 34.65%;
    max-width: 34.65%;
  }
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__managerCard {
    flex: 0 0 auto;
    max-width: none;
    width: 100%;
  }
}
.page-sales-plus .plus02__managerTop {
  /* ✅ grid撤去：HTMLユーティリティ（d-flex flex-column align-items-center） */
  gap: 1.2rem;
  margin-bottom: 2rem;
}
.page-sales-plus .plus02__managerHumanWrap {
  /* ✅ grid(place-items)撤去：HTMLユーティリティ（d-flex align-items-center justify-content-center） */
  position: relative;
  width: 16rem;
  height: 16.4rem;
  margin-top: -7rem;
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__managerHumanWrap {
    width: 10rem;
    height: auto;
  }
}
.page-sales-plus .plus02__managerHuman {
  width: 100%;
  height: auto;
  display: block;
}
.page-sales-plus .plus02__managerBoxes {
  /* ✅ grid撤去：HTMLユーティリティ（d-flex flex-column） */
  gap: 2.6rem;
}
.page-sales-plus .plus02__managerBox {
  background: #fff;
  border-radius: 1.8rem;
  height: 42.3rem;
  box-shadow: 0 1.2rem 2.6rem rgba(0, 0, 0, 0.06);
  /* ✅ grid(place-items)撤去：HTMLユーティリティ（d-flex align-items-center justify-content-center） */
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__managerBox {
    height: auto;
    padding: 2rem 1rem;
  }
}
.page-sales-plus .plus02__managerText {
  margin: 0;
  text-align: center;
  color: var(--accent-color);
  font-weight: 800;
  font-size: 1.7rem;
  line-height: 2.05;
  letter-spacing: 0.02em;
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__managerText {
    font-size: 1.5rem;
  }
}
.page-sales-plus .plus02 {
  /* --------------------------
  * Responsive（既存の流れを維持）
  * -------------------------- */
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__flow {
    /* flex-column になるのはHTML側（flex-column flex-md-row）で担保済み */
    /* SCSS側は gap だけ維持 */
    gap: 5rem;
  }
  .page-sales-plus .plus02__arrows {
    display: none;
  }
}

/* ========================================
   SalesPlus MV responsive only
   既存デザインは変えず、崩れ防止だけ対応
======================================== */
/* ---------- tablet ---------- */
@media (max-width: 1199.98px) {
  .page-sales-plus .mv__title {
    max-width: 58rem;
  }
  .page-sales-plus .mv__first {
    font-size: 4.2rem;
    line-height: 1.35;
  }
  .page-sales-plus .mv__second {
    font-size: 4.2rem;
    line-height: 1.4;
  }
  .page-sales-plus .mv__titleEm {
    left: 380px;
    top: 58px;
  }
  .page-sales-plus .mv__titleLogo {
    width: 160px;
  }
  .page-sales-plus .mv__lead {
    max-width: 58rem;
  }
  .page-sales-plus .mv__leadBrand {
    font-size: 1.8rem;
    line-height: 1.8;
  }
  .page-sales-plus .mv {
    background-size: 320px auto, cover;
    background-position: right bottom, center -10px;
  }
}
/* ---------- mobile ---------- */
@media (max-width: 767.98px) {
  .page-sales-plus .mv {
    background-size: 180px auto, cover;
    background-position: right bottom, center top;
  }
  .page-sales-plus .mv__title {
    max-width: 100%;
    margin-bottom: 2rem;
  }
  .page-sales-plus .mv__first {
    display: block;
    font-size: 2.8rem;
    line-height: 1.45;
  }
  .page-sales-plus .mv__secondBlock {
    display: block !important;
    position: static;
  }
  .page-sales-plus .mv__second {
    display: block;
    font-size: 2.8rem;
    line-height: 1.5;
  }
  .page-sales-plus .mv__titleEm {
    position: static;
    display: inline-flex !important;
    margin-top: 0.8rem !important;
    margin-left: 0 !important;
    margin-bottom: 0 !important;
    left: auto;
    top: auto;
  }
  .page-sales-plus .mv__titleLogo {
    width: 140px;
    max-width: 100%;
  }
  .page-sales-plus .mv__lead {
    margin-top: 1.6rem;
  }
  .page-sales-plus .mv__leadBrand {
    font-size: 1.4rem;
    line-height: 1.75;
  }
}
/* =========================================================
   SalesPlus page : MV / threePlus 調整
   Bootstrap 5.3.3前提・row不使用
========================================================= */
.page-sales-plus .mv {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}

.page-sales-plus .mv__content {
  position: relative;
  width: 100%;
  max-width: 68rem;
  z-index: 2;
}

.page-sales-plus .mv__title {
  margin-bottom: 2.4rem;
  font-weight: 800;
  line-height: 1.35;
}

.page-sales-plus .mv__first {
  display: inline-block;
  color: var(--accent-color);
  font-size: 4rem;
  font-weight: 800;
  line-height: 1.35;
}

.page-sales-plus .mv__secondBlock {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 0.8rem;
}

.page-sales-plus .mv__second {
  font-size: 4rem;
  font-weight: 700;
  line-height: 1.45;
  color: #2b2b2b;
}

.page-sales-plus .mv__titleEm {
  margin-left: 0;
  margin-bottom: 0.2rem !important;
}

.page-sales-plus .mv__titleLogo {
  display: block;
  width: auto;
  height: 4.2rem;
  margin-left: 0.8rem;
  transform: translateX(420px) translateY(-60px);
}

.page-sales-plus .mv__lead {
  margin-bottom: 0;
}

.page-sales-plus .mv__leadBrand {
  font-size: 1.8rem;
  line-height: 1.9;
  font-weight: 600;
  color: #2b2b2b;
}

.page-sales-plus .mv__desc {
  display: none;
}

.page-sales-plus .mv__visual {
  position: absolute;
  top: 50%;
  left: 65%;
  transform: translate(-50%, -50%);
  width: 37.6rem;
}

.page-sales-plus .mv__visualImg {
  width: 100%;
  height: auto;
  transform: none;
}

.page-sales-plus .threePlus {
  background: #f5eaea;
  padding: 7.2rem 0 8rem;
}

.page-sales-plus .threePlus__title {
  margin-bottom: 5.6rem;
  font-size: 4rem;
  line-height: 1.5;
  font-weight: 800;
}

.page-sales-plus .threePlus__titleAccent {
  display: block;
  color: #2b2b2b;
}

.page-sales-plus .threePlus__titleText {
  display: block;
  color: var(--accent-color);
}

@media (max-width: 991.98px) {
  .page-sales-plus .threePlus__title {
    font-size: 3.2rem;
  }
}
@media (max-width: 767.98px) {
  .page-sales-plus .mv {
    background-position: center top;
  }
  .page-sales-plus .mv__content {
    max-width: 100%;
  }
  .page-sales-plus .mv__title {
    margin-bottom: 1.6rem;
  }
  .page-sales-plus .mv__first {
    font-size: 2.8rem;
    line-height: 1.5;
  }
  .page-sales-plus .mv__secondBlock {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    margin-top: 0.6rem;
  }
  .page-sales-plus .mv__second {
    font-size: 2.8rem;
    line-height: 1.6;
  }
  .page-sales-plus .mv__titleLogo {
    height: 3.6rem;
  }
  .page-sales-plus .mv__leadBrand {
    font-size: 1.4rem;
    line-height: 1.9;
  }
  .page-sales-plus .threePlus {
    padding: 4.8rem 0 5.6rem;
  }
  .page-sales-plus .threePlus__inner {
    padding-left: 1.6rem;
    padding-right: 1.6rem;
  }
  .page-sales-plus .threePlus__title {
    margin-bottom: 3.2rem;
    font-size: 2.4rem;
    line-height: 1.6;
  }
  .page-sales-plus .threePlus__labelText {
    font-size: 1.4rem;
    line-height: 1.6;
  }
  .page-sales-plus .threePlus__cardDesc {
    font-size: 1.2rem;
    line-height: 1.8;
  }
}
/* ========================================
   SalesPlus MV responsive fix
   現在のPC調整を保ったまま tablet / sp だけ整える
======================================== */
/* ---------- tablet ---------- */
@media (max-width: 1199.98px) {
  .page-sales-plus .mv__content {
    max-width: 56rem;
  }
  .page-sales-plus .mv__first {
    font-size: 3.6rem;
    line-height: 1.35;
  }
  .page-sales-plus .mv__second {
    font-size: 3.6rem;
    line-height: 1.4;
  }
  .page-sales-plus .mv__leadBrand {
    font-size: 1.6rem;
    line-height: 1.85;
  }
  .page-sales-plus .mv__titleLogo {
    height: 3.8rem;
    margin-left: 0.6rem;
    transform: translateX(0) translateY(0);
  }
  .page-sales-plus .mv__secondBlock {
    align-items: center;
    gap: 0.6rem;
    margin-top: 0.6rem;
  }
  .page-sales-plus .threePlus {
    padding: 5.6rem 0 6.4rem;
  }
  .page-sales-plus .threePlus__title {
    margin-bottom: 4rem;
    font-size: 3rem;
    line-height: 1.5;
  }
}
/* ---------- mobile ---------- */
@media (max-width: 767.98px) {
  .page-sales-plus .mv {
    background-position: center top;
    background-size: cover;
  }
  .page-sales-plus .mv__content {
    max-width: 100%;
  }
  .page-sales-plus .mv__title {
    margin-bottom: 1.6rem;
  }
  .page-sales-plus .mv__first {
    display: block;
    font-size: 2.4rem;
    line-height: 1.45;
  }
  .page-sales-plus .mv__secondBlock {
    display: block;
    margin-top: 0.4rem;
  }
  .page-sales-plus .mv__second {
    display: block;
    font-size: 2.4rem;
    line-height: 1.5;
  }
  .page-sales-plus .mv__titleEm {
    display: block;
    margin-top: 0.8rem !important;
    margin-left: 0 !important;
    margin-bottom: 0 !important;
  }
  .page-sales-plus .mv__titleLogo {
    display: block;
    width: auto;
    height: 3rem;
    margin-left: 0;
    transform: none;
  }
  .page-sales-plus .mv__lead {
    margin-top: 1.4rem;
    margin-bottom: 0;
  }
  .page-sales-plus .mv__leadBrand {
    font-size: 1.4rem;
    line-height: 1.8;
    font-weight: 600;
  }
  .page-sales-plus .threePlus {
    padding: 4.8rem 0 5.2rem;
  }
  .page-sales-plus .threePlus__inner {
    padding-left: 1.6rem;
    padding-right: 1.6rem;
  }
  .page-sales-plus .threePlus__title {
    margin-bottom: 3.2rem;
    font-size: 2.3rem;
    line-height: 1.55;
  }
  .page-sales-plus .threePlus__labelText {
    font-size: 1.4rem;
    line-height: 1.6;
  }
  .page-sales-plus .threePlus__cardDesc {
    font-size: 1.2rem;
    line-height: 1.8;
  }
}
.page-sales-plus .plus01 {
  position: relative;
  overflow: hidden;
}
.page-sales-plus .plus01::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/sp-bg1.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  z-index: 0;
  pointer-events: none;
}
.page-sales-plus .plus01__inner {
  position: relative;
  z-index: 1;
}

.page-sales-plus .plus01 .threePlus__col {
  gap: 2rem;
}
.page-sales-plus {
  /* 上の吹き出しを、完成形の黒タイトルとして使う */
}
.page-sales-plus .plus01 .threePlus__balloonPlus {
  order: 1;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  height: auto;
  margin: 0 0 1.2rem;
  justify-content: center !important;
  text-align: left;
}
.page-sales-plus .plus01 .threePlus__balloonPlus .threePlus__balloonHuman {
  display: none;
}
.page-sales-plus .plus01 .threePlus__balloonPlus .threePlus__balloonText {
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.55;
  text-align: center;
  color: #2b2b2b;
}
.page-sales-plus {
  /* 画像 */
}
.page-sales-plus .plus01 .threePlus__cardMedia {
  order: 2;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  overflow: visible;
  min-height: 24rem;
}
.page-sales-plus .plus01 .threePlus__cardMediaImg {
  width: 100%;
  max-width: 31rem;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.page-sales-plus {
  /* 赤アイコン＋小見出し */
}
.page-sales-plus .plus01 .threePlus__label {
  order: 3;
  align-items: center;
  gap: 1.2rem;
  padding-top: 0;
  margin-top: 0.8rem;
}
.page-sales-plus .plus01 .threePlus__labelIcon {
  width: 5.6rem;
}
.page-sales-plus .plus01 .threePlus__labelText {
  font-size: 1.7rem;
  font-weight: 800;
  line-height: 1.45;
}
.page-sales-plus {
  /* 説明文＋ボタン */
}
.page-sales-plus .plus01 .threePlus__card {
  order: 4;
  gap: 1.8rem;
}
.page-sales-plus .plus01 .threePlus__cardDesc {
  height: auto;
  min-height: 8.5rem;
  font-size: 1.35rem;
  line-height: 1.85;
  font-weight: 500;
  margin-bottom: 0;
}
.page-sales-plus .plus01 .threePlus__btn {
  background: #fff;
  color: #333;
  border: 1px solid #333;
}

.page-sales-plus .plus02 {
  position: relative;
  overflow: hidden;
}
.page-sales-plus .plus02::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/sp-bg2.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  z-index: 0;
  pointer-events: none;
}
.page-sales-plus .plus02__inner {
  position: relative;
  z-index: 1;
}

.page-sales-plus .plus02__flow {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 6rem;
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__flow {
    flex-direction: column;
    gap: 4rem;
  }
}
.page-sales-plus {
  /* 左 */
}
.page-sales-plus .plus02__staffCard {
  flex: 0 0 48%;
  max-width: 48%;
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__staffCard {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.page-sales-plus {
  /* 右 */
}
.page-sales-plus .plus02__managerCard {
  flex: 0 0 48%;
  max-width: 48%;
}
@media (max-width: 768px) {
  .page-sales-plus .plus02__managerCard {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.page-sales-plus {
  /* 矢印を戻す */
}
.page-sales-plus .plus02__block::before {
  display: block !important;
  opacity: 1 !important;
}
.page-sales-plus {
  /* STEP間の矢印 */
}
.page-sales-plus .plus02__arrow {
  display: block !important;
  opacity: 1 !important;
}

.page-sales-plus .salesFlow--imageFlow {
  background: #fdeaea;
  padding: 6rem 0 7rem;
}
.page-sales-plus .salesFlow__leadColumns {
  gap: 4rem;
}
.page-sales-plus .salesFlow__leadCol {
  flex: 1;
}
.page-sales-plus .salesFlow__title,
.page-sales-plus .salesFlow__brandTitle {
  margin-bottom: 1.6rem;
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.5;
}
.page-sales-plus .salesFlow__brandTitle {
  gap: 0.8rem;
}
.page-sales-plus .salesFlow__brandLogo {
  width: 15rem;
  height: auto;
}
.page-sales-plus .salesFlow__leadText {
  font-size: 1.4rem;
  line-height: 1.9;
  font-weight: 500;
}
.page-sales-plus .salesFlow__arrow {
  width: 6rem;
  padding-top: 5rem;
  flex-shrink: 0;
}
.page-sales-plus .salesFlow__arrowImg {
  width: 5rem;
  height: auto;
  transform: rotate(-90deg);
}
.page-sales-plus .salesFlow__imageWrap {
  width: 100%;
  overflow-x: auto;
}
.page-sales-plus .salesFlow__image {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 767.98px) {
  .page-sales-plus .salesFlow--imageFlow {
    padding: 4rem 0 5rem;
  }
  .page-sales-plus .salesFlow__leadColumns {
    gap: 2.8rem;
    margin-bottom: 3rem;
  }
  .page-sales-plus .salesFlow__title,
  .page-sales-plus .salesFlow__brandTitle {
    font-size: 1.8rem;
  }
  .page-sales-plus .salesFlow__leadText {
    font-size: 1.3rem;
  }
  .page-sales-plus .salesFlow__image {
    min-width: 90rem;
  }
}

.salesFlow__leadColumns {
  gap: 4rem;
  margin-bottom: 1.2rem;
}

.salesFlow__arrow {
  width: 10rem;
  padding-top: 20rem;
  flex-shrink: 0;
}

.salesFlow__arrowImg {
  width: 30rem;
  height: auto;
  transform: rotate(-90deg);
}

@media (max-width: 767.98px) {
  .salesFlow__arrow {
    width: 100%;
    padding-top: 0;
    margin: 1.6rem 0;
    justify-content: center;
  }
  .salesFlow__arrowImg {
    width: 6rem;
    transform: rotate(0deg);
  }
}
.page-sales-plus .plusFeature {
  padding-top: 7rem;
}
.page-sales-plus .plusFeature__header {
  margin-bottom: 5rem;
}
.page-sales-plus .plusFeature__desc {
  display: none;
}
.page-sales-plus .plusFeature__leadMark {
  display: none !important;
}
.page-sales-plus .plusFeature__lead {
  color: var(--accent-color);
  text-align: center !important;
  font-size: 1.7rem;
}
.page-sales-plus .plusFeature__grid--textCards {
  justify-content: center;
  gap: 4rem 7rem;
}
.page-sales-plus .plusFeature__grid--textCards .plusFeature__block {
  width: 36rem;
  background: #fff;
  border-top: 1px solid var(--accent-color);
  border-radius: 0;
  box-shadow: 0 0.4rem 0.8rem rgba(0, 0, 0, 0.18);
  padding: 0;
}
.page-sales-plus .plusFeature__textCard {
  min-height: 16rem;
  padding: 3.2rem 3rem;
}
.page-sales-plus .plusFeature__textCardTitle {
  margin-bottom: 1.8rem;
  font-size: 1.7rem;
}
.page-sales-plus .plusFeature__textCardDesc {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.9;
}
.page-sales-plus .plusFeature__hr {
  margin: 7rem 0 5rem;
}
.page-sales-plus .plusFeature__subHead {
  justify-content: center;
}
.page-sales-plus .plusFeature__subMark,
.page-sales-plus .plusFeature__subDesc {
  display: none;
}
.page-sales-plus .plusFeature__subTitle {
  color: var(--accent-color);
  font-size: 1.7rem;
  text-align: center;
}

/* =========================
   SalesPlus 機能紹介：PCは2列 / SPだけ1列
========================= */
.page-sales-plus .plusFeature__leadRow {
  justify-content: center !important;
  text-align: center !important;
  width: 100%;
}

.page-sales-plus .plusFeature__lead {
  width: 100%;
  text-align: center !important;
}

/* PC・タブレット：2列 */
@media (min-width: 768px) {
  .page-sales-plus .plusFeature__grid--textCards {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 4rem 7rem !important;
  }
  .page-sales-plus .plusFeature__grid--textCards .plusFeature__block {
    width: 36rem !important;
    max-width: 36rem !important;
    flex: 0 0 36rem !important;
  }
}
/* スマホだけ1列 */
@media (max-width: 767.98px) {
  .page-sales-plus .plusFeature__grid--textCards {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 2.4rem !important;
  }
  .page-sales-plus .plusFeature__grid--textCards .plusFeature__block {
    width: 100% !important;
    max-width: 72rem !important;
    flex: 0 0 auto !important;
  }
}
.page-sales-plus .plusFeature__subHead {
  margin-bottom: 5rem;
}

.page-sales-plus {
  /* =========================
     タイトル位置統一
  ========================= */
}
.page-sales-plus .supportFlow__stepTitle {
  min-height: 2.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin-bottom: 1rem;
  font-size: 1.3rem;
  line-height: 1.4;
}
.page-sales-plus {
  /* =========================
     ロゴ位置統一
  ========================= */
}
.page-sales-plus .supportFlow__logos {
  min-height: 4.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-sales-plus .supportFlow__logo {
  -o-object-fit: contain;
     object-fit: contain;
}
.page-sales-plus {
  /* =========================
     各ロゴサイズ統一
  ========================= */
}
.page-sales-plus .supportFlow__logo.w59 {
  width: 5.9rem;
}
.page-sales-plus .supportFlow__logo.w85,
.page-sales-plus .supportFlow__logo.w85s {
  width: 8.5rem;
}
.page-sales-plus .supportFlow__logo.w100 {
  width: 10rem;
}
.page-sales-plus .supportFlow__logo.w150 {
  width: 15rem;
}
.page-sales-plus {
  /* =========================
     「現在開発中」位置
  ========================= */
}
.page-sales-plus .supportFlow__devNote {
  margin-top: 0.4rem;
  line-height: 1;
  font-size: 1rem;
}
.page-sales-plus {
  /* =========================
     右側ワイドエリア
  ========================= */
}
.page-sales-plus .supportFlow__step--wide {
  height: 12rem;
  align-items: center;
}
.page-sales-plus .supportFlow__step--wideItem {
  height: 100%;
  justify-content: center;
}

.page-sales-plus .supportFlow__step--wide {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-around !important;
  gap: 1.6rem;
}
.page-sales-plus .supportFlow__step--wideItem {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.page-sales-plus .supportFlow__step--wide > .supportFlow__connectorSm {
  flex: 0 0 auto;
}

.page-sales-plus .supportFlow__step--wide {
  background: #fff !important;
  height: 12rem;
  padding: 1.2rem 2rem;
}
.page-sales-plus .supportFlow__step--wideItem {
  height: 100%;
  min-width: 0;
  display: grid !important;
  grid-template-rows: 2.4rem 4.2rem 1.6rem;
  align-items: center;
  justify-items: center;
}
.page-sales-plus .supportFlow__step--wideItem .supportFlow__stepTitle {
  grid-row: 1;
  margin: 0;
  min-height: 2.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-sales-plus .supportFlow__step--wideItem .supportFlow__wideBottom {
  grid-row: 2/4;
  display: grid !important;
  grid-template-rows: 4.2rem 1.6rem;
  align-items: center;
  justify-items: center;
}
.page-sales-plus .supportFlow__step--wideItem .supportFlow__logo {
  max-height: 2.6rem;
  width: auto;
}
.page-sales-plus .supportFlow__step--wideItem .supportFlow__devNote {
  margin: 0;
  font-size: 1rem;
  line-height: 1;
}

.page-sales-plus .supportFlow__step--gray {
  background: #fff !important;
}

.page-sales-plus .supportFlow {
  padding-top: 10rem;
  background: #f8eaea;
}
.page-sales-plus .supportFlow__lead {
  color: #ef4b4b;
  font-size: 4rem;
  font-weight: 700;
  margin-bottom: 5rem;
}
.page-sales-plus .supportFlow__frame {
  border: 0.6rem solid #ef4b4b;
  border-radius: 4rem;
  background: #f8eaea;
  padding: 7rem 4rem 5rem;
}
.page-sales-plus .supportFlow__descEm {
  color: #ef4b4b;
  font-weight: 700;
}
.page-sales-plus .supportFlow__step--gray {
  background: #fff !important;
}

/* =========================
  SalesPlus Support Flow
  右側3項目を均等配置
========================= */
.page-sales-plus .supportFlow__step--wide {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 2.8rem minmax(0, 1fr) 2.8rem minmax(0, 1fr);
  align-items: center !important;
  justify-content: initial !important;
  -moz-column-gap: 0 !important;
       column-gap: 0 !important;
}
.page-sales-plus {
  /* 入金管理・問い合わせ管理・契約継続 */
}
.page-sales-plus .supportFlow__step--wide > .supportFlow__wideStep {
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  transform: none !important;
}
.page-sales-plus {
  /* タイトルを各領域の中央へ */
}
.page-sales-plus .supportFlow__step--wide > .supportFlow__wideStep > .supportFlow__stepTitle {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
}
.page-sales-plus {
  /* Freshdeskも中央固定 */
}
.page-sales-plus .supportFlow__step--wide > .supportFlow__wideStep > .supportFlow__wideBottom {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.page-sales-plus {
  /* 横長カード内の矢印 */
}
.page-sales-plus .supportFlow__step--wide > .supportFlow__connector,
.page-sales-plus .supportFlow__step--wide > .supportFlow__connectorSm {
  align-self: center !important;
  justify-self: center !important;
  margin: 0 !important;
  transform: none !important;
}

/* foundation */
.page-iside-plus .isideAiFlow {
  padding: 8rem 0;
}
.page-iside-plus .isideAiFlow__inner {
  display: grid;
  justify-items: center;
  max-width: 1160px;
  margin: auto;
}
.page-iside-plus .isideAiFlow__figure {
  width: 100%;
  max-width: 960px;
  margin: 8rem 0;
  display: grid;
  place-items: center;
}
.page-iside-plus .isideAiFlow__image {
  width: 100%;
  height: auto;
  display: block;
}


.page-iside-plus .mv__leadUnder {
  display: block !important;
}

.page-iside-plus .mv__leadEm {
  font-size: 1.8rem;
  line-height: 1.8;
  font-weight: 700;
  color: #4a86e8;
}


.page-iside-plus .mv__lead {
  margin-bottom: 2.4rem;
}

.page-iside-plus .threePlus__cardDesc {
  font-size: 1.3rem;
  line-height: 1.7;
}

.page-iside-plus .em-text {
  color: #4a86e8;
}

.group1-small {
  width: 7rem !important;
  height: auto !important;
}

/* foundation */
.page-lbiz-plus {
  /* =========================
    +Plus 01
  ========================= */
}
:is(.page-lbiz-plus,.page-iside-plus) .plus01 {
  margin-top: 4rem;
  overflow: hidden;
  background: #fff;
}
@media (max-width: 768px) {
  :is(.page-lbiz-plus,.page-iside-plus) .plus01 {
    padding-bottom: 4rem;
  }
}
:is(.page-lbiz-plus,.page-iside-plus) .plus01__inner {
  padding: 3.7rem 0 9.6rem;
}
@media (max-width: 768px) {
  :is(.page-lbiz-plus,.page-iside-plus) .plus01__inner {
    padding: 3.7rem 1rem 9.6rem;
    padding-bottom: 4rem;
  }
}
.page-lbiz-plus .plus01__figure {
  max-width: 950px;
  margin: auto;
}
:is(.page-lbiz-plus,.page-iside-plus) .plus03 {
  padding: 3.7rem 0 0rem;
  margin-top: 4rem;
  overflow: hidden;
  background: #fff;
}
@media (max-width: 768px) {
  :is(.page-lbiz-plus,.page-iside-plus) .plus03 {
    padding: 3.7rem 1rem 0rem;
    padding-bottom: 4rem;
  }
}
.page-lbiz-plus .plus03__figure {
  max-width: 950px;
  margin: auto;
  margin-bottom: 8rem;
}
.page-lbiz-plus {
  /* =========================
    +Plus 02
  ========================= */
}
:is(.page-lbiz-plus,.page-iside-plus) .plus02 {
  margin-top: 4rem;
  padding: 3.7rem 0 9.6rem;
  overflow: hidden;
  background: #fff;
}
@media (max-width: 768px) {
  :is(.page-lbiz-plus,.page-iside-plus) .plus02 {
    padding: 3.7rem 1rem 9.6rem;
  }
}
:is(.page-lbiz-plus,.page-iside-plus) .plus02__inner {
  position: relative;
  z-index: 1;
}
.page-lbiz-plus .plus02__figure {
  max-width: 950px;
  margin: auto;
}
:is(.page-lbiz-plus,.page-iside-plus) .plus02 {
  /* --------------------------
  * Mid message
  * -------------------------- */
  /* --------------------------
  * Flow
  * -------------------------- */
}
.page-lbiz-plus .plus02__flow {
  margin-top: 8.6rem;
  /* ✅ grid撤去：骨組みはHTMLユーティリティ（d-flex / flex-column / flex-md-row / align-items-start） */
  /* デザイン維持のため gap と幅はSCSSで元数値を維持 */
  gap: 15rem;
  /* 66rem / 35rem を grid相当で再現 */
}
@media (max-width: 1200px) {
  .page-lbiz-plus .plus02__flow {
    gap: 5rem;
  }
}
@media (max-width: 768px) {
  .page-lbiz-plus .plus02__flow {
    /* 1カラム化（HTMLは flex-column / flex-md-row で対応済み） */
    gap: 5rem;
  }
}
:is(.page-lbiz-plus,.page-iside-plus) .plus02 {
  /* Left card */
}
.page-lbiz-plus .plus02__staffCard {
  background: #f3f3f3;
  border-radius: 3rem;
  padding: 4rem 4rem 4.6rem;
  /* ✅ gridの左列(66rem)相当 */
  flex: 0 0 66rem;
}
@media (max-width: 1200px) {
  .page-lbiz-plus .plus02__staffCard {
    /* grid-template-columns: 65.35% 34.65% の左側相当 */
    flex: 0 0 65.35%;
    max-width: 65.35%;
  }
}
@media (max-width: 768px) {
  .page-lbiz-plus .plus02__staffCard {
    flex: 0 0 auto;
    max-width: none;
    width: 100%;
  }
}
.page-lbiz-plus .plus02__staffTop {
  /* ✅ grid撤去：HTMLユーティリティ（d-flex flex-column align-items-center） */
  gap: 1.2rem;
  margin-top: -10rem;
}
.page-lbiz-plus .plus02__staffHuman {
  width: 16rem;
  height: auto;
  display: block;
}
@media (max-width: 768px) {
  .page-lbiz-plus .plus02__staffHuman {
    width: 10rem;
  }
}
.page-lbiz-plus .plus02__role {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 3.4rem;
  padding: 0 2rem;
  border-radius: 0.8rem;
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1;
  color: #fff;
}
.page-lbiz-plus .plus02__role--staff {
  background: #2f2f2f;
}
.page-lbiz-plus .plus02__role--manager {
  background: var(--accent-color);
}
.page-lbiz-plus .plus02__block {
  margin-top: 2.2rem;
  background: url("../images/service-bg.webp") center/cover no-repeat;
  border-radius: 10px;
  padding: 1rem;
  padding-top: 2.4rem;
  position: relative;
}
.page-lbiz-plus .plus02__block::before {
  content: "";
  position: absolute;
  background: url("../images/yazirushi.webp") center/cover no-repeat;
  right: -235px;
  top: 50%;
  height: 6rem;
  width: 235px;
  z-index: 10;
}
@media (max-width: 1200px) {
  .page-lbiz-plus .plus02__block::before {
    height: 2rem;
    right: -115px;
    width: 100px;
  }
}
@media (max-width: 768px) {
  .page-lbiz-plus .plus02__block::before {
    display: none;
  }
}
.page-lbiz-plus .plus02__block--mt {
  margin-top: 3rem;
}
.page-lbiz-plus .plus02__blockTitle {
  margin: 0 0 2.4rem;
  text-align: center;
  font-size: 1.8rem;
  font-weight: bold;
  color: #222;
}
@media (max-width: 768px) {
  .page-lbiz-plus .plus02__blockTitle {
    font-size: 1.5rem;
  }
}
.page-lbiz-plus .plus02__screen {
  position: relative;
}
.page-lbiz-plus .plus02__screenImg {
  display: block;
  width: 100%;
  height: auto;
}
.page-lbiz-plus .plus02__zoom {
  position: absolute;
  right: 1.4rem;
  bottom: 1.4rem;
  width: 5.2rem;
  height: 5.2rem;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
}
.page-lbiz-plus .plus02__zoomImg {
  width: 100%;
  height: auto;
  display: block;
}
:is(.page-lbiz-plus,.page-iside-plus) .plus02 {
  /* Middle arrows */
}
.page-lbiz-plus .plus02__arrows {
  position: relative;
  min-height: 100%;
}
.page-lbiz-plus .plus02__arrow {
  position: absolute;
  left: 50%;
  width: 9.6rem;
  height: auto;
  transform: translateX(-50%);
  display: block;
}
.page-lbiz-plus .plus02__arrow--top {
  top: 36.2rem;
}
.page-lbiz-plus .plus02__arrow--bottom {
  top: 83rem;
}
:is(.page-lbiz-plus,.page-iside-plus) .plus02 {
  /* Right card */
}
.page-lbiz-plus .plus02__managerCard {
  position: relative;
  background: #fdeaea;
  border-radius: 3rem;
  padding: 3.6rem 5rem 4.2rem;
  /* ✅ gridの右列(35rem)相当 */
  flex: 0 0 35rem;
}
@media (max-width: 1200px) {
  .page-lbiz-plus .plus02__managerCard {
    flex: 0 0 34.65%;
    max-width: 34.65%;
  }
}
@media (max-width: 768px) {
  .page-lbiz-plus .plus02__managerCard {
    flex: 0 0 auto;
    max-width: none;
    width: 100%;
  }
}
.page-lbiz-plus .plus02__managerTop {
  /* ✅ grid撤去：HTMLユーティリティ（d-flex flex-column align-items-center） */
  gap: 1.2rem;
  margin-bottom: 2rem;
}
.page-lbiz-plus .plus02__managerHumanWrap {
  /* ✅ grid(place-items)撤去：HTMLユーティリティ（d-flex align-items-center justify-content-center） */
  position: relative;
  width: 16rem;
  height: 16.4rem;
  margin-top: -7rem;
}
@media (max-width: 768px) {
  .page-lbiz-plus .plus02__managerHumanWrap {
    width: 10rem;
    height: auto;
  }
}
.page-lbiz-plus .plus02__managerHuman {
  width: 100%;
  height: auto;
  display: block;
}
.page-lbiz-plus .plus02__managerBoxes {
  /* ✅ grid撤去：HTMLユーティリティ（d-flex flex-column） */
  gap: 2.6rem;
}
.page-lbiz-plus .plus02__managerBox {
  background: #fff;
  border-radius: 1.8rem;
  height: 42.3rem;
  box-shadow: 0 1.2rem 2.6rem rgba(0, 0, 0, 0.06);
  /* ✅ grid(place-items)撤去：HTMLユーティリティ（d-flex align-items-center justify-content-center） */
}
@media (max-width: 768px) {
  .page-lbiz-plus .plus02__managerBox {
    height: auto;
    padding: 2rem 1rem;
  }
}
.page-lbiz-plus .plus02__managerText {
  margin: 0;
  text-align: center;
  color: var(--accent-color);
  font-weight: 800;
  font-size: 1.7rem;
  line-height: 2.05;
  letter-spacing: 0.02em;
}
@media (max-width: 768px) {
  .page-lbiz-plus .plus02__managerText {
    font-size: 1.5rem;
  }
}
:is(.page-lbiz-plus,.page-iside-plus) .plus02 {
  /* --------------------------
  * Responsive（既存の流れを維持）
  * -------------------------- */
}
@media (max-width: 768px) {
  .page-lbiz-plus .plus02__flow {
    /* flex-column になるのはHTML側（flex-column flex-md-row）で担保済み */
    /* SCSS側は gap だけ維持 */
    gap: 5rem;
  }
  .page-lbiz-plus .plus02__arrows {
    display: none;
  }
}

.page-lbiz-plus .mv__leadEm {
  color: #222;
  font-size: 2.5rem;
}

.page-lbiz-plus .mv__leadEm .lbiz-green {
  color: #17e54c;
  font-size: 2.5rem;
}

:is(.page-lbiz-plus,.page-iside-plus) .threePlus__title {
  font-size: 3.6rem;
}

.page-lbiz-plus .threePlus__titleText,
.page-lbiz-plus .threePlus__titleText2,
.page-lbiz-plus .threePlus__titleAccent {
  font-size: inherit;
}

.page-lbiz-plus .threePlus__cardDesc {
  font-size: 1.25rem;
  line-height: 1.75;
}

.page-lbiz-plus .threePlus__btn {
  font-size: 1.4rem;
}

.page-lbiz-plus .threePlus__titleText2 {
  font-size: 2.2rem;
  line-height: 1.7;
}

.page-lbiz-plus .threePlus__titlePillImg {
  height: 2.2rem;
  width: auto;
  position: relative;
  top: 0.6rem;
  margin-right: 0.6rem;
}

.page-lbiz-plus .threePlus__cardDesc {
  height: auto;
  margin-bottom: 1.2rem;
}

.page-lbiz-plus .ctaVer2__circleIcon img {
  width: 15rem;
  height: 15rem;
  -o-object-fit: contain;
     object-fit: contain;
}

/* foundation */
.page-campaign-plus {
  /* =========================
    MV
  ========================= */
}
.page-campaign-plus .mv__visualImg {
  transform: translateX(40px) translateY(-20px);
}
.page-campaign-plus .plusIntro__titleText {
  display: block;
  white-space: normal;
}
.page-campaign-plus {
  /* =========================
    3つの +Plus セクション
  ========================= */
}
.page-campaign-plus .threePlus__cardDesc {
  height: auto;
  min-height: 14rem;
  margin-bottom: 2.4rem;
}
.page-campaign-plus {
  /* =========================
    cPlus Behavior
  ========================= */
}
.page-campaign-plus .cplusBehavior {
  background: #fff;
  padding: 7.2rem 0 8rem;
}
@media (max-width: 768px) {
  .page-campaign-plus .cplusBehavior {
    padding: 5rem 0 6rem;
  }
}
.page-campaign-plus .cplusBehavior__inner {
  max-width: 1200px;
}
.page-campaign-plus .cplusBehavior__descBox {
  background: #f3f3f3;
  border-radius: 3.2rem;
  padding: 4.6rem 6.2rem;
  margin: 0 auto 7.6rem;
}
@media (max-width: 768px) {
  .page-campaign-plus .cplusBehavior__descBox {
    border-radius: 2.4rem;
    padding: 3rem 2.4rem;
    margin-bottom: 5rem;
  }
}
.page-campaign-plus .cplusBehavior__desc {
  margin: 0;
  font-size: 1.6rem;
  line-height: 2;
  color: #3a3a3a;
  letter-spacing: 0.02em;
}
@media (max-width: 768px) {
  .page-campaign-plus .cplusBehavior__desc {
    font-size: 1.2rem;
    line-height: 1.9;
  }
}
.page-campaign-plus .cplusBehavior__figure {
  max-width: 700px;
  margin: auto;
}
.page-campaign-plus {
  /* =========================
    +Plus 共通
  ========================= */
}
.page-campaign-plus .plus01,
.page-campaign-plus .plus02,
.page-campaign-plus .plus03 {
  margin-top: 4rem;
  overflow: hidden;
  background: #fff;
}
.page-campaign-plus .plus01__banner,
.page-campaign-plus .plus02__banner,
.page-campaign-plus .plus03__banner {
  margin-top: 2.4rem;
  margin-bottom: 8rem;
}
@media (max-width: 768px) {
  .page-campaign-plus .plus01__banner,
  .page-campaign-plus .plus02__banner,
  .page-campaign-plus .plus03__banner {
    margin-bottom: 5rem;
  }
}
.page-campaign-plus .plus01__banner .cplus-triangle,
.page-campaign-plus .plus02__banner .cplus-triangle,
.page-campaign-plus .plus03__banner .cplus-triangle {
  width: 12rem;
  margin-bottom: 1.6rem;
}
@media (max-width: 768px) {
  .page-campaign-plus .plus01__banner .cplus-triangle,
  .page-campaign-plus .plus02__banner .cplus-triangle,
  .page-campaign-plus .plus03__banner .cplus-triangle {
    width: 9.6rem;
  }
}
.page-campaign-plus .plus01__bannerText1,
.page-campaign-plus .plus02__bannerText1,
.page-campaign-plus .plus03__bannerText1 {
  font-size: 2.4rem;
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .page-campaign-plus .plus01__bannerText1,
  .page-campaign-plus .plus02__bannerText1,
  .page-campaign-plus .plus03__bannerText1 {
    font-size: 1.5rem;
  }
}
.page-campaign-plus .plus01__bannerText2,
.page-campaign-plus .plus02__bannerText2,
.page-campaign-plus .plus03__bannerText2 {
  font-size: 3.2rem;
}
@media (max-width: 768px) {
  .page-campaign-plus .plus01__bannerText2,
  .page-campaign-plus .plus02__bannerText2,
  .page-campaign-plus .plus03__bannerText2 {
    font-size: 1.5rem;
  }
}
.page-campaign-plus .plus01__bannerText2 span,
.page-campaign-plus .plus02__bannerText2 span,
.page-campaign-plus .plus03__bannerText2 span {
  color: var(--accent-color);
}
.page-campaign-plus .plus01__inner {
  padding: 3.7rem 0 9.6rem;
}
@media (max-width: 768px) {
  .page-campaign-plus .plus01__inner {
    padding: 3.7rem 1rem 4rem;
  }
}
.page-campaign-plus .plus01__figure {
  max-width: 98rem;
  margin: auto;
}
.page-campaign-plus .plus01__image {
  display: block;
  width: 100%;
  height: auto;
}
.page-campaign-plus .plus02 {
  padding: 3.7rem 0 9.6rem;
}
@media (max-width: 768px) {
  .page-campaign-plus .plus02 {
    padding: 3.7rem 1rem 9.6rem;
  }
}
.page-campaign-plus .plus02__inner {
  position: relative;
  z-index: 1;
}
.page-campaign-plus .plus02__figure {
  max-width: 90rem !important;
  width: 90rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
@media (max-width: 768px) {
  .page-campaign-plus .plus02__figure {
    max-width: 100% !important;
    width: 100% !important;
  }
}
.page-campaign-plus .plus02__image {
  display: block;
  width: 100% !important;
  height: auto !important;
}
.page-campaign-plus .plus03 {
  padding: 3.7rem 0 8rem;
}
@media (max-width: 768px) {
  .page-campaign-plus .plus03 {
    padding: 3.7rem 1rem 4rem;
  }
}
.page-campaign-plus .plus03__inner {
  position: relative;
  z-index: 1;
}
.page-campaign-plus .plus03__figure {
  max-width: 90rem !important;
  width: 90rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 8rem;
}
@media (max-width: 768px) {
  .page-campaign-plus .plus03__figure {
    max-width: 100% !important;
    width: 100% !important;
  }
}
.page-campaign-plus .plus03__image {
  display: block;
  width: 100% !important;
  height: auto !important;
}
.page-campaign-plus {
  /* =========================
    AI Note
  ========================= */
}
.page-campaign-plus .aiNoteBox {
  margin-top: 8rem;
  margin-bottom: 8rem;
}
.page-campaign-plus .aiNoteBox h3 {
  font-size: 2.4rem;
}
.page-campaign-plus {
  /* =========================
    追加中央画像
  ========================= */
}
.page-campaign-plus .campaign-center-image {
  display: flex;
  justify-content: center;
  margin: 8rem auto;
}
.page-campaign-plus .campaign-center-image img {
  display: block;
  width: 40%;
  max-width: 1000px;
  height: auto;
}
.page-campaign-plus {
  /* =========================
    CTA
  ========================= */
}
.page-campaign-plus .cta__price {
  color: #222;
}
.page-campaign-plus {
  /* =========================
    Support Flow
  ========================= */
}
.page-campaign-plus .supportFlow {
  padding: 7rem 0 8rem;
}
.page-campaign-plus .supportFlow__frame {
  max-width: 1180px;
  margin: 0 auto;
  padding: 6.5rem 5rem 4.5rem;
}
.page-campaign-plus .supportFlow__steps {
  align-items: center !important;
}
.page-campaign-plus {
  /* 通常カード */
}
.page-campaign-plus .supportFlow__step,
.page-campaign-plus .supportFlow__step--white,
.page-campaign-plus .supportFlow__step--gray {
  height: 8.8rem !important;
  padding: 1.2rem 1rem !important;
  background: #fff !important;
  border: 1px solid #e9c14b !important;
  border-radius: 1.4rem;
  /* 中央配置ではなく、タイトルを上から揃える */
  justify-content: flex-start !important;
}
.page-campaign-plus {
  /* 左端のアクセントカード */
}
.page-campaign-plus .supportFlow__step--accent {
  width: 34rem !important;
  flex: 0 0 34rem !important;
  height: 10rem !important;
  background: linear-gradient(135deg, #f5c126 0%, #f5c126 68%, #f8d76c 68%, #f8d76c 100%) !important;
  border: none !important;
}
.page-campaign-plus {
  /* 全カードのタイトル位置を統一 */
}
.page-campaign-plus .supportFlow__stepTitle {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 2.6rem !important;
  min-height: 2.6rem !important;
  margin: 0 0 0.8rem !important;
  padding: 0 !important;
  text-align: center !important;
  font-size: 1.2rem;
  line-height: 1.3 !important;
}
.page-campaign-plus {
  /* 通常カードのロゴ領域 */
}
.page-campaign-plus .supportFlow__logos {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 3rem !important;
  min-height: 3rem !important;
  margin: 0 !important;
}
.page-campaign-plus {
  /* 右側の横長カード */
}
.page-campaign-plus .supportFlow__step--wide {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 2.8rem minmax(0, 1fr) 2.8rem minmax(0, 1fr);
  align-items: stretch !important;
  justify-content: initial !important;
  -moz-column-gap: 0 !important;
       column-gap: 0 !important;
  width: 36rem !important;
  flex: 0 0 36rem !important;
  height: 8.8rem !important;
  padding: 1.2rem 1rem !important;
  background: #fff !important;
}
.page-campaign-plus {
  /* 入金管理・問い合わせ管理・契約継続 */
}
.page-campaign-plus .supportFlow__step--wideItem,
.page-campaign-plus .supportFlow__wideStep {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  align-self: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  transform: none !important;
}
.page-campaign-plus {
  /* 右側3項目のタイトルも通常カードと同じ高さ */
}
.page-campaign-plus .supportFlow__step--wideItem > .supportFlow__stepTitle,
.page-campaign-plus .supportFlow__wideStep > .supportFlow__stepTitle {
  flex: 0 0 2.6rem !important;
  width: 100% !important;
  height: 2.6rem !important;
  min-height: 2.6rem !important;
  margin: 0 0 0.8rem !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1.3 !important;
}
.page-campaign-plus {
  /* 右側のFreshdeskロゴ領域 */
}
.page-campaign-plus .supportFlow__wideBottom {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 3rem !important;
  min-height: 3rem !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}
.page-campaign-plus {
  /* 左右のFreshdeskを同じサイズにする */
}
.page-campaign-plus .supportFlow__logo--freshdesk {
  display: block !important;
  width: 9.6rem !important;
  max-width: 9.6rem !important;
  height: 2.6rem !important;
  max-height: 2.6rem !important;
  margin: 0 auto !important;
  -o-object-fit: contain !important;
     object-fit: contain !important;
}
.page-campaign-plus {
  /* 通常カード間の矢印 */
}
.page-campaign-plus .supportFlow__steps > .supportFlow__connector {
  align-self: center !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.page-campaign-plus {
  /* 横長カード内の矢印 */
}
.page-campaign-plus .supportFlow__step--wide > .supportFlow__connector,
.page-campaign-plus .supportFlow__step--wide > .supportFlow__connectorSm {
  align-self: center !important;
  justify-self: center !important;
  margin: 0 !important;
  transform: none !important;
}
.page-campaign-plus .supportFlow__devNote {
  margin: 0 !important;
  font-size: 1rem;
  line-height: 1;
  color: #999;
}

/* foundation */
.top-page {
  /* =========================
  MV
  ========================= */
}
.top-page .mv {
  /* MV全体の背景画像（右画像を背景にする） */
  background-image: url("../images/top/top-mv-img.webp");
  background-size: cover;
  background-position: calc(100% + 270px) center;
  background-repeat: no-repeat;
  position: relative;
  overflow: hidden;
  min-height: 420px;
  display: flex;
  flex-direction: column;
}
@media (max-width: 768px) {
  .top-page .mv {
    min-height: 500px;
  }
  .top-page .mv::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    /* 白膜（強さはここで調整） */
    background: rgba(255, 255, 255, 0.62);
  }
  .top-page .mv {
    /* 中身は必ず前面 */
  }
  .top-page .mv > * {
    position: relative;
    z-index: 1;
  }
}
.top-page .mv__inner {
  margin-inline: auto;
  width: 100%;
  position: relative;
  /* ::beforeより上に */
  z-index: 1;
  flex: 1 1 auto;
  /* 上は本文、下に帯を置くので高さ配分 */
  display: flex;
}
.top-page .mv__content {
  /* 左カラム */
  flex: 0 0 50%;
  max-width: 50%;
}
@media (max-width: 768px) {
  .top-page .mv__content {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.top-page {
  /* 右画像の枠はもう不要 */
}
.top-page .mv__media {
  display: none;
}
.top-page .mv__logo {
  height: 50px;
  width: auto;
}
@media (max-width: 768px) {
  .top-page .mv__logo {
    height: 30px;
  }
}
.top-page .mv__headline {
  color: var(--mv-text);
  letter-spacing: 0.02em;
  line-height: 1.5;
  margin-top: 14px;
  margin-bottom: 16px;
  font-weight: 800;
  font-size: 4rem;
}
@media (max-width: 768px) {
  .top-page .mv__headline {
    font-size: 2.4rem;
  }
}
.top-page .mv__lead {
  color: var(--mv-muted);
  margin-bottom: 3rem;
  font-size: 2rem;
  line-height: 1.85;
}
@media (max-width: 768px) {
  .top-page .mv__lead {
    font-size: 1.5rem;
  }
}
.top-page .mv__note {
  color: var(--mv-muted);
  font-size: 1.6rem;
  line-height: 1.75;
  margin: 0;
}
@media (max-width: 768px) {
  .top-page .mv__note {
    font-size: 1.2rem;
  }
}
.top-page {
  /* ===== mv-strip（mv内） ===== */
}
.top-page .mv-strip {
  height: 36px;
  overflow: hidden;
  --tile-w: 260px;
  /* 1ループの秒数（SPは22秒） */
  --duration: 26;
  background: transparent;
}
.top-page .mv-strip__viewport {
  height: 100%;
  overflow: hidden;
}
.top-page .mv-strip__track {
  height: 100%;
  display: flex;
  width: -moz-max-content;
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  animation: mvStripFlow calc(var(--duration) * 1s) linear infinite;
}
@keyframes mvStripFlow {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-33.333333%, 0, 0);
  }
}
.top-page .mv-strip__set {
  height: 100%;
  display: flex;
  align-items: stretch;
  flex-wrap: nowrap;
}
.top-page .mv-strip__item {
  height: 100%;
  flex: 0 0 auto;
  width: var(--tile-w);
}
.top-page .mv-strip__item img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 991.98px) {
  .top-page .mv-strip {
    height: 36px;
    --tile-w: 200px;
    --duration: 22;
  }
}
@media (prefers-reduced-motion: reduce) {
  .top-page .mv-strip__track {
    animation: none !important;
    transform: none !important;
  }
}
/* PlusNow product features */
.pnFeatures {
  --pn-navy: #0646af;
  --pn-blue: #0874d8;
  --pn-sky: #eaf4ff;
  --pn-pale: #f5f9ff;
  --pn-ink: #16345f;
  overflow: hidden;
  color: var(--pn-ink);
  background: #fff;
}
.pnFeatures__intro {
  padding-top: clamp(7.2rem, 9vw, 12rem);
  padding-bottom: clamp(5.6rem, 7vw, 9rem);
  text-align: center;
}
.pnFeatures__eyebrow,
.pnFeature__label,
.pnFeatures__summaryLabel {
  margin: 0 0 1.4rem;
  color: var(--pn-blue);
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: .18em;
}
.pnFeatures__title {
  margin: 0;
  color: var(--pn-navy);
  font-size: clamp(3.2rem, 5vw, 6rem);
  font-weight: 900;
  letter-spacing: .02em;
  line-height: 1.25;
}
.pnFeatures__title::after {
  display: block;
  width: 7.2rem;
  height: .4rem;
  margin: 2.4rem auto 3rem;
  border-radius: 999px;
  background: linear-gradient(90deg, #65bfff, var(--pn-navy));
  content: "";
}
.pnFeatures__lead {
  max-width: 88rem;
  margin: 0 auto;
  color: #415d7f;
  font-size: clamp(1.5rem, 1.7vw, 1.9rem);
  font-weight: 600;
  line-height: 2;
}
.pnFeatures__concept {
  max-width: 92rem;
  margin: 4.5rem auto 0;
  padding: 3.2rem clamp(2.4rem, 5vw, 5.6rem);
  border: 1px solid #cce4ff;
  border-radius: 2rem;
  background: linear-gradient(135deg, #f8fbff, #eaf4ff);
}
.pnFeatures__conceptTitle {
  margin: 0 0 1.2rem;
  color: var(--pn-navy);
  font-size: clamp(2rem, 2.5vw, 2.8rem);
  font-weight: 900;
}
.pnFeatures__conceptText {
  margin: 0;
  color: #415d7f;
  font-size: 1.6rem;
  line-height: 2;
}
.pnFeature {
  position: relative;
  padding: clamp(6.4rem, 8vw, 11rem) 0;
}
.pnFeature:nth-child(odd) {
  background: linear-gradient(135deg, #f8fbff 0%, #eaf4ff 100%);
}
.pnFeature:nth-child(even) {
  background: #fff;
}
.pnFeature__inner {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(42rem, 1.12fr);
  gap: clamp(4rem, 7vw, 9rem);
  align-items: center;
}
.pnFeature:nth-child(even) .pnFeature__content {
  order: 2;
}
.pnFeature:nth-child(even) .pnFeature__visual {
  order: 1;
}
.pnFeature__content {
  position: relative;
  z-index: 1;
}
.pnFeature__number {
  margin: 0 0 -1.8rem;
  color: rgba(6, 70, 175, .1);
  font-size: clamp(8rem, 10vw, 13rem);
  font-weight: 900;
  letter-spacing: -.06em;
  line-height: .8;
}
.pnFeature__label {
  position: relative;
  margin-bottom: 1.2rem;
}
.pnFeature__title {
  margin: 0 0 2.6rem;
  color: var(--pn-navy);
  font-size: clamp(2.8rem, 3.6vw, 4.8rem);
  font-weight: 900;
  line-height: 1.4;
}
.pnFeature__title--product span {
  display: block;
  white-space: nowrap;
}
.pnFeature__title--product span:first-child {
  font-size: .82em;
}
.pnFeature__title--realtime span {
  display: block;
  white-space: nowrap;
}
.pnFeature__title--realtime span:first-child {
  font-size: .88em;
}
.pnFeature__text {
  margin: 0;
  color: #344f70;
  font-size: clamp(1.5rem, 1.6vw, 1.8rem);
  line-height: 2;
}
.pnFeature__point {
  position: relative;
  margin: 3rem 0 0;
  padding: 2rem 2.2rem 2rem 5.6rem;
  border: 1px solid #cce4ff;
  border-radius: 1.2rem;
  background: rgba(255, 255, 255, .82);
  color: var(--pn-navy);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.8;
}
.pnFeature__point::before {
  position: absolute;
  top: 2rem;
  left: 2rem;
  display: grid;
  width: 2.6rem;
  height: 2.6rem;
  place-items: center;
  border-radius: 50%;
  background: var(--pn-blue);
  color: #fff;
  font-size: 1.6rem;
  content: "✓";
}
.pnFeature__visual {
  margin: 0;
  padding: clamp(1.8rem, 2.8vw, 3.6rem);
  border: 1px solid #d7e8fa;
  border-radius: 2.4rem;
  background: #fff;
  box-shadow: 0 2.4rem 6rem rgba(23, 78, 142, .12);
}
.pnFeature__visualTitle {
  margin: 0 0 clamp(1.6rem, 2.2vw, 2.6rem);
  color: var(--pn-navy);
  font-size: clamp(1.8rem, 2.1vw, 2.6rem);
  font-weight: 900;
  line-height: 1.55;
  text-align: center;
}
.pnFeature__visual img {
  display: block;
  width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}
.pnDifference,
.pnScenario {
  padding: clamp(7rem, 9vw, 12rem) 0;
}
.pnDifference {
  background: #fff;
}
.pnScenario {
  background: linear-gradient(135deg, #f8fbff 0%, #eaf4ff 100%);
}
.pnSectionHeading__eyebrow {
  margin: 0 0 1.4rem;
  color: var(--pn-blue);
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-align: center;
}
.pnSectionHeading__title {
  margin: 0;
  color: var(--pn-navy);
  font-size: clamp(2.8rem, 4vw, 4.8rem);
  font-weight: 900;
  line-height: 1.5;
  text-align: center;
}
.pnSectionHeading__lead {
  max-width: 86rem;
  margin: 2.4rem auto 0;
  color: #415d7f;
  font-size: clamp(1.5rem, 1.6vw, 1.8rem);
  line-height: 2;
  text-align: center;
}
.pnDifference__tableWrap {
  max-width: 100rem;
  margin: 5rem auto 0;
  overflow: hidden;
  border: 1px solid #d4e6f8;
  border-radius: 2rem;
  background: #fff;
  box-shadow: 0 2rem 5rem rgba(23, 78, 142, .1);
}
.pnDifference__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.pnDifference__table th,
.pnDifference__table td {
  width: 50%;
  padding: 2rem 3rem;
  border-bottom: 1px solid #dceafa;
  font-size: clamp(1.4rem, 1.5vw, 1.7rem);
  line-height: 1.7;
  text-align: left;
}
.pnDifference__table th {
  background: #eef3f8;
  color: #5f7188;
  font-size: 1.8rem;
  font-weight: 800;
  text-align: center;
}
.pnDifference__table th:last-child {
  background: linear-gradient(135deg, #0874d8, #0646af);
  color: #fff;
}
.pnDifference__table td:first-child {
  color: #6b7c91;
}
.pnDifference__table td:last-child {
  background: #f4f9ff;
  color: var(--pn-navy);
  font-weight: 800;
}
.pnDifference__table td:last-child::before {
  display: inline-grid;
  width: 2.2rem;
  height: 2.2rem;
  margin-right: 1rem;
  place-items: center;
  border-radius: 50%;
  background: var(--pn-blue);
  color: #fff;
  content: "✓";
}
.pnDifference__table tbody tr:last-child td {
  border-bottom: 0;
}
.pnScenario__steps {
  display: grid;
  max-width: 114rem;
  margin: 5rem auto 0;
  padding: 0;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  list-style: none;
}
.pnScenario__steps li {
  position: relative;
  min-height: 15rem;
  padding: 2.4rem 1.4rem;
  border: 1px solid #c8e0f8;
  background: #fff;
  text-align: center;
}
.pnScenario__steps li:first-child {
  border-radius: 1.6rem 0 0 1.6rem;
}
.pnScenario__steps li:last-child {
  border-radius: 0 1.6rem 1.6rem 0;
}
.pnScenario__steps li:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: -1.2rem;
  z-index: 2;
  width: 2.4rem;
  height: 2.4rem;
  border-top: 1px solid #c8e0f8;
  border-right: 1px solid #c8e0f8;
  background: #fff;
  content: "";
  transform: translateY(-50%) rotate(45deg);
}
.pnScenario__steps span {
  display: block;
  margin-bottom: 1.4rem;
  color: var(--pn-blue);
  font-size: 1.3rem;
  font-weight: 900;
}
.pnScenario__steps strong {
  color: var(--pn-ink);
  font-size: clamp(1.35rem, 1.4vw, 1.6rem);
  line-height: 1.7;
}
.pnFeatures__summary {
  padding: clamp(7rem, 9vw, 11rem) 0;
  background: linear-gradient(135deg, #063f9f 0%, #0874d8 100%);
  color: #fff;
  text-align: center;
}
.pnFeatures__summaryLabel {
  color: #a9dbff;
}
.pnFeatures__cycle {
  display: flex;
  max-width: 116rem;
  margin: 3.6rem auto 4.6rem;
  align-items: stretch;
  justify-content: center;
}
.pnFeatures__cycleItem {
  display: flex;
  min-width: 0;
  flex: 1;
  padding: 2.6rem 2rem;
  border: 1px solid rgba(255, 255, 255, .32);
  border-radius: 1.6rem;
  background: rgba(255, 255, 255, .1);
  align-items: center;
  gap: 1.4rem;
  text-align: left;
}
.pnFeatures__cycleItem span {
  color: #80caff;
  font-size: 1.3rem;
  font-weight: 900;
}
.pnFeatures__cycleItem strong {
  font-size: clamp(1.5rem, 1.7vw, 1.9rem);
  line-height: 1.5;
}
.pnFeatures__arrow {
  display: grid;
  width: 5rem;
  flex: 0 0 5rem;
  place-items: center;
  color: #8fd1ff;
  font-size: 2.8rem;
}
.pnFeatures__closing {
  margin: 0;
  font-size: clamp(2.6rem, 3.8vw, 4.6rem);
  font-weight: 900;
  line-height: 1.55;
}
.pnFeatures__summaryText {
  max-width: 88rem;
  margin: 0 auto 3rem;
  color: #dceeff;
  font-size: clamp(1.5rem, 1.7vw, 1.8rem);
  line-height: 2;
}
@media (max-width: 991.98px) {
  .pnFeature__inner {
    grid-template-columns: 1fr;
    gap: 4rem;
  }
  .pnFeature:nth-child(even) .pnFeature__content,
  .pnFeature:nth-child(even) .pnFeature__visual {
    order: initial;
  }
  .pnFeature__visual {
    max-width: 68rem;
    margin-inline: auto;
  }
  .pnScenario__steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.2rem;
  }
  .pnScenario__steps li,
  .pnScenario__steps li:first-child,
  .pnScenario__steps li:last-child {
    border-radius: 1.2rem;
  }
  .pnScenario__steps li::after {
    display: none;
  }
  .pnFeatures__cycle {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem;
  }
  .pnFeatures__arrow {
    display: none;
  }
}
@media (max-width: 767.98px) {
  .pnFeatures__intro {
    padding-inline: 2rem;
  }
  .pnFeatures__lead br {
    display: none;
  }
  .pnFeatures__concept {
    padding: 2.6rem 2rem;
    text-align: left;
  }
  .pnFeature {
    padding-inline: 1rem;
  }
  .pnFeature__number {
    margin-bottom: -1rem;
  }
  .pnFeature__title br {
    display: none;
  }
  .pnFeature__title--product span,
  .pnFeature__title--realtime span {
    white-space: normal;
  }
  .pnFeature__point {
    padding: 1.8rem 1.8rem 1.8rem 5rem;
  }
  .pnFeature__point::before {
    top: 1.8rem;
    left: 1.6rem;
  }
  .pnFeature__visualTitle {
    font-size: 1.7rem;
  }
  .pnSectionHeading__title br {
    display: none;
  }
  .pnDifference__tableWrap {
    margin-top: 3.5rem;
    border-radius: 1.2rem;
  }
  .pnDifference__table th,
  .pnDifference__table td {
    padding: 1.5rem 1.2rem;
    vertical-align: top;
  }
  .pnDifference__table th {
    font-size: 1.4rem;
  }
  .pnDifference__table td:last-child::before {
    display: none;
  }
  .pnScenario__steps {
    grid-template-columns: 1fr;
  }
  .pnScenario__steps li {
    min-height: 0;
    text-align: left;
  }
  .pnScenario__steps span {
    display: inline-block;
    margin: 0 1.2rem 0 0;
  }
  .pnScenario__steps strong {
    display: inline;
  }
  .pnScenario__steps br {
    display: none;
  }
  .pnFeatures__cycle {
    grid-template-columns: 1fr;
  }
  .pnFeatures__cycleItem {
    width: 100%;
  }
}

.top-page .mangaFeature {
  background-color: #ffffff;
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.06) 1px, transparent 1px), linear-gradient(to bottom, rgba(0, 0, 0, 0.06) 1px, transparent 1px);
  background-size: 20px 20px;
  background-position: 0 0;
  padding: 8rem 0;
}
@media (max-width: 768px) {
  .top-page .mangaFeature {
    padding: 4.2rem 0 5rem;
    background-size: 28px 28px;
  }
}
.top-page .mangaFeature__inner {
  gap: 5rem;
}
@media (max-width: 768px) {
  .top-page .mangaFeature__inner {
    gap: 3.6rem;
  }
}
.top-page .mangaFeature__item {
  gap: 1.6rem;
}
.top-page .mangaFeature__media {
  max-width: 1000px;
  margin: 0 auto;
}
.top-page .mangaFeature__img {
  display: block;
  height: auto;
}
.top-page .mangaFeature__caption {
  margin-inline: auto;
  background: #ECECEC;
  border-radius: 0.8rem;
  padding: 3.6rem;
  gap: 1.6rem;
}
@media (max-width: 768px) {
  .top-page .mangaFeature__caption {
    width: 100%;
    padding: 1.4rem 1.4rem;
    gap: 1.2rem;
  }
}
.top-page .mangaFeature__badge {
  width: 6.8rem;
  height: 6.8rem;
}
@media (max-width: 768px) {
  .top-page .mangaFeature__badge {
    width: 5.6rem;
    height: 5.6rem;
  }
}
.top-page .mangaFeature__badgeImg {
  width: 100%;
  height: 100%;
  display: block;
}
.top-page .mangaFeature__captionBody {
  min-width: 0;
}
.top-page .mangaFeature__captionTitle {
  display: block;
  font-size: 2.8rem;
  line-height: 1.45;
  color: #2b2b2b;
}
@media (max-width: 768px) {
  .top-page .mangaFeature__captionTitle {
    font-size: 1.5rem;
  }
}
.top-page .mangaFeature__titleLead {
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.6rem;
  line-height: 1;
}
.top-page .mangaFeature__titleLogo {
  display: block;
  height: 4.2rem;
  width: auto;
  transform: none;
}
@media (max-width: 768px) {
  .top-page .mangaFeature__titleLogo {
    height: 1.8rem;
  }
}
.top-page .mangaFeature__captionDesc {
  font-size: 1.8rem;
  line-height: 1.7;
  color: #2b2b2b;
  opacity: 0.9;
}
@media (max-width: 768px) {
  .top-page .mangaFeature__captionDesc {
    font-size: 1.2rem;
  }
}
.top-page {
  /* =========================
      営業ノウハウの可視化は、
      隠れた営業力を引き出します！
  ========================= */
}
.top-page .hsp {
  padding: 12rem 0 0;
}
@media (max-width: 768px) {
  .top-page .hsp {
    padding: 6rem 0 0;
  }
}
.top-page .hsp {
  /* title */
}
.top-page .hsp__head {
  margin-bottom: 8rem;
}
@media (max-width: 768px) {
  .top-page .hsp__head {
    margin-bottom: 4rem;
  }
}
.top-page .hsp__title {
  color: #2b2b2b;
  font-size: 4rem;
  line-height: 1.55;
}
@media (max-width: 768px) {
  .top-page .hsp__title {
    font-size: 1.8rem;
  }
}
.top-page .hsp {
  /* 黄色マーカー：添付は細めで下側に入る */
}
.top-page .hsp__titleMarker {
  position: relative;
  display: inline-block;
  padding: 0 0.15rem;
}
.top-page .hsp__titleMarker::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.12em;
  height: 0.42em;
  background: #FFFAA4;
  z-index: -1;
  border-radius: 2px;
}
.top-page .hsp {
  /* top block */
}
.top-page .hsp__top {
  gap: 8rem;
  align-items: flex-start;
  margin-bottom: 2.2rem;
}
@media (max-width: 768px) {
  .top-page .hsp__top {
    flex-direction: column;
    gap: 1.4rem;
  }
}
.top-page .hsp__photoWrap {
  width: 44%;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
}
@media (max-width: 768px) {
  .top-page .hsp__photoWrap {
    width: 100%;
  }
}
.top-page .hsp__topText {
  width: 56%;
  padding-top: 0.2rem;
}
@media (max-width: 768px) {
  .top-page .hsp__topText {
    width: 100%;
  }
}
.top-page .hsp__p {
  font-size: 1.8rem;
  line-height: 1.85;
}
@media (max-width: 768px) {
  .top-page .hsp__p {
    font-size: 1.2rem;
  }
}
.top-page .hspMid {
  margin-bottom: 8rem;
}
@media (max-width: 768px) {
  .top-page .hspMid {
    margin-bottom: 4rem;
  }
}
.top-page .hspStage {
  padding: 2.4rem 0;
}
.top-page .hspStage__wrap {
  gap: 5.8rem;
}
.top-page .hspStage {
  /* ✅ 742 : 360 の比率（合計 1102px）→ %化 */
}
.top-page .hspStage__group {
  width: 67.33%;
  gap: 3.2rem;
}
.top-page .hspStage__riskCard {
  width: 30.67%;
}
.top-page .hspStage {
  /* ===== 左：イラストカード（添付の薄グレー枠） ===== */
}
.top-page .hspStage__illustCard {
  background: #F5F5F5;
  border-radius: 1.6rem;
  padding: 2.8rem;
  width: 44%;
  min-width: 28rem;
}
.top-page .hspStage__illustImg {
  display: block;
  width: 100%;
  height: auto;
  max-width: 19rem;
}
.top-page .hspStage {
  /* ===== 中央：テキスト（背景なし・行間広め） ===== */
}
.top-page .hspStage__text {
  width: 56%;
  min-width: 0;
}
.top-page .hspStage__title {
  font-size: 2.2rem;
  line-height: 1.35;
  color: #2b2b2b;
  letter-spacing: 0.01em;
}
.top-page .hspStage__desc {
  font-size: 1.6rem;
  line-height: 2.1;
  color: #2b2b2b;
  opacity: 0.92;
}
.top-page .hspStage {
  /* ===== 右：リスクカード（薄グレー + 人物はみ出し） ===== */
}
.top-page .hspStage__riskCard {
  position: relative;
  background: #F5F5F5;
  border-radius: 1.6rem;
  padding: 2.6rem 2.8rem;
  overflow: visible;
  min-height: 22rem;
}
@media (max-width: 768px) {
  .top-page .hspStage__riskCard {
    min-height: auto;
  }
}
.top-page .hspStage__riskHead {
  font-size: 1.7rem;
  line-height: 1.2;
  color: #2b2b2b;
  margin-bottom: 1.6rem;
  gap: 2rem;
  width: 85%;
}
.top-page .hspStage__riskIcon {
  display: block;
}
@media (max-width: 768px) {
  .top-page .hspStage__riskIcon {
    width: 30px;
    height: auto;
  }
}
.top-page .hspStage__riskTitle {
  font-size: 1.8rem;
}
@media (max-width: 768px) {
  .top-page .hspStage__riskTitle {
    font-size: 1.5rem;
  }
}
.top-page .hspStage__riskDesc {
  font-size: 1.8rem;
  line-height: 2;
  max-width: 22em;
}
@media (max-width: 768px) {
  .top-page .hspStage__riskDesc {
    font-size: 1.2rem;
  }
}
.top-page .hspStage {
  /* ✅ 添付２のように少し外へはみ出す */
}
.top-page .hspStage__riskPerson {
  position: absolute;
  right: 2rem;
  bottom: -2.2rem;
  width: 6.4rem;
  height: auto;
  display: block;
  pointer-events: none;
}
.top-page .hspStage {
  /* ===== Responsive ===== */
}
@media (max-width: 768px) {
  .top-page .hspStage__wrap {
    flex-direction: column;
    gap: 2rem;
  }
  .top-page .hspStage__group, .top-page .hspStage__riskCard {
    width: 100%;
  }
  .top-page .hspStage__group {
    flex-direction: column;
    gap: 1.6rem;
  }
  .top-page .hspStage__illustCard {
    width: 100%;
    min-width: 0;
    padding: 2rem;
  }
  .top-page .hspStage__text {
    width: 100%;
  }
  .top-page .hspStage__riskCard {
    padding: 2rem;
  }
  .top-page .hspStage__riskPerson {
    right: 1.2rem;
    bottom: -1.6rem;
    width: 5rem;
  }
}
.top-page .hspStage {
  /* ===== arrow ===== */
}
.top-page .hspStage__arrow {
  padding: 18px 0 18px;
}
.top-page .hspStage__arrowImg {
  width: 140px !important;
  height: auto;
}
@media (max-width: 768px) {
  .top-page .hspStage__arrowImg {
    width: 100px !important;
  }
}
.top-page .hspStage {
  /* ===== bottom (2 columns) ===== */
}
.top-page .hspStage__bottom {
  margin-top: 3rem;
  gap: 6rem;
  align-items: center;
  max-width: 926px;
  margin: 0 auto;
  /* 画像カード（左）+ リスト（右）を“中央寄せっぽく”見せる */
  justify-content: center;
}
@media (max-width: 768px) {
  .top-page .hspStage__bottom {
    flex-direction: column;
    gap: 2rem;
    margin-top: 2rem;
    align-items: stretch;
  }
}
.top-page .hspStage {
  /* 左の薄グレーカード */
}
.top-page .hspStage__meetingCard {
  background: #F5F5F5;
  border-radius: 1.6rem;
  padding: 2.6rem 3rem;
  /* 添付の見た目は横長でしっかり大きい */
  width: 36%;
  min-width: 36rem;
  max-width: 46rem;
}
@media (max-width: 768px) {
  .top-page .hspStage__meetingCard {
    width: 100%;
    min-width: 0;
    max-width: none;
    padding: 2rem;
  }
}
.top-page .hspStage__meetingImg {
  display: block;
  width: 100%;
  height: auto;
  /* 添付はカード内で少し余白がある感じ → max幅で調整 */
  max-width: 29rem;
}
@media (max-width: 768px) {
  .top-page .hspStage__meetingImg {
    width: 50%;
  }
}
.top-page .hspStage {
  /* 右のリストブロック（カード無し） */
}
.top-page .hspStage__list {
  flex: 1;
  min-width: 0;
}
@media (max-width: 768px) {
  .top-page .hspStage__list {
    width: 100%;
  }
}
.top-page .hspStage__listTitle {
  font-size: 2.4rem;
  line-height: 1.35;
}
@media (max-width: 768px) {
  .top-page .hspStage__listTitle {
    font-size: 1.5rem;
  }
}
.top-page .hspStage__ul {
  margin: 0;
  padding-left: 1.6rem;
  color: #2b2b2b;
}
.top-page .hspStage__ul li {
  font-size: 1.8rem;
  line-height: 2;
}
@media (max-width: 768px) {
  .top-page .hspStage__ul li {
    font-size: 1.2rem;
    line-height: 1.9;
  }
}
.top-page .hspResult {
  position: relative;
  background: #ECECEC;
  border-radius: 1.2rem;
  padding: 3rem 7rem;
  overflow: visible;
  min-height: 14rem;
  /* 右の人物スペース分、本文が食い込まないように余白を確保 */
  padding-right: 16rem;
}
@media (max-width: 768px) {
  .top-page .hspResult {
    padding-right: 0rem;
  }
}
.top-page .hspResult__left {
  width: 100%;
  min-width: 0;
  gap: 2.7rem;
}
@media (max-width: 768px) {
  .top-page .hspResult__left {
    gap: 1.6rem;
  }
}
.top-page .hspResult {
  /* ✅ アイコン + 見出しを同一行 */
}
.top-page .hspResult__head {
  margin: auto;
  gap: 1rem;
}
.top-page .hspResult__icon {
  display: block;
  margin-top: -0.1rem;
}
@media (max-width: 768px) {
  .top-page .hspResult__icon {
    width: 30px;
    height: auto;
  }
}
.top-page .hspResult__title {
  font-size: 3.2rem;
  line-height: 1.35;
  color: #2b2b2b;
  letter-spacing: 0.01em;
}
.top-page .hspResult__desc {
  width: 100%;
  font-size: 1.8rem;
  line-height: 1.9;
  max-width: 78ch;
}
.top-page .hspResult {
  /* ✅ 右下人物：少し外にはみ出す */
}
.top-page .hspResult__personWrap {
  position: absolute;
  right: 2rem;
  bottom: -1.6rem;
  width: 12rem;
  pointer-events: none;
}
.top-page .hspResult__personImg {
  width: 100%;
  height: auto;
  display: block;
}
@media (max-width: 768px) {
  .top-page .hspResult {
    padding: 1.6rem;
  }
  .top-page .hspResult__title {
    font-size: 1.6rem;
  }
  .top-page .hspResult__desc {
    font-size: 1.1rem;
    max-width: none;
  }
  .top-page .hspResult__personWrap {
    right: 1.2rem;
    bottom: -2.7rem;
    width: 5rem;
  }
}
.top-page {
  /* =========================
      営業カルテで自社の営業の弱みと強みを分析できる
  ========================= */
}
.top-page .salesAnalyze {
  background: #fff;
  margin-bottom: 8rem;
}
@media (max-width: 768px) {
  .top-page .salesAnalyze {
    margin-bottom: 4rem;
  }
}
.top-page .salesAnalyze__card {
  background: #9c9c9c;
  border-radius: 12px;
  padding: 4rem;
}
.top-page .salesAnalyze__head {
  margin-bottom: 14px;
}
.top-page .salesAnalyze__title {
  color: #fff;
  font-size: 3.2rem;
  line-height: 1.35;
  letter-spacing: 0.02em;
  margin-bottom: 4rem;
}
@media (max-width: 768px) {
  .top-page .salesAnalyze__title {
    font-size: 1.5rem;
    margin-bottom: 2rem;
  }
}
.top-page .salesAnalyze__desc {
  color: rgba(255, 255, 255, 0.92);
  font-size: 1.8rem;
  line-height: 1.8;
  text-align: left;
  width: 100%;
}
@media (max-width: 768px) {
  .top-page .salesAnalyze__desc {
    font-size: 1.2rem;
  }
}
.top-page .salesAnalyze__panel {
  background: #dddddd;
  border-radius: 10px;
  height: 400px;
  width: 80%;
  padding: 0;
  margin: auto;
  margin-top: 56px;
  margin-bottom: 30px;
  overflow: hidden;
}
@media (max-width: 768px) {
  .top-page .salesAnalyze__panel {
    width: 100%;
    height: 250px;
    margin-top: 10px;
    margin-bottom: 20px;
  }
}
.top-page .salesAnalyze__cta {
  /* ボタンは既存 threePlus__btn のCSSに任せる */
}
.top-page .threePlus__btn {
  width: 380px;
}
.top-page {
  /* responsive（添付に崩れない最低限） */
}
@media (max-width: 768px) {
  .top-page .salesAnalyze__card {
    padding: 18px 16px 20px;
  }
  .top-page .salesAnalyze__panel {
    height: 170px;
  }
  .top-page .salesAnalyze__title {
    font-size: 16px;
  }
  .top-page .salesAnalyze__desc {
    font-size: 12px;
  }
}
.top-page {
  /* =========================
      topProducts 
  ========================= */
}
.top-page .topProducts {
  padding: 8rem 0;
}
.top-page .topProducts--second {
  padding-top: 2.8rem;
}
.top-page .topProducts__sectionTitle {
  font-size: 3.2rem;
  margin-bottom: 4.8rem;
  color: #2b2b2b;
}
@media (max-width: 768px) {
  .top-page .topProducts__sectionTitle {
    font-size: 1.8rem;
    margin-bottom: 3.2rem;
  }
}
.top-page .topProducts {
  /* ✅ 2つ目以降の見出しだけ mt:4rem */
}
.top-page .topProducts__sectionTitle + .topProducts__list {
  /* これは見出し直後のリストに効くのでNG */
}
.top-page .topProducts {
  /* ✅ こっちが正解：2つ目以降の h2 にだけ margin-top を付与 */
}
.top-page .topProducts__sectionTitle:not(:first-of-type) {
  margin-top: 4rem;
}
.top-page .topProducts__list {
  gap: 4.4rem;
}
.top-page .topProducts__item {
  gap: 6.4rem;
  align-items: center;
}
.top-page .topProducts {
  /* 左：画像ブロック */
}
.top-page .topProducts__media {
  width: 46%;
  min-width: 420px;
}
.top-page .topProducts__mediaInner {
  position: relative;
  border-radius: 1.6rem;
  overflow: hidden;
  height: 280px;
}
.top-page .topProducts__photo {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: 1;
}
.top-page .topProducts {
  /* 右側の薄色面（背景） */
}
.top-page .topProducts__sideBg {
  position: absolute;
  right: 0;
  top: 0;
  width: 32%;
  height: 100%;
  z-index: 0;
}
.top-page .topProducts {
  /* 右側の濃い斜め帯 */
}
.top-page .topProducts__sideColor {
  position: absolute;
  right: 7%;
  top: -8%;
  width: 18%;
  height: 120%;
  z-index: 2;
  clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);
  border-radius: 1.2rem;
}
.top-page .topProducts {
  /* 右：テキストブロック */
}
.top-page .topProducts__body {
  width: 54%;
  min-width: 360px;
}
.top-page .topProducts__logo img {
  height: 36px;
  width: auto;
  display: block;
}
@media (max-width: 768px) {
  .top-page .topProducts__logo img {
    height: 20px;
  }
}
.top-page .topProducts__lead {
  font-size: 1.8rem;
  line-height: 1.6;
  margin-bottom: 3.2rem;
}
@media (max-width: 768px) {
  .top-page .topProducts__lead {
    font-size: 1.5rem;
    margin-bottom: 2rem;
  }
}
.top-page .topProducts__desc {
  font-size: 1.6rem;
  line-height: 1.9;
  margin-bottom: 3.2rem;
}
@media (max-width: 768px) {
  .top-page .topProducts__desc {
    font-size: 1.2rem;
  }
}
.top-page .topProducts {
  /* 色バリエーション（添付の黄/緑/ピンク） */
}
.top-page .topProducts__item--cplus .topProducts__sideBg {
  background: #FFE7AE;
}
.top-page .topProducts__item--cplus .topProducts__sideColor {
  background: #F7C334;
}
.top-page .topProducts__item--lbiz .topProducts__sideBg {
  background: #CFF4DA;
}
.top-page .topProducts__item--lbiz .topProducts__sideColor {
  background: #10E64A;
}
.top-page .topProducts__item--pm .topProducts__sideBg {
  background: #F7C6E0;
}
.top-page .topProducts__item--pm .topProducts__sideColor {
  background: #E45BA9;
}
.top-page .topProducts {
  /* PMのグレーボタン表現（見た目だけ無効） */
}
.top-page .topProducts__btn--disabled {
  background: #b3b3b3 !important;
  cursor: not-allowed;
  pointer-events: none;
}
.top-page .topProducts__btn--disabled .threePlus__btnIcon {
  display: none;
}
.top-page .topProducts {
  /* SP */
}
@media (max-width: 768px) {
  .top-page .topProducts {
    padding: 3.6rem 0;
  }
  .top-page .topProducts__item {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.6rem;
  }
  .top-page .topProducts__media, .top-page .topProducts__body {
    width: 100%;
    min-width: 0;
  }
  .top-page .topProducts__mediaInner {
    height: 180px;
  }
  .top-page .topProducts__desc {
    max-width: none;
  }
}

.mv__headlineAccent {
  color: #EAB321;
}

/* ========================================
MV 調整（完全版）
======================================== */
.top-page .mv {
  background-position: calc(100% + 180px) center;
}
@media (max-width: 768px) {
  .top-page .mv {
    background-position: 72% center;
  }
}
.top-page .mv__content {
  width: 72rem;
  max-width: 72rem;
  padding-left: 6rem;
  padding-top: 6rem;
  position: relative;
  z-index: 2;
}
@media (max-width: 768px) {
  .top-page .mv__content {
    width: 100%;
    max-width: 100%;
    padding-left: 2rem;
    padding-right: 2rem;
    padding-top: 4rem;
  }
}
.top-page .mv__headline {
  font-size: 3rem;
  line-height: 1.6;
  letter-spacing: 0.01em;
  max-width: 70rem;
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .top-page .mv__headline {
    font-size: 2.2rem;
    line-height: 1.7;
  }
}
.top-page {
  /* -------------------------
  1行目
  ------------------------- */
}
.top-page .mv__headlineTop {
  display: block;
  margin-bottom: 2.2rem;
}
@media (max-width: 768px) {
  .top-page .mv__headlineTop {
    margin-bottom: 1.6rem;
  }
}
.top-page .mv__headlineAccent {
  color: #EAB321;
}
.top-page {
  /* -------------------------
  2行目以降
  ------------------------- */
}
.top-page .mv__headlineBottom {
  display: block;
  line-height: 1.7;
  max-width: 66rem;
}
@media (max-width: 768px) {
  .top-page .mv__headlineBottom {
    max-width: 100%;
    line-height: 1.75;
  }
}
.top-page {
  /* -------------------------
  ロゴ
  ------------------------- */
}
.top-page .mv__headlineBottom .mv__logo {
  display: inline-block;
  vertical-align: -0.55rem;
  width: auto;
  height: 4.2rem;
  margin-right: 1rem;
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .top-page .mv__headlineBottom .mv__logo {
    height: 2.8rem;
    margin-right: 0.6rem;
    vertical-align: -0.35rem;
  }
}

.top-page .mv__content {
  width: 78rem;
  max-width: 78rem;
  padding-left: 4rem;
  padding-top: 5rem;
}
.top-page .mv__headline {
  font-size: 3.2rem;
  line-height: 1.55;
  max-width: 78rem;
}
.top-page .mv__headlineTop {
  margin-bottom: 1.8rem;
}
.top-page .mv__headlineBottom {
  max-width: 78rem;
  line-height: 1.55;
}
.top-page .mv__headlineBottom .mv__logo {
  display: inline-block;
  height: 3.6rem;
  margin-right: 0.8rem;
  vertical-align: -0.35rem;
}
.top-page .mv__headline {
  margin-top: 0;
  margin-bottom: 2rem;
  color: #0646af;
  font-size: clamp(4rem, 5.2vw, 6.4rem);
  letter-spacing: .01em;
  line-height: 1.3;
}
.top-page .mv__headlineAccent {
  color: #0646af;
}
.top-page .mv__subcopy {
  margin: 0 0 2.2rem;
  color: #0874d8;
  font-size: clamp(1.8rem, 2.2vw, 2.6rem);
  line-height: 1.6;
}
.top-page .mv__lead {
  max-width: 72rem;
  margin: 0;
  color: #415d7f;
  font-size: calc(clamp(1.4rem, 1.45vw, 1.7rem) + 4px);
  font-weight: 500;
  line-height: 1.9;
}
@media (max-width: 767.98px) {
  .top-page .mv__headline {
    margin-bottom: 1.6rem;
    font-size: 3.6rem;
    line-height: 1.35;
  }
  .top-page .mv__subcopy {
    margin-bottom: 1.6rem;
    font-size: 1.7rem;
  }
  .top-page .mv__lead {
    font-size: 1.4rem;
  }
  .top-page .mv__lead br {
    display: none;
  }
}
.top-page {
  /* =========================
    TOP Problem
    ========================= */
}
.top-page .topProblem {
  background: #f3f5f9;
  padding: 5.6rem 0 7.2rem;
}
.top-page .topProblem__inner {
  max-width: 980px;
}
.top-page .topProblem__lead {
  margin: 0 0 3.2rem;
  text-align: center;
  font-size: 3.2rem;
  line-height: 1.75;
  font-weight: 800;
  color: #111;
}
.top-page .topProblem__group {
  margin-bottom: 2.8rem;
}
.top-page .topProblem__bar {
  margin: 0 0 1.2rem;
  padding: 0.6rem 1.6rem;
  background: #cfd8ec;
  border-radius: 0.4rem;
  text-align: center;
  font-size: 2.2rem;
  line-height: 1.4;
  font-weight: 800;
  color: #222;
}
.top-page .topProblem__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.6rem;
}
.top-page .topProblem__card {
  background: #fff;
  border: 1px solid #b8bec8;
  border-radius: 0.6rem;
  padding: 1.8rem 2rem 2rem;
}
.top-page .topProblem__card--real {
  background: #ececec;
}
.top-page .topProblem__card--ideal {
  border-color: #f2a51b;
  background: #fffaf0;
}
.top-page .topProblem__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 5.4rem;
  margin-bottom: 1rem;
  padding: 0.2rem 1rem;
  border-radius: 999px;
  background: #f5a400;
  color: #fff;
  font-size: 1.3rem;
  line-height: 1.3;
  font-weight: 800;
}
.top-page .topProblem__card--real .topProblem__tag {
  background: #5a6470;
}
.top-page .topProblem__card h4 {
  margin: 0 0 1rem;
  font-size: 1.8rem;
  line-height: 1.6;
  font-weight: 800;
  color: #222;
}
.top-page .topProblem__card p {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.9;
  color: #444;
}
@media (max-width: 768px) {
  .top-page .topProblem {
    padding: 4rem 0 5rem;
  }
  .top-page .topProblem__lead {
    font-size: 2.2rem;
    line-height: 1.7;
    margin-bottom: 2.4rem;
  }
  .top-page .topProblem__bar {
    font-size: 1.6rem;
  }
  .top-page .topProblem__cards {
    grid-template-columns: 1fr;
  }
  .top-page .topProblem__card h4 {
    font-size: 1.5rem;
  }
  .top-page .topProblem__card p {
    font-size: 1.3rem;
  }
}
.top-page {
  /* =========================
  Growth DX
  ========================= */
}
.top-page .growthDx__intro {
  background: #fff;
  padding: 7rem 0 6rem;
}
.top-page .growthDx__stepArea {
  background: #ececec;
  padding: 6rem 0 7rem;
}
.top-page .growthDx__inner {
  max-width: 980px;
}
.top-page .growthDx__title {
  margin: 0 0 3rem;
  font-size: 3.5rem;
  line-height: 1.7;
  font-weight: 800;
  color: #111;
}
.top-page .growthDx__title--center {
  text-align: center;
  margin-bottom: 2rem;
}
.top-page .growthDx__text p {
  margin: 0 0 3rem;
  font-size: 2.2rem;
  line-height: 2.1;
  color: #222;
}
.top-page .growthDx__text strong {
  font-weight: 800;
  color: #111;
}
.top-page .growthDx__lead {
  margin: 0 0 4.5rem;
  text-align: center;
  font-size: 2.2rem;
  line-height: 1.8;
  font-weight: 700;
  color: #111;
}
.top-page .growthDx__stepTitle {
  margin: 0 0 3.5rem;
  text-align: center;
  font-size: 2.6rem;
  line-height: 1.5;
  font-weight: 800;
  color: #111;
}
.top-page .growthDx__steps {
  max-width: 760px;
  margin: 0 auto;
}
.top-page .growthDx__step {
  display: grid;
  grid-template-columns: 22rem 1fr;
  background: #fff;
  border-radius: 1.2rem;
  overflow: hidden;
}
.top-page .growthDx__label {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem 2rem;
  background: #eef5f8;
  font-size: 2rem;
  line-height: 1.6;
  font-weight: 800;
  color: #111;
  text-align: center;
}
.top-page .growthDx__desc {
  padding: 3rem;
  font-size: 1.7rem;
  line-height: 2;
  color: #444;
}
.top-page .growthDx__arrow {
  margin: 1.4rem 0;
  text-align: center;
  font-size: 2.4rem;
  color: #cfcfcf;
  font-weight: 700;
}
.top-page .growthDx__bottom {
  margin: 4rem 0 0;
  text-align: center;
  font-size: 2.4rem;
  line-height: 1.8;
  font-weight: 800;
  color: #222;
}
@media (max-width: 768px) {
  .top-page .growthDx__intro {
    padding: 5rem 0 4rem;
  }
  .top-page .growthDx__stepArea {
    padding: 4.5rem 0 5rem;
  }
  .top-page .growthDx__title {
    font-size: 3.5rem;
    line-height: 1.7;
  }
  .top-page .growthDx__text p {
    font-size: 2.2rem;
    line-height: 2;
  }
  .top-page .growthDx__lead {
    font-size: 1.7rem;
    line-height: 1.8;
    margin-bottom: 3rem;
  }
  .top-page .growthDx__stepTitle {
    font-size: 2rem;
    margin-bottom: 2.5rem;
  }
  .top-page .growthDx__step {
    grid-template-columns: 1fr;
  }
  .top-page .growthDx__label {
    padding: 2rem;
    font-size: 1.7rem;
  }
  .top-page .growthDx__desc {
    padding: 2rem;
    font-size: 1.5rem;
  }
  .top-page .growthDx__bottom {
    font-size: 1.8rem;
    line-height: 1.8;
  }
}
.top-page .growthDx .growthDx__title {
  display: table;
  margin-left: auto;
  margin-right: auto;
  background: linear-gradient(transparent 62%, #fff0b8 62%);
}
.top-page .growthDx .growthDx__text p {
  font-size: 2.5rem;
}
.top-page .growthDx .growthDx__lead {
  font-size: 2.5rem;
}
.top-page .growthDx .growthDx__logo {
  display: inline-block;
  width: 18rem;
  height: auto;
  margin-right: 0.6rem;
  vertical-align: -0.45rem;
}
.top-page .growthDx .growthDx__arrow {
  color: #eaf6fa;
}
.top-page .growthDx .growthDx__step {
  grid-template-columns: 28rem 1fr;
}
.top-page .growthDx .growthDx__label {
  justify-content: flex-start;
  text-align: left;
  padding-left: 3.2rem;
}

.top-page .contact {
  background: #EDF8FC !important;
  padding-top: 8rem;
}
.top-page .contact__inner::before {
  content: "あなたの現場を、\a「自ら成長する組織へ」へアップデートしませんか？";
  white-space: pre;
  display: block;
  text-align: center;
  font-size: 3.2rem;
  font-weight: 800;
  line-height: 1.45;
  color: #111;
  margin-bottom: 3rem;
}
@media (max-width: 768px) {
  .top-page .contact {
    padding-top: 6rem;
  }
  .top-page .contact__inner::before {
    font-size: 2.2rem;
    margin-bottom: 2.4rem;
  }
}

/* ========================================
   supportFlow
======================================== */
.top-page .supportFlow {
  background: #F8FAFC;
  padding-bottom: 10rem;
}
.top-page {
  /* 次セクションまで背景つなげる */
}
.top-page .supportFlow + section {
  background: #F8FAFC;
}
.top-page .supportFlow__frame {
  background: #F8FAFC;
}
.top-page .supportFlow__brand {
  background: #F8FAFC;
}
.top-page {
  /* 全ステップ白背景 */
}
.top-page .supportFlow__step,
.top-page .supportFlow__step--wide {
  background: #fff !important;
}
.top-page {
  /* タイトル高さ統一 */
}
.top-page .supportFlow__stepTitle {
  min-height: 3.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.4;
}
.top-page {
  /* 横並び中央 */
}
.top-page .supportFlow__steps {
  align-items: stretch !important;
}
.top-page {
  /* 各ボックス高さそろえる */
}
.top-page .supportFlow__step {
  min-height: 8.8rem;
}
.top-page .supportFlow__step--wide {
  min-height: 8.8rem;
}

.top-page .supportFlow__connector {
  display: flex;
  align-items: center;
}

.growthDx__title--noLine {
  background: none !important;
}

/* foundation */
.page-works .worksMv {
  --mv-h: 550px;
  --slant: 100px;
  --panel-w: 43%;
  --slash-w: 156px;
  --panel-bg: #333333;
  --slash-bg: #A0A0A0;
  width: 100%;
}
.page-works .worksMv__inner {
  height: var(--mv-h);
  display: flex;
  align-items: stretch;
  overflow: hidden;
  background: #fff;
}
.page-works {
  /* =========================
  * 左：黒パネル
  * ========================= */
}
.page-works .worksMv__panel {
  width: var(--panel-w);
  height: 100%;
  background: var(--panel-bg);
  clip-path: polygon(0 0, 100% 0, calc(100% - var(--slant)) 100%, 0 100%);
  position: relative;
  z-index: 2;
}
.page-works .worksMv__panelBody {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 3rem;
}
.page-works .worksMv__title {
  color: #fff;
  font-weight: 800;
  font-size: 28px;
  line-height: 1.45;
  letter-spacing: 0.02em;
  text-align: center;
  white-space: nowrap;
}
.page-works {
  /* =========================
  * 中：グレーのスラッシュ（左パネルと同角度）
  * ========================= */
}
.page-works .worksMv__slash {
  width: var(--slash-w);
  height: 100%;
  background: var(--slash-bg);
  clip-path: polygon(var(--slant) 0, 100% 0, calc(100% - var(--slant)) 100%, 0 100%);
  margin-left: calc(var(--slant) * -1);
  position: relative;
  z-index: 3;
}
.page-works {
  /* =========================
  * 右：画像パネル（この範囲のみ背景画像）
  * ========================= */
}
.page-works .worksMv__media {
  flex: 1;
  height: 100%;
  background-image: var(--mv-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  margin-left: calc(var(--slant) * -1);
  position: relative;
  z-index: 1;
}
.page-works {
  /* =========================
  * ざっくりSP調整（必要なら）
  * ========================= */
}
@media (max-width: 900px) {
  .page-works .worksMv {
    --mv-h: 420px;
    --panel-w: 52%;
    --slash-w: 64px;
    --slant: 52px;
  }
  .page-works .worksMv__title {
    font-size: 22px;
  }
}
.page-works {
  /* ===== Works Intro（添付１） ===== */
}
.page-works .worksIntro {
  background: #fff;
  padding: 8rem 0;
}
@media (max-width: 768px) {
  .page-works .worksIntro {
    padding: 4.8rem 0;
  }
}
.page-works .worksIntro__inner {
  gap: 6.4rem;
  /* 左右の間隔（添付の余白感） */
}
@media (max-width: 768px) {
  .page-works .worksIntro__inner {
    gap: 2.4rem;
  }
}
.page-works .worksIntro {
  /* 左：テキスト */
}
.page-works .worksIntro__content {
  width: 54%;
  min-width: 0;
}
@media (max-width: 768px) {
  .page-works .worksIntro__content {
    width: 100%;
  }
}
.page-works .worksIntro__title {
  font-size: 3.2rem;
  line-height: 1.35;
  color: #2b2b2b;
}
@media (max-width: 768px) {
  .page-works .worksIntro__title {
    font-size: 1.8rem;
  }
}
.page-works .worksIntro__desc {
  font-size: 1.6rem;
  line-height: 1.9;
  color: #2b2b2b;
  opacity: 0.9;
}
.page-works .worksIntro {
  /* 右：画像（大きい角丸） */
}
.page-works .worksIntro__media {
  width: 46%;
  min-width: 420px;
}
@media (max-width: 768px) {
  .page-works .worksIntro__media {
    width: 100%;
    min-width: 0;
  }
}
.page-works .worksIntro__mediaInner {
  border-radius: 1.6rem;
  overflow: hidden;
  background: #9c9c9c;
  /* 画像がない場合の見え方（添付のグレー枠っぽく） */
  height: 240px;
  /* 添付の比率に合わせて調整 */
  position: relative;
}
@media (max-width: 768px) {
  .page-works .worksIntro__mediaInner {
    height: 200px;
  }
}
.page-works .worksIntro__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}
.page-works .works-customize {
  background: #f3f3f3;
  padding: 62px 0 78px;
}
.page-works .works-customize__inner {
  margin: 0 auto;
  padding: 0 40px;
}
.page-works .works-customize__block {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
}
.page-works .works-customize__block + .works-customize__block {
  margin-top: 92px;
}
.page-works .works-customize__content {
  flex: 1;
  padding-top: 2px;
}
.page-works .works-customize__title {
  position: relative;
  display: inline-block;
  margin: 0 0 28px;
  padding: 0 0 8px;
  font-size: 31px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.02em;
  color: #333;
  z-index: 10;
}
.page-works .works-customize__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 10px;
  width: 100%;
  height: 8px;
  background: #FFFAA4;
  z-index: -1;
}
.page-works .works-customize__text {
  margin: 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 2.15;
  letter-spacing: 0.02em;
  color: #4a4a4a;
}
.page-works .works-customize__image {
  flex-shrink: 0;
  width: 190px;
  margin-top: 20px;
}
.page-works .works-customize__image--small {
  width: 190px;
  margin-top: 6px;
}
.page-works .works-customize__image img {
  display: block;
  width: 100%;
  height: auto;
}
.page-works {
  /* タブレット以下 */
}
@media screen and (max-width: 1024px) {
  .page-works .works-customize {
    padding: 56px 0 72px;
  }
  .page-works .works-customize__inner {
    padding: 0 24px;
  }
  .page-works .works-customize__block {
    gap: 32px;
  }
  .page-works .works-customize__content {
    max-width: none;
  }
  .page-works .works-customize__title {
    font-size: 28px;
  }
  .page-works .works-customize__text {
    font-size: 15px;
    line-height: 2;
  }
  .page-works .works-customize__image {
    width: 230px;
  }
  .page-works .works-customize__image--small {
    width: 220px;
  }
}
.page-works {
  /* スマホ */
}
@media screen and (max-width: 767px) {
  .page-works .works-customize {
    padding: 48px 0 56px;
  }
  .page-works .works-customize__inner {
    padding: 0 20px;
  }
  .page-works .works-customize__block {
    flex-direction: column;
    gap: 24px;
  }
  .page-works .works-customize__block + .works-customize__block {
    margin-top: 64px;
  }
  .page-works .works-customize__title {
    font-size: 24px;
    line-height: 1.5;
    padding-bottom: 6px;
    margin-bottom: 20px;
  }
  .page-works .works-customize__title::after {
    height: 6px;
  }
  .page-works .works-customize__text {
    font-size: 14px;
    line-height: 1.95;
  }
  .page-works .works-customize__image,
  .page-works .works-customize__image--small {
    width: 100%;
    max-width: 260px;
    margin: 0 auto;
  }
}
.page-works .works-contact {
  padding: 80px 140px;
  border-radius: 14px;
}
.page-works .works-contact__inner {
  width: 100%;
  background-color: #ECECEC;
  padding: 3rem 8rem;
  max-width: 1160px;
}
.page-works .works-contact__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0;
  color: #333333;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.page-works .works-contact__title-icon {
  display: block;
  flex-shrink: 0;
  width: 45px;
  height: 45px;
}
.page-works .works-contact__body {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 42px;
  margin-top: 34px;
  padding-left: 14px;
}
.page-works .works-contact__lead {
  display: flex;
  align-items: flex-start;
  gap: 27px;
  padding-top: 14px;
  min-width: 0;
  max-width: 480px;
}
.page-works .works-contact__character {
  flex-shrink: 0;
  width: 125px;
}
.page-works .works-contact__character img {
  display: block;
  width: 100%;
  height: auto;
}
.page-works .works-contact__text {
  flex: 1;
  margin: 0;
  color: #333333;
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.01em;
}
.page-works .works-contact__image {
  flex-shrink: 0;
  width: 500px;
  border-radius: 22px;
  overflow: hidden;
}
.page-works .works-contact__image img {
  display: block;
  width: 100%;
  height: auto;
}
.page-works {
  /* tablet */
}
@media screen and (max-width: 991px) {
  .page-works .works-contact {
    padding: 28px 28px 32px;
  }
  .page-works .works-contact__title {
    font-size: 22px;
  }
  .page-works .works-contact__body {
    gap: 28px;
    padding-left: 0;
  }
  .page-works .works-contact__lead {
    gap: 20px;
  }
  .page-works .works-contact__character {
    width: 120px;
  }
  .page-works .works-contact__text {
    max-width: 260px;
    font-size: 16px;
  }
  .page-works .works-contact__image {
    width: 320px;
  }
}
.page-works {
  /* mobile */
}
@media screen and (max-width: 767px) {
  .page-works .works-contact {
    padding: 24px 20px 28px;
    border-radius: 12px;
  }
  .page-works .works-contact__title {
    align-items: flex-start;
    gap: 10px;
    font-size: 20px;
    line-height: 1.5;
  }
  .page-works .works-contact__title-icon {
    width: 38px;
    height: 38px;
    margin-top: 2px;
  }
  .page-works .works-contact__body {
    flex-direction: column;
    gap: 28px;
    margin-top: 24px;
  }
  .page-works .works-contact__lead {
    gap: 16px;
    padding-top: 0;
  }
  .page-works .works-contact__character {
    width: 96px;
  }
  .page-works .works-contact__text {
    max-width: none;
    font-size: 15px;
    line-height: 1.8;
  }
  .page-works .works-contact__image {
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
    border-radius: 18px;
  }
}
.page-works .works-integration {
  z-index: 100;
  position: relative;
  background: #ececec;
  padding: 32px 30px 28px;
  margin-bottom: 3.2rem;
}
.page-works .works-integration__inner {
  width: 100%;
}
.page-works .works-integration__heading {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 0;
}
.page-works .works-integration__heading-icon {
  display: block;
  flex-shrink: 0;
  width: 34px;
  height: auto;
}
.page-works .works-integration__heading-text {
  color: #333333;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.01em;
}
.page-works .works-integration__body {
  display: flex;
  align-items: flex-start;
  gap: 52px;
  margin-top: 30px;
}
.page-works .works-integration__visual-wrap {
  flex-shrink: 0;
  width: 483px;
}
.page-works .works-integration__visual {
  width: 100%;
  aspect-ratio: 483/316;
  background: #cfcfcf;
  border-radius: 18px;
}
.page-works .works-integration__note {
  margin: 10px 4px 0 0;
  color: #9a9a9a;
  font-size: 14px;
  line-height: 1.4;
  text-align: right;
}
.page-works .works-integration__content {
  flex: 1;
  min-width: 0;
  padding-top: 4px;
}
.page-works .works-integration__meta {
  margin: 0;
}
.page-works .works-integration__meta-row {
  display: flex;
  align-items: center;
  min-height: 62px;
  border-bottom: 2px solid #d1d1d1;
}
.page-works .works-integration__meta-row + .works-integration__meta-row {
  margin-top: 0;
}
.page-works .works-integration__meta-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 136px;
  height: 28px;
  margin: 0;
  background: #313131;
  border-radius: 3px;
  color: #ffffff;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
}
.page-works .works-integration__meta-value {
  margin: 0 0 0 16px;
  color: #3a3a3a;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.5;
}
.page-works .works-integration__text {
  margin-top: 28px;
}
.page-works .works-integration__text p {
  margin: 0;
  color: #444444;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0.01em;
}
.page-works .works-integration__text p + p {
  margin-top: 6px;
}
.page-works {
  /* tablet */
}
@media screen and (max-width: 1024px) {
  .page-works .works-integration {
    padding: 28px 24px 24px;
  }
  .page-works .works-integration__heading {
    gap: 14px;
  }
  .page-works .works-integration__heading-text {
    font-size: 21px;
  }
  .page-works .works-integration__body {
    gap: 32px;
  }
  .page-works .works-integration__visual-wrap {
    width: 420px;
  }
  .page-works .works-integration__meta-label {
    width: 124px;
    font-size: 15px;
  }
  .page-works .works-integration__meta-value {
    font-size: 16px;
  }
  .page-works .works-integration__text p {
    font-size: 16px;
  }
}
.page-works {
  /* mobile */
}
@media screen and (max-width: 767px) {
  .page-works .works-integration {
    padding: 24px 20px;
  }
  .page-works .works-integration__heading {
    align-items: flex-start;
    gap: 12px;
  }
  .page-works .works-integration__heading-text {
    font-size: 20px;
    line-height: 1.5;
  }
  .page-works .works-integration__body {
    flex-direction: column;
    gap: 24px;
    margin-top: 24px;
  }
  .page-works .works-integration__visual-wrap {
    width: 100%;
  }
  .page-works .works-integration__visual {
    border-radius: 14px;
  }
  .page-works .works-integration__note {
    font-size: 13px;
  }
  .page-works .works-integration__meta-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 0;
    min-height: auto;
  }
  .page-works .works-integration__meta-label {
    width: auto;
    min-width: 120px;
    padding: 0 16px;
  }
  .page-works .works-integration__meta-value {
    margin-left: 0;
    font-size: 15px;
  }
  .page-works .works-integration__meta-value--logo img {
    width: 180px;
  }
  .page-works .works-integration__text {
    margin-top: 22px;
  }
  .page-works .works-integration__text p {
    font-size: 15px;
    line-height: 1.8;
  }
}
.page-works .works-faq {
  background: #efefef;
  padding: 10px 0 22px;
}
.page-works .works-faq__inner {
  width: min(100%, 1088px);
  margin: 0 auto;
  padding: 0 30px;
}
.page-works .works-faq__title {
  margin: 0 0 60px;
  color: #000000;
  font-size: 31px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
  text-align: center;
}
.page-works .works-faqAccordion {
  --bs-accordion-border-color: transparent;
  --bs-accordion-btn-focus-box-shadow: none;
  --bs-accordion-inner-border-radius: 0;
  --bs-accordion-btn-icon: none;
  --bs-accordion-btn-active-icon: none;
}
.page-works .works-faqAccordion__item {
  margin: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
}
.page-works .works-faqAccordion__item + .works-faqAccordion__item {
  margin-top: 12px;
}
.page-works .works-faqAccordion__header {
  margin: 0;
}
.page-works .works-faqAccordion__button {
  position: relative;
  display: block;
  width: 100%;
  padding: 20px 84px 20px 34px;
  background: #f4f4f4;
  border: 0;
  border-radius: 16px;
  box-shadow: none;
  color: inherit;
}
.page-works .works-faqAccordion__button:not(.collapsed) {
  background: #f4f4f4;
  box-shadow: none;
  color: inherit;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.page-works .works-faqAccordion__button::after {
  content: "+";
  position: absolute;
  top: 27px;
  right: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 29px;
  height: 29px;
  margin: 0;
  background-image: none;
  background-color: #3a3a3a;
  border-radius: 2px;
  color: #ffffff;
  font-size: 25px;
  font-weight: 400;
  line-height: 1;
  transform: none;
}
.page-works .works-faqAccordion__button:not(.collapsed)::after {
  content: "−";
  background-image: none;
  background-color: #a8a8a8;
  color: #ffffff;
  transform: none;
}
.page-works .works-faqAccordion__buttonInner {
  display: flex;
  align-items: center;
  gap: 20px;
  min-width: 0;
}
.page-works .works-faqAccordion__icon,
.page-works .works-faqAccordion__answerIcon {
  flex: 0 0 44px;
  width: 44px;
}
.page-works .works-faqAccordion__icon img,
.page-works .works-faqAccordion__answerIcon img {
  display: block;
  width: 100%;
  height: auto;
}
.page-works .works-faqAccordion__question {
  color: #111111;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.01em;
  text-align: left;
}
.page-works .works-faqAccordion__body {
  padding: 0 34px 20px;
  background: #f4f4f4;
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px;
}
.page-works .works-faqAccordion__answerRow {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 15px 0 0;
  border-top: 1px solid #d7d7d7;
}
.page-works .works-faqAccordion__answerText {
  margin: 8px 0 0;
  color: #111111;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.01em;
}
.page-works {
  /* tablet */
}
@media screen and (max-width: 991px) {
  .page-works .works-faq {
    padding: 16px 0 24px;
  }
  .page-works .works-faq__inner {
    padding: 0 20px;
  }
  .page-works .works-faq__title {
    margin-bottom: 40px;
    font-size: 28px;
  }
  .page-works .works-faqAccordion__button {
    padding: 18px 72px 18px 24px;
    border-radius: 14px;
  }
  .page-works .works-faqAccordion__button:not(.collapsed) {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
  .page-works .works-faqAccordion__button::after {
    top: 24px;
    right: 24px;
  }
  .page-works .works-faqAccordion__question {
    font-size: 17px;
  }
  .page-works .works-faqAccordion__body {
    padding: 0 24px 18px;
    border-bottom-left-radius: 14px;
    border-bottom-right-radius: 14px;
  }
  .page-works .works-faqAccordion__answerText {
    font-size: 16px;
  }
}
.page-works {
  /* mobile */
}
@media screen and (max-width: 767px) {
  .page-works .works-faq__title {
    margin-bottom: 28px;
    font-size: 24px;
  }
  .page-works .works-faqAccordion__item + .works-faqAccordion__item {
    margin-top: 10px;
  }
  .page-works .works-faqAccordion__button {
    padding: 16px 58px 16px 16px;
    border-radius: 12px;
  }
  .page-works .works-faqAccordion__button::after {
    top: 20px;
    right: 16px;
    width: 26px;
    height: 26px;
    font-size: 22px;
  }
  .page-works .works-faqAccordion__buttonInner,
  .page-works .works-faqAccordion__answerRow {
    gap: 14px;
  }
  .page-works .works-faqAccordion__icon,
  .page-works .works-faqAccordion__answerIcon {
    flex-basis: 38px;
    width: 38px;
  }
  .page-works .works-faqAccordion__question {
    font-size: 15px;
    line-height: 1.7;
  }
  .page-works .works-faqAccordion__body {
    padding: 0 16px 16px;
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
  }
  .page-works .works-faqAccordion__answerRow {
    padding-top: 14px;
  }
  .page-works .works-faqAccordion__answerText {
    margin-top: 4px;
    font-size: 14px;
    line-height: 1.8;
  }
}

/* =========================
  対象サービス 製品ロゴサイズ統一
  Freshsales Suiteを基準に調整
========================= */
.works-integration__meta-value--logo {
  display: flex;
  align-items: center;
  min-height: 3.6rem;
}
.works-integration__meta-value--logo img {
  display: block;
  width: auto !important;
  max-width: none;
  -o-object-fit: contain;
     object-fit: contain;
}
.works-integration__meta-value--logo {
  /* 基準：Freshsales Suite */
}
.works-integration__meta-value--logo img[src*=works-freshsalesSuit] {
  height: 2.6rem !important;
}
.works-integration__meta-value--logo {
  /* Freshdeskは基準より少し小さく */
}
.works-integration__meta-value--logo img[src*=freshdesk-logo] {
  height: 2.5rem !important;
}
.works-integration__meta-value--logo {
  /* Freshchatも基準より少し小さく */
}
.works-integration__meta-value--logo img[src*=freshchat_logo] {
  height: 2.5rem !important;
}

@media screen and (max-width: 767px) {
  .works-integration__meta-value--logo {
    min-height: 3.2rem;
  }
  .works-integration__meta-value--logo img[src*=works-freshsalesSuit] {
    height: 2.4rem !important;
  }
  .works-integration__meta-value--logo img[src*=freshdesk-logo],
  .works-integration__meta-value--logo img[src*=freshchat_logo] {
    height: 2.1rem !important;
  }
}
/* ==========================================
   右側（横長カード）のタイトル位置を統一
========================================== */
.supportFlow__step--wide .supportFlow__wideStep {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}
.supportFlow__step--wide .supportFlow__stepTitle {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.4rem;
  margin: 0 0 1rem;
  line-height: 1.2;
}
.supportFlow__step--wide .supportFlow__wideBottom {
  margin-top: 0;
  min-height: 3.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* foundation */
.page-manifest {
  --manifest-black: #000;
  --manifest-white: #fff;
  --manifest-gray: #eaecef;
  --manifest-light: #fbfbfb;
  --manifest-dark: #333;
  color: var(--manifest-black);
  background: var(--manifest-white);
  font-family: "Noto Sans JP", sans-serif;
}
.page-manifest img {
  display: block;
  max-width: 100%;
  height: auto;
}
.page-manifest {
  /* =========================
    philosophy
  ========================= */
}
.page-manifest .manifestHero {
  background: var(--manifest-gray);
  padding: 10.6rem 10rem 18.1rem;
}
.page-manifest .manifestHero__inner {
  max-width: 124rem;
  margin: 0 auto;
}
.page-manifest .manifestHero__message {
  text-align: center;
  margin-bottom: 3.9rem;
}
.page-manifest .manifestHero__message p {
  margin: 0;
  font-family: "Shippori Mincho", serif;
  font-size: 4.8rem;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.page-manifest .manifestHero__message p:last-child {
  font-size: 3.6rem;
}
.page-manifest .manifestHero__content {
  display: grid;
  grid-template-columns: 34.7rem 1fr;
  gap: 15rem;
  align-items: center;
}
.page-manifest .manifestHero__titleBlock {
  width: -moz-max-content;
  width: max-content;
  text-align: center;
}
.page-manifest .manifestHero__title {
  margin: 0 0 4.2rem;
  font-family: "Zen Old Mincho", serif;
  font-size: 6.4rem;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-align: left;
}
.page-manifest .manifestHero__jp {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-size: 2.56rem;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0.35em;
  text-align: center;
}
.page-manifest .manifestHero__body {
  padding-left: 15rem;
  font-family: "Shippori Mincho", serif;
  font-size: 2.4rem;
  line-height: 1.65;
  letter-spacing: 0.02em;
}
.page-manifest .manifestHero__body p {
  margin: 0;
}
.page-manifest {
  /* =========================
    common section
  ========================= */
}
.page-manifest .manifestSection {
  padding: 4.8rem 7rem;
  overflow: hidden;
}
.page-manifest .manifestSection--white {
  background: var(--manifest-light);
}
.page-manifest .manifestSection--gray {
  background: var(--manifest-gray);
}
.page-manifest .manifestSection--dark {
  background: var(--manifest-dark);
  color: var(--manifest-white);
}
.page-manifest .manifestSection__inner {
  max-width: 130rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 54rem;
  gap: 5.2rem;
  align-items: center;
}
.page-manifest .manifestSection--reverse .manifestSection__inner {
  grid-template-columns: 54rem 1fr;
}
.page-manifest .manifestSection__text {
  min-width: 0;
  text-align: left;
}
.page-manifest .manifestSection__title {
  width: -moz-max-content;
  width: max-content;
  margin: 0 0 1.6rem;
  font-family: "Zen Old Mincho", serif;
  font-size: 5.8rem;
  line-height: 1;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-align: left;
}
.page-manifest .manifestSection__jp {
  width: -moz-max-content;
  width: max-content;
  min-width: 100%;
  max-width: -moz-max-content;
  max-width: max-content;
  margin: 0 0 4.8rem;
  font-family: "Zen Old Mincho", serif;
  font-size: 2rem;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0.35em;
  text-align: center;
}
.page-manifest .manifestSection__body {
  font-family: "Shippori Mincho", serif;
  font-size: 1.9rem;
  line-height: 2.2;
  letter-spacing: 0.02em;
}
.page-manifest .manifestSection__body p {
  margin: 0;
}
.page-manifest .manifestSection__catch {
  margin: 0 0 4rem;
  font-family: "Shippori Mincho", serif;
  font-size: 2.2rem;
  line-height: 2;
  letter-spacing: 0.02em;
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}
.page-manifest .manifestSection__catch p {
  margin: 0;
}
.page-manifest .manifestSection__image {
  width: 48rem;
  margin: 0;
}
.page-manifest .manifestSection__image img {
  width: 100%;
  aspect-ratio: 539/354;
  -o-object-fit: cover;
     object-fit: cover;
}
.page-manifest .manifestSection--dark .manifestSection__image img {
  aspect-ratio: 539/381;
}
.page-manifest {
  /* issueなどの日本語見出しを英語幅の中央にする */
}
.page-manifest .manifestSection__titleWrap {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}
.page-manifest .manifestSection__title {
  margin-bottom: 1.6rem;
}
.page-manifest .manifestSection__jp {
  margin: 0;
  text-align: center;
}
.page-manifest {
  /* =========================
    commitment
  ========================= */
}
.page-manifest .manifestCommitment {
  background: var(--manifest-gray);
  padding: 7rem 12.9rem 7rem 22.8rem;
}
.page-manifest .manifestCommitment__inner {
  max-width: 108.3rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 5.8rem;
  align-items: start;
}
.page-manifest .manifestCommitment__title {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-size: 6.4rem;
  line-height: 1;
  font-weight: 400;
  letter-spacing: 0.1em;
}
.page-manifest .manifestCommitment__jp {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-size: 2.56rem;
  line-height: 1.25;
  font-weight: 400;
  letter-spacing: 0.35em;
  text-align: center;
}
.page-manifest .manifestCommitment__body {
  font-family: "Shippori Mincho", serif;
  font-size: 2.4rem;
  line-height: 1.65;
  letter-spacing: 0.02em;
}
.page-manifest .manifestCommitment__body p {
  margin: 0;
}
.page-manifest {
  /* =========================
    CTA
  ========================= */
}
.page-manifest .manifestCta {
  background: var(--manifest-white);
  padding: 3.8rem 0 8rem;
  text-align: center;
}
.page-manifest .manifestCta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  min-width: 46.7rem;
  padding: 1.8rem 3.2rem;
  background: #222;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.page-manifest .manifestCta__button:hover {
  color: #fff;
  opacity: 0.8;
}
@media (max-width: 768px) {
  .page-manifest .manifestHero {
    padding: 5rem 3rem 8rem;
  }
  .page-manifest .manifestHero__message p {
    font-size: 3rem;
  }
  .page-manifest .manifestHero__message p:last-child {
    font-size: 2rem;
  }
  .page-manifest .manifestHero__content {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .page-manifest .manifestHero__title {
    font-size: 4.2rem;
    margin-bottom: 1rem;
  }
  .page-manifest .manifestHero__jp {
    font-size: 2.2rem;
  }
  .page-manifest .manifestHero__body {
    padding-left: 0;
    font-size: 2rem;
  }
  .page-manifest .manifestSection {
    padding: 4rem 3rem;
  }
  .page-manifest .manifestSection__inner, .page-manifest .manifestSection--reverse .manifestSection__inner {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .page-manifest .manifestSection--reverse .manifestSection__image {
    order: 2;
  }
  .page-manifest .manifestSection--reverse .manifestSection__text {
    order: 1;
  }
  .page-manifest .manifestSection__title {
    font-size: 4.2rem;
  }
  .page-manifest .manifestSection__jp {
    font-size: 2rem;
    margin-bottom: 2.4rem;
    transform: none;
    margin-left: 0;
  }
  .page-manifest .manifestSection__body {
    font-size: 1.8rem;
  }
  .page-manifest .manifestSection__catch {
    font-size: 2.4rem;
  }
  .page-manifest .manifestSection__image {
    width: 100%;
  }
  .page-manifest .manifestCommitment {
    padding: 4rem 3rem;
  }
  .page-manifest .manifestCommitment__inner {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }
  .page-manifest .manifestCommitment__title {
    font-size: 4.2rem;
  }
  .page-manifest .manifestCommitment__jp {
    font-size: 2rem;
  }
  .page-manifest .manifestCommitment__body {
    font-size: 1.8rem;
  }
  .page-manifest .manifestCta {
    padding: 3rem 3rem 5rem;
  }
  .page-manifest .manifestCta__button {
    min-width: 100%;
  }
}

/* foundation */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Noto Sans JP", "Yu Gothic UI", sans-serif;
  overflow-x: hidden;
}

/* ============================================================
   1. HERO SECTION
   ============================================================ */
.hero-section {
  position: relative;
  width: 100%;
  min-height: 100vh;
  background: white;
  overflow: hidden;
  padding-bottom: 60px;
}

.hero-section .bg-decorative {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 56.47%;
  background: rgba(219, 234, 254, 0.5);
  border-bottom-left-radius: 100px;
}

.hero-section .bg-gradients {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background-image: radial-gradient(ellipse at 30% 90%, rgba(144, 190, 239, 0.02) 0%, rgb(144, 190, 239) 100%), radial-gradient(ellipse at 1.5% 57%, rgb(251, 242, 223) 1.5%, rgba(251, 242, 223, 0) 100%), radial-gradient(ellipse at 3% 95%, rgb(237, 248, 252) 88%, rgba(237, 248, 252, 0.1) 100%);
}

/* Header */
.header {
  position: relative;
  z-index: 10;
  height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.header-shadow {
  position: absolute;
  top: -4px;
  left: 0;
  width: 100%;
  height: 66px;
  overflow: hidden;
  pointer-events: none;
}

.header-shadow img {
  position: absolute;
  top: -3.03%;
  left: -0.41%;
  width: 100.82%;
  height: 118.18%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}

.logo-wrapper {
  display: flex;
  align-items: flex-start;
  padding: 10px;
  z-index: 2;
  flex-shrink: 0;
}

.logo {
  width: 198px;
  height: 52px;
  overflow: hidden;
}

.logo img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}

.nav {
  display: flex;
  align-items: center;
  gap: 27px;
  z-index: 2;
  padding-right: 20px;
}

.nav-link {
  font-weight: 600;
  font-size: 16px;
  color: #475569;
  text-decoration: none;
  line-height: 24px;
  white-space: nowrap;
}

.nav-link:hover {
  color: #1e40af;
}

.nav-btn-outline {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  padding: 0 20px;
  background: white;
  border: 1px solid #2563eb;
  border-radius: 9999px;
  font-weight: bold;
  font-size: 16px;
  color: #2563eb;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.2s;
}

.nav-btn-outline:hover {
  background-color: #eff6ff;
}

.nav-btn-primary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: 42px;
  padding: 0 16px 0 20px;
  background: #f97316;
  border: none;
  border-radius: 9999px;
  font-weight: bold;
  font-size: 16px;
  color: white;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0px 4px 6px -1px rgba(0, 0, 0, 0.1), 0px 2px 4px -2px rgba(0, 0, 0, 0.1);
  transition: opacity 0.2s;
}

.nav-btn-primary:hover {
  opacity: 0.9;
}

.nav-btn-primary-arrow {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
  z-index: 20;
}

.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: #475569;
  border-radius: 2px;
  transition: transform 0.3s, opacity 0.3s;
}

.mobile-menu {
  display: none;
}

/* Hero content */
.hero-content-wrapper {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: flex-start;
  gap: 48px;
  padding: 94px 74px 0;
}

.hero-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
  flex: 0 1 617px;
  min-width: 0;
  height: 405px;
}

.badge {
  background: #dbeafe;
  border-radius: 9999px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  padding: 0 16px;
  flex-shrink: 0;
}

.badge span {
  font-weight: bold;
  font-size: 14px;
  color: #1d4ed8;
  line-height: 20px;
  white-space: nowrap;
}

.main-heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 60px;
  color: #0f172a;
  line-height: 60px;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.highlight {
  color: #5d8cf3;
  text-decoration: underline;
  text-decoration-color: #fb923c;
  text-decoration-thickness: 3px;
  text-underline-offset: 4px;
}

.hero-desc {
  font-weight: 400;
  font-size: 18px;
  color: #475569;
  line-height: 29.25px;
  height: 99px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  flex-shrink: 0;
}

.hero-desc p {
  margin: 0;
}

.question-card {
  background: white;
  border-radius: 29px;
  padding: 12px 77px 35px 39px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex-shrink: 0;
  width: 690px;
  height: 278px;
  margin-top: 64px;
}

.question-card-title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 900;
  font-size: 32px;
  color: #1c1917;
  line-height: 40px;
  letter-spacing: 0.32px;
  height: 71px;
  display: flex;
  align-items: center;
}

.question-card-body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 20px;
  color: black;
  line-height: 40px;
  letter-spacing: 0.32px;
}

.question-card-body p {
  margin: 0;
}

.red-text {
  color: #ea4a47;
}

.hero-buttons {
  position: relative;
  z-index: 5;
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: center;
  padding: 70px 74px 0;
  flex-wrap: wrap;
}

.btn-primary {
  width: 319px;
  height: 92px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.002) 0%, rgba(255, 255, 255, 0.002) 100%), linear-gradient(90deg, #f97316 0%, #f97316 100%);
  border-radius: 9999px;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px 32px 20px 34px;
  box-shadow: 0px 10px 15px 0px rgba(0, 0, 0, 0.1), 0px 4px 6px 0px rgba(0, 0, 0, 0.1);
  transition: opacity 0.2s;
}

.btn-primary:hover {
  opacity: 0.9;
}

.btn-primary-text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: bold;
  font-size: 18px;
  color: white;
  text-align: center;
  line-height: 28px;
  flex: 1;
}

.btn-primary-arrow {
  width: 16.36px;
  height: 20px;
  flex-shrink: 0;
}

.btn-secondary {
  width: 323px;
  height: 92px;
  background: white;
  border: 2px solid #2563eb;
  border-radius: 9999px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 32px 34px;
  box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.05);
  transition: background-color 0.2s;
}

.btn-secondary:hover {
  background-color: #eff6ff;
}

.btn-secondary-icon {
  width: 16.33px;
  height: 20px;
  flex-shrink: 0;
}

.btn-secondary-text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: bold;
  font-size: 18px;
  color: #2563eb;
  text-align: center;
  line-height: 28px;
  flex: 1;
}

/* ============================================================
   2. PROBLEM SECTION
   ============================================================ */
.problem-section {
  background: white;
  width: 100%;
  padding: 74px 170px 80px;
}

.problem-section .section-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
  text-align: center;
  margin-bottom: 52px;
}

.problem-section .section-title {
  font-weight: 700;
  font-size: 36px;
  color: #0f172a;
  line-height: 40px;
}

.problem-section .section-title .accent {
  color: #2563eb;
}

.problem-section .section-subtitle {
  font-weight: 400;
  font-size: 18px;
  color: #475569;
  line-height: 28px;
}

.cards {
  display: flex;
  gap: 59px;
  justify-content: center;
  align-items: stretch;
}

.card {
  background: #f8fafc;
  border: 1px solid #f1f5f9;
  border-radius: 16px;
  box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.05);
  overflow: hidden;
  flex: 1;
  max-width: 348px;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 32px 24px;
  gap: 16px;
}

.card-icon {
  width: 64px;
  height: 64px;
  background: #dbeafe;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.card-icon svg {
  width: 32px;
  height: 32px;
}

.card-title {
  font-weight: bold;
  font-size: 18px;
  color: #1e293b;
  line-height: 28px;
  text-align: center;
}

.card-text {
  font-weight: 400;
  font-size: 14px;
  color: #475569;
  line-height: 20px;
  text-align: center;
}

/* ============================================================
   3. CONCEPT SECTION
   ============================================================ */
.concept-section {
  position: relative;
  width: 100%;
  background: #0f172a;
  overflow: hidden;
  padding: 80px 106px;
}

.concept-section .bg-blur {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 384px;
  height: 384px;
  background: #ea580c;
  border-radius: 9999px;
  filter: blur(32px);
  opacity: 0.2;
  mix-blend-mode: multiply;
  pointer-events: none;
}

.concept-section .section-title {
  font-weight: bold;
  font-size: 36px;
  color: white;
  text-align: center;
  line-height: 40px;
  margin-bottom: 32px;
  position: relative;
  z-index: 1;
}

.glass-card {
  position: relative;
  z-index: 1;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 16px;
  margin: 0 32px;
  padding: 36px 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.text-block {
  padding: 10px 191px;
  font-family: "Sawarabi Gothic", "Noto Sans JP", sans-serif;
  font-size: 20px;
  color: white;
  line-height: 28px;
}

.text-block .accent-orange {
  color: #fb923c;
}

.text-block .accent-warm {
  color: #ea8c5e;
}

.quote-block {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding: 25px 40px;
  margin: 20px 0;
}

.quote-text {
  font-weight: bold;
  font-size: 20px;
  color: #93c5fd;
  text-align: center;
  line-height: 28px;
}

/* ============================================================
   4. SOLUTION SECTION
   ============================================================ */
.solution-section {
  background: #eff6ff;
  width: 100%;
  padding: 80px 42px;
}

.solution-section .section-header {
  text-align: center;
  margin-bottom: 16px;
}

.solution-section .section-title {
  font-weight: bold;
  font-size: 36px;
  color: #0f172a;
  line-height: 40px;
  margin-bottom: 8px;
}

.solution-section .section-title .accent {
  color: #2563eb;
}

.solution-section .section-subtitle {
  font-weight: 400;
  font-size: 18px;
  color: #475569;
  line-height: 28px;
}

.feature-area {
  display: flex;
  align-items: flex-start;
  gap: 48px;
  padding: 0 32px;
  margin-top: 48px;
}

.dashboard-image {
  flex-shrink: 0;
  width: 520px;
  border-radius: 16px;
  border: 4px solid white;
  box-shadow: 0px 20px 25px -5px rgba(0, 0, 0, 0.1), 0px 8px 10px -6px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

.dashboard-image img {
  width: 100%;
  height: auto;
  display: block;
}

.feature-list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.feature-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}

.feature-icon {
  width: 48px;
  height: 48px;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}

.feature-icon svg {
  width: 24px;
  height: 24px;
}

.feature-icon-blue {
  background: #dbeafe;
}

.feature-icon-orange {
  background: #ffedd5;
}

.feature-icon-green {
  background: #dcfce7;
}

.feature-content {
  flex: 1;
}

.feature-title {
  font-weight: bold;
  font-size: 20px;
  color: #0f172a;
  line-height: 28px;
  margin-bottom: 4px;
}

.feature-text {
  font-weight: 400;
  font-size: 16px;
  color: #475569;
  line-height: 24px;
}

.cta-card {
  background: white;
  border: 1px solid #f1f5f9;
  border-radius: 16px;
  box-shadow: 0px 10px 15px -3px rgba(0, 0, 0, 0.1), 0px 4px 6px -4px rgba(0, 0, 0, 0.1);
  margin: 56px 192px 0;
  padding: 40px 32px;
  text-align: center;
}

.cta-card .cta-card-title {
  font-weight: bold;
  font-size: 24px;
  color: #1e293b;
  line-height: 32px;
  margin-bottom: 12px;
}

.cta-card .cta-card-subtitle {
  font-weight: 400;
  font-size: 16px;
  color: #475569;
  line-height: 24px;
  margin-bottom: 24px;
}

.cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 60px;
  padding: 0 32px;
  background: #f97316;
  border: none;
  border-radius: 9999px;
  box-shadow: 0px 10px 15px -3px rgba(0, 0, 0, 0.1), 0px 4px 6px -4px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  transition: opacity 0.2s;
}

.cta-button:hover {
  opacity: 0.9;
}

.cta-button-text {
  font-weight: bold;
  font-size: 18px;
  color: white;
  line-height: 28px;
  white-space: nowrap;
}

.cta-button-arrow {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

/* ============================================================
   5. FLOW SECTION
   ============================================================ */
.flow-section {
  background: white;
  width: 100%;
  padding: 80px 42px;
}

.flow-section .section-header {
  text-align: center;
  margin-bottom: 60px;
}

.flow-section .section-title {
  font-weight: bold;
  font-size: 36px;
  color: #0f172a;
  line-height: 40px;
  margin-bottom: 18px;
}

.flow-section .section-subtitle {
  font-weight: 400;
  font-size: 18px;
  color: #475569;
  line-height: 28px;
}

.steps-wrapper {
  position: relative;
  padding: 0 32px;
}

.connecting-line {
  position: absolute;
  top: 56px;
  left: 32px;
  right: 32px;
  height: 4px;
  background: #dbeafe;
  z-index: 0;
}

.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  position: relative;
  z-index: 1;
}

.step-card {
  background: white;
  border: 1px solid #f1f5f9;
  border-radius: 16px;
  box-shadow: 0px 4px 6px -1px rgba(0, 0, 0, 0.1), 0px 2px 4px -2px rgba(0, 0, 0, 0.1);
  padding: 32px 16px 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.step-number {
  width: 48px;
  height: 48px;
  background: #2563eb;
  border: 4px solid white;
  border-radius: 9999px;
  box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 20px;
  color: white;
  line-height: 28px;
  margin-bottom: 8px;
}

.step-icon {
  width: 64px;
  height: 64px;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}

.step-icon svg {
  width: 28px;
  height: 28px;
}

.step-icon-gray {
  background: #f8fafc;
}

.step-icon-warm {
  background: #fff7ed;
}

.step-title {
  font-weight: bold;
  font-size: 18px;
  color: #1e293b;
  line-height: 28px;
  margin-bottom: 8px;
}

.step-text {
  font-weight: 400;
  font-size: 14px;
  color: #475569;
  line-height: 20px;
}

/* ============================================================
   6. BOTTOM CTA SECTION
   ============================================================ */
.bottom-cta-section {
  position: relative;
  width: 100%;
  background: #2563eb;
  overflow: hidden;
  padding: 80px 170px;
}

.bottom-cta-section::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.1;
  background: radial-gradient(ellipse at 100% 50%, rgb(255, 255, 255) 0%, rgba(255, 255, 255, 0) 50%);
  pointer-events: none;
}

.bottom-cta-container {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.bottom-cta-title {
  font-weight: bold;
  font-size: 48px;
  color: white;
  line-height: 48px;
  margin-bottom: 24px;
}

.bottom-cta-subtitle {
  font-weight: 400;
  font-size: 20px;
  color: #dbeafe;
  line-height: 28px;
  margin-bottom: 40px;
}

.bottom-cta-buttons {
  display: flex;
  gap: 25px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.bottom-cta-btn-primary {
  width: 307px;
  height: 68px;
  background: #f97316;
  border: none;
  border-radius: 9999px;
  cursor: pointer;
  font-weight: bold;
  font-size: 20px;
  color: white;
  line-height: 28px;
  text-align: center;
  transition: opacity 0.2s;
}

.bottom-cta-btn-primary:hover {
  opacity: 0.9;
}

.bottom-cta-btn-secondary {
  width: 307px;
  height: 68px;
  background: white;
  border: none;
  border-radius: 9999px;
  cursor: pointer;
  font-weight: bold;
  font-size: 20px;
  color: #1d4ed8;
  line-height: 28px;
  text-align: center;
  transition: opacity 0.2s;
}

.bottom-cta-btn-secondary:hover {
  opacity: 0.9;
}

.bottom-cta-note {
  font-size: 14px;
  color: #fefcbf;
  line-height: 20px;
  text-align: center;
}

/* ============================================================
   7. FOOTER
   ============================================================ */
.footer {
  background: white;
  width: 100%;
  padding: 57px 95px 40px;
}

.footer-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #1e293b;
  padding-bottom: 18px;
  margin-bottom: 20px;
}

.footer-logo {
  height: 52px;
  flex-shrink: 0;
}

.footer-logo img {
  height: 100%;
  width: auto;
  display: block;
}

.footer-links {
  display: flex;
  align-items: center;
  gap: 24px;
}

.footer-link {
  font-weight: 400;
  font-size: 16px;
  color: #94a3b8;
  text-decoration: none;
  line-height: 24px;
  white-space: nowrap;
  transition: color 0.2s;
}

.footer-link:hover {
  color: #64748b;
}

.footer-copyright {
  font-weight: 400;
  font-size: 14px;
  color: #94a3b8;
  line-height: 20px;
  text-align: center;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* --- 1440px --- */
@media (max-width: 1440px) {
  .hero-content-wrapper {
    padding: 70px 50px 0;
    gap: 32px;
  }
  .question-card {
    width: auto;
    flex: 1;
    min-width: 0;
    padding-right: 40px;
    height: auto;
  }
  .hero-buttons {
    padding: 50px 50px 0;
  }
  .problem-section {
    padding: 74px 80px 80px;
  }
  .cards {
    gap: 32px;
  }
  .concept-section {
    padding: 80px 60px;
  }
  .text-block {
    padding: 10px 100px;
  }
  .cta-card {
    margin: 56px 80px 0;
  }
  .bottom-cta-section {
    padding: 80px 80px;
  }
}
/* --- 1200px --- */
@media (max-width: 1200px) {
  .hero-content-wrapper {
    flex-direction: column;
    padding: 50px 40px 0;
  }
  .hero-left {
    flex: none;
    width: 100%;
    max-width: 617px;
    height: auto;
  }
  .question-card {
    width: 100%;
    max-width: 690px;
    margin-top: 0;
    height: auto;
  }
  .hero-buttons {
    padding: 40px 40px 0;
    justify-content: flex-start;
  }
  .hero-section .bg-decorative {
    left: 65%;
  }
  .concept-section {
    padding: 70px 40px;
  }
  .glass-card {
    margin: 0;
  }
  .text-block {
    padding: 10px 60px;
  }
  .quote-block {
    padding: 25px 60px;
  }
  .solution-section {
    padding: 70px 32px;
  }
  .feature-area {
    gap: 32px;
    padding: 0;
  }
  .dashboard-image {
    width: 420px;
  }
  .cta-card {
    margin: 48px 40px 0;
  }
  .flow-section {
    padding: 70px 32px;
  }
  .steps-wrapper {
    padding: 0;
  }
  .connecting-line {
    left: 0;
    right: 0;
  }
  .steps {
    gap: 16px;
  }
}
/* --- 1024px --- */
@media (max-width: 1024px) {
  .main-heading {
    font-size: 48px;
    line-height: 52px;
  }
  .question-card-title {
    font-size: 26px;
    line-height: 36px;
    height: auto;
    padding-bottom: 8px;
  }
  .question-card-body {
    font-size: 17px;
    line-height: 34px;
  }
  .hero-desc {
    height: auto;
  }
  .nav {
    display: none;
  }
  .hamburger {
    display: flex;
  }
  .mobile-menu.active {
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.97);
    z-index: 100;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
  }
  .mobile-menu .nav-link {
    font-size: 20px;
  }
  .mobile-menu .nav-btn-outline, .mobile-menu .nav-btn-primary {
    font-size: 18px;
    height: 48px;
    padding: 0 28px;
  }
  .mobile-menu-close {
    position: absolute;
    top: 16px;
    right: 16px;
    background: none;
    border: none;
    font-size: 32px;
    cursor: pointer;
    color: #475569;
    line-height: 1;
  }
  .problem-section {
    padding: 60px 40px;
  }
  .cards {
    gap: 24px;
  }
  .problem-section .section-title {
    font-size: 30px;
    line-height: 38px;
  }
  .problem-section .section-subtitle {
    font-size: 16px;
    line-height: 26px;
  }
  .card {
    padding: 28px 20px;
  }
  .concept-section .section-title {
    font-size: 30px;
    line-height: 38px;
  }
  .text-block {
    font-size: 18px;
    line-height: 26px;
    padding: 10px 40px;
  }
  .quote-text {
    font-size: 18px;
    line-height: 26px;
  }
  .quote-block {
    padding: 22px 40px;
  }
  .feature-area {
    flex-direction: column;
    align-items: center;
  }
  .dashboard-image {
    width: 100%;
    max-width: 560px;
  }
  .feature-list {
    width: 100%;
    max-width: 560px;
  }
  .solution-section .section-title {
    font-size: 30px;
    line-height: 38px;
  }
  .solution-section .section-subtitle {
    font-size: 16px;
    line-height: 26px;
  }
  .cta-card {
    margin: 48px 20px 0;
  }
  .flow-section .section-title {
    font-size: 30px;
    line-height: 38px;
  }
  .flow-section .section-subtitle {
    font-size: 16px;
    line-height: 26px;
  }
  .steps {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
  .connecting-line {
    display: none;
  }
  .bottom-cta-section {
    padding: 64px 40px;
  }
  .bottom-cta-title {
    font-size: 38px;
    line-height: 44px;
  }
  .bottom-cta-subtitle {
    font-size: 18px;
    line-height: 26px;
  }
  .bottom-cta-btn-primary, .bottom-cta-btn-secondary {
    width: 280px;
    height: 60px;
    font-size: 18px;
  }
  .footer {
    padding: 48px 40px 36px;
  }
}
/* --- 768px --- */
@media (max-width: 768px) {
  .hero-section {
    padding-bottom: 40px;
  }
  .hero-section .bg-decorative {
    display: none;
  }
  .hero-content-wrapper {
    padding: 36px 20px 0;
  }
  .main-heading {
    font-size: 36px;
    line-height: 42px;
  }
  .badge span {
    font-size: 12px;
  }
  .badge {
    height: 28px;
  }
  .hero-desc {
    font-size: 15px;
    line-height: 26px;
  }
  .question-card {
    padding: 12px 20px 25px 20px;
    border-radius: 20px;
  }
  .question-card-title {
    font-size: 22px;
    line-height: 32px;
  }
  .question-card-body {
    font-size: 15px;
    line-height: 30px;
  }
  .hero-buttons {
    padding: 30px 20px 0;
    flex-direction: column;
    align-items: stretch;
  }
  .btn-primary, .btn-secondary {
    width: 100%;
    height: 72px;
    justify-content: center;
  }
  .btn-primary-text, .btn-secondary-text {
    font-size: 16px;
    flex: none;
  }
  .logo {
    width: 150px;
    height: 40px;
  }
  .logo-wrapper {
    padding: 8px;
  }
  .header {
    height: 56px;
  }
  .header-shadow {
    height: 56px;
  }
  .problem-section {
    padding: 48px 20px;
  }
  .problem-section .section-header {
    gap: 16px;
    margin-bottom: 36px;
  }
  .problem-section .section-title {
    font-size: 26px;
    line-height: 34px;
  }
  .problem-section .section-subtitle {
    font-size: 15px;
    line-height: 24px;
  }
  .cards {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }
  .card {
    max-width: 400px;
    width: 100%;
  }
  .concept-section {
    padding: 56px 20px;
  }
  .concept-section .section-title {
    font-size: 26px;
    line-height: 34px;
    margin-bottom: 24px;
  }
  .text-block {
    font-size: 16px;
    line-height: 24px;
    padding: 10px 24px;
  }
  .quote-text {
    font-size: 16px;
    line-height: 24px;
  }
  .quote-block {
    padding: 20px 24px;
  }
  .concept-section .bg-blur {
    width: 240px;
    height: 240px;
  }
  .solution-section {
    padding: 56px 20px;
  }
  .solution-section .section-title {
    font-size: 26px;
    line-height: 34px;
  }
  .solution-section .section-subtitle {
    font-size: 15px;
    line-height: 24px;
  }
  .feature-title {
    font-size: 18px;
  }
  .feature-text {
    font-size: 15px;
    line-height: 22px;
  }
  .cta-card {
    margin: 40px 0 0;
    padding: 32px 20px;
  }
  .cta-card .cta-card-title {
    font-size: 20px;
    line-height: 28px;
  }
  .cta-card .cta-card-subtitle {
    font-size: 14px;
    line-height: 22px;
  }
  .cta-button {
    height: 52px;
    padding: 0 24px;
  }
  .cta-button-text {
    font-size: 16px;
  }
  .flow-section {
    padding: 56px 20px;
  }
  .flow-section .section-header {
    margin-bottom: 40px;
  }
  .flow-section .section-title {
    font-size: 26px;
    line-height: 34px;
  }
  .flow-section .section-subtitle {
    font-size: 15px;
    line-height: 24px;
  }
  .bottom-cta-section {
    padding: 56px 20px;
  }
  .bottom-cta-title {
    font-size: 30px;
    line-height: 38px;
    margin-bottom: 20px;
  }
  .bottom-cta-subtitle {
    font-size: 16px;
    line-height: 24px;
    margin-bottom: 32px;
  }
  .bottom-cta-buttons {
    flex-direction: column;
    gap: 16px;
    width: 100%;
  }
  .bottom-cta-btn-primary, .bottom-cta-btn-secondary {
    width: 100%;
    max-width: 340px;
    height: 56px;
    font-size: 17px;
  }
  .bottom-cta-note {
    font-size: 13px;
  }
  .footer {
    padding: 40px 20px 32px;
  }
  .footer-top {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding-bottom: 20px;
  }
  .footer-links {
    gap: 20px;
  }
  .footer-link {
    font-size: 14px;
  }
}
/* --- 580px --- */
@media (max-width: 580px) {
  .steps {
    grid-template-columns: 1fr;
    max-width: 320px;
    margin: 0 auto;
  }
}
/* --- 480px --- */
@media (max-width: 480px) {
  .main-heading {
    font-size: 28px;
    line-height: 36px;
  }
  .question-card-title {
    font-size: 19px;
    line-height: 28px;
  }
  .question-card-body {
    font-size: 14px;
    line-height: 26px;
  }
  .hero-content-wrapper {
    padding: 28px 16px 0;
  }
  .hero-buttons {
    padding: 24px 16px 0;
  }
  .problem-section {
    padding: 40px 16px;
  }
  .problem-section .section-title {
    font-size: 22px;
    line-height: 30px;
  }
  .problem-section .section-subtitle {
    font-size: 14px;
  }
  .card {
    padding: 24px 16px;
  }
  .card-title {
    font-size: 16px;
  }
  .card-text {
    font-size: 13px;
  }
  .concept-section {
    padding: 44px 12px;
  }
  .concept-section .section-title {
    font-size: 22px;
    line-height: 30px;
    margin-bottom: 20px;
  }
  .text-block {
    font-size: 15px;
    line-height: 23px;
    padding: 8px 16px;
  }
  .quote-text {
    font-size: 15px;
    line-height: 23px;
  }
  .quote-block {
    padding: 16px 16px;
    margin: 14px 0;
  }
  .glass-card {
    padding: 24px 0;
  }
  .concept-section .bg-blur {
    width: 180px;
    height: 180px;
  }
  .solution-section {
    padding: 44px 16px;
  }
  .solution-section .section-title {
    font-size: 22px;
    line-height: 30px;
  }
  .feature-item {
    gap: 12px;
  }
  .feature-icon {
    width: 40px;
    height: 40px;
  }
  .feature-icon svg {
    width: 20px;
    height: 20px;
  }
  .feature-title {
    font-size: 16px;
    line-height: 24px;
  }
  .feature-text {
    font-size: 14px;
    line-height: 21px;
  }
  .cta-card {
    padding: 24px 16px;
  }
  .cta-card .cta-card-title {
    font-size: 18px;
    line-height: 26px;
  }
  .cta-card .cta-card-subtitle {
    font-size: 13px;
  }
  .cta-button {
    height: 48px;
    padding: 0 20px;
  }
  .cta-button-text {
    font-size: 15px;
  }
  .flow-section {
    padding: 44px 16px;
  }
  .flow-section .section-title {
    font-size: 22px;
    line-height: 30px;
  }
  .flow-section .section-subtitle {
    font-size: 14px;
  }
  .bottom-cta-section {
    padding: 44px 16px;
  }
  .bottom-cta-title {
    font-size: 26px;
    line-height: 34px;
  }
  .bottom-cta-subtitle {
    font-size: 15px;
    line-height: 23px;
  }
  .bottom-cta-btn-primary, .bottom-cta-btn-secondary {
    height: 52px;
    font-size: 16px;
  }
  .bottom-cta-note {
    font-size: 12px;
  }
  .footer {
    padding: 32px 16px 28px;
  }
  .footer-links {
    flex-direction: column;
    gap: 12px;
  }
  .footer-copyright {
    font-size: 12px;
  }
  .footer-logo {
    height: 42px;
  }
}
/* ========================================
   saleschart layout adjustment
======================================== */
.page-saleschart .saleschart-page {
  overflow-x: hidden;
}
.page-saleschart {
  /* MV全体を中央寄せ */
}
.page-saleschart .hero-section {
  min-height: auto;
  padding-bottom: 8rem;
}
.page-saleschart .hero-content-wrapper {
  max-width: 1380px;
  margin: 0 auto;
  padding: 9.4rem 6rem 0;
  justify-content: space-between;
  align-items: center;
  gap: 8rem;
}
.page-saleschart {
  /* ボタン位置 */
}
.page-saleschart .hero-buttons {
  max-width: 1380px;
  margin: 0 auto;
  padding: 6rem 6rem 0;
  display: flex;
  justify-content: flex-start;
  gap: 2.4rem;
}
.page-saleschart {
  /* 解決しますセクションを中央寄せ */
}
.page-saleschart .solution-section {
  padding: 8rem 2rem;
}
.page-saleschart .solution-section .section-header,
.page-saleschart .feature-area,
.page-saleschart .cta-card {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}
.page-saleschart .feature-area {
  justify-content: center;
}
.page-saleschart .cta-card {
  margin-top: 5.6rem;
}

.page-saleschart .bottom-cta-btn-primary,
.page-saleschart .bottom-cta-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  line-height: 1;
  text-decoration: none;
}
.page-saleschart .bottom-cta-btn-primary svg,
.page-saleschart .bottom-cta-btn-secondary svg {
  width: 2.4rem;
  height: 2.4rem;
  flex-shrink: 0;
}

/* foundation */
.page-privacy-policy {
  background: #fff;
}

.privacyPolicy {
  padding: 12rem 0 10rem;
  background: #fff;
}
.privacyPolicy__inner {
  max-width: 96rem;
  gap: 5.6rem;
}
.privacyPolicy__header {
  text-align: center;
}
.privacyPolicy__title {
  font-size: 3.5rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #2b2b2b;
}
.privacyPolicy__content {
  gap: 3.6rem;
  color: #2b2b2b;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.02em;
}
.privacyPolicy__content p {
  margin: 0;
}
.privacyPolicy__section {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.privacyPolicy__heading {
  font-size: 2rem;
  line-height: 1.6;
  color: #2b2b2b;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid #dcdcdc;
}
.privacyPolicy__info {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  padding-top: 2rem;
  border-top: 1px solid #dcdcdc;
}
@media (max-width: 768px) {
  .privacyPolicy {
    padding: 8rem 0 7rem;
  }
  .privacyPolicy__inner {
    gap: 4rem;
  }
  .privacyPolicy__title {
    font-size: 2.6rem;
  }
  .privacyPolicy__content {
    gap: 3rem;
    font-size: 1.4rem;
    line-height: 1.9;
  }
  .privacyPolicy__heading {
    font-size: 1.8rem;
  }
}/*# sourceMappingURL=style.css.map */


/* Shared page contact form: modern gray theme */
.contact:not(.contactModal__panel .contact) {
  padding: 80px 0;
  background: #f3f4f6 !important;
}
.contact:not(.contactModal__panel .contact) .contact__inner {
  width: min(980px, calc(100% - 48px));
  padding: 48px 60px 56px;
  border: 1px solid #e1e5ea;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(31, 41, 55, 0.08);
}
.contact:not(.contactModal__panel .contact) .contact__title {
  color: #2f343b;
  font-size: 32px;
  letter-spacing: 0.05em;
}
.contact:not(.contactModal__panel .contact) .contact__note {
  margin: 12px 0 32px;
  color: #68717d;
  font-size: 14px;
}
.contact:not(.contactModal__panel .contact) .contact__noteMark,
.contact:not(.contactModal__panel .contact) .contact__req {
  color: #7b8490;
}
.contact:not(.contactModal__panel .contact) .contact__row {
  gap: 40px;
  padding: 20px 0;
  border-color: #e4e7eb;
}
.contact:not(.contactModal__panel .contact) .contact__label {
  color: #343a42;
  font-size: 15px;
  font-weight: 700;
}
.contact:not(.contactModal__panel .contact) :is(.contact__input, .contact__textarea) {
  width: 100%;
  max-width: none;
  border: 1px solid #ced8e5;
  border-radius: 10px;
  background: #f7f8fa;
  color: #2f3742;
  font-size: 15px;
  line-height: 1.5;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.contact:not(.contactModal__panel .contact) .contact__input {
  height: 46px;
  padding: 12px 14px;
}
.contact:not(.contactModal__panel .contact) .contact__textarea {
  min-height: 200px;
  padding: 12px 14px;
}
.contact:not(.contactModal__panel .contact) :is(.contact__input, .contact__textarea):focus {
  border-color: #8b96a3;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(107, 114, 128, 0.13);
}
.contact:not(.contactModal__panel .contact) .contact__actions {
  padding-top: 36px;
}
.contact:not(.contactModal__panel .contact) .contact__submit {
  width: min(360px, 100%);
  height: 52px;
  border-radius: 10px;
  background-color: #555e69;
  background-image: linear-gradient(90deg, #424a54, #69737f);
  background-position: center;
  color: #fff;
  box-shadow: 0 10px 24px rgba(55, 65, 81, 0.18);
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}
.contact:not(.contactModal__panel .contact) .contact__submit:hover {
  opacity: 0.92;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(55, 65, 81, 0.24);
}
@media (max-width: 860px) {
  .contact:not(.contactModal__panel .contact) {
    padding: 56px 0;
  }
  .contact:not(.contactModal__panel .contact) .contact__inner {
    width: calc(100% - 32px);
    padding: 36px 24px 40px;
    border-radius: 16px;
  }
  .contact:not(.contactModal__panel .contact) .contact__title {
    font-size: 26px;
  }
  .contact:not(.contactModal__panel .contact) .contact__note {
    margin-bottom: 24px;
    font-size: 13px;
  }
  .contact:not(.contactModal__panel .contact) .contact__row {
    gap: 10px;
    padding: 16px 0;
  }
  .contact:not(.contactModal__panel .contact) .contact__label {
    font-size: 14px;
  }
  .contact:not(.contactModal__panel .contact) :is(.contact__input, .contact__textarea) {
    font-size: 16px;
  }
  .contact:not(.contactModal__panel .contact) .contact__actions {
    padding-top: 28px;
  }
}


/* Shared page CF7 controls: match modal UI in gray */
.contact:not(.contactModal__panel .contact) .wpcf7-form {
  color: #343a42;
}
.contact:not(.contactModal__panel .contact) .wpcf7-form p {
  margin: 0;
}
.contact:not(.contactModal__panel .contact) .wpcf7-form label {
  display: block;
  margin-bottom: 16px;
  color: #343a42;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}
.contact:not(.contactModal__panel .contact) .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  margin-top: 7px;
}
.contact:not(.contactModal__panel .contact) .wpcf7-form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) {
  display: block;
  width: 100%;
  max-width: none;
  min-height: 46px;
  padding: 12px 14px;
  border: 1px solid #ced3da;
  border-radius: 10px;
  outline: none;
  background: #f5f6f8;
  color: #343a42;
  font-size: 15px;
  line-height: 1.5;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.contact:not(.contactModal__panel .contact) .wpcf7-form textarea {
  min-height: 200px;
  resize: vertical;
}
.contact:not(.contactModal__panel .contact) .wpcf7-form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea):focus {
  border-color: #8b96a3;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(107, 114, 128, 0.13);
}
.contact:not(.contactModal__panel .contact) .wpcf7-form p:has(.leadbiz-external-id),
.contact:not(.contactModal__panel .contact) .wpcf7-form .leadbiz-external-id,
.contact:not(.contactModal__panel .contact) .wpcf7-form-control-wrap:has(.leadbiz-external-id) {
  display: none;
}
.contact:not(.contactModal__panel .contact) .wpcf7-form input[type="submit"] {
  display: block;
  width: 50%;
  min-height: 50px;
  margin: 4px auto 0;
  padding: 13px 20px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(90deg, #424a54, #69737f);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.08em;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(55, 65, 81, 0.18);
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}
.contact:not(.contactModal__panel .contact) .wpcf7-form input[type="submit"]:hover {
  opacity: 0.92;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(55, 65, 81, 0.24);
}
.contact:not(.contactModal__panel .contact) .wpcf7-not-valid-tip {
  margin-top: 6px;
  font-size: 12px;
}
.contact:not(.contactModal__panel .contact) .wpcf7-response-output {
  margin: 16px 0 0;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 13px;
}
@media (max-width: 860px) {
  .contact:not(.contactModal__panel .contact) .wpcf7-form label {
    margin-bottom: 14px;
    font-size: 14px;
  }
  .contact:not(.contactModal__panel .contact) .wpcf7-form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) {
    font-size: 16px;
  }
}

/* Shared contact format */
.contact:not(.contactModal__panel .contact) {
  padding: 40px 0 64px;
  background: #f3f4f6 !important;
}
.contact:not(.contactModal__panel .contact) .contact__inner {
  width: min(1120px, calc(100% - 48px));
  padding: 56px 64px 64px;
  border-radius: 22px;
}
.contact:not(.contactModal__panel .contact) .contact__lead {
  margin: 0 0 34px;
  color: #111820;
  font-size: 32px;
  font-weight: 800;
  line-height: 1.45;
  text-align: center;
}
.contact:not(.contactModal__panel .contact) .contact__form {
  margin-top: 50px;
}
.contact:not(.contactModal__panel .contact) .wpcf7-form-control-wrap {
  margin-top: 0;
}
.contact:not(.contactModal__panel .contact) .contact__input,
.contact:not(.contactModal__panel .contact) .contact__textarea {
  background: #f4f5f7;
}
.contact:not(.contactModal__panel .contact) .contact__textarea {
  min-height: 260px;
}
.contact:not(.contactModal__panel .contact) .contact__submit {
  width: min(500px, 100%);
}
.top-page .contact__inner::before {
  content: none;
}

@media (max-width: 860px) {
  .contact:not(.contactModal__panel .contact) {
    padding: 32px 0 48px;
  }
  .contact:not(.contactModal__panel .contact) .contact__inner {
    width: calc(100% - 24px);
    padding: 36px 20px 40px;
  }
  .contact:not(.contactModal__panel .contact) .contact__lead {
    margin-bottom: 28px;
    font-size: 22px;
  }
  .contact:not(.contactModal__panel .contact) .contact__form {
    margin-top: 30px;
  }
  .contact:not(.contactModal__panel .contact) .contact__textarea {
    min-height: 200px;
  }
}

.contactModal__panel .contact__row {
  display: block;
  padding: 0;
  border: 0;
}
.contactModal__panel .contact__label {
  max-width: none;
  margin-bottom: 7px;
  padding: 0;
}
.contactModal__panel .contact__field {
  margin-bottom: 16px;
}
.contactModal__panel .contact__input,
.contactModal__panel .contact__textarea {
  width: 100%;
}
.contactModal__panel .contact__textarea {
  min-height: 150px;
}
.contactModal__panel .contact__actions {
  padding-top: 4px;
}

/* Shared PlusNow service flow for the benefit sections */
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .plusIntro__top{margin-top:4rem;gap:0}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .plusIntro__copyCol{flex:0 1 88rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .plusIntro__copyText+.plusIntro__copyText{margin-top:1.2rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .plusIntro__copy::after{opacity:.45}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow{display:grid;grid-template-columns:minmax(0,23fr) 2.6rem minmax(0,54fr) 2.6rem minmax(0,17fr);align-items:center;gap:1.2rem;max-width:112rem;margin:4rem auto 0;padding:2.4rem;background:#fff;border:1px solid #dcecf5;border-radius:2.4rem;box-shadow:0 1rem 3rem rgba(34,91,130,.04)}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__stage{min-width:0;text-align:center}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__eyebrow{display:block;min-height:3.2rem;color:#2777a6;font-size:1.3rem;font-weight:700;letter-spacing:.04em}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__events{display:grid;gap:1rem;margin:1rem 0 0;padding:0;list-style:none}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__event{display:flex;align-items:center;gap:1rem;min-height:5.6rem;padding:.9rem 1.1rem;border:1px solid #dcecf5;border-radius:1rem;background:#f8fcfe;color:#315d78;font-size:1.3rem;font-weight:600;line-height:1.35;text-align:left}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__eventIcon{display:block;width:2.4rem;height:2.4rem;flex:none;fill:none;stroke:#4489b3;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.page-campaign-plus .plus02 .serviceFlow__event:last-child{background:#fffaf0;border-color:#f2e8c9}
.page-campaign-plus .plus02 .serviceFlow__event:last-child .serviceFlow__eventIcon{stroke:#c5a34a}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__arrow{position:relative;display:block;height:.3rem;border-radius:1rem;background:#c7e2f0}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__arrow::after{content:"";position:absolute;right:-.1rem;top:50%;width:.9rem;height:.9rem;border-top:.3rem solid #c7e2f0;border-right:.3rem solid #c7e2f0;transform:translateY(-50%) rotate(45deg)}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__screenFrame{display:flex;justify-content:center;align-items:center;min-height:54rem;padding:1.4rem;border:1px solid #cfe6f2;border-radius:1.6rem;background:#fff;box-shadow:0 .7rem 2rem rgba(30,89,126,.07)}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__screen{display:block;width:auto;max-width:100%;max-height:52rem;height:auto;object-fit:contain}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__screenLabel{display:block;margin-top:1.2rem;color:#214d6b;font-size:1.5rem;line-height:1.5}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__person{display:block;width:min(100%,9rem);height:auto;margin:.7rem auto 1.2rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__stageTitle{display:block;color:#214d6b;font-size:1.5rem;line-height:1.55}
@media(max-width:768px){
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .plusIntro__top{margin-top:2rem;margin-bottom:0}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .plusIntro__copyCol{flex:0 0 100%}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow{grid-template-columns:minmax(0,1fr);gap:1.5rem;margin-top:2.8rem;padding:2rem 1.4rem;border-radius:1.8rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__eyebrow{min-height:0}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__events{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1.2rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__event{min-height:4.8rem;padding:.7rem .8rem;font-size:1.1rem;gap:.6rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__eventIcon{width:2rem;height:2rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__arrow{width:.3rem;height:2.6rem;margin:0 auto}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__arrow::after{right:auto;left:50%;top:auto;bottom:-.1rem;transform:translateX(-50%) rotate(135deg)}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__screenFrame{min-height:0;margin-top:1rem;padding:1rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__screen{max-height:none;width:min(100%,38rem)}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__person{display:none}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus) :is(.plus01,.plus02,.plus03,.plus04) .serviceFlow__stageTitle{margin-top:1rem}
}

.page-campaign-plus .plus03 .serviceFlow__screenFrame{min-height:0}
.page-campaign-plus .plus03 .serviceFlow__screen{width:100%;max-height:none}

/* CampaignPlus 04 uses the same section and flow layout as 01–03. */
.page-campaign-plus .plus04{margin-top:4rem;overflow:hidden;background:#fff}
.page-campaign-plus .plus04__inner{padding:3.7rem 0 9.6rem}
.page-campaign-plus .plus04 .serviceFlow__screenFrame{flex-direction:column;gap:1.2rem}
.page-campaign-plus .plus04 .serviceFlow__screen{max-height:31rem}
.page-campaign-plus .plus04 .cPlusRoi__outcomes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;width:100%;max-width:42rem}
.page-campaign-plus .plus04 .cPlusRoi__example{grid-column:1/-1;color:#657f8f;font-size:1.1rem;text-align:left}
.page-campaign-plus .plus04 .cPlusRoi__outcome{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.8rem .4rem;border:1px solid #dcecf5;border-radius:.8rem;background:#f8fcfe;color:#315d78;font-size:1.1rem;font-weight:600}
.page-campaign-plus .plus04 .cPlusRoi__outcome strong{color:#2777a6;font-family:"Poppins",sans-serif;font-size:2rem;line-height:1.1}
.page-campaign-plus .plus04 .cPlusRoi__outcome small{margin-left:.2rem;font-family:inherit;font-size:1rem}
@media(max-width:768px){
.page-campaign-plus .plus04__inner{padding:3.7rem 1rem 4rem}
.page-campaign-plus .plus04 .serviceFlow__screen{max-height:none;width:min(100%,25rem)}
}


/* Campaign Plus: reaction, interest and behavior story */
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__title{margin-bottom:2rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__intro{max-width:82rem;margin:0 auto 5rem;color:#444;font-size:1.8rem;line-height:1.9;text-align:center}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__intro strong{color:#315d78}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__grid{display:flex;flex-direction:column;gap:2rem;max-width:110rem;margin:0 auto}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:5rem;flex:none;min-width:0;padding:3.2rem 3.6rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__col--interest{border-radius:2.4rem;background:#fff}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__col--interest .threePlus__story{grid-column:2;grid-row:1}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__col--interest .threePlus__cardMedia{grid-column:1;grid-row:1}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__label{padding:0;gap:1.4rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__labelIcon{width:7.2rem;flex:none}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__theme{display:inline-block;padding:.3rem 1rem;border-radius:99rem;background:#e8f3f9;color:#2877a4;font-size:1.3rem;font-weight:700;line-height:1.4}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__kicker{margin:.5rem 0 0;color:#55778d;font-size:1.3rem;font-weight:600}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__storyTitle{margin:2rem 0 1.5rem;color:#214d6b;font-size:2.6rem;font-weight:800;line-height:1.4}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__storyText{margin:0;color:#444;font-size:1.6rem;line-height:1.9}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__storyText+.threePlus__storyText{margin-top:1.1rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__storyText strong{color:#315d78}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__storyText--signals{padding-left:1.2rem;border-left:3px solid #b7d8e9}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__keywords{display:flex;flex-wrap:wrap;gap:.3rem;margin:2rem 0 0;padding:0;color:#315d78;font-size:1.3rem;font-weight:700;list-style:none}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__keywords li+li::before{content:"｜";margin:0 .6rem;color:#93b6c9;font-weight:400}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__storyLink{display:inline-flex;align-items:center;gap:.8rem;margin-top:2.2rem;color:#2877a4;font-size:1.3rem;font-weight:700;text-decoration:underline;text-underline-offset:.3rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__storyLink:hover{color:#1d587b}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__cardMedia{display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;margin:0;padding:1.2rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__cardMediaImg{width:100%;height:100%;object-fit:contain}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__summary{max-width:86rem;margin:4.5rem auto 0;padding:2.8rem 3.2rem;border-radius:2rem;background:#fff;text-align:center}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__summaryPath{margin:0 0 1rem;color:#2877a4;font-size:1.4rem;font-weight:700}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__summaryPath span{margin:0 1.2rem;color:#9cc2d6}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__summary h3{margin:0 0 1.2rem;color:#214d6b;font-size:2.2rem;font-weight:800;line-height:1.5}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__summary p:not(.threePlus__summaryPath){margin:.5rem 0 0;color:#444;font-size:1.5rem;line-height:1.8}
@media(max-width:768px){
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__title{margin-bottom:1.6rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__intro{margin-bottom:3rem;padding:0 1rem;font-size:1.3rem;text-align:left}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__grid{gap:1rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__col{grid-template-columns:minmax(0,1fr);gap:2rem;padding:2.6rem 1.4rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__col--interest .threePlus__story,:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__col--interest .threePlus__cardMedia{grid-column:auto;grid-row:auto}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__labelIcon{width:6rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__storyTitle{margin:1.6rem 0 1.2rem;font-size:2rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__storyText{font-size:1.3rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__cardMedia{aspect-ratio:16/10}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__summary{margin:3rem 1rem 0;padding:2.4rem 1.6rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__summary h3{font-size:1.7rem}
:is(.page-campaign-plus,.page-lbiz-plus,.page-iside-plus,.salesPlusRedesign) .threePlus--journey .threePlus__summary p:not(.threePlus__summaryPath){font-size:1.2rem}
}

/* LeadBiz Plus uses the shared journey and detail card layout with its own palette and images. */
:is(.page-lbiz-plus,.page-iside-plus) .mv__title{margin-bottom:3rem}
:is(.page-lbiz-plus,.page-iside-plus) .mv__desc{max-width:526px}
:is(.page-lbiz-plus,.page-iside-plus) .mv__visual{bottom:-5rem}
:is(.page-lbiz-plus,.page-iside-plus) .mv__visualImg{transform:translateX(40px) translateY(-20px)}
:is(.page-lbiz-plus,.page-iside-plus) .threePlus--journey .threePlus__title{font-size:4rem}
.page-lbiz-plus .threePlus--journey .threePlus__theme{background:#e8faed;color:#148331}
.page-lbiz-plus .threePlus--journey :is(.threePlus__storyTitle,.threePlus__summary h3){color:#19572c}
.page-lbiz-plus .threePlus--journey :is(.threePlus__storyLink,.threePlus__summaryPath){color:#148331}
.page-lbiz-plus .threePlus--journey .threePlus__col--interest{background:#fff}
.page-lbiz-plus :is(.plus01,.plus02,.plus03) .serviceFlow.leadbizFlow{grid-template-columns:repeat(2,minmax(0,1fr));max-width:112rem}
.page-lbiz-plus :is(.plus01,.plus02,.plus03) .leadbizFlow .serviceFlow__screenFrame{min-height:38rem}
.page-lbiz-plus :is(.plus01,.plus02,.plus03) .leadbizFlow .serviceFlow__screen{max-height:52rem}
:is(.page-lbiz-plus,.page-iside-plus) .plus03{padding-bottom:8rem}
@media(max-width:768px){
:is(.page-lbiz-plus,.page-iside-plus) .mv__visual{bottom:1rem}
:is(.page-lbiz-plus,.page-iside-plus) .mv__visualImg{transform:none}
:is(.page-lbiz-plus,.page-iside-plus) .threePlus--journey .threePlus__title{font-size:1.8rem}
.page-lbiz-plus :is(.plus01,.plus02,.plus03) .serviceFlow.leadbizFlow{grid-template-columns:minmax(0,1fr)}
.page-lbiz-plus :is(.plus01,.plus02,.plus03) .leadbizFlow .serviceFlow__screenFrame{min-height:0}
:is(.page-lbiz-plus,.page-iside-plus) .plus03{padding-bottom:4rem}
}

/* Inside Plus content and palette within the shared service layout. */
.page-iside-plus .threePlus--journey .threePlus__col--interest{border-radius:unset;background:unset}
.page-iside-plus .threePlus--journey .threePlus__theme{background:var(--accent-soft);color:#2865b5;font-size:2.6rem}
.page-iside-plus .threePlus--journey :is(.threePlus__storyTitle,.threePlus__summary h3){color:#245585}
.page-iside-plus .threePlus--journey :is(.threePlus__storyLink,.threePlus__summaryPath){color:#2865b5}
.page-iside-plus .threePlus--journey .threePlus__summary figure{margin:2.4rem 0}
.page-iside-plus .threePlus--journey .threePlus__summary figure+p{text-align:left}
